From 9fa98428d0006742d1ef43c963081c0b674754dd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 25 May 2026 18:11:12 +0000 Subject: [PATCH] =?UTF-8?q?Slice=2083:=201:1=20windows=20expansion=20in=20?= =?UTF-8?q?cohort=20000490=20(3=20=E2=86=92=206=20entries)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes the final `sap_windows: LEN 6 vs 3` divergence by replacing the cohort 000490 hand-built's 3-window collapsed encoding with 6 SapWindow entries mirroring the Summary §11 1:1. Single glazing-type group (PVC double / g⊥=0.76 / U=2.8); per-bp totals preserved: Main NW (orient=8): 2.70 m² split 1.26 + 1.44 (2 rows) Main NE (orient=2): 0.81 m² (1 row, unchanged) Ext1 SE (orient=4): 5.52 m² split 1.92 + 2.16 + 1.44 (3 rows) Cascade output unchanged: all 11 `_FIXTURE_PINS["000490"]` SapResult pins remain GREEN at 1e-4 against worksheet `SAP value 57.3979`. **Cohort 000490 is now fully Layer-2 GREEN** — 4 of 6 cohort certs (000474, 000477, 000480, 000487, 000490) now zero-diff Layer-2; 000516 is the last cohort cert before returning to cert 001479. Pyright net-zero. Co-Authored-By: Claude Opus 4.7 --- .../tests/_elmhurst_worksheet_000490.py | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000490.py b/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000490.py index 98b86231..54daf497 100644 --- a/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000490.py +++ b/packages/domain/src/domain/sap/worksheet/tests/_elmhurst_worksheet_000490.py @@ -359,12 +359,30 @@ LINE_73_M_TOTAL_INTERNAL_GAINS_W: tuple[float, ...] = ( # ============================================================================ # §6 Solar gains — cert-derived inputs + expected outputs # ============================================================================ -# 3 wall windows: NE 0.81, SE 5.52, NW 2.70 — all DG pre-2002 / PVC / 12 mm -# with manufacturer g⊥=0.76. No roof windows, no rooflights. +# 6 wall windows mirroring the Summary §11 1:1, matching the Elmhurst +# mapper's per-row extraction. All DG pre-2002 / PVC / 12 mm with +# manufacturer g⊥=0.76 / U=2.8 — single glazing-type group, per-bp +# totals preserved (cascade-equivalent): +# Main NW (orient=8): 2.70 m² split 1.26 + 1.44 (2 rows) +# Main NE (orient=2): 0.81 m² (1 row) +# Ext1 SE (orient=4): 5.52 m² split 1.92 + 2.16 + 1.44 (3 rows) +# No roof windows, no rooflights. SECTION_6_VERTICAL_WINDOWS: tuple[SapWindow, ...] = ( - make_window(orientation=2, width=0.81, height=1.0, solar_transmittance=0.76), - make_window(orientation=4, width=5.52, height=1.0, solar_transmittance=0.76), - make_window(orientation=8, width=2.70, height=1.0, solar_transmittance=0.76), + # Windows on Main — NW (orient=8) + make_window(orientation=8, width=1.26, height=1.0, solar_transmittance=0.76, + u_value=2.8, window_location="Main"), + make_window(orientation=8, width=1.44, height=1.0, solar_transmittance=0.76, + u_value=2.8, window_location="Main"), + # Window on Main — NE (orient=2) + make_window(orientation=2, width=0.81, height=1.0, solar_transmittance=0.76, + u_value=2.8, window_location="Main"), + # Windows on Ext1 — SE (orient=4) + make_window(orientation=4, width=1.92, height=1.0, solar_transmittance=0.76, + u_value=2.8, window_location="1st Extension"), + make_window(orientation=4, width=2.16, height=1.0, solar_transmittance=0.76, + u_value=2.8, window_location="1st Extension"), + make_window(orientation=4, width=1.44, height=1.0, solar_transmittance=0.76, + u_value=2.8, window_location="1st Extension"), ) SECTION_6_ROOF_WINDOWS: tuple[RoofWindowInput, ...] = () SECTION_6_ROOFLIGHTS: tuple[RooflightInput, ...] = ()