summaryrefslogtreecommitdiff
path: root/test/test_oracle.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_oracle.ml')
-rw-r--r--test/test_oracle.ml31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/test_oracle.ml b/test/test_oracle.ml
index 5177716..129c43b 100644
--- a/test/test_oracle.ml
+++ b/test/test_oracle.ml
@@ -1323,6 +1323,21 @@ let m25_dates = [ "2026-03-09"; "2026-03-24"; "2027-03-01"; "2027-03-16" ]
to distinguish this population from a genuinely new, unrelated
citation bug on some other Time-after-Pentecost feria): the SAME
discipline this file's own header names for every other entry here. *)
+(* M29 (ef-oconnell-rubrics) -- RG 128: violet for "vigils of II and III
+ class outside Paschaltide". The Vigil of St Lawrence (9 August, III class)
+ and the Vigil of the Assumption (14 August, II class) both qualify;
+ missalemeum keeps red and white respectively, as lectio and colitur also
+ did before this branch, because all three descend from Divinum Officium's
+ data files. This is the one divergence class in the file where the oracle
+ is not an independent witness against colitur at all -- it is colitur's own
+ discarded ancestor. See data/ef/expected-divergences.sexp's C37, the same
+ 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`. *)
+let m29_dates =
+ [ "2026-08-14"; "2027-08-09"; "2027-08-14"; "2035-08-09"; "2035-08-14"; "2038-08-09";
+ "2038-08-14" ]
+
let m26_dates =
[ "2026-01-03"; "2026-01-10"; "2026-02-14"; "2026-06-02"; "2026-06-03"; "2026-06-20"; "2026-06-27";
"2026-07-04";
@@ -1477,6 +1492,7 @@ let layer_m_reason (c : colitur_row) (o : oracle_row) diffs =
List.mem c.c_date m27_dates
&& 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 None
(* ---------------------------------------------------------------------- *)
@@ -1919,6 +1935,17 @@ let classify_2038 (c : colitur_row) (o : oracle_row) diffs =
Some "IMPEDED-SUNDAY-COMM (M8's rule, RG 109(a)/111(a))"
else if List.mem Comm_identity_unresolved diffs then
Some "COMM-IDENTITY-UNRESOLVED (temporal-origin, no English name -- M15's limit)"
+ (* RG 128 -- the two vigils of II/III class outside Paschaltide whose
+ colour this branch (ef-oconnell-rubrics) corrected from the values
+ inherited via lectio from missalemeum's own Divinum Officium data.
+ Same population as M29 in the 2026-2027 window and C37 in the lectio
+ differential; named here in this window's own vocabulary. Gated on the
+ exact date and colour alone, so any other divergence on these days
+ would still surface. *)
+ else if
+ List.mem c.c_date [ "2035-08-09"; "2035-08-14"; "2038-08-09"; "2038-08-14" ]
+ && diffs = [ Colour_f ]
+ then Some "VIGIL-COLOUR-RG128 (M29, colitur; see C37)"
else None
(* COMMEMORATIONS join the live-window comparison (2026-08-18).
@@ -2038,6 +2065,10 @@ let test_2038_class_counts () =
("CHRIST-THE-KING-WEEK (M26 shape 2b)", 2);
("CHRISTMAS-MULTI-MASS (M27)", 1);
("COLOUR (M21)", 7);
+ (* RG 128, ef-oconnell-rubrics: the two vigils of II/III class outside
+ 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);
("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);