mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-27 23:35:01 +00:00
Resolve the boiler archetype by fuel when building a property's overlays 🟥
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
58e2186506
commit
abbad2b44d
1 changed files with 40 additions and 0 deletions
|
|
@ -72,6 +72,46 @@ def test_resolve_boiler_archetype_leaves_other_cases_unchanged(
|
|||
assert resolved == heating_value
|
||||
|
||||
|
||||
def test_gas_boiler_override_on_oil_fuel_builds_the_oil_boiler_overlay() -> None:
|
||||
# ADR-0067: a fuel-agnostic gas-boiler override sitting on an oil `main_fuel`
|
||||
# must resolve to the oil boiler at overlay time (the join reads the sibling
|
||||
# fuel row), so it scores the oil boiler code (127), not the gas default (102).
|
||||
|
||||
# Arrange
|
||||
overrides = ResolvedPropertyOverrides(
|
||||
rows=(
|
||||
ResolvedPropertyOverride("main_heating_system", 0, "Gas boiler, regular"),
|
||||
ResolvedPropertyOverride("main_fuel", 0, "oil"),
|
||||
)
|
||||
)
|
||||
|
||||
# Act
|
||||
overlays = overlays_from(overrides)
|
||||
|
||||
# Assert — the heating overlay carries the oil boiler code.
|
||||
heating = next(o.heating for o in overlays if o.heating is not None)
|
||||
assert heating.sap_main_heating_code == 127
|
||||
|
||||
|
||||
def test_gas_boiler_override_on_gas_fuel_stays_a_gas_boiler() -> None:
|
||||
# The join only fires for non-gas fuels; a genuine gas boiler is untouched.
|
||||
|
||||
# Arrange
|
||||
overrides = ResolvedPropertyOverrides(
|
||||
rows=(
|
||||
ResolvedPropertyOverride("main_heating_system", 0, "Gas boiler, regular"),
|
||||
ResolvedPropertyOverride("main_fuel", 0, "mains gas"),
|
||||
)
|
||||
)
|
||||
|
||||
# Act
|
||||
overlays = overlays_from(overrides)
|
||||
|
||||
# Assert — the gas regular condensing code (102).
|
||||
heating = next(o.heating for o in overlays if o.heating is not None)
|
||||
assert heating.sap_main_heating_code == 102
|
||||
|
||||
|
||||
def test_roof_type_row_produces_a_roof_overlay() -> None:
|
||||
# Arrange
|
||||
overrides = ResolvedPropertyOverrides(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue