Skip to content

Intake test suite


title: AXA Intake Test Suite description: The 18-test TC-03a acceptance suite for the carrier-structured v1.0 adapter: what each test covers, how to run it, and its relationship to the conformance runner. kind: authored status: current source_date: 2026-10-02 tags: [testing, AXA, carrier_structured, v1.0, TC-03a, T15, adapt_carrier_structured_v1, pytest]


What it covers

The TC-03a AXA intake test suite validates the carrier-structured v1.0 adapter end-to-end: schema and SHA-256 gating, field mapping for both AUTO and PROPERTY LOBs, party conversion, adverse vehicle detection, subro_facts restructuring, error handling for malformed payloads, and the T15 unidentified-owner constraint. Eighteen tests are organized into three tiers: schema and adapter unit tests that need no database, normalizer routing and pipeline integration tests that require SubrogationScreenerGKR and therefore a live MongoDB connection, and the T15 identity-status assertion which exercises the full party resolution path. The suite received TC-03a verdict ACCEPTED on 2026-10-01.

Test Inventory

T Description Needs DB
T1 Schema SHA-256 gate No
T2 AUTO adapter output shape No
T3 PROPERTY adapter output shape No
T4 AUTO damage mapping (PD estimate, rental, BI reserve) No
T5 AUTO party conversion (name unwrap, roles array) No
T6 AUTO adverse vehicle detection from parties No
T7 AUTO subro_facts pass-through No
T8 PROPERTY subro_facts pass-through No
T9 V1IntegrityError: missing required field parties No
T9b V1IntegrityError: wrong format_version No
T9c V1IntegrityError: unknown LOB in header No
T10 Normalizer auto-detects format_version == "1.0" and routes to adapter Yes
T11 AUTO subro pipeline end-to-end: decision_trace.status == success Yes
T12 PROPERTY subro pipeline end-to-end: decision_trace.status == success Yes
T13 AXA-SAMPLE-AUTO-001 (Morales A22) → subrogation_identified == True Yes
T14a Blind AUTO (CA rear-end) validates and adapts No
T14b Blind PROPERTY (tenant fire) validates and adapts No
T15 Unidentified vehicle owner → identity_status.value == "unknown" placeholder; no NE result inferred Yes

How to Run

With ARTIFI_MONGO_CONNECTION_STRING set: all 18 tests run:

cd adjust360_pipeline/tests/axa_intake
ARTIFI_MONGO_CONNECTION_STRING="<connection string>" pytest test_axa_intake.py -v

Without a database connection: 11 tests pass, 5 skip:

cd adjust360_pipeline/tests/axa_intake
pytest test_axa_intake.py -v

Without a database, T10 through T13 and T15 are skipped rather than failed. These five tests exercise SubrogationScreenerGKR and the normalizer's database-backed routing path; they require a live MongoDB connection to elevatenow_gkr for GKR chunk retrieval. The remaining 13 tests: T1 through T9c, T14a, and T14b: exercise the adapter and schema gate in isolation and pass without any external dependency.

The full 18-test pass requires ARTIFI_MONGO_CONNECTION_STRING pointing to the Atlas cluster containing elevatenow_gkr.

Fixtures

Fixture files live in adjust360_pipeline/tests/axa_intake/fixtures/. Each file is a v1.0 carrier-structured payload.

A22_v1.json: Morales AUTO (AXA-SAMPLE-AUTO-001): The canonical Morales claim in v1.0 format. TX rear-end collision, employer-business trip purpose, identified adverse driver. Used by T13, which asserts subrogation_identified == True for this scenario. This is the primary AXA POC positive case: the expected subro outcome is REFER_TO_SUBRO_UNIT.

A23_v1.json: Martinez AUTO: The canonical Martinez claim in v1.0 format. TX collision with a contested driver condition narrative. Used in regression and end-to-end tests. Where Morales is the clean positive case, Martinez represents the contested-facts scenario.

blind_auto.json: CA rear-end, no identifying details: A California rear-end AUTO claim with no party names, VIN, or identifying carrier information. Used by T14a to confirm the adapter handles minimal-identity payloads without error, and that adverse vehicle detection works from structural party roles rather than requiring named parties.

blind_property.json: tenant fire, no identifying details: A tenant fire PROPERTY claim with no identifying carrier details. Used by T14b to confirm PROPERTY adapter output shape and subro_facts pass-through on a minimal payload. Exercises the structure/contents/ALE damage map path.

property_contractor_v1.json: PROPERTY contractor sample: A PROPERTY claim involving a contractor scenario. Used by T12 for the PROPERTY subro pipeline end-to-end assertion. Includes structure and contents damage entries, party records with contractor roles, and subro_facts populated for the PROPERTY profile.

Relationship to the Conformance Runner

This suite and run_conformance.py test different things and are both required.

The AXA intake suite is targeted: it tests the v1.0 adapter path specifically: schema gating, field mapping, party conversion, the T15 identity constraint, and end-to-end pipeline behavior for v1.0 payloads. All five fixture files are v1.0 carrier-structured payloads. The suite runs in approximately two minutes and is the acceptance gate for any change to adapt_carrier_structured_v1, _v1_party_to_canonical, _restructure_v1_auto_subro_facts, or the schema file itself.

run_conformance.py tests the full 58-seed subro box set, which spans all IDP tracks (native, carrier_structured, reducto), both LOBs in scope (AUTO and PROPERTY), and all jurisdiction combinations. It scores each seed on ten criteria and reports the 56/58 baseline (A31 MI-PD-001 and A32 ND-BI-001 are honest-fail seeds pending liability_basis addition to AUTO-SUBRO-THEORY-006). The conformance runner is the standing gate for corpus and spec changes; it is one of the standing five commands required before every behaviour-changing commit.

A change to the v1.0 adapter must pass both: the intake suite confirms the adapter contract, and the conformance runner confirms that the pipeline behaviour for carrier_structured seeds is not regressed.