homemaker-layout/tests
Bruno Postle f160c6dc9e Use Urb's canonical UPPERCASE generic types (C/O); case-insensitive class checks
Bruno's correction: 'C' was never a 'covered' type — Is_Covered is a
geometric predicate. Urb generics are canonically uppercase (get_space_types
qw/C O S/; corpus 100% uppercase). The driver/operator type pool emitted
lowercase 'c'/'o', creating mixed-case designs that fragmented Dom->Ratios
class buckets and fired the latent ratio_type first-match nondeterminism
(which the search promptly reward-hacked). Operators now emit uppercase
generics only and class checks match case-insensitively (t[0].lower() in
'cos', cf. Is_Circulation/Is_Outside). The Urb-side class-sum patch remains
as defensive hardening, zero-impact on canonical designs (35/35 parity).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 19:01:53 +01:00
..
test_dom_corpus.py Geometry inner loop: batched full-objective ratio optimiser (CMA-ES) 2026-06-12 09:42:24 +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_innerloop.py Fix cma convergence test: assert basin convergence, not final-digit polish 2026-06-12 09:46:13 +01:00
test_operators.py Use Urb's canonical UPPERCASE generic types (C/O); case-insensitive class checks 2026-06-12 19:01:53 +01:00
test_oracle.py Geometry inner loop: batched full-objective ratio optimiser (CMA-ES) 2026-06-12 09:42:24 +01:00