aboutsummaryrefslogtreecommitdiff
path: root/test/test_colitur.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 00:05:57 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 00:05:57 +0200
commit4624441d0bc9c1f28dea54606ab7999041d4b323 (patch)
treeaf9b9308c70fb5df6888990e7780e6e951d76644 /test/test_colitur.ml
parent21dab521d6bfe8e4e7d04f761c11754059339ba2 (diff)
downloadcolitur-4624441d0bc9c1f28dea54606ab7999041d4b323.tar.gz
colitur-4624441d0bc9c1f28dea54606ab7999041d4b323.zip
data(ef): bootstrap the 1962 sanctoral from lectio
Convert lectio's tridentine-calendar.ini (322 entries) into data/ef/sanctoral.sexp via a validating OCaml converter, tools/ bootstrap_sanctoral.ml, rather than a hand-written script: every field is built through Slug.of_string, Colour.of_string and Vocab_ef.rank_of_string, so the emitted sexp is valid by construction. Two conversion decisions, both documented rather than buried: - subject defaults to Subject.Saint, overriding Celebration.make's kernel default of Subject.Temporal, for the 316 entries with no explicit class; - rank = commemoration maps to status = Commemoration_only with an inferred Class3 (not a citation -- it is what the 1960 reform reduced most simple feasts from), recorded as an open item in the rules register for the oracle to adjudicate. Every celebration is tagged layer = Precedence_ef.universal_layer, the provenance id RG 91's band classifier reads to tell the universal calendar from proper/indult data. The generated file carries a provenance header: source path, its SHA-256, and the UTC conversion date, so re-bootstrapping against a newer lectio is reproducible and diffable. Output is byte-identical across runs. test/test_sanctoral_ef.ml loads the file through Layer.load and checks the counts independently derived from the source INI (322 entries, 114 Commemoration_only, 12 Class1, no Subject.Temporal, every date resolves in a leap year), plus two named spot-checks against the INI's own text -- one entry with an explicit class field, one commemoration -- so a passing count cannot hide the wrong 322 entries having been converted.
Diffstat (limited to 'test/test_colitur.ml')
-rw-r--r--test/test_colitur.ml2
1 files changed, 1 insertions, 1 deletions
diff --git a/test/test_colitur.ml b/test/test_colitur.ml
index a9cacd2..ba82fcd 100644
--- a/test/test_colitur.ml
+++ b/test/test_colitur.ml
@@ -3,4 +3,4 @@ let () =
Alcotest.run "colitur"
[ Test_date.suite; Test_computus.suite; Test_colour.suite; Test_slug.suite; Test_names.suite;
Test_overlay.suite; Test_temporal_ef.suite; Test_validate.suite; Test_precedence.suite;
- Test_calendar.suite; Test_precedence_ef.suite ]
+ Test_calendar.suite; Test_precedence_ef.suite; Test_sanctoral_ef.suite ]