mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
The 2026 API sample raised UnmappedApiCode on `gable_wall_type` 2 (10 certs) and 3 (4 certs) — the two RR gable variants beyond Party(0)/Exposed(1). Sim case 21 (an Elmhurst replica of API cert 2818-3053-3203-2655-9204: gable_wall_type_1=2, gable_wall_type_2=3) lodges them as "Sheltered" and "Connected", confirming **2=Sheltered, 3=Connected**. - Mapper: `_API_TYPE_1_GABLE_TYPE_TO_KIND` gains 2 → `gable_wall_sheltered`, 3 → `connected_wall` (U=0, area deducts — already handled). - Calculator: new `gable_wall_sheltered` branch. The API path lodges no per-gable U, so the cascade DERIVES it as RdSAP 10 Table 4 (p.22) Sheltered = 1/(1/U_wall + 0.5) — back-solved + validated against case 21 (U_wall 1.10 → 0.71) and case 20 (1.70 → 0.92). A lodged U (Summary path) still rides through as an override. API sample: 14 raises clear → `computed` 882 → 896, `raise:ValueError` 16 → 2. Summary path unchanged (Sheltered stays `gable_wall_external` + lodged U, so cert 000487's hand-built fixture is untouched). 2861 pass (lone test_total_floor_area pre-existing); pyright strict net-zero (32=32 / 12=12). NOTE: the derived Sheltered U on cert 2818 lands at 0.92 not 0.71 because the cascade computes its 440 mm solid-brick wall U as 1.70 (the 220 mm default) — a SEPARATE wall-U-vs-thickness bug (next slice, validated by case 21's 1.10). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| epc | ||
| magicplan | ||
| __init__.py | ||
| datatypes.py | ||
| enums.py | ||