[INFO] cloning repository https://github.com/Esgrove/cli-tools
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Esgrove/cli-tools" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEsgrove%2Fcli-tools", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEsgrove%2Fcli-tools'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5f69465a8b4630be6de9c26841d08f0da2404ab3
[INFO] testing Esgrove/cli-tools against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEsgrove%2Fcli-tools" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/Esgrove/cli-tools
[INFO] finished tweaking git repo https://github.com/Esgrove/cli-tools
[INFO] tweaked toml for git repo https://github.com/Esgrove/cli-tools written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Esgrove/cli-tools on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Esgrove/cli-tools 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" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3bbebd989b35cfa876301136f4d3cc5bac4a6c0ea0a924a248c72227a0b7a3d4
[INFO] running `Command { std: "docker" "start" "-a" "3bbebd989b35cfa876301136f4d3cc5bac4a6c0ea0a924a248c72227a0b7a3d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3bbebd989b35cfa876301136f4d3cc5bac4a6c0ea0a924a248c72227a0b7a3d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3bbebd989b35cfa876301136f4d3cc5bac4a6c0ea0a924a248c72227a0b7a3d4", kill_on_drop: false }`
[INFO] [stdout] 3bbebd989b35cfa876301136f4d3cc5bac4a6c0ea0a924a248c72227a0b7a3d4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dcec030bc4da35aaa0ce057691bc55210c72e4a2a8913f849c7048d4721b0997
[INFO] running `Command { std: "docker" "start" "-a" "dcec030bc4da35aaa0ce057691bc55210c72e4a2a8913f849c7048d4721b0997", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling aws-lc-rs v1.16.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling psl-types v2.0.11
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling typed-path v0.12.3
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling console v0.16.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling serde_bytes v0.11.19
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling aws-lc-sys v0.38.0
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libz-sys v1.1.24
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.36.0
[INFO] [stderr]    Compiling libgit2-sys v0.18.3+1.9.2
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling toml v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling zip v7.2.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rust_xlsxwriter_derive v0.2.0
[INFO] [stderr]    Compiling difference v2.0.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling titlecase v3.6.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling clap_complete v4.5.66
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_bencode v0.2.4
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling publicsuffix v2.3.0
[INFO] [stderr]    Compiling rust_xlsxwriter v0.94.0
[INFO] [stderr]    Compiling trash v5.2.5
[INFO] [stderr]    Compiling cookie_store v0.22.1
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling rusqlite v0.38.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling git2 v0.20.4
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling cli-tools v9.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.49s
[INFO] running `Command { std: "docker" "inspect" "dcec030bc4da35aaa0ce057691bc55210c72e4a2a8913f849c7048d4721b0997", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dcec030bc4da35aaa0ce057691bc55210c72e4a2a8913f849c7048d4721b0997", kill_on_drop: false }`
[INFO] [stdout] dcec030bc4da35aaa0ce057691bc55210c72e4a2a8913f849c7048d4721b0997
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb78633949c7b20f5b173f6623e39c666eb102cdd29d53f19875eab864ca2512
[INFO] running `Command { std: "docker" "start" "-a" "fb78633949c7b20f5b173f6623e39c666eb102cdd29d53f19875eab864ca2512", kill_on_drop: false }`
[INFO] [stderr]    Compiling cli-tools v9.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.38s
[INFO] running `Command { std: "docker" "inspect" "fb78633949c7b20f5b173f6623e39c666eb102cdd29d53f19875eab864ca2512", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb78633949c7b20f5b173f6623e39c666eb102cdd29d53f19875eab864ca2512", kill_on_drop: false }`
[INFO] [stdout] fb78633949c7b20f5b173f6623e39c666eb102cdd29d53f19875eab864ca2512
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 460574eeb594da9d1327bfe4828be854c0b8cae1e243e97c35e8df466bfd4836
[INFO] running `Command { std: "docker" "start" "-a" "460574eeb594da9d1327bfe4828be854c0b8cae1e243e97c35e8df466bfd4836", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cli_tools-7d66609b2d8a82f0)
[INFO] [stdout] 
[INFO] [stdout] running 465 tests
[INFO] [stdout] test additional_path_utility_tests::append_extension_preserves_directory ... ok
[INFO] [stdout] test additional_path_utility_tests::get_relative_path_or_filename_no_filename ... ok
[INFO] [stdout] test additional_path_utility_tests::get_relative_path_or_filename_outside_root ... ok
[INFO] [stdout] test additional_path_utility_tests::insert_suffix_preserves_directory ... ok
[INFO] [stdout] test assert_f64_eq_tests::equal_values ... ok
[INFO] [stdout] test assert_f64_eq_tests::very_close_values ... ok
[INFO] [stdout] test color_diff_tests::addition_only ... ok
[INFO] [stdout] test color_diff_tests::completely_different_strings ... ok
[INFO] [stdout] test color_diff_tests::empty_strings ... ok
[INFO] [stdout] test color_diff_tests::identical_strings ... ok
[INFO] [stdout] test color_diff_tests::removal_only ... ok
[INFO] [stdout] test color_diff_tests::partial_change ... ok
[INFO] [stdout] test color_diff_tests::stacked_mode ... ok
[INFO] [stdout] test colorize_bool_tests::colorize_false ... ok
[INFO] [stdout] test colorize_bool_tests::colorize_true ... ok
[INFO] [stdout] test date::date_struct_tests::boundary_month_12 ... ok
[INFO] [stdout] test date::date_struct_tests::boundary_day_31 ... ok
[INFO] [stdout] test date::date_struct_tests::boundary_year_1991 ... ok
[INFO] [stdout] test date::date_struct_tests::boundary_year_1990 ... ok
[INFO] [stdout] test additional_path_utility_tests::get_unique_path_handles_no_extension ... ok
[INFO] [stdout] test date::date_struct_tests::display_format ... ok
[INFO] [stdout] test date::date_struct_tests::dash_format_pads_single_digits ... ok
[INFO] [stdout] test additional_path_utility_tests::get_unique_path_increments_counter ... ok
[INFO] [stdout] test date::date_struct_tests::dash_format ... ok
[INFO] [stdout] test additional_path_utility_tests::get_unique_path_returns_original_when_no_conflict ... ok
[INFO] [stdout] test date::date_struct_tests::dot_format_pads_single_digits ... ok
[INFO] [stdout] test additional_path_utility_tests::get_unique_path_increments_multiple_times ... ok
[INFO] [stdout] test date::date_struct_tests::dot_format ... ok
[INFO] [stdout] test date::date_struct_tests::parse_from_short_invalid_year_length ... ok
[INFO] [stdout] test date::date_struct_tests::parse_from_short_valid ... ok
[INFO] [stdout] test date::date_struct_tests::swap_year_invalid_result ... ok
[INFO] [stdout] test date::date_struct_tests::parse_from_short_invalid_year_single_digit ... ok
[INFO] [stdout] test date::date_struct_tests::try_from_invalid_day_32 ... ok
[INFO] [stdout] test date::date_struct_tests::swap_year_valid ... ok
[INFO] [stdout] test date::date_struct_tests::try_from_invalid_month_thirteen ... ok
[INFO] [stdout] test date::date_struct_tests::try_from_invalid_day_zero ... ok
[INFO] [stdout] test date::date_struct_tests::try_from_invalid_year_future ... ok
[INFO] [stdout] test date::date_struct_tests::try_from_valid_date ... ok
[INFO] [stdout] test date::date_struct_tests::try_from_invalid_year_too_old ... ok
[INFO] [stdout] test date::date_struct_tests::try_from_invalid_month_zero ... ok
[INFO] [stdout] test date::directory_tests::replace_file_date_with_directory_date ... ok
[INFO] [stdout] test date::directory_tests::dd_mm_yyyy_format ... ok
[INFO] [stdout] test date::directory_tests::unrecognized_date_format ... ok
[INFO] [stdout] test date::directory_tests::correct_format_with_different_separators ... ok
[INFO] [stdout] test date::directory_tests::no_date ... ok
[INFO] [stdout] test date::directory_tests::single_digit_date ... ok
[INFO] [stdout] test date::directory_tests::yyyy_mm_dd_format ... ok
[INFO] [stdout] test date::mm_dd_yyyy_tests::date_format_mm_dd_yyyy_with_various_resolutions ... ok
[INFO] [stdout] test date::mm_dd_yyyy_tests::date_format_mm_dd_yyyy ... ok
[INFO] [stdout] test date::date_reorder_tests::single_digit_date_with_full_year ... ok
[INFO] [stdout] test date::date_reorder_tests::full_date ... ok
[INFO] [stdout] test date::date_reorder_tests::single_digit_date ... ok
[INFO] [stdout] test date::date_reorder_tests::normal_date ... ok
[INFO] [stdout] test date::date_reorder_tests::short_date ... ok
[INFO] [stdout] test date::regex_tests::correct_date_format ... ok
[INFO] [stdout] test date::regex_tests::full_date_invalid_dates ... ok
[INFO] [stdout] test date::regex_tests::full_date_valid_dates ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year ... ok
[INFO] [stdout] test date::ordinal_tests::ordinal_at_end_of_string_not_detected_as_date ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_boundary_values ... ok
[INFO] [stdout] test date::ordinal_tests::ordinal_higher_numbers_not_detected_as_date ... ok
[INFO] [stdout] test date::ordinal_tests::ordinal_with_varied_name_lengths_not_detected_as_date ... ok
[INFO] [stdout] test date::date_format_detection_tests::no_date ... ok
[INFO] [stdout] test date::date_format_detection_tests::correct_date_format ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_at_different_positions ... ok
[INFO] [stdout] test date::date_format_detection_tests::correct_date_format_year_first ... ok
[INFO] [stdout] test date::extra_numbers_tests::extra_numbers ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_with_various_extensions ... ok
[INFO] [stdout] test date::ordinal_tests::ordinal_at_different_positions_not_detected_as_date ... ok
[INFO] [stdout] test date::ordinal_tests::ordinal_numbers_not_detected_as_date ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_does_not_apply_to_non_correct_format ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_with_long_names ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_does_not_trigger_without_flag ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_invalid_future_year ... ok
[INFO] [stdout] test date::ordinal_tests::ordinal_with_nearby_real_date ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_with_year_first_flag ... ok
[INFO] [stdout] test date::swap_year_tests::swap_year_with_single_digit_result ... ok
[INFO] [stdout] test date::year_first_tests::year_first_changes_short_date_interpretation ... ok
[INFO] [stdout] test directory_utility_tests::is_directory_empty_with_subdir ... ok
[INFO] [stdout] test directory_utility_tests::is_directory_empty_true ... ok
[INFO] [stdout] test dot_rename::config::compile_regex_patterns_tests::handles_empty_input ... ok
[INFO] [stdout] test directory_utility_tests::is_directory_empty_with_file ... ok
[INFO] [stdout] test dot_rename::config::dot_rename_config_display_tests::display_formats_config ... ok
[INFO] [stdout] test dot_rename::config::dot_rename_config_display_tests::display_shows_include_exclude ... ok
[INFO] [stdout] test dot_rename::config::dot_rename_config_display_tests::display_shows_empty_lists ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_default_date_starts_with_year_is_true ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_can_override_date_starts_with_year ... ok
[INFO] [stdout] test date::year_first_tests::full_date_year_first ... ok
[INFO] [stdout] test date::year_first_tests::year_first_does_not_affect_full_year_dates ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_parses_empty_config ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_parses_dots_section ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_parses_move_lists ... ok
[INFO] [stdout] test date::year_first_tests::year_first_with_ambiguous_short_dates ... ok
[INFO] [stdout] test date::ordinal_tests::ordinal_with_different_boundaries_not_detected_as_date ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_parses_include_list ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_parses_prefix_dir_options ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_parses_regex_replace ... ok
[INFO] [stdout] test dot_rename::config::parse_removes_tests::parses_valid_removes ... ok
[INFO] [stdout] test date::year_first_tests::year_first_with_various_boundaries ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_parses_replace_pairs ... ok
[INFO] [stdout] test dot_rename::config::parse_removes_tests::trims_whitespace ... ok
[INFO] [stdout] test dot_rename::config::parse_substitutes_tests::handles_empty_input ... ok
[INFO] [stdout] test dot_rename::config::parse_regex_substitutes_tests::ignores_incomplete_pairs ... ok
[INFO] [stdout] test date::invalid_date_tests::not_a_valid_date ... ok
[INFO] [stdout] test dot_rename::config::parse_substitutes_tests::ignores_incomplete_pair ... ok
[INFO] [stdout] test dot_rename::config::parse_substitutes_tests::parses_valid_pairs ... ok
[INFO] [stdout] test dot_rename::config::parse_removes_tests::skips_empty_patterns ... ok
[INFO] [stdout] test dot_rename::config::parse_substitutes_tests::skips_empty_pattern ... ok
[INFO] [stdout] test dot_rename::config::parse_substitutes_tests::trims_whitespace ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::empty_string ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::no_dots ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::in_place_no_change_needed ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::double_dots_collapsed ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::filename_with_double_dots ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::many_consecutive_dots_collapsed ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::only_dots ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::multiple_groups_of_dots ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::in_place_mutates_string ... ok
[INFO] [stdout] test dot_rename::config::compile_regex_patterns_tests::compiles_valid_patterns ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::trim_no_change_needed ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::single_dots_unchanged ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::trim_only_dots_becomes_empty ... ok
[INFO] [stdout] test dot_rename::config::parse_regex_substitutes_tests::parses_valid_regex_pairs ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::triple_dots_collapsed ... ok
[INFO] [stdout] test dot_rename::format::collapse_consecutive_dots_tests::trim_removes_leading_and_trailing_dots ... ok
[INFO] [stdout] test assert_f64_eq_tests::close_values - should panic ... ok
[INFO] [stdout] test assert_f64_eq_tests::different_values - should panic ... ok
[INFO] [stdout] test dot_rename::config::compile_regex_patterns_tests::returns_error_for_invalid_pattern ... ok
[INFO] [stdout] test dot_rename::config::dots_config_tests::from_toml_str_invalid_toml_returns_error ... ok
[INFO] [stdout] test dot_rename::config::parse_regex_substitutes_tests::returns_error_for_invalid_regex ... ok
[INFO] [stdout] test dot_rename::format::test_deduplicate_patterns::test_no_duplicates ... ok
[INFO] [stdout] test dot_rename::format::move_date_tests::test_no_match_with_valid_date ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_convert_case ... ok
[INFO] [stdout] test dot_rename::format::test_deduplicate_patterns::test_substitute_creates_duplicate ... ok
[INFO] [stdout] test dot_rename::format::test_deduplicate_patterns::test_mixed_case_duplicates ... ok
[INFO] [stdout] test dot_rename::format::test_remove_from_start::test_partial_word_match ... ok
[INFO] [stdout] test dot_rename::format::test_remove_from_start::test_single_occurrence ... ok
[INFO] [stdout] test dot_rename::format::test_deduplicate_patterns::test_double_duplicate ... ok
[INFO] [stdout] test dot_rename::format::test_remove_from_start::test_consecutive_patterns ... ok
[INFO] [stdout] test dot_rename::format::test_remove_from_start::test_no_patterns ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_basic ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_empty_string ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_date ... ok
[INFO] [stdout] test dot_rename::format::test_deduplicate_patterns::test_triple_duplicate ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_no_changes ... ok
[INFO] [stdout] test dot_rename::format::test_remove_from_start::test_multiple_occurrences ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_parentheses ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_newlines ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_brackets ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_extra_dots ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_weird_characters ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_combined_cases ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_date_with_adjacent_resolution ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_dotcom ... ok
[INFO] [stdout] test dot_rename::format::move_date_tests::test_valid_date ... ok
[INFO] [stdout] test dot_rename::format::move_date_tests::test_short_date ... ok
[INFO] [stdout] test dot_rename::format::tests::test_move_to_end ... ok
[INFO] [stdout] test dot_rename::format::tests::test_prefix_already_present_in_filename ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_no_brackets ... ok
[INFO] [stdout] test dot_rename::format::tests::test_prefix_with_explicit_name ... ok
[INFO] [stdout] test dot_rename::format::tests::test_prefix_and_suffix_together ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_without_prefix_suffix ... ok
[INFO] [stdout] test dot_rename::format::tests::test_suffix_with_explicit_name ... ok
[INFO] [stdout] test dot_rename::format::written_date_tests::test_edge_case_single_digit_day ... ok
[INFO] [stdout] test dot_rename::format::tests::test_suffix_already_present_in_filename ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_with_exclamations ... ok
[INFO] [stdout] test dot_rename::format::written_date_tests::test_mixed_text ... ok
[INFO] [stdout] test dot_rename::format::tests::test_prefix_dir_start_option ... ok
[INFO] [stdout] test dot_rename::format::tests::test_prefix_dir ... ok
[INFO] [stdout] test dot_rename::format::written_date_tests::test_no_date_in_text ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_and_suffix_cannot_both_be_set ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_date_year_first ... ok
[INFO] [stdout] test dot_rename::format::written_date_tests::test_multiple_dates ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_already_present_in_filename ... ok
[INFO] [stdout] test dot_rename::format::written_date_tests::test_leading_and_trailing_spaces ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_recursive_uses_parent_directory_names ... ok
[INFO] [stdout] test dot_rename::format::tests::test_starts_with_five_or_more_digits ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_with_deeply_nested_directories ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_date_mm_dd_yyyy ... ok
[INFO] [stdout] test dot_rename::format::tests::test_move_to_start ... ok
[INFO] [stdout] test dot_rename::format::written_date_tests::test_single_date ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_recursive_with_exclude_filter ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_recursive_different_subdirs_get_different_prefixes ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_recursive_with_include_filter ... ok
[INFO] [stdout] test dot_rename::format::tests::test_format_name_full_resolution ... ok
[INFO] [stdout] test dot_rename::format::tests::test_remove_identifier ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_recursive_empty_subdirectories ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_suffix_already_present_in_filename ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_with_explicit_name ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_recursive_mode_includes_root_and_subdir_files ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_suffix_with_explicit_name ... ok
[INFO] [stdout] test format_duration_tests::format_duration_seconds_basic ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_suffix_recursive_different_subdirs ... ok
[INFO] [stdout] test format_duration_tests::format_duration_seconds_minutes ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_suffix_dir_recursive_uses_parent_directory_names ... ok
[INFO] [stdout] test format_duration_tests::format_duration_seconds_hours ... ok
[INFO] [stdout] test format_duration_tests::format_duration_seconds_negative ... ok
[INFO] [stdout] test format_duration_tests::hours_minutes_seconds ... ok
[INFO] [stdout] test format_size_tests::bytes_only ... ok
[INFO] [stdout] test format_duration_tests::minutes_and_seconds ... ok
[INFO] [stdout] test format_duration_tests::seconds_only ... ok
[INFO] [stdout] test format_size_tests::kilobytes ... ok
[INFO] [stdout] test format_size_tests::gigabytes ... ok
[INFO] [stdout] test format_size_tests::megabytes ... ok
[INFO] [stdout] test format_size_tests::terabytes ... ok
[INFO] [stdout] test dot_rename::format::tests::test_prefix_dir_with_leading_digits ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_start_prevents_date_reordering ... ok
[INFO] [stdout] test hidden_file_tests::is_hidden_directory ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_empty_directory ... ok
[INFO] [stdout] test hidden_file_tests::is_hidden_file ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_suffix_with_special_characters_in_directory_name ... ok
[INFO] [stdout] test hidden_file_tests::is_not_hidden_file ... ok
[INFO] [stdout] test network_path_tests::non_windows_always_false ... ok
[INFO] [stdout] test path_utility_tests::append_extension_to_path_basic ... ok
[INFO] [stdout] test path_utility_tests::append_extension_to_path_no_extension ... ok
[INFO] [stdout] test path_utility_tests::get_normalized_dir_name_basic ... ok
[INFO] [stdout] test path_utility_tests::append_extension_to_path_with_directory ... ok
[INFO] [stdout] test path_utility_tests::get_normalized_file_name_and_extension_basic ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_suffix_dir_uses_root_directory_name ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_start_with_5_digit_filename ... ok
[INFO] [stdout] test path_utility_tests::get_normalized_file_name_and_extension_no_extension ... ok
[INFO] [stdout] test path_utility_tests::get_relative_path_or_filename_within_root ... ok
[INFO] [stdout] test path_utility_tests::get_unique_path_no_conflict ... ok
[INFO] [stdout] test path_utility_tests::get_unique_path_multiple_conflicts ... ok
[INFO] [stdout] test path_utility_tests::get_unique_path_no_extension ... ok
[INFO] [stdout] test path_utility_tests::insert_suffix_before_extension_basic ... ok
[INFO] [stdout] test path_utility_tests::get_unique_path_with_conflict ... ok
[INFO] [stdout] test path_utility_tests::insert_suffix_before_extension_no_extension ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_preserves_file_extension ... ok
[INFO] [stdout] test path_utility_tests::insert_suffix_before_extension_multiple_dots ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_with_numeric_directory_name ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_uses_root_directory_name ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_multiple_files_same_directory_get_same_prefix ... ok
[INFO] [stdout] test path_utility_tests::insert_suffix_before_extension_with_directory ... ok
[INFO] [stdout] test path_utility_tests::os_str_to_string_basic ... ok
[INFO] [stdout] test path_utility_tests::path_to_file_extension_string_basic ... ok
[INFO] [stdout] test path_utility_tests::path_to_filename_string_basic ... ok
[INFO] [stdout] test path_utility_tests::get_relative_path_or_filename_same_as_root ... ok
[INFO] [stdout] test path_utility_tests::path_to_string_basic ... ok
[INFO] [stdout] test path_utility_tests::path_to_file_extension_string_no_extension ... ok
[INFO] [stdout] test print_function_tests::print_bold_does_not_panic ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_dir_non_recursive_uses_root_for_all ... ok
[INFO] [stdout] test path_utility_tests::path_to_file_stem_string_basic ... ok
[INFO] [stdout] test print_function_tests::print_error_does_not_panic ... ok
[INFO] [stdout] test print_function_tests::print_cyan_does_not_panic ... ok
[INFO] [stdout] test print_function_tests::print_magenta_bold_does_not_panic ... ok
[INFO] [stdout] test print_function_tests::print_dimmed_does_not_panic ... ok
[INFO] [stdout] test print_function_tests::print_yellow_does_not_panic ... ok
[INFO] [stdout] test print_function_tests::print_magenta_does_not_panic ... ok
[INFO] [stdout] test relative_path_tests::path_to_string_relative_converts ... ok
[INFO] [stdout] test resolution::test_compute_bounds::bounds_4k_height ... ok
[INFO] [stdout] test resolution::test_compute_bounds::bounds_4k_width ... ok
[INFO] [stdout] test resolution::test_compute_bounds::bounds_720p ... ok
[INFO] [stdout] test relative_path_tests::get_relative_path_from_cwd_returns_path ... ok
[INFO] [stdout] test print_function_tests::print_green_does_not_panic ... ok
[INFO] [stdout] test resolution::test_compute_bounds::bounds_large_value ... ok
[INFO] [stdout] test resolution::test_compute_bounds::bounds_one ... ok
[INFO] [stdout] test resolution::test_compute_bounds::small_value ... ok
[INFO] [stdout] test resolution::test_compute_bounds::standard_resolution ... ok
[INFO] [stdout] test resolution::test_compute_bounds::bounds_very_small_value ... ok
[INFO] [stdout] test resolution::test_compute_bounds::zero ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_with_special_characters_in_directory_name ... ok
[INFO] [stdout] test dot_rename::rename::test_prefix_suffix_options::test_prefix_with_date_reordering_full_date ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::does_not_match_p_labels ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::does_not_match_wrong_separator ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::does_not_match_too_few_digits ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::does_not_match_too_many_digits ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::matches_3_digit_dimensions ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::matches_4_digit_dimensions ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::extracts_correct_match ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::all_known_resolutions_have_fuzzy_match ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::count_matches_known ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::fuzzy_resolution_1080p_bounds ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::matches_mixed_digit_counts ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::matches_at_word_boundaries ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::fuzzy_resolution_2160p_bounds ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::fuzzy_resolution_480p_bounds ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::fuzzy_resolution_720p_bounds ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::no_overlapping_height_ranges ... ok
[INFO] [stdout] test resolution::test_fuzzy_resolutions::resolution_match_display ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_480p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_540p ... ok
[INFO] [stdout] test resolution::test_full_resolution_regex::matches_vertical_prefix ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_600p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_576p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_960x540 ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_544p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_horizontal ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_vertical ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_vertical_480p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_vertical_540x960 ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_vertical_540p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_vertical_544p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_vertical_576p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::exact_matches_vertical_600p ... ok
[INFO] [stdout] test resolution::test_label_exact_matches::sd_resolutions ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::approximate_matches ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::fuzzy_matches_4k_variations ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::horizontal_near_boundaries ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::just_outside_tolerance_1080p ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::just_inside_tolerance_1080p ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::near_720p_within_tolerance ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::slightly_cropped_1080p ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::lower_bound_tolerance ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::upper_bound_tolerance ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::vertical_1080p_slightly_off ... ok
[INFO] [stdout] test resolution::test_label_fuzzy_matches::vertical_near_boundaries ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::beyond_tolerance ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::between_known_resolutions ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::dci_4k ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::exact_1440p ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::near_720p_outside_tolerance ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::exact_vertical_1440p ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::resolution_8k_horizontal ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::small_resolutions ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::square_treated_as_horizontal ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::single_pixel ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::resolution_8k_vertical ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::ultrawide_1440p ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::unknown_horizontal ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::unknown_resolutions ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::unknown_vertical ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::unusual_aspect_ratios ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::very_small_resolution ... ok
[INFO] [stdout] test resolution::test_label_out_of_range::zero_dimensions ... ok
[INFO] [stdout] test resolution::test_p_label_regex::does_not_match_unknown_labels ... ok
[INFO] [stdout] test resolution::test_dimension_regex::all_known_resolutions_are_cached ... ok
[INFO] [stdout] test resolution::test_p_label_regex::does_not_match_without_p_suffix ... ok
[INFO] [stdout] test resolution::test_dimension_regex::known_resolution_does_not_match_other_resolutions ... ok
[INFO] [stdout] test resolution::test_p_label_regex::does_not_match_full_dimensions ... ok
[INFO] [stdout] test resolution::test_p_label_regex::extracts_correct_match ... ok
[INFO] [stdout] test resolution::test_dimension_regex::respects_word_boundaries ... ok
[INFO] [stdout] test resolution::test_dimension_regex::matches_case_insensitive_vertical ... ok
[INFO] [stdout] test resolution::test_dimension_regex::does_not_match_partial_numbers ... ok
[INFO] [stdout] test resolution::test_p_label_regex::matches_all_standard_labels ... ok
[INFO] [stdout] test resolution::test_dimension_regex::vertical_prefix_without_dot_is_matched ... ok
[INFO] [stdout] test resolution::test_resolution_aspect_ratio::standard_16_9 ... ok
[INFO] [stdout] test resolution::test_resolution_aspect_ratio::square ... ok
[INFO] [stdout] test resolution::test_p_label_regex::matches_at_word_boundaries ... ok
[INFO] [stdout] test resolution::test_p_label_regex::matches_case_insensitive ... ok
[INFO] [stdout] test resolution::test_resolution_aspect_ratio::zero_height ... ok
[INFO] [stdout] test resolution::test_p_label_regex::matches_multiple_finds_first ... ok
[INFO] [stdout] test resolution::test_dimension_regex::extracts_correct_match_from_filename ... ok
[INFO] [stdout] test resolution::test_dimension_regex::known_resolution_returns_cached_regex ... ok
[INFO] [stdout] test resolution::test_resolution_display::debug_format ... ok
[INFO] [stdout] test resolution::test_resolution_display::horizontal_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_display::resolution_4k ... ok
[INFO] [stdout] test resolution::test_resolution_display::resolution_8k ... ok
[INFO] [stdout] test resolution::test_dimension_regex::square_resolution_matches_only_one_pattern ... ok
[INFO] [stdout] test resolution::test_p_label_regex::matches_vertical_prefix ... ok
[INFO] [stdout] test resolution::test_resolution_display::small_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_display::vertical_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_display::square_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_display::vertical_4k ... ok
[INFO] [stdout] test resolution::test_resolution_from_options::both_present ... ok
[INFO] [stdout] test resolution::test_resolution_display::ultrawide_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_from_options::height_missing ... ok
[INFO] [stdout] test resolution::test_resolution_from_options::both_missing ... ok
[INFO] [stdout] test resolution::test_resolution_hash::same_resolutions_hash_equal ... ok
[INFO] [stdout] test resolution::test_resolution_from_options::width_missing ... ok
[INFO] [stdout] test resolution::test_resolution_is_landscape::landscape ... ok
[INFO] [stdout] test resolution::test_dimension_regex::unknown_resolution_does_not_match_others ... ok
[INFO] [stdout] test resolution::test_resolution_is_landscape::portrait ... ok
[INFO] [stdout] test resolution::test_resolution_is_landscape::square ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::height_below_limit ... ok
[INFO] [stdout] test resolution::test_resolution_hash::different_resolutions_hash_different ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::both_above_limit ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::at_exact_limit ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::one_at_limit_one_below ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::one_dimension_at_limit ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::large_limit ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::vertical_video_both_above ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::both_below_limit ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::vertical_video_width_below ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::width_below_limit ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::zero_limit ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::zero_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_is_smaller_than::max_u32_limit ... ok
[INFO] [stdout] test resolution::test_resolution_new::creates_resolution_with_correct_dimensions ... ok
[INFO] [stdout] test resolution::test_resolution_new::creates_with_max_u32 ... ok
[INFO] [stdout] test resolution::test_resolution_ordering::inequality ... ok
[INFO] [stdout] test resolution::test_resolution_new::creates_with_zero_dimensions ... ok
[INFO] [stdout] test resolution::test_resolution_new::creates_with_asymmetric_dimensions ... ok
[INFO] [stdout] test resolution::test_resolution_ordering::ordering_by_width_first ... ok
[INFO] [stdout] test resolution::test_resolution_ordering::equal_resolutions ... ok
[INFO] [stdout] test resolution::test_resolution_ordering::lower_width_is_less ... ok
[INFO] [stdout] test resolution::test_resolution_ordering::ordering_same_width_different_height ... ok
[INFO] [stdout] test resolution::test_resolution_pixel_count::single_pixel ... ok
[INFO] [stdout] test resolution::test_resolution_ordering::same_width_lower_height_is_less ... ok
[INFO] [stdout] test resolution::test_dimension_regex::unknown_resolution_creates_new_regex ... ok
[INFO] [stdout] test resolution::test_resolution_ordering::ordering_vertical_vs_horizontal ... ok
[INFO] [stdout] test resolution::test_resolution_pixel_count::large_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_pixel_count::standard_1080p ... ok
[INFO] [stdout] test resolution::test_resolution_to_labeled_string::horizontal_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_to_labeled_string::small_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_to_labeled_string::vertical_4k ... ok
[INFO] [stdout] test resolution::test_resolution_to_labeled_string::square_resolution ... ok
[INFO] [stdout] test resolution::test_resolution_to_labeled_string::vertical_resolution ... ok
[INFO] [stdout] test resolve_path_tests::resolve_input_path_default ... ok
[INFO] [stdout] test resolution::test_resolution_pixel_count::zero_dimensions ... ok
[INFO] [stdout] test resolve_path_tests::resolve_input_path_nonexistent ... ok
[INFO] [stdout] test resolve_path_tests::resolve_required_input_path_empty ... ok
[INFO] [stdout] test resolve_path_tests::resolve_required_input_path_nonexistent ... ok
[INFO] [stdout] test resolve_path_tests::resolve_output_path_default ... ok
[INFO] [stdout] test resolve_path_tests::resolve_input_path_empty ... ok
[INFO] [stdout] test resolve_path_tests::resolve_required_input_path_whitespace ... ok
[INFO] [stdout] test show_diff_tests::show_diff_does_not_panic_on_different ... ok
[INFO] [stdout] test show_diff_tests::show_diff_does_not_panic_on_empty ... ok
[INFO] [stdout] test resolve_path_tests::resolve_required_input_path_valid ... ok
[INFO] [stdout] test show_diff_tests::show_diff_does_not_panic_on_identical ... ok
[INFO] [stdout] test resolve_path_tests::resolve_output_path_with_file ... ok
[INFO] [stdout] test resolve_path_tests::resolve_input_path_valid ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_path_normal_directory_unix ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_path_recycle_bin_case_insensitive_unix ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_path_recycle_bin_unix ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_macos_trashes ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_path_similar_name_unix ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_linux_lost_found ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_path_system_volume_information_unix ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_macos_spotlight ... ok
[INFO] [stdout] test video_info::test_compute_median_f64::empty_returns_zero ... ok
[INFO] [stdout] test video_info::test_compute_median_f64::even_count ... ok
[INFO] [stdout] test system_directory_tests::is_system_directory_walkdir ... ok
[INFO] [stdout] test system_directory_tests::should_skip_entry_hidden_file ... ok
[INFO] [stdout] test video_info::test_compute_median_f64::odd_count ... ok
[INFO] [stdout] test system_directory_tests::should_skip_entry_system_dir ... ok
[INFO] [stdout] test system_directory_tests::should_skip_entry_normal_file ... ok
[INFO] [stdout] test video_info::test_compute_median_f64::single_value ... ok
[INFO] [stdout] test video_info::test_compute_median_u64::empty_returns_zero ... ok
[INFO] [stdout] test video_info::test_compute_median_u64::odd_count ... ok
[INFO] [stdout] test video_info::test_compute_median_u64::even_count ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::empty_output ... ok
[INFO] [stdout] test video_info::test_compute_median_u64::single_value ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::first_bitrate_source_wins ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::handles_large_resolution ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::handles_malformed_height ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::handles_malformed_width ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::handles_na_bitrate_value ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::missing_bitrate ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::ignores_zero_bitrate ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::missing_height ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::missing_duration ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::parses_all_fields ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::missing_resolution ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::parses_bitrate_from_bps_eng_tag ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::missing_codec ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::parses_bitrate_from_bps_tag ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::skips_empty_lines ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::skips_unknown_keys ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::missing_width ... ok
[INFO] [stdout] test video_info::test_video_info::resolution_returns_none_when_missing ... ok
[INFO] [stdout] test video_info::test_video_info::resolution_returns_some_when_present ... ok
[INFO] [stdout] test video_info::test_parse_ffprobe_output::parses_codec_as_lowercase ... ok
[INFO] [stdout] test video_info::test_video_info::resolution_string_formats_correctly ... ok
[INFO] [stdout] test video_info::test_video_info::resolution_string_formats_portrait ... ok
[INFO] [stdout] test video_info::test_video_info::resolution_string_returns_none_when_resolution_missing ... ok
[INFO] [stdout] test video_info::test_video_info::default_has_all_none ... ok
[INFO] [stdout] test video_info::test_video_stats::add_counts_duplicate_codecs ... ok
[INFO] [stdout] test video_info::test_video_stats::add_collects_all_fields ... ok
[INFO] [stdout] test video_info::test_video_stats::add_counts_duplicate_resolutions ... ok
[INFO] [stdout] test video_info::test_video_stats::new_creates_empty_stats ... ok
[INFO] [stdout] test video_info::test_video_stats::add_skips_none_fields ... ok
[INFO] [stdout] test trash_or_delete_tests::deletes_local_file ... ok
[INFO] [stdout] test trash_or_delete_tests::returns_error_for_nonexistent_file ... ok
[INFO] [stdout] test resolution::test_dimension_regex::all_cached_resolutions_match_both_orientations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 465 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/dir_move/main.rs (/opt/rustwide/target/debug/deps/dirmove-dad73996a37d9504)
[INFO] [stdout] 
[INFO] [stdout] running 489 tests
[INFO] [stdout] test config::cli_args_tests::config_from_args_normalizes_custom_mapping_pattern ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_parses_custom_mappings ... ok
[INFO] [stdout] test config::cli_args_tests::default_group_size_is_none ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_warns_on_invalid_mapping_format ... ok
[INFO] [stdout] test config::cli_args_tests::default_min_prefix_chars_is_none ... ok
[INFO] [stdout] test config::cli_args_tests::empty_arrays_by_default ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_ignored_group_names_lowercase ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_cli_flags_enable_options ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_force_enables_overwrite ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_default_min_prefix_chars_is_five ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_includes_unpack_dirs_lowercase ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_includes_cli_patterns ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_ignored_group_parts_lowercase ... ok
[INFO] [stdout] test config::cli_args_tests::parses_custom_mapping_cli_arg ... ok
[INFO] [stdout] test config::cli_args_tests::parses_combined_short_flags ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_uses_cli_min_prefix_chars ... ok
[INFO] [stdout] test config::cli_args_tests::parses_group_size ... ok
[INFO] [stdout] test config::cli_args_tests::parses_ignored_group_parts_long_form ... ok
[INFO] [stdout] test config::cli_args_tests::config_from_args_print_enables_dryrun ... ok
[INFO] [stdout] test config::cli_args_tests::parses_custom_mapping_long_form ... ok
[INFO] [stdout] test config::cli_args_tests::parses_ignored_group_names_long_form ... ok
[INFO] [stdout] test config::cli_args_tests::parses_min_prefix_chars ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_exclude_patterns ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_ignored_group_names ... ok
[INFO] [stdout] test config::cli_args_tests::parses_long_flags ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_default_min_prefix_chars_is_none ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_default_custom_mappings_is_empty ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_custom_mappings ... ok
[INFO] [stdout] test config::cli_args_tests::parses_path_argument ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_ignored_group_parts ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_unpack_directories ... ok
[INFO] [stdout] test config::cli_args_tests::parses_min_prefix_chars_long_form ... ok
[INFO] [stdout] test config::cli_args_tests::rejects_invalid_min_prefix_chars ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_prefix_ignores ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_include_patterns ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_invalid_toml_returns_error ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_empty_config ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_dirmove_section ... ok
[INFO] [stdout] test config::cli_args_tests::parses_multiple_prefix_overrides ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_ignored_group_names ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_ignored_group_parts ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_ignores_other_sections ... ok
[INFO] [stdout] test config::cli_args_tests::rejects_invalid_group_size ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_custom_mappings ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_min_group_size ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_include_exclude ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_min_prefix_chars ... ok
[INFO] [stdout] test config::custom_mapping_tests::new_handles_mixed_separators ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_prefix_options ... ok
[INFO] [stdout] test config::custom_mapping_tests::new_normalizes_pattern_to_lowercase ... ok
[INFO] [stdout] test config::config_tests::from_toml_str_parses_unpack_directories ... ok
[INFO] [stdout] test config::custom_mapping_tests::new_preserves_directory_name_case ... ok
[INFO] [stdout] test database::tests::display_entry ... ok
[INFO] [stdout] test config::custom_mapping_tests::new_removes_dots_from_pattern ... ok
[INFO] [stdout] test config::custom_mapping_tests::new_removes_spaces_from_pattern ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::find_directory_matches_dotted_name ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::find_directory_matches_normalized_name ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::find_directory_selects_correct_index ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::find_directory_no_match ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::find_directory_matches_exact_name ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::process_custom_mappings_ignores_dots_in_pattern ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::process_custom_mappings_empty_when_no_mappings ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::multiple_mappings_first_match_wins ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::process_custom_mappings_returns_unmatched_files ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::process_custom_mappings_case_insensitive_pattern ... ok
[INFO] [stdout] test dir_move::test_custom_mappings::process_custom_mappings_no_match_without_directory ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::no_database_returns_none ... ok
[INFO] [stdout] test database::tests::get_all_entries_sorted ... ok
[INFO] [stdout] test database::tests::different_spacing_same_entry ... ok
[INFO] [stdout] test database::tests::insert_if_new_preserves_original ... ok
[INFO] [stdout] test database::tests::dotted_and_spaced_same_entry ... ok
[INFO] [stdout] test database::tests::upsert_updates_display_name ... ok
[INFO] [stdout] test dir_move::test_directory_matching::basic_match ... ok
[INFO] [stdout] test dir_move::test_directory_matching::case_insensitive ... ok
[INFO] [stdout] test dir_move::test_directory_matching::concatenated_directory_matches_dotted_files ... ok
[INFO] [stdout] test database::tests::normalized_name_removes_spaces ... ok
[INFO] [stdout] test dir_move::test_directory_matching::concatenated_directory_matches_dotted_files_without_prefix ... ok
[INFO] [stdout] test dir_move::test_directory_matching::concatenated_directory_with_dotted_files_and_prefix ... ok
[INFO] [stdout] test dir_move::test_directory_matching::concatenated_filename_matches_spaced_directory ... ok
[INFO] [stdout] test dir_move::test_directory_matching::dir_has_prefix_file_does_not ... ok
[INFO] [stdout] test database::tests::upsert_new_entry ... ok
[INFO] [stdout] test dir_move::test_directory_matching::empty_dirs ... ok
[INFO] [stdout] test dir_move::test_directory_matching::empty_files ... ok
[INFO] [stdout] test dir_move::test_directory_matching::dots_replaced_with_spaces ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::exact_match_different_case ... ok
[INFO] [stdout] test dir_move::test_directory_matching::file_has_prefix_dir_does_not ... ok
[INFO] [stdout] test dir_move::test_directory_matching::longer_match_wins ... ok
[INFO] [stdout] test dir_move::test_directory_matching::no_matches ... ok
[INFO] [stdout] test dir_move::test_directory_matching::multiple_dirs ... ok
[INFO] [stdout] test dir_move::test_directory_matching::mixed_separators ... ok
[INFO] [stdout] test dir_move::test_directory_matching::mixed_concatenated_and_dotted_filenames ... ok
[INFO] [stdout] test dir_move::test_directory_matching::numbers_in_directory_name ... ok
[INFO] [stdout] test database::tests::open_in_memory ... ok
[INFO] [stdout] test dir_move::test_directory_matching::partial_match ... ok
[INFO] [stdout] test dir_move::test_directory_matching::special_characters_in_names ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::empty_database_returns_none ... ok
[INFO] [stdout] test dir_move::test_directory_matching::prefix_ignore_applied_to_both ... ok
[INFO] [stdout] test dir_move::test_directory_matching::with_repeated_prefix_ignore ... ok
[INFO] [stdout] test dir_move::test_directory_matching::with_multiple_prefix_ignores ... ok
[INFO] [stdout] test dir_move::test_directory_matching::with_prefix_ignore ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::exact_match_dots_and_different_case ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::exact_match_same_case ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::no_match_for_completely_different ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::exact_match_with_dots ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::exact_match_no_spaces ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::no_match_for_prefix_only ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::no_match_for_longer_name ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::multiple_entries_exact_match ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::preserves_database_formatting ... ok
[INFO] [stdout] test dir_move::test_database_suggestion::no_match_for_partial_overlap ... ok
[INFO] [stdout] test dir_move::test_full_flow::with_resolution_numbers ... ok
[INFO] [stdout] test dir_move::test_full_flow::short_prefix_with_shared_parts ... ok
[INFO] [stdout] test dir_move::test_full_flow::simulation_with_filtering ... ok
[INFO] [stdout] test dir_move::test_full_flow::with_glue_words ... ok
[INFO] [stdout] test dir_move::test_full_flow::files_with_2160p_resolution ... ok
[INFO] [stdout] test dir_move::test_full_flow::files_with_resolution_grouped_correctly ... ok
[INFO] [stdout] test dir_move::test_full_flow::with_resolution_pattern ... ok
[INFO] [stdout] test dir_move::test_full_flow::files_with_dimension_resolution ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::dryrun_does_not_modify_files ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::chained_prefix_stripping ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::case_insensitive_prefix_matching ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::empty_prefix_ignores_does_nothing ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::no_merge_without_matching_target ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::merges_only_when_sibling_exists ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::merges_prefixed_directory_into_non_prefixed ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::merges_subdirectories ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::multiple_prefix_ignores ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::non_recursive_ignores_subdirectories ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::overwrites_existing_files_with_force_flag ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::only_merges_siblings_not_across_levels ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::recursive_deeply_nested ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::recursive_merges_in_subdirectories ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::skips_existing_files_without_overwrite ... ok
[INFO] [stdout] test dir_move::test_merge_prefixed_directories::recursive_merges_at_multiple_levels ... ok
[INFO] [stdout] test dir_move::test_ignored_group_names::ignored_group_name_not_offered ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::prefix_ignore_not_in_create_mode_dir_name ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::prefix_ignore_not_offered_as_dir_name ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::different_name_still_offered ... ok
[INFO] [stdout] test dir_move::test_ignored_group_names::ignored_group_name_with_common_words ... ok
[INFO] [stdout] test dir_move::test_ignored_group_names::ignored_group_names_case_insensitive ... ok
[INFO] [stdout] test dir_move::test_ignored_group_names::multiple_ignored_group_names ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::prefix_ignore_only_prefix_results_in_empty ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::prefix_ignore_multiple_prefixes_stripped ... ok
[INFO] [stdout] test dir_move::test_ignored_group_names::empty_ignored_list_allows_all ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::ignored_group_name_checked_after_prefix_strip ... ok
[INFO] [stdout] test dir_move::test_ignored_group_parts::does_not_filter_substring_matches ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::parent_dir_name_not_offered_as_new_dir ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::parent_dir_name_case_insensitive ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::prefix_ignore_stripped_from_dir_name ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::no_files_no_groups ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::case_variations_grouped_together ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::dot_separated_and_concatenated_grouped_together ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::files_with_completely_different_prefixes ... ok
[INFO] [stdout] test dir_move::test_parent_directory_skipped::prefix_ignore_with_mixed_dotted_and_concatenated_names ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::files_appear_in_multiple_groups ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::prefers_concatenated_prefix_for_directory_name ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::min_group_size_affects_grouping ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::all_parts_are_ignored ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::case_insensitive_ignore ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::order_by_prefix_length ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::prefix_ignores_strips_prefix_from_grouping ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::dot_prefix_single_ignore ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::dot_prefix_multiple_ignores ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::ignore_in_middle_not_stripped ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::is_ignored_prefix_exact_match ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::multiple_ignores ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::prefix_overrides_merge_groups ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::prefix_overrides_no_match_keeps_original ... ok
[INFO] [stdout] test dir_move::test_ignored_group_parts::multiple_ignored_parts ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::no_ignores ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::no_match ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::single_ignore ... ok
[INFO] [stdout] test dir_move::test_prefix_ignores::repeated_prefix_in_name ... ok
[INFO] [stdout] test dir_move::test_ignored_group_parts::filters_groups_containing_ignored_part ... ok
[INFO] [stdout] test dir_move::test_ignored_group_parts::empty_ignored_parts_allows_all ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::empty_groups ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::matching_override ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::multiple_overrides ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::merges_groups ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::no_overrides ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::non_matching ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::override_with_case_sensitivity ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::override_more_specific_than_prefix ... ok
[INFO] [stdout] test dir_move::test_prefix_overrides::partial_match_only ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::prefix_ignores_and_overrides_combined ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::single_file_no_group ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::prefix_overrides_multiple_overrides ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::min_group_size_respected_in_groups ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::alphanumeric_prefix_not_filtered ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_glue_words_break_adjacency ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_resolution_in_middle_does_not_break ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_prefix_appears_multiple_times ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::concatenated_vs_dotted_same_name_grouped_with_concat_preferred ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_long_date_sequences ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_extended_prefix_groups ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::empty_filename_parts_handled ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::all_prefix_lengths_offered_complete_hierarchy ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_numbers_break_adjacency ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::files_with_only_extension_no_prefix ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_mixed_separators_large_dataset ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_three_part_prefix_various_forms ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::contiguity_dotted_vs_concatenated_large_group ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::four_part_prefix_uses_three_part_max ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::min_group_size_one_creates_single_file_groups ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::files_with_numeric_and_resolution_parts_filtered_for_grouping ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::hyphenated_names_treated_as_single_part ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::mixed_extensions_same_prefix_grouped ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::large_file_set_multiple_series ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::mixed_case_and_format_all_normalized_correctly ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::long_single_word_prefix_forms_valid_group ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::groups_sorted_by_specificity_longest_prefix_first ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::single_character_prefix_forms_group ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::non_contiguous_parts_do_not_form_group ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::multiple_valid_groupings_all_offered ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::case_insensitive_ignored_group_name_after_stripping ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::underscore_names_not_split ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::very_long_filename_prefix_extraction ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::case_insensitive_prefix_ignore_result ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::rejected_group_files_remain_available_for_next_group ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::multi_word_ignored_group_name_after_stripping ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::empty_after_full_strip_is_skipped ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::multiple_prefix_ignores_chain_to_ignored_group_name ... ok
[INFO] [stdout] test dir_move::test_ignored_group_names::ignored_multi_part_group_name ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::prefix_ignore_strips_common_prefixes_for_better_grouping ... ok
[INFO] [stdout] test dir_move::test_ignored_group_parts::case_insensitive_matching ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::realistic_scenario_seven_files_four_share_two_part_prefix ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::partial_match_not_filtered ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::prefix_ignore_partial_match_not_filtered ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::substring_prefix_does_not_incorrectly_match ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::real_world_scenario_release_group_filtering ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::user_can_reject_specific_group_and_use_broader_one ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::min_group_size_respected_correctly ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::three_part_prefix_coexists_with_two_part_and_one_part ... ok
[INFO] [stdout] test dir_move::test_unpack::collect_candidates_filters_nested ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::stripped_name_matches_ignored_group_name_not_offered ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::stripped_name_is_prefix_ignore_not_offered ... ok
[INFO] [stdout] test dir_move::test_stripped_name_filtering_integration::valid_name_after_stripping_is_offered ... ok
[INFO] [stdout] test dir_move::test_unpack::chain_with_non_matching_subdirs_moved_directly ... ok
[INFO] [stdout] test dir_move::test_unpack::chain_with_files_at_multiple_levels ... ok
[INFO] [stdout] test dir_move::test_unpack::collect_info_counts_correctly ... ok
[INFO] [stdout] test dir_move::test_unpack::case_insensitive_dirname_match ... ok
[INFO] [stdout] test dir_move::test_unpack::alternating_match_non_match_dirs ... ok
[INFO] [stdout] test dir_move::test_unpack::contains_unpack_directory_helper ... ok
[INFO] [stdout] test dir_move::test_unpack::basic_preserves_structure_and_removes_matched_dir ... ok
[INFO] [stdout] test dir_move::test_unpack::dryrun_preserves_empty_matched_directory ... ok
[INFO] [stdout] test dir_move::test_unpack::dryrun_does_not_modify_files ... ok
[INFO] [stdout] test dir_move::test_unpack::does_not_prune_unrelated_empty_dirs ... ok
[INFO] [stdout] test dir_move::test_unpack::deeply_nested_structure ... ok
[INFO] [stdout] test dir_move::test_unpack::empty_unpack_names_does_nothing ... ok
[INFO] [stdout] test dir_move::test_unpack::handles_special_characters_in_names ... ok
[INFO] [stdout] test dir_move::test_unpack::multiple_unpack_names ... ok
[INFO] [stdout] test dir_move::test_unpack::mixed_files_and_directories ... ok
[INFO] [stdout] test dir_move::test_unpack::moves_non_matching_dirs_directly ... ok
[INFO] [stdout] test dir_move::test_realistic_grouping::mixed_content_multiple_distinct_groups_with_noise ... ok
[INFO] [stdout] test dir_move::test_unpack::no_matching_directories ... ok
[INFO] [stdout] test dir_move::test_unpack::nested_chain_multiple_non_matching_dirs ... ok
[INFO] [stdout] test dir_move::test_unpack::multiple_matching_dirs_at_different_levels ... ok
[INFO] [stdout] test dir_move::test_unpack::preserves_file_content ... ok
[INFO] [stdout] test dir_move::test_unwanted_directories::case_insensitive ... ok
[INFO] [stdout] test dir_move::test_unpack::skips_existing_file_without_overwrite ... ok
[INFO] [stdout] test dir_move::test_unpack::overwrites_existing_file_with_overwrite ... ok
[INFO] [stdout] test dir_move::test_unpack::nested_chain_with_non_matching_dir_between ... ok
[INFO] [stdout] test dir_move::test_unwanted_directories::collect_unwanted_and_unpack_combined ... ok
[INFO] [stdout] test dir_move::test_unpack::nested_chain_single_summary ... ok
[INFO] [stdout] test dir_move::test_unpack::skips_existing_directory_without_overwrite ... ok
[INFO] [stdout] test dir_move::test_unwanted_directories::deleted ... ok
[INFO] [stdout] test dir_move::test_unwanted_directories::dryrun_preserves ... ok
[INFO] [stdout] test dir_move::test_unwanted_directories::skipped_in_collect_directories ... ok
[INFO] [stdout] test dir_move::test_unpack::non_recursive_only_checks_root_level ... ok
[INFO] [stdout] test dir_move::test_unpack::separate_trees_get_separate_processing ... ok
[INFO] [stdout] test dir_move::test_unwanted_directories::deleted_recursive ... ok
[INFO] [stdout] test dir_move::test_unpack::nested_matching_dirs_are_flattened ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::empty_prefix_ignore_list_no_effect ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::files_without_dots_form_single_groups ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::dotted_vs_concatenated_with_varied_prefixes ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::distinct_studio_names_form_separate_groups ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::broader_group_includes_extended_names ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::prefix_ignore_case_insensitive ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::completely_different_files_isolated ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::mixed_content_with_noise_files ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::prefix_ignore_does_not_strip_from_middle ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::numeric_looking_prefix_ignore ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::multiple_prefix_ignores_comprehensive ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::near_match_extra_prefix_not_grouped ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::near_match_similar_names_different_groups ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::prefix_ignore_groups_files_with_and_without_prefix ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::count_prefix_chars_helper_works_correctly ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::dotted_prefix_char_count_excludes_dots ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::prefix_ignore_multiple_ignored_prefixes ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::dotted_prefix_included_when_chars_meet_threshold ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::single_letter_prefix_ignore ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::prefix_ignore_with_similar_non_matching_files ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::config_override_allows_short_prefixes ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::exact_threshold_includes_prefix ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::long_prefix_always_included ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::min_chars_one_allows_single_char ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::emoji_prefix_counted_as_chars ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::min_chars_zero_allows_all ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::specific_groups_separate_from_unrelated_names ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::short_prefix_excluded_with_default_min_chars ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::short_prefix_included_with_low_min_chars ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::three_part_dotted_prefix_char_count ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::common_short_words_excluded ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::three_part_dotted_prefix_included_when_long_enough ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::integration_dotted_long_prefix_included ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::high_threshold_excludes_most_single_words ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::unicode_chars_counted_correctly ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::high_threshold_excludes_all_short_dotted ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::two_part_prefix_affected_by_min_chars ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::integration_dotted_short_prefix_excluded ... ok
[INFO] [stdout] test types::test_casing_score::all_lowercase_scores_zero ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::substring_in_middle_not_matched ... ok
[INFO] [stdout] test types::test_casing_score::all_uppercase_scores_second ... ok
[INFO] [stdout] test types::test_casing_score::empty_string_scores_zero ... ok
[INFO] [stdout] test types::test_casing_score::camel_case_scores_highest ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::short_names_not_grouped_with_default_config ... ok
[INFO] [stdout] test types::test_casing_score::mixed_case_starting_lowercase_scores_third ... ok
[INFO] [stdout] test types::test_is_better_prefix::all_uppercase_preferred_over_all_lowercase ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::mixed_lengths_correct_grouping ... ok
[INFO] [stdout] test types::test_is_better_prefix::camel_case_preferred_over_all_lowercase ... ok
[INFO] [stdout] test types::test_is_better_prefix::camel_case_preferred_over_all_uppercase ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::threshold_zero_allows_all_dotted_prefixes ... ok
[INFO] [stdout] test types::test_is_better_prefix::same_prefix_not_better ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::threshold_exact_boundary_dotted ... ok
[INFO] [stdout] test utils::test_contiguity::case_insensitive_concatenated ... ok
[INFO] [stdout] test types::test_is_better_prefix::alphabetical_order_breaks_ties ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::mixed_dotted_and_single_word_with_threshold ... ok
[INFO] [stdout] test utils::test_contiguity::case_insensitive_concatenated_reverse ... ok
[INFO] [stdout] test utils::test_contiguity::case_insensitive_mixed_case ... ok
[INFO] [stdout] test utils::test_contiguity::concatenated_prefix_matches_dotted_original ... ok
[INFO] [stdout] test utils::test_contiguity::case_insensitive_exact_match ... ok
[INFO] [stdout] test utils::test_contiguity::concatenated_three_part_prefix_matches_dotted ... ok
[INFO] [stdout] test utils::test_contiguity::dotted_prefix_matches_concatenated_original ... ok
[INFO] [stdout] test utils::test_contiguity::dotted_three_part_prefix_matches_concatenated ... ok
[INFO] [stdout] test utils::test_contiguity::empty_prefix_parts ... ok
[INFO] [stdout] test utils::test_contiguity::exact_single_part_match ... ok
[INFO] [stdout] test utils::test_contiguity::exact_three_part_match_at_start ... ok
[INFO] [stdout] test utils::test_contiguity::exact_two_part_match_at_end ... ok
[INFO] [stdout] test utils::test_contiguity::episode_code_as_part ... ok
[INFO] [stdout] test utils::test_contiguity::exact_two_part_match_at_start ... ok
[INFO] [stdout] test utils::test_contiguity::extended_dotted_prefix_matches_concatenated ... ok
[INFO] [stdout] test utils::test_contiguity::extended_prefix_all_forms_match ... ok
[INFO] [stdout] test utils::test_contiguity::extended_prefix_matches ... ok
[INFO] [stdout] test utils::test_contiguity::extended_prefix_matches_longer_concatenated ... ok
[INFO] [stdout] test utils::test_contiguity::extended_single_part_prefix_matches ... ok
[INFO] [stdout] test utils::test_contiguity::extended_single_part_prefix_various_extensions ... ok
[INFO] [stdout] test utils::test_contiguity::exact_two_part_match_in_middle ... ok
[INFO] [stdout] test utils::test_contiguity::long_filename_match_deep_in_middle ... ok
[INFO] [stdout] test utils::test_contiguity::long_filename_match_at_start ... ok
[INFO] [stdout] test utils::test_contiguity::long_filename_non_contiguous ... ok
[INFO] [stdout] test utils::test_contiguity::numeric_parts_are_literal ... ok
[INFO] [stdout] test utils::test_contiguity::partial_match_not_sufficient ... ok
[INFO] [stdout] test utils::test_contiguity::exact_concatenated_match_not_substring ... ok
[INFO] [stdout] test utils::test_contiguity::prefix_matches_entire_filename_except_extension ... ok
[INFO] [stdout] test utils::test_contiguity::mixed_concatenated_in_middle ... ok
[INFO] [stdout] test utils::test_contiguity::prefix_matches_including_extension_part ... ok
[INFO] [stdout] test utils::test_contiguity::parts_in_wrong_order ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::test_min_prefix_chars::unicode_dotted_prefix_counted_correctly ... ok
[INFO] [stdout] test utils::test_contiguity::realistic_adult_site_without_date ... ok
[INFO] [stdout] test utils::test_contiguity::matches_first_occurrence ... ok
[INFO] [stdout] test utils::test_contiguity::realistic_movie_title_contiguous ... ok
[INFO] [stdout] test utils::test_contiguity::realistic_movie_with_year ... ok
[INFO] [stdout] test utils::test_contiguity::prefix_longer_than_filename ... ok
[INFO] [stdout] test utils::test_contiguity::realistic_tv_show_pattern ... ok
[INFO] [stdout] test utils::test_contiguity::prefix_part_not_in_filename ... ok
[INFO] [stdout] test utils::test_contiguity::repeated_single_part ... ok
[INFO] [stdout] test utils::test_contiguity::resolution_pattern_as_part ... ok
[INFO] [stdout] test utils::test_contiguity::single_part_filename ... ok
[INFO] [stdout] test utils::test_contiguity::three_parts_with_gap_in_middle ... ok
[INFO] [stdout] test utils::test_contiguity::single_concatenated_prefix_matches_three_dotted ... ok
[INFO] [stdout] test utils::test_contiguity::three_variations_of_same_name_concatenated ... ok
[INFO] [stdout] test utils::test_contiguity::realistic_adult_site_with_date ... ok
[INFO] [stdout] test utils::test_contiguity::three_variations_of_same_name_dotted ... ok
[INFO] [stdout] test utils::test_contiguity::three_variations_of_same_name_partial_concat ... ok
[INFO] [stdout] test utils::test_contiguity::three_variations_reverse_partial_concat ... ok
[INFO] [stdout] test utils::test_contiguity::two_parts_separated_by_date ... ok
[INFO] [stdout] test utils::test_contiguity::two_parts_separated_by_single_number ... ok
[INFO] [stdout] test utils::test_contiguity::two_parts_separated_by_word ... ok
[INFO] [stdout] test dir_move::test_varied_prefix_grouping::three_part_prefix_with_ignores_and_noise ... ok
[INFO] [stdout] test utils::test_contiguity::very_long_concatenated_name ... ok
[INFO] [stdout] test utils::test_contiguity::very_long_dotted_name_matches_concatenated ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::extension_not_included_as_candidate ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::double_extension_only_last_excluded ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::extension_not_included_even_when_common ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::long_extension_excluded ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::extension_not_part_of_multi_part_candidate ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::extension_case_insensitive_exclusion ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::valid_candidates_still_found_without_extension ... ok
[INFO] [stdout] test utils::test_filtering::case_insensitive_resolution ... ok
[INFO] [stdout] test utils::test_filtering::consecutive_dots ... ok
[INFO] [stdout] test utils::test_filtering::empty_string ... ok
[INFO] [stdout] test utils::test_filtering::generic_movie_name ... ok
[INFO] [stdout] test utils::test_file_extension_exclusion::name_that_looks_like_extension_at_non_extension_position ... ok
[INFO] [stdout] test utils::test_filtering::all_numeric_except_extension ... ok
[INFO] [stdout] test utils::test_filtering::complex_filtering_year_resolution_glue ... ok
[INFO] [stdout] test utils::test_filtering::keeps_4k_not_matched_by_resolution_regex ... ok
[INFO] [stdout] test utils::test_filtering::keeps_mixed_alphanumeric ... ok
[INFO] [stdout] test utils::test_filtering::generic_tv_show ... ok
[INFO] [stdout] test utils::test_filtering::glue_words_case_insensitive ... ok
[INFO] [stdout] test utils::test_filtering::no_numeric_parts ... ok
[INFO] [stdout] test utils::test_filtering::no_dots_in_name ... ok
[INFO] [stdout] test utils::test_filtering::only_extension_left ... ok
[INFO] [stdout] test utils::test_filtering::multiple_resolutions ... ok
[INFO] [stdout] test utils::test_filtering::preserves_episode_codes ... ok
[INFO] [stdout] test utils::test_filtering::removes_2160p ... ok
[INFO] [stdout] test utils::test_filtering::removes_and_glue_word ... ok
[INFO] [stdout] test utils::test_filtering::removes_720p ... ok
[INFO] [stdout] test utils::test_filtering::removes_dimension_format ... ok
[INFO] [stdout] test utils::test_filtering::removes_multiple_numeric ... ok
[INFO] [stdout] test utils::test_filtering::removes_1080p ... ok
[INFO] [stdout] test utils::test_filtering::removes_the_glue_word ... ok
[INFO] [stdout] test utils::test_filtering::removes_multiple_glue_words ... ok
[INFO] [stdout] test utils::test_filtering::removes_year ... ok
[INFO] [stdout] test utils::test_filtering::removes_all_glue_words ... ok
[INFO] [stdout] test utils::test_filtering::removes_smaller_dimension ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::four_part_sequences_exact_length ... ok
[INFO] [stdout] test utils::test_filtering::single_part ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::no_dots_multi_part_returns_empty ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::realistic_filename ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::realistic_filename_three_parts ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::no_dots_single_part ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::single_part_sequences ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::two_part_sequences ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::too_few_parts ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::zero_parts_returns_empty ... ok
[INFO] [stdout] test utils::test_get_all_n_part_sequences::three_part_sequences ... ok
[INFO] [stdout] test utils::test_normalize_name::normalize_name_function ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::group_name_in_middle_of_filename ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::concatenated_and_dotted_at_various_positions ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::group_name_at_various_positions ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::dotted_group_name_in_middle ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::group_name_not_found_when_not_contiguous ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::mixed_prefix_and_middle_positions ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::prefix_matches_normalized_finds_anywhere ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::prefix_matches_normalized_three_part_anywhere ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::prefix_matches_normalized_two_part_anywhere ... ok
[INFO] [stdout] test utils::test_prefix_candidates::case_insensitive_prefix_matching ... ok
[INFO] [stdout] test utils::test_position_agnostic_matching::realistic_scenario_with_dates_in_middle ... ok
[INFO] [stdout] test utils::test_prefix_candidates::dot_separated_matches_concatenated ... ok
[INFO] [stdout] test utils::test_prefix_candidates::dot_separated_two_parts_match_single_word ... ok
[INFO] [stdout] test utils::test_prefix_candidates::dot_separated_three_parts_matches_concatenated ... ok
[INFO] [stdout] test utils::test_prefix_candidates::empty_file_list ... ok
[INFO] [stdout] test utils::test_prefix_candidates::fallback_to_two_part_when_no_three_part_matches ... ok
[INFO] [stdout] test utils::test_prefix_candidates::dot_separated_with_mixed_case ... ok
[INFO] [stdout] test utils::test_prefix_candidates::file_not_in_list ... ok
[INFO] [stdout] test utils::test_prefix_candidates::identical_single_word_prefix_grouped ... ok
[INFO] [stdout] test utils::test_prefix_candidates::high_min_group_size_filters_all ... ok
[INFO] [stdout] test utils::test_prefix_candidates::identical_prefix_files_are_grouped ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_decade_in_title ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_documentary_with_regions ... ok
[INFO] [stdout] test utils::test_prefix_candidates::min_group_size_at_exact_threshold ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_with_date_after_prefix ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_mixed_year_positions ... ok
[INFO] [stdout] test utils::test_prefix_candidates::many_files_same_prefix ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_with_version_and_year ... ok
[INFO] [stdout] test utils::test_prefix_candidates::min_group_size_filters_small_groups ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_with_year_after_prefix ... ok
[INFO] [stdout] test utils::test_prefix_candidates::min_group_size_one ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_season_with_year_in_name ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_franchise_with_year_variations ... ok
[INFO] [stdout] test utils::test_prefix_candidates::long_name_with_only_year_after_prefix ... ok
[INFO] [stdout] test utils::test_prefix_candidates::min_group_size_one_matches_single_file ... ok
[INFO] [stdout] test utils::test_prefix_candidates::mixed_case_variations_all_group_together ... ok
[INFO] [stdout] test utils::test_prefix_candidates::mixed_prefixes_different_third_parts ... ok
[INFO] [stdout] test utils::test_prefix_candidates::mixed_years_without_filtering ... ok
[INFO] [stdout] test utils::test_prefix_candidates::normalize_prefix_removes_dots_and_lowercases ... ok
[INFO] [stdout] test utils::test_prefix_candidates::no_matches_below_threshold ... ok
[INFO] [stdout] test utils::test_prefix_candidates::movie_series_with_years ... ok
[INFO] [stdout] test utils::test_prefix_candidates::numeric_filtering_groups_correctly ... ok
[INFO] [stdout] test utils::test_prefix_candidates::prefix_matches_normalized_no_match ... ok
[INFO] [stdout] test utils::test_prefix_candidates::only_two_files_high_threshold ... ok
[INFO] [stdout] test utils::test_prefix_candidates::prefers_longer_prefix_over_short_with_more_matches ... ok
[INFO] [stdout] test utils::test_prefix_candidates::prefix_matches_normalized_single_part ... ok
[INFO] [stdout] test utils::test_prefix_candidates::prefix_matches_normalized_three_parts ... ok
[INFO] [stdout] test utils::test_prefix_candidates::prefix_matches_normalized_two_parts ... ok
[INFO] [stdout] test utils::test_prefix_candidates::prefix_matches_normalized_starts_with ... ok
[INFO] [stdout] test utils::test_prefix_candidates::respects_min_group_size ... ok
[INFO] [stdout] test utils::test_prefix_candidates::prioritizes_longer_prefix ... ok
[INFO] [stdout] test utils::test_prefix_candidates::short_names_with_extensions ... ok
[INFO] [stdout] test utils::test_prefix_candidates::simple_prefix_multiple_files ... ok
[INFO] [stdout] test utils::test_prefix_candidates::returns_all_viable_options_for_alternatives ... ok
[INFO] [stdout] test utils::test_prefix_candidates::single_word_fallback ... ok
[INFO] [stdout] test utils::test_prefix_candidates::three_part_dot_separated_match_single_word ... ok
[INFO] [stdout] test utils::test_prefix_candidates::single_file_no_match ... ok
[INFO] [stdout] test utils::test_prefix_candidates::three_part_prefix_with_mixed_fourth_parts ... ok
[INFO] [stdout] test utils::test_prefix_candidates::with_filtered_numeric_parts ... ok
[INFO] [stdout] test utils::test_prefix_candidates::tv_show_generic_scenario ... ok
[INFO] [stdout] test utils::test_prefix_candidates::tv_show_season_episodes ... ok
[INFO] [stdout] test dir_move::test_prefix_groups::same_prefix_different_case_grouped ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- dir_move::test_prefix_groups::same_prefix_different_case_grouped stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'dir_move::test_prefix_groups::same_prefix_different_case_grouped' (677) panicked at src/bin/dir_move/dir_move.rs:2377:9:
[INFO] [stdout] Should have Summer.Vacation group
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x574b18dad7ba - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x574b18dad7ba - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x574b18dad7ba - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x574b18dad7ba - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x574b18dc4d3a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x574b18dc4d3a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x574b18db27e2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x574b18db27e2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x574b18d88e5f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x574b18d88e5f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x574b18da3f49 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x574b187ba37c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x574b187ba37c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x574b18da4102 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x574b18da4102 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x574b18d88f4a - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x574b18d7ffe9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x574b18d89e5d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x574b18dc569c - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x574b1875b85b - dirmove::dir_move::test_prefix_groups::same_prefix_different_case_grouped::hb1a8e85e2d9c9ead
[INFO] [stdout]                                at /opt/rustwide/workdir/src/bin/dir_move/dir_move.rs:2377:9
[INFO] [stdout]   20:     0x574b1875b9d7 - dirmove::dir_move::test_prefix_groups::same_prefix_different_case_grouped::{{closure}}::h431668798678b469
[INFO] [stdout]                                at /opt/rustwide/workdir/src/bin/dir_move/dir_move.rs:2361:44
[INFO] [stdout]   21:     0x574b18680276 - core::ops::function::FnOnce::call_once::h90bc5adf74b6ffdd
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x574b187ae45b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x574b187ae45b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x574b187bae4b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x574b187bae4b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x574b187bae4b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x574b187bae4b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x574b187bae4b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x574b187bae4b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x574b187bae4b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x574b187b6564 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x574b187b6564 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x574b187bda52 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x574b187bda52 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x574b187bda52 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x574b187bda52 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x574b187bda52 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x574b187bda52 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x574b187bda52 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x574b18dacaff - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   41:     0x574b18dacaff - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x72917f43eaa4 - <unknown>
[INFO] [stdout]   43:     0x72917f4cba64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     dir_move::test_prefix_groups::same_prefix_different_case_grouped
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 488 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin dirmove`
[INFO] running `Command { std: "docker" "inspect" "460574eeb594da9d1327bfe4828be854c0b8cae1e243e97c35e8df466bfd4836", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "460574eeb594da9d1327bfe4828be854c0b8cae1e243e97c35e8df466bfd4836", kill_on_drop: false }`
[INFO] [stdout] 460574eeb594da9d1327bfe4828be854c0b8cae1e243e97c35e8df466bfd4836
