mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +00:00
Dispatch and map RdSAP-Schema-17.1 certs end-to-end 🟥
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cc0e875fd8
commit
4ea5367da6
1 changed files with 39 additions and 0 deletions
|
|
@ -1705,3 +1705,42 @@ class TestRdSap18_0ReducedFieldSynthesis:
|
||||||
# Assert
|
# Assert
|
||||||
assert result.sap_heating.number_baths == expected_baths
|
assert result.sap_heating.number_baths == expected_baths
|
||||||
assert result.sap_heating.mixer_shower_count == expected_mixers
|
assert result.sap_heating.mixer_shower_count == expected_mixers
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# RdSAP 17.1 Reduced-Field Synthesis (ADR-0028 — inherit-and-validate). 17.1 is
|
||||||
|
# the same pre-SAP10 reduced family as 18.0/20.0.0 and reuses the same inherited
|
||||||
|
# 20.0.0 coefficients via the shared `_synthesise_reduced_field_windows` core;
|
||||||
|
# its own band-4 rich certs validate the transfer. Each test name pins one
|
||||||
|
# synthesis assumption (Validation-Cohort rule: no same-spec lodged figure).
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
_CORPUS_17_1 = os.path.join(
|
||||||
|
os.path.dirname(__file__),
|
||||||
|
"../../../../backend/epc_api/json_samples/RdSAP-Schema-17.1/corpus.jsonl",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _load_17_1_corpus() -> list[Dict[str, Any]]:
|
||||||
|
if not os.path.exists(_CORPUS_17_1):
|
||||||
|
return []
|
||||||
|
with open(_CORPUS_17_1) as f:
|
||||||
|
return [json.loads(line) for line in f if line.strip()]
|
||||||
|
|
||||||
|
|
||||||
|
class TestRdSap17_1ReducedFieldSynthesis:
|
||||||
|
|
||||||
|
def test_cert_dispatches_and_maps_without_missing_required_field(self) -> None:
|
||||||
|
# Arrange — the placeholder 17.1 schema over-constrains (only 4/1000
|
||||||
|
# parse) and `from_api_response` never dispatched RdSAP-Schema-17.1.
|
||||||
|
# Dispatch + required→optional must let a real cert through end-to-end.
|
||||||
|
corpus = _load_17_1_corpus()
|
||||||
|
if not corpus:
|
||||||
|
pytest.skip("no RdSAP-Schema-17.1 corpus harvested")
|
||||||
|
cert = corpus[0]
|
||||||
|
|
||||||
|
# Act
|
||||||
|
result = EpcPropertyDataMapper.from_api_response(cert)
|
||||||
|
|
||||||
|
# Assert
|
||||||
|
assert isinstance(result, EpcPropertyData)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue