Update two stale test allowlists so the suite can be read again - #66
Merged
Conversation
Seven tests were failing locally, and had been for long enough that the failures were background noise. Five were a stale allowlist; two needed the generator fixes that just landed. test_and_logic_consistency allowed AND only on input / catalyst / positive regulator, so it failed on 149k edges across all 92 pathways — it would fail on every pathway in the catalog, and only the first five are sampled. Each edge type added below was checked against what the solver actually does with `and_or`, rather than added to make the test green: - assembly (61,652 edges): AND is correct, a Complex IS the AND of its subunits. Also inert under the default config — DS_ASSEMBLY_LIMITING routes assembly inputs to a limiting-reactant (min) rule before the AND/OR branch. - depletion (5,064): inert. create_reaction_from_edges pushes depletion edges to their own vector and never records is_and. - dissociation (82,394): live, and genuinely inconsistent — all 116k `output` edges are `or`, these are `and`. They feed terminal readout sinks with one producer each, so the only question is whether a lone parent gets the hill_log tanh or passes through. I tested that last one rather than assuming. hill_log is identity to four decimal places at both classification cutoffs (0.85 and 1.15) and within 0.1% out to fold 2, compressing only large folds (100 -> 74). Flipping all dissociation edges to `or` and re-benchmarking moved nothing real: 11 changed predictions, all in one pathway, none with both arms converged — the same uuid-relabelling noise signature documented in specs/003. Inconsistent but immaterial, so it is documented in the test rather than changed without evidence. test_negative_regulators_marked_neg asserted every negative edge is a `regulator`. `depletion` is negative by construction and postdates the test; the solver routes it separately and applies divide-form inhibition to it. The last failure, test_main_edges_proportional_to_best_matches on Class I MHC, is a real O(n^2) detector doing its job — and the memo fix (#64) plus the cofactor guard (#65) resolve it. Measured by regenerating on current main: Class I MHC ratio 54.4 (v96) -> 174.5 (v97 pre-fix) -> 11.2 pass NER ratio 4.7 -> 62.1 -> 7.8 pass with total edges falling 178,198 -> 14,627 and 136,603 -> 1,739. It still fails against the local output/ tree because that tree predates both fixes; regenerating it clears the last one. output/ is gitignored and untracked, so this is a local-artifact refresh with no repository effect, and CI — which has no output/ — skips these tests entirely. Co-Authored-By: Claude Opus 5 (1M context) <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.
Seven tests were failing locally, and had been for long enough that the failures were background noise. Five were a stale allowlist; two needed the generator fixes that just landed.
test_and_logic_consistency— stale allowlistIt allowed AND only on
input/catalyst/ positiveregulator, so it failed on 149k edges across all 92 pathways. It would fail on every pathway in the catalog; only the first five are sampled.Each addition was checked against what the solver actually does with
and_or, not added to make the test green:assemblyDS_ASSEMBLY_LIMITINGroutes assembly inputs to a limiting-reactant (min) rule before the AND/OR branch. AND is also correct: a Complex is the AND of its subunits.depletioncreate_reaction_from_edgesnever recordsis_andfor depletion.dissociationoutputedges areor, these areand.I tested the third rather than assuming
Dissociation edges feed terminal readout sinks with exactly one producer, so the only question is whether a lone parent gets the
hill_logtanh or passes through:Identity to four decimals at both classification cutoffs, within 0.1% out to fold 2, compressing only large folds. Flipping all dissociation edges to
orand re-benchmarking moved nothing real — 11 changed predictions, all in one pathway, none with both arms converged: the same uuid-relabelling noise documented inspecs/003.Inconsistent but immaterial, so it's documented in the test rather than changed without evidence.
test_negative_regulators_marked_neg— stale allowlistAsserted every negative edge is a
regulator.depletionis negative by construction and postdates the test; the solver routes it separately and applies divide-form inhibition.The last failure is real, and #64 + #65 already fixed it
test_main_edges_proportional_to_best_matchesis an O(n²) detector doing its job. Regenerating on currentmain:Total edges fall 178,198 → 14,627 and 136,603 → 1,739.
It still fails against the local
output/tree because that tree predates both fixes.output/is gitignored and untracked, so refreshing it is a local-artifact operation with no repository effect — and CI, which has nooutput/, skips these tests entirely.930 passing, 1 failing (that one), no new lint errors.
🤖 Generated with Claude Code