summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_lectionary_ef.ml39
1 files changed, 29 insertions, 10 deletions
diff --git a/test/test_lectionary_ef.ml b/test/test_lectionary_ef.ml
index 6d8f3fe..8af57f6 100644
--- a/test/test_lectionary_ef.ml
+++ b/test/test_lectionary_ef.ml
@@ -128,16 +128,35 @@ let test_step3_christmas_feria_resumes_sunday () =
[ "Gal 4:1-7"; "Luke 2:33-40" ]
(refs (day 2025 12 29))
-(* The distinction that matters: step 3 uses the preceding Sunday's TEMPORAL
- slug, never the observed one. 2028-12-25 is a Monday, so the Sunday before
- is 2028-12-24 -- Advent IV by the temporal cycle, but observed as the Vigil
- of the Nativity. The feria must take Advent IV's Mass, not the Vigil's. *)
+(* Fix round 1 (coordinator review, Important finding 1): the original test
+ here (2028-12-26) did not exercise step 3 at all -- 26 December is always
+ Stephen (Class2, a real sanctoral entry with its own citations, fixed
+ regardless of weekday), so that date resolves entirely at step 1 and never
+ reaches step 2 or 3. Its justifying comment was also factually wrong: 24
+ December's TEMPORAL slug is [ef-nativity-vigil], identical to its OBSERVED
+ slug -- [Temporal_ef.named] hard-codes the Vigil for 24 December ahead of
+ any Sunday computation, so there is no temporal/observed split on that
+ date to exploit in the first place.
+
+ 2025-02-03 genuinely discriminates, verified directly against the real
+ data (data/ef/sanctoral.sexp, data/ef/lectionary.sexp) and the real
+ resolver, not transcribed: 2025-02-02 (a Sunday) is observed as the
+ Purification of the BVM (RG 16(a): a Feast of the Lord takes the Sunday's
+ place outright), with its own citations Mal 3:1-4 / Luke 2:22-32 -- but
+ its TEMPORAL identity is [ef-time-after-epiphany-sunday-4], whose
+ lectionary entry is the different Rom 13:8-10 / Matt 8:23-27. 2025-02-03
+ (Monday) has no sanctoral office of its own and no entry for its own
+ temporal slug ([ef-time-after-epiphany-4-monday], absent from
+ data/ef/lectionary.sexp), so it reaches step 3 and must return the
+ Sunday's TEMPORAL readings (Rom 13:8-10 / Matt 8:23-27). A "step 3 reads
+ the observed office instead of the temporal one" bug would instead return
+ the Purification's (Mal 3:1-4 / Luke 2:22-32) -- different, checkable
+ values, not a bare length check. *)
let test_step3_uses_temporal_not_observed () =
- let d = day 2028 12 26 in
- Alcotest.(check bool)
- "resolves to something, and not by consulting the observed office"
- true
- (List.length (refs d) = 2)
+ Alcotest.(check (list string))
+ "3 February 2025 takes the preceding Sunday's TEMPORAL Mass (Time after Epiphany IV), not the Purification's"
+ [ "Rom 13:8-10"; "Matt 8:23-27" ]
+ (refs (day 2025 2 3))
(* Termination: a Sunday that reaches step 3 would consult itself. It must
not: the guard is weekday <> Sun. *)
@@ -156,7 +175,7 @@ let suite =
test_step3_advent_feria_resumes_sunday);
("step 3: Christmas feria resumes the preceding Sunday", `Quick,
test_step3_christmas_feria_resumes_sunday);
- ("step 3: uses the Sunday's temporal slug, not its observed office", `Quick,
+ ("step 3: 3 Feb 2025 takes the Sunday's temporal Mass, not the Purification's", `Quick,
test_step3_uses_temporal_not_observed);
("step 3: a Sunday does not recurse into itself", `Quick,
test_step3_sunday_does_not_recurse) ]