Model/domain/sap10_calculator/worksheet
Khalim Conn-Kowlessar d7d5084f90 Move sap10_calculator tests to tests/domain/sap10_calculator/ for CI
The calculator tests lived under domain/sap10_calculator/{tests,worksheet/
tests,rdsap/tests,climate/tests,validation/tests}, none of which are in
pytest.ini testpaths — so CI (which collects tests/) never ran them. Relocate
all five dirs to tests/domain/sap10_calculator/{,worksheet,rdsap,climate,
validation}, mirroring the tests/domain/property_baseline/ convention, so the
cascade-pin / golden / e2e conformance suites run in CI.

Mechanics:
- git mv preserves history (110 files).
- Flattening the trailing /tests keeps each file's depth-to-repo-root
  identical, so all 16 repo-root parents[4] fixture refs stay valid. Only
  test_pcdb_etl.py's parents[1] (→ pcdb data) and one hardcoded absolute
  golden-fixture path in test_cert_to_inputs.py needed rebasing.
- Cross-imports rewritten domain.sap10_calculator.worksheet.tests →
  tests.domain.sap10_calculator.worksheet (21 files incl. the external
  importer backend/documents_parser/tests/test_summary_pdf_mapper_chain.py).
- Golden-fixture path strings in test_summary_pdf_mapper_chain.py +
  scripts/fetch_cohort2_api_jsons.py updated to the new location (the JSONs
  moved with the rdsap tests).

load_cells / gitignored worksheet xlsx: the xlsx-pinned tests (test_dimensions
/ ventilation / water_heating) read 2026-05-19-17-18 RdSap10Worksheet.xlsx,
which is gitignored (.gitignore `*.xlsx`) and so absent in CI. _xlsx_loader.
load_cells now pytest.skip()s when the file is absent, so those tests run
locally and skip cleanly in CI instead of erroring — no new CI failures from
the move, and the gitignore policy is respected.

Verified: tests/domain/sap10_calculator + backend/documents_parser +
tests/domain/property_baseline = 2248 pass, 1 skipped; pyright resolves the
new import paths with zero import-resolution errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 16:58:00 +00:00
..
__init__.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
appendix_h_solar.py Slice S0380.74: Appendix H (H7) U3.3 monthly-integrated convention closes 1.81× over-count 2026-05-29 18:02:35 +00:00
dimensions.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
energy_requirements.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
fabric_energy_efficiency.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
fuel_cost.py Slice S0380.47: wire β-split into cost cascade per SAP 10.2 Appendix M1 §6 2026-05-28 19:01:38 +00:00
heat_transmission.py Slice S0380.120: distinguish NI from explicit int(0) roof_insulation_thickness per RdSAP 10 §5.11.4 2026-05-30 21:10:00 +00:00
internal_gains.py Slice S0380.162: SAP 10.2 Appendix N3.1 default pump gain for electric HPs 2026-06-01 23:59:29 +00:00
mean_internal_temperature.py Slice 102f-prep.5: Wire N3.5 extended-heating MIT cascade (HP-gated) 2026-05-27 13:47:49 +00:00
mev.py Slice S0380.100: MEV SFPav + (230a) cascade helpers (SAP 10.2 §2.6.4 + Table 4f) 2026-05-30 15:28:59 +00:00
photovoltaic.py Slice S0380.44: SAP 10.2 Appendix M1 §3-4 PV β-factor calculator (no wiring) 2026-05-28 18:11:56 +00:00
rating.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
solar_gains.py Slice S0380.42: Decimal HALF_UP per-window areas per RdSAP10 §15 — closes cert 1536 2026-05-28 17:11:39 +00:00
space_cooling.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
space_heating.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
utilisation_factor.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
ventilation.py refactor: lift-and-shift packages/domain/src/domain/sap → domain/sap10_calculator 2026-05-26 12:22:37 +00:00
water_heating.py Slice S0380.75: Wire Appendix H orchestrator into cascade; cert 000565 HW +272 → −69 2026-05-29 18:37:56 +00:00