summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-14 12:40:24 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-14 12:40:24 +0200
commit112781d6e3b92310d9d657c53a7e0fc789aefdfb (patch)
tree55f3a248be2e619c8a7ad54c011ccb79efd277ad /test
parentbf326ab963f46c42dc1a3b5141f2022bed81756d (diff)
downloadcolitur-112781d6e3b92310d9d657c53a7e0fc789aefdfb.tar.gz
colitur-112781d6e3b92310d9d657c53a7e0fc789aefdfb.zip
fix(ef): three colour corrections that contradicted the Missal by name
The sanctoral audit set chair-of-st-peter (22 Feb), conversion-of-st-paul (25 Jan) and peter (25 Jan, commemoration) to Red on RG 124(b). All three are reverted to White. RG 120(f), fifteen lines above RG 124(b) in the same column of the same page, names two of them in its enumeration of white: "Cathedrae S. Petri (22 februarii); Conversionis S. Pauli (25 ianuarii)". RG 124(b)'s own qualifier "in eorum die natalicio" independently excludes them, and RG 475(e) confirms it a third time by naming the Chair separately from "natalician feasts of Apostles". lectio and missalemeum both said white because both were right. peter rested on "match the host day's Red", whose host is white by that same clause, so the precedent inverts. Root cause: the audit's page-image method, its real advance, was applied to the calendarium and not to the rubric. RG 124 was read from the OCR text layer, where the two-column interleave shreds RG 120(f) across rows belonging to RG 115 and hyphen-splits Cathedrae, so a text-layer grep for it returns nothing while RG 124's enumeration survives cleanly. That read finds 124 and structurally cannot find 120(f). Two sentinels had been reporting this correctly and were overridden. The golden pin at 1902-02-22 asserted colour=white, was changed to red, and had its comment rewritten to guard against "a regression back to the old one" -- the only pin asserting a colour for any of the 21 slugs. And C18 and M21 both listed the two slugs under an RG 124(b) citation where both oracles were right. Pin restored; slugs dropped; C18 re-derived 526->450 from the observed-day counts, M21 20->18, M15 17->18. The audit's own discriminator would have isolated these. Its stated corroboration was that lectio's name.pl contradicts lectio's colour; run as a gate across all 21 that splits 17 genuine defects from 4 needing adjudication, and three of those four are these. It was quoted as illustration rather than used as a gate. 18 of 21 corrections stand, and the twelve whites are recited to RG 120(e) "Sanctorum non Martyrum" rather than to RG 117's negative residual. Also records Anastasia's deliberate non-fix in the tracked tree beside barbara, where the next auditor will be standing.
Diffstat (limited to 'test')
-rw-r--r--test/test_golden.ml10
-rw-r--r--test/test_rite_ef.ml33
2 files changed, 28 insertions, 15 deletions
diff --git a/test/test_golden.ml b/test/test_golden.ml
index 61224d3..a873738 100644
--- a/test/test_golden.ml
+++ b/test/test_golden.ml
@@ -506,10 +506,14 @@ let test_ember_ferias_commemorated_when_impeded () =
Red))`; this pin now asserts the corrected value, catching a
regression back to the old one either way. *)
check ~msg:"1902-02-22: Lent Ember Saturday, impeded, MUST be commemorated (RG24) and is privileged (RG109e) -- \
- AND RG110's Paul companion rides alongside it, uncapped -- AND Chair of St Peter is red (RG124b), \
- not lectio's bootstrapped white (ef-sanctoral-audit)"
+ AND RG110's Paul companion rides alongside it, uncapped -- AND Chair of St Peter is WHITE, \
+ named by date in RG120(f)'s own enumeration of white ('Cathedrae S. Petri (22 februarii)'). \
+ THIS PIN WAS RIGHT AND WAS EDITED TO ACCOMMODATE A WRONG CHANGE: the ef-sanctoral-audit task \
+ set it to red on RG124(b), whose 'in eorum die natalicio' qualifier does not reach the Chair, \
+ and rewrote this assertion rather than treating its failure as evidence. Restored by the \
+ fix-round review. A pin that resists a change is evidence, not an obstacle"
1902 2 22
- "1902-02-22 saturday season=lent week=1 slug=chair-of-st-peter rank=class-2 colour=red subject=saint \
+ "1902-02-22 saturday season=lent week=1 slug=chair-of-st-peter rank=class-2 colour=white subject=saint \
name_la=- comms=[ef-lent-ember-sat:privileged,paul:ordinary] in=- out=[]"
let test_iv_class_ferias_never_commemorated () =
diff --git a/test/test_rite_ef.ml b/test/test_rite_ef.ml
index 9b0cb4f..67b42ce 100644
--- a/test/test_rite_ef.ml
+++ b/test/test_rite_ef.ml
@@ -175,8 +175,8 @@ let test_eusebius_confessor_colour_corrected () =
audit-report.md have the full findings. Same discipline as
[test_eusebius_confessor_colour_corrected] above (its own predecessor,
same root cause): a typo'd slug or a reverted directive fails THIS test,
- not only silently changes unread data. One table, all fourteen [Feast]
- colour corrections plus the eight [Commemoration_only] ones (inert to
+ not only silently changes unread data. One table, all eleven [Feast]
+ colour corrections plus the seven [Commemoration_only] ones (inert to
[Precedence_ef.band]/[admit] today -- colour is read nowhere in either,
confirmed by grep -- but real for `colitur day`'s own printed output the
moment either entry is ever observed/commemorated). *)
@@ -188,24 +188,33 @@ let test_audit_colours_corrected () =
| Some e ->
Alcotest.(check bool) (Printf.sprintf "%s: %s" slug reason) true (e.Layer.cel.Cel.colour = expected)
in
- (* RG 124(e): a Martyr's own martyrdom is red -- these seven were White. *)
+ (* RG 124(e): a Martyr's own martyrdom is red -- these SIX were White.
+ Three more were set Red by the audit and REVERTED by the fix-round
+ review: conversion-of-st-paul and chair-of-st-peter are NAMED, by name
+ and by date, in RG 120(f)'s own enumeration of WHITE, fifteen lines
+ above the RG 124(b) the audit cited; and `peter` (25 Jan) rested on
+ "match the host day's Red", whose host is white by that same clause.
+ They are asserted White below, where the reverted values belong. *)
List.iter
(fun (slug, reason) -> check_colour slug Colour.Red reason)
- [ ("prisca", "Virg. et Mart., 18 Jan -- RG124(e)");
- ("conversion-of-st-paul", "an Apostle's own feast day, 25 Jan -- RG124(b)");
- ("peter", "Apostle commemoration, 25 Jan -- by consistency, see adjustments.sexp");
- ("chair-of-st-peter", "an Apostle's own feast day, 22 Feb -- RG124(b)");
+ [ ("prisca", "Virg. et Mart., 18 Jan -- RG124(e); lectio's own NAME dropped 'et Mart.', so its name is the defective field, not its colour");
("vitus", "Ss. ... Mm., 15 Jun -- RG124(e)");
("margaret", "Virg. et Mart., 20 Jul (comm) -- RG124(e)");
("apollinaris", "Ep. et Mart., 23 Jul -- RG124(e)");
("agapitus", "Mart., 18 Aug -- RG124(e)");
("josaphat", "Ep. et Mart., 14 Nov -- RG124(e)") ];
- (* RG 117's five-colour residual: a plain Confessor/Bishop/Virgin (no
- "Mart."/"Mm." in the calendarium's own line, not an Apostle) is white
- -- these were Red. *)
+ (* RG 120(e), "Sanctorum non Martyrum" -- a POSITIVE rule, four lines
+ above the one the audit misapplied. These were cited to "RG 117's
+ five-colour residual", a negative inference from the red list's
+ exhaustiveness; the outcome was right and the citation was weaker than
+ the Missal's own. The first three are the fix-round reverts, white by
+ RG 120(f)'s own naming rather than by (e). *)
List.iter
(fun (slug, reason) -> check_colour slug Colour.White reason)
- [ ("john-of-san-fecundo", "Conf. only, 12 Jun");
+ [ ("conversion-of-st-paul", "25 Jan -- NAMED white by RG120(f), 'Conversionis S. Pauli (25 ianuarii)'");
+ ("chair-of-st-peter", "22 Feb -- NAMED white by RG120(f), 'Cathedrae S. Petri (22 februarii)'");
+ ("peter", "25 Jan commemoration -- its host is white by RG120(f), so the audit's own precedent yields White");
+ ("john-of-san-fecundo", "Conf. only, 12 Jun");
("ephrem-of-syria", "Conf. et Eccl. Doct. only, 18 Jun");
("julia-of-falconieri", "Virg. only, 19 Jun");
("john-gualbert", "Abb. (Conf.) only, 12 Jul");
@@ -504,7 +513,7 @@ let suite =
`Quick test_rg16a_subject_retag_in_effect;
Alcotest.test_case "ef-rebootstrap fix round 1 (F3): eusebius-confessor is White, not lectio's Red" `Quick
test_eusebius_confessor_colour_corrected;
- Alcotest.test_case "ef-sanctoral-audit: 21 audit colour corrections are in effect (RG124)" `Quick
+ Alcotest.test_case "ef-sanctoral-audit: 18 colour corrections in effect (RG120(e)/124(e)); 3 reverted per RG120(f)" `Quick
test_audit_colours_corrected;
Alcotest.test_case "ef-sanctoral-audit: barbara (4 Dec) added, a genuine data gap" `Quick
test_barbara_added;