summaryrefslogtreecommitdiff
path: root/internal/caldata/caldata_test.go
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 00:47:16 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 00:47:16 +0200
commite829b48b08c683d9dcef5e4b9502c1c42bc895f1 (patch)
tree63afd5857a2a98e476a6d7e8fc10b25056b905eb /internal/caldata/caldata_test.go
parent6c320f88cc5659233001894614e39265ca4e6363 (diff)
downloadlectio-e829b48b08c683d9dcef5e4b9502c1c42bc895f1.tar.gz
lectio-e829b48b08c683d9dcef5e4b9502c1c42bc895f1.zip
feat(of): full sanctoral calendar + weekday/memorial readings
Populate the OF General Roman Calendar sanctoral and extend the OF readings to weekdays and sanctoral days. Sanctoral calendar (roman-calendar.ini: 29 -> 202 celebrations): - scripts/gen-sanctoral.go generates it from calapi.inadiutorium.cz (authoritative General Roman Calendar) -- English name/rank/colour from general-en, Latin from general-la, Polish from niedziela DayInfo (obligatory celebrations). Fixed dates the temporal engine already computes are excluded. VALIDATED: my engine's observed rank agrees with calapi on all 86 obligatory sanctoral days of 2026 (0 mismatches). Precedence fix (precedence.go): an optional memorial no longer displaces the weekday as the DEFAULT observed celebration (it sorts below the ferial, shown as an option) -- matching the General Roman Calendar / calapi. Readings (of-lectionary.ini: 254 -> 1018 entries) via genlect-of.go: - Weekday (ferial) 2-year cycle I/II, keyed <ferial-slug>-<WeekdayCycle>, harvested from niedziela over 2020-2025 (multiple years per cycle; retry-on-failure so a glitch year never poisons a key; only TRUE ferials + optional-memorial days, where niedziela shows the ferial). - Obligatory memorials keyed by their OWN slug (niedziela shows their proper, e.g. Barnabas -> Acts 11, or the ferial for memorials without a proper) -- never miskeyed to a ferial position. - caldata.Readings: OF resolves slug+SundayCycle | slug+WeekdayCycle, else a memorial falls back to the day's ferial readings. - Source-glitch normalisation (1J->1 J, PnP->Pnp). books.ini: canonical names "Song of Solomon" and "The Acts" added as their own [en] forms (ToEnglishRef emits the canonical; it must resolve). Fixes ~32 cross-chapter Song-of-Songs/Acts citations. Coverage: 359/365 days of 2026 render (98.4%); 6 residual ferial positions never a true-ferial in 2020-2025. EF sanctoral and OF psalm renumbering still pending.
Diffstat (limited to 'internal/caldata/caldata_test.go')
-rw-r--r--internal/caldata/caldata_test.go12
1 files changed, 9 insertions, 3 deletions
diff --git a/internal/caldata/caldata_test.go b/internal/caldata/caldata_test.go
index ab7a314..12aed8c 100644
--- a/internal/caldata/caldata_test.go
+++ b/internal/caldata/caldata_test.go
@@ -11,9 +11,15 @@ func TestUniversalLoads(t *testing.T) {
if l.ID != "universal" {
t.Fatalf("layer id = %q", l.ID)
}
- rc, ok := l.Cels["assumption"]
- if !ok || rc.Fields["rank"] != "solemnity" || rc.Fields["date"] != "08-15" {
- t.Fatalf("assumption = %+v ok=%v", rc, ok)
+ // the Assumption (08-15, solemnity) must be present under some slug.
+ assumption := false
+ for _, rc := range l.Cels {
+ if rc.Fields["date"] == "08-15" && rc.Fields["rank"] == "solemnity" {
+ assumption = true
+ }
+ }
+ if !assumption {
+ t.Fatal("no 08-15 solemnity (Assumption) in the universal calendar")
}
// every entry must build into a typed Celebration whose rank parsed.
for slug, rc := range l.Cels {