mirror of
https://git.pumpin.online/funkpower/typikon.git
synced 2026-10-23 03:07:12 +00:00
stop lending Ruthenian law to churches it was never written for
Three Eastern Catholic jurisdictions borrowed the Ruthenian ruleset, so a Melkite, a Romanian Greek Catholic and a Ukrainian Greek Catholic were each told that fourteen days a year bound them under the particular law of the Metropolia of Pittsburgh. That is the exact error the level/obligation split exists to prevent, committed by the library itself. Every Eastern Catholic church legislates its own fasting discipline. Those three are now shown at the Typikon with nothing reported as binding, which is the honest position: the calendar is known, the law is not. Their entries say so and a test holds it, asserting both that no jurisdiction but ruthenian carries that ruleset and that the three claim no binding days. The README gains a section on these churches, since supporting them was never meant to be something a reader had to infer from the jurisdiction list.
This commit is contained in:
@@ -625,3 +625,38 @@ fn the_config_round_trips_all_three_axes() {
|
||||
}
|
||||
let _ = std::fs::remove_dir_all(&dir);
|
||||
}
|
||||
|
||||
// ─────────────── no church is told another church's law binds ─────────────
|
||||
|
||||
#[test]
|
||||
fn only_the_church_whose_law_was_sourced_reports_an_obligation() {
|
||||
use typikon::jurisdictions::{RuleKind, JURISDICTIONS};
|
||||
// Ruthenian particular law is sourced from the Metropolia of Pittsburgh.
|
||||
// No other jurisdiction may borrow it: telling a Melkite that fourteen
|
||||
// days a year bind him under a law that was never his is the error the
|
||||
// level/obligation split exists to prevent.
|
||||
for jur in JURISDICTIONS.iter() {
|
||||
if jur.rule == RuleKind::Ruthenian {
|
||||
assert_eq!(jur.key, "ruthenian", "{} borrows another church's law", jur.key);
|
||||
}
|
||||
}
|
||||
|
||||
for key in ["melkite", "romanian-catholic", "ugcc"] {
|
||||
let jur = resolve(Some(key)).unwrap();
|
||||
let binding = week(d("2026-01-01"), 365, jur)
|
||||
.into_iter()
|
||||
.filter(|x| x.is_obligatory())
|
||||
.count();
|
||||
assert_eq!(binding, 0, "{key} claims {binding} binding days it has no source for");
|
||||
// And the entry has to say why nothing binds.
|
||||
assert!(jur.note.contains("not modelled"), "{key}: the note must say so");
|
||||
}
|
||||
|
||||
// The one church whose law is sourced still reports it.
|
||||
let ruthenian = resolve(Some("ruthenian")).unwrap();
|
||||
let binding = week(d("2026-01-01"), 365, ruthenian)
|
||||
.into_iter()
|
||||
.filter(|x| x.is_obligatory())
|
||||
.count();
|
||||
assert_eq!(binding, 14);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user