diff options
Diffstat (limited to 'test/test_oracle.ml')
| -rw-r--r-- | test/test_oracle.ml | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/test_oracle.ml b/test/test_oracle.ml index 3a9e499..c1d0e6a 100644 --- a/test/test_oracle.ml +++ b/test/test_oracle.ml @@ -910,6 +910,52 @@ let m19_commemoration_matches (c : colitur_row) = | [ (slug, _, _, _) ] -> String.equal slug "commemoration-of-st-peter" | _ -> false +(* M21 -- ef-sanctoral-audit task (2026-08-14): the SAME closed 14-slug list + test_differential.ml's own [audit_colour_corrected_slugs] uses (RG 124, + data/ef/adjustments.sexp's own audit-block comment has the full + citation), now checked against THIS window's own oracle. Two of the + fourteen (`apollinaris`, 23 July; `josaphat`, 14 November) and one + further entry not on the Feast-status list at all (`chair-of-st-peter`, + 22 February, a Feast in its own right, RG124(b)) disagree with + missalemeum's own colour TOO, not merely lectio's -- a SECOND, + independent data source repeating the same defect (Apollinaris and + Josaphat are each martyr-bishops, RG 124(e); Peter's Chair is an + Apostle's own feast day, RG 124(b) -- both scan-verified word for word, + data/ef/adjustments.sexp's own comment), so this is not a case of + "missalemeum corroborates colitur, only lectio disagrees": the primary + TEXT is what decides it, and missalemeum is simply wrong on these three + the same way lectio is on all fourteen. [Comm_identity_unresolved] is + allowed alongside on 22 February specifically: that date's OTHER + commemoration (the ordinary Lenten feria RG 110 rides in alongside Paul) + is TEMPORAL-origin and already unresolved for identity, the same + pre-existing gap [M15]/[M18] elsewhere in this file document -- a + different axis, not something this entry's own citation explains, so it + is admitted by the subset check rather than folded into the citation. *) +let m21_colour_slugs = + [ "conversion-of-st-paul"; "chair-of-st-peter"; "john-of-san-fecundo"; "ephrem-of-syria"; + "julia-of-falconieri"; "john-gualbert"; "camillus-de-lellis"; "jerome-emiliani"; "apollinaris"; + "martha"; "alphonsus-liguori"; "augustine"; "rose-of-lima"; "josaphat" ] + +(* M22 -- ef-sanctoral-audit task: `barbara` (4 December, data/ef/ + adjustments.sexp's own new `Add`) is a genuine DATA GAP in missalemeum + too, the identical shape M1/M3/M8/M10/M19 above already document (each + "missalemeum does not implement X"): both years' own 4 December row + shows only the Advent feria's own temporal commemoration, no Barbara at + all, not even displaced -- missalemeum never constructed a candidate for + her either, the same absence lectio's own tridentine-calendar.ini has + (data/ef/adjustments.sexp's own `Add barbara` comment). Identity-gated + the same way [M19] is (coordinator finding F2): the predicate requires + colitur's own admitted set to be EXACTLY the temporal feria plus + `barbara`, not merely that SOME count diff exists on this date, so a + future unrelated regression on 4 December cannot silently hide behind + this citation. *) +let m22_dates = [ "2026-12-04"; "2027-12-04" ] + +let m22_commemoration_matches (c : colitur_row) = + match List.map (fun (slug, _, _, _) -> slug) c.c_commemorations with + | [ a; b ] -> (String.equal a "barbara") <> (String.equal b "barbara") + | _ -> false + (* [_o] (the oracle's own row) is unused now that M2 -- its one reader, via [o.o_title] -- is closed/removed (see the comment above [m1_dates]): every remaining predicate below reads only [c]/[diffs]. Kept as a named, @@ -965,6 +1011,11 @@ let layer_m_reason (c : colitur_row) (_o : oracle_row) diffs = else if List.mem c.c_date m19_dates && diffs = [ Comm_presence ] && m19_commemoration_matches c then Some "M19" else if + List.mem c.c_observed_slug m21_colour_slugs && diffs = [ Colour_f ] + then Some "M21" + else if List.mem c.c_date m22_dates && diffs = [ Comm_count ] && m22_commemoration_matches c then + Some "M22" + else if List.mem c.c_date m20_dates && subset diffs [ Comm_identity_mismatch; Observed_identity_unresolved ] && m20_commemoration_matches c |
