homemaker-layout/tests
Bruno Postle 229c3c6933 homemaker-py-6xh: wire shape-curve DP into driver.py as an NM warm-start
Promotes the validated shape-curve DP (experiments/shapecurve_spike.py,
2g7.4, DESIGN.md §37.2) from a reference-only spike into
src/homemaker_layout/shapecurve.py, and wires it into driver._evaluate as a
warm-start for innerloop.optimise: when eligible (single storey, no
leaf_sharing/superpose/max_share/multi_use) and no caller-supplied x0, the
DP's exact shape-feasible ratio point is written onto the tree before NM
runs, off by default (shapecurve_warmstart=/--shapecurve-warmstart).

Caught and fixed a latent bug promoting the spike: realise() could leave
numpy.float64 in `division`, which yaml.safe_dump can't serialise — the
original spike never round-tripped through dom.dumps so this was never hit.

A/B on harbor-house-l0 (experiments/ab_shapecurve_warmstart.py, budget=2000,
5 seeds): mean total fails 16.6 (on) vs 19.6 (off), ~3.5x mean fitness
improvement; mean hard-fail count alone was a noise-level wash at this
sample size. Full writeup in DESIGN.md §37.4.

Deliberately deferred to new tracked beads (children of 2g7): DP-exact hard
pre-filter (wkh), multi-storey below-link support (koo), leaf_sharing/
co_type modelling (tym), true skew-quad polygon algebra (ekc) — 6xh stays
in_progress pending those.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LSwQwpEaHFBkeVSDDWd75S
2026-08-03 18:43: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-6xh: wire shape-curve DP into driver.py as an NM warm-start 2026-08-03 18:43: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-6xh: wire shape-curve DP into driver.py as an NM warm-start 2026-08-03 18:43: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