aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_precedence_ef.ml28
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,