mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
S0380.207: promote simulated case 6 to a full SapResult e2e fixture
With S0380.201-206 closing every line ref, the detached dual-oil case 6 (Main 1 radiators 51% / Main 2 underfloor 49%, different parts, no boiler interlock, 6 roof-of-room rooflights) now matches its P960-0001-001431 worksheet to 1e-4 on the whole SapResult. Registered in `test_e2e_elmhurst_sap_score.py::_FIXTURE_PINS` (11 pins): SAP 72 / cont 71.6597, ECF 2.0316, cost 1162.5374, CO2 5953.6679, space heat (98c) 11991.9611, main fuel (211)+(213) 14736.9564, HW (219) 4902.8601, lighting (232) 357.6571, pumps (231) 356.0. This was the validation target the S0380.200 handover set. Updated the fixture docstring's stale "§3-windows-only" scope note. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
d1ae87c7e9
commit
7344f600e6
2 changed files with 41 additions and 8 deletions
|
|
@ -23,14 +23,24 @@ This cert surfaced two site-notes gaps fixed in S0380.199:
|
|||
already-inclined "Double between 2002 and 2021" → 2.30 (so the
|
||||
inclination adjustment isn't double-applied).
|
||||
|
||||
SCOPE: this fixture pins only the §3 heat-transmission WINDOW line refs
|
||||
(27)/(27a)/(31) — NOT the full SapResult. Case 6 has a DUAL main heating
|
||||
system (51% radiators + 49% underfloor, oil), and `SapResult`'s
|
||||
`main_heating_fuel_kwh_per_yr` / `pumps_fans_kwh_per_yr` aggregate the
|
||||
two systems differently from the worksheet's per-system (211)/(231)
|
||||
lines, so a full SapResult pin isn't apples-to-apples. Heating is also
|
||||
SAP code 127 here vs 0240's code 130 condensing combi — so case 6 pins
|
||||
to its OWN worksheet, not 0240's register.
|
||||
SCOPE: promoted to a FULL SapResult e2e fixture (S0380.207) once the dual
|
||||
main heating system was fully modelled. Case 6 has Main 1 radiators (51%,
|
||||
control 2106) + Main 2 underfloor (49%, control 2110) heating different
|
||||
parts. Closing every line ref took: Table 4f note c) two circulation
|
||||
pumps (231) S0380.201; Table 5a note a) two pump gains (70) S0380.202;
|
||||
RdSAP §3.7 "Roof of Room" rooflights → §3.10.1 RR residual (30) S0380.203;
|
||||
SAP 10.2 p.186 two-systems-different-parts MIT — weighted responsiveness
|
||||
0.8775 + elsewhere two-control blend — (87)/(90)/(98c) S0380.205 (with
|
||||
the Main 2 emitter/control extractor fix S0380.204); and Eq D1 per-boiler
|
||||
(204) space share (219) S0380.206. SapResult pins (Block 1 energy rating)
|
||||
live in `test_e2e_elmhurst_sap_score.py::_FIXTURE_PINS["001431_case6"]`;
|
||||
`main_heating_fuel_kwh_per_yr` is the (211)+(213) two-system sum. Heating
|
||||
is SAP code 127 (vs 0240's 130 condensing combi) — case 6 pins to its OWN
|
||||
worksheet, the spec authority for this dual-oil archetype.
|
||||
|
||||
The §3 window line refs (27)/(27a)/(31), the roof (30), the pumps (231),
|
||||
the pump gains (70), the per-system fuel (211)/(213), and HW (219) also
|
||||
have dedicated section pins in `test_section_cascade_pins.py`.
|
||||
|
||||
Source: user-simulated PDFs at `sap worksheets/golden fixture
|
||||
debugging/simulated case 6/`. Summary mirrored into the tracked
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ from tests.domain.sap10_calculator.worksheet import (
|
|||
_elmhurst_worksheet_001431_rr8 as _w001431_rr8,
|
||||
_elmhurst_worksheet_001431_6035 as _w001431_6035,
|
||||
_elmhurst_worksheet_001431_case5 as _w001431_case5,
|
||||
_elmhurst_worksheet_001431_case6 as _w001431_case6,
|
||||
)
|
||||
from tests.domain.sap10_calculator.worksheet._elmhurst_fixtures import (
|
||||
ALL_FIXTURES as _ELMHURST_FIXTURES,
|
||||
|
|
@ -237,6 +238,27 @@ _FIXTURE_PINS: Final[dict[str, FixtureCascadePins]] = {
|
|||
lighting_kwh_per_yr=381.4601,
|
||||
pumps_fans_kwh_per_yr=141.0,
|
||||
),
|
||||
# Mapper-driven cohort entry — Summary_001431_case6.pdf → extractor →
|
||||
# mapper → calculator. DETACHED dual-oil cousin of case 5: Main 1
|
||||
# radiators (control 2106) + Main 2 underfloor (control 2110) heating
|
||||
# DIFFERENT parts (51% / 49%), 6 "Roof of Room" rooflights, no boiler
|
||||
# interlock (cyl stat No → −5pp on Main 1). Promoted to a full
|
||||
# SapResult fixture once S0380.201-206 closed every line ref: Table 4f
|
||||
# note c) two-pump electricity (231), Table 5a note a) two-pump gain
|
||||
# (70), §3.7 rooflight→RR-residual (30), SAP 10.2 p.186 two-systems-
|
||||
# different-parts MIT (87)/(90)/(98c), and Eq D1 per-boiler (204)
|
||||
# space share (219). Pins are worksheet Block 1 (energy rating) line
|
||||
# refs; main_heating_fuel_kwh_per_yr is the (211)+(213) two-system sum.
|
||||
"001431_case6": FixtureCascadePins(
|
||||
sap_score=72, sap_score_continuous=71.6597, ecf=2.0316,
|
||||
total_fuel_cost_gbp=1162.5374, co2_kg_per_yr=5953.6679,
|
||||
space_heating_kwh_per_yr=11991.9611,
|
||||
main_heating_fuel_kwh_per_yr=14736.9564,
|
||||
secondary_heating_fuel_kwh_per_yr=0.0,
|
||||
hot_water_kwh_per_yr=4902.8601,
|
||||
lighting_kwh_per_yr=357.6571,
|
||||
pumps_fans_kwh_per_yr=356.0,
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -253,6 +275,7 @@ _FIXTURE_MODULES: Final[dict[str, ModuleType]] = {
|
|||
"001431_rr8": _w001431_rr8,
|
||||
"001431_6035": _w001431_6035,
|
||||
"001431_case5": _w001431_case5,
|
||||
"001431_case6": _w001431_case6,
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue