mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +00:00
test(efficiency): lock solid-fuel room-heater space eff to Table 4a column (B)
An API audit flagged the solid-fuel room-heater space efficiencies (_SPACE_EFF_BY_CODE 631-636) as reading the "Water" column of SAP 10.2 Table 4a. That was a misread: the two room-heater columns are (A) minimum-for-HETAS-approved and (B) other appliances — BOTH are space efficiency, not space/water. RdSAP defaults to column (B) when HETAS approval is not lodged, which is what these values already hold and what the reference software produces (Elmhurst worksheet "solid fuel 9", SAP code 636 → (206) space efficiency = 70 = column B; flipping to column A 75 broke that pin and three sibling solid-fuel corpus pins). No value change — add a pin test + spec-cited comment so the column-(A)/ (B) distinction is explicit and this misread can't recur. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
5a74897fed
commit
e89b4041c7
2 changed files with 23 additions and 1 deletions
|
|
@ -62,7 +62,13 @@ _SPACE_EFF_BY_CODE: Final[dict[int, float]] = {
|
|||
607: 0.45, 609: 0.58, 610: 0.72, 611: 0.85, 612: 0.20, 613: 0.90,
|
||||
# Room heaters — liquid.
|
||||
621: 0.55, 622: 0.65, 623: 0.60, 624: 0.70, 625: 0.94,
|
||||
# Room heaters — solid (column B non-HETAS).
|
||||
# Room heaters — solid. SAP 10.2 Table 4a (p.167): column (A) is the
|
||||
# minimum for HETAS-approved appliances, column (B) for other
|
||||
# appliances. RdSAP defaults to column (B) when approval is not
|
||||
# lodged (Elmhurst worksheet "solid fuel 9" code 636 → (206)=70 = B),
|
||||
# so these are the column-(B) space efficiencies: 631 open fire 32,
|
||||
# 632 +back boiler 50, 633 closed room heater 60, 634 +boiler 65,
|
||||
# 635 pellet stove 65, 636 +boiler 70.
|
||||
631: 0.32, 632: 0.50, 633: 0.60, 634: 0.65, 635: 0.65, 636: 0.70,
|
||||
# Room heaters — electric.
|
||||
691: 1.00, 692: 1.00, 693: 1.00, 694: 1.00,
|
||||
|
|
|
|||
|
|
@ -51,6 +51,22 @@ def test_seasonal_efficiency_ground_source_heat_pump_returns_table4a_value() ->
|
|||
assert result == pytest.approx(2.30, abs=0.005)
|
||||
|
||||
|
||||
def test_seasonal_efficiency_solid_fuel_room_heaters_use_table4a_column_b() -> None:
|
||||
# Arrange — SAP 10.2 Table 4a (p.167) solid-fuel room heaters give
|
||||
# column (A) for HETAS-approved appliances and column (B) for other
|
||||
# appliances. RdSAP defaults to column (B) when HETAS approval is not
|
||||
# lodged (Elmhurst worksheet "solid fuel 9" code 636 → (206)=70 = B):
|
||||
# 631 open fire 32, 633 closed room heater 60, 634 with boiler 65,
|
||||
# 635 pellet stove 65, 636 with boiler 70.
|
||||
|
||||
# Act / Assert
|
||||
assert seasonal_efficiency(sap_main_heating_code=631) == 0.32
|
||||
assert seasonal_efficiency(sap_main_heating_code=633) == 0.60
|
||||
assert seasonal_efficiency(sap_main_heating_code=634) == 0.65
|
||||
assert seasonal_efficiency(sap_main_heating_code=635) == 0.65
|
||||
assert seasonal_efficiency(sap_main_heating_code=636) == 0.70
|
||||
|
||||
|
||||
def test_seasonal_efficiency_oil_boiler_returns_table4b_value() -> None:
|
||||
# Arrange — Table 4b, code 126 standard oil 1998+ -> 80% winter.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue