[INFO] cloning repository https://github.com/fschutt/officium-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fschutt/officium-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffschutt%2Fofficium-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffschutt%2Fofficium-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2f10f2e9e8559d6212b3524acc4d0b1842b56e7d
[INFO] testing fschutt/officium-rs against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffschutt%2Fofficium-rs" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fschutt/officium-rs
[INFO] finished tweaking git repo https://github.com/fschutt/officium-rs
[INFO] tweaked toml for git repo https://github.com/fschutt/officium-rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fschutt/officium-rs on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fschutt/officium-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4
[INFO] running `Command { std: "docker" "start" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling hash32 v0.2.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling heapless v0.7.17
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling brotli v8.0.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling cobs v0.3.0
[INFO] [stderr]    Compiling postcard v1.1.3
[INFO] [stderr]    Compiling officium-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: officium-rs@0.1.0: sancti.json: json 50282 → postcard 27342 → brotli 5809 (11.6%)
[INFO] [stderr] warning: officium-rs@0.1.0: kalendaria_1962.json: json 6853 → postcard 3029 → brotli 1181 (17.2%)
[INFO] [stderr] warning: officium-rs@0.1.0: kalendaria_by_rubric.json: json 476521 → postcard 154248 → brotli 11788 (2.5%)
[INFO] [stderr] warning: officium-rs@0.1.0: ordo_latin.json: json 343328 → postcard 249020 → brotli 50156 (14.6%)
[INFO] [stderr] warning: officium-rs@0.1.0: corpus.postcard.br: horas 4340233 + missa 2524536 → combined 6864777 → brotli 1350380 (19.7%)
[INFO] [stderr] warning: officium-rs@0.1.0: psalms_latin.json: json 296171 → postcard 288862 → brotli 84912 (28.7%)
[INFO] [stdout] warning: function `tempora_feria_sunday_fallback` is never used
[INFO] [stdout]     --> src/mass.rs:3275:4
[INFO] [stdout]      |
[INFO] [stdout] 3275 | fn tempora_feria_sunday_fallback(key: &FileKey) -> Option<FileKey> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 47s
[INFO] running `Command { std: "docker" "inspect" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: officium-rs@0.1.0: sancti.json: json 50282 → postcard 27342 → brotli 5809 (11.6%)
[INFO] [stderr] warning: officium-rs@0.1.0: kalendaria_1962.json: json 6853 → postcard 3029 → brotli 1181 (17.2%)
[INFO] [stderr] warning: officium-rs@0.1.0: kalendaria_by_rubric.json: json 476521 → postcard 154248 → brotli 11788 (2.5%)
[INFO] [stderr] warning: officium-rs@0.1.0: ordo_latin.json: json 343328 → postcard 249020 → brotli 50156 (14.6%)
[INFO] [stderr] warning: officium-rs@0.1.0: corpus.postcard.br: horas 4340233 + missa 2524536 → combined 6864777 → brotli 1350380 (19.7%)
[INFO] [stderr] warning: officium-rs@0.1.0: psalms_latin.json: json 296171 → postcard 288862 → brotli 84912 (28.7%)
[INFO] [stderr]    Compiling officium-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `tempora_feria_sunday_fallback` is never used
[INFO] [stdout]     --> src/mass.rs:3275:4
[INFO] [stdout]      |
[INFO] [stdout] 3275 | fn tempora_feria_sunday_fallback(key: &FileKey) -> Option<FileKey> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.37s
[INFO] running `Command { std: "docker" "inspect" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: officium-rs@0.1.0: sancti.json: json 50282 → postcard 27342 → brotli 5809 (11.6%)
[INFO] [stderr] warning: officium-rs@0.1.0: kalendaria_1962.json: json 6853 → postcard 3029 → brotli 1181 (17.2%)
[INFO] [stderr] warning: officium-rs@0.1.0: kalendaria_by_rubric.json: json 476521 → postcard 154248 → brotli 11788 (2.5%)
[INFO] [stderr] warning: officium-rs@0.1.0: ordo_latin.json: json 343328 → postcard 249020 → brotli 50156 (14.6%)
[INFO] [stderr] warning: officium-rs@0.1.0: corpus.postcard.br: horas 4340233 + missa 2524536 → combined 6864777 → brotli 1350380 (19.7%)
[INFO] [stderr] warning: officium-rs@0.1.0: psalms_latin.json: json 296171 → postcard 288862 → brotli 84912 (28.7%)
[INFO] [stderr] warning: function `tempora_feria_sunday_fallback` is never used
[INFO] [stderr]     --> src/mass.rs:3275:4
[INFO] [stderr]      |
[INFO] [stderr] 3275 | fn tempora_feria_sunday_fallback(key: &FileKey) -> Option<FileKey> {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `officium-rs` (lib) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/officium_rs-e5ebe59d5e313c8e)
[INFO] [stdout] 
[INFO] [stdout] running 457 tests
[INFO] [stdout] test breviary::horas::tests::ad_horam_heading_matches_perl_adhoram ... ok
[INFO] [stdout] test breviary::horas::tests::hour_as_str_round_trip ... ok
[INFO] [stdout] test breviary::horas::tests::hour_all_is_canonical_order ... ok
[INFO] [stdout] test breviary::horas::tests::hour_parse_accepts_vesperae_alias ... ok
[INFO] [stdout] test breviary::horas::tests::resolve_psalter_variant_swaps_under_psalmvar ... ok
[INFO] [stdout] test breviary::postprocess::tests::alleluia_required_only_in_easter ... ok
[INFO] [stdout] test breviary::postprocess::tests::depunct_expands_ligatures ... ok
[INFO] [stdout] test breviary::postprocess::tests::depunct_preserves_other_characters ... ok
[INFO] [stdout] test breviary::postprocess::tests::depunct_strips_punctuation ... ok
[INFO] [stdout] test breviary::postprocess::tests::depunct_substitutes_j_to_i ... ok
[INFO] [stdout] test breviary::postprocess::tests::alleluia_required_suppressed_under_c9_or_c12_votive ... ok
[INFO] [stdout] test breviary::postprocess::tests::set_asterisk_long_line_uses_lp2_24 ... ok
[INFO] [stdout] test breviary::postprocess::tests::set_asterisk_passes_through_already_asterisked ... ok
[INFO] [stdout] test breviary::postprocess::tests::set_asterisk_preserves_unicode ... ok
[INFO] [stdout] test breviary::postprocess::tests::set_asterisk_strips_trailing_whitespace ... ok
[INFO] [stdout] test core::tests::all_roman_excludes_monastic ... ok
[INFO] [stdout] test breviary::horas::tests::hour_parse_rejects_unknown ... ok
[INFO] [stdout] test breviary::horas::tests::ordinarium_filename_collapses_minor_hours ... ok
[INFO] [stdout] test breviary::postprocess::tests::depunct_folds_accents ... ok
[INFO] [stdout] test breviary::postprocess::tests::set_asterisk_produces_balanced_split_for_average_line ... ok
[INFO] [stdout] test core::tests::date_format ... ok
[INFO] [stdout] test core::tests::file_key_no_slash ... ok
[INFO] [stdout] test core::tests::office_input_is_copy ... ok
[INFO] [stdout] test core::tests::file_key_roundtrip ... ok
[INFO] [stdout] test core::tests::rank_class_ordering ... ok
[INFO] [stdout] test date::leap_shift_tests::century_leap_year_handling ... ok
[INFO] [stdout] test date::leap_shift_tests::leap_february_shift ... ok
[INFO] [stdout] test date::leap_shift_tests::non_february_unaffected_in_leap_year ... ok
[INFO] [stdout] test date::leap_shift_tests::non_leap_passes_through ... ok
[INFO] [stdout] test breviary::postprocess::tests::set_asterisk_uses_punctuation_when_available ... ok
[INFO] [stdout] test breviary::postprocess::tests::set_asterisk_short_line_uses_space_split ... ok
[INFO] [stdout] test core::tests::rubric_kalendar_layer_mapping ... ok
[INFO] [stdout] test core::tests::rubric_perl_version_strings ... ok
[INFO] [stdout] test corpus::tests::corpus_trait_is_object_safe ... ok
[INFO] [stdout] test date::leap_shift_tests::get_sday_string_round_trip ... ok
[INFO] [stdout] test date::leap_shift_tests::sancti_kalendar_key_leap_feb_24_resolves_to_bissextile ... ok
[INFO] [stdout] test date::phase2_tests::advent_progression_2026 ... ok
[INFO] [stdout] test date::leap_shift_tests::sancti_kalendar_key_suppresses_leap_feb_23 ... ok
[INFO] [stdout] test date::phase2_tests::christmas_on_sunday_advent_shift_2022 ... ok
[INFO] [stdout] test date::phase2_tests::day_of_week_pinned_anchors ... ok
[INFO] [stdout] test date::leap_shift_tests::sancti_kalendar_key_leap_post_feb_24_shifts ... ok
[INFO] [stdout] test date::phase2_tests::easter_dates_across_decade ... ok
[INFO] [stdout] test date::leap_shift_tests::sancti_kalendar_key_non_february_unchanged ... ok
[INFO] [stdout] test date::phase2_tests::eastertide_progression_2026 ... ok
[INFO] [stdout] test date::leap_shift_tests::sancti_kalendar_key_passes_through_non_leap ... ok
[INFO] [stdout] test date::phase2_tests::getadvent_year_shape ... ok
[INFO] [stdout] test date::phase2_tests::pre_lent_and_lent_2026 ... ok
[INFO] [stdout] test date::phase2_tests::christmas_octave_unpadded ... ok
[INFO] [stdout] test date::phase2_tests::pent_epi_vs_epi_split_on_missa_flag ... ok
[INFO] [stdout] test date::phase2_tests::pre_epiphany_jan_zero_padded ... ok
[INFO] [stdout] test date::phase2_tests::easter_sunday_emits_pasc0 ... ok
[INFO] [stdout] test horas::tests::commune_chain_resolves_st_john_octave ... ok
[INFO] [stdout] test horas::tests::commune_chain_resolves_octave_inherit ... ok
[INFO] [stdout] test horas::tests::compute_office_hour_vespera_emits_walker_skeleton ... ok
[INFO] [stdout] test horas::tests::commune_chain_falls_through_to_sunday_oratio ... ok
[INFO] [stdout] test horas::tests::expand_at_redirect_explicit_section ... ok
[INFO] [stdout] test horas::tests::commune_chain_resolves_sancti_05_04 ... ok
[INFO] [stdout] test horas::tests::corpus_loads_some_horas_files ... ok
[INFO] [stdout] test horas::tests::compute_office_hour_vespera_christmas_renders ... ok
[INFO] [stdout] test horas::tests::compute_office_hour_unknown_hour_returns_empty ... ok
[INFO] [stdout] test horas::tests::expand_at_redirect_passthrough_on_non_redirect ... ok
[INFO] [stdout] test horas::tests::expand_at_redirect_implicit_section ... ok
[INFO] [stdout] test horas::tests::expand_at_redirect_unknown_path_keeps_literal ... ok
[INFO] [stdout] test horas::tests::first_vespers_keeps_today_when_tomorrow_outranked ... ok
[INFO] [stdout] test horas::tests::first_vespers_swaps_to_tomorrow_on_rank_tie ... ok
[INFO] [stdout] test horas::tests::first_vespers_swaps_when_tomorrow_outranks ... ok
[INFO] [stdout] test horas::tests::matutinum_3_lectiones_emits_single_nocturn_antiphon_block ... ok
[INFO] [stdout] test horas::tests::matutinum_3_lectiones_caps_at_lectio3 ... ok
[INFO] [stdout] test horas::tests::matutinum_emits_multiple_lectios ... ok
[INFO] [stdout] test horas::tests::matutinum_emits_nocturn_antiphons_for_apostles ... ok
[INFO] [stdout] test horas::tests::matutinum_renders_invitatorium_and_lectio4 ... ok
[INFO] [stdout] test horas::tests::ordinarium_file_for_hour_maps_minor_hours ... ok
[INFO] [stdout] test horas::tests::ordinarium_vespera_loads ... ok
[INFO] [stdout] test horas::tests::parse_antiphon_lines_filters_blank ... ok
[INFO] [stdout] test horas::tests::matutinum_emits_te_deum_after_final_lectio ... ok
[INFO] [stdout] test horas::tests::lauds_renders_with_oratio_splice ... ok
[INFO] [stdout] test horas::tests::matutinum_oratio_splices_proper ... ok
[INFO] [stdout] test horas::tests::parse_horas_rank_handles_corpus_shapes ... ok
[INFO] [stdout] test horas::tests::parse_vide_targets_handles_at_inherit ... ok
[INFO] [stdout] test horas::tests::parse_vide_targets_handles_common_shapes ... ok
[INFO] [stdout] test horas::tests::parse_vide_targets_handles_ex_inherit ... ok
[INFO] [stdout] test horas::tests::parse_vide_targets_handles_hyphenated_commune_subkey ... ok
[INFO] [stdout] test horas::tests::rule_lectio_count_recognises_both_forms ... ok
[INFO] [stdout] test horas::tests::substitute_saint_name_does_not_replace_inside_abbrev_chain ... ok
[INFO] [stdout] test horas::tests::sancti_athanasius_has_lectio4 ... ok
[INFO] [stdout] test horas::tests::strip_te_deum_directive_handles_trailing_marker ... ok
[INFO] [stdout] test horas::tests::tempora_sunday_fallback_maps_ferials_to_sunday ... ok
[INFO] [stdout] test horas::tests::sexta_splices_capitulum_from_commune ... ok
[INFO] [stdout] test horas::tests::substitute_saint_name_no_op_when_name_missing ... ok
[INFO] [stdout] test horas::tests::substitute_saint_name_preserves_unicode ... ok
[INFO] [stdout] test horas::tests::substitute_saint_name_replaces_placeholder ... ok
[INFO] [stdout] test horas::tests::vespera_st_monica_splices_capitulum_or_hymnus_from_commune ... ok
[INFO] [stdout] test horas::tests::tertia_sexta_nona_share_minor_template ... ok
[INFO] [stdout] test horas::tests::vespera_st_monica_splices_proper_oratio ... ok
[INFO] [stdout] test kalendaria::tests::suppressed_dates ... ok
[INFO] [stdout] test kalendaria::tests::override_demotes_old_feast ... ok
[INFO] [stdout] test horas::tests::vespera_with_day_key_none_matches_b2_behaviour ... ok
[INFO] [stdout] test kalendaria::tests::ferial_when_no_data ... ok
[INFO] [stdout] test kalendaria::tests::default_falls_through_when_diff_silent ... ok
[INFO] [stdout] test horas::tests::psalm_1_has_latin_body ... ok
[INFO] [stdout] test kalendaria_layers::tests::octave_nativity_bmv_lives_on_09_15t_under_t1910 ... ok
[INFO] [stdout] test kalendaria_layers::tests::vigil_of_all_saints_suppressed_in_1955 ... ok
[INFO] [stdout] test kalendaria_layers::tests::ferial_date_returns_none ... ok
[INFO] [stdout] test kalendaria_layers::tests::circumcision_present_in_every_layer ... ok
[INFO] [stdout] test kalendaria_layers::tests::joseph_the_worker_is_pius_xii_only ... ok
[INFO] [stdout] test kalendaria_layers::tests::cell_rank_num_parses_vigilia ... ok
[INFO] [stdout] test kalendaria_layers::tests::year_to_layer_breakpoints ... ok
[INFO] [stdout] test horas::tests::prima_renders_non_empty ... ok
[INFO] [stdout] test horas::tests::completorium_renders_non_empty ... ok
[INFO] [stdout] test mass::tests::apply_spelling_for_active_rubric_dispatches_per_rubric ... ok
[INFO] [stdout] test mass::tests::at_reference_with_regex_substitution ... ignored, Phase 6: `::s/PAT/REPL/` regex-substitution form
[INFO] [stdout] test kalendarium_1570::tests::ferial_date_returns_none ... ok
[INFO] [stdout] test kalendarium_1570::tests::vigil_of_matthias_in_1570 ... ok
[INFO] [stdout] test kalendarium_1570::tests::parse_emerentiana_replaces_raymond ... ok
[INFO] [stdout] test kalendarium_1570::tests::nativity_bmv_octave_via_t1910_layer ... ok
[INFO] [stdout] test kalendarium_1570::tests::parse_octave_with_commemoration ... ok
[INFO] [stdout] test kalendarium_1570::tests::parses_dominical_letter_files ... ok
[INFO] [stdout] test mass::tests::dump_r60_1981_10_18 ... ok
[INFO] [stdout] test mass::tests::christmas_introitus_textual_anchor ... ok
[INFO] [stdout] test mass::tests::expand_amp_at_eol ... ok
[INFO] [stdout] test mass::tests::expand_amp_gloria ... ok
[INFO] [stdout] test mass::tests::easter_sunday_propers ... ok
[INFO] [stdout] test mass::tests::expand_dollar_per_dominum ... ok
[INFO] [stdout] test mass::tests::confessor_with_commune_chain_resolves ... ok
[INFO] [stdout] test mass::tests::christmas_propers_all_present ... ok
[INFO] [stdout] test mass::tests::commemorations_empty_phase_5 ... ok
[INFO] [stdout] test mass::tests::expand_no_macros_unchanged ... ok
[INFO] [stdout] test mass::tests::expand_real_gloria_macro_exists_in_corpus ... ok
[INFO] [stdout] test mass::tests::expand_underscore_form ... ok
[INFO] [stdout] test mass::tests::expand_recursive ... ok
[INFO] [stdout] test mass::tests::expand_real_per_dominum_in_corpus ... ok
[INFO] [stdout] test mass::tests::expand_unknown_passes_through ... ok
[INFO] [stdout] test mass::tests::expanded_christmas_introitus_has_gloria_patri ... ok
[INFO] [stdout] test mass::tests::lectio_in_n_loco_substitution ... ignored, Phase 6: `Section in N loco` indexed-substitution form
[INFO] [stdout] test mass::tests::missing_section_returns_none ... ok
[INFO] [stdout] test mass::tests::dump_da_1979_oratio_v2 ... ok
[INFO] [stdout] test mass::tests::perl_sub_capture_group_with_dollar1_inserts_suffix ... ok
[INFO] [stdout] test mass::tests::expand_case_insensitive ... ok
[INFO] [stdout] test mass::tests::expand_longest_match_wins ... ok
[INFO] [stdout] test mass::tests::at_reference_path_only ... ok
[INFO] [stdout] test mass::tests::perl_sub_literal_replace_no_capture_group ... ok
[INFO] [stdout] test mass::tests::perl_sub_pattern_not_found_returns_original_text ... ok
[INFO] [stdout] test mass::tests::perl_sub_rejects_unsupported_metachars ... ok
[INFO] [stdout] test mass::tests::perl_sub_truncate_at_whitespace_literal ... ok
[INFO] [stdout] test mass::tests::da_wmsunday_class_iii_renders_saint_and_propaganda ... ok
[INFO] [stdout] test mass::tests::perl_sub_truncate_no_match_keeps_text ... ok
[INFO] [stdout] test mass::tests::perl_sub_keep_from_whitespace_literal_with_capture ... ok
[INFO] [stdout] test mass::tests::post_septuagesima_strips_conditional_outside_lent ... ok
[INFO] [stdout] test mass::tests::first_lent_sunday_temporal_propers ... ok
[INFO] [stdout] test mass::tests::post_septuagesima_swaps_to_alt_in_lent ... ok
[INFO] [stdout] test mass::tests::pentecost_sunday_propers ... ok
[INFO] [stdout] test mass::tests::nov_02oct_offertorium_drops_septuagesimam_conditional ... ok
[INFO] [stdout] test mass::tests::peter_paul_evangelium_via_commune_chain ... ok
[INFO] [stdout] test mass::tests::peter_paul_secreta_inline ... ok
[INFO] [stdout] test mass::tests::rubrica_predicate_matches_rubrics_1960 ... ok
[INFO] [stdout] test mass::tests::single_mass_winner_matches_source ... ok
[INFO] [stdout] test mass::tests::spell_classical_post1910_swaps_jj_to_ii ... ok
[INFO] [stdout] test mass::tests::st_petrus_martyr_chain_resolves ... ignored, Phase 7: needs 1570 kalendar diff to suppress the St Joseph Octave on Pasc3-3 so St Peter Martyr wins
[INFO] [stdout] test mass::tests::rubrica_predicate_matches_1570_baseline ... ok
[INFO] [stdout] test mass::tests::spell_classical_post1910_keeps_chant_marker ... ok
[INFO] [stdout] test mass::tests::tempora_feria_fallback_strips_feria_suffix ... ok
[INFO] [stdout] test mass::tests::tempora_feria_fallback_strips_feriat_suffix ... ok
[INFO] [stdout] test mass::tests::rubrica_predicate_matches_divino_afflatu ... ok
[INFO] [stdout] test mass::tests::rubrica_predicate_matches_1910 ... ok
[INFO] [stdout] test mass::tests::rubrica_predicate_matches_monastic ... ok
[INFO] [stdout] test missa::tests::resolve_commune_reference ... ok
[INFO] [stdout] test missa::tests::lookup_st_peter_martyr_mass ... ok
[INFO] [stdout] test occurrence::tests::all_souls_day_collision ... ignored, Phase 7+: All Saints Octave Day vs All Souls collision
[INFO] [stdout] test occurrence::tests::commune_bare_c_stem_resolves_to_commune ... ok
[INFO] [stdout] test mass::tests::peter_paul_lectio_proper_inline ... ok
[INFO] [stdout] test occurrence::tests::commune_empty_yields_none ... ok
[INFO] [stdout] test missa::tests::tempora_sunday_pasc3 ... ok
[INFO] [stdout] test occurrence::tests::christmas_day_sanctoral_wins_solo ... ok
[INFO] [stdout] test occurrence::tests::commune_bare_stem_uses_winner_category ... ok
[INFO] [stdout] test mass::tests::r55_simplex_commemoration_appends_hilarion ... ok
[INFO] [stdout] test occurrence::tests::commune_parses_ex_c2a ... ok
[INFO] [stdout] test occurrence::tests::commune_parses_vide_tempora ... ok
[INFO] [stdout] test occurrence::tests::dec_21_st_thomas_apostle ... ignored, Phase 9: 17-24 Dec privileged-ferias table
[INFO] [stdout] test occurrence::tests::easter_sunday_temporal_wins ... ok
[INFO] [stdout] test occurrence::tests::imm_conc_outranks_adv2_sunday_r60 ... ok
[INFO] [stdout] test occurrence::tests::lent_sunday_outranks_low_sanctoral ... ok
[INFO] [stdout] test occurrence::tests::nat_label_detection ... ok
[INFO] [stdout] test occurrence::tests::pasc3_3_no_st_joseph_in_1570 ... ignored, Phase 7: 1570 kalendar — Tempora/Pasc3-3 carries the 1911-instituted St-Joseph Octave Day
[INFO] [stdout] test occurrence::tests::pent22_dominica_minor_beats_chrysanthus_simplex ... ok
[INFO] [stdout] test occurrence::tests::conception_bmv_outranks_advent_feria_1570 ... ok
[INFO] [stdout] test occurrence::tests::commune_parses_vide_c11 ... ok
[INFO] [stdout] test occurrence::tests::commune_parses_vide_sancti_octave ... ok
[INFO] [stdout] test occurrence::tests::saturday_bvm_substitution ... ignored, Phase 9: Saturday-of-Our-Lady substitution on free Saturdays
[INFO] [stdout] test occurrence::tests::pentecost_sunday_temporal_wins ... ok
[INFO] [stdout] test occurrence::tests::commune_parses_ex_sancti ... ok
[INFO] [stdout] test occurrence::tests::rank_diagnostics_populated ... ok
[INFO] [stdout] test occurrence::tests::sept_ember_friday_uses_093_5 ... ok
[INFO] [stdout] test occurrence::tests::st_peter_martyr_ranking_under_1570_kalendar ... ignored, Phase 7: needs 1570 kalendar diff (St Peter Martyr instituted later)
[INFO] [stdout] test occurrence::tests::st_joseph_can_outrank_lent_sunday_when_class_i ... ok
[INFO] [stdout] test occurrence::tests::sept_ember_saturday_uses_093_6_not_sat_bvm ... ok
[INFO] [stdout] test occurrence::tests::trace_joseph_r60_2000 ... ok
[INFO] [stdout] test occurrence::tests::st_stephen_sanctoral_wins ... ok
[INFO] [stdout] test mass::tests::tempora_feria_fallback_skips_sunday ... ok
[INFO] [stdout] test occurrence::tests::trinity_sunday_temporal_wins ... ok
[INFO] [stdout] test mass::tests::tempora_feria_fallback_strips_single_letter_suffix ... ok
[INFO] [stdout] test ordo::tests::introibo_omits_in_passiontide ... ok
[INFO] [stdout] test mass::tests::winner_meta_redirects_to_m1 ... ok
[INFO] [stdout] test ordo::tests::flag_guards_match_perl_semantics ... ok
[INFO] [stdout] test ordo::tests::hook_guards_skip_when_hook_returns_true ... ok
[INFO] [stdout] test occurrence::tests::peter_and_paul_sanctoral_wins_outranks_post_pentecost_feria ... ok
[INFO] [stdout] test prayers::tests::dominus_vobiscum_short_form ... ok
[INFO] [stdout] test prayers::tests::lookup_ci_handles_lowercase ... ok
[INFO] [stdout] test prayers::tests::missing_macro_returns_none ... ok
[INFO] [stdout] test prayers::tests::gloria_body_contains_pater ... ok
[INFO] [stdout] test prayers::tests::loads_known_macros ... ok
[INFO] [stdout] test prayers::tests::oremus_minimal ... ok
[INFO] [stdout] test prayers::tests::parse_first_occurrence_wins ... ok
[INFO] [stdout] test prayers::tests::parse_rejects_digit_headers ... ok
[INFO] [stdout] test prayers::tests::names_includes_core_set ... ok
[INFO] [stdout] test prayers::tests::parses_synthetic_block ... ok
[INFO] [stdout] test precedence::tests::christmas_day_is_class_i ... ok
[INFO] [stdout] test prayers::tests::per_dominum_body_starts_with_per ... ok
[INFO] [stdout] test prayers::tests::per_eumdem_distinct_from_per_dominum ... ok
[INFO] [stdout] test precedence::tests::ember_wednesday_in_lent ... ignored, Phase 7+: emberday detection wants Quattuor Temporum substring in the resolved officium
[INFO] [stdout] test precedence::tests::first_advent_sunday_purple ... ok
[INFO] [stdout] test precedence::tests::compute_office_aligns_with_compute_occurrence ... ok
[INFO] [stdout] test precedence::tests::nonlatin_locale_panics ... ignored, Phase 12: locale routing — rubric core stays Latin until then
[INFO] [stdout] test precedence::tests::lent_sunday_is_class_i_temporal ... ok
[INFO] [stdout] test precedence::tests::ordinary_post_pent_feria_green ... ok
[INFO] [stdout] test precedence::tests::easter_sunday_is_class_i ... ok
[INFO] [stdout] test precedence::tests::palm_sunday_in_passiontide ... ok
[INFO] [stdout] test precedence::tests::rank_class_from_numeric ... ok
[INFO] [stdout] test precedence::tests::rank_kind_classification ... ok
[INFO] [stdout] test precedence::tests::rubrics_1960_panics_today ... ignored, Phase 11: rubric switch needs reform layers ported first
[INFO] [stdout] test precedence::tests::sanctoral_wins_carries_scriptura_back ... ok
[INFO] [stdout] test precedence::tests::ss_petri_et_pauli_is_class_i_feast ... ok
[INFO] [stdout] test precedence::tests::rank_string_strips_trailing_metadata ... ok
[INFO] [stdout] test precedence::tests::septuagesima_sunday_lavender ... ok
[INFO] [stdout] test precedence::tests::temporal_wins_easter_sets_no_scriptura ... ok
[INFO] [stdout] test precedence::tests::trinity_sunday_post_pentecost_classification ... ok
[INFO] [stdout] test precedence::tests::vespers_split_is_none_for_mass ... ok
[INFO] [stdout] test precedence::tests::winner_filekey_renders_as_path ... ok
[INFO] [stdout] test reform::tests::chain_lengths_match_reform_count ... ok
[INFO] [stdout] test reform::tests::chains_are_chronological ... ok
[INFO] [stdout] test reform::tests::monastic_separate_from_roman_chain ... ok
[INFO] [stdout] test reform::tests::pius_v_in_every_roman_chain ... ok
[INFO] [stdout] test regression::tests::classify_leading_extra ... ok
[INFO] [stdout] test regression::tests::classify_macro_not_expanded ... ok
[INFO] [stdout] test regression::tests::classify_ortho_variant_genetrice_genitrice ... ok
[INFO] [stdout] test regression::tests::classify_ortho_variant_short_inside_long_dismissal_tail ... ok
[INFO] [stdout] test precedence::tests::st_stephen_red_feast ... ok
[INFO] [stdout] test precedence::tests::vigil_detection_christmas ... ok
[INFO] [stdout] test regression::tests::classify_other ... ok
[INFO] [stdout] test regression::tests::classify_rubric_injection ... ok
[INFO] [stdout] test regression::tests::compare_section_empty_both ... ok
[INFO] [stdout] test regression::tests::compare_section_match_modulo_punctuation ... ok
[INFO] [stdout] test regression::tests::compare_section_named_oratio_strips_perl_rubric ... ok
[INFO] [stdout] test ordo::tests::introibo_hook_emits_omit_psalm_under_defunctorum ... ok
[INFO] [stdout] test regression::tests::classify_ortho_variant_too_small ... ok
[INFO] [stdout] test ordo::tests::ordo_template_has_propers_in_order ... ok
[INFO] [stdout] test regression::tests::compare_section_perl_blank ... ok
[INFO] [stdout] test regression::tests::compare_section_rust_blank ... ok
[INFO] [stdout] test ordo::tests::corpus_loads_templates_and_prayers ... ok
[INFO] [stdout] test regression::tests::compare_section_differ_text ... ok
[INFO] [stdout] test regression::tests::extract_perl_sections_simple ... ok
[INFO] [stdout] test regression::tests::infer_source_short_body_returns_empty ... ok
[INFO] [stdout] test regression::tests::extract_section_marker_positions_finds_known_headers ... ok
[INFO] [stdout] test regression::tests::match_score_disjoint_zero ... ok
[INFO] [stdout] test ordo::tests::render_mass_emits_propers_and_drops_skipped_blocks ... ok
[INFO] [stdout] test regression::tests::match_score_identical_one ... ok
[INFO] [stdout] test regression::tests::day_report_pass_count ... ok
[INFO] [stdout] test regression::tests::extract_perl_headline_picks_first_with_tilde ... ok
[INFO] [stdout] test regression::tests::match_score_long_common_prefix ... ok
[INFO] [stdout] test ordo::tests::render_mass_strips_upstream_wait_markers ... ok
[INFO] [stdout] test regression::tests::match_score_substring_one_direction ... ok
[INFO] [stdout] test regression::tests::normalize_handles_ae_with_acute ... ok
[INFO] [stdout] test regression::tests::normalize_keeps_genuflectitur_paren ... ok
[INFO] [stdout] test regression::tests::normalize_strips_allelu_paren ... ok
[INFO] [stdout] test regression::tests::normalize_strips_diacritics_and_html ... ok
[INFO] [stdout] test regression::tests::normalize_strips_tempus_paschale_paren ... ok
[INFO] [stdout] test regression::tests::normalize_blank_inputs ... ok
[INFO] [stdout] test regression::tests::perl_bug_does_not_swallow_genuine_differences ... ok
[INFO] [stdout] test regression::tests::normalize_handles_ae_ligature ... ok
[INFO] [stdout] test regression::tests::perl_bug_pent01_introit_treated_as_match ... ok
[INFO] [stdout] test regression::tests::rust_office_section_empty_section_returns_none ... ok
[INFO] [stdout] test regression::tests::rust_office_section_extracts_oratio_body ... ok
[INFO] [stdout] test regression::tests::placeholder_lectio_missing_with_deo_gratias_tail ... ok
[INFO] [stdout] test regression::tests::strip_evangelium_dominus_sit_trinitarian_form ... ok
[INFO] [stdout] test regression::tests::strip_evangelium_full_real_pattern ... ok
[INFO] [stdout] test regression::tests::strip_evangelium_post_gospel_laus_tibi_long ... ok
[INFO] [stdout] test regression::tests::strip_evangelium_post_gospel_laus_tibi_short ... ok
[INFO] [stdout] test regression::tests::strip_evangelium_dominus_sit_short_form ... ok
[INFO] [stdout] test regression::tests::rust_office_section_missing_returns_none ... ok
[INFO] [stdout] test regression::tests::placeholder_evangelium_missing_with_responses ... ok
[INFO] [stdout] test regression::tests::placeholder_introitus_missing_normalises_to_empty ... ok
[INFO] [stdout] test regression::tests::placeholder_only_fires_for_exact_section_marker ... ok
[INFO] [stdout] test regression::tests::strip_evangelium_prep ... ok
[INFO] [stdout] test regression::tests::strip_evangelium_response_between_announcement_and_body ... ok
[INFO] [stdout] test regression::tests::strip_salutation_only_for_relevant_sections ... ok
[INFO] [stdout] test regression::tests::strip_salutation_idempotent ... ok
[INFO] [stdout] test regression::tests::strip_salutation_secreta ... ok
[INFO] [stdout] test regression::tests::strip_salutation_offertorium ... ok
[INFO] [stdout] test sancti::tests::lookup_known_dates ... ok
[INFO] [stdout] test sancti::tests::lookup_peter_and_paul_prefers_196 ... ignored, Phase 2 corpus audit
[INFO] [stdout] test scrub::tests::empty_and_short_strings ... ok
[INFO] [stdout] test scrub::tests::does_not_match_wait_without_digits ... ok
[INFO] [stdout] test sancti::tests::color_assignment ... ok
[INFO] [stdout] test regression::tests::strip_salutation_oratio ... ok
[INFO] [stdout] test regression::tests::strip_salutation_with_leading_s_marker ... ok
[INFO] [stdout] test scrub::tests::preserves_unicode ... ok
[INFO] [stdout] test scrub::tests::strip_wait_keeps_inline_punctuation ... ok
[INFO] [stdout] test scrub::tests::strip_wait_trailing ... ok
[INFO] [stdout] test setupstring::tests::alternation_in_regex_fallback ... ok
[INFO] [stdout] test scrub::tests::strip_wait_case_insensitive ... ok
[INFO] [stdout] test scrub::tests::strip_wait_basic ... ok
[INFO] [stdout] test setupstring::tests::aut_resets_negation ... ok
[INFO] [stdout] test setupstring::tests::case_insensitive_keywords ... ok
[INFO] [stdout] test setupstring::tests::complex_real_world_condition ... ok
[INFO] [stdout] test setupstring::tests::dayname_all_souls_window ... ok
[INFO] [stdout] test setupstring::tests::dayname_christmas ... ok
[INFO] [stdout] test setupstring::tests::dayname_baptism_of_lord ... ok
[INFO] [stdout] test setupstring::tests::dayname_doctor_winner ... ok
[INFO] [stdout] test setupstring::tests::dayname_holy_week_triduum ... ok
[INFO] [stdout] test setupstring::tests::ad_predicate_swaps_for_missa_context ... ok
[INFO] [stdout] test setupstring::tests::aut_disjunction ... ok
[INFO] [stdout] test setupstring::tests::dayname_epiphany ... ok
[INFO] [stdout] test setupstring::tests::dayname_post_epiphany_octave_interior ... ok
[INFO] [stdout] test setupstring::tests::dayname_septem_doloris_movable ... ok
[INFO] [stdout] test setupstring::tests::dayname_st_nicholas ... ok
[INFO] [stdout] test setupstring::tests::dayname_no_match_returns_empty ... ok
[INFO] [stdout] test setupstring::tests::dayname_three_lectiones_rule ... ok
[INFO] [stdout] test setupstring::tests::dayname_transfiguration ... ok
[INFO] [stdout] test sancti::tests::ferial_dates_have_no_entry ... ok
[INFO] [stdout] test scrub::tests::no_scrubbing_when_no_marker ... ok
[INFO] [stdout] test setupstring::tests::dayname_via_vero_die_clause ... ok
[INFO] [stdout] test setupstring::tests::dis_chained_directives ... ok
[INFO] [stdout] test setupstring::tests::dis_digit_class ... ok
[INFO] [stdout] test setupstring::tests::dis_global_substitution ... ok
[INFO] [stdout] test setupstring::tests::dis_alternation ... ok
[INFO] [stdout] test setupstring::tests::dis_anchor_substitution_per_line_with_m_flag ... ok
[INFO] [stdout] test setupstring::tests::dis_line_drop_single ... ok
[INFO] [stdout] test setupstring::tests::dis_negative_lookahead ... ok
[INFO] [stdout] test setupstring::tests::dis_line_pick_range ... ok
[INFO] [stdout] test setupstring::tests::dis_line_pick_single ... ok
[INFO] [stdout] test setupstring::tests::dis_real_corpus_example_ant_vespera_strip_tone ... ok
[INFO] [stdout] test setupstring::tests::dis_strip_suffix_pattern ... ok
[INFO] [stdout] test setupstring::tests::dis_unsupported_pattern_skips_directive_silently ... ok
[INFO] [stdout] test setupstring::tests::dis_real_corpus_example_period_substitute ... ok
[INFO] [stdout] test setupstring::tests::dis_real_corpus_example_underscore_append ... ok
[INFO] [stdout] test setupstring::tests::dis_simple_substitution ... ok
[INFO] [stdout] test setupstring::tests::dis_caret_anchor_per_line_with_m_flag ... ok
[INFO] [stdout] test setupstring::tests::dis_line_drop_range ... ok
[INFO] [stdout] test setupstring::tests::feria_predicate_uses_dayofweek_plus_one ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_extracts_simple_directive ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_real_world_corpus_examples ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_returns_none_for_no_parens ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_skips_unmatched_parens ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_with_dicitur_semper ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_with_dicuntur_scope ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_with_no_stopword ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_with_scope_keyword ... ok
[INFO] [stdout] test setupstring::tests::find_conditional_with_two_stopwords ... ok
[INFO] [stdout] test setupstring::tests::implicit_subject_regex_fallback_for_tempore ... ok
[INFO] [stdout] test setupstring::tests::mense_predicate_perl_quirk_is_replicated ... ok
[INFO] [stdout] test setupstring::tests::multi_word_predicate_with_implicit_subject ... ok
[INFO] [stdout] test setupstring::tests::named_predicate_tridentina ... ok
[INFO] [stdout] test setupstring::tests::empty_condition_is_true ... ok
[INFO] [stdout] test setupstring::tests::empty_disjunct_does_not_satisfy ... ok
[INFO] [stdout] test setupstring::tests::parse_at_redirect_explicit_path_and_section ... ok
[INFO] [stdout] test setupstring::tests::parse_at_redirect_path_only_inherits_section ... ok
[INFO] [stdout] test setupstring::tests::parse_at_redirect_rejects_multiline_body ... ok
[INFO] [stdout] test setupstring::tests::nisi_negates_following_atom ... ok
[INFO] [stdout] test setupstring::tests::parse_at_redirect_rejects_non_at_body ... ok
[INFO] [stdout] test setupstring::tests::parse_at_redirect_self_reference ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_dicitur_semper_disables_line_backscope ... ok
[INFO] [stdout] test setupstring::tests::parse_at_redirect_with_substitutions ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_dicuntur_back_chunk_forward_chunk ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_explicit_chunk_scope ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_explicit_nest_scope ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_implicit_line_backscope_for_sed ... ok
[INFO] [stdout] test setupstring::tests::et_conjunction ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_si_has_weight_zero ... ok
[INFO] [stdout] test setupstring::tests::et_word_boundary_aware ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_si_no_implicit_backscope ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_strength_from_stopwords ... ok
[INFO] [stdout] test setupstring::tests::paschali_predicate ... ok
[INFO] [stdout] test setupstring::tests::pcl_blank_line_terminates_chunk_forward_scope ... ok
[INFO] [stdout] test setupstring::tests::pcl_directive_with_no_sequel ... ok
[INFO] [stdout] test setupstring::tests::pcl_empty_body ... ok
[INFO] [stdout] test setupstring::tests::pcl_no_directives_passes_through ... ok
[INFO] [stdout] test setupstring::tests::pcl_chunk_back_scope_via_versus_omittitur ... ok
[INFO] [stdout] test setupstring::tests::pcl_consecutive_blank_lines_preserved_outside_directive ... ok
[INFO] [stdout] test setupstring::tests::pcl_real_corpus_pattern_sed_rubrica_omittitur ... ok
[INFO] [stdout] test setupstring::tests::pcl_sed_drops_preceding_line_under_false_branch ... ok
[INFO] [stdout] test setupstring::tests::pcl_sequel_after_directive_is_subject_to_gating ... ok
[INFO] [stdout] test setupstring::tests::pcl_single_line_directive_drops_when_false ... ok
[INFO] [stdout] test setupstring::tests::regex_fallback_for_unknown_named_predicate_against_tempore ... ok
[INFO] [stdout] test setupstring::tests::regex_lite_anchors ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_no_implicit_backscope_without_stopword ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_applies_substitutions ... ok
[INFO] [stdout] test setupstring::tests::regex_lite_char_class ... ok
[INFO] [stdout] test setupstring::tests::parse_conditional_result_evaluates_under_subjects ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_cycle_detection ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_follows_explicit_at_section_redirect ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_follows_simple_at_redirect ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_multi_hop_chain ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_returns_direct_body_when_not_a_redirect ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_returns_none_when_path_missing ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_sed_directive_drops_preceding_line ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_runs_conditional_eval_on_final_body ... ok
[INFO] [stdout] test setupstring::tests::resolve_section_self_reference_at_colon_section ... ok
[INFO] [stdout] test setupstring::tests::rubrica_predicate_matches_perl_version_string ... ok
[INFO] [stdout] test setupstring::tests::pcl_two_independent_directives ... ok
[INFO] [stdout] test setupstring::tests::pcl_tilde_escape_strips_leading_tilde ... ok
[INFO] [stdout] test setupstring::tests::split_keyword_word_boundary_aware ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_advent ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_corpus_christi_thursday ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_easter_octave ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_post_easter ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_post_epiphany_window ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_post_pentecost_default ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_septuagesima_lent_passion ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_octava_corpus_christi_pre_1955_only ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_pasc6_special_branches ... ok
[INFO] [stdout] test tempora_table::tests::adv1_0_redirects_under_1570_only ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_via_vero_in_tempore_clause ... ok
[INFO] [stdout] test tempora_table::tests::epi1_0_redirects_to_a_variant ... ok
[INFO] [stdout] test tempora_table::tests::pasc3_0_branches_by_rubric ... ok
[INFO] [stdout] test tempora_table::tests::pent02_5_t1910_picks_o_variant ... ok
[INFO] [stdout] test tempora_table::tests::pent01_0_has_no_redirect ... ok
[INFO] [stdout] test tempora_table::tests::quad3_3_redirects_only_under_1570 ... ok
[INFO] [stdout] test tempora_table::tests::unknown_stem_returns_none ... ok
[INFO] [stdout] test setupstring::tests::subjects_builders_chain ... ok
[INFO] [stdout] test transfer_table::jan_13_probes::probe_01_13_rank_title ... ok
[INFO] [stdout] test setupstring::tests::tempus_id_christmastide_to_epiphany_eve ... ok
[INFO] [stdout] test transfer_table::holy_name_probes::probe_sat_01_13_1979_t1910 ... ok
[INFO] [stdout] test tempora_table::tests::nat02_xxxxx_is_skipped ... ok
[INFO] [stdout] test transfer_table::matthias_vigil_probes::probe_02_23_1982_t1570 ... ok
[INFO] [stdout] test transfer_table::holy_name_probes::probe_sun_01_14_1979_t1910 ... ok
[INFO] [stdout] test transfer_table::tests::all_souls_to_monday_1980_r60 ... ok
[INFO] [stdout] test transfer_table::tests::andrew_vigil_transfers_to_saturday_2026 ... ok
[INFO] [stdout] test transfer_table::matthias_vigil_probes::probe_02_24_1982_t1570 ... ok
[INFO] [stdout] test transfer_table::sat_11_03_probes::probe_sat_11_03_1979_r55_winner ... ok
[INFO] [stdout] test transfer_table::sat_11_03_probes::probe_tue_11_03_2026_r55_winner ... ok
[INFO] [stdout] test transfer_table::tests::easter_code_2026_is_405 ... ok
[INFO] [stdout] test transfer_table::tests::leap_year_uses_next_letter_for_jan_feb23 ... ok
[INFO] [stdout] test transfer_table::tests::no_transfer_for_random_date ... ok
[INFO] [stdout] test transfer_table::tests::probe_carmel_to_sab_1977_r60 ... ok
[INFO] [stdout] test transfer_table::tests::stem_transferred_away_quiet_for_unaffected_date ... ok
[INFO] [stdout] test transfer_table::tests::stem_transferred_away_quiet_in_year_without_clash ... ok
[INFO] [stdout] test transfer_table::tests::sunday_letter_2026_is_d ... ok
[INFO] [stdout] test transfer_table::transferred_all_souls_office::probe_07_16_1977_r60_office_winner ... ok
[INFO] [stdout] test transfer_table::transferred_all_souls_office::probe_07_16sab_rank ... ok
[INFO] [stdout] test translation::tests::folds_diacritics ... ok
[INFO] [stdout] test translation::tests::passes_macro_lines_through ... ok
[INFO] [stdout] test translation::tests::tokenizes_a_simple_phrase ... ok
[INFO] [stdout] test transfer_table::tests::epi4_anticipata_jan_31_2026 ... ok
[INFO] [stdout] test transfer_table::tests::leap_year_post_leap_dates_use_post_leap_letter ... ok
[INFO] [stdout] test transfer_table::tests::stem_transferred_away_fires_on_03_25_when_easter_march_31 ... ok
[INFO] [stdout] test transfer_table::transferred_all_souls_office::mon_11_03_1980_r60_winner_is_transferred_all_souls ... ok
[INFO] [stdout] test regression::tests::infer_source_finds_christmas_in_nocte ... ok
[INFO] [stdout] test regression::tests::infer_source_finds_excelso_throno_in_epi1_0a ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 445 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 2.70s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/debug_prelude.rs (/opt/rustwide/target/debug/deps/debug_prelude-a2d7c6f7a4c50479)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/getweek_check.rs (/opt/rustwide/target/debug/deps/getweek_check-037d03f1bf599429)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running unittests src/bin/office_sweep.rs (/opt/rustwide/target/debug/deps/office_sweep-237bb02fec6a3875)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/year_kalendar.rs (/opt/rustwide/target/debug/deps/year_kalendar-03af4aac2171a18c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/year_sweep.rs (/opt/rustwide/target/debug/deps/year_sweep-0789a271a485f970)
[INFO] [stderr]    Doc-tests officium_rs
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test src/date.rs - date::getweek (line 204) ... ok
[INFO] [stdout] test src/date.rs - date::date_to_ydays (line 151) ... ok
[INFO] [stdout] test src/date.rs - date::days_to_date (line 557) ... ok
[INFO] [stdout] test src/date.rs - date::date_to_days (line 704) ... ok
[INFO] [stdout] test src/date.rs - date::geteaster (line 58) ... ok
[INFO] [stdout] test src/date.rs - date::day_of_week (line 125) ... ok
[INFO] [stdout] test src/precedence.rs - precedence (line 12) ... ignored
[INFO] [stdout] test src/date.rs - date::getadvent (line 95) ... ok
[INFO] [stdout] test src/date.rs - date::get_sday (line 429) ... ok
[INFO] [stdout] test src/date.rs - date::nextday (line 488) ... ok
[INFO] [stdout] test src/date.rs - date::leap_year (line 39) ... ok
[INFO] [stdout] test src/date.rs - date::monthday (line 326) ... ok
[INFO] [stdout] test src/date.rs - date::prevnext (line 514) ... ok
[INFO] [stdout] test src/date.rs - date::ydays_to_date (line 171) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.71s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4", kill_on_drop: false }`
[INFO] [stdout] 6621207389d6cacfa0d9def573438e9292a15cb0fd5de1109a04d647d401e2a4
