Community-heating overrides drag the conservative Group 3 control (2301) 🟥

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-03 14:19:52 +00:00
parent 6bad3a216a
commit 950ec31d84

View file

@ -108,6 +108,30 @@ def test_overlay_logs_when_it_cannot_complete_a_companion_set(
assert "Community heating, boilers" in caplog.text
@pytest.mark.parametrize(
"main_heating_value",
["Community heating, boilers", "Community heating, CHP and boilers"],
)
def test_community_heating_drags_the_conservative_group_3_control(
main_heating_value: str,
) -> None:
# The landlord names the scheme, not its control or charging arrangement.
# The conservative Table 4e Group 3 default is 2301 ("flat rate charging,
# no thermostatic control of room temperature"): the largest Group 3
# temperature adjustment (+0.3 C) AND the worst Table 4c(3) charging
# factors (space 1.10, DHW 1.05) — an unobserved control is never
# over-credited and an unobserved charging arrangement is never assumed
# usage-linked (ADR-0053). Leaving it unset inherits the replaced system's
# control instead (the ADR-0048 bug class).
# Act
simulation = main_heating_overlay_for(main_heating_value, 0)
# Assert — SAP Table 4e Group 3 conservative heat-network control.
assert simulation is not None
assert simulation.heating is not None
assert simulation.heating.main_heating_control == 2301
def test_air_source_heat_pump_drags_the_conservative_group_2_control() -> None:
# The landlord names the system, not its control, so the overlay assumes
# the conservative Table 4e Group 2 default: 2201 ("no time or thermostatic