homemaker-layout/tests
Bruno Postle 467c732260 homemaker-py-wkh: DP-exact hard pre-filter for driver.py's shape-feasibility prune
Adds shapecurve.is_feasible() (a non-mutating refactor of solve()'s check
phase) and a shapecurve_prune flag composing the DP's exact feasible/
infeasible verdict with operators.predicted_shape_fails' existing heuristic
prune: DP-feasible vetoes a heuristic prune outright; DP-infeasible only
hard-prunes when the incumbent already has zero total fails (exact, since
infeasible proves the shape-fail floor is >=1); otherwise defers unchanged
to today's heuristic threshold. Conservative by design since a wrong prune
is unrecoverable.

Validated 0/400 false negatives across two structurally distinct plots
(harbor-house-l0 + a newly-added programme-house sweep, the first genuinely
non-rectangular plot this DP has been checked against). The real
driver.search A/B on harbor-house-l0 measured NULL (byte-identical off/on)
for a root-caused, pre-existing reason: predicted_shape_fails rarely
triggers organically at this scale, so neither new branch had an opening to
fire -- not a defect in this change. Full writeup: DESIGN.md §37.5.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LSwQwpEaHFBkeVSDDWd75S
2026-08-03 21:10:28 +01:00
..
test_collapse_global.py homemaker-py-r5a: canonicalise stale leaf-share stamps before any relabel 2026-08-02 10:45:12 +01:00
test_collapse_insearch.py qpk: in-search global collapse — run collapse_global per-eval during search 2026-07-19 20:35:18 +01:00
test_compose.py homemaker-py-2g7.1: plan->dom composer (SVG trace -> slicing-tree .dom) 2026-08-03 11:03:02 +01:00
test_conn_grade.py qi6: graded circulation-connectivity signal (§18) 2026-07-18 18:44:24 +01:00
test_dom_corpus.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_driver.py homemaker-py-wkh: DP-exact hard pre-filter for driver.py's shape-feasibility prune 2026-08-03 21:10:28 +01:00
test_evolve_cli.py x3b/§13.10: productionise leaf-sharing — per-code share grain + CLI wiring 2026-06-28 22:04:35 +01:00
test_fitness.py homemaker-py-2g7.3: hard/soft fail tiering behind --use-tiers flag 2026-08-02 16:00:39 +01:00
test_genome.py Phase 6 §11.5: structural niching + restarts — negative result (c4c.5) 2026-06-18 23:42:39 +01:00
test_geometry.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_graph.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_innerloop.py Swap inner loop default from CMA-ES to Nelder-Mead (homemaker-py-d6d) 2026-06-14 08:51:22 +01:00
test_multi_use.py homemaker-py-2g7.1: plan->dom composer (SVG trace -> slicing-tree .dom) 2026-08-03 11:03:02 +01:00
test_operators.py homemaker-py-2g7.1: plan->dom composer (SVG trace -> slicing-tree .dom) 2026-08-03 11:03:02 +01:00
test_oracle.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_shapecurve.py homemaker-py-wkh: DP-exact hard pre-filter for driver.py's shape-feasibility prune 2026-08-03 21:10:28 +01:00
test_staging.py homemaker-py-2g7.1: plan->dom composer (SVG trace -> slicing-tree .dom) 2026-08-03 11:03:02 +01:00
test_superposition.py b3v: interchange:false veto hatch for interchange-class derivation 2026-07-17 16:53:20 +01:00