mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
PRD #1385, ventilation family. The 17.0 and 19.0 API mappers dropped lodged ventilation fields that the reference-complete 17.1/18.0/20.0 paths read: * open_fireplaces_count -> open_chimneys_count: hardcoded 0 on both (understating §2 infiltration). * percent_draughtproofed: omitted on both. * 17.0 additionally passed no sap_ventilation block, so the §2 cascade fell back to NATURAL + its default sheltered_sides=2. Restored from the lodged mechanical_ventilation + built_form via the existing _api_* helpers. Semantic parity verified (not just type-equality): built_form and mechanical_ventilation use the same gov code lists the 17.1/18.0/19.0/20.0/21.x paths already map through these helpers; all 244 RdSAP fixtures resolve with zero UnmappedApiCode, and the strict-coverage guard raises on any future divergence. For the current corpus the 17.0 score-mover is sheltered_sides from built_form (every 17.0 cert lodges mechanical_ventilation=0 -> NATURAL). Adds a regression test asserting both paths carry the fields through from_api_response on real certs. Verification: new test 2 passed; test_mapper_corpus 6002 passed; SAP-accuracy / RealCertExpectation regressions pass; pyright unchanged (39 -> 39, pre-existing). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| epc | ||
| __init__.py | ||