From 2f3b1dbd3f99ddd01795460f39bae161992effc5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 8 Jun 2026 12:42:24 +0000 Subject: [PATCH] test(modelling): Solar PV Elmhurst cascade pins + battery tripwire MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Slice 9 of the Solar PV Recommendation Generator (ADR-0026). Pins the overlay→calculator PV cascade against Elmhurst's before/after re-lodgements of cert 001431, across the orientation/pitch/overshading config space (the certs lodge synthetic 1.00 kWp test vectors): - SE/SW, shaded (overshading 3/2), pitch 30°/45° - E/W, unshaded, pitch 60°/45° - NW/N, unshaded, pitch 60°/45° (the low-yield orientations) Each hand-built SolarOverlay reproduces the relodged after at abs ≤ 1e-4 on SAP / CO2 / primary energy. Battery tripwire (per user): the "with battery" cert lodges a §19 5 kWh battery the current extractor does NOT parse, so it scores identically to its no-battery twin — the no-battery overlay reproduces it today, and the pin will fail (alerting us to switch to the with-battery overlay) once the extractor parses the battery. A companion test pins that the calculator already models the 5 kWh battery (it raises SAP), so the fix target is established. All five certs share an EES 'WGK' / SAP-code-502 main-heating lodgement the mapper doesn't yet derive a fuel for; the pins patch the shared fuel (mains gas 26) identically on before+after to isolate the PV delta (the solar overlay never touches heating), and `test_solar_before_baselines` xfails as the forcing-function tripwire for that separate mapper-front gap. Co-Authored-By: Claude Opus 4.8 --- .../fixtures/solar_pv_001431_before.pdf | Bin 0 -> 79721 bytes .../solar_pv_no_battery_001431_after_1.pdf | Bin 0 -> 80820 bytes .../solar_pv_no_battery_001431_after_2.pdf | Bin 0 -> 80810 bytes .../solar_pv_no_battery_001431_after_3.pdf | Bin 0 -> 80813 bytes .../solar_pv_with_battery_001431_after.pdf | Bin 0 -> 80100 bytes .../modelling/test_elmhurst_cascade_pins.py | 194 +++++++++++++++++- 6 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 tests/domain/modelling/fixtures/solar_pv_001431_before.pdf create mode 100644 tests/domain/modelling/fixtures/solar_pv_no_battery_001431_after_1.pdf create mode 100644 tests/domain/modelling/fixtures/solar_pv_no_battery_001431_after_2.pdf create mode 100644 tests/domain/modelling/fixtures/solar_pv_no_battery_001431_after_3.pdf create mode 100644 tests/domain/modelling/fixtures/solar_pv_with_battery_001431_after.pdf diff --git a/tests/domain/modelling/fixtures/solar_pv_001431_before.pdf b/tests/domain/modelling/fixtures/solar_pv_001431_before.pdf new file mode 100644 index 0000000000000000000000000000000000000000..190f4aad66bb1fa3f63111b313eef067d6114c0c GIT binary patch literal 79721 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 literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/fixtures/solar_pv_no_battery_001431_after_1.pdf b/tests/domain/modelling/fixtures/solar_pv_no_battery_001431_after_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f38fbe1c3b18e73827456ecf91ac0126142b9f94 GIT binary patch literal 80820 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 literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/fixtures/solar_pv_no_battery_001431_after_2.pdf b/tests/domain/modelling/fixtures/solar_pv_no_battery_001431_after_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0cc5da41a6d8df82283ebb9a77d17f6f00383fcb GIT binary patch literal 80810 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 Q3FG4jL-ANxWL4z;2ORy5D*ylh literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/fixtures/solar_pv_with_battery_001431_after.pdf b/tests/domain/modelling/fixtures/solar_pv_with_battery_001431_after.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5a76ea7e623ebb2cb04e95fe942105b6ee8e6d53 GIT binary patch literal 80100 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 literal 0 HcmV?d00001 diff --git a/tests/domain/modelling/test_elmhurst_cascade_pins.py b/tests/domain/modelling/test_elmhurst_cascade_pins.py index b4e564be..63a84026 100644 --- a/tests/domain/modelling/test_elmhurst_cascade_pins.py +++ b/tests/domain/modelling/test_elmhurst_cascade_pins.py @@ -22,6 +22,9 @@ import pytest from datatypes.epc.domain.epc_property_data import ( BuildingPartIdentifier, EpcPropertyData, + PhotovoltaicArray, + PvBatteries, + PvBattery, ) from domain.modelling.scoring.package_scorer import PackageScorer, Score from domain.modelling.product import Product @@ -30,7 +33,11 @@ from domain.modelling.generators.floor_recommendation import recommend_floor_ins from domain.modelling.generators.roof_recommendation import ( recommend_roof_insulation, ) -from domain.modelling.simulation import BuildingPartOverlay, EpcSimulation +from domain.modelling.simulation import ( + BuildingPartOverlay, + EpcSimulation, + SolarOverlay, +) from domain.modelling.generators.wall_recommendation import recommend_cavity_wall from domain.geospatial.planning_restrictions import PlanningRestrictions from domain.modelling.generators.solid_wall_recommendation import ( @@ -747,3 +754,188 @@ def test_gas_boiler_instant_hw_before_baselines() -> None: # Act / Assert — currently raises MissingMainFuelType. Sap10Calculator().calculate(before) + + +# --- Solar PV cascade pins (ADR-0026) ------------------------------------- +# +# The solar before/after Summaries lodge *synthetic* PV arrays (each 1.00 kWp, +# varied orientation/pitch/overshading) — deterministic test vectors chosen to +# exercise the overlay -> calculator PV path across the config space, NOT the +# Google-derived production arrays. So these pins hand-build the SolarOverlay +# matching each after-cert's lodged arrays (the generator's own overlay is +# Google-sourced and validated separately in test_solar_recommendation / +# test_solar_overshading); the cascade proves `_fold_solar` + the calculator +# reproduce Elmhurst's PV re-lodgement exactly. +# +# All five certs share one main-heating system lodged with EES code 'WGK' / +# Main Heating SAP code 502, which the Elmhurst mapper does not yet derive a +# main_fuel_type for (it maps to '' -> MissingMainFuelType). The solar overlay +# never touches heating, so the pins patch the shared fuel to mains gas (26) on +# both before and after identically — the heating contribution is then equal on +# both sides and the delta isolates the PV change. The unresolved raw baseline +# is a separate mapper-front gap, tripwired by `test_solar_before_baselines`. + +_SOLAR_MAINS_GAS_FUEL: Final[int] = 26 + + +def _parse_solar(fixture_name: str) -> EpcPropertyData: + """Parse a solar before/after Summary, patching the shared main-heating + fuel to mains gas (the EES 'WGK' / SAP code 502 mapper-front gap — see the + section note). Applied identically on before + after, so it cancels in the + PV delta.""" + epc: EpcPropertyData = parse_recommendation_summary(fixture_name) + main = epc.sap_heating.main_heating_details[0] + if not main.main_fuel_type: + main.main_fuel_type = _SOLAR_MAINS_GAS_FUEL + return epc + + +def test_solar_overlay_reproduces_relodged_after_se_sw_shaded() -> None: + # Arrange — two shaded planes: SE (octant 4) at 30° pitch under significant + # shading (code 3), and SW (octant 6) at 45° pitch under modest shading + # (code 2); each a 1.00 kWp array. Exercises the overshading + orientation + # spread. + before: EpcPropertyData = _parse_solar("solar_pv_001431_before.pdf") + after: EpcPropertyData = _parse_solar("solar_pv_no_battery_001431_after_1.pdf") + overlay = EpcSimulation( + solar=SolarOverlay( + photovoltaic_arrays=[ + PhotovoltaicArray(peak_power=1.0, pitch=2, orientation=4, overshading=3), + PhotovoltaicArray(peak_power=1.0, pitch=3, orientation=6, overshading=2), + ], + pv_diverter_present=True, + is_dwelling_export_capable=True, + ) + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, overlay) + + +def test_solar_overlay_reproduces_relodged_after_e_w_unshaded() -> None: + # Arrange — E (octant 3) at 60° pitch and W (octant 7) at 45° pitch, both + # unshaded (code 1). Exercises the steeper pitches with no shading. + before: EpcPropertyData = _parse_solar("solar_pv_001431_before.pdf") + after: EpcPropertyData = _parse_solar("solar_pv_no_battery_001431_after_2.pdf") + overlay = EpcSimulation( + solar=SolarOverlay( + photovoltaic_arrays=[ + PhotovoltaicArray(peak_power=1.0, pitch=4, orientation=3, overshading=1), + PhotovoltaicArray(peak_power=1.0, pitch=3, orientation=7, overshading=1), + ], + pv_diverter_present=True, + is_dwelling_export_capable=True, + ) + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, overlay) + + +def test_solar_overlay_reproduces_relodged_after_nw_n_unshaded() -> None: + # Arrange — NW (octant 8) at 60° pitch and N (octant 1) at 45° pitch, both + # unshaded. The least-productive orientations (the N plane in particular) + # exercise the low-yield end of the SAP Appendix M output. + before: EpcPropertyData = _parse_solar("solar_pv_001431_before.pdf") + after: EpcPropertyData = _parse_solar("solar_pv_no_battery_001431_after_3.pdf") + overlay = EpcSimulation( + solar=SolarOverlay( + photovoltaic_arrays=[ + PhotovoltaicArray(peak_power=1.0, pitch=4, orientation=8, overshading=1), + PhotovoltaicArray(peak_power=1.0, pitch=3, orientation=1, overshading=1), + ], + pv_diverter_present=True, + is_dwelling_export_capable=True, + ) + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, overlay) + + +def test_battery_cert_currently_reproduced_by_the_no_battery_overlay() -> None: + # Tripwire (user-requested): the "with battery" cert lodges a §19 5 kWh + # battery, but the current Elmhurst extractor does NOT parse it (the parsed + # EpcPropertyData has pv_batteries=None). So the cert currently scores + # identically to its no-battery twin, and the *no-battery* overlay (same NW/N + # arrays) reproduces it exactly. When the extractor learns to parse the §19 + # Batteries block, the after-cert will gain ~+1.1 SAP from the 5 kWh battery + # and THIS PIN WILL FAIL — the fix is then to switch to the with-battery + # overlay below (which the calculator already models, see the next test). + before: EpcPropertyData = _parse_solar("solar_pv_001431_before.pdf") + after: EpcPropertyData = _parse_solar("solar_pv_with_battery_001431_after.pdf") + overlay = EpcSimulation( + solar=SolarOverlay( + photovoltaic_arrays=[ + PhotovoltaicArray(peak_power=1.0, pitch=4, orientation=8, overshading=1), + PhotovoltaicArray(peak_power=1.0, pitch=3, orientation=1, overshading=1), + ], + pv_diverter_present=True, + is_dwelling_export_capable=True, + ) + ) + + # Act / Assert + _assert_overlay_reproduces_after(before, after, overlay) + + +def test_battery_overlay_raises_sap_above_its_no_battery_twin() -> None: + # The calculator DOES model a PV battery (App M monthly self-consumption), so + # the recommendation's battery variant is a meaningful, higher-SAP Option — + # even though the example cert's battery is not yet parsed. This pins the fix + # target for the tripwire above: once the extractor parses the §19 battery, + # the with-battery overlay should reproduce the (then battery-bearing) cert. + before: EpcPropertyData = _parse_solar("solar_pv_001431_before.pdf") + arrays = [ + PhotovoltaicArray(peak_power=1.0, pitch=4, orientation=8, overshading=1), + PhotovoltaicArray(peak_power=1.0, pitch=3, orientation=1, overshading=1), + ] + no_battery = EpcSimulation( + solar=SolarOverlay( + photovoltaic_arrays=arrays, + pv_diverter_present=True, + is_dwelling_export_capable=True, + ) + ) + with_battery = EpcSimulation( + solar=SolarOverlay( + photovoltaic_arrays=arrays, + pv_diverter_present=True, + is_dwelling_export_capable=True, + pv_batteries=PvBatteries(pv_battery=PvBattery(battery_capacity=5.0)), + ) + ) + + # Act + scorer = PackageScorer(Sap10Calculator()) + sap_no_battery: float = scorer.score(before, [no_battery]).sap_continuous + sap_with_battery: float = scorer.score(before, [with_battery]).sap_continuous + + # Assert — the 5 kWh battery raises SAP by a meaningful margin. + assert sap_with_battery > sap_no_battery + 1e-3 + + +_SOLAR_FUEL_GAP_REASON: Final[str] = ( + "Blocked on the Elmhurst mapper deriving main_fuel_type for the main heating " + "lodged with EES code 'WGK' / Main Heating SAP code 502: it currently maps to " + "'' (empty), so Sap10Calculator raises MissingMainFuelType when baselining the " + "raw solar before. The solar overlay never touches heating, so the cascade " + "pins above patch the shared fuel to mains gas (26) on before + after to " + "isolate the PV delta — only baselining the unmodified before is blocked. " + "Flips green once the mapper derives mains gas from the WGK/502 lodgement. " + "Owner: mapper/extractor front." +) + + +@pytest.mark.xfail(strict=True, reason=_SOLAR_FUEL_GAP_REASON) +def test_solar_before_baselines() -> None: + # The Modelling pipeline baselines the dwelling before modelling it, so the + # before must be scorable on its own. This solar cert is not yet: its main + # fuel is unresolved (see reason). A failing tripwire for the mapper fix. + # Arrange + before: EpcPropertyData = parse_recommendation_summary( + "solar_pv_001431_before.pdf" + ) + + # Act / Assert — currently raises MissingMainFuelType. + Sap10Calculator().calculate(before)