diff options
Diffstat (limited to 'test/test_oracle.ml')
| -rw-r--r-- | test/test_oracle.ml | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/test/test_oracle.ml b/test/test_oracle.ml index 129c43b..7ee3848 100644 --- a/test/test_oracle.ml +++ b/test/test_oracle.ml @@ -1334,6 +1334,20 @@ let m25_dates = [ "2026-03-09"; "2026-03-24"; "2027-03-01"; "2027-03-16" ] fix seen from the lectio side, and register 6.20 on the shared lineage. Spans all three oracle windows. 2026-08-09 is absent because it is a Sunday that year and the vigil never occurs; checked with `date -d`. *) +(* M30 (ef-sanctoral-status) -- `ubaldus` (16 May) and `didacus` (13 Nov), + promoted from Commemoration_only to Feast on the Missal's own universal + calendarium ("III classis" outright, no commemoration rubric, and a Mass + entry of their own in the Proprium). missalemeum keeps them as + commemorations, so on these days colitur observes the SAINT where the + oracle observes the feria: rank, observed identity and both citations + differ together, and the commemoration colitur used to emit is gone. + Colour differs only on 13 November, where the ferial green gives way to + the confessor's white; 16 May is in Paschaltide, already white. The same + population as C38 in the lectio differential -- and, as there, the oracle + here is colitur's own discarded ancestor rather than an independent + witness (register 6.20). *) +let m30_dates = [ "2026-05-16"; "2026-11-13"; "2027-11-13" ] + let m29_dates = [ "2026-08-14"; "2027-08-09"; "2027-08-14"; "2035-08-09"; "2035-08-14"; "2038-08-09"; "2038-08-14" ] @@ -1493,6 +1507,11 @@ let layer_m_reason (c : colitur_row) (o : oracle_row) diffs = && subset diffs [ Observed_identity_unresolved; First_mismatch; Gospel_mismatch ] then Some "M27" else if List.mem c.c_date m29_dates && subset diffs [ Colour_f ] then Some "M29" + else if List.mem c.c_date m30_dates + && subset diffs + [ Rank; Colour_f; Comm_presence; Comm_count; Observed_identity_mismatch; + Comm_identity_unresolved; First_mismatch; Gospel_mismatch ] + then Some "M30" else None (* ---------------------------------------------------------------------- *) @@ -1844,7 +1863,19 @@ let classify_2038 (c : colitur_row) (o : oracle_row) diffs = nh = 0 || at 0 in let first_is s = match c.c_first with Some f -> contains f s | None -> false in - if contains title "Mass of the B. V. M." then Some "BVM-SATURDAY-MASS (M26 shape 1)" + (* ef-sanctoral-status: `didacus`, promoted to Feast on the Missal's own + calendarium. 13 November 2038 is a SATURDAY, so before the promotion the + day kept RG 78's votive Office of the BVM (nothing else occupied it) and + after it the III-class feast does. Classified here explicitly, ahead of + every other branch, because without it the day falls through to the + BVM-Saturday branch and is labelled as the very office the promotion + REMOVED -- a label that would read as "still a BVM Saturday" and hide the + real cause. Same population as M30 in the 2026-2027 window and C38 in the + lectio differential. 16 May 2038 is a Sunday, so `ubaldus` is impeded and + never reaches this window at all. *) + if c.c_date = "2038-11-13" then + Some "PROMOTED-FEAST-RG-CALENDARIUM (M30, colitur; see C38)" + else if contains title "Mass of the B. V. M." then Some "BVM-SATURDAY-MASS (M26 shape 1)" else if first_is "Col 1:12-20" then Some "CHRIST-THE-KING-WEEK (M26 shape 2b)" else if diffs = [ Colour_f ] && List.mem c.c_observed_slug m21_2038_slugs then Some "COLOUR (M21)" else if first_is "Judith" then Some "JUDITH (M28, register 6.6)" @@ -2069,6 +2100,10 @@ let test_2038_class_counts () = Paschaltide. 2 of 2 possible -- neither 9 nor 14 August 2038 is a Sunday, so both vigils are actually observed that year. *) ("VIGIL-COLOUR-RG128 (M29, colitur; see C37)", 2); + (* ef-sanctoral-status: 13 November 2038 is a Saturday, so the + promoted `didacus` displaces RG 78's BVM Office there. 1 of 2 + possible: 16 May 2038 is a Sunday and `ubaldus` is impeded. *) + ("PROMOTED-FEAST-RG-CALENDARIUM (M30, colitur; see C38)", 1); ("COMM-NAME-FORM (same entity, different English name)", 2); ("COMM-ONLY-TIE-BREAK (RG-under-determined convention -- register 6.16)", 1); ("JOSEPH-ANNUNCIATION-TRANSFER-ORDER (C14's own collision)", 2); |
