diff --git a/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000487.py b/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000487.py index 3b9a87bd..2ba0d166 100644 --- a/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000487.py +++ b/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000487.py @@ -423,17 +423,30 @@ LINE_73_M_TOTAL_INTERNAL_GAINS_W: tuple[float, ...] = ( # ============================================================================ # §6 Solar gains — cert-derived inputs + expected outputs # ============================================================================ -# 2 wall windows, both South-facing, 2 glazing types (Manufacturer g⊥): -# "Double with unknown" g=0.76: S 0.77 -# "Double between 2002" g=0.72: S 6.69 -# All PVC frame. No roof windows, no rooflights. +# 5 wall windows mirroring the Summary §11 1:1, matching the Elmhurst +# mapper's per-row extraction (mapper-vs-hand-built field-parity test). +# All South-facing (orient=5) / PVC frame. Two glazing-type groups; per- +# bp totals preserved (cascade-equivalent): +# g=0.76/U=2.8 (pre-2002): 0.77 m² (Ext1) — unchanged +# g=0.72/U=1.4 (post-2022): 6.69 m² total +# Main: 1.65 m² (1 row) +# Ext1: 5.04 m² split 2.16 + 1.53 + 1.35 (3 rows) +# No roof windows, no rooflights. SECTION_6_VERTICAL_WINDOWS: tuple[SapWindow, ...] = ( - # Windows 1 (PDF (27) U_eff=2.5180, raw U=2.8 pre-2002; g_⊥=0.76): - # area 0.77 m². make_window default u_value=2.8 matches. - make_window(orientation=5, width=0.77, height=1.0, solar_transmittance=0.76), - # Windows 2 (PDF (27) U_eff=1.3258, raw U=1.4 post-2022; g_⊥=0.72): - # area 6.69 m² (1.65 + 5.04). Replaced post-2022 → tighter U. - make_window(orientation=5, width=6.69, height=1.0, solar_transmittance=0.72, u_value=1.4), + # Window 1 on Ext1 (smaller pre-2002 window) + make_window(orientation=5, width=0.77, height=1.0, solar_transmittance=0.76, + u_value=2.8, window_location="1st Extension"), + # Windows 2 on Ext1 (post-2022 replacements) + make_window(orientation=5, width=2.16, height=1.0, solar_transmittance=0.72, + u_value=1.4, window_location="1st Extension"), + # Window 2 on Main (the only Main window — mapper places it between Ext1 rows) + make_window(orientation=5, width=1.65, height=1.0, solar_transmittance=0.72, + u_value=1.4, window_location="Main"), + # Two more post-2022 Ext1 windows + make_window(orientation=5, width=1.53, height=1.0, solar_transmittance=0.72, + u_value=1.4, window_location="1st Extension"), + make_window(orientation=5, width=1.35, height=1.0, solar_transmittance=0.72, + u_value=1.4, window_location="1st Extension"), ) SECTION_6_ROOF_WINDOWS: tuple[RoofWindowInput, ...] = () SECTION_6_ROOFLIGHTS: tuple[RooflightInput, ...] = ()