ND on a limited-insulation age band yields no roof recommendation 🟩

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-02 11:03:01 +00:00
parent f3bdf0e884
commit 1dd2d19f78

View file

@ -111,6 +111,25 @@ def test_vaulted_ceiling_with_nd_thickness_on_pre_1950_dwelling_yields_sloping_c
)
def test_vaulted_ceiling_with_nd_thickness_on_limited_insulation_age_band_yields_no_recommendation() -> None:
# Arrange — same vaulted-ND shape, but age band E: as-built carries limited
# insulation (ADR-0047), and ND must never make an undefined cert MORE
# eligible than an explicit thin lodgement (which is not eligible today).
baseline: EpcPropertyData = build_epc()
main: SapBuildingPart = _part(baseline, BuildingPartIdentifier.MAIN)
main.roof_construction_type = "Pitched (vaulted ceiling)"
main.roof_insulation_thickness = "ND"
main.construction_age_band = "E"
# Act
recommendation: Recommendation | None = recommend_roof_insulation(
baseline, _StubProducts()
)
# Assert
assert recommendation is None
def test_loft_option_carries_cost_from_roof_area_and_product() -> None:
# Arrange
baseline: EpcPropertyData = build_epc() # MAIN roof area 14.85 m^2