[INFO] fetching crate klirr-core 0.2.1... [INFO] testing klirr-core-0.2.1 against try#b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b for pr-145330-1 [INFO] extracting crate klirr-core 0.2.1 into /workspace/builds/worker-5-tc2/source [INFO] started tweaking crates.io crate klirr-core 0.2.1 [INFO] finished tweaking crates.io crate klirr-core 0.2.1 [INFO] tweaked toml for crates.io crate klirr-core 0.2.1 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate klirr-core 0.2.1 on toolchain b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate klirr-core 0.2.1 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" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 16ed61472ec02d2c1186a707905fd797d927359a80b679fb0b1f5cf175eacbe3 [INFO] running `Command { std: "docker" "start" "-a" "16ed61472ec02d2c1186a707905fd797d927359a80b679fb0b1f5cf175eacbe3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "16ed61472ec02d2c1186a707905fd797d927359a80b679fb0b1f5cf175eacbe3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "16ed61472ec02d2c1186a707905fd797d927359a80b679fb0b1f5cf175eacbe3", kill_on_drop: false }` [INFO] [stdout] 16ed61472ec02d2c1186a707905fd797d927359a80b679fb0b1f5cf175eacbe3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9aadbc8b1e85807c6738c1b8a829b69753b53a49d1b3ab12f31637d3c11e4fef [INFO] running `Command { std: "docker" "start" "-a" "9aadbc8b1e85807c6738c1b8a829b69753b53a49d1b3ab12f31637d3c11e4fef", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling cc v1.2.25 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling prettyplease v0.2.34 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling convert_case v0.7.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rust_decimal v1.37.2 [INFO] [stderr] Compiling email-encoding v0.4.1 [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling hashbrown v0.15.3 [INFO] [stderr] Compiling email_address v0.2.9 [INFO] [stderr] Compiling quoted_printable v0.5.1 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling rand v0.9.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling psm v0.1.26 [INFO] [stderr] Compiling stacker v0.1.21 [INFO] [stderr] Compiling chumsky v0.9.3 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling hyper-util v0.1.14 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling rust_decimal_macros v1.37.1 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling strum_macros v0.27.1 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling getset v0.1.5 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling rustls-pki-types v1.12.0 [INFO] [stderr] Compiling secrecy v0.10.3 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling rustls-webpki v0.103.3 [INFO] [stderr] Compiling webpki-roots v1.0.1 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling strum v0.27.1 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling bon-macros v3.6.4 [INFO] [stderr] Compiling serde_with_macros v3.12.0 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling bon v3.6.4 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling serde_with v3.12.0 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling ron v0.10.1 [INFO] [stderr] Compiling lettre v0.11.17 [INFO] [stderr] Compiling reqwest v0.12.19 [INFO] [stderr] Compiling klirr-core v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.13s [INFO] running `Command { std: "docker" "inspect" "9aadbc8b1e85807c6738c1b8a829b69753b53a49d1b3ab12f31637d3c11e4fef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9aadbc8b1e85807c6738c1b8a829b69753b53a49d1b3ab12f31637d3c11e4fef", kill_on_drop: false }` [INFO] [stdout] 9aadbc8b1e85807c6738c1b8a829b69753b53a49d1b3ab12f31637d3c11e4fef [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d36a4f3b2eefab892bfd6d2c233f8a36c1d5cac81f262d88df2ba201007b8161 [INFO] running `Command { std: "docker" "start" "-a" "d36a4f3b2eefab892bfd6d2c233f8a36c1d5cac81f262d88df2ba201007b8161", kill_on_drop: false }` [INFO] [stderr] Compiling value-bag v1.11.1 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling signal-hook-registry v1.4.5 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling futures-lite v2.6.0 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling crunchy v0.2.3 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling siphasher v1.0.1 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling event-listener v5.4.0 [INFO] [stderr] Compiling async-task v4.7.1 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling async-lock v3.4.0 [INFO] [stderr] Compiling async-channel v2.3.1 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling ena v0.14.3 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling piper v0.2.4 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling itertools v0.11.0 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling ascii-canvas v3.0.0 [INFO] [stderr] Compiling pico-args v0.5.0 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling async-channel v1.9.0 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling anstream v0.6.19 [INFO] [stderr] Compiling async-executor v1.13.2 [INFO] [stderr] Compiling blocking v1.6.1 [INFO] [stderr] Compiling env_filter v0.1.3 [INFO] [stderr] Compiling base64 v0.13.1 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling lalrpop-util v0.20.2 [INFO] [stderr] Compiling ron v0.7.1 [INFO] [stderr] Compiling env_logger v0.11.8 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling ron v0.10.1 [INFO] [stderr] Compiling test-log-macros v0.2.17 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling levenshtein v1.0.5 [INFO] [stderr] Compiling ttf-parser v0.25.1 [INFO] [stderr] Compiling test-log v0.2.17 [INFO] [stderr] Compiling insta v1.43.1 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling serde_regex v1.1.0 [INFO] [stderr] Compiling lalrpop v0.20.2 [INFO] [stderr] Compiling async-attributes v1.1.2 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling lettre v0.11.17 [INFO] [stderr] Compiling polling v3.8.0 [INFO] [stderr] Compiling tempfile v3.20.0 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling async-io v2.4.1 [INFO] [stderr] Compiling hyper-util v0.1.14 [INFO] [stderr] Compiling async-signal v0.2.11 [INFO] [stderr] Compiling async-global-executor v2.4.1 [INFO] [stderr] Compiling async-process v2.3.1 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling async-std v1.13.1 [INFO] [stderr] Compiling reqwest v0.12.19 [INFO] [stderr] Compiling klirr-core v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Compiling async-object-pool v0.1.5 [INFO] [stderr] Compiling basic-cookies v0.1.5 [INFO] [stderr] Compiling httpmock v0.7.0 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 59.75s [INFO] running `Command { std: "docker" "inspect" "d36a4f3b2eefab892bfd6d2c233f8a36c1d5cac81f262d88df2ba201007b8161", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d36a4f3b2eefab892bfd6d2c233f8a36c1d5cac81f262d88df2ba201007b8161", kill_on_drop: false }` [INFO] [stdout] d36a4f3b2eefab892bfd6d2c233f8a36c1d5cac81f262d88df2ba201007b8161 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] af4f126350d3072ad0e42fb13ffadcf64402658bbebcd3af9c20977dca37e984 [INFO] running `Command { std: "docker" "start" "-a" "af4f126350d3072ad0e42fb13ffadcf64402658bbebcd3af9c20977dca37e984", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/klirr_core-3e400aafdfbcb3b8) [INFO] [stdout] [INFO] [stdout] running 369 tests [INFO] [stdout] test logic::calendar_logic::tests::elapsed_months_since_throws_when_start_month_is_later_than_end_month ... ok [INFO] [stdout] test logic::calendar_logic::tests::expenses::months_off::when__target_month_eq_offset_month_and_months_off_is_in_future__then__invoice_num_eq_offset_num_plus_1 ... ok [INFO] [stdout] test logic::calendar_logic::tests::expenses::months_off::when__target_month_is_4_months_after_offset_month_with_3_months_off__then__invoice_num_eq_offset_num_plus_2 ... ok [INFO] [stdout] test logic::calendar_logic::tests::expenses::no_months_off::when__target_month_eq_offset_month__then__invoice_num_eq_offset_num_plus_1 ... ok [INFO] [stdout] test logic::calendar_logic::tests::expenses::months_off::when__target_month_eq_offset_month_and_months_off_is_in_past__then__invoice_num_eq_offset_num_plus_1 ... ok [INFO] [stdout] test logic::calendar_logic::tests::expenses::months_off::when__target_month_is_8_months_after_offset_month_with_3_months_off__then__invoice_num_eq_offset_num_plus_6 ... ok [INFO] [stdout] test logic::calendar_logic::tests::services::months_off::when__target_month_eq_offset_month_and_months_off_is_in_future__then__invoice_num_eq_offset_num ... ok [INFO] [stdout] test logic::calendar_logic::tests::services::months_off::when__target_month_is_3_months_after_offset_month_with_all_months_off__then__invoice_num_eq_offset_num ... ok [INFO] [stdout] test logic::calendar_logic::tests::services::months_off::when__target_month_is_4_months_after_offset_month_with_3_months_off__then__invoice_num_eq_offset_num_plus_1 ... ok [INFO] [stdout] test logic::calendar_logic::tests::services::months_off::when__target_month_eq_offset_month_and_months_off_is_in_past__then__invoice_num_eq_offset_num ... ok [INFO] [stdout] test logic::calendar_logic::tests::services::months_off::when__target_month_is_8_months_after_offset_month_with_3_months_off__then__invoice_num_eq_offset_num_plus_5 ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_elapsed_months_since_when_start_month_is_later_in_the_year_than_end_month ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_calculate_invoice_number_throws_for_invalid_input ... ok [INFO] [stdout] test logic::calendar_logic::tests::services::no_months_off::when__target_month_eq_offset_month__then__invoice_num_eq_offset_num ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_fortnight_with_fortnight_granularity ... ok [INFO] [stdout] test logic::calendar_logic::tests::expenses::months_off::when__target_month_is_3_months_after_offset_month_with_all_months_off__then__invoice_num_eq_offset_num_plus_1 ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_fortnight_with_hour_granularity ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_last_day_of_month ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_one_month_earlier_of_january ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_fortnight_with_month_granularity_should_fail ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_throws_when_cadence_is_biweekly_and_granularity_is_month ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_granularity_fortnight_cadence_biweekly_is_one ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_granularity_fortnight_cadence_monthly_is_two ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_year_and_month_with_day_granularity ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_year_and_month_with_month_granularity ... ok [INFO] [stdout] test logic::calendar_logic::tests::test_quantity_in_period_year_and_month_with_hour_granularity ... ok [INFO] [stdout] test logic::calendar_logic::tests::ymf_one_half_earlier_month_half_first_half ... ok [INFO] [stdout] test logic::calendar_logic::tests::ymf_one_half_earlier_month_half_second_half ... ok [INFO] [stdout] test logic::calendar_logic::tests::try_from_period_anno_for_year_month_and_fortnight ... ok [INFO] [stdout] test logic::calendar_logic::tests::quantity_in_period_target_month_is_in_record_of_months_off ... ok [INFO] [stdout] test logic::calendar_logic::tests::quantity_in_period_target_month_december ... ok [INFO] [stdout] test logic::command::command::tests::test_data_selector_includes ... ok [INFO] [stdout] test logic::calendar_logic::tests::try_from_period_anno_for_year_and_month ... ok [INFO] [stdout] test logic::command::command::tests::save_to_disk_err_invalid_path ... ok [INFO] [stdout] test logic::command::command::tests::test_from_decrypted_email_settings_for_email_credentials ... ok [INFO] [stdout] test logic::command::command::tests::test_compose_email_and_credentials ... ok [INFO] [stdout] test logic::command::command::tests::save_to_disk_err_serialize ... ok [INFO] [stdout] test logic::calendar_logic::tests::expenses::no_months_off::when__target_month_is_3_months_after_offset_month__then__invoice_num_eq_offset_num_plus_4 ... ok [INFO] [stdout] test logic::command::command::tests::test_record_expenses_with_base_path_fail_because_wrong_period_kind ... ok [INFO] [stdout] test logic::command::command::tests::test_record_expenses_with_base_path_fail_because_wrong_period_kind_ymf ... ok [INFO] [stdout] test logic::command::command::tests::test_from_decrypted_email_settings_and_named_pdf_for_email ... ok [INFO] [stdout] test logic::command::command::tests::test_edit_email_data_at ... ok [INFO] [stdout] test logic::command::command::tests::test_init_data_directory_at ... ok [INFO] [stdout] test logic::command::command::tests::test_requires_encryption_password ... ok [INFO] [stdout] test logic::command::command::tests::test_record_expenses_with_base_path_throws_when_cadence_is_monthly_and_period_is_fortnight ... ok [INFO] [stdout] test logic::create_pdf::tests::test_save_pdf_invalid_path ... ok [INFO] [stdout] test logic::command::command::tests::test_input_email_data_at ... ok [INFO] [stdout] test logic::encryption::encrypted_app_password::tests::equality ... ok [INFO] [stdout] test logic::command::command::tests::test_validate_email_data_at ... ok [INFO] [stdout] test logic::encryption::encrypted_app_password::tests::equality_secret_str ... ok [INFO] [stdout] test logic::encryption::encrypted_app_password::tests::inequality ... ok [INFO] [stdout] test logic::encryption::encrypted_app_password::tests::test_decrypt_invalid_utf8 ... ok [INFO] [stdout] test logic::encryption::aes_gcm_256::tests::test_fail ... ok [INFO] [stdout] test logic::encryption::aes_gcm_sealed_box::tests::test_too_few_bytes ... ok [INFO] [stdout] test logic::command::command::tests::test_includes_for_email_selector ... ok [INFO] [stdout] test logic::encryption::aes_gcm_256::tests::test_roundtrip ... ok [INFO] [stdout] test logic::encryption::encrypted_app_password::tests::test_encrypted_app_password ... ok [INFO] [stdout] test logic::encryption::salt::tests::equality ... ok [INFO] [stdout] test logic::encryption::pb_hkdf::tests::test_kdf ... ok [INFO] [stdout] test logic::command::command::tests::test_read_data_from_disk ... ok [INFO] [stdout] test logic::encryption::salt::tests::inequality ... ok [INFO] [stdout] test logic::file_path_logic::tests::test_create_relative_ws ... ok [INFO] [stdout] test logic::create_pdf::tests::test_create_pdf ... ok [INFO] [stdout] test logic::file_path_logic::tests::test_create_folder_to_parent_of_path_if_needed ... ok [INFO] [stdout] test logic::command::command::tests::test_record_expenses_with_base_path ... ok [INFO] [stdout] test logic::command::command::tests::test_record_expenses_with_base_path_throws_when_cadence_is_bi_weekly_and_period_is_year_and_month ... ok [INFO] [stdout] test logic::command::command::tests::test_load_email_data_and_send_test_email_at_with_send ... ok [INFO] [stdout] test logic::functional::tests::test_curry1 ... ok [INFO] [stdout] test logic::functional::tests::test_curry2 ... ok [INFO] [stdout] test logic::encryption::aes_gcm_256::tests::test_decrypt ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_frankfurter_api_response ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_get_exchange_rate ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_get_exchange_rate_with_fetcher_when_from_to_is_equal ... ok [INFO] [stdout] test logic::command::command::tests::test_edit_data_at ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_if_feched_new_rates_is_false_cache_is_unchanged ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_if_feched_new_rates_is_true_cache_is_changed ... ok [INFO] [stdout] test logic::encryption::salt::tests::test_salt_generate ... ok [INFO] [stdout] test logic::create_pdf::tests::test_save_pdf ... ok [INFO] [stdout] test logic::functional::tests::test_result_ext ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::when_cache_is_filled_with_gibberish_then_it_is_reset ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_format_url ... ok [INFO] [stdout] test models::cost::tests::equality ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_fetch_for_items_all_found_in_cache ... ok [INFO] [stdout] test models::data::data::tests::expenses ... ok [INFO] [stdout] test models::cost::tests::inequality ... ok [INFO] [stdout] test logic::read_write_data::read_data_from_disk::tests::write_read_validate_data ... ok [INFO] [stdout] test models::data::data::tests::inequality ... ok [INFO] [stdout] test models::data::data::tests::to_partial_with_free_time_with_invalid_granularity_hour_instead_of_expected_day ... ok [INFO] [stdout] test models::data::data_from_disk_with_items_of_kind::tests::sample_data_from_disk_with_items_of_kind ... ok [INFO] [stdout] test models::data::data::tests::equality ... ok [INFO] [stdout] test models::data::data::tests::to_partial_with_free_time_with_invalid_granularity_hour_for_day_service ... ok [INFO] [stdout] test logic::save_pdf_location_to_tmp_file::tests::test_save_pdf_location_to_tmp_file ... ok [INFO] [stdout] test models::data::data::tests::test_worked_days_when_ooo_is_greater_than_0 ... ok [INFO] [stdout] test models::data::data_from_disk_with_items_of_kind::tests::test_get_absolute_path_with_absolute_path ... ok [INFO] [stdout] test models::data::data::tests::test_to_partial_when_offset_is_year_month_and_fortnight ... ok [INFO] [stdout] test models::data::submodels::cadence::tests::inequality ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_successful_deserialization ... ok [INFO] [stdout] test models::data::submodels::company_information::tests::equality ... ok [INFO] [stdout] test models::data::submodels::company_information::tests::inequality ... ok [INFO] [stdout] test models::data::data_from_disk_with_items_of_kind::tests::test_get_absolute_path_with_name ... ok [INFO] [stdout] test models::data::submodels::currency::tests::test_display ... ok [INFO] [stdout] test models::data::submodels::currency::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::cadence::tests::validate_successful ... ok [INFO] [stdout] test models::data::submodels::currency::tests::test_from_str ... ok [INFO] [stdout] test models::data::submodels::currency::tests::sample ... ok [INFO] [stdout] test models::data::submodels::email::email::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::email::email_account::tests::equality ... ok [INFO] [stdout] test models::data::submodels::email::email_account::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::email::email_account::tests::test_sample_values_hash ... ok [INFO] [stdout] test models::data::submodels::cadence::tests::equality ... ok [INFO] [stdout] test models::data::submodels::currency::tests::equality ... ok [INFO] [stdout] test logic::prepare_data::get_exchange_rates::tests::test_json_parse_error ... ok [INFO] [stdout] test logic::command::command::tests::test_record_month_off_with_base_path ... ok [INFO] [stdout] test models::data::submodels::email::email_address::tests::equality ... ok [INFO] [stdout] test models::data::submodels::email::email_address::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::email::email_credentials::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::email::email_address::tests::test_sample_is_alice ... ok [INFO] [stdout] test models::data::submodels::email::email_settings::tests::equality ... ok [INFO] [stdout] test models::data::submodels::email::email_settings::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::email::email_address::tests::test_sample_values ... ok [INFO] [stdout] test models::data::submodels::email::lettre_bridge::tests::test_content_type_pdf ... ok [INFO] [stdout] test models::data::submodels::email::email_credentials::tests::equality ... ok [INFO] [stdout] test models::data::submodels::email::lettre_bridge::tests::test_credentials_from ... ok [INFO] [stdout] test logic::calendar_logic::tests::services::no_months_off::when__target_month_is_3_months_after_offset_month__then__invoice_num_eq_offset_num_plus_3 ... ok [INFO] [stdout] test logic::read_write_data::get_localization::tests::test_get_localization ... ok [INFO] [stdout] test models::data::submodels::email::email::tests::equality ... ok [INFO] [stdout] test models::data::submodels::email::template_part::tests::test_replace ... ok [INFO] [stdout] test models::data::submodels::email::template_part::tests::test_rng ... ok [INFO] [stdout] test models::data::submodels::email::template_part::tests::test_that_tutorial_contains_all_variables ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::equality ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::test_insert_expenses_different ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::test_expensed_months_contains ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::test_get ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::test_insert_expenses_same_except_quantity ... ok [INFO] [stdout] test models::data::submodels::email::lettre_bridge::tests::test_singlepart_from_attachment ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::test_insert_expenses_same_except_quantity_added_in_two_batches ... ok [INFO] [stdout] test models::data::submodels::footer_text::tests::default_neq_sample ... ok [INFO] [stdout] test models::data::submodels::email::template::tests::test_template_materialization ... ok [INFO] [stdout] test models::data::submodels::footer_text::tests::equality ... ok [INFO] [stdout] test models::data::submodels::granularity::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::granularity::tests::ord ... ok [INFO] [stdout] test models::data::submodels::hex_color::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::email::lettre_bridge::tests::test_message_from_email_with_sender_without_attachment ... ok [INFO] [stdout] test models::data::submodels::hex_color::tests::test_hex_color_from_str ... ok [INFO] [stdout] test models::data::submodels::granularity::tests::example_rates ... ok [INFO] [stdout] test models::data::submodels::email::lettre_bridge::tests::test_email_from ... ok [INFO] [stdout] test models::data::submodels::hex_color::tests::equality ... ok [INFO] [stdout] test models::data::submodels::hex_color::tests::test_from_str_invalid_all_reasons ... ok [INFO] [stdout] test models::data::submodels::hex_color::tests::test_hex_color_default_is_black ... ok [INFO] [stdout] test models::data::submodels::footer_text::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::equality ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::from_date ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::test_from_str_all_valid ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::test_into_i16 ... ok [INFO] [stdout] test models::data::submodels::net_days::tests::equality ... ok [INFO] [stdout] test models::data::submodels::net_days::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::payment_information::tests::equality ... ok [INFO] [stdout] test models::data::submodels::payment_information::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::payment_terms::tests::equality ... ok [INFO] [stdout] test models::data::submodels::payment_terms::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::payment_terms::tests::from_str_invalid_all_reasons ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::now ... ok [INFO] [stdout] test models::data::submodels::payment_terms::tests::test_payment_terms_from_str ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::equality ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::from_str_invalid ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::from_str_valid ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::mix_ym_ymf_throws ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::mix_ymf_ym_throws ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::test_deserialize_ron_year_month_and_fortnight ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::test_elapsed_periods_since_year_and_fortnight ... ok [INFO] [stdout] test models::data::submodels::granularity::tests::equality ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::test_get_not_found ... ok [INFO] [stdout] test models::data::submodels::expensed_periods::tests::default_is_empty ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::test_elapsed_periods_since_year_and_month ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::test_to_date_end_of_period_year_and_month ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::test_to_date_end_of_period_year_and_fortnight ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::year_month_and_fortnight_max_granularity ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::year_month_and_fortnight_get_month ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::year_month_and_fortnight_get_year ... ok [INFO] [stdout] test models::data::submodels::postal_address::tests::equality ... ok [INFO] [stdout] test models::data::submodels::postal_address::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::proto_invoice_info::tests::equality ... ok [INFO] [stdout] test models::data::submodels::proto_invoice_info::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::proto_invoice_info::tests::test_advance ... ok [INFO] [stdout] test models::data::submodels::proto_invoice_info::tests::test_insert_period_off ... ok [INFO] [stdout] test models::data::submodels::proto_invoice_info::tests::test_proto_invoice_info_validate_invalid ... ok [INFO] [stdout] test models::data::submodels::proto_invoice_info::tests::test_proto_invoice_info_validate_valid ... ok [INFO] [stdout] test models::data::submodels::purchase_order::tests::equality ... ok [INFO] [stdout] test models::data::submodels::rate::tests::equality ... ok [INFO] [stdout] test models::data::submodels::purchase_order::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::rate::tests::from_tuple ... ok [INFO] [stdout] test models::data::submodels::rate::tests::granularity ... ok [INFO] [stdout] test models::data::submodels::rate::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::rate::tests::unit_price ... ok [INFO] [stdout] test models::data::submodels::record_of_periods_off::tests::equality ... ok [INFO] [stdout] test models::data::submodels::record_of_periods_off::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::service_fees::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::service_fees::tests::equality ... ok [INFO] [stdout] test models::data::submodels::time_off::tests::deref ... ok [INFO] [stdout] test logic::serde_to_typst::tests::sample_expenses_to_typst ... ok [INFO] [stdout] test models::data::submodels::time_off::tests::equality ... ok [INFO] [stdout] test models::data::submodels::time_off::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::timestamped_invoice_number::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::service_fees::tests::test_serde ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_across_month_and_year_one_half_is_1 ... ok [INFO] [stdout] test models::data::submodels::timestamped_invoice_number::tests::equality ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::deserialize_ron ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_across_month_one_half_is_1 ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_cross_year_early_is_first_half ... ok [INFO] [stdout] test logic::serde_to_typst::tests::l18n_english_to_typst_macro ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_cross_year_early_and_late_are_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_cross_year_early_is_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_cross_year_early_is_first_half_and_late_is_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_cross_year_early_one_period ... ok [INFO] [stdout] test models::data::data::tests::test_serialization_sample ... ok [INFO] [stdout] test models::data::submodels::currency::tests::test_debug ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::display_sample ... ok [INFO] [stdout] test models::data::submodels::month_half::tests::display_sample_other ... ok [INFO] [stdout] test models::data::submodels::payment_terms::tests::test_payment_terms_default ... ok [INFO] [stdout] test logic::serde_to_typst::tests::sample_services_to_typst ... ok [INFO] [stdout] test models::data::submodels::payment_terms::tests::test_payment_terms_net_days ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::display_sample ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_one_period_only ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_one_year_first_first_is_24 ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_one_year_first_second_is_25 ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::display_sample_other ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_one_year_second_second_is_24 ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_same_is_zero ... ok [INFO] [stdout] test models::data::submodels::period_anno::tests::serde_fortnight ... ok [INFO] [stdout] test models::data::submodels::postal_address::tests::test_debug ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_same_month_different_half_is_1 ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::from_str_valid ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::equality ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::from_str_invalid ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_april_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_august_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_december_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_december_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_january_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::serde_sample ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_april_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_august_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::month ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_january_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::serde_sample_other ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_july_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_july_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_leap_year_february_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_leap_year_february_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_march_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_june_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_june_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_march_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_may_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_non_leap_year_february_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_non_leap_year_february_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_may_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_october_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_october_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_september_first_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_november_second_half ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_november_first_half ... ok [INFO] [stdout] test models::date::tests::test_from_naive_date ... ok [INFO] [stdout] test models::date::tests::inequality ... ok [INFO] [stdout] test models::date::tests::test_year_month_from_str ... ok [INFO] [stdout] test models::date::tests::test_from_str_all_reasons_invalid ... ok [INFO] [stdout] test models::day::tests::equality ... ok [INFO] [stdout] test models::day::tests::inequality ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::to_date_end_of_period_september_second_half ... ok [INFO] [stdout] test models::date::tests::equality ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::year ... ok [INFO] [stdout] test models::day::tests::test_day_conversion ... ok [INFO] [stdout] test models::date::tests::test_date_from_str ... ok [INFO] [stdout] test models::day::tests::test_day_from_invalid_all_reasons ... ok [INFO] [stdout] test models::decimal::tests::test_decimal_from_f64_nan ... ok [INFO] [stdout] test models::deserialize_contents_of_ron::tests::deserialize_contents_of_ron_fail_file_not_found ... ok [INFO] [stdout] test models::decimal::tests::test_display ... ok [INFO] [stdout] test models::deserialize_contents_of_ron::tests::test_type_name ... ok [INFO] [stdout] test models::exchange_rates::tests::test_convert ... ok [INFO] [stdout] test models::exchange_rates::tests::test_hard_coded ... ok [INFO] [stdout] test models::decimal::tests::test_serde ... ok [INFO] [stdout] test models::font_identifier::tests::test_font_identifier ... ok [INFO] [stdout] test models::deserialize_contents_of_ron::tests::deserialize_contents_of_ron_fail ... ok [INFO] [stdout] test models::invoice_number::tests::equality ... ok [INFO] [stdout] test models::exchange_rates::tests::test_convert_not_found ... ok [INFO] [stdout] test models::invoice_number::tests::inequality ... ok [INFO] [stdout] test models::exchange_rates::tests::test_get_rate_not_found ... ok [INFO] [stdout] test models::invoice_number::tests::test_from_str_invalid ... ok [INFO] [stdout] test models::invoice_info_full::tests::equality ... ok [INFO] [stdout] test models::invoice_info_full::tests::inequality ... ok [INFO] [stdout] test models::invoice_info_full::tests::test_invoice_info_full_sample ... ok [INFO] [stdout] test models::invoice_number::tests::test_invoice_number_default_is_zero ... ok [INFO] [stdout] test models::invoice_number::tests::test_invoice_number_sample ... ok [INFO] [stdout] test models::invoice_number::tests::test_from_str_valid ... ok [INFO] [stdout] test models::item::tests::equality ... ok [INFO] [stdout] test models::invoiced_items::tests::inequality ... ok [INFO] [stdout] test models::item::tests::test_from_str ... ok [INFO] [stdout] test models::item::tests::inequality ... ok [INFO] [stdout] test models::deserialize_contents_of_ron::tests::deseralize_ron_success ... ok [INFO] [stdout] test models::item_converted_into_target_currency::tests::inequality ... ok [INFO] [stdout] test models::item_converted_into_target_currency::tests::equality ... ok [INFO] [stdout] test models::invoiced_items::tests::is_expenses ... ok [INFO] [stdout] test models::invoiced_items::tests::equality ... ok [INFO] [stdout] test models::item::tests::from_str_invalid ... ok [INFO] [stdout] test models::item_converted_into_target_currency::tests::item_converted_into_target_currency_sample ... ok [INFO] [stdout] test models::l18n::language::tests::test_language_display ... ok [INFO] [stdout] test models::layout::tests::all_layouts_define_render_function ... ok [INFO] [stdout] test models::l18n::language::tests::test_language_from_str ... ok [INFO] [stdout] test models::layout::tests::test_from_str ... ok [INFO] [stdout] test models::line_items::line_items_flat::tests::equality ... ok [INFO] [stdout] test models::line_items::line_items_flat::tests::inequality ... ok [INFO] [stdout] test models::l18n::localization::tests::test_l18n_english ... ok [INFO] [stdout] test models::l18n::localization::tests::test_l18n_swedish ... ok [INFO] [stdout] test models::layout::tests::test_required_fonts ... ok [INFO] [stdout] test models::layout::tests::test_no_layout_uses_italic_fonts ... ok [INFO] [stdout] test models::line_items::line_items_flat::tests::test_is_expenses ... ok [INFO] [stdout] test models::month::tests::test_month_deref ... ok [INFO] [stdout] test models::month::tests::test_month_debug ... ok [INFO] [stdout] test models::month::tests::test_month_display ... ok [INFO] [stdout] test models::pdf::tests::equality ... ok [INFO] [stdout] test models::named_pdf::tests::equality ... ok [INFO] [stdout] test models::named_pdf::tests::inequality ... ok [INFO] [stdout] test models::quantity::tests::inequality ... ok [INFO] [stdout] test models::quantity::tests::quantity_display ... ok [INFO] [stdout] test models::unit_price::tests::equality ... ok [INFO] [stdout] test models::quantity::tests::quantity_sample ... ok [INFO] [stdout] test models::pdf::tests::inequality ... ok [INFO] [stdout] test models::quantity::tests::equality ... ok [INFO] [stdout] test models::data::submodels::year_month_and_fortnight::tests::elapsed_periods_since_one_year_second_first_is_23 ... ok [INFO] [stdout] test models::valid_input::tests::valid_input_sample ... ok [INFO] [stdout] test models::unit_price::tests::unit_price_sample ... ok [INFO] [stdout] test models::unit_price::tests::unit_price_display ... ok [INFO] [stdout] test models::l18n::language::tests::test_language_debug ... ok [INFO] [stdout] test models::valid_input::tests::valid_input_sample_other ... ok [INFO] [stdout] test models::unit_price::tests::test_serde ... ok [INFO] [stdout] test models::year_and_month::tests::deconstruct ... ok [INFO] [stdout] test models::year_and_month::tests::equality ... ok [INFO] [stdout] test models::unit_price::tests::inequality ... ok [INFO] [stdout] test models::day::tests::test_day_from_str ... ok [INFO] [stdout] test models::year_and_month::tests::test_april ... ok [INFO] [stdout] test models::year_and_month::tests::test_december ... ok [INFO] [stdout] test models::year_and_month::tests::test_compare_year_and_month ... ok [INFO] [stdout] test models::year_and_month::tests::test_from_date ... ok [INFO] [stdout] test models::year_and_month::tests::test_august ... ok [INFO] [stdout] test models::year_and_month::tests::test_debug ... ok [INFO] [stdout] test models::year_and_month::tests::test_february ... ok [INFO] [stdout] test models::year_and_month::tests::test_from_str_valid ... ok [INFO] [stdout] test models::year_and_month::tests::test_from_str_invalid_format ... ok [INFO] [stdout] test models::year_and_month::tests::test_july ... ok [INFO] [stdout] test models::year_and_month::tests::test_may ... ok [INFO] [stdout] test models::year_and_month::tests::test_october ... ok [INFO] [stdout] test models::year_and_month::tests::test_june ... ok [INFO] [stdout] test models::year_and_month::tests::inequality ... ok [INFO] [stdout] test models::year_and_month::tests::test_march ... ok [INFO] [stdout] test models::year_and_month::tests::test_september ... ok [INFO] [stdout] test models::year_and_month::tests::test_january ... ok [INFO] [stdout] test models::year_and_month::tests::test_november ... ok [INFO] [stdout] test models::line_items::line_items_flat::tests::test_line_items_flat_conversion ... ok [INFO] [stdout] test models::line_items::line_items_without_cost::tests::equality ... ok [INFO] [stdout] test models::line_items::line_items_without_cost::tests::inequality ... ok [INFO] [stdout] test models::line_items::line_items_without_cost::tests::is_expenses ... ok [INFO] [stdout] test models::month::tests::test_from_str_invalid_all_reasons ... ok [INFO] [stdout] test models::month::tests::test_month_conversion ... ok [INFO] [stdout] test models::font_identifier::tests::test_bold_italic_panics - should panic ... ok [INFO] [stderr] Doc-tests klirr_core [INFO] [stdout] test models::font_identifier::tests::test_italic_panics - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 369 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 49 tests [INFO] [stdout] test src/logic/calendar_logic.rs - logic::calendar_logic::YearAndMonth::last_day_of_month (line 67) ... ok [INFO] [stdout] test src/logic/calendar_logic.rs - logic::calendar_logic::quantity_in_period (line 288) ... ok [INFO] [stdout] test src/logic/calendar_logic.rs - logic::calendar_logic::YearAndMonth::to_date_end_of_month (line 80) ... ok [INFO] [stdout] test src/logic/calendar_logic.rs - logic::calendar_logic::YearAndMonth::one_month_earlier (line 103) ... ok [INFO] [stdout] test src/logic/calendar_logic.rs - logic::calendar_logic::calculate_invoice_number (line 226) ... ok [INFO] [stdout] test src/models/data/submodels/net_days.rs - models::data::submodels::net_days::NetDays::from_str (line 33) ... ok [INFO] [stdout] test src/logic/encryption/aes_gcm_256.rs - logic::encryption::aes_gcm_256::AesGcm256::open (line 92) ... ok [INFO] [stdout] test src/models/data/data.rs - models::data::data::Data::to_partial (line 79) ... ok [INFO] [stdout] test src/models/data/submodels/proto_invoice_info.rs - models::data::submodels::proto_invoice_info::ProtoInvoiceInfo::validate (line 78) ... ok [INFO] [stdout] test src/logic/encryption/aes_gcm_256.rs - logic::encryption::aes_gcm_256::AesGcm256::seal (line 69) ... ok [INFO] [stdout] test src/models/data/submodels/proto_invoice_info.rs - models::data::submodels::proto_invoice_info::ProtoInvoiceInfo::insert_period_off (line 36) ... ok [INFO] [stdout] test src/models/date.rs - models::date::Date::from_str (line 42) ... ok [INFO] [stdout] test src/models/data/submodels/payment_terms.rs - models::data::submodels::payment_terms::PaymentTerms::from_str (line 19) ... ok [INFO] [stdout] test src/models/data/data_from_disk_with_items_of_kind.rs - models::data::data_from_disk_with_items_of_kind::DataFromDiskWithItemsOfKind::absolute_path_and_name (line 57) ... ok [INFO] [stdout] test src/models/data/submodels/hex_color.rs - models::data::submodels::hex_color::HexColor::from_str (line 51) ... ok [INFO] [stdout] test src/models/data/data_from_disk_with_items_of_kind.rs - models::data::data_from_disk_with_items_of_kind::DataWithItemsPricedInSourceCurrency::to_typst (line 138) ... ok [INFO] [stdout] test src/models/data/submodels/expensed_periods.rs - models::data::submodels::expensed_periods::ExpensedPeriods::contains (line 48) ... ok [INFO] [stdout] test src/models/data/data.rs - models::data::data::Data::validate (line 44) ... ok [INFO] [stdout] test src/models/data/submodels/expensed_periods.rs - models::data::submodels::expensed_periods::ExpensedPeriods::insert_expenses (line 92) ... ok [INFO] [stdout] test src/models/layout.rs - models::layout::Layout::all (line 56) ... ok [INFO] [stdout] test src/models/data/submodels/expensed_periods.rs - models::data::submodels::expensed_periods::ExpensedPeriods::get (line 68) ... ok [INFO] [stdout] test src/models/day.rs - models::day::Day::from_str (line 23) ... ok [INFO] [stdout] test src/models/item.rs - models::item::Item::total_cost_in_target_currency (line 105) ... ok [INFO] [stdout] test src/models/l18n/language.rs - models::l18n::language::Language::from_str (line 66) ... ok [INFO] [stdout] test src/models/invoice_number.rs - models::invoice_number::InvoiceNumber::from_str (line 20) ... ok [INFO] [stdout] test src/models/deserialize_contents_of_ron.rs - models::deserialize_contents_of_ron::type_name (line 7) ... ok [INFO] [stdout] test src/models/l18n/language.rs - models::l18n::language::Language::all (line 24) ... ok [INFO] [stdout] test src/models/exchange_rates.rs - models::exchange_rates::ExchangeRates::convert (line 35) ... ok [INFO] [stdout] test src/models/month.rs - models::month::Month::try_from (line 71) ... ok [INFO] [stdout] test src/models/month.rs - models::month::Month::from_str (line 107) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::july (line 141) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::january (line 69) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::from_str (line 243) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::december (line 201) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::february (line 81) ... ok [INFO] [stdout] test src/models/year.rs - models::year::Year::from_str (line 31) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::april (line 105) ... ok [INFO] [stdout] test src/models/month.rs - models::month::Month::month (line 33) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::from (line 50) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::august (line 153) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::june (line 129) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::march (line 93) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::september (line 165) ... ok [INFO] [stdout] test src/models/year.rs - models::year::Year::from (line 49) ... ok [INFO] [stdout] test src/models/item.rs - models::item::Item::with_total_cost (line 133) ... ok [INFO] [stdout] test src/logic/calendar_logic.rs - logic::calendar_logic::YearAndMonth::elapsed_months_since (line 138) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::may (line 117) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::november (line 189) ... ok [INFO] [stdout] test src/models/year_and_month.rs - models::year_and_month::YearAndMonth::october (line 177) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "af4f126350d3072ad0e42fb13ffadcf64402658bbebcd3af9c20977dca37e984", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "af4f126350d3072ad0e42fb13ffadcf64402658bbebcd3af9c20977dca37e984", kill_on_drop: false }` [INFO] [stdout] af4f126350d3072ad0e42fb13ffadcf64402658bbebcd3af9c20977dca37e984