homemaker-layout/tests
Bruno Postle 69d4dcbf23 Phase 3 gate (homemaker-py-uxz): native fitness 35/35 corpus parity; retire oracle from search
Bug fix: _entrance_bid_for_stair now returns None when the stair leaf has an
outdoor neighbour with public access — Perl's Entrances function picks the
via-outdoor priority (3.5 > 3) which maps the stair to a leaf id rather than
a boundary id, so Boundary_Id(edge) eq leaf_id never matches and no entrance
corners are added.  Without this fix 7 files had an extra 'staircase volume'
failure from corners [3,1,2] giving stair_fit=0.718 instead of [3]→1.095.

New: Fitness._evaluate_full() extracts the shared pipeline so evaluate()
and score_with_fails() both use it.  NativeEvaluator added to innerloop.py
as a drop-in for OracleEvaluator; optimise() defaults to use_native=True.

Gate results: 35/35 score parity (rel_tol=1e-4), 35/35 fail-set identity,
native speed ~45ms/eval vs oracle ~1000ms/eval batched = 23x speedup.
OracleEvaluator kept for validation; oracle.score_batch unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 21:44:42 +01:00
..
test_dom_corpus.py Phase 3 gate (homemaker-py-uxz): native fitness 35/35 corpus parity; retire oracle from search 2026-06-13 21:44:42 +01:00
test_driver.py Memetic search driver: steady-state GA over topology, warm-started inner loop 2026-06-12 14:22:26 +01:00
test_genome.py Topology genome: base tree + per-storey deltas + type assignment 2026-06-12 13:52:32 +01:00
test_graph.py Native fitness: adjacency graph + merge_divided (homemaker-py-3y7) 2026-06-12 21:57:45 +01:00
test_innerloop.py Fix cma convergence test: assert basin convergence, not final-digit polish 2026-06-12 09:46:13 +01:00
test_operators.py Fix benchmark cell arg order and mutate_swap on undivided trees 2026-06-12 23:26:22 +01:00
test_oracle.py Geometry inner loop: batched full-objective ratio optimiser (CMA-ES) 2026-06-12 09:42:24 +01:00