From 76d07dba39e39a7b560b3a01e0b9bd467da0ecac Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 25 Jun 2026 14:18:27 +0000 Subject: [PATCH] =?UTF-8?q?Pin=20synthesised=20SapFloorDimension=20total?= =?UTF-8?q?=20area=20and=20heat-loss=20perimeter=20as=20regression=20tests?= =?UTF-8?q?=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../epc/domain/tests/test_from_sap_schema.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/datatypes/epc/domain/tests/test_from_sap_schema.py b/datatypes/epc/domain/tests/test_from_sap_schema.py index 2153b3f5..47b6cc8c 100644 --- a/datatypes/epc/domain/tests/test_from_sap_schema.py +++ b/datatypes/epc/domain/tests/test_from_sap_schema.py @@ -800,3 +800,20 @@ class TestFullSapSchema16xNoFloorDimensions: # Act / Assert assert len(main_part.sap_floor_dimensions) == 1 + + def test_synthesised_floor_dimension_total_area(self, epc: EpcPropertyData) -> None: + # Arrange + fd = epc.sap_building_parts[0].sap_floor_dimensions[0] + + # Act / Assert + assert fd.total_floor_area_m2 == 72.0 + + def test_synthesised_floor_dimension_heat_loss_perimeter( + self, epc: EpcPropertyData + ) -> None: + # Arrange: both sap_walls are wall_type=2 (exposed): 43.2 + 3.88 = 47.08 m². + # total_height falls back to 1.0 (no storey heights lodged), so perimeter = 47.08 m. + fd = epc.sap_building_parts[0].sap_floor_dimensions[0] + + # Act / Assert + assert fd.heat_loss_perimeter_m == pytest.approx(47.08)