diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-09-02 12:54:07 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-09-02 12:54:07 +0200 |
| commit | b14a3078c1a4db87010f5df955442bf1e440e0ec (patch) | |
| tree | 5f511f4019a748862eca3d305cd1081a5ec637d3 /test | |
| parent | 5dd14266f2609faadc3ec60077127a7ef7e8ac8b (diff) | |
| download | colitur-b14a3078c1a4db87010f5df955442bf1e440e0ec.tar.gz colitur-b14a3078c1a4db87010f5df955442bf1e440e0ec.zip | |
fix(of): correct ten reading references, regenerated from lectio
Nine ended at verse 22 where the OLM ends them at 20; the tenth read
"Matthew 17:9a,10-135", a verse Matthew 17 does not have. Every one was in a
Year II entry, or in of-advent-2-saturday, which has no year cycle. Not one
Year I entry was affected -- that distribution is what made this a
transcription fault rather than ten independent slips.
Corrected upstream in lectio's own internal/caldata/of-lectionary.ini (its
suite green) and this file regenerated from it, per the header's own
instruction not to hand-edit a generated artifact. The diff is exactly the
source SHA-256 pin plus the ten references; both pins in test_lectionary_of.ml
move with it.
The Ordinary Time invariant added in the previous commit now asserts outright
rather than pinning six exceptions: in Ordinary Time the OF weekday Gospel does
not depend on the year of the cycle, so a -i/-ii pair whose Gospel differs is a
defect, and the expected violation set is empty. Mutation-tested against the
Year II entry alone -- an earlier attempt changed both halves of the pair and
passed for the wrong reason, which is worth knowing about this shape of test.
Measured: the 20-vs-22 divergence class against litcal goes 26 -> 0 over the
twelve witnessed years. 917 tests, every year 1583-9999.
Also, L6/L7 (the Sacred Heart / John the Baptist tie at an equal Tabula entry)
gains the citation its note said did not exist. Tabula I.3 enumerates
"Sollemnitates Domini, beatae Mariae Virginis, et Sanctorum" -- an order, not a
bare category, and read that way it settles the tie against colitur's current
alphabetical answer. Recorded with its counter-argument (entry 4 marks its own
internal order with explicit lettering; entry 2's list cannot be an ordering at
all) and with what would settle it. Verdict stays open, behaviour unchanged.
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_lectionary_of.ml | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/test/test_lectionary_of.ml b/test/test_lectionary_of.ml index 6b599c1..cbffdd2 100644 --- a/test/test_lectionary_of.ml +++ b/test/test_lectionary_of.ml @@ -201,7 +201,7 @@ let test_sha256_pinned () = and test_citation_coverage_of.ml), and the header's "Epistle" wording is fixed to "First". Re-derived the same way, same discipline. *) Alcotest.(check string) "data/of/lectionary.sexp SHA-256" - "788ddc6d2d783286b6e64882a5372ae213cd5462c887e68aa2bea22388cdb4f7" (sha256_of_file lectionary_path) + "aaa57bd7229bbd1fb3372fb9467251419885af6f02dbd19d328a6c410030868d" (sha256_of_file lectionary_path) (* lectio's OWN of-lectionary.ini SHA-256, pinned inside data/of/ lectionary.sexp's own provenance header (tools/bootstrap_lectionary_of @@ -216,7 +216,7 @@ let test_source_sha256_pinned_in_header () = let n = in_channel_length ic in let content = really_input_string ic n in close_in ic; - let needle = "SHA-256: f0b527aef58b93e6ccdfbeafe52b340ed2a9d7d72805bf5083e3da04b080123c" in + let needle = "SHA-256: 7b6c6a26abf222312c3000aeaae131887bbb1e2af3863c68a3e5ad005cd07ba9" in let contains haystack needle = let hl = String.length haystack and nl = String.length needle in let rec go i = i + nl <= hl && (String.sub haystack i nl = needle || go (i + 1)) in @@ -505,26 +505,24 @@ let test_christmas_date_keyed_no_drift () = An unscoped version of this test would report seventeen false positives and would, correctly, be switched off by whoever next read it. - PINNED, NOT GREEN (2026-08-28). Six pairs violate the invariant today, - and every one is the same transcription fault: a Year II Gospel ending at - verse 22 where the OLM ends it at 20. All six are confirmed against the - Latin OLM itself (docs/research/of/olm-1981-ocr.txt: "Mc 1, 14-20", - "Mc 4, 1-20", "Mc 5, 1-20", "Mt 7, 15-20", "Mt 17, 14-20", - "Mt 18, 15-20"), and three of them independently against litcal. + CLOSED (2026-08-28, same day it was opened). Six pairs violated this when + the test was written, every one the same transcription fault: a Year II + Gospel ending at verse 22 where the OLM ends it at 20. All six are now + corrected upstream in lectio's own internal/caldata/of-lectionary.ini and + this file regenerated from it, so the expected violation set is EMPTY and + the test asserts the invariant outright rather than pinning exceptions to + it. Four further corruptions the same exercise found -- three First + readings and of-advent-2-saturday's "Matthew 17:9a,10-135", a verse + Matthew 17 does not have -- are fixed in the same upstream commit but are + invisible to THIS check by construction: no I/II symmetry constrains a + First reading, and Advent has no year cycle. They were caught by comparing + against litcal instead, and the two SHA-256 pins above are what stop the + data regressing underneath either. - The defect is UPSTREAM and verbatim -- lectio's own - internal/caldata/of-lectionary.ini carries all six -- and this file's own - header forbids hand-editing a generated artifact, so the correction has to - be made there and the file regenerated. Until then the exact six are - listed here. The test fails if a SEVENTH appears, and equally if one is - FIXED without updating this list: both are changes a reader must see. *) -let known_year_ii_gospel_defects = - [ "of-ordinary-time-1-monday"; - "of-ordinary-time-12-wednesday"; - "of-ordinary-time-18-saturday"; - "of-ordinary-time-19-wednesday"; - "of-ordinary-time-3-wednesday"; - "of-ordinary-time-4-monday" ] + Corrections confirmed verbatim in the Latin OLM 1981: "Mc 1, 14-20", + "Mc 4, 1-20", "Mc 5, 1-20", "Mt 7, 15-20", "Mt 17, 14-20", + "Mt 18, 15-20". *) +let known_year_ii_gospel_defects = [] let test_ordinary_time_gospel_is_year_independent () = let entries = Lectionary.entries (real_lectionary ()) in @@ -558,7 +556,7 @@ let test_ordinary_time_gospel_is_year_independent () = in Alcotest.(check bool) "the sweep actually found Ordinary Time pairs to check" true (List.length stems > 100); Alcotest.(check (list string)) - "Ordinary Time: Year I and Year II share one Gospel, except the six pinned upstream defects" + "Ordinary Time: Year I and Year II share one Gospel, with no exceptions" known_year_ii_gospel_defects (List.sort compare violations) let suite = @@ -579,6 +577,6 @@ let suite = Alcotest.test_case "Christmas-season date-keyed reading does not drift (2 January)" `Quick test_christmas_date_keyed_no_drift; Alcotest.test_case - "Ordinary Time Gospel is year-independent (OLM n. 69.4); six upstream defects pinned" `Quick + "Ordinary Time Gospel is year-independent (OLM n. 69.4)" `Quick test_ordinary_time_gospel_is_year_independent ] |
