Skip to content
VERASPEC
Repository
The fixture corpusstable

Overview

Machine-checkable test vectors for the VER record format and the conformance profile implemented by packages/ver-validator. Two artifact releases are covered side by side: 1.0.1, judged by vera-profile/1.0, and the unratified 1.1 draft, judged by vera-profile/1.1-draft. Every fixture declares which one it is a statement about — see 1.1-draft fixtures.

The corpus answers one question per file: given this record, what must a conformant validator say? manifest.json holds the expected answer for every fixture, so the corpus is executable rather than illustrative — a validator either reproduces the manifest exactly or it disagrees with the standard.

countof which 1.1-draft
conformant records (valid/)144
non-conformant / warning records (invalid/)8129
profile issue codes with a dedicated fixture81 of 83 (65 error, 16 warning)29 (25 error, 4 warning)
codes excused by a documented exemption2 (VER001, VER607)0

Every issue code in the ver_validator registry has exactly one fixture registered against it, or an explicit coverage_exemptions entry saying why it cannot have one. A code with neither, or two fixtures claiming the same code, is a corpus defect. That constraint is global and has no schema axis: one code, one fixture, whichever release the fixture targets. Three numbers carry no fixture:

codewhycovered instead by
VER1303 vector-ref-unverifiedAllocated and deliberately never emitted: the profile validator performs no network I/O, and an unfetchable reference is not evidence of non-conformance. Not in the active registry at all, so it needs no exemption.tests/test_profile_validator.py::test_stage14_unfetchable_vector_ref_is_not_a_finding
VER607 non-finite-vector-componentUnreachable from a file. NaN, Infinity and -Infinity are JavaScript literals, not RFC 8259 JSON, so a document containing one is rejected at stage 1 as VER101 and never reaches stage 6 — a fixture carrying them would test VER101 under a VER607 filename. The rule exists for the API entry point, which takes an already-parsed object.tests/test_profile_validator.py::test_stage6_non_finite_vector_components_are_ver607
VER001 validator-internal-errorNot file-reachable, and must not be. VER001 is the one code that reports on the validator rather than the record: it fires when a rule raises, which is a defect in ver_validator. A fixture provoking it would pin a specific validator bug — it would stop reproducing the moment the bug was fixed, and it would be the only file here whose expected result was not a statement about the standard.tests/test_profile_validator.py::test_a_rule_that_raises_is_ver001_and_makes_the_run_indeterminate and its four siblings, which monkeypatch a deliberately-raising rule

The manifest carries both exemptions and their reasons; stage 0 (VER001's stage) is consequently absent from the corpus's stage coverage, which tests/test_conformance_fixtures.py derives from the exemption list rather than from a second, drifting copy of the same judgement.