#246: two proofs that proved nothing - #259
Merged
Merged
Conversation
THE TAUTOLOGY. `assert not _unclassified_tables(base)` where `base` was built from `_TABLE_ROLE` reduces to `set(x) - set(x)`: empty for every possible value of the map and every possible upstream registry. It shipped claiming "the real registry's tables must all classify" about a file the test never opens. The silent direction is worth asserting; it just has to be asserted against an input the function did not derive from itself. Mutation-proven by making `_unclassified_tables` report everything. REGISTRY_CURRENT HAD NO TEST — the function `tests/seam_registry.py` was extracted to provide. Three now, plus two for `registry_at`'s refusal branches that nothing reached. The scratch repository differs on `main`, on `origin/main` and on disk, so preferring the wrong one is visible rather than a coin flip. Mutation-proven four ways, each reverted: reading HEAD (issue #196's defect, which used to leave the whole suite green), preferring `main` over `origin/main`, dropping the unreadable-blob refusal, dropping the TOML-parse wrapper. All four fail now. One of my five mutations was badly chosen and I am recording it rather than quietly replacing it: I mutated the ASSERTION to `is not None`, which is always true of a list, so it tested nothing and "survived". Mutating the assertion instead of the function is the same instrument-not-subject error #245 already produced. Redone against the function. The scratch repository runs git with `-c commit.gpgsign=false -c core.hooksPath=/dev/null`, which is C-91's third item arriving early — a contributor's global signing config would otherwise fail opaquely or block on pinentry with no timeout. C-90 resolved and moved to Resolved Concerns; 23 open -> 22. Suite 420 passed / 1 skipped / 40 xfailed, ruff clean. Closes #246. Epic #241. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closed
4 tasks
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.
Closes #246. Gate 2 of epic #241.
The tautology
assert not _unclassified_tables(base)wherebasewas built from_TABLE_ROLEreduces toset(x) - set(x)— empty for every possible value of the map and every possible upstream registry. It shipped claiming "the real registry's tables must all classify" about a file the test never opens.The silent direction is worth asserting; it just has to be asserted against an input the function did not derive from itself. Mutation-proven by making
_unclassified_tablesreport everything.registry_currenthad no testIt is the function
tests/seam_registry.pywas extracted to provide. Three tests now, plus two forregistry_at's refusal branches that nothing reached.The scratch repository differs on
main, onorigin/mainand on disk, so preferring the wrong one is visible rather than a coin flip.HEAD(issue #196's defect)mainoverorigin/mainOne of my own mutations was badly chosen, and I am recording it
I first mutated the assertion to
is not None— always true of a list — so it tested nothing and "survived". Mutating the instrument instead of the subject is the same error #245 produced. Redone against the function.Also: the scratch repo runs git with
-c commit.gpgsign=false -c core.hooksPath=/dev/null, which is C-91's third item arriving early.🤖 Generated with Claude Code