Epic: #31 · Depends on: #33
Background
The original ReconciliationModule.__init__ validates fail-loud before doing any work: dataset types, temporal alignment (same number of time steps + same time unit + exact overlap), target intersection (common prediction columns), and valid countries (present in both cm and pgm). The mirrored red-team tests live in views-reporting/tests/test_reconciliation_module.py (TestReconciliationTypeValidation, TestReconciliationTemporalValidation).
Work
- Port these guards frames-native (compare cm/pgm indices + target sets) with the same fail-loud
ValueError intents and messages.
- Keep them as small, independently testable helpers (SRP) — not buried inside the orchestration class.
Acceptance criteria
Validation
- Red-team unit tests mirroring views-reporting's validation tests.
Epic: #31 · Depends on: #33
Background
The original
ReconciliationModule.__init__validates fail-loud before doing any work: dataset types, temporal alignment (same number of time steps + same time unit + exact overlap), target intersection (common prediction columns), and valid countries (present in both cm and pgm). The mirrored red-team tests live inviews-reporting/tests/test_reconciliation_module.py(TestReconciliationTypeValidation,TestReconciliationTemporalValidation).Work
ValueErrorintents and messages.Acceptance criteria
ValueError.Validation