diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 12:36:07 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 12:36:07 +0200 |
| commit | 12edb255c0a2559a59578fd6b5d7784ef04bc386 (patch) | |
| tree | dac3a618fe63e91f4cf9cae4e17b264f25b8a7dc /test/test_precedence_ef.ml | |
| parent | ca4287a6e99e14846f3560106156ef2b1c4b8cf2 (diff) | |
| parent | e07d0b1f49e1bb006b12a5e612453101d9e641a7 (diff) | |
| download | colitur-12edb255c0a2559a59578fd6b5d7784ef04bc386.tar.gz colitur-12edb255c0a2559a59578fd6b5d7784ef04bc386.zip | |
merge: sanctoral status audit and RG 113's first sentence
Two corrections argued from the Missal's own calendarium and rubrics, both
found by consulting primary sources the project already had but had not
fully read.
Diffstat (limited to 'test/test_precedence_ef.ml')
| -rw-r--r-- | test/test_precedence_ef.ml | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/test_precedence_ef.ml b/test/test_precedence_ef.ml index 790dab6..3f3e070 100644 --- a/test/test_precedence_ef.ml +++ b/test/test_precedence_ef.ml @@ -1170,12 +1170,40 @@ let unrelated_comm_synth = contest; it adds Paul regardless. *) let lent_feria_synth = (cand ~origin:P.Temporal ~rank:V.Class3 "ef-lent-2-monday-synth", P.Privileged, 180) +(* RG 113 sentence ONE (docs/research/rules-register.md §6.26): + "Commemoratio de Tempore fit primo loco." The commemoration OF THE SEASON + is made in the first place; the second sentence's table order governs the + OTHERS. Every other candidate in this table is [origin = P.Temporal] by + [cand]'s own default, so the rule is an identity on them and no existing + row's expectation moves; these two candidates exist to make a MIXED-origin + row possible, which is the only shape that can witness it. + + This file's [admit_cases] is the ONLY place in the whole suite that + asserts commemoration ORDER -- the differential never compares + commemorations, the oracle sorts both sides into a multiset, and + test_golden.ml's own [describe] deliberately sorts its comms field. So a + row here is the only thing standing between this rule and a silent + regression. *) +let sanctoral_hi = + { (cand ~rank:V.Class2 "ef-sanctoral-hi") with P.origin = P.Sanctoral } + +let seasonal_lo = cand ~rank:V.Class3 "ef-seasonal-lo" + let admit_cases = [ (* RG 111 (§4): "I class: none save one privileged." *) ( "I-class day, only an ordinary commemoration due -> none admitted", observed_class1, observed_class1, [ po ordinary_hi P.Ordinary ], [] ); + (* RG 113 s1: the de Tempore commemoration leads, even though the + sanctoral one outranks it on RG 91's table (Class2 beats Class3) and + would therefore come first under sentence TWO alone. Both slots of a + III-class day are filled, so this row tests ORDER, not selection. *) + ( "III-class day, seasonal + sanctoral both admitted -> the SEASONAL one \ + first (RG 113 s1), despite the sanctoral one's higher table position", + observed_class3, observed_class3, + [ po sanctoral_hi P.Ordinary; po seasonal_lo P.Ordinary ], + [ "ef-seasonal-lo"; "ef-sanctoral-hi" ] ); ( "I-class day, ordinary + privileged both due -> only the privileged \ one, regardless of the ordinary one's higher dignity", observed_class1, observed_class1, |
