test(writer): close zone-map stat + segment-alignment mutation gaps#174
Merged
Conversation
PIT on the writer (-P pitest) surfaced survivors in VortexWriter's zone-map stat emission and segment alignment that round-trip tests never reached: - Float zone-map stats were untested (only I64 covered), leaving scalarDouble's f64/f32 reads and the F64 sumColumn/statColumn arms killable. Add an F64 per-zone MIN/MAX/SUM round-trip test. - Per-zone MIN/MAX values were only asserted for I64/F64. Add a parameterized I8/I16/I32/F32 per-zone MIN/MAX test (covers the remaining statColumn arms and the f32 scalar field). - Segment 64-byte alignment (Arrow compat) was unverified. Add a test asserting every data segment offset is 64-aligned, covering the writeSegment padding arithmetic. Writer PIT strength rises from 84% toward parity; the residual survivors are compression-quality heuristics (ALP-RD dictionary selection, Delta tie-break boundaries) that are equivalent w.r.t. correctness — round-trip is already bit-exact regardless — so they are intentionally not pinned. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ran PIT on the writer (
-pl writer -am -P pitest verify -DskipITs). Started at 84% test strength (82 survivors + 6 no-coverage of 510 mutations); triaged each survivor as a real coverage hole vs an equivalent-w.r.t-correctness mutant.Fixes (genuine gaps)
VortexWriter#scalarDouble, F64sumColumn/statColumnstatColumnI8/I16/I32/F32 arms + f32 scalar fieldwriteSegmentpadding (modulus +writePadding)Intentionally not pinned (equivalent w.r.t. correctness)
The bulk of the residual survivors are compression-quality heuristics, not correctness:
findBestDictionary/countExceptions/topKByCount/buildLookup). Round-trip is already bit-exact regardless of which dictionary is chosen (exceptions are stored verbatim), so these change only the encoded size. Pinning them would lock the heuristic and add brittleness.<vs<=(equivalent on ties: equal values assign identically), ceil-division+1(yields a valid larger encoding), padding-fill arithmetic (touches only unused padding).VortexWriterFlatBuffer-construction / global-dict boundary mutants in the same equivalent-or-structural category.Per the repo's mutation-signal guidance (CLAUDE.md: only add a test when the mutated bound is a genuine, independent edge), these are left as-is.
Tests only; no production change.
🤖 Generated with Claude Code