summaryrefslogtreecommitdiff
path: root/test/test_differential.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 04:12:53 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 04:12:53 +0200
commitc464c0435c650cf019eb6c6ae1906217d557a15f (patch)
tree7a5805b8da7e879a19ebff16edb00aedc46c9796 /test/test_differential.ml
parent079e332e0a797105588787f7e5fdabd95ba1fa12 (diff)
downloadcolitur-c464c0435c650cf019eb6c6ae1906217d557a15f.tar.gz
colitur-c464c0435c650cf019eb6c6ae1906217d557a15f.zip
kernel(temporal): Holy Thursday is white, per RG128(b)'s named exception
RG 128(b) excepts "Missa sive Chrismatis sive in Cena Domini feria V Hebdomadae sanctae" from the Septuagesima-to-Easter-Vigil violet span as a whole-Mass exception (unlike Palm Sunday's blessing/procession, which the same sentence carves out as only part of that day) -- so Holy Thursday's Mass is white, not violet. temporal_ef.ml fell through to the generic Passiontide ferial path (season_colour Passiontide = violet) for this date, since [named] has no entry for the Triduum at all (rank was already correct via [privileged_feria]; only colour was wrong). Found via Task 16's missalemeum oracle comparison: every other Triduum day's oracle colour set includes violet as an option (Good Friday "bv", Holy Saturday "vw" -- already-flagged, deliberately deferred per-action gaps, register ยง3b), but Holy Thursday's is white alone. This is a genuine NEW divergence from lectio too (lectio has no such exception and still prints violet for Holy Thursday) -- added as Layer C11 to the differential harness and data/ef/expected-divergences .sexp, 46 rows (2005-2050), rather than silently changing what that harness accepts. Also corrected a stale comment on season_colour claiming white's RG paragraph was never pinned -- RG 119 was found and cited in the register on 2026-08-11 but the correction was never copied into this file's own comment.
Diffstat (limited to 'test/test_differential.ml')
-rw-r--r--test/test_differential.ml16
1 files changed, 9 insertions, 7 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index dd601a1..a9bdb91 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -76,13 +76,14 @@
family would still be caught by everything except the digit itself.
- Layer C (data/ef/expected-divergences.sexp, matched by
- [layer_c_reason] below): the CITED allow-list. Ten genuine liturgical
- disagreements, each citing its RG paragraph and stating which engine is
- right (always colitur, verified against the Missal/register, never
- against lectio's own behaviour -- "lectio does it differently" is not
- itself a justification anywhere in this file). This is the ONLY layer
- that may cover a difference in rank, colour, or which celebration is
- observed; A and B never do (enforced structurally below: A/B only ever
+ [layer_c_reason] below): the CITED allow-list. Eleven genuine liturgical
+ disagreements (C11 added by Task 16's oracle work, below), each citing
+ its RG paragraph and stating which engine is right (always colitur,
+ verified against the Missal/register, never against lectio's own
+ behaviour -- "lectio does it differently" is not itself a justification
+ anywhere in this file). This is the ONLY layer that may cover a
+ difference in rank, colour, or which celebration is observed; A and B
+ never do (enforced structurally below: A/B only ever
touch the season/slug fields, and Layer C's predicates each require an
exact, narrow field-diff SET, not "anything goes").
@@ -448,6 +449,7 @@ let layer_c_reason (l : row) (c : row) diffs =
(String.equal l.date "2011-07-02" || String.equal l.date "2011-07-04")
&& subset diffs [ Slug_f; Rank; Colour_f ]
then Some "C10"
+ else if String.equal c.slug "ef-passiontide-2-thursday" && diffs = [ Colour_f ] then Some "C11"
else None
(* ---------------------------------------------------------------------- *)