Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/design/track_b_insured_status.md
Original file line number Diff line number Diff line change
Expand Up @@ -3954,6 +3954,30 @@ These tests execute the invariants this round adds:
(`test_a_middle_completion_past_the_boundary_cap_refuses`,
`test_the_boundary_guard_refuses_only_past_4096`).

## Round 25 the whole-period proof keeps its test

Verification class: statutory conformance on invented declarations only. This
correction admits no population, behavioral, payment, or forecast claim.

Since round 23, `_unknown_prior_joint_shortfall` drops an uncredited onset
quarter from its clock when a prior can end in that quarter.
`test_unknown_prior_history_keeps_its_row_on_the_whole_period` had an August
1975 onset, so a prior could end in July. Its clock then held 41 quarters at
1975Q3 with 20 QCs in the last 40, and the proof's own 40-quarter test kept the
row on either reading. This test caught round 17's `proof_keeps_last_40`, and
round 23's list didn't carry that mutation, so no run showed the loss. At
`4ab97297`, that mutation's cap passes all 1,997 cases in the 41 insured test
modules.

The test now has a July onset. A prior can end in an onset's quarter only in an
earlier month of that quarter, and July opens 1975Q3, so the clock keeps that
quarter and holds 42 quarters. The 21 QCs meet half of them and 19 sit in the
last 40. With the regulation's cap in `special_recent`, the rule raises
`InvalidFamilyInput` on this record, and `proof_keeps_last_40` fails this test
again. `insured_status.py` doesn't change. `round_25_mutations` in
`track_b_insured_status_mutations.json` holds that run, and a later list takes
round 24's 135 mutations and this one.

## Not in scope

No real data, population evaluation, baseline claiming hazard, behavioral
Expand Down
32 changes: 31 additions & 1 deletion docs/design/track_b_insured_status_mutations.json
Original file line number Diff line number Diff line change
Expand Up @@ -16686,5 +16686,35 @@
"tests/test_track_b_insured_status_status_stress.py": "882e3b1f0a1c91fd126d8ba85da50fd7672b475b13b81eb48e132d470cd27bed"
},
"round_24_replay": "Write round_24_runner_source to scratch/review/run_round24_named.py. For each round_24_mutations record, write name/source_sha256/changes to its spec_path, then execute its exact command at d30e4426. Mutations apply only in memory.",
"round_24_final_source_sha256": "7d2d202b02bfcc14ee4d988cb35bef8706bf28de7af494fd6bad2f674ca80c89"
"round_24_final_source_sha256": "7d2d202b02bfcc14ee4d988cb35bef8706bf28de7af494fd6bad2f674ca80c89",
"round_25_mutations": [
{
"changes": [
{
"before": " window, required = elapsed, max(6, len(elapsed) // 2)\n return len(set(window) & assigned) >= required\n",
"after": " window, required = elapsed[-40:], max(6, min(40, len(elapsed)) // 2)\n return len(set(window) & assigned) >= required\n"
}
],
"command": "env POPULACE_DYNAMICS_PSID_DIR=/nonexistent/trackb-round24 POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/trackb-round24 OMP_NUM_THREADS=1 OMP_WAIT_POLICY=PASSIVE POLARS_MAX_THREADS=1 PYTHONPATH=$PWD/src:$PWD PYTHONDONTWRITEBYTECODE=1 TRACKB_ROUND24_MUTATION=scratch/review/round25-mutation-proof_keeps_last_40.json HYPOTHESIS_STORAGE_DIRECTORY=scratch/review/hyp25/proof_keeps_last_40 python scratch/review/run_round24_named.py -p no:xdist -p no:cacheprovider -q -x --tb=line -rf tests/test_track_b_insured_status_fix_round_17.py::test_unknown_prior_history_keeps_its_row_on_the_whole_period",
"exit_code": 1,
"failing_test_nodes": [
"tests/test_track_b_insured_status_fix_round_17.py::test_unknown_prior_history_keeps_its_row_on_the_whole_period"
],
"log": "scratch/review/round25-mutation-proof_keeps_last_40.log",
"name": "proof_keeps_last_40",
"open_audit": {
"os.system": 0,
"restricted_opens": 0,
"subprocess.Popen": 0
},
"source_sha256": "7d2d202b02bfcc14ee4d988cb35bef8706bf28de7af494fd6bad2f674ca80c89",
"spec_path": "scratch/review/round25-mutation-proof_keeps_last_40.json"
}
],
"round_25_note": "proof_keeps_last_40 fails the named test with the July onset. At 4ab97297, with the August onset, the same cap, written as (elapsed[-40:], 20) past 40 quarters, passed all 1,997 cases in the 41 insured test modules. A later round's list takes round 24's 135 mutations and this one.",
"round_25_test_sha256": {
"tests/test_track_b_insured_status_fix_round_17.py": "c6fa611f7ba7b031c97dc09c7fc937853d5f949d5449bfd1921d9c9b29dd1065"
},
"round_25_replay": "Write round_24_runner_source to scratch/review/run_round24_named.py. Write the round_25_mutations record's name/source_sha256/changes to its spec_path, then execute its exact command. Mutations apply only in memory.",
"round_25_final_source_sha256": "7d2d202b02bfcc14ee4d988cb35bef8706bf28de7af494fd6bad2f674ca80c89"
}
9 changes: 6 additions & 3 deletions tests/test_track_b_insured_status_fix_round_17.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,12 +185,15 @@ def test_an_age_62_fully_request_keeps_its_row(exit_month, last):
def test_unknown_prior_history_keeps_its_row_on_the_whole_period():
# Fixed QCs sit in 1965Q2, 1965Q3, 1967Q1 to Q3 and 1971Q3 to 1975Q2. The
# joint proof's clock drops uncredited quarters after the first possible
# prior, which leaves 42 quarters at 1975Q3. The 21 QCs meet half of those
# and only 19 sit in the last 40, so the proof must not reject the row.
# prior. No prior can end in 1975Q3 before a July onset, so the clock keeps
# that quarter and holds 42 at 1975Q3. The 21 QCs meet half of those and
# only 19 sit in the last 40, so the proof must not reject the row. A prior
# can end in July before an August onset, which leaves 41 quarters with 20
# QCs in the last 40, and that record keeps its row on either reading.
person = i.Person(
date(1944, 2, 2),
sex=i.Sex.FEMALE,
disability_onset=date(1975, 8, 15),
disability_onset=date(1975, 7, 15),
current_disability_period_established=True,
current_disability_period_provenance=OBSERVED,
current_disability_period_end=date(1976, 6, 30),
Expand Down
Loading