From 896b5740c347d8c07a7358a440edbecabbb2f0be Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jun 2026 22:44:32 +0000 Subject: [PATCH] S0380.191: pin simulated 001431 gas-combi end-to-end at 1e-4 (e2e harness) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds the user-simulated 001431 case (the cert that drove S0380.189/.190) as an Elmhurst-only e2e fixture: Summary PDF → extractor → mapper → calculator, every Block-1 SapResult field pinned against the P960-0001-001431 worksheet at abs=1e-4. All 11 pins pass with zero residual — the case is clean, confirming the S0380.190 gas-combi fuel derivation closes the Summary path natively. Verified the handover's flagged "+0.0007 SAP" was a target artifact, not a cascade gap: the worksheet displays ECF (257) rounded to 1.6047 and integer SAP (258)=78; the cascade's continuous SAP is computed from the UNROUNDED ECF = (255)*(256)/((4)+45) = 660.9750*0.4200/173.0, giving 77.6147 — which matches the worksheet's own unrounded value. Pinning the continuous SAP from the display-rounded ECF (→ 77.6144) was the wrong target. Block-1 line refs all match exactly: (211) 10699.7225, (219) 3327.1592, (231) 86.0, (232) 283.2229, (255) 660.9750, (272) 3000.1664, Σ(98) 8987.7669. Summary mirrored into the tracked fixtures dir as Summary_001431_gas_combi.pdf (distinct name — the corpus reuses cert 001431 across every heating variant); source Summary + worksheet tracked under sap worksheets/golden fixture debugging/ as the pin ground truth. 2302 passed (+11), 0 failed; pyright net-zero on new/changed files. Co-Authored-By: Claude Opus 4.8 --- .../fixtures/Summary_001431_gas_combi.pdf | Bin 0 -> 78690 bytes ...60-0001-001431 - 2026-06-02T221203.958.pdf | Bin 0 -> 44688 bytes .../simulated case 1/Summary_001431 (1).pdf | Bin 0 -> 78690 bytes .../worksheet/_elmhurst_worksheet_001431.py | 126 ++++++++++++++++++ .../worksheet/test_e2e_elmhurst_sap_score.py | 21 +++ 5 files changed, 147 insertions(+) create mode 100644 backend/documents_parser/tests/fixtures/Summary_001431_gas_combi.pdf create mode 100644 sap worksheets/golden fixture debugging/simulated case 1/P960-0001-001431 - 2026-06-02T221203.958.pdf create mode 100644 sap worksheets/golden fixture debugging/simulated case 1/Summary_001431 (1).pdf create mode 100644 tests/domain/sap10_calculator/worksheet/_elmhurst_worksheet_001431.py diff --git a/backend/documents_parser/tests/fixtures/Summary_001431_gas_combi.pdf b/backend/documents_parser/tests/fixtures/Summary_001431_gas_combi.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1a15e3dac8a69db41c17f44d0d34a34dbfa2cfeb GIT binary patch literal 78690 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 literal 0 HcmV?d00001 diff --git a/sap worksheets/golden fixture debugging/simulated case 1/P960-0001-001431 - 2026-06-02T221203.958.pdf b/sap worksheets/golden fixture debugging/simulated case 1/P960-0001-001431 - 2026-06-02T221203.958.pdf new file mode 100644 index 0000000000000000000000000000000000000000..04de61516bb0f39a96188fcf564bd2cc97228312 GIT binary patch literal 44688 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 Jrj}BX{(rXSA&me4 literal 0 HcmV?d00001 diff --git a/sap worksheets/golden fixture debugging/simulated case 1/Summary_001431 (1).pdf b/sap worksheets/golden fixture debugging/simulated case 1/Summary_001431 (1).pdf new file mode 100644 index 0000000000000000000000000000000000000000..1a15e3dac8a69db41c17f44d0d34a34dbfa2cfeb GIT binary patch literal 78690 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 literal 0 HcmV?d00001 diff --git a/tests/domain/sap10_calculator/worksheet/_elmhurst_worksheet_001431.py b/tests/domain/sap10_calculator/worksheet/_elmhurst_worksheet_001431.py new file mode 100644 index 00000000..96609e90 --- /dev/null +++ b/tests/domain/sap10_calculator/worksheet/_elmhurst_worksheet_001431.py @@ -0,0 +1,126 @@ +"""Mapper-driven cascade pin against the Elmhurst P960-0001-001431 +"simulated case 1" worksheet (gas-combi archetype). + +Like 000565, this fixture does NOT hand-build the EpcPropertyData. It +routes the Summary PDF through ElmhurstSiteNotesExtractor + +EpcPropertyDataMapper.from_elmhurst_site_notes so the SAP-result pin +grid exercises the WHOLE extractor + mapper + calculator pipeline. + +This is the cert that motivated S0380.190 — the newer Elmhurst export +lodges the gas combi as §14.0 "Fuel Type" EMPTY + "Main Heating SAP +Code" 104 (condensing combi, EES "BGW"), with the carrier ("Mains +gas") only in §15.0 "Water Heating Fuel Type". Before S0380.190 the +mapper left `main_fuel_type=''` → `cert_to_inputs` raised +`MissingMainFuelType`; `_elmhurst_gas_boiler_main_fuel` now derives +mains gas (code 26) from §15.0 per SAP 10.2 Table 4b (rows 101-119 are +gas-family boilers; the §15.0 fuel disambiguates the carrier because +the combi heats space + water from one appliance). + +It is also the cert that motivated S0380.189 (thermal mass parameter +per RdSAP 10 §5.16 Table 22): solid brick WITH internal insulation → +TMP 100, not the previously-hardcoded 250. + +Source: user-simulated PDFs at `sap worksheets/golden fixture +debugging/simulated case 1/` (Summary_001431 (1).pdf input + +P960-0001-001431 - 2026-06-02T221203.958.pdf worksheet). The Summary +is mirrored into the tracked +`backend/documents_parser/tests/fixtures/Summary_001431_gas_combi.pdf` +(distinct name — the corpus reuses cert 001431 across every heating +variant) so the test runs without depending on the unstaged workspace. + +Cert shape (Summary §1-19): gas-combi mid-terrace, TFA 128 m², solid +brick WITH internal insulation (→ Table 22 TMP 100), no PV, no +secondary heating, no cylinder (combi instantaneous HW, WHC HWP / SAP +code 901). Condensing combi SAP code 104, EES "BGW". + +Worksheet pin targets (P960-0001-001431 …958.pdf, Block 1 — energy +rating, lines 115-410; the second "FOR IMPROVED DWELLING" block is the +potential rating and is NOT pinned): +- SAP rating 78 (line 258) +- Energy cost factor 1.6047 (line 257; cascade carries it unrounded as + (255)*(256)/((4)+45) = 660.9750*0.4200/173.0 — the continuous SAP + 100 - 13.95*ECF is reconstructed from the unrounded ECF, NOT the + display-rounded 1.6047, so sap_score_continuous = 77.6147) +- Total fuel cost £660.9750 (line 255) +- CO2 3000.1664 kg/year (line 272) +- Space heating 8987.7669 kWh/year (Σ monthly (98)) +- Main 1 fuel 10699.7225 kWh/year (line 211) — mains gas +- Secondary fuel 0.0 (line 215) +- Hot water fuel 3327.1592 kWh/year (line 219) — combi +- Lighting 283.2229 kWh/year (line 232) +- Pumps/fans 86.0 kWh/year (line 231) + +Per [[feedback-zero-error-strict]] + [[feedback-e2e-validation- +philosophy]]: pins are abs=1e-4 against the worksheet PDF. Failing +pins are named extractor / mapper / calculator gaps to fix. +""" + +from __future__ import annotations + +import re +import subprocess +from pathlib import Path +from typing import Final + +from backend.documents_parser.elmhurst_extractor import ElmhurstSiteNotesExtractor +from datatypes.epc.domain.epc_property_data import EpcPropertyData +from datatypes.epc.domain.mapper import EpcPropertyDataMapper + + +# parents[0]=worksheet/, [1]=sap10_calculator/, [2]=domain/, [3]=tests/, +# [4]=repo root. +_SUMMARY_PDF: Final[Path] = ( + Path(__file__).resolve().parents[4] + / "backend" / "documents_parser" / "tests" / "fixtures" + / "Summary_001431_gas_combi.pdf" +) + + +def _summary_pdf_to_textract_style_pages(pdf_path: Path) -> list[str]: + """Convert a Summary PDF into the per-page text format the + ElmhurstSiteNotesExtractor expects (label\\nvalue sequences). + + Mirror of the helper in `backend/documents_parser/tests/ + test_summary_pdf_mapper_chain.py::_summary_pdf_to_textract_style_ + pages` (and `_elmhurst_worksheet_000565.py`). `pdftotext -layout` + preserves the spatial label/value pairing on each line; we split on + 2+ spaces to surface the tokens, then rejoin newline-delimited. + """ + info = subprocess.run( + ["pdfinfo", str(pdf_path)], capture_output=True, text=True, check=True, + ).stdout + m = re.search(r"Pages:\s+(\d+)", info) + if m is None: + raise RuntimeError(f"Could not parse page count from {pdf_path}") + page_count = int(m.group(1)) + + pages: list[str] = [] + for i in range(1, page_count + 1): + layout = subprocess.run( + [ + "pdftotext", "-layout", "-f", str(i), "-l", str(i), + str(pdf_path), "-", + ], + capture_output=True, text=True, check=True, + ).stdout + tokens: list[str] = [] + for line in layout.splitlines(): + if not line.strip(): + tokens.append("") + continue + parts = [p for p in re.split(r"\s{2,}", line.strip()) if p] + tokens.extend(parts) + pages.append("\n".join(tokens)) + return pages + + +def build_epc() -> EpcPropertyData: + """Route the simulated 001431 Summary through extractor + mapper. + + No hand-built EpcPropertyData — the extractor and mapper are part of + the test target. Exercises the S0380.190 gas-combi fuel derivation + (§14.0 Fuel Type empty + SAP code 104 → mains gas via §15.0). + """ + pages = _summary_pdf_to_textract_style_pages(_SUMMARY_PDF) + site_notes = ElmhurstSiteNotesExtractor(pages).extract() + return EpcPropertyDataMapper.from_elmhurst_site_notes(site_notes) diff --git a/tests/domain/sap10_calculator/worksheet/test_e2e_elmhurst_sap_score.py b/tests/domain/sap10_calculator/worksheet/test_e2e_elmhurst_sap_score.py index 69ad44ba..4f4653fd 100644 --- a/tests/domain/sap10_calculator/worksheet/test_e2e_elmhurst_sap_score.py +++ b/tests/domain/sap10_calculator/worksheet/test_e2e_elmhurst_sap_score.py @@ -37,6 +37,7 @@ from tests.domain.sap10_calculator.worksheet import ( _elmhurst_worksheet_000490 as _w000490, _elmhurst_worksheet_000516 as _w000516, _elmhurst_worksheet_000565 as _w000565, + _elmhurst_worksheet_001431 as _w001431, ) from tests.domain.sap10_calculator.worksheet._elmhurst_fixtures import ( ALL_FIXTURES as _ELMHURST_FIXTURES, @@ -147,6 +148,25 @@ _FIXTURE_PINS: Final[dict[str, FixtureCascadePins]] = { lighting_kwh_per_yr=1384.8353, pumps_fans_kwh_per_yr=252.5159, ), + # Mapper-driven cohort entry — Summary_001431_gas_combi.pdf → + # extractor → mapper → calculator. Gas-combi mid-terrace, TFA 128, + # solid brick WITH internal insulation (Table 22 TMP 100), no PV / + # secondary / cylinder. The cert that motivated S0380.190 (gas-combi + # fuel from §15.0 when §14.0 Fuel Type is empty + SAP code 104) and + # S0380.189 (thermal mass parameter). Pins are worksheet Block 1 + # (energy rating) line refs. sap_score_continuous is reconstructed + # from the UNROUNDED ECF ((255)*(256)/((4)+45)), not the display- + # rounded (257)=1.6047 — see the fixture module docstring. + "001431": FixtureCascadePins( + sap_score=78, sap_score_continuous=77.6147, ecf=1.6047, + total_fuel_cost_gbp=660.9750, co2_kg_per_yr=3000.1664, + space_heating_kwh_per_yr=8987.7669, + main_heating_fuel_kwh_per_yr=10699.7225, + secondary_heating_fuel_kwh_per_yr=0.0, + hot_water_kwh_per_yr=3327.1592, + lighting_kwh_per_yr=283.2229, + pumps_fans_kwh_per_yr=86.0, + ), } @@ -158,6 +178,7 @@ _FIXTURE_MODULES: Final[dict[str, ModuleType]] = { "000490": _w000490, "000516": _w000516, "000565": _w000565, + "001431": _w001431, }