diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-26 13:57:14 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-26 13:57:14 +0200 |
| commit | 03d3c00ccdde318207c8b4fdc456e5e64d6b4abf (patch) | |
| tree | eaa8b77b549f6751594b2868798c7ca2d1b3ca70 /test/test_citation_coverage_of.ml | |
| parent | 9b8821f7b914c94f5b2c8eeda05407ee921b3d5a (diff) | |
| download | colitur-03d3c00ccdde318207c8b4fdc456e5e64d6b4abf.tar.gz colitur-03d3c00ccdde318207c8b4fdc456e5e64d6b4abf.zip | |
feat(of-lectionary): hand-author the Christmas Day Mass, close the gap
colitur readings --rite of printed "- | -" on 25 December every year
-- lectio's own 988 keys never included the Christmas DAY Mass at
all, only the Vigil (already correctly noted, but left unfilled, in
tools/bootstrap_lectionary_of.ml's own named_overrides comment).
Sourced, not guessed: docs/research/of/olm-1981-ocr.txt:4513-4520,
"16 Ad Missam in die", the same primary authority this module already
cites for the cycle rules. First reading and Gospel only, matching
this file's own scope everywhere else (First/Gospel is the kernel's
own boundary, I7, a separate deferred task) -- Isaiah 52:7-10 / John
1:1-18 (OLM's own LONGER form; the file's LINEAGE section already
discloses that short/long-form choices are not modelled anywhere in
this data, so this is an application of an existing limitation, not a
new one).
Injected via a new hand_authored table in the generator, merged into
entries before assert_reachable/Lectionary.of_entries -- there is no
ini section to derive this from. One new lookup_any call (readings'
own existing temporal-slug fallback, unmodified) now resolves BOTH the
formulary and the citations for 25 December from the same entry, so
both halves of the "citations-unresolved"/"formulary" gap close
together, not just the citation half.
Verified across the WHOLE domain, not assumed: test_validate_of.ml's
exhaustive sweep (COLITUR_EXHAUSTIVE_SWEEP=1, all 8 416 years) now
asserts the Nativity gap fires on NONE of them, down from all 8 416
before this fix -- and is kept as a live, dedicated "must never recur"
counter rather than deleted. test_rite_of.ml's landmark-year check and
test_lectionary_of.ml's 2026 coverage pins are updated the same way
(the unresolved-day set that used to be pinned as {25 December} is now
pinned as empty, not merely a count going to zero). A concrete golden
pin (test_golden_of.ml) locks the exact citations through the full
resolved pipeline. data/of/lectionary.sexp regenerated (771 entries,
was 770); its own SHA-256 re-pinned.
make check (COLITUR_EXHAUSTIVE_SWEEP=1 dune test --force, unpiped,
foreground): exit 0, 895 tests, ~536s.
Diffstat (limited to 'test/test_citation_coverage_of.ml')
| -rw-r--r-- | test/test_citation_coverage_of.ml | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/test/test_citation_coverage_of.ml b/test/test_citation_coverage_of.ml index 3444706..70e63ad 100644 --- a/test/test_citation_coverage_of.ml +++ b/test/test_citation_coverage_of.ml @@ -19,7 +19,7 @@ the FULL data/of/lectionary.sexp (not merely what one civil year happens to observe -- a stricter check than EF's own year-walk, and the same one tools/bootstrap_lectionary_of.ml's own generated header now runs and - discloses): 41 distinct references, out of 1540 total, EVERY ONE a + discloses): 41 distinct references, out of 1542 total, EVERY ONE a hyphenated range crossing a chapter boundary ("2:29-3:6", "1 John") -- a {!Colitur_citation.Parse.t} shape [part]/[verse_range] do not represent (a [part] is one chapter and a list of within-chapter ranges; @@ -91,9 +91,9 @@ let test_of_citations_convert_or_are_the_known_cross_chapter_residual () = cits) (Colitur_kernel.Lectionary.entries (lectionary ())); let bad = List.sort compare !bad in - Alcotest.(check int) "1540 citation fields in data/of/lectionary.sexp today -- if this changes, the \ + Alcotest.(check int) "1542 citation fields in data/of/lectionary.sexp today -- if this changes, the \ pinned residual below may need updating too, not just this count" - 1540 !total; + 1542 !total; Alcotest.(check (list string)) "the unconverted set is EXACTLY the known cross-chapter residual, no \ more and no fewer" (List.sort compare known_cross_chapter_residual) bad; |
