From 5c9ca727cd18013b9f0e1197b4c460bac84d96b9 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Thu, 2 Jul 2026 11:02:11 +0000 Subject: [PATCH] =?UTF-8?q?Landlord=20'Secondary=20glazing'=20override=20o?= =?UTF-8?q?verlays=20SAP10=20glazing=20code=205=20=F0=9F=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- tests/domain/epc/test_glazing_overlay.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/domain/epc/test_glazing_overlay.py b/tests/domain/epc/test_glazing_overlay.py index 81c35e6ca..1c58fe590 100644 --- a/tests/domain/epc/test_glazing_overlay.py +++ b/tests/domain/epc/test_glazing_overlay.py @@ -48,6 +48,21 @@ def test_glazing_types_decode_to_their_sap_codes( assert simulation.glazing.glazing_type == code +def test_secondary_glazing_overlays_its_glazing_code() -> None: + # Hyde-796 landlords assert "100% secondary glazing (sap 9.94)"; flattening it + # to Single applies U = 4.8 instead of secondary's 2.9 (Model#1416). The + # calculator already understands secondary glazing — SAP10 glazing_type code 5 + # (`_GLAZING_CODE_TO_UWINDOW` in heat_transmission). + + # Act + simulation = glazing_overlay_for("Secondary glazing", 0) + + # Assert + assert simulation is not None + assert simulation.glazing is not None + assert simulation.glazing.glazing_type == 5 + + @pytest.mark.parametrize("glazing_value", ["Unknown", ""]) def test_unresolvable_glazing_produces_no_overlay(glazing_value: str) -> None: # Act