From b3badc9b1066b4a1d49e449c46e5186ad914e157 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jun 2026 19:09:23 +0000 Subject: [PATCH] test(modelling): HHRSH before/after cascade pins (001431) at 1e-4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The same absolute-target HHR overlay reproduces the common relodged after from two different base systems (existing electric storage; "no system present" electric) — proving the bundle is a true whole-system end-state. Closes one named gap the pin surfaced: the relodged HHR cylinder lodges cylinder_thermostat='Y', so HeatingOverlay + _fold_heating + the HHRSH overlay gain cylinder_thermostat (ΔSAP 0.065 -> <1e-4). ADR-0024. Co-Authored-By: Claude Opus 4.8 --- .../generators/heating_recommendation.py | 3 +- .../modelling/scoring/overlay_applicator.py | 1 + domain/modelling/simulation.py | 1 + .../fixtures/hhr_storage_001431_after.pdf | Bin 0 -> 79948 bytes ...ge_from_electric_storage_001431_before.pdf | Bin 0 -> 79861 bytes ...r_storage_from_no_system_001431_before.pdf | Bin 0 -> 79793 bytes .../modelling/test_elmhurst_cascade_pins.py | 44 ++++++++++++++++++ .../modelling/test_heating_recommendation.py | 1 + 8 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 tests/domain/modelling/fixtures/hhr_storage_001431_after.pdf create mode 100644 tests/domain/modelling/fixtures/hhr_storage_from_electric_storage_001431_before.pdf create mode 100644 tests/domain/modelling/fixtures/hhr_storage_from_no_system_001431_before.pdf diff --git a/domain/modelling/generators/heating_recommendation.py b/domain/modelling/generators/heating_recommendation.py index b13068b8..4c018635 100644 --- a/domain/modelling/generators/heating_recommendation.py +++ b/domain/modelling/generators/heating_recommendation.py @@ -46,6 +46,7 @@ _HHR_STORAGE_OVERLAY = HeatingOverlay( cylinder_size=2, cylinder_insulation_type=1, cylinder_insulation_thickness_mm=120, + cylinder_thermostat="Y", has_hot_water_cylinder=True, meter_type="Dual", ) @@ -98,6 +99,6 @@ def _hhr_storage_eligible(epc: EpcPropertyData) -> bool: return False if main.main_heating_category == _HEAT_PUMP_CATEGORY: return False - off_gas: bool = epc.sap_energy_source is None or not epc.sap_energy_source.mains_gas + off_gas: bool = not epc.sap_energy_source.mains_gas electric_main: bool = main.main_fuel_type == _ELECTRICITY_FUEL return electric_main or off_gas diff --git a/domain/modelling/scoring/overlay_applicator.py b/domain/modelling/scoring/overlay_applicator.py index e2860465..73934779 100644 --- a/domain/modelling/scoring/overlay_applicator.py +++ b/domain/modelling/scoring/overlay_applicator.py @@ -74,6 +74,7 @@ _SAP_HEATING_FIELDS: tuple[str, ...] = ( "cylinder_size", "cylinder_insulation_type", "cylinder_insulation_thickness_mm", + "cylinder_thermostat", ) _ENERGY_SOURCE_FIELDS: tuple[str, ...] = ("meter_type", "mains_gas") diff --git a/domain/modelling/simulation.py b/domain/modelling/simulation.py index 085ad30b..2e9757e8 100644 --- a/domain/modelling/simulation.py +++ b/domain/modelling/simulation.py @@ -120,6 +120,7 @@ class HeatingOverlay: cylinder_size: Optional[Union[int, str]] = None cylinder_insulation_type: Optional[Union[int, str]] = None cylinder_insulation_thickness_mm: Optional[int] = None + cylinder_thermostat: Optional[str] = None # EpcPropertyData (top-level) has_hot_water_cylinder: Optional[bool] = None # sap_energy_source diff --git a/tests/domain/modelling/fixtures/hhr_storage_001431_after.pdf b/tests/domain/modelling/fixtures/hhr_storage_001431_after.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d23b202407cd101cfdca65aca5d65102a8c9ae09 GIT binary patch literal 79948 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 NtnA2CR1%7k{{>#-?HB+6 literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/fixtures/hhr_storage_from_electric_storage_001431_before.pdf b/tests/domain/modelling/fixtures/hhr_storage_from_electric_storage_001431_before.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f70e056898abc75b298860bf87d71accd55772d9 GIT binary patch literal 79861 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 _assert_overlay_reproduces_after( before, after, recommendation.options[0].overlay ) + + +def test_hhr_storage_overlay_reproduces_the_relodged_after_from_electric_storage() -> None: + # Arrange — an existing electric storage system re-lodged as high-heat- + # retention storage (Table 4a 402 -> 409, control 2401 -> 2404), gaining an + # off-peak immersion cylinder and a dual meter (ADR-0024). + before: EpcPropertyData = parse_recommendation_summary( + "hhr_storage_from_electric_storage_001431_before.pdf" + ) + after: EpcPropertyData = parse_recommendation_summary( + "hhr_storage_001431_after.pdf" + ) + recommendation: Recommendation | None = recommend_heating(before, _AnyProduct()) + assert recommendation is not None + option = next( + o + for o in recommendation.options + if o.measure_type == "high_heat_retention_storage_heaters" + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, option.overlay) + + +def test_hhr_storage_overlay_reproduces_the_relodged_after_from_no_system() -> None: + # Arrange — a "no system present" electric dwelling re-lodged as HHR storage; + # the same absolute-target overlay must reproduce the common after. + before: EpcPropertyData = parse_recommendation_summary( + "hhr_storage_from_no_system_001431_before.pdf" + ) + after: EpcPropertyData = parse_recommendation_summary( + "hhr_storage_001431_after.pdf" + ) + recommendation: Recommendation | None = recommend_heating(before, _AnyProduct()) + assert recommendation is not None + option = next( + o + for o in recommendation.options + if o.measure_type == "high_heat_retention_storage_heaters" + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, option.overlay) diff --git a/tests/domain/modelling/test_heating_recommendation.py b/tests/domain/modelling/test_heating_recommendation.py index aa27ae04..5ecf8c44 100644 --- a/tests/domain/modelling/test_heating_recommendation.py +++ b/tests/domain/modelling/test_heating_recommendation.py @@ -62,6 +62,7 @@ def test_electric_storage_dwelling_yields_an_hhr_storage_bundle() -> None: cylinder_size=2, cylinder_insulation_type=1, cylinder_insulation_thickness_mm=120, + cylinder_thermostat="Y", has_hot_water_cylinder=True, meter_type="Dual", )