Skip to content

Expect typed FORMAT values in the mutation fixture oracle - #11

Merged
ecrum19 merged 1 commit into
mainfrom
fix/typed-format-value-oracle
Sep 12, 2026
Merged

ecrum19 merged 1 commit into
mainfrom
fix/typed-format-value-oracle

Conversation

@ecrum19

@ecrum19 ecrum19 commented Sep 12, 2026

Copy link
Copy Markdown
Owner

What

Adds _format_typed_shape() to test/validation_fixtures.py so the mutation fixture's census expects the typed companion triples a FORMAT value now gains.

Why

The emitter gives a single, non-missing Integer/Float FORMAT cell the same vcfc:fieldValueInteger / vcfc:fieldValueDecimal companion an INFO value has always had. The fixture oracle still derived typed counts from INFO alone, so it under-expected — every expanded mutation test reported a MISMATCH on vcfc:fieldValueInteger (expected 4, actual 16), including test_unmutated_expanded_graph_passes, the harness check that must never fail.

The new helper restates the typing rule over the fixture's own FORMAT cells rather than importing the emitter's helper, mirroring how the INFO counters are derived: an expectation computed by the code under test would only prove that code agrees with itself. It reuses the runner's widening rule so a payload longer than the FORMAT column is named the same way.

Verification

  • Full suite: 647 tests, OK (python3 -m unittest discover -s test)
  • Mutation suite alone: 116 tests, OK
  • Baseline at 753034e was clean, so the 11 failures this fixes were introduced by the emitter change, not pre-existing.

Note on 0b00b8f

The emitter and validator halves of this work are already on main in 0b00b8f, whose message ("small conda config change") describes only part of what it carries. That commit also:

  • moved FORMAT value typing into vcf_rdfizer.py
  • added --shacl-ontology and RDFS inference to the SHACL layer, so the vocabulary's published shapes stop reporting five false subclass violations against a conforming graph
  • corrected the retired vcf-rdfizer-vocabulary.shacl.ttl filename in docs/validation.md

History was left as-is deliberately — that commit is already merged via #10.

Still outstanding

src/validation/ is baked into the image rather than mounted, so ecrum19/vcf-rdfizer:latest must be rebuilt and pushed before an end-to-end -m validation run passes. Against the currently published image the new graph reports MISMATCH with extraRows: [{vcfc:fieldValueInteger, tripleCount: 2}] — the old validator correctly flagging triples it does not expect.

🤖 Generated with Claude Code

The emitter now gives a single, non-missing Integer/Float FORMAT cell the
same typed companion an INFO value has always had, so the fixture's census
has to expect those triples. Without this the oracle counts only the INFO
contribution and every expanded mutation test reports a MISMATCH on
vcfc:fieldValueInteger -- including the unmutated-graph harness check, which
is the one that must never fail.

_format_typed_shape restates the typing rule over the fixture's own FORMAT
cells rather than importing the emitter's helper, mirroring how the INFO
counters are derived: an expectation computed by the code under test would
only prove that code agrees with itself. It reuses the runner's widening
rule so a payload longer than the FORMAT column is named the same way.

The emitter and validator halves of this change are already on main, in
0b00b8f, whose message ("small conda config change") describes only part of
what it carries: that commit also moved FORMAT value typing into
vcf_rdfizer.py, added --shacl-ontology and RDFS inference to the SHACL layer,
and corrected the retired shapes filename in docs/validation.md.

Full suite: 647 tests, OK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 93.54839% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
test/validation_fixtures.py 93.54% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@ecrum19
ecrum19 merged commit e4de9d0 into main Sep 12, 2026
24 checks passed
@ecrum19
ecrum19 deleted the fix/typed-format-value-oracle branch September 12, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants