diff options
Diffstat (limited to 'internal/calendar/oracle_ef_test.go')
| -rw-r--r-- | internal/calendar/oracle_ef_test.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/internal/calendar/oracle_ef_test.go b/internal/calendar/oracle_ef_test.go index a2bb6a5..47983c9 100644 --- a/internal/calendar/oracle_ef_test.go +++ b/internal/calendar/oracle_ef_test.go @@ -128,6 +128,65 @@ type efAllow struct { var efAllowList = []efAllow{ { + // The 1962 Missal's own universal CALENDARIUM ranks both of these as + // bare III-class feasts, with no commemoration rubric: "S. Ubaldi Ep. + // et Conf., III classis" (16 May) and "S. Didaci Conf., III classis" + // (13 November). Each also has its own Mass entry in the Proprium, + // taking its readings from a Common with only its Oratio proper -- + // which a bare commemoration never has. missalemeum ranks both as + // commemorations, so on these dates it leaves the day unimpeded and + // shows a feria or the Saturday BVM Office; lectio now shows the feast. + // + // This entry MUST precede the BVM-Saturday entry below. When 16 May or + // 13 November falls on a Saturday, that entry's predicate (Saturday + + // an oracle title naming the B.V.M.) also matches, and would absorb + // this divergence under a reason that is no longer true of it -- it + // says "both engines agree only that the day is unimpeded", and the + // whole point here is that the day IS impeded, by a feast missalemeum + // does not rank as one. + // + // Found by auditing all 290 of colitur's fixed-date sanctoral entries + // against that calendarium; these two were the only status defects. + // colitur allow-list C38/M30, rules-register.md 6.25. + match: func(date string, day time.Time, o efOracleDay) bool { + md := date[5:] + return (md == "05-16" || md == "11-13") && + !strings.Contains(strings.ToLower(o.Title), "ubald") && + !strings.Contains(strings.ToLower(o.Title), "didac") + }, + field: "rank+colour", + reason: "Missal calendarium ranks St Ubaldus (16 May) and St Didacus (13 Nov) III classis, not commemorations; missalemeum keeps them as commemorations and so leaves the day unimpeded (colitur C38/M30)", + }, + { + // RG 128, "De colore violaceo": violet is used for vigils of II and III + // class outside Paschaltide. The Vigil of the Assumption (14 August, II + // class) and the Vigil of St Lawrence (9 August, III class) both + // qualify. missalemeum shows white and red respectively -- values + // lectio carried too, and colitur inherited from lectio, all three + // descending from Divinum Officium's data files. The rule's sole + // exception is named in the same place and is not either of these: the + // Ascension's vigil, the one II-class vigil INSIDE Paschaltide, which + // is white and is untouched. + // + // colitur allow-list C37/M29, rules-register.md 6.24. + // NOT on a Sunday. RG 33 omits a II/III-class vigil whenever its date + // falls on one, so lectio shows the Sunday and the divergence there is + // missalemeum's own RG 33 gap -- already allow-listed further down, + // with its own citation. Without this guard, 2026-08-09 (a Sunday whose + // oracle title still reads "Vigil of St. Lawrence") matches on the + // title alone and is stolen from that entry, reported under a colour + // rule that has nothing to do with it. Same failure this list's first + // entry exists to prevent, in the opposite direction. + match: func(date string, day time.Time, o efOracleDay) bool { + md := date[5:] + return (md == "08-09" || md == "08-14") && + day.Weekday() != time.Sunday && + strings.Contains(strings.ToLower(o.Title), "vigil") + }, + field: "colour", + reason: "RG 128: violet for vigils of II and III class outside Paschaltide; missalemeum shows white/red (colitur C37/M29)", + }, + { // RG 91 entry 27, "Officium sanctae Mariae in sabbato": the votive // BVM Office on an otherwise-unoccupied IV-class Saturday. Not built // in lectio (temporal_ef.go constructs only a bare ferial slug on |
