summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 12:20:23 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 12:20:23 +0200
commit50ae89dbb1d3722494e4a5338f8ae314a1807249 (patch)
treec7667d6373e49f6f3e2dad918828f58dd9532545 /test
parentcab8b0702b6ba02e1e6293a6e06e77664e1604a1 (diff)
downloadcolitur-50ae89dbb1d3722494e4a5338f8ae314a1807249.tar.gz
colitur-50ae89dbb1d3722494e4a5338f8ae314a1807249.zip
test(ef): golden pins for RG16(a), both directions
Two real dates, hand-verified against the rubric before pinning (test_golden.ml's own discipline): 2028-08-06, the Transfiguration suppressing an ordinary Sunday's commemoration entirely (with an unrelated III-class saint the same fixed date, Pope Sixtus II et al., still getting its own ordinary commemoration -- proof the rule targets the Sunday specifically, not every commemoration due that day); and 2025-02-02, the corrected Purification -- the Sunday observed, the Purification surviving as an ordinary commemoration, the exact opposite of what RG16(a) would have done to it before the data fix. Re-ran the exhaustive sweep (COLITUR_EXHAUSTIVE_SWEEP=1 dune test --force): 1583-9999, 0 failures, including the resolution invariants that now see RG16(a)'s changed commemoration accounting.
Diffstat (limited to 'test')
-rw-r--r--test/test_golden.ml74
1 files changed, 73 insertions, 1 deletions
diff --git a/test/test_golden.ml b/test/test_golden.ml
index 945abe5..85a129b 100644
--- a/test/test_golden.ml
+++ b/test/test_golden.ml
@@ -482,6 +482,72 @@ let test_ii_class_sunday_admits_only_ii_class_commemoration () =
colour=green comms=[] in=- out=[]"
(describe d2026)
+(* ------------------------------------------------------------------ *)
+(* RG 16(a) (register §6.0, Caput III "De Dominicis", primary text quoted in
+ this task's own report): "festum Domini I aut II classis, in dominica II
+ classis occurrens, ... de dominica, proinde, nulla fit commemoratio" -- a
+ Feast of the Lord, I or II class, impeding a II-class Sunday, takes the
+ Sunday's own place with no commemoration of the Sunday at all, unlike
+ every OTHER impeded II-class Sunday (RG 109(a)/RG 111(b), the
+ [test_ii_class_sunday_admits_only_ii_class_commemoration] pin above).
+ Two real dates, both directions, exactly the pair the task brief asks
+ for. *)
+(* ------------------------------------------------------------------ *)
+
+(* 2028-08-06: the Transfiguration (6 Aug, II class, calendarium "IN
+ TRANSFIGURATIONE D. N. I. C.") falls on an ordinary Time-after-Pentecost
+ Sunday. `date -d 2028-08-06 +%A` = Sunday, independently confirmed. Also
+ the exact date register §6.0's own reproduction names as a live instance
+ of the bug this pin closes -- before this fix `colitur day` admitted
+ "+ef-time-after-pentecost-sunday-9" here.
+
+ Deliberately NOT a bare "comms=[]" pin (this project's own catalogued
+ vacuity flavour: a count/emptiness assertion that would pass even if
+ nothing had ever been offered): [omitted_has] first proves the Sunday
+ really WAS a candidate that reached [disposition] and was actively
+ excluded, not merely never constructed. And the Sunday is not the day's
+ ONLY loser -- Pope Sixtus II, Felicissimus and Agapitus (Martyrs,
+ Commemoration_only, III class, also fixed 6 August, unrelated to the
+ Sunday) still receive their own ORDINARY commemoration exactly as RG
+ 111(c)/(d) require: proof that RG 16(a) suppresses the SUNDAY
+ specifically, not "every commemoration due that day". *)
+let test_rg16a_lord_feast_no_sunday_commemoration_2028 () =
+ let d = fetch 2028 8 6 in
+ Alcotest.(check bool)
+ "2028-08-06: the impeded Sunday is in [omitted], proving RG16(a) actively fired (not merely never offered)"
+ true
+ (omitted_has d "ef-time-after-pentecost-sunday-9");
+ Alcotest.(check string)
+ "2028-08-06: the Transfiguration observed; the Sunday has NO commemoration (RG16a); an UNRELATED III-class \
+ saint the same day still gets its own ordinary one"
+ "2028-08-06 sunday season=time-after-pentecost week=9 slug=transfiguration-of-our-lord rank=class-2 \
+ colour=white comms=[pope-sixtus-ii-felicissimus-and-agapitus-martyrs:ordinary] in=- out=[]"
+ (describe d)
+
+(* 2025-02-02: the other direction, and the change that made this task's
+ two halves inseparable (this task's own report). The Purification (2
+ Feb, calendarium "IN PURIFICATIONE B. MARIAE VIRG.") is a feast of the
+ BLESSED VIRGIN, not of the Lord -- data/ef/adjustments.sexp retags it
+ [Bvm] (the sanctoral audit, this task's report), so it no longer bands
+ at RG 91 entry 14 and no longer outranks an occurring II-class Sunday
+ (entry 16 > entry 15). `date -d 2025-02-02 +%A` = Sunday, independently
+ confirmed. Register §6.0's own text: "Applying RG 16(a) to today's
+ [pre-fix] data would then also suppress the Sunday's commemoration
+ there" -- exactly the wrong outcome the data fix (not RG 16(a) itself)
+ prevents: with the Purification correctly Bvm, RG 16(a)'s own winner-side
+ [subject = Lord] conjunct never matches here, so the Sunday is simply the
+ observed day and the Purification survives as its ordinary commemoration
+ (RG 109/RG 111(b): a plain II-class candidate on a II-class Sunday, no
+ privileged rival due). *)
+let test_purification_on_a_sunday_2025 () =
+ check
+ ~msg:
+ "2025-02-02: the Sunday observed (Purification retagged Bvm, no longer a Feast of the Lord); the \
+ Purification survives as an ordinary commemoration, not suppressed"
+ 2025 2 2
+ "2025-02-02 sunday season=time-after-epiphany week=4 slug=ef-time-after-epiphany-sunday-4 rank=class-2 \
+ colour=green comms=[purification-of-the-blessed-virgin-mary:ordinary] in=- out=[]"
+
let suite =
( "golden pins (known-tricky years)",
[ Alcotest.test_case "Easter extreme: 1598 earliest (22 Mar, Gauss-verified)" `Quick
@@ -507,5 +573,11 @@ let suite =
test_ember_ferias_commemorated_when_impeded;
Alcotest.test_case "IV-class ferias never commemorated (2026)" `Quick test_iv_class_ferias_never_commemorated;
Alcotest.test_case "RG111(b): a II-class Sunday admits only a de-festo-II-classis commemoration (2009, 2026)"
- `Quick test_ii_class_sunday_admits_only_ii_class_commemoration
+ `Quick test_ii_class_sunday_admits_only_ii_class_commemoration;
+ Alcotest.test_case "RG16(a): a Feast of the Lord leaves the impeded Sunday with no commemoration (2028-08-06)"
+ `Quick test_rg16a_lord_feast_no_sunday_commemoration_2028;
+ Alcotest.test_case
+ "RG16(a) does not fire for the (corrected) Purification: the Sunday observed, the Purification \
+ commemorated (2025-02-02)"
+ `Quick test_purification_on_a_sunday_2025
] )