[INFO] cloning repository https://github.com/SamuelSchlesinger/tshts
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SamuelSchlesinger/tshts" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSamuelSchlesinger%2Ftshts", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSamuelSchlesinger%2Ftshts'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b511e45bbd82d561a05d4997e0ea77a1acf28a77
[INFO] testing SamuelSchlesinger/tshts against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSamuelSchlesinger%2Ftshts" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/SamuelSchlesinger/tshts
[INFO] finished tweaking git repo https://github.com/SamuelSchlesinger/tshts
[INFO] tweaked toml for git repo https://github.com/SamuelSchlesinger/tshts written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/SamuelSchlesinger/tshts on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/SamuelSchlesinger/tshts already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "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/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82
[INFO] running `Command { std: "docker" "start" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling aws-lc-rs v1.17.0
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling aws-lc-sys v0.41.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling pxfm v0.1.29
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling debug_unsafe v0.1.4
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling typed-path v0.12.3
[INFO] [stderr]    Compiling signal-hook v0.4.4
[INFO] [stderr]    Compiling atoi_simd v0.17.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zip v7.2.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling quick-xml v0.39.4
[INFO] [stderr]    Compiling codepage v0.1.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling fast-float2 v0.2.3
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling calamine v0.35.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling tshts v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 45s
[INFO] running `Command { std: "docker" "inspect" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling vte v0.15.0
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling vt100 v0.16.2
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling signal-hook v0.4.4
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling serial2 v0.2.37
[INFO] [stderr]    Compiling aws-lc-sys v0.41.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling portable-pty v0.9.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.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 h2 v0.4.14
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling aws-lc-rs v1.17.0
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling tshts v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 47s
[INFO] running `Command { std: "docker" "inspect" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tshts-274e9abbd01ee4e4)
[INFO] [stdout] 
[INFO] [stdout] running 603 tests
[INFO] [stdout] test application::state::autofill::tests::test_autofill_horizontal_pattern ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_arithmetic ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_prefixed ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_simple_values ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_months_wrap ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_quarters ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_months_short ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_formula_vertical ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_days ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_months_full ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_copy_paste_formula_adjusts_refs ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_copy_paste_single_cell ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_copy_paste_range ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_paste_nothing ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_cut_paste ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_format_currency ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_format_percentage ... ok
[INFO] [stdout] test application::state::command::tests::test_add_sheet_command ... ok
[INFO] [stdout] test application::state::command::tests::test_command_color ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_delete_row ... ok
[INFO] [stdout] test application::state::command::tests::test_command_color_none_clears ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_unknown_command ... ok
[INFO] [stdout] test application::state::command::tests::test_comment_command ... ok
[INFO] [stdout] test application::state::command::tests::test_command_underline ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_insert_row ... ok
[INFO] [stdout] test application::state::command::tests::test_comment_clear_command ... ok
[INFO] [stdout] test application::state::command::tests::test_delete_sheet_command ... ok
[INFO] [stdout] test application::state::command::tests::test_filter_command ... ok
[INFO] [stdout] test application::state::command::tests::test_command_bg_color ... ok
[INFO] [stdout] test application::state::editing::tests::test_finish_editing_circular_reference ... ok
[INFO] [stdout] test application::state::editing::tests::test_finish_editing_simple_value ... ok
[INFO] [stdout] test application::state::command::tests::test_rename_sheet_command ... ok
[INFO] [stdout] test application::state::editing::tests::test_cancel_editing ... ok
[INFO] [stdout] test application::state::command::tests::test_unfilter_command ... ok
[INFO] [stdout] test application::state::editing::tests::test_finish_editing_formula ... ok
[INFO] [stdout] test application::state::editing::tests::test_start_editing_empty_cell ... ok
[INFO] [stdout] test application::state::formatting::tests::test_clear_filter ... ok
[INFO] [stdout] test application::state::formatting::tests::test_clear_cell_comment ... ok
[INFO] [stdout] test application::state::formatting::tests::test_comment_undo ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_formula_horizontal ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_cell_comment ... ok
[INFO] [stdout] test application::state::formatting::tests::test_freeze_panes ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_bg_color ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_format_on_selection ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_fg_color ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_column_descending ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_format_general_clears_format ... ok
[INFO] [stdout] test application::state::editing::tests::test_start_editing_cell_with_formula ... ok
[INFO] [stdout] test application::state::editing::tests::test_start_editing_cell_with_value ... ok
[INFO] [stdout] test application::state::command::tests::test_command_bold ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_column_ascending ... ok
[INFO] [stdout] test application::state::formatting::tests::test_apply_filter ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_undo ... ok
[INFO] [stdout] test application::state::formatting::tests::test_toggle_underline ... ok
[INFO] [stdout] test application::state::formatting::tests::test_unfreeze_panes ... ok
[INFO] [stdout] test application::state::io::tests::test_cancel_filename_input ... ok
[INFO] [stdout] test application::state::io::tests::test_csv_import_mode ... ok
[INFO] [stdout] test application::state::io::tests::test_csv_import_result_handling ... ok
[INFO] [stdout] test application::state::formatting::tests::test_toggle_bold_on_selection ... ok
[INFO] [stdout] test application::state::io::tests::test_get_load_filename ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_preserves_other_columns ... ok
[INFO] [stdout] test application::state::io::tests::test_get_save_filename ... ok
[INFO] [stdout] test application::state::formatting::tests::test_toggle_bold ... ok
[INFO] [stdout] test application::state::io::tests::test_set_load_workbook_result_failure ... ok
[INFO] [stdout] test application::state::io::tests::test_set_save_result_failure ... ok
[INFO] [stdout] test application::state::navigation::tests::test_cannot_delete_last_sheet ... ok
[INFO] [stdout] test application::state::navigation::tests::test_default_workbook_has_one_sheet ... ok
[INFO] [stdout] test application::state::io::tests::test_start_load_file ... ok
[INFO] [stdout] test application::state::navigation::tests::test_jump_to_home ... ok
[INFO] [stdout] test application::state::navigation::tests::test_jump_to_end ... ok
[INFO] [stdout] test application::state::navigation::tests::test_switch_next_at_last_sheet ... ok
[INFO] [stdout] test application::state::navigation::tests::test_switch_prev_at_first_sheet ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_cancel ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_cross_sheet_switches_active ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_invalid ... ok
[INFO] [stdout] test application::state::navigation::tests::test_switch_sheets ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_unknown_sheet_errors_gracefully ... ok
[INFO] [stdout] test application::state::search::tests::test_find_replace_basic ... ok
[INFO] [stdout] test application::state::search::tests::test_replace_all ... ok
[INFO] [stdout] test application::state::search::tests::test_replace_skips_formula_cells ... ok
[INFO] [stdout] test application::state::search::tests::test_replace_current ... ok
[INFO] [stdout] test application::state::io::tests::test_start_save_as ... ok
[INFO] [stdout] test application::state::io::tests::test_start_save_as_with_existing_filename ... ok
[INFO] [stdout] test application::state::tests::test_app_default ... ok
[INFO] [stdout] test application::state::tests::test_app_mode_transitions ... ok
[INFO] [stdout] test application::state::tests::test_batch_undo ... ok
[INFO] [stdout] test application::state::tests::test_parse_column_label ... ok
[INFO] [stdout] test application::state::tests::test_selection_functionality ... ok
[INFO] [stdout] test application::state::tests::test_selection_stats ... ok
[INFO] [stdout] test application::state::tests::test_selection_stats_no_numbers ... ok
[INFO] [stdout] test application::state::tests::test_cross_sheet_auto_recalc ... ok
[INFO] [stdout] test application::state::tests::test_selection_stats_single_cell ... ok
[INFO] [stdout] test application::state::io::tests::test_set_load_workbook_result_success ... ok
[INFO] [stdout] test application::state::io::tests::test_set_save_result_success ... ok
[INFO] [stdout] test application::state::lifecycle::tests::test_confirm_discard_save_then_quit_with_known_filename ... ok
[INFO] [stdout] test application::state::tests::test_cross_sheet_cycle_rejected ... ok
[INFO] [stdout] test application::state::tests::test_terminal_color_from_name ... ok
[INFO] [stdout] test application::state::tests::test_viewport_and_scrolling ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::forget_node_clears_both_directions ... ok
[INFO] [stdout] test domain::models::cell::tests::test_cell_data_creation ... ok
[INFO] [stdout] test application::state::tests::test_cross_sheet_chain_propagates ... ok
[INFO] [stdout] test domain::models::cell::tests::test_cell_data_default ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::link_and_unlink_round_trip ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::self_edges_retained_for_iterative_calc ... ok
[INFO] [stdout] test application::state::tests::test_smoke_end_to_end_flow ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_cross_sheet ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_cycle_detected ... ok
[INFO] [stdout] test application::state::tests::test_vlookup_basic ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::case_insensitive ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::transitive_dependents_explores_all_downstream ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_diamond ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::handles_absolute_refs ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_linear_chain ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::leaves_other_sheet_refs_alone ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::preserves_local_refs ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::replaces_bare_sheet_ref ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::replaces_quoted_sheet_ref ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::skips_inside_string_literal ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::_per_sheet_cascade_tests_moved_to_workbook_level ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::replaces_sheet_qualified_range ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_cell_data_with_format ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_auto_resize_column ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_auto_resize_column_shrinks ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_auto_resize_all_columns ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_column_label ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_column_width_management ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_delete_col ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_delete_row ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_extract_cell_references_from_formula ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_circular_dependency_handling ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_get_cell_empty ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_col ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_formula_cell_no_auto_resize ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_col_adjusts_formulas ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_row_adjusts_formulas ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_row ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_parse_cell_reference ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_set_cell_no_auto_resize ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_spreadsheet_default ... ok
[INFO] [stdout] test application::state::tests::test_status_message_handling ... ok
[INFO] [stdout] test domain::models::style::tests::test_cell_data_format_serialization ... ok
[INFO] [stdout] test domain::models::style::tests::has_volatile_cf_predicate_detects_now_in_rule ... ok
[INFO] [stdout] test domain::models::style::tests::recalc_keeps_cf_cache_when_predicates_are_pure ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_general ... ok
[INFO] [stdout] test domain::models::style::tests::test_conditional_format_fires_on_truthy_predicate ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_number ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_number_thousands ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_currency ... ok
[INFO] [stdout] test domain::models::style::tests::recalc_clears_cf_cache_when_predicate_is_volatile ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_set_and_get_cell ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_percentage ... ok
[INFO] [stdout] test domain::models::style::tests::test_thousands_separator ... ok
[INFO] [stdout] test domain::models::style::tests::test_thousands_separator_edge_cases ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_bare_true_false_evaluate_as_booleans ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_complex_expression_parsing_and_evaluation ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_bare_true_false_inside_function_args ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_numbers ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_binary_ops ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_functions ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_error_handling ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_ranges ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_cell_refs ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_equality ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_functions ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_cells ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_serialization_roundtrip ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_unary_ops ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_ampersand ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_error_handling ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_error_literal_in_expression ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_error_literals ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_concatenation ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_delimiters ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_operators ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_strings ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_identifiers_and_keywords ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_function_registry ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_numbers ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_unknown_hash_literal_errors ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_binary_operations ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_cell_references ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_error_handling ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_mixed_concatenation ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_logical_operations ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_function_calls ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_comparison_operations ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_complex_nested_functions ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_mixed_operators_and_functions ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_numbers ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_multiple_nested_levels ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_unary_operations ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_power_left_associative ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_parentheses ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_operator_precedence ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_ranges ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_string_concatenation ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_string_literals ... ok
[INFO] [stdout] test domain::parser::registry_fns::viz::tests::test_sparkline_basic ... ok
[INFO] [stdout] test domain::parser::registry_fns::viz::tests::test_sparkline_all_equal ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_positive_step ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_days_case_insensitive ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_days_full ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_days_short ... ok
[INFO] [stdout] test domain::parser::registry_fns::viz::tests::test_sparkline_single_value ... ok
[INFO] [stdout] test domain::parser::tests::expr_variant_size_probe ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_decimal ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_larger_step ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_negative_step ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_empty_values ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_mixed_types_fallback ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_format_number ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_months_full ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_prefixed_number_with_gap ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_description ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_non_arithmetic_numbers ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_prefixed_number_simple ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_months_short ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_prefixed_number_with_suffix ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_quarters ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_format_number_large_values ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_single_value_copy ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_starting_mid_sequence ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_empty_sheet ... ok
[INFO] [stdout] test domain::services::csv::tests::agent4_csv_import_tolerates_variable_row_widths ... ok
[INFO] [stdout] test domain::services::csv::tests::test_append_from_csv ... ok
[INFO] [stdout] test domain::services::csv::tests::agent4_csv_import_treats_equal_prefix_as_text ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_basic ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_empty_cells ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_special_characters ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_empty_file ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_sparse_data ... ok
[INFO] [stdout] test domain::services::csv::tests::agent4_csv_export_includes_formula_only_cells ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_nonexistent_file ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_invalid_csv ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_with_formulas ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_basic ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_numbers ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_bug_probes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::adjust_preserves_sheet_qualified_refs ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_date_rollover_probe ... ok
[INFO] [stdout] test domain::services::csv::tests::test_find_data_bounds ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_special_characters ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_xlookup_wildcard_probe ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent2_rename_updates_named_ranges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_sum_error_propagation_probe ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent2_rename_skips_string_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent4_workbook_load_clamps_active_sheet ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent4_workbook_load_pads_sheet_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_delete_makes_targeted_ref_a_ref_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent2_rename_rejects_duplicate_and_empty ... ok
[INFO] [stdout] test domain::services::evaluator::tests::concat_with_get_handles_both_states ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_adjusts_self_qualified_active_refs ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_roundtrip ... ok
[INFO] [stdout] test domain::services::evaluator::tests::format_sheet_name_quotes_digit_prefixed_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_returns_cached_value ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_shifts_qualified_refs ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_preserves_quoted_sheet_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::empty_sheets_load_preserves_named_ranges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_updates_named_ranges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_quotes_digit_prefixed_sheet ... ok
[INFO] [stdout] test application::state::search::tests::test_regex_search_toggle ... ok
[INFO] [stdout] test domain::services::evaluator::tests::migrate_workbook_json_rejects_future_version ... ok
[INFO] [stdout] test domain::services::evaluator::tests::migrate_workbook_json_rejects_non_integer_version ... ok
[INFO] [stdout] test domain::services::evaluator::tests::migrate_workbook_json_stamps_current_version ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_returns_loading_sentinel_while_in_flight ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_returns_value_error_on_cached_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_cache_miss_enqueues_and_returns_loading_sentinel ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_with_blocked_url_returns_value_error_without_enqueueing ... ok
[INFO] [stdout] test domain::services::evaluator::tests::ref_marker_evaluates_as_ref_error_not_ugly_string ... ok
[INFO] [stdout] test domain::services::evaluator::tests::remove_sheet_rewrites_dangling_refs_to_ref_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_with_cell_reference_resolves_url_through_cache ... ok
[INFO] [stdout] test domain::services::evaluator::tests::string_literal_ref_does_not_trigger_collapse ... ok
[INFO] [stdout] test domain::services::evaluator::tests::iferror_traps_get_error_with_fallback ... ok
[INFO] [stdout] test domain::services::evaluator::tests::nested_string_fn_over_loading_get_sees_loading_string ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_absolute_references_preserved_on_autofill ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_complex ... ok
[INFO] [stdout] test domain::services::evaluator::tests::nested_string_fn_over_cached_get_returns_real_length ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_absolute_reference_parses ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_diagonal ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_horizontal ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_vertical ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_edge_cases ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_array_broadcasting ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_array_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_array_literal_ref_extraction ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_case_insensitive_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_average_function ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cell_arithmetic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cell_references ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_circular_reference_detection ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_cell_ref ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_convergent_iterative_calc_lands_on_fixed_point ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_change_cascades_same_sheet_dependents ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_comparison_operators ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_range ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_date_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_complex_expressions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_dep_graph_set_prereqs_replaces_edges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_csv_import_rebuilds_unified_graph ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_cycle_converges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_decimal_precision ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_datedif ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_edate_eomonth_weekday ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_formula_to_value_transition_drops_unified_graph_state ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_dollar_and_fixed ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_datedif_md_borrows_from_previous_month ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_financial_pmt ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_extract_cell_references_from_ast ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_divergent_iterative_calc_marks_num_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_error_cases ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_function_purity_predicates ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_function_purity_classification ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_get_function_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_if_with_strings ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_get_function_invalid_url_empty ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_if_function ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_hlookup_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_indirect_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_incremental_purity_classification_updates_on_edit ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_ifs_switch_xor ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_indirect_picks_up_target_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_index_and_match ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_large_numbers ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_min_max_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_iterative_calc_non_convergent_returns_err ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_lambda_stored_in_named_range ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_let_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_named_ranges_in_formula ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_lambda_helpers ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_non_convergence_surfaces_to_status_message ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_non_formula_passthrough ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_negative_numbers ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_now_outside_recalc_uses_system_time ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_now_cells_stay_in_sync_across_edits ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_offset_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_offset_picks_up_target_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_logical_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_now_consistent_within_recalc_pass ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_offset_returns_ref_error_out_of_bounds ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_quoted_sheet_name ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_handles_dirty_for_removed_sheet ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_no_op_when_clean ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_range_parsing ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_propagates_through_levels ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_remove_sheet_purges_dep_graph ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_invokes_spill ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sequence_and_sort_unique ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sheet_id_allocation_monotonic_no_reuse ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_row_insert_relocates_volatile_structural_purity_key ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_regex_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_parallel_executor_now_consistent ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sheet_rename_with_quoted_name ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_smart_auto_seed_still_picks_up_target_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_simple_arithmetic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sheet_rename_rewrites_formulas ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_smart_auto_seed_skips_when_targets_disjoint_from_closure ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_batch_undo_redo_chain_is_correct ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_2d_array_literal ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_clears_old_ghosts_when_anchor_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_collision_emits_spill_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_sequence ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_stats_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_cell_references ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_equality ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_concatenation ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_function_errors ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sumif_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sumproduct_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sum_function ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_textjoin_and_textbefore ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_table_structured_ref ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_structural_targets_cleared_on_formula_edit ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_three_d_range ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_today_consistent_within_recalc_pass ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_typed_errors_and_trapping ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_three_d_range_quoted_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_true_false_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_vlookup_multi_column ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_graph_captures_same_and_cross_sheet_deps ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_graph_topo_levels_seeded_at_root ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_whitespace_handling ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_mutations_trigger_unified_recalc ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_xlookup_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workdays_and_datevalue ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_volatile_structural_targets_recorded_after_eval ... ok
[INFO] [stdout] test domain::services::evaluator::tests::workbook_load_rejects_future_version ... ok
[INFO] [stdout] test domain::services::evaluator::tests::workbook_load_defaults_missing_version_to_1 ... ok
[INFO] [stdout] test domain::services::evaluator::tests::unary_minus_propagates_error_literal ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_xlookup_wildcard_and_reverse ... ok
[INFO] [stdout] test domain::services::executor::tests::empty_plan_is_noop ... ok
[INFO] [stdout] test domain::services::executor::tests::parallel_handles_structural_volatile ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_cell_purity_cache_populated ... ok
[INFO] [stdout] test domain::services::executor::tests::sequential_executor_propagates_through_levels ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_xlookup_match_modes ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::allows_public_hostnames ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_cgnat ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::allows_public_ips ... ok
[INFO] [stdout] test domain::services::executor::tests::parallel_below_threshold_falls_through_to_sequential ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_ipv6_zone_ids ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_link_local_v6 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_ipv4_mapped_v6 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_localhost_name ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_loopback_v6 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_non_http_schemes ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_link_local_v4 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_loopback_v4 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_private_v4 ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_load_nonexistent_file ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_load_valid_json_wrong_format ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_load_invalid_json ... ok
[INFO] [stdout] test domain::services::executor::tests::recalc_context_captures_clock ... ok
[INFO] [stdout] test domain::services::executor::tests::snapshot_updates_between_levels_for_deep_chain ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_invalid_path ... ok
[INFO] [stdout] test domain::services::executor::tests::parallel_matches_sequential ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_json_format_structure ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_and_load_roundtrip ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_load_workbook_from_old_spreadsheet_format ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::strip_xlfn_prefix ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_opens_with_openpyxl ... ignored, requires python3 + openpyxl; run with `cargo test --release xlsx_opens_with_openpyxl -- --ignored`
[INFO] [stdout] test infrastructure::persistence::tests::test_save_custom_dimensions ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_empty_spreadsheet ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_load_workbook_roundtrip ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_with_special_characters ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_archive_has_expected_parts ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_roundtrip_basic ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_large_spreadsheet ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::preserves_utf8 ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::strips_compound_prefix ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::strips_mixed_case ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_confirm_n_cancels ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::strips_lower_and_upper ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::preserves_non_xlfn ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_confirm_y_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_e_no_arg_opens_loadfile ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_q_clean_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_q_with_leading_space ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_confirm_s_saves_and_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_uppercase_q_works ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_q_with_trailing_space ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_qbang_forces_quit ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_writes_styled_cells_without_panic ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_q_clean_quits_immediately ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_uppercase_wq_works ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_q_dirty_enters_confirm_discard ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_wq_no_filename_opens_saveas_no_quit ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_e_with_filename_loads_file ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_roundtrip_named_ranges ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_w_no_filename_opens_saveas ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_wqbang_force_quits_even_when_save_deferred ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::test_command_palette_escape_cancels ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_w_with_filename_saves_and_sets_filename ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_e_with_filename_when_other_open ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_xbang_force_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_w_then_q_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_wq_with_filename_saves_and_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_x_with_filename_saves_and_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::test_import_csv_filename_input ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_grammar_c_on_empty_cell_still_enters_editing ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_A_cursor_at_end ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_I_cursor_at_start ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_O_at_row_zero_inserts_above ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_a_cursor_position_on_existing_cell ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_O_shifts_existing_rows_down ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_i_cursor_position_on_existing_cell ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_S_clears_row_and_restores_undo ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_multibyte_cursor_is_char_based ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_grammar_cj_enters_editing_at_topleft ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_i_and_a_differ ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_grows_sheet_rows_when_at_last_row ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_then_text_then_esc_also_rolls_back_row ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_then_esc_rolls_back_row ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_grammar_ck_enters_editing_at_top_of_range ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_then_enter_keeps_row ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_s_clears_cell_and_enters_editing ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_spill_anchor_blocks_editing ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_type_text_then_enter_saves_and_moves_down ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_A_enters_insert_at_end ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_ctrl_h_no_longer_starts_find_replace ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_s_then_esc_does_not_restore_cell ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_ctrl_i_no_longer_starts_csv_import ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_i_enters_insert_mode ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_tab_finishes_and_moves_right ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_s_on_empty_cell_records_no_undo ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_tab_in_editing_finishes_and_moves_right ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_open_row_flag_does_not_leak_to_next_edit ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_type_text_then_esc_discards ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_confirm_discard_status_message_set_by_request_quit ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_3yy_then_p_pastes_three_rows_below ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_5dj_count_applies_to_motion ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_5dd_clears_five_rows ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_d0_deletes_from_row_start_to_cursor ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_count_does_not_leak_past_motion_into_next_command ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dgg_deletes_rows_up_to_top_all_columns ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_d_dollar_deletes_to_row_end ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dh_at_left_edge_no_panic ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dG_deletes_rows_to_bottom_data ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_esc_after_5d_then_j_moves_one ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_help_mode_esc_exits_to_normal ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_yj_clipboard_two_rows_one_col ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_help_mode_q_exits_to_normal ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_5d_5dg_5dgg_fires_action ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dl_deletes_horizontal_range ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dj_deletes_two_cells_in_column ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dk_deletes_two_cells_upward ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dk_at_top_no_panic_clears_only_current_cell ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_count_cleared_by_ctrl_b ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_d_then_ctrl_s_clears_pending_op ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_count_state_after_5 ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_d_then_question_opens_help ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_g_alone_then_unrelated_key_falls_through ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_G_with_count_jumps_to_row ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_backtab_moves_left_in_normal_mode ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_yank_status_message_keeps_normal_mode ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_status_message_preserved_under_pending_count ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_status_message_survives_motion_until_context_switch ... ok
[INFO] [stdout] test presentation::input::normal::tests::esc_after_d_then_y_does_not_inherit_delete ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_colon_q_bang_force_quits ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_colon_q_quits ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_colon_starts_command_palette ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_count_prefix_motion ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_csv_import_alternative_key_binding ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_command_palette_mode_typing_and_execute ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_csv_export_key_binding ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_count_with_dd ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_b_toggles_bold ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_c_copies ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_dollar_motion_to_last_data_in_row ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_esc_clears_pending_op ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_find_replace_mode_escape_exits ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_find_replace_mode_tab_toggles_fields ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_gg_jumps_to_top ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_dd_deletes_row ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_h_j_k_l_navigation ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_o_opens_row_below ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_g_starts_goto ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_p_pastes_after_yank ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_r_redoes ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_u_toggles_underline ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_q_prompts_when_dirty ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_page_down ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_page_up ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_q_quits_when_clean ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_tab_moves_right_in_normal_mode ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_x_cuts ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_s_substitutes_cell ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_yy_then_p_pastes_row_below ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_zero_motion_to_first_col ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_sort_via_command_palette ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_mode_chip_cycles_normal_insert_visual_command_search_help ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_x_deletes_current_cell ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_insert_i_in_visual_mode_does_not_enter_editing ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_pending_count_in_visual_then_5j_clears_count ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_pending_d_then_v_cancels_pending_and_enters_visual ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_u_undoes ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_quit_q_in_visual_mode_is_noop ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_block_motion_makes_rectangular_selection ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_shift_s_substitutes_row ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_count_zero_dollar_motion ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_count_5j_extends_5_rows ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_ctrl_c_copies_and_exits ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_G_extends_to_bottom_data ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_cross_sheet_paste ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_c_deletes_and_enters_editing_at_top_left ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_ctrl_v_swaps_to_block ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_enter_block_anchors_at_cursor ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_d_deletes_selection_and_exits ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_d_on_empty_selection_undo_invariant ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_enter_cell_anchors_selection ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_enter_row_spans_full_row ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_gg_extends_to_top ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_esc_invokes_dismiss_transients ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_kinds_all_distinct_via_input_drivers ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_large_range_scrolls_with_cursor ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_ctrl_x_cuts_and_exits ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_op_clears_vim_pending_state ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_row_ignores_h_and_l ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_esc_exits_and_clears_selection ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_single_row_sheet_extension ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_row_motion_snaps_full_row_width ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_row_mode_d_clears_full_row ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_v_toggles_out_to_normal ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_p_paste_replaces_selection_and_exits ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_status_bar_shows_stats ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_v3jl_produces_4x2_selection ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_y_yanks_and_exits_to_normal ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_ctrl_v_enters_visual_block ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_switch_cell_to_row_via_V ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_switch_row_to_cell_via_v ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_V_enters_visual_line ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_v_enters_visual ... ok
[INFO] [stdout] test presentation::ui::help_tests::agent_vim_pending_format ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_visual_motion_extends_then_d ... ok
[INFO] [stdout] test presentation::ui::help_tests::agent_mode_label_exhaustive_nonempty ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_x_deletes_selection_and_exits ... ok
[INFO] [stdout] test presentation::ui::help_tests::help_search_finds_known_token ... ok
[INFO] [stdout] test presentation::ui::help_tests::help_search_wraps_when_no_match_below ... ok
[INFO] [stdout] test presentation::ui::help_tests::help_section_offset_returns_valid_line ... ok
[INFO] [stdout] test presentation::ui::help_tests::each_section_anchor_exists ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_repeated_o_grows_sheet ... ok
[INFO] [stdout] test domain::services::executor::tests::property_parallel_matches_sequential_random_workbooks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 602 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.05s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tshts-f3f65dec9ed6a312)
[INFO] [stdout] 
[INFO] [stdout] running 603 tests
[INFO] [stdout] test application::state::autofill::tests::test_autofill_formula_horizontal ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_days ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_arithmetic ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_formula_vertical ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_horizontal_pattern ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_months_full ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_prefixed ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_months_wrap ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_simple_values ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_quarters ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_copy_paste_range ... ok
[INFO] [stdout] test application::state::autofill::tests::test_autofill_pattern_months_short ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_paste_nothing ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_copy_paste_single_cell ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_cut_paste ... ok
[INFO] [stdout] test application::state::clipboard::tests::test_copy_paste_formula_adjusts_refs ... ok
[INFO] [stdout] test application::state::command::tests::test_add_sheet_command ... ok
[INFO] [stdout] test application::state::command::tests::test_command_bg_color ... ok
[INFO] [stdout] test application::state::command::tests::test_command_color_none_clears ... ok
[INFO] [stdout] test application::state::command::tests::test_command_bold ... ok
[INFO] [stdout] test application::state::command::tests::test_command_color ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_format_percentage ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_unknown_command ... ok
[INFO] [stdout] test application::state::command::tests::test_command_underline ... ok
[INFO] [stdout] test application::state::command::tests::test_rename_sheet_command ... ok
[INFO] [stdout] test application::state::command::tests::test_comment_clear_command ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_delete_row ... ok
[INFO] [stdout] test application::state::command::tests::test_comment_command ... ok
[INFO] [stdout] test application::state::command::tests::test_delete_sheet_command ... ok
[INFO] [stdout] test application::state::command::tests::test_filter_command ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_insert_row ... ok
[INFO] [stdout] test application::state::command::tests::test_command_palette_format_currency ... ok
[INFO] [stdout] test application::state::editing::tests::test_start_editing_empty_cell ... ok
[INFO] [stdout] test application::state::command::tests::test_unfilter_command ... ok
[INFO] [stdout] test application::state::editing::tests::test_cancel_editing ... ok
[INFO] [stdout] test application::state::editing::tests::test_finish_editing_circular_reference ... ok
[INFO] [stdout] test application::state::editing::tests::test_finish_editing_simple_value ... ok
[INFO] [stdout] test application::state::editing::tests::test_start_editing_cell_with_formula ... ok
[INFO] [stdout] test application::state::formatting::tests::test_clear_cell_comment ... ok
[INFO] [stdout] test application::state::editing::tests::test_finish_editing_formula ... ok
[INFO] [stdout] test application::state::editing::tests::test_start_editing_cell_with_value ... ok
[INFO] [stdout] test application::state::formatting::tests::test_freeze_panes ... ok
[INFO] [stdout] test application::state::formatting::tests::test_apply_filter ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_bg_color ... ok
[INFO] [stdout] test application::state::formatting::tests::test_clear_filter ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_cell_comment ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_format_general_clears_format ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_column_ascending ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_fg_color ... ok
[INFO] [stdout] test application::state::formatting::tests::test_set_format_on_selection ... ok
[INFO] [stdout] test application::state::formatting::tests::test_unfreeze_panes ... ok
[INFO] [stdout] test application::state::io::tests::test_cancel_filename_input ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_preserves_other_columns ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_undo ... ok
[INFO] [stdout] test application::state::formatting::tests::test_toggle_bold ... ok
[INFO] [stdout] test application::state::formatting::tests::test_toggle_underline ... ok
[INFO] [stdout] test application::state::io::tests::test_csv_import_mode ... ok
[INFO] [stdout] test application::state::io::tests::test_csv_import_result_handling ... ok
[INFO] [stdout] test application::state::io::tests::test_get_load_filename ... ok
[INFO] [stdout] test application::state::io::tests::test_get_save_filename ... ok
[INFO] [stdout] test application::state::io::tests::test_set_load_workbook_result_failure ... ok
[INFO] [stdout] test application::state::io::tests::test_start_load_file ... ok
[INFO] [stdout] test application::state::formatting::tests::test_comment_undo ... ok
[INFO] [stdout] test application::state::io::tests::test_start_save_as_with_existing_filename ... ok
[INFO] [stdout] test application::state::io::tests::test_set_save_result_failure ... ok
[INFO] [stdout] test application::state::io::tests::test_start_save_as ... ok
[INFO] [stdout] test application::state::navigation::tests::test_cannot_delete_last_sheet ... ok
[INFO] [stdout] test application::state::navigation::tests::test_default_workbook_has_one_sheet ... ok
[INFO] [stdout] test application::state::formatting::tests::test_toggle_bold_on_selection ... ok
[INFO] [stdout] test application::state::io::tests::test_set_load_workbook_result_success ... ok
[INFO] [stdout] test application::state::navigation::tests::test_jump_to_end ... ok
[INFO] [stdout] test application::state::navigation::tests::test_jump_to_home ... ok
[INFO] [stdout] test application::state::navigation::tests::test_switch_next_at_last_sheet ... ok
[INFO] [stdout] test application::state::navigation::tests::test_switch_prev_at_first_sheet ... ok
[INFO] [stdout] test application::state::io::tests::test_set_save_result_success ... ok
[INFO] [stdout] test application::state::search::tests::test_find_replace_basic ... ok
[INFO] [stdout] test application::state::lifecycle::tests::test_confirm_discard_save_then_quit_with_known_filename ... ok
[INFO] [stdout] test application::state::formatting::tests::test_sort_column_descending ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_invalid ... ok
[INFO] [stdout] test application::state::navigation::tests::test_switch_sheets ... ok
[INFO] [stdout] test application::state::search::tests::test_regex_search_toggle ... ok
[INFO] [stdout] test application::state::search::tests::test_replace_all ... ok
[INFO] [stdout] test application::state::search::tests::test_replace_current ... ok
[INFO] [stdout] test application::state::search::tests::test_replace_skips_formula_cells ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_unknown_sheet_errors_gracefully ... ok
[INFO] [stdout] test application::state::tests::test_app_default ... ok
[INFO] [stdout] test application::state::tests::test_app_mode_transitions ... ok
[INFO] [stdout] test application::state::tests::test_cross_sheet_auto_recalc ... ok
[INFO] [stdout] test application::state::tests::test_parse_column_label ... ok
[INFO] [stdout] test application::state::tests::test_batch_undo ... ok
[INFO] [stdout] test application::state::tests::test_selection_stats_no_numbers ... ok
[INFO] [stdout] test application::state::tests::test_cross_sheet_chain_propagates ... ok
[INFO] [stdout] test application::state::tests::test_selection_functionality ... ok
[INFO] [stdout] test application::state::tests::test_selection_stats_single_cell ... ok
[INFO] [stdout] test application::state::tests::test_selection_stats ... ok
[INFO] [stdout] test application::state::tests::test_viewport_and_scrolling ... ok
[INFO] [stdout] test application::state::tests::test_terminal_color_from_name ... ok
[INFO] [stdout] test domain::models::cell::tests::test_cell_data_creation ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::forget_node_clears_both_directions ... ok
[INFO] [stdout] test application::state::tests::test_vlookup_basic ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::link_and_unlink_round_trip ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::self_edges_retained_for_iterative_calc ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_cross_sheet ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_cycle_detected ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_diamond ... ok
[INFO] [stdout] test application::state::tests::test_cross_sheet_cycle_rejected ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::topo_levels_linear_chain ... ok
[INFO] [stdout] test domain::models::dep_graph::tests::transitive_dependents_explores_all_downstream ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::case_insensitive ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::handles_absolute_refs ... ok
[INFO] [stdout] test application::state::tests::test_status_message_handling ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::replaces_quoted_sheet_ref ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::replaces_sheet_qualified_range ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::leaves_other_sheet_refs_alone ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::preserves_local_refs ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::skips_inside_string_literal ... ok
[INFO] [stdout] test domain::models::refs::replace_tests::replaces_bare_sheet_ref ... ok
[INFO] [stdout] test application::state::tests::test_smoke_end_to_end_flow ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::_per_sheet_cascade_tests_moved_to_workbook_level ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_auto_resize_all_columns ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_auto_resize_column ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_auto_resize_column_shrinks ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_cell_data_with_format ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_column_width_management ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_delete_row ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_extract_cell_references_from_formula ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_circular_dependency_handling ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_delete_col ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_formula_cell_no_auto_resize ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_get_cell_empty ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_col ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_row ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_col_adjusts_formulas ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_set_and_get_cell ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_parse_cell_reference ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_set_cell_no_auto_resize ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_spreadsheet_default ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_insert_row_adjusts_formulas ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_serialization_roundtrip ... ok
[INFO] [stdout] test domain::models::style::tests::has_volatile_cf_predicate_detects_now_in_rule ... ok
[INFO] [stdout] test domain::models::style::tests::test_cell_data_format_serialization ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_currency ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_general ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_number ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_number_thousands ... ok
[INFO] [stdout] test domain::models::style::tests::test_conditional_format_fires_on_truthy_predicate ... ok
[INFO] [stdout] test domain::models::style::tests::recalc_keeps_cf_cache_when_predicates_are_pure ... ok
[INFO] [stdout] test domain::models::style::tests::test_format_cell_value_percentage ... ok
[INFO] [stdout] test domain::models::style::tests::recalc_clears_cf_cache_when_predicate_is_volatile ... ok
[INFO] [stdout] test domain::models::style::tests::test_thousands_separator ... ok
[INFO] [stdout] test domain::models::style::tests::test_thousands_separator_edge_cases ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_cancel ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_bare_true_false_evaluate_as_booleans ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_error_handling ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_complex_expression_parsing_and_evaluation ... ok
[INFO] [stdout] test application::state::search::tests::test_goto_cell_cross_sheet_switches_active ... ok
[INFO] [stdout] test domain::models::cell::tests::test_cell_data_default ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_bare_true_false_inside_function_args ... ok
[INFO] [stdout] test domain::models::spreadsheet::tests::test_column_label ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_binary_ops ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_cell_refs ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_functions ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_cells ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_ranges ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_numbers ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_ampersand ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_functions ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_concatenation ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_function_registry ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_unary_ops ... ok
[INFO] [stdout] test domain::parser::evaluator::tests::test_expression_evaluator_string_equality ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_error_literal_in_expression ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_error_literals ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_numbers ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_operators ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_unknown_hash_literal_errors ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_binary_operations ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_delimiters ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_comparison_operations ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_cell_references ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_identifiers_and_keywords ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_error_handling ... ok
[INFO] [stdout] test domain::parser::lexer::tests::test_lexer_strings ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_function_calls ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_mixed_concatenation ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_mixed_operators_and_functions ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_multiple_nested_levels ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_operator_precedence ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_complex_nested_functions ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_logical_operations ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_error_handling ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_numbers ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_parentheses ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_power_left_associative ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_ranges ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_string_concatenation ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_string_literals ... ok
[INFO] [stdout] test domain::parser::parser_impl::tests::test_parser_unary_operations ... ok
[INFO] [stdout] test domain::parser::registry_fns::viz::tests::test_sparkline_basic ... ok
[INFO] [stdout] test domain::parser::registry_fns::viz::tests::test_sparkline_all_equal ... ok
[INFO] [stdout] test domain::parser::registry_fns::viz::tests::test_sparkline_single_value ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_decimal ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_positive_step ... ok
[INFO] [stdout] test domain::parser::tests::expr_variant_size_probe ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_empty_values ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_negative_step ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_days_case_insensitive ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_days_full ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_format_number ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_months_full ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_months_short ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_prefixed_number_simple ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_mixed_types_fallback ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_prefixed_number_with_suffix ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_non_arithmetic_numbers ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_quarters ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_single_value_copy ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_prefixed_number_with_gap ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_starting_mid_sequence ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_format_number_large_values ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_days_short ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_description ... ok
[INFO] [stdout] test domain::services::csv::tests::agent4_csv_import_tolerates_variable_row_widths ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_empty_sheet ... ok
[INFO] [stdout] test domain::services::csv::tests::agent4_csv_import_treats_equal_prefix_as_text ... ok
[INFO] [stdout] test domain::services::autofill_pattern::tests::test_autofill_pattern_arithmetic_larger_step ... ok
[INFO] [stdout] test domain::services::csv::tests::test_append_from_csv ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_empty_cells ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_basic ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_empty_file ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_nonexistent_file ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_special_characters ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_with_formulas ... ok
[INFO] [stdout] test domain::services::csv::tests::test_find_data_bounds ... ok
[INFO] [stdout] test domain::services::evaluator::tests::adjust_preserves_sheet_qualified_refs ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_invalid_csv ... ok
[INFO] [stdout] test domain::services::csv::tests::agent4_csv_export_includes_formula_only_cells ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_sum_error_propagation_probe ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_bug_probes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_date_rollover_probe ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_numbers ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_import_special_characters ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent2_rename_rejects_duplicate_and_empty ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent1_xlookup_wildcard_probe ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent2_rename_updates_named_ranges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent2_rename_skips_string_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_delete_makes_targeted_ref_a_ref_error ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_roundtrip ... ok
[INFO] [stdout] test domain::services::evaluator::tests::concat_with_get_handles_both_states ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent4_workbook_load_clamps_active_sheet ... ok
[INFO] [stdout] test domain::services::csv::tests::test_csv_export_sparse_data ... ok
[INFO] [stdout] test domain::services::evaluator::tests::agent4_workbook_load_pads_sheet_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::format_sheet_name_quotes_digit_prefixed_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_updates_named_ranges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::empty_sheets_load_preserves_named_ranges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_shifts_qualified_refs ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_preserves_quoted_sheet_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_quotes_digit_prefixed_sheet ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_returns_cached_value ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_cache_miss_enqueues_and_returns_loading_sentinel ... ok
[INFO] [stdout] test domain::services::evaluator::tests::migrate_workbook_json_rejects_future_version ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_returns_value_error_on_cached_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::migrate_workbook_json_rejects_non_integer_version ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_returns_loading_sentinel_while_in_flight ... ok
[INFO] [stdout] test domain::services::evaluator::tests::migrate_workbook_json_stamps_current_version ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_with_cell_reference_resolves_url_through_cache ... ok
[INFO] [stdout] test domain::services::evaluator::tests::get_with_blocked_url_returns_value_error_without_enqueueing ... ok
[INFO] [stdout] test domain::services::evaluator::tests::iferror_traps_get_error_with_fallback ... ok
[INFO] [stdout] test domain::services::evaluator::tests::cross_sheet_row_insert_adjusts_self_qualified_active_refs ... ok
[INFO] [stdout] test domain::services::evaluator::tests::nested_string_fn_over_loading_get_sees_loading_string ... ok
[INFO] [stdout] test domain::services::evaluator::tests::nested_string_fn_over_cached_get_returns_real_length ... ok
[INFO] [stdout] test domain::services::evaluator::tests::string_literal_ref_does_not_trigger_collapse ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_absolute_references_preserved_on_autofill ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_absolute_reference_parses ... ok
[INFO] [stdout] test domain::services::evaluator::tests::ref_marker_evaluates_as_ref_error_not_ugly_string ... ok
[INFO] [stdout] test domain::services::evaluator::tests::remove_sheet_rewrites_dangling_refs_to_ref_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_complex ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_edge_cases ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_vertical ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_array_literal_ref_extraction ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_diagonal ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_adjust_formula_references_horizontal ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_array_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_array_broadcasting ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cell_arithmetic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_circular_reference_detection ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_case_insensitive_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_average_function ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_complex_expressions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_comparison_operators ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_convergent_iterative_calc_lands_on_fixed_point ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cell_references ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_change_cascades_same_sheet_dependents ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_date_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_cell_ref ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_datedif ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_csv_import_rebuilds_unified_graph ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_range ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_cross_sheet_cycle_converges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_decimal_precision ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_dep_graph_set_prereqs_replaces_edges ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_datedif_md_borrows_from_previous_month ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_dollar_and_fixed ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_error_cases ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_edate_eomonth_weekday ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_extract_cell_references_from_ast ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_divergent_iterative_calc_marks_num_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_formula_to_value_transition_drops_unified_graph_state ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_financial_pmt ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_if_function ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_if_with_strings ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_ifs_switch_xor ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_incremental_purity_classification_updates_on_edit ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_hlookup_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_get_function_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_indirect_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_index_and_match ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_indirect_picks_up_target_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_get_function_invalid_url_empty ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_function_purity_classification ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_function_purity_predicates ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_lambda_helpers ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_iterative_calc_non_convergent_returns_err ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_let_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_named_ranges_in_formula ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_negative_numbers ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_min_max_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_non_convergence_surfaces_to_status_message ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_non_formula_passthrough ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_now_outside_recalc_uses_system_time ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_now_consistent_within_recalc_pass ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_now_cells_stay_in_sync_across_edits ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_offset_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_batch_undo_redo_chain_is_correct ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_offset_picks_up_target_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_offset_returns_ref_error_out_of_bounds ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_quoted_sheet_name ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_invokes_spill ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_handles_dirty_for_removed_sheet ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_range_parsing ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_large_numbers ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_lambda_stored_in_named_range ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_parallel_executor_now_consistent ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sheet_id_allocation_monotonic_no_reuse ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_propagates_through_levels ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_logical_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_remove_sheet_purges_dep_graph ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_recalc_via_graph_no_op_when_clean ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sheet_rename_rewrites_formulas ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_row_insert_relocates_volatile_structural_purity_key ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sequence_and_sort_unique ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sheet_rename_with_quoted_name ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_smart_auto_seed_skips_when_targets_disjoint_from_closure ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_regex_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_smart_auto_seed_still_picks_up_target_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_2d_array_literal ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_concatenation ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_clears_old_ghosts_when_anchor_changes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_cell_references ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_collision_emits_spill_error ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_spill_sequence ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_stats_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_simple_arithmetic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_equality ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sum_function ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_function_errors ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_three_d_range ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_three_d_range_quoted_names ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_structural_targets_cleared_on_formula_edit ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_string_functions ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_true_false_literals ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_textjoin_and_textbefore ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sumproduct_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_today_consistent_within_recalc_pass ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_sumif_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_table_structured_ref ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_vlookup_multi_column ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_typed_errors_and_trapping ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_whitespace_handling ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_volatile_structural_targets_recorded_after_eval ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_cell_purity_cache_populated ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_graph_captures_same_and_cross_sheet_deps ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workdays_and_datevalue ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_graph_topo_levels_seeded_at_root ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_xlookup_basic ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_workbook_mutations_trigger_unified_recalc ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_xlookup_wildcard_and_reverse ... ok
[INFO] [stdout] test domain::services::evaluator::tests::workbook_load_defaults_missing_version_to_1 ... ok
[INFO] [stdout] test domain::services::evaluator::tests::test_xlookup_match_modes ... ok
[INFO] [stdout] test domain::services::evaluator::tests::workbook_load_rejects_future_version ... ok
[INFO] [stdout] test domain::services::executor::tests::empty_plan_is_noop ... ok
[INFO] [stdout] test domain::services::executor::tests::parallel_below_threshold_falls_through_to_sequential ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::allows_public_hostnames ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::allows_public_ips ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_cgnat ... ok
[INFO] [stdout] test domain::services::executor::tests::recalc_context_captures_clock ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_ipv4_mapped_v6 ... ok
[INFO] [stdout] test domain::services::executor::tests::parallel_handles_structural_volatile ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_ipv6_zone_ids ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_link_local_v4 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_link_local_v6 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_localhost_name ... ok
[INFO] [stdout] test domain::services::executor::tests::sequential_executor_propagates_through_levels ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_loopback_v4 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_loopback_v6 ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_non_http_schemes ... ok
[INFO] [stdout] test infrastructure::fetcher::tests::blocks_private_v4 ... ok
[INFO] [stdout] test domain::services::executor::tests::snapshot_updates_between_levels_for_deep_chain ... ok
[INFO] [stdout] test domain::services::executor::tests::parallel_matches_sequential ... ok
[INFO] [stdout] test domain::services::evaluator::tests::unary_minus_propagates_error_literal ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_load_valid_json_wrong_format ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_load_nonexistent_file ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_invalid_path ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_load_invalid_json ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_and_load_roundtrip ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_json_format_structure ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::strip_xlfn_prefix ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_load_workbook_roundtrip ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_opens_with_openpyxl ... ignored, requires python3 + openpyxl; run with `cargo test --release xlsx_opens_with_openpyxl -- --ignored`
[INFO] [stdout] test infrastructure::persistence::tests::test_load_workbook_from_old_spreadsheet_format ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_empty_spreadsheet ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_custom_dimensions ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::preserves_non_xlfn ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::preserves_utf8 ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::strips_compound_prefix ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::strips_lower_and_upper ... ok
[INFO] [stdout] test infrastructure::xlsx::xlfn_tests::strips_mixed_case ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_confirm_n_cancels ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_with_special_characters ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_confirm_y_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_e_no_arg_opens_loadfile ... ok
[INFO] [stdout] test infrastructure::persistence::tests::test_save_large_spreadsheet ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_roundtrip_named_ranges ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_archive_has_expected_parts ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_writes_styled_cells_without_panic ... ok
[INFO] [stdout] test infrastructure::xlsx::tests::xlsx_roundtrip_basic ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_q_with_trailing_space ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_qbang_forces_quit ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_q_clean_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_q_with_leading_space ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_uppercase_q_works ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_q_dirty_enters_confirm_discard ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_e_with_filename_loads_file ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_w_no_filename_opens_saveas ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_q_clean_quits_immediately ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_confirm_s_saves_and_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_palette_uppercase_wq_works ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_wq_no_filename_opens_saveas_no_quit ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_wqbang_force_quits_even_when_save_deferred ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_xbang_force_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::test_command_palette_escape_cancels ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::test_import_csv_filename_input ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_grammar_c_on_empty_cell_still_enters_editing ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_grammar_cj_enters_editing_at_topleft ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_grammar_ck_enters_editing_at_top_of_range ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_A_cursor_at_end ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_I_cursor_at_start ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_O_shifts_existing_rows_down ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_O_at_row_zero_inserts_above ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_a_cursor_position_on_existing_cell ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_w_with_filename_saves_and_sets_filename ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_i_cursor_position_on_existing_cell ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_S_clears_row_and_restores_undo ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_wq_with_filename_saves_and_quits ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_multibyte_cursor_is_char_based ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_i_and_a_differ ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_then_enter_keeps_row ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_grows_sheet_rows_when_at_last_row ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_then_esc_rolls_back_row ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_x_with_filename_saves_and_quits ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_w_then_q_quits ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_s_on_empty_cell_records_no_undo ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_spill_anchor_blocks_editing ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_tab_finishes_and_moves_right ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_s_clears_cell_and_enters_editing ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_o_then_text_then_esc_also_rolls_back_row ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_s_then_esc_does_not_restore_cell ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_A_enters_insert_at_end ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_type_text_then_enter_saves_and_moves_down ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_type_text_then_esc_discards ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_open_row_flag_does_not_leak_to_next_edit ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_ctrl_h_no_longer_starts_find_replace ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_ctrl_i_no_longer_starts_csv_import ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_i_enters_insert_mode ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_confirm_discard_status_message_set_by_request_quit ... ok
[INFO] [stdout] test presentation::input::editing::tests::test_tab_in_editing_finishes_and_moves_right ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_d0_deletes_from_row_start_to_cursor ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_5dj_count_applies_to_motion ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_count_does_not_leak_past_motion_into_next_command ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_3yy_then_p_pastes_three_rows_below ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_d_dollar_deletes_to_row_end ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_5dd_clears_five_rows ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dh_at_left_edge_no_panic ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dG_deletes_rows_to_bottom_data ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dgg_deletes_rows_up_to_top_all_columns ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dj_deletes_two_cells_in_column ... ok
[INFO] [stdout] test presentation::input::dialogs::tests::agent_quit_e_with_filename_when_other_open ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dk_at_top_no_panic_clears_only_current_cell ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dk_deletes_two_cells_upward ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_dl_deletes_horizontal_range ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_esc_after_5d_then_j_moves_one ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_grammar_yj_clipboard_two_rows_one_col ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_5d_5dg_5dgg_fires_action ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_help_mode_esc_exits_to_normal ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_g_alone_then_unrelated_key_falls_through ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_status_message_preserved_under_pending_count ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_status_message_survives_motion_until_context_switch ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_yank_status_message_keeps_normal_mode ... ok
[INFO] [stdout] test presentation::input::normal::tests::esc_after_d_then_y_does_not_inherit_delete ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_count_state_after_5 ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_count_cleared_by_ctrl_b ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_d_then_ctrl_s_clears_pending_op ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_pending_d_then_question_opens_help ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_backtab_moves_left_in_normal_mode ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_colon_q_bang_force_quits ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_colon_q_quits ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_colon_starts_command_palette ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_csv_export_key_binding ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_csv_import_alternative_key_binding ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_count_with_dd ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_c_copies ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_g_starts_goto ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_b_toggles_bold ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_command_palette_mode_typing_and_execute ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_r_redoes ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_dd_deletes_row ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_dollar_motion_to_last_data_in_row ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_esc_clears_pending_op ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_x_cuts ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_find_replace_mode_escape_exits ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_ctrl_u_toggles_underline ... ok
[INFO] [stdout] test presentation::input::normal::tests::agent_help_mode_q_exits_to_normal ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_G_with_count_jumps_to_row ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_count_prefix_motion ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_find_replace_mode_tab_toggles_fields ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_gg_jumps_to_top ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_h_j_k_l_navigation ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_o_opens_row_below ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_p_pastes_after_yank ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_page_up ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_q_prompts_when_dirty ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_q_quits_when_clean ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_s_substitutes_cell ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_shift_s_substitutes_row ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_sort_via_command_palette ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_tab_moves_right_in_normal_mode ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_u_undoes ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_zero_motion_to_first_col ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_pending_count_in_visual_then_5j_clears_count ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_insert_i_in_visual_mode_does_not_enter_editing ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_mode_chip_cycles_normal_insert_visual_command_search_help ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_pending_d_then_v_cancels_pending_and_enters_visual ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_quit_q_in_visual_mode_is_noop ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_x_deletes_current_cell ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_block_motion_makes_rectangular_selection ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_G_extends_to_bottom_data ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_yy_then_p_pastes_row_below ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_count_zero_dollar_motion ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_ctrl_v_swaps_to_block ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_ctrl_c_copies_and_exits ... ok
[INFO] [stdout] test presentation::input::normal::tests::test_page_down ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_ctrl_x_cuts_and_exits ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_d_deletes_selection_and_exits ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_count_5j_extends_5_rows ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_enter_cell_anchors_selection ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_d_on_empty_selection_undo_invariant ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_enter_block_anchors_at_cursor ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_c_deletes_and_enters_editing_at_top_left ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_cross_sheet_paste ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_esc_exits_and_clears_selection ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_enter_row_spans_full_row ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_esc_invokes_dismiss_transients ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_gg_extends_to_top ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_kinds_all_distinct_via_input_drivers ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_large_range_scrolls_with_cursor ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_op_clears_vim_pending_state ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_row_mode_d_clears_full_row ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_p_paste_replaces_selection_and_exits ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_row_motion_snaps_full_row_width ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_row_ignores_h_and_l ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_switch_row_to_cell_via_v ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_v_toggles_out_to_normal ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_switch_cell_to_row_via_V ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_v3jl_produces_4x2_selection ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_single_row_sheet_extension ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_y_yanks_and_exits_to_normal ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_status_bar_shows_stats ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_ctrl_v_enters_visual_block ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_v_enters_visual ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_visual_motion_extends_then_d ... ok
[INFO] [stdout] test presentation::ui::help_tests::agent_vim_pending_format ... ok
[INFO] [stdout] test presentation::input::visual::tests::agent_visual_x_deletes_selection_and_exits ... ok
[INFO] [stdout] test presentation::ui::help_tests::help_search_finds_known_token ... ok
[INFO] [stdout] test presentation::ui::help_tests::help_search_wraps_when_no_match_below ... ok
[INFO] [stdout] test presentation::input::visual::tests::test_V_enters_visual_line ... ok
[INFO] [stdout] test presentation::ui::help_tests::each_section_anchor_exists ... ok
[INFO] [stdout] test presentation::ui::help_tests::agent_mode_label_exhaustive_nonempty ... ok
[INFO] [stdout] test presentation::ui::help_tests::help_section_offset_returns_valid_line ... ok
[INFO] [stdout] test presentation::input::editing::tests::agent_insert_repeated_o_grows_sheet ... ok
[INFO] [stdout] test domain::services::executor::tests::property_parallel_matches_sequential_random_workbooks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 602 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.93s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pty_advanced.rs (/opt/rustwide/target/debug/deps/pty_advanced-aa7e4aa29581c194)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test adv_f5_recalculates_formulas ... ok
[INFO] [stdout] test adv_freeze_then_scroll_far_down ... ok
[INFO] [stdout] test adv_conditional_format_command_runs ... ok
[INFO] [stdout] test adv_filter_hides_non_matching_rows ... FAILED
[INFO] [stdout] test adv_comment_shows_in_status_bar ... ok
[INFO] [stdout] test adv_goal_seek_finds_solution ... ok
[INFO] [stdout] test adv_cross_sheet_reference_resolves ... ok
[INFO] [stdout] test adv_recalc_does_not_crash ... ok
[INFO] [stdout] test adv_hide_col_then_show ... ok
[INFO] [stdout] test adv_hide_row_then_show ... ok
[INFO] [stdout] test common::scenarios::parse_tests::abs_cell_anchors_both_parts ... ok
[INFO] [stdout] test adv_chart_reflects_source_data_change ... ok
[INFO] [stdout] test common::scenarios::parse_tests::parse_sum_handles_integer ... ok
[INFO] [stdout] test common::scenarios::parse_tests::abs_range_anchors_both_endpoints ... ok
[INFO] [stdout] test common::scenarios::parse_tests::parse_sum_handles_negative ... ok
[INFO] [stdout] test common::scenarios::parse_tests::parse_sum_handles_normal_output ... ok
[INFO] [stdout] test common::scenarios::parse_tests::parse_sum_missing_returns_err ... ok
[INFO] [stdout] test adv_lambda_named_callable ... ok
[INFO] [stdout] test adv_named_range_resolves_in_formula ... ok
[INFO] [stdout] test adv_url_value_displayed ... ok
[INFO] [stdout] test adv_search_inside_help_with_n_cycles_matches ... ok
[INFO] [stdout] test adv_rename_sheet_updates_cross_sheet_refs ... ok
[INFO] [stdout] test adv_many_edits_then_many_undos ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- adv_filter_hides_non_matching_rows stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'adv_filter_hides_non_matching_rows' (6414) panicked at tests/pty_advanced.rs:75:7:
[INFO] [stdout] Expected screen NOT to contain "beta". Current screen:
[INFO] [stdout] tshts * | [Sheet1]                                                                                                      
[INFO] [stdout]   Sheet1
[INFO] [stdout]   A4 │                                                                                                                  
[INFO] [stdout] ┌Spreadsheet───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
[INFO] [stdout] │     A        B        C        D        E        F        G        H        I        J        K        L             │
[INFO] [stdout] │1    alpha                                                                                                            │
[INFO] [stdout] │2    beta                                                                                                             │
[INFO] [stdout] │3    alpha                                                                                                            │
[INFO] [stdout] │4                                                                                                                     │
[INFO] [stdout] │5                                                                                                                     │
[INFO] [stdout] │6                                                                                                                     │
[INFO] [stdout] │7                                                                                                                     │
[INFO] [stdout] │8                                                                                                                     │
[INFO] [stdout] │9                                                                                                                     │
[INFO] [stdout] │10                                                                                                                    │
[INFO] [stdout] │11                                                                                                                    │
[INFO] [stdout] │12                                                                                                                    │
[INFO] [stdout] │13                                                                                                                    │
[INFO] [stdout] │14                                                                                                                    │
[INFO] [stdout] │15                                                                                                                    │
[INFO] [stdout] │16                                                                                                                    │
[INFO] [stdout] │17                                                                                                                    │
[INFO] [stdout] │18                                                                                                                    │
[INFO] [stdout] │19                                                                                                                    │
[INFO] [stdout] ┌:suggestions──────┐                                                                                                   │
[INFO] [stdout] │filter            │                                                                                                   │
[INFO] [stdout] └──────────────────┘───────────────────────────────────────────────────────────────────────────────────────────────────┘
[INFO] [stdout] ┌Status────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
[INFO] [stdout] │-- COMMAND -- :fi▁ (Enter execute · Esc cancel)                                                                       │
[INFO] [stdout] └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56e0141d4381 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56e0141d4381 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56e0141d4381 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56e0141d4381 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56e0141ea20a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56e0141ea20a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x56e0141d948c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x56e0141d948c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x56e0141b1696 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56e0141b1696 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56e0141cc1f9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56e0141231a0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x56e0141231a0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56e0141cc3b2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x56e0141cc3b2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x56e0141b1742 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x56e0141a8a39 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56e0141b244d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x56e0141eaa0c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56e0140f01a1 - <pty_advanced[bfcf786c9eefdb0]::common::Harness>::assert_absent
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/common/mod.rs:331:13
[INFO] [stdout]   20:     0x56e0140ef45d - pty_advanced[bfcf786c9eefdb0]::adv_filter_hides_non_matching_rows
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/pty_advanced.rs:75:7
[INFO] [stdout]   21:     0x56e0140ed947 - pty_advanced[bfcf786c9eefdb0]::adv_filter_hides_non_matching_rows::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/pty_advanced.rs:67:40
[INFO] [stdout]   22:     0x56e0140fa316 - <pty_advanced[bfcf786c9eefdb0]::adv_filter_hides_non_matching_rows::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x56e0141164db - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x56e0141164db - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x56e014123b25 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x56e014123b25 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x56e014123b25 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   28:     0x56e014123b25 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x56e014123b25 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x56e014123b25 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x56e014123b25 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x56e01411e5d4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x56e01411e5d4 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x56e014126c72 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x56e014126c72 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x56e014126c72 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   37:     0x56e014126c72 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x56e014126c72 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x56e014126c72 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x56e014126c72 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x56e0141d3c0f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   42:     0x56e0141d3c0f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   43:     0x740add169aa4 - <unknown>
[INFO] [stdout]   44:     0x740add1f6a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     adv_filter_hides_non_matching_rows
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 22 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.98s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test pty_advanced`
[INFO] running `Command { std: "docker" "inspect" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82", kill_on_drop: false }`
[INFO] [stdout] eed7228ca205ee9ad884d77cbfdf8c014738e851988e13b23a53f19b3140eb82
