Model/tests/domain/epc
Jun-te Kim e27ecf4a26 Set electric-storage category (7) on storage property overlays
`_category_for` mapped room heaters / heat pumps / heat networks but
returned None for electric-storage-heater codes (401-409), so a storage
system override emitted `sap_main_heating_code=409` +
`main_heating_category=None` while `_control_for` right beside it correctly
set the storage charge control — an asymmetry. Map storage codes to
category 7 so the overlaid cert is internally consistent (code 401-409 <->
category 7), matching the control/fuel/meter companions the overlay drags.

Consistency follow-up to the modelling HHRSH off-peak-pricing fix (#1426):
that PR's Table 12a resolver already prices any storage-coded system
off-peak regardless of category, so this is NOT a live mispricing — it
removes a latent code<->category inconsistency that other category-keyed
logic (responsiveness, pumps/fans) could trip on.

Tests: storage/HHRSH overlay tests now also assert `main_heating_category==7`.
tests/domain/epc (347) + prediction/override/reclassify (118) green; source
pyright-clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 11:45:49 +00:00
..
__init__.py Map landlord-override property type and built form to gov EPC codes 🟩 2026-06-16 15:07:09 +00:00
test_attribute_overlay.py move overlas to its own thing 2026-06-18 10:04:14 +00:00
test_construction_age_band_overlay.py Group landlord property-override enums under domain/epc/property_overrides 🟪 2026-06-19 14:49:58 +00:00
test_glazing_mix_guard.py Resolve dominant double/triple glazing when the era is stated 2026-07-02 08:07:13 +00:00
test_glazing_overlay.py Resolve a MIXED glazing override to no overlay, keeping the cert per-window glazing 🟩 2026-07-01 11:06:50 +00:00
test_main_fuel_guard.py Add individual wood-logs main-fuel archetype (API 6 / RdSAP Table 32 code 20) 2026-07-01 17:00:24 +00:00
test_main_fuel_overlay.py Add individual wood-logs main-fuel archetype (API 6 / RdSAP Table 32 code 20) 2026-07-01 17:00:24 +00:00
test_main_heating_guard.py Deterministically guard the electric-underfloor descriptions 🟥 2026-07-01 16:47:59 +00:00
test_main_heating_system_overlay.py Set electric-storage category (7) on storage property overlays 2026-07-02 11:45:49 +00:00
test_override_code_mapping.py Group landlord property-override enums under domain/epc/property_overrides 🟪 2026-06-19 14:49:58 +00:00
test_property_type_guard.py Guard property_type to its leading dwelling-type token 2026-07-01 17:24:37 +00:00
test_roof_party_ceiling_guard.py Leave a genuine (non-party-ceiling) roof description to the LLM classifier 🟩 2026-07-01 09:38:03 +00:00
test_roof_type_overlay.py Add flat-roof insulation-thickness taxonomy members lock-step with the overlay 🟩 2026-07-01 10:16:35 +00:00
test_wall_type_overlay.py Stop a System-built landlord override being mis-read as a basement 🟥 2026-06-29 19:30:25 +00:00
test_water_heating_guard.py Deterministically guard structured biomass and immersion water-heating descriptions 🟥 2026-07-01 13:05:47 +00:00
test_water_heating_overlay.py Resolve biomass, dual-fuel and biodiesel water-heating overrides off house coal 🟥 2026-07-01 13:02:38 +00:00