Electric underfloor override drags the conservative Group 7 control (2701) 🟥

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-03 11:36:51 +00:00
parent 57e899e8d9
commit 566374bf34

View file

@ -259,6 +259,32 @@ def test_electric_underfloor_overlays_the_underfloor_category(
assert simulation.heating.main_heating_category == 8
@pytest.mark.parametrize(
"main_heating_value",
[
"Electric underfloor, in concrete slab (off-peak)",
"Electric underfloor, integrated storage and direct-acting",
"Electric underfloor, in screed above insulation",
],
)
def test_electric_underfloor_drags_the_conservative_group_7_control(
main_heating_value: str,
) -> None:
# The landlord names the system, not its control, so the overlay assumes the
# conservative Table 4e Group 7 default: 2701 ("no time or thermostatic
# control", +0.3 C — the largest adjustment in the group, so an unobserved
# control is never over-credited). Mirrors storage-manual 2401 / room-heater
# 2601; also overwrites a stale control inherited from the replaced system
# (711795 kept a community control 2311) — ADR-0050.
# Act
simulation = main_heating_overlay_for(main_heating_value, 0)
# Assert — SAP Table 4e Group 7 conservative underfloor control.
assert simulation is not None
assert simulation.heating is not None
assert simulation.heating.main_heating_control == 2701
def test_screed_underfloor_defers_the_meter_to_the_cert() -> None:
# "In screed above insulation (standard or off peak)" is tariff-ambiguous (81%
# of the corpus lodge off-peak), so the archetype cannot know the meter — it