aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rites/rite_ef/temporal_ef.ml41
-rw-r--r--test/test_temporal_ef.ml16
2 files changed, 50 insertions, 7 deletions
diff --git a/lib/rites/rite_ef/temporal_ef.ml b/lib/rites/rite_ef/temporal_ef.ml
index 0647aac..1ce9de9 100644
--- a/lib/rites/rite_ef/temporal_ef.ml
+++ b/lib/rites/rite_ef/temporal_ef.ml
@@ -444,9 +444,10 @@ let temporal d =
let easter = Computus.gregorian_easter y in
let s = season d in
let weekday = Date.weekday d in
- let build ?(subject = Colitur_kernel.Subject.Temporal) ~season ~slug ~colour ~rank ~week () =
+ let build ?(subject = Colitur_kernel.Subject.Temporal) ?(names = Colitur_kernel.Names.empty) ~season
+ ~slug ~colour ~rank ~week () =
let office =
- Colitur_kernel.Celebration.make ~slug:(Slug.of_string_exn slug) ~rank ~colour ~subject
+ Colitur_kernel.Celebration.make ~slug:(Slug.of_string_exn slug) ~rank ~colour ~subject ~names
~layer:"temporal" ()
in
{ Colitur_kernel.Temporal.season; week; weekday; office }
@@ -508,12 +509,38 @@ let temporal d =
OTHER Sunday this branch ever builds -- including the
narrower Holy Name of Jesus window, RG 17(a), still
unbuilt as its own named day, register §6 -- keeps
- [Temporal], unaffected. *)
- let subject =
- if same d (holy_family_sunday y) then Colitur_kernel.Subject.Lord
- else Colitur_kernel.Subject.Temporal
+ [Temporal] and no name, unaffected.
+
+ [names] -- fix round 1 (coordinator finding 3): a LATIN
+ name, not English. The oracle's own observed-identity
+ axis (test_oracle.ml) reads only [en], so this is
+ deliberately invisible to it -- setting an ENGLISH name
+ here would mean reading missalemeum's own title text
+ (the oracle this exact axis is compared against) to
+ decide colitur's own "ground truth" name, precisely the
+ "expected value promoted from actual output" vacuity
+ flavour this project's own review process watches for.
+ Latin has no such circularity: the calendarium's own
+ January table, both photographic scans, word for word:
+ "Dominica I post Epiphaniam: S. Familiae, Iesu, Mariae,
+ Ioseph, II classis" -- and the Mass propers' own heading
+ (also both scans): "SANCTAE FAMILIAE IESU, MARIAE,
+ IOSEPH, II classis", the exact string used here, the
+ same genitive-title convention test_names.ml's own
+ worked example already uses for Easter ("Dominica
+ Resurrectionis"). Every other temporal-cycle candidate
+ still carries no name at all (register §6.2's own open
+ item on Holy Name of Jesus, RG 17(a)) -- this is a
+ targeted addition for the one day this task built, not a
+ claim that the gap is closed generally. *)
+ let subject, names =
+ if same d (holy_family_sunday y) then
+ ( Colitur_kernel.Subject.Lord,
+ Colitur_kernel.Names.of_list
+ [ (Colitur_kernel.Lang.of_string_exn "la", "Sanctae Familiae Iesu, Mariae, Ioseph") ] )
+ else (Colitur_kernel.Subject.Temporal, Colitur_kernel.Names.empty)
in
- build ~subject ~season:s ~slug ~colour ~rank ~week:(week d) ()
+ build ~subject ~names ~season:s ~slug ~colour ~rank ~week:(week d) ()
| None -> (
match christmastide_feria_slug d with
| Some slug ->
diff --git a/test/test_temporal_ef.ml b/test/test_temporal_ef.ml
index 7837fb5..8a0f38e 100644
--- a/test/test_temporal_ef.ml
+++ b/test/test_temporal_ef.ml
@@ -175,6 +175,9 @@ let rank_of dt = V.rank_to_string (office dt).Cel.rank
let colour_of dt = Colr.to_string (office dt).Cel.colour
let subject_of dt = (office dt).Cel.subject
let temporal_week dt = (T.temporal dt).Colitur_kernel.Temporal.week
+let la = Colitur_kernel.Lang.of_string_exn "la"
+let en = Colitur_kernel.Lang.of_string_exn "en"
+let name_la_of dt = Colitur_kernel.Names.find (office dt).Cel.names la
(* RG 17(b) (Caput III, "De Dominicis"), primary text (scan-verified,
docs/research/rules-register.md §4): "festum S. Familiae Iesu, Mariae,
@@ -207,6 +210,19 @@ let test_holy_family () =
classis\" -- the mystery of the Holy Family touches Christ)"
true
(subject_of (d 2026 1 11) = Sub.Lord);
+ (* fix round 1 (coordinator finding 3): a primary-sourced LATIN name,
+ zero circularity (the calendarium's own January table and the Mass
+ propers' own heading, both photographic scans, word for word:
+ "Sanctae Familiae Iesu, Mariae, Ioseph"). No ENGLISH name -- deliberate
+ (temporal_ef.ml's own comment), and every OTHER temporal-cycle
+ candidate still carries no name of any kind. *)
+ Alcotest.(check (option string)) "2026: Latin name from the calendarium/propers, verbatim"
+ (Some "Sanctae Familiae Iesu, Mariae, Ioseph") (name_la_of (d 2026 1 11));
+ Alcotest.(check (option string)) "2026: no English name (deliberate -- would read the oracle it is \
+ compared against)"
+ None (Colitur_kernel.Names.find (office (d 2026 1 11)).Cel.names en);
+ Alcotest.(check (option string)) "2026: an ordinary neighbouring Sunday carries no Latin name either"
+ None (name_la_of (d 2026 1 18));
(* 2019: Epiphany itself is a Sunday, so the first Sunday AFTER it is the
LATEST possible date, 13 January -- the one date Holy Family collides
with the fixed Commemoration of the Baptism of the Lord (data/ef/