diff options
Diffstat (limited to 'test/test_oracle.ml')
| -rw-r--r-- | test/test_oracle.ml | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/test/test_oracle.ml b/test/test_oracle.ml index f1d1a89..01938e1 100644 --- a/test/test_oracle.ml +++ b/test/test_oracle.ml @@ -1381,6 +1381,33 @@ let m26_dates = citation fields are not, discovered by this task). *) let m27_dates = [ "2026-12-25"; "2027-12-25" ] +(* M31 (celebrant-rubrics-phase1, Bug 2, 2026-08-22) -- the six ferias + between the Ascension and the Friday before the Vigil of Pentecost that + repeat the Ascension's own Mass by an explicit marginal rubric in the + Proprium de Tempore (data/ef/lectionary.sexp's own [ascension_week_ + entries], full citation there and in this file's sibling + data/ef/expected-divergences.sexp's own C41). Only three of the six + civil dates this window's own [c_date] range can reach are actually + unoccupied in 2026-2027: 2026-05-21, 2026-05-22 and 2027-05-14 (the + other three fall to a real sanctoral feast both engines already agree + on). missalemeum -- Divinum Officium's own lineage, the SAME lineage + lectio inherited this defect from before colitur's own bootstrap -- + still walks these ferias back to the preceding Sunday's Mass, the + pre-fix answer colitur itself used to give; [Observed_identity_ + unresolved] fires alongside because none of the three is a SANCTORAL- + origin day (the mapping this whole file's own header describes cannot + name a TEMPORAL office's title either way, unrelated to this cause). *) +let m31_dates = [ "2026-05-21"; "2026-05-22"; "2027-05-14" ] + +(* The exact six slugs data/ef/lectionary.sexp's own [ascension_week_entries] + answers -- reused by [classify_2038]/[classify_2035] below, which key on + slug identity rather than a date list (those two live windows are not + scoped the way the 2026-2027 fixture is). *) +let ascension_week_slugs = + [ "ef-easter-6-friday"; "ef-easter-7-monday"; "ef-easter-7-tuesday"; "ef-easter-7-wednesday"; + "ef-easter-7-thursday"; "ef-easter-7-friday" + ] + (* The oracle's own row went unused when M2 -- its one reader, via [o.o_title] -- was closed/removed (see the comment above [m1_dates]), and was kept as a named, typed parameter rather than dropped from the @@ -1512,6 +1539,8 @@ let layer_m_reason (c : colitur_row) (o : oracle_row) diffs = [ Rank; Colour_f; Comm_presence; Comm_count; Observed_identity_mismatch; Comm_identity_unresolved; First_mismatch; Gospel_mismatch ] then Some "M30" + else if List.mem c.c_date m31_dates && subset diffs [ Observed_identity_unresolved; First_mismatch; Gospel_mismatch ] + then Some "M31" else None (* ---------------------------------------------------------------------- *) @@ -1992,6 +2021,16 @@ let classify_2038 (c : colitur_row) (o : oracle_row) diffs = 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)" + (* The Ascension-repeat rubric (celebrant-rubrics-phase1, Bug 2; see M31 + in this file's own 2026-2027 [layer_m_reason] and C41 in + data/ef/expected-divergences.sexp for the full citation). 2038 carries + three unoccupied instances the 2026-2027 window did not (2038-06-07/ + 08/09, all week-7 weekdays); 2035 carries one (2035-05-08). Gated on + colitur's own slug rather than on the date list this window's sibling + windows use, the same style [m21_2038_slugs] already establishes for + a live-window slug-keyed class. *) + else if List.mem c.c_observed_slug ascension_week_slugs && diffs = [ First_mismatch; Gospel_mismatch ] then + Some "ASCENSION-WEEK-REPEAT (M31, colitur; register, Bug 2)" else None (* COMMEMORATIONS join the live-window comparison (2026-08-18). @@ -2129,7 +2168,13 @@ let test_2038_class_counts () = ("MISSAL-TWO-PART-CITATION (register 6.9)", 1); ("COMM-IDENTITY-UNRESOLVED (temporal-origin, no English name -- M15's limit)", 2); ("PERPETUA-COMMON (register 6.8)", 1); - ("PETER-COMPANION-ABSENT-UPSTREAM (M19)", 1) + ("PETER-COMPANION-ABSENT-UPSTREAM (M19)", 1); + (* celebrant-rubrics-phase1, Bug 2: 2038-06-07/08/09 (the Monday, + Tuesday and Wednesday of the week after the Sunday after the + Ascension) are unoccupied that year, all three landing on the + Ascension-repeat rubric -- see M31 (2026-2027 window) and C41 + (data/ef/expected-divergences.sexp) for the full citation. *) + ("ASCENSION-WEEK-REPEAT (M31, colitur; register, Bug 2)", 3) ] |> List.sort compare in |
