[INFO] cloning repository https://github.com/HenrySchlesinger/poker-solver
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HenrySchlesinger/poker-solver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHenrySchlesinger%2Fpoker-solver", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHenrySchlesinger%2Fpoker-solver'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7bcdcbc8454053cbcc41f06ccd2232bf735c09da
[INFO] testing HenrySchlesinger/poker-solver against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHenrySchlesinger%2Fpoker-solver" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/HenrySchlesinger/poker-solver
[INFO] finished tweaking git repo https://github.com/HenrySchlesinger/poker-solver
[INFO] tweaked toml for git repo https://github.com/HenrySchlesinger/poker-solver written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/HenrySchlesinger/poker-solver on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/HenrySchlesinger/poker-solver 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rs_poker v4.1.0
[INFO] [stderr]   Downloaded cbindgen v0.26.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5145fd987c7a273cc8041e8d225420a912cbcd65cbab194deeacf7f4dca2a626
[INFO] running `Command { std: "docker" "start" "-a" "5145fd987c7a273cc8041e8d225420a912cbcd65cbab194deeacf7f4dca2a626", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5145fd987c7a273cc8041e8d225420a912cbcd65cbab194deeacf7f4dca2a626", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5145fd987c7a273cc8041e8d225420a912cbcd65cbab194deeacf7f4dca2a626", kill_on_drop: false }`
[INFO] [stdout] 5145fd987c7a273cc8041e8d225420a912cbcd65cbab194deeacf7f4dca2a626
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 381c8b2c408e03eb9b7121796bfda61bcfa986cf0e59e3b66f108cf9ea29c9c3
[INFO] running `Command { std: "docker" "start" "-a" "381c8b2c408e03eb9b7121796bfda61bcfa986cf0e59e3b66f108cf9ea29c9c3", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling os_str_bytes v6.6.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling cbindgen v0.26.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling solver-core v0.1.0 (/opt/rustwide/workdir/crates/solver-core)
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling clap v3.2.25
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_xoshiro v0.6.0
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rs_poker v4.1.0
[INFO] [stderr]    Compiling solver-eval v0.1.0 (/opt/rustwide/workdir/crates/solver-eval)
[INFO] [stderr]    Compiling solver-eval-reference v0.1.0 (/opt/rustwide/workdir/crates/solver-eval-reference)
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling solver-ffi v0.1.0 (/opt/rustwide/workdir/crates/solver-ffi)
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling solver-nlhe v0.1.0 (/opt/rustwide/workdir/crates/solver-nlhe)
[INFO] [stderr]    Compiling solver-cli v0.1.0 (/opt/rustwide/workdir/crates/solver-cli)
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 4m 02s
[INFO] running `Command { std: "docker" "inspect" "381c8b2c408e03eb9b7121796bfda61bcfa986cf0e59e3b66f108cf9ea29c9c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "381c8b2c408e03eb9b7121796bfda61bcfa986cf0e59e3b66f108cf9ea29c9c3", kill_on_drop: false }`
[INFO] [stdout] 381c8b2c408e03eb9b7121796bfda61bcfa986cf0e59e3b66f108cf9ea29c9c3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ba037393e450ba53ef5570051bbf12d418894498ad4657a9a48d3839c14db6c9
[INFO] running `Command { std: "docker" "start" "-a" "ba037393e450ba53ef5570051bbf12d418894498ad4657a9a48d3839c14db6c9", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling rand_xoshiro v0.6.0
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling clap v3.2.25
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling cbindgen v0.26.0
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rs_poker v4.1.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling solver-eval v0.1.0 (/opt/rustwide/workdir/crates/solver-eval)
[INFO] [stderr]    Compiling solver-core v0.1.0 (/opt/rustwide/workdir/crates/solver-core)
[INFO] [stderr]    Compiling solver-eval-reference v0.1.0 (/opt/rustwide/workdir/crates/solver-eval-reference)
[INFO] [stderr]    Compiling solver-ffi v0.1.0 (/opt/rustwide/workdir/crates/solver-ffi)
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling solver-nlhe v0.1.0 (/opt/rustwide/workdir/crates/solver-nlhe)
[INFO] [stderr]    Compiling solver-cli v0.1.0 (/opt/rustwide/workdir/crates/solver-cli)
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 3m 30s
[INFO] running `Command { std: "docker" "inspect" "ba037393e450ba53ef5570051bbf12d418894498ad4657a9a48d3839c14db6c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba037393e450ba53ef5570051bbf12d418894498ad4657a9a48d3839c14db6c9", kill_on_drop: false }`
[INFO] [stdout] ba037393e450ba53ef5570051bbf12d418894498ad4657a9a48d3839c14db6c9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] df92f0ae7dbf6ba3f4f23b56dff325e43e14a5a30c721c1ff69c8a0464295c8d
[INFO] running `Command { std: "docker" "start" "-a" "df92f0ae7dbf6ba3f4f23b56dff325e43e14a5a30c721c1ff69c8a0464295c8d", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/solver_cli-e49f0d9d0e47ee55)
[INFO] [stdout] 
[INFO] [stdout] running 77 tests
[INFO] [stdout] test demo::tests::bar_for_half_is_half_filled ... ok
[INFO] [stdout] test demo::tests::bluff_catch_renders_without_error ... ok
[INFO] [stdout] test demo::tests::section_rule_is_banner_width ... ok
[INFO] [stdout] test demo::tests::bar_for_zero_is_all_empty ... ok
[INFO] [stdout] test demo::tests::coinflip_renders_without_error ... ok
[INFO] [stdout] test demo::tests::bar_for_one_is_all_filled ... ok
[INFO] [stdout] test demo::tests::soft_wrap_handles_basic_paragraph ... ok
[INFO] [stdout] test demo::tests::all_renders_every_spot ... ok
[INFO] [stdout] test demo::tests::unknown_spot_errors_with_valid_list ... ok
[INFO] [stdout] test demo_spots::tests::frequencies_are_in_unit_interval ... ok
[INFO] [stdout] test demo_spots::tests::narration_is_nonempty_and_multisentence ... ok
[INFO] [stdout] test demo_spots::tests::unknown_spot_returns_none ... ok
[INFO] [stdout] test demo_spots::tests::action_frequencies_sum_to_one ... ok
[INFO] [stdout] test demo_spots::tests::bluff_catch_accepts_kebab_case_alias ... ok
[INFO] [stdout] test demo_spots::tests::every_spot_is_findable_by_id ... ok
[INFO] [stdout] test md_to_ipynb::tests::classify_line_smoke ... ok
[INFO] [stdout] test md_to_ipynb::tests::emit_notebook_shape_is_valid_v45 ... ok
[INFO] [stdout] test md_to_ipynb::tests::parse_bash_cell ... ok
[INFO] [stdout] test md_to_ipynb::tests::parse_multiple_cells_with_prose_between ... ok
[INFO] [stdout] test md_to_ipynb::tests::parse_rejects_unclosed_fence ... ok
[INFO] [stdout] test md_to_ipynb::tests::parse_single_code_cell ... ok
[INFO] [stdout] test md_to_ipynb::tests::round_trip_our_actual_plan_shape ... ok
[INFO] [stdout] test md_to_ipynb::tests::text_to_source_lines_splits_correctly ... ok
[INFO] [stdout] test md_to_ipynb::tests::trailing_bash_fence_stays_in_markdown ... ok
[INFO] [stdout] test demo::tests::no_color_output_contains_no_ansi_escapes ... ok
[INFO] [stdout] test demo::tests::render_is_deterministic ... ok
[INFO] [stdout] test md_to_ipynb::tests::validate_rejects_bad_nbformat_version ... ok
[INFO] [stdout] test md_to_ipynb::tests::validate_rejects_code_cell_missing_outputs ... ok
[INFO] [stdout] test md_to_ipynb::tests::validate_rejects_missing_cell_id ... ok
[INFO] [stdout] test seed_cache::tests::classify_texture_known_boards ... ok
[INFO] [stdout] test md_to_ipynb::tests::cell_header_title_parses ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_accepts_multiword_ranges_with_whitespace ... ok
[INFO] [stdout] test demo::tests::format_duration_picks_readable_unit ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_accepts_preflop_empty_board ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_rejects_zero_pot ... ok
[INFO] [stdout] test demo::tests::royal_renders_without_error ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_rejects_bad_hero_range ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_rejects_bad_board ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_rejects_unknown_bet_tree ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_rejects_bad_villain_range ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_rejects_zero_iterations ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_accepts_happy_path ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_accepts_zero_stack ... ok
[INFO] [stdout] test seed_cache::tests::seed_writes_and_roundtrips ... ok
[INFO] [stdout] test seed_cache::tests::strategy_probabilities_sum_to_one ... ok
[INFO] [stdout] test seed_cache::tests::grid_keys_are_unique ... ok
[INFO] [stdout] test solve_cmd::tests::parse_inputs_accepts_turn_and_river_boards ... ok
[INFO] [stdout] test solve_cmd::tests::solver_kind_parses_known_values ... ok
[INFO] [stdout] test solve_cmd::tests::solver_kind_rejects_unknown_values ... ok
[INFO] [stdout] test seed_cache::tests::every_entry_has_two_actions ... ok
[INFO] [stdout] test translate::tests::bad_street_rejects ... ok
[INFO] [stdout] test translate::tests::missing_required_field_rejects ... ok
[INFO] [stdout] test translate::tests::normalize_expands_offsuit_plus ... ok
[INFO] [stdout] test translate::tests::normalize_expands_pair_plus ... ok
[INFO] [stdout] test translate::tests::flop_fixture_emits_all_three_streets ... ok
[INFO] [stdout] test translate::tests::normalize_expands_pair_minus ... ok
[INFO] [stdout] test translate::tests::normalize_expands_pair_range_inclusive ... ok
[INFO] [stdout] test translate::tests::format_board_csv_flop ... ok
[INFO] [stdout] test translate::tests::format_board_csv_rejects_odd_length ... ok
[INFO] [stdout] test translate::tests::normalize_passes_through_length_2_and_3 ... ok
[INFO] [stdout] test translate::tests::normalize_tolerates_trailing_comma_and_whitespace ... ok
[INFO] [stdout] test translate::tests::normalize_preserves_weight_suffix ... ok
[INFO] [stdout] test translate::tests::normalize_expands_suited_plus ... ok
[INFO] [stdout] test translate::tests::normalize_rejects_bad_token ... ok
[INFO] [stdout] test translate::tests::emitted_config_ends_with_newline ... ok
[INFO] [stdout] test translate::tests::river_fixture_omits_flop_and_turn_bet_sizes ... ok
[INFO] [stdout] test seed_cache::tests::grid_has_expected_size ... ok
[INFO] [stdout] test solve_cmd::tests::run_solve_rejects_non_river_board_with_readable_error ... ok
[INFO] [stdout] test translate::tests::strip_whitespace_helper ... ok
[INFO] [stdout] test translate::tests::turn_fixture_emits_turn_and_river_only ... ok
[INFO] [stdout] test translate::tests::no_comment_lines_emitted ... ok
[INFO] [stdout] test translate::tests::target_format_parse ... ok
[INFO] [stdout] test translate::tests::non_object_fixture_rejects ... ok
[INFO] [stdout] test translate::tests::unknown_bet_tree_rejects ... ok
[INFO] [stdout] test solve_cmd::tests::run_solve_classic_solver_still_works ... ok
[INFO] [stdout] test solve_cmd::tests::run_solve_produces_json_on_river_spot ... ok
[INFO] [stdout] test solve_cmd::tests::run_solve_produces_json_with_positive_stack ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 77 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-29ba0c82b67fcf8f)
[INFO] [stdout] test solve_help_shows_expected_args ... ok
[INFO] [stdout] test help_shows_all_three_subcommands ... ok
[INFO] [stdout] test solve_produces_valid_json_end_to_end ... ok
[INFO] [stdout] test solve_with_bad_board_exits_nonzero_with_useful_error ... ok
[INFO] [stdout] test precompute_is_scaffolded_not_yet_implemented ... ok
[INFO] [stdout] test validate_is_scaffolded_not_yet_implemented ... ok
[INFO] [stderr]      Running tests/e2e_integration.rs (/opt/rustwide/target/debug/deps/e2e_integration-b79e92de76c7029d)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fixtures_parse.rs (/opt/rustwide/target/debug/deps/fixtures_parse-59777cfdca8be2e9)
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test end_to_end ... ignored, requires target/release/solver-cli on disk — run via scripts/e2e.sh
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test twenty_canonical_fixtures_exist ... ok
[INFO] [stdout] test every_fixture_parses_and_validates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/texassolver_diff.rs (/opt/rustwide/target/debug/deps/texassolver_diff-467c55aa85f27705)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test texassolver_diff ... ignored, heavyweight: requires ./bin/texassolver via install-texassolver.sh
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/translate_fixture.rs (/opt/rustwide/target/debug/deps/translate_fixture-92ea4d699a009d74)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test translate_with_empty_villain_range_passes_through ... ok
[INFO] [stdout] test output_dash_writes_to_stdout ... ok
[INFO] [stdout] test translate_3bet_pot_flop_fixture_preserves_fields ... ok
[INFO] [stdout] test translate_fixture_help_shows_flags ... ok
[INFO] [stdout] test translate_river_fixture_emits_river_only ... ok
[INFO] [stdout] test translate_flop_fixture_emits_all_streets ... ok
[INFO] [stdout] test help_shows_translate_fixture_subcommand ... ok
[INFO] [stdout] test unknown_format_fails_cleanly ... ok
[INFO] [stdout] test unknown_bet_tree_preset_fails_cleanly ... ok
[INFO] [stdout] test malformed_json_fails_with_useful_message ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solver_core-2be1c812269cee98)
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test matching::tests::all_negative_regrets_is_uniform ... ok
[INFO] [stdout] test matching::tests::mixed_positive_regrets_normalize ... ok
[INFO] [stdout] test matching::tests::one_positive_others_zero_is_pure ... ok
[INFO] [stdout] test matching::tests::one_positive_regret_is_pure ... ok
[INFO] [stdout] test matching::tests::output_is_probability_distribution ... ok
[INFO] [stdout] test matching_simd::tests::all_negative_uniform_simd ... ok
[INFO] [stdout] test matching::tests::all_zero_regrets_is_uniform ... ok
[INFO] [stdout] test matching_simd::tests::length_eight_hits_simd_path ... ok
[INFO] [stdout] test matching_simd::tests::length_nine_hits_tail_path ... ok
[INFO] [stdout] test matching_simd::tests::tiny_input_matches_scalar ... ok
[INFO] [stdout] test matching_simd::tests::vector_all_negative_is_uniform ... ok
[INFO] [stdout] test matching_simd::tests::vector_matches_scalar_per_lane_small ... ok
[INFO] [stdout] test matching_simd::tests::vector_pure_strategy_when_one_action_positive_per_lane ... ok
[INFO] [stdout] test mccfr::tests::mccfr_different_seeds_diverge_in_finite_iters ... ok
[INFO] [stdout] test tables::tests::empty_table_reports_empty ... ok
[INFO] [stdout] test matching_simd::tests::vector_matches_scalar_per_lane_nlhe_scale ... ok
[INFO] [stdout] test mccfr::tests::mccfr_is_deterministic_for_fixed_seed ... ok
[INFO] [stdout] test tables::tests::stride_and_len_reflect_construction ... ok
[INFO] [stdout] test tables::tests::new_zero_inits_all_buffers ... ok
[INFO] [stdout] test mccfr::tests::mccfr_converges_on_matching_pennies ... ok
[INFO] [stdout] test matching_simd::tests::vector_sums_to_one_per_lane ... ok
[INFO] [stdout] test tables::tests::writes_land_in_the_correct_slot ... ok
[INFO] [stdout] test mccfr::tests::sample_from_distribution_respects_probabilities ... ok
[INFO] [stdout] test tables::tests::writes_to_each_buffer_are_independent ... ok
[INFO] [stdout] test tables_vector::tests::regret_and_strategy_rows_are_independent ... ok
[INFO] [stdout] test tables_vector::tests::rows_are_contiguous_and_action_sized ... ok
[INFO] [stdout] test tables::tests::regrets_and_current_mut_exposes_both_slices ... ok
[INFO] [stdout] test tables_vector::tests::num_actions_accessors_reflect_descriptors ... ok
[INFO] [stdout] test tables_vector::tests::writes_land_in_the_correct_slot ... ok
[INFO] [stdout] test tables_vector::tests::zero_inits_and_stride_is_correct ... ok
[INFO] [stdout] test matching::tests::mismatched_lengths_panic - should panic ... ok
[INFO] [stdout] test matching_simd::tests::empty_panics - should panic ... ok
[INFO] [stdout] test matching::tests::empty_input_panics - should panic ... ok
[INFO] [stdout] test matching_simd::tests::mismatched_lengths_panic - should panic ... ok
[INFO] [stdout] test tables::tests::zero_max_actions_panics - should panic ... ok
[INFO] [stdout] test tables_vector::tests::duplicate_info_set_id_panics - should panic ... ok
[INFO] [stdout] test tables_vector::tests::empty_descriptors_panics - should panic ... ok
[INFO] [stdout] test tables_vector::tests::zero_combo_width_panics - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/flat_equivalence.rs (/opt/rustwide/target/debug/deps/flat_equivalence-1a09a62dd658d434)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test enumerate_info_sets_matches_hashmap_discovery ... ok
[INFO] [stdout] test flat_converges_on_kuhn ... ok
[INFO] [stdout] test cfr_plus_flat_matches_hashmap_on_kuhn_10k_iters ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/kuhn.rs (/opt/rustwide/target/debug/deps/kuhn-37da4a2872d54ee6)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test cfr_plus_converges_on_kuhn ... ok
[INFO] [stdout] test kuhn_converges_to_known_game_value ... ok
[INFO] [stdout] test kuhn_p1_alpha_is_in_nash_family ... ok
[INFO] [stdout] test kuhn_p2_strategy_matches_nash_constraints ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/proptest_cfr.rs (/opt/rustwide/target/debug/deps/proptest_cfr-a9b7e5f992b9c4ba)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test regret_match_sums_to_one ... ok
[INFO] [stdout] test regret_match_scalar_matches_buffer_form ... ok
[INFO] [stdout] test kuhn_cfr_is_deterministic ... ok
[INFO] [stdout] test kuhn_exploitability_nonneg ... ok
[INFO] [stdout] test kuhn_convergence_sanity ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/simd_equivalence.rs (/opt/rustwide/target/debug/deps/simd_equivalence-11f279e3d0a731dd)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test all_negative_is_uniform ... ok
[INFO] [stdout] test boundary_lengths ... ok
[INFO] [stdout] test all_zeros_is_uniform ... ok
[INFO] [stdout] test large_scale_nlhe_combos ... ok
[INFO] [stdout] test mixed_with_exact_zeros ... ok
[INFO] [stdout] test nan_regrets_treated_as_nonpositive ... ok
[INFO] [stdout] test single_positive_is_pure ... ok
[INFO] [stdout] test output_sums_to_one ... ok
[INFO] [stdout] test property_sweep_random_regrets ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/vector_equivalence.rs (/opt/rustwide/target/debug/deps/vector_equivalence-15fb64e0a12c0f68)
[INFO] [stdout] running 2 tests
[INFO] [stdout] test enumerate_vector_info_sets_kuhn_shape ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solver_eval-317e2c50cd665964)
[INFO] [stdout] test cfr_plus_vector_matches_scalar_on_kuhn_10k_iters ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 86 tests
[INFO] [stdout] test board::tests::flop_constructor_matches_parse ... ok
[INFO] [stdout] test board::tests::empty_board_is_len_zero ... ok
[INFO] [stdout] test board::tests::parse_empty_is_preflop ... ok
[INFO] [stdout] test board::tests::parse_flop_roundtrip ... ok
[INFO] [stdout] test board::tests::parse_rejects_odd_length ... ok
[INFO] [stdout] test board::tests::parse_rejects_six_cards ... ok
[INFO] [stdout] test board::tests::parse_rejects_two_cards ... ok
[INFO] [stdout] test board::tests::parse_case_insensitive ... ok
[INFO] [stdout] test board::tests::parse_rejects_duplicate_card ... ok
[INFO] [stdout] test board::tests::parse_river_roundtrip ... ok
[INFO] [stdout] test board::tests::turn_and_river_constructors_produce_correct_len ... ok
[INFO] [stdout] test board::tests::parse_turn_roundtrip ... ok
[INFO] [stdout] test card::tests::all_52_encodings_are_distinct ... ok
[INFO] [stdout] test card::tests::encoding_matches_spec ... ok
[INFO] [stdout] test card::tests::parse_accepts_both_cases ... ok
[INFO] [stdout] test card::tests::parse_display_roundtrip_all_52 ... ok
[INFO] [stdout] test card::tests::parse_rejects_bad_input ... ok
[INFO] [stdout] test combo::tests::combo_injectivity_over_all_pairs ... ok
[INFO] [stdout] test combo::tests::index_is_symmetric_in_arguments ... ok
[INFO] [stdout] test combo::tests::num_combos_is_1326 ... ok
[INFO] [stdout] test equity::tests::board_mask_basic ... ok
[INFO] [stdout] test equity::tests::available_deck_has_correct_count ... ok
[INFO] [stdout] test equity::tests::hero_villain_share_card_returns_nan ... ok
[INFO] [stdout] test equity::tests::hero_shares_with_board_returns_nan ... ok
[INFO] [stdout] test equity::tests::river_chop_ties_go_half ... ok
[INFO] [stdout] test combo::tests::first_and_last_index_match_spec ... ok
[INFO] [stdout] test board::tests::parse_rejects_one_card ... ok
[INFO] [stdout] test equity::tests::river_quads_beat_full_house ... ok
[INFO] [stdout] test equity::tests::symmetry_sum_is_one_on_river ... ok
[INFO] [stdout] test combo::tests::combo_bijection_over_all_indices ... ok
[INFO] [stdout] test equity::tests::symmetry_win_plus_tie_is_one ... ok
[INFO] [stdout] test equity::tests::range_vs_range_drops_hero_villain_conflict ... ok
[INFO] [stdout] test equity::tests::range_vs_range_drops_board_conflict ... ok
[INFO] [stdout] test equity::tests::villain_shares_with_board_returns_nan ... ok
[INFO] [stdout] test eval::tests::eval_5_matches_eval_7_when_best_5_is_the_hole_plus_flop ... ok
[INFO] [stdout] test eval::tests::flush_beats_straight ... ok
[INFO] [stdout] test eval::tests::full_house_beats_trips ... ok
[INFO] [stdout] test eval::tests::hand_rank_ordering_respects_category ... ok
[INFO] [stdout] test eval::tests::royal_flush_is_top_rank ... ok
[INFO] [stdout] test hand::tests::canonicalization_sorts_higher_first ... ok
[INFO] [stdout] test hand::tests::parse_case_insensitive ... ok
[INFO] [stdout] test hand::tests::parse_rejects_duplicate_card ... ok
[INFO] [stdout] test hand::tests::parse_rejects_short_and_long_strings ... ok
[INFO] [stdout] test hand::tests::parse_roundtrip_ahkd ... ok
[INFO] [stdout] test hand::tests::parse_roundtrip_reverse ... ok
[INFO] [stdout] test hand::tests::pocket_pair_different_suits_ok ... ok
[INFO] [stdout] test iso::tests::already_canonical_stays_the_same ... ok
[INFO] [stdout] test iso::tests::canonical_spot_is_idempotent ... ok
[INFO] [stdout] test iso::tests::combo_index_edges ... ok
[INFO] [stdout] test iso::tests::canonical_spot_preserves_ranks_everywhere ... ok
[INFO] [stdout] test iso::tests::combo_index_roundtrips_all_1326 ... ok
[INFO] [stdout] test iso::tests::empty_preflop_board_is_a_noop ... ok
[INFO] [stdout] test iso::tests::equivalent_boards_canonicalize_to_same_form ... ok
[INFO] [stdout] test iso::tests::idempotent ... ok
[INFO] [stdout] test iso::tests::monotone_flop_canonicalizes_to_all_suit_zero ... ok
[INFO] [stdout] test iso::tests::permuting_suits_preserves_canonical_form ... ok
[INFO] [stdout] test iso::tests::preserves_board_length ... ok
[INFO] [stdout] test iso::tests::preserves_ranks ... ok
[INFO] [stdout] test iso::tests::rainbow_flop_canonicalizes_to_suits_0_1_2_in_order ... ok
[INFO] [stdout] test texture::tests::accessor_roundtrip_matches_packing ... ok
[INFO] [stdout] test texture::tests::aces_trips_rainbow_ace ... ok
[INFO] [stdout] test texture::tests::canonical_flop_table ... ok
[INFO] [stdout] test texture::tests::deterministic ... ok
[INFO] [stdout] test texture::tests::eights_paired_rainbow_low ... ok
[INFO] [stdout] test texture::tests::asksqs_monotone_high_tight_strong_flush_strong_straight ... ok
[INFO] [stdout] test equity::tests::river_full_house_beats_flush ... ok
[INFO] [stdout] test hand::tests::hand_canonicalization_ahkd_eq_kdah ... ok
[INFO] [stdout] test texture::tests::jhth9c_two_tone_high_tight_strong_straight_weak_flush ... ok
[INFO] [stdout] test texture::tests::isomorphic_boards_same_bucket ... ok
[INFO] [stdout] test texture::tests::all_flops_fit_in_u16_with_reserved_bit_zero ... ok
[INFO] [stdout] test texture::tests::empty_board_is_zero ... ok
[INFO] [stdout] test card::tests::rank_suit_extraction_roundtrips ... ok
[INFO] [stdout] test texture::tests::suit_relabel_preserves_texture_when_counts_unchanged ... ok
[INFO] [stdout] test iso::tests::reduction_factor_collapses_22100_flops ... ok
[INFO] [stdout] test texture::tests::low_disconnected_board ... ok
[INFO] [stdout] test texture::tests::low_straight_flush_board ... ok
[INFO] [stdout] test iso::tests::canonical_spot_collapses_suit_relabeling ... ok
[INFO] [stdout] test equity::tests::mc_is_deterministic_for_same_input ... ok
[INFO] [stdout] test texture::tests::permutation_of_flop_gives_same_texture ... ok
[INFO] [stdout] test equity::tests::aa_vs_kk_preflop_hand_vs_hand ... ok
[INFO] [stdout] test equity::tests::twentytwo_vs_aks_is_coin_flip ... ok
[INFO] [stdout] test equity::tests::symmetry_holds_under_mc ... ok
[INFO] [stdout] test equity::tests::range_vs_range_singleton_matches_hand_vs_hand ... ok
[INFO] [stdout] test equity::tests::range_vs_range_two_combo_hero ... ok
[INFO] [stdout] test equity::tests::aa_vs_kk_range_is_8149 ... ok
[INFO] [stdout] test equity::tests::mc_converges_on_aa_vs_kk_range ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 86 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.58s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/differential.rs (/opt/rustwide/target/debug/deps/differential-b3252e668da1cb28)
[INFO] [stdout] running 2 tests
[INFO] [stdout] test eval_7_category_matches_reference_on_random_inputs ... ok
[INFO] [stdout] test eval_7_ordering_matches_reference_on_random_pairs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/equity_goldens.rs (/opt/rustwide/target/debug/deps/equity_goldens-36dead13f51fafdb)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test dead_cards_returns_nan ... ok
[INFO] [stdout] test range_vs_range_filters_all_conflicts ... ok
[INFO] [stdout] test river_quads_beat_two_pair ... ok
[INFO] [stdout] test river_full_house_beats_two_pair ... ok
[INFO] [stdout] test symmetry_sum_is_one_river_spots ... ok
[INFO] [stdout] test twentytwo_vs_aks_preflop_0_5004 ... ok
[INFO] [stdout] test asah_vs_kskh_preflop_0_8267 ... ok
[INFO] [stdout] test aa_vs_kk_range_0_8149 ... ok
[INFO] [stdout] test mc_100k_converges_within_half_percent ... ok
[INFO] [stdout] test qq_vs_ako_range_0_5674 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.84s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/proptest_primitives.rs (/opt/rustwide/target/debug/deps/proptest_primitives-fa84377458c4ee42)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test card_display_parse_roundtrip ... ok
[INFO] [stdout] test hand_higher_card_first ... ok
[INFO] [stdout] test combo_bijection_roundtrip ... ok
[INFO] [stdout] test board_display_parse_roundtrip ... ok
[INFO] [stdout] test hand_new_is_symmetric ... ok
[INFO] [stdout] test combo_index_is_symmetric ... ok
[INFO] [stdout] test eval_7_is_deterministic ... ok
[INFO] [stdout] test equity_symmetry_river_exact ... ok
[INFO] [stdout] test equity_symmetry_flop_mc ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solver_eval_reference-2db85f9749a8156e)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test eval::tests::flush_beats_straight ... ok
[INFO] [stdout] test eval::tests::wheel_straight_is_detected ... ok
[INFO] [stdout] test equity::tests::chop_the_board_gives_tie ... ok
[INFO] [stdout] test eval::tests::full_house_beats_trips ... ok
[INFO] [stdout] test eval::tests::pair_of_aces_kicker_ordering ... ok
[INFO] [stdout] test equity::tests::monte_carlo_agrees_with_exact_on_river ... ok
[INFO] [stdout] test preflop::tests::ak_offsuit ... ok
[INFO] [stdout] test preflop::tests::ak_suited_hearts ... ok
[INFO] [stdout] test preflop::tests::canonical_hands_has_exactly_169_entries ... ok
[INFO] [stdout] test preflop::tests::every_concrete_combo_maps_to_some_canonical_class ... ok
[INFO] [stdout] test preflop::tests::order_is_higher_first_regardless_of_input ... ok
[INFO] [stdout] test preflop::tests::pocket_aces_normalize_to_aa ... ok
[INFO] [stdout] test equity::tests::aces_beat_kings_on_blank_river ... ok
[INFO] [stdout] test showdown::tests::all_equal_returns_all ... ok
[INFO] [stdout] test showdown::tests::empty_input_returns_empty ... ok
[INFO] [stdout] test showdown::tests::single_winner ... ok
[INFO] [stdout] test showdown::tests::three_way_tie_returns_all_three ... ok
[INFO] [stdout] test equity::tests::monte_carlo_determinism ... ok
[INFO] [stdout] test eval::tests::eval_5_matches_eval_7_on_royal ... ok
[INFO] [stdout] test eval::tests::ordering_respects_category ... ok
[INFO] [stdout] test eval::tests::royal_flush_is_top ... ok
[INFO] [stdout] test equity::tests::enumeration_on_turn_is_exact ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solver_ffi-61def54917852a5f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/smoke.rs (/opt/rustwide/target/debug/deps/smoke-4a4f066be47ec895)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test solve_with_null_inputs_does_not_crash ... ok
[INFO] [stdout] test solve_with_non_river_board_returns_invalid_input ... ok
[INFO] [stdout] test solve_with_valid_inputs_returns_a_status ... ok
[INFO] [stdout] test new_and_free_are_symmetric ... ok
[INFO] [stdout] test status_enum_numeric_values_are_stable ... ok
[INFO] [stdout] test solve_with_unknown_bet_tree_version_returns_invalid_input ... ok
[INFO] [stdout] test struct_sizes_match_documented_layout ... ok
[INFO] [stdout] test lookup_cached_returns_cache_miss_for_unknown_spot ... ok
[INFO] [stdout] test version_is_non_null_and_parseable ... ok
[INFO] [stdout] test solve_with_canonical_hand_state_returns_ok ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solver_nlhe-38fc15d809a133f6)
[INFO] [stdout] 
[INFO] [stdout] running 108 tests
[INFO] [stdout] test action::tests::current_street_follows_last_entry ... ok
[INFO] [stdout] test action::tests::fold_closes_the_street ... ok
[INFO] [stdout] test action::tests::empty_log ... ok
[INFO] [stdout] test action::tests::iter_street_filters ... ok
[INFO] [stdout] test action::tests::iter_preserves_order ... ok
[INFO] [stdout] test action::tests::pop_works ... ok
[INFO] [stdout] test action::tests::postflop_bet_call_closes ... ok
[INFO] [stdout] test action::tests::postflop_bet_raise_reopens ... ok
[INFO] [stdout] test action::tests::postflop_check_check_closes ... ok
[INFO] [stdout] test action::tests::pot_contributions_check_check_empty ... ok
[INFO] [stdout] test action::tests::pot_contributions_empty_street_is_zero ... ok
[INFO] [stdout] test action::tests::pot_contributions_postflop_bet_call ... ok
[INFO] [stdout] test action::tests::pot_contributions_postflop_check_bet_call ... ok
[INFO] [stdout] test action::tests::pot_contributions_preflop_limp_check ... ok
[INFO] [stdout] test action::tests::pot_contributions_preflop_raise_call ... ok
[INFO] [stdout] test action::tests::pot_contributions_preflop_three_bet ... ok
[INFO] [stdout] test action::tests::preflop_limp_check_closes ... ok
[INFO] [stdout] test action::tests::preflop_limp_does_not_close ... ok
[INFO] [stdout] test action::tests::to_act_alternates ... ok
[INFO] [stdout] test bet_tree::tests::custom_accepts_allin_only_tree ... ok
[INFO] [stdout] test bet_tree::tests::custom_accepts_single_bucket ... ok
[INFO] [stdout] test bet_tree::tests::custom_rejects_empty_list ... ok
[INFO] [stdout] test bet_tree::tests::custom_rejects_non_monotonic ... ok
[INFO] [stdout] test bet_tree::tests::custom_rejects_non_positive ... ok
[INFO] [stdout] test bet_tree::tests::custom_builds_valid_tree ... ok
[INFO] [stdout] test bet_tree::tests::default_flop_has_exact_fractions ... ok
[INFO] [stdout] test bet_tree::tests::default_preflop_mirrors_flop ... ok
[INFO] [stdout] test bet_tree::tests::default_river_has_exact_fractions ... ok
[INFO] [stdout] test bet_tree::tests::default_sizings_are_sorted_ascending ... ok
[INFO] [stdout] test bet_tree::tests::default_turn_has_exact_fractions ... ok
[INFO] [stdout] test bet_tree::tests::property_snap_returns_value_in_sizings ... ok
[INFO] [stdout] test bet_tree::tests::default_equals_default_v0_1 ... ok
[INFO] [stdout] test bet_tree::tests::snap_above_largest_finite_bucket_goes_to_largest_finite ... ok
[INFO] [stdout] test bet_tree::tests::snap_below_smallest_goes_to_smallest ... ok
[INFO] [stdout] test bet_tree::tests::snap_infinity_picks_allin_bucket ... ok
[INFO] [stdout] test bet_tree::tests::snap_finite_never_returns_infinity_when_finite_bucket_exists ... ok
[INFO] [stdout] test bet_tree::tests::snap_midpoint_flop ... ok
[INFO] [stdout] test bet_tree::tests::snap_out_of_tree_flop_example ... ok
[INFO] [stdout] test flop_cache::tests::constants_sane ... ok
[INFO] [stdout] test bet_tree::tests::property_snap_is_idempotent ... ok
[INFO] [stdout] test flop_cache::tests::empty_cache_roundtrips ... ok
[INFO] [stdout] test bet_tree::tests::snap_exact_bucket_returns_self ... ok
[INFO] [stdout] test flop_cache::tests::lookup_default_bet_tree_version_is_1 ... ok
[INFO] [stdout] test flop_cache::tests::lookup_miss_returns_none ... ok
[INFO] [stdout] test flop_cache::tests::unique_keys_after_pack ... ok
[INFO] [stdout] test flop_cache::tests::roundtrip_three_entries_via_bytes ... ok
[INFO] [stdout] test preflop::tests::empty_database_roundtrips ... ok
[INFO] [stdout] test preflop::tests::fixture_roundtrip ... ok
[INFO] [stdout] test preflop::tests::lookup_returns_none_for_absent_key ... ok
[INFO] [stdout] test preflop::tests::empty_compressed_roundtrips ... ok
[INFO] [stdout] test preflop::tests::lookup_returns_some_for_present_key ... ok
[INFO] [stdout] test bet_tree::tests::snap_nan_panics - should panic ... ok
[INFO] [stdout] test bet_tree::tests::snap_negative_panics - should panic ... ok
[INFO] [stdout] test flop_cache::tests::malformed_bad_magic_returns_err ... ok
[INFO] [stdout] test flop_cache::tests::malformed_invalid_pot_type_returns_err ... ok
[INFO] [stdout] test preflop::tests::malformed_truncated_entries_returns_err ... ok
[INFO] [stdout] test flop_cache::tests::malformed_num_actions_too_large_returns_err ... ok
[INFO] [stdout] test preflop::tests::malformed_short_file_returns_err ... ok
[INFO] [stdout] test preflop::tests::malformed_unknown_position_byte_returns_err ... ok
[INFO] [stdout] test bet_tree::tests::snap_zero_panics - should panic ... ok
[INFO] [stdout] test flop_cache::tests::malformed_future_version_returns_err ... ok
[INFO] [stdout] test flop_cache::tests::malformed_short_header_returns_err ... ok
[INFO] [stdout] test range::tests::combo_index_is_lexicographic_and_covers_1326 ... ok
[INFO] [stdout] test range::tests::full_and_empty ... ok
[INFO] [stdout] test preflop::tests::write_binary_rejects_duplicate_keys ... ok
[INFO] [stdout] test range::tests::malformed_returns_err_not_panic ... ok
[INFO] [stdout] test range::tests::parse_ako_offsuit ... ok
[INFO] [stdout] test range::tests::parse_aks_suited ... ok
[INFO] [stdout] test range::tests::parse_ak_any ... ok
[INFO] [stdout] test flop_cache::tests::malformed_truncated_body_returns_err ... ok
[INFO] [stdout] test range::tests::parse_all_pairs_plus ... ok
[INFO] [stdout] test flop_cache::tests::malformed_trailing_bytes_returns_err ... ok
[INFO] [stdout] test preflop::tests::malformed_bad_magic_returns_err ... ok
[INFO] [stdout] test preflop::tests::malformed_compressed_size_mismatch_returns_err ... ok
[INFO] [stdout] test range::tests::parse_case_insensitive ... ok
[INFO] [stdout] test range::tests::parse_empty_string_yields_empty_range ... ok
[INFO] [stdout] test flop_cache::tests::pack_rejects_duplicate_keys ... ok
[INFO] [stdout] test range::tests::parse_last_write_wins ... ok
[INFO] [stdout] test range::tests::parse_multiple_tokens ... ok
[INFO] [stdout] test range::tests::parse_pair_minus_is_leq ... ok
[INFO] [stdout] test flop_cache::tests::pack_rejects_mismatched_strategy_and_ev_lens ... ok
[INFO] [stdout] test flop_cache::tests::pack_rejects_too_many_actions ... ok
[INFO] [stdout] test range::tests::parse_qts_plus ... ok
[INFO] [stdout] test range::tests::parse_t9s_plus_iterates_first_rank ... ok
[INFO] [stdout] test range::tests::parse_weight_suffix_applies_to_every_combo ... ok
[INFO] [stdout] test range::tests::parse_whitespace_tolerant ... ok
[INFO] [stdout] test range::tests::parse_weight_suffix_on_two_rank ... ok
[INFO] [stdout] test range::tests::parse_trailing_comma_is_fine ... ok
[INFO] [stdout] test subgame::tests::info_set_hash_differs_for_player_and_combo ... ok
[INFO] [stdout] test preflop::tests::malformed_wrong_version_returns_err ... ok
[INFO] [stdout] test range::tests::parse_pair_range_inclusive ... ok
[INFO] [stdout] test range::tests::parse_pocket_aces ... ok
[INFO] [stdout] test subgame::tests::river_is_closed_semantics ... ok
[INFO] [stdout] test subgame::tests::non_river_board_panics - should panic ... ok
[INFO] [stdout] test subgame::tests::info_set_hash_is_deterministic ... ok
[INFO] [stdout] test subgame_vector::tests::action_only_info_set_differs_for_history ... ok
[INFO] [stdout] test subgame_vector::tests::action_only_info_set_is_combo_independent ... ok
[INFO] [stdout] test subgame_vector::tests::legal_actions_at_root_mirror_scalar ... ok
[INFO] [stdout] test subgame_vector::tests::fold_terminal_matches_expectation ... ok
[INFO] [stdout] test subgame_vector::tests::construction_builds_showdown_matrix ... ok
[INFO] [stdout] test subgame::tests::legal_actions_at_root ... ok
[INFO] [stdout] test subgame::tests::construction_succeeds_for_river ... ok
[INFO] [stdout] test subgame::tests::check_check_goes_to_showdown ... ok
[INFO] [stdout] test subgame::tests::chance_roots_skip_card_conflicts ... ok
[INFO] [stdout] test subgame::tests::fold_is_terminal ... ok
[INFO] [stdout] test preflop::tests::fixture_roundtrip_compressed ... ok
[INFO] [stdout] test preflop::tests::reader_auto_detects_compressed_vs_uncompressed ... ok
[INFO] [stdout] test preflop::tests::malformed_truncated_compressed_returns_err ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 108 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/flop_cache_roundtrip.rs (/opt/rustwide/target/debug/deps/flop_cache_roundtrip-3def0e8ad79061a0)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test future_version_rejected ... ok
[INFO] [stdout] test packed_duplicate_key_rejected_by_loader ... ok
[INFO] [stdout] test unique_keys_after_pack ... ok
[INFO] [stdout] test three_entries_roundtrip_bit_identical ... ok
[INFO] [stdout] test truncated_file_returns_err_not_panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/proptest_ranges.rs (/opt/rustwide/target/debug/deps/proptest_ranges-f84fc3e4d9c231d6)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test range_empty_string_is_zero_weight ... ok
[INFO] [stdout] test range_full_has_max_weight ... ok
[INFO] [stdout] test actionlog_check_check_closes_postflop ... ok
[INFO] [stdout] test actionlog_push_pop_roundtrip ... ok
[INFO] [stdout] test snap_is_idempotent ... ok
[INFO] [stdout] test snap_is_in_sizings ... ok
[INFO] [stdout] test range_parse_valid_inputs_land_in_combo_mass_range ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/river_canonical.rs (/opt/rustwide/target/debug/deps/river_canonical-fae4f4d6652829fd)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test trivial_allin_showdown ... ok
[INFO] [stdout] test no_brainer_fold ... ok
[INFO] [stdout] test even_match_is_symmetric ... ok
[INFO] [stdout] test convergence_decreases_exploitability ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.88s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/river_vector_vs_flat.rs (/opt/rustwide/target/debug/deps/river_vector_vs_flat-486a8df9db2b612e)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test vector_degenerate_matches_scalar_trivially ... ok
[INFO] [stdout] test vector_walk_visits_all_info_sets ... ok
[INFO] [stdout] test vector_and_scalar_agree_on_canonical_root_frequencies ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.44s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests solver_core
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test crates/solver-core/src/cfr.rs - cfr::CfrPlus (line 101) ... ignored
[INFO] [stdout] test crates/solver-core/src/mccfr.rs - mccfr::MCCfr (line 106) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests solver_eval
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests solver_eval_reference
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests solver_ffi
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests solver_nlhe
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "df92f0ae7dbf6ba3f4f23b56dff325e43e14a5a30c721c1ff69c8a0464295c8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df92f0ae7dbf6ba3f4f23b56dff325e43e14a5a30c721c1ff69c8a0464295c8d", kill_on_drop: false }`
[INFO] [stdout] df92f0ae7dbf6ba3f4f23b56dff325e43e14a5a30c721c1ff69c8a0464295c8d
