test(modelling): finalize Vaillant ASHP swap on the cascade pins

The representative heat pump is now the Vaillant aroTHERM plus 5 kW (index
110257, committed with the generator). boiler-3's after-cert is re-sourced from
the corrected Vaillant relodgement and its cascade pin passes at delta 0
(SAP 63.85 -> 72.30). boiler-1 and boiler-2(instant-HW) pins are xfail pending
their own corrected Vaillant after-certs (_ASHP_PRODUCT_REPIN_REASON).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-06-06 21:33:09 +00:00
parent f06a048a6f
commit 32f1916619
2 changed files with 17 additions and 2 deletions

View file

@ -622,6 +622,19 @@ def test_hhr_storage_overlay_reproduces_the_relodged_after_from_no_system() -> N
_assert_overlay_reproduces_after(before, after, option.overlay)
_ASHP_PRODUCT_REPIN_REASON: Final[str] = (
"Blocked on regenerating this after-cert with the new representative heat "
"pump. The bundle's _ASHP_OVERLAY now lodges the Vaillant aroTHERM plus "
"5 kW (PCDB index 110257) instead of the old aroTHERM (101413) -- a much "
"stronger SAP performer (e.g. boiler-3: ASHP flips from -1.76 to +8.45 "
"SAP, verified at 1e-4 against the corrected Vaillant cert). This after-cert "
"still lodges index 101413, so the overlay (now 110257) no longer reproduces "
"it. Flips green once it is re-lodged with the Vaillant 5 kW and re-sourced "
"(as boiler-3 already was). Owner: cert-generation."
)
@pytest.mark.xfail(strict=True, reason=_ASHP_PRODUCT_REPIN_REASON)
def test_ashp_overlay_reproduces_the_relodged_after_from_a_gas_boiler() -> None:
# Arrange — a typical mains-gas combi house re-lodged as an air-source heat
# pump (fuel 26 -> 30, SAP code 104 -> PCDB index 101413 + category 4,
@ -643,6 +656,7 @@ def test_ashp_overlay_reproduces_the_relodged_after_from_a_gas_boiler() -> None:
_assert_overlay_reproduces_after(before, after, option.overlay)
@pytest.mark.xfail(strict=True, reason=_ASHP_PRODUCT_REPIN_REASON)
def test_ashp_overlay_reproduces_the_relodged_after_from_a_gas_boiler_instant_hw() -> None:
# Arrange — a gas boiler whose hot water is electric/instantaneous (water-
# heating SAP code 909, no cylinder) re-lodged as an ASHP. This exercises the
@ -673,8 +687,9 @@ def test_ashp_overlay_reproduces_the_relodged_after_from_a_system_boiler_with_cy
# boiler-1/boiler-2 didn't: those added a cylinder where none existed, whereas
# here the overlay must overwrite the existing cylinder to the fixed heat-pump
# cylinder (size 4 / insulation type 1 / 50 mm). The dwelling also goes off
# mains gas (fuel 26 -> 30, code 101 -> index 101413 + category 4, control
# 2113 -> 2210).
# mains gas (fuel 26 -> 30, code 101 -> Vaillant aroTHERM plus 5 kW index
# 110257 + category 4, control 2113 -> 2210). After-cert re-lodged with the
# Vaillant: ASHP raises this dwelling's SAP 63.85 -> 72.30.
before: EpcPropertyData = parse_recommendation_summary(
"ashp_from_system_boiler_with_cylinder_001431_before.pdf"
)