Skip to content

Frames-native reconciliation validation guards #35

Description

@Polichinel

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

  • Mismatched time-step count / time unit / non-overlapping times / no-common-targets each raise a clear ValueError.
  • The valid-country intersection is computed and exposed for the orchestrator.

Validation

  • Red-team unit tests mirroring views-reporting's validation tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    implementationCode implementation workreconciliationForecast reconciliation migration (views-reporting -> here)storyA single reviewable unit of an epic

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions