diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 11:36:33 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 11:36:33 +0200 |
| commit | 0281a846ac7c22d22990a6664a37205930a94b7d (patch) | |
| tree | 3b3d4140d0b3feb005a1bf36b52458b662944e3c /test/test_oracle.ml | |
| parent | 01219763c87c84175fcfa469882c6f30a56720d5 (diff) | |
| download | colitur-0281a846ac7c22d22990a6664a37205930a94b7d.tar.gz colitur-0281a846ac7c22d22990a6664a37205930a94b7d.zip | |
fix(ef): the Assumption and St Lawrence vigils are violet (RG 128)
RG 128, transcribed in the rules register since 2026-08-11, gives violet to
"vigils of II and III class outside Paschaltide". The Vigil of the Assumption
(14 August, II class) carried White and the Vigil of St Lawrence (9 August,
III class) carried Red. Both are outside Paschaltide, so both are violet. The
Ascension's vigil is untouched: it is the one II-class vigil inside
Paschaltide and was already correctly white.
The rule had been sitting in the register, disagreeing with the shipped data,
since before the data was bootstrapped. It was invisible because colitur,
lectio and missalemeum all carried the same two wrong colours -- colitur was
bootstrapped from lectio, lectio's ini is generated from missalemeum, and
missalemeum uses Divinum Officium's data files. Three sources agreeing is one
source counted three times, and the differential and the oracle both went
green on the shared error. It surfaced only against witnesses outside that
tree: a published 1962 Ordo flagged the Assumption's, and O'Connell, The
Celebration of Mass 4th ed. (1964), section 4(c) and footnote 169, gave the
general rule and with it St Lawrence's, which the Ordo omits entirely.
Two golden pins added, in years where each vigil is actually observed rather
than impeded. The divergence this creates against every DO-lineage source is
cited in both allow-lists: C37 (lectio, 77 rows -- 92 possible minus 15 where
the vigil falls on a Sunday) and M29 (missalemeum, 3 rows in 2026-2027 and 2
in each of 2035 and 2038). Both gated on the exact slugs or dates and on
colour alone, so any other divergence on those days would still surface.
Also recorded, no code change: rose on Gaudete and Laetare stays. RG 131 is
permissive ("adhiberi possunt") and the Ordo prints violet, so the colour
field carries a permission rather than a requirement on those two Sundays a
year -- a decided position now, not an unexamined one.
Diffstat (limited to 'test/test_oracle.ml')
| -rw-r--r-- | test/test_oracle.ml | 31 |
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); |
