chore: assert engine day() against the missalemeum oracle (#48) #427

Merged
manlycucumber merged 1 commit from feature/48-assert-against-missalemeum into develop 2026-07-02 17:49:50 +00:00
manlycucumber commented 2026-07-02 17:48:32 +00:00 (Migrated from github.com)

Part of Epic #45. The heart of the validation harness: engine ↔ oracle assertion.

What

Compares day() to the pinned missalemeum fixture (#47) for every day 2024–2026,
field by field — the celebration's class, its colour set, and the
commemoration count. (Title is not compared: we resolve Latin identities, not
English display strings; class + colour pin which office won.)

Design — categorised baseline (approval test)

The two 1962 engines still differ on a tracked set of days. Rather than assert
zero divergence (which would demand the whole accuracy campaign at once), the current
421-row divergence set is frozen as a categorised known-differences baseline
(tests/Validation/fixtures/missalemeum/known-differences.ndjson). The test asserts
the live divergences equal it exactly, so both a regression (a new divergence)
and an improvement (a baselined divergence that vanishes) fail — naming the days
— until reviewed and re-frozen with bin/freeze-oracle-baseline.php. The harness is a
living worklist, not a rubber stamp.

Baseline categories: corpus-rank (~82, saints awaiting cited rank corrections),
commemoration rules (~200: sunday/feast/feria), colour (~139: octave-tide, penitential
second colour, other). Each is a tracked class of known difference — the substance of
the follow-on accuracy issues.

Gates green: lint 114/114, analyse [OK], test 627 passing, corpus verify OK.

Closes #48.

Part of Epic #45. The heart of the validation harness: engine ↔ oracle assertion. ## What Compares `day()` to the pinned missalemeum fixture (#47) for every day **2024–2026**, field by field — the celebration's **class**, its **colour** set, and the **commemoration count**. (Title is not compared: we resolve Latin identities, not English display strings; class + colour pin which office won.) ## Design — categorised baseline (approval test) The two 1962 engines still differ on a **tracked** set of days. Rather than assert zero divergence (which would demand the whole accuracy campaign at once), the current **421-row** divergence set is frozen as a categorised known-differences baseline (`tests/Validation/fixtures/missalemeum/known-differences.ndjson`). The test asserts the live divergences equal it exactly, so **both** a regression (a new divergence) **and** an improvement (a baselined divergence that vanishes) fail — naming the days — until reviewed and re-frozen with `bin/freeze-oracle-baseline.php`. The harness is a living worklist, not a rubber stamp. Baseline categories: corpus-rank (~82, saints awaiting cited rank corrections), commemoration rules (~200: sunday/feast/feria), colour (~139: octave-tide, penitential second colour, other). Each is a tracked class of known difference — the substance of the follow-on accuracy issues. Gates green: `lint` 114/114, `analyse` [OK], `test` 627 passing, corpus verify OK. Closes #48.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Core!427
No description provided.