mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-19 17:03:02 +00:00
A main_fuel override beats a heating archetype's natural-fuel default 🟥
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
56aaace5b1
commit
260e3cbd32
1 changed files with 28 additions and 0 deletions
|
|
@ -7,11 +7,15 @@ that fold onto the lodged EPC — per component, partial, skipping unmapped rows
|
|||
from __future__ import annotations
|
||||
|
||||
from datatypes.epc.domain.epc_property_data import BuildingPartIdentifier
|
||||
from domain.modelling.scoring.overlay_applicator import apply_simulations
|
||||
from repositories.property.landlord_override_overlays import overlays_from
|
||||
from repositories.property.property_overrides_reader import (
|
||||
ResolvedPropertyOverride,
|
||||
ResolvedPropertyOverrides,
|
||||
)
|
||||
from tests.domain.sap10_calculator.worksheet._elmhurst_worksheet_000490 import (
|
||||
build_epc,
|
||||
)
|
||||
|
||||
|
||||
def test_roof_type_row_produces_a_roof_overlay() -> None:
|
||||
|
|
@ -143,3 +147,27 @@ def test_unresolvable_rows_are_skipped() -> None:
|
|||
|
||||
# Assert
|
||||
assert overlays == []
|
||||
|
||||
|
||||
def test_main_fuel_override_wins_over_a_heating_archetype_natural_fuel() -> None:
|
||||
# A heating-system override drags a natural fuel (a solid-fuel room heater
|
||||
# defaults to house coal, RdSAP main_fuel 33), but an explicit main_fuel
|
||||
# override must win. apply_simulations is last-wins and the override rows
|
||||
# arrive in arbitrary order, so overlays_from must apply main_fuel AFTER
|
||||
# main_heating_system — otherwise the natural-fuel default clobbers the
|
||||
# explicit fuel (ADR-0041). The rows here are in the order that exposes it.
|
||||
baseline = build_epc()
|
||||
overrides = ResolvedPropertyOverrides(
|
||||
rows=(
|
||||
ResolvedPropertyOverride("main_fuel", 0, "smokeless coal"),
|
||||
ResolvedPropertyOverride(
|
||||
"main_heating_system", 0, "Solid fuel room heater, closed"
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
# Act
|
||||
result = apply_simulations(baseline, overlays_from(overrides))
|
||||
|
||||
# Assert — the explicit fuel (smokeless coal 15) wins over the coal default.
|
||||
assert result.sap_heating.main_heating_details[0].main_fuel_type == 15
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue