[INFO] fetching crate orderbook-rs 0.6.2...
[INFO] testing orderbook-rs-0.6.2 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate orderbook-rs 0.6.2 into /workspace/builds/worker-4-tc2/source
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate orderbook-rs 0.6.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate orderbook-rs 0.6.2
[INFO] tweaked toml for crates.io crate orderbook-rs 0.6.2 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate orderbook-rs 0.6.2 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate orderbook-rs 0.6.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5b4beff4912b4dac0955b597745d158a138a17b994829fa136b9b44892dd1b39
[INFO] running `Command { std: "docker" "start" "-a" "5b4beff4912b4dac0955b597745d158a138a17b994829fa136b9b44892dd1b39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5b4beff4912b4dac0955b597745d158a138a17b994829fa136b9b44892dd1b39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b4beff4912b4dac0955b597745d158a138a17b994829fa136b9b44892dd1b39", kill_on_drop: false }`
[INFO] [stdout] 5b4beff4912b4dac0955b597745d158a138a17b994829fa136b9b44892dd1b39
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c065396e31cc387e92f669b30f2802197c59cc95c95bba4bf45d84587dcbf4ee
[INFO] running `Command { std: "docker" "start" "-a" "c065396e31cc387e92f669b30f2802197c59cc95c95bba4bf45d84587dcbf4ee", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling crossbeam-skiplist v0.1.3
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hybrid-array v0.4.10
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling pricelevel v0.7.0
[INFO] [stderr]    Compiling orderbook-rs v0.6.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.30s
[INFO] running `Command { std: "docker" "inspect" "c065396e31cc387e92f669b30f2802197c59cc95c95bba4bf45d84587dcbf4ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c065396e31cc387e92f669b30f2802197c59cc95c95bba4bf45d84587dcbf4ee", kill_on_drop: false }`
[INFO] [stdout] c065396e31cc387e92f669b30f2802197c59cc95c95bba4bf45d84587dcbf4ee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 05e73c77e2ad0fc43106140c2647ba7bb8495dfcefe2e24046ea57bf55cec095
[INFO] running `Command { std: "docker" "start" "-a" "05e73c77e2ad0fc43106140c2647ba7bb8495dfcefe2e24046ea57bf55cec095", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[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 ciborium v0.2.2
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling pricelevel v0.7.0
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling orderbook-rs v0.6.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "05e73c77e2ad0fc43106140c2647ba7bb8495dfcefe2e24046ea57bf55cec095", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05e73c77e2ad0fc43106140c2647ba7bb8495dfcefe2e24046ea57bf55cec095", kill_on_drop: false }`
[INFO] [stdout] 05e73c77e2ad0fc43106140c2647ba7bb8495dfcefe2e24046ea57bf55cec095
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] beaa96518a2abb23611bcdb20f3cba9dba451ddb3f5fdcda5a92e5f217a5643c
[INFO] running `Command { std: "docker" "start" "-a" "beaa96518a2abb23611bcdb20f3cba9dba451ddb3f5fdcda5a92e5f217a5643c", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orderbook_rs-bd0befcf6f00aad6)
[INFO] [stdout] 
[INFO] [stdout] running 471 tests
[INFO] [stdout] test orderbook::error::tests::test_clone_insufficient_liquidity ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_invalid_lot_size ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_invalid_price_level ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_invalid_operation ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_checksum_mismatch ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_invalid_tick_size ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_missing_user_id ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_order_not_found ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_order_size_out_of_range ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_price_level_error_checksum_mismatch ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_price_level_error_parse_error ... ok
[INFO] [stdout] test orderbook::fees::tests::test_calculate_maker_rebate ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_price_crossing ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_price_level_error_invalid_format ... ok
[INFO] [stdout] test orderbook::fees::tests::test_edge_cases ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_serialization_error ... ok
[INFO] [stdout] test orderbook::fees::tests::test_fee_schedule_creation ... ok
[INFO] [stdout] test orderbook::fees::tests::test_calculate_taker_fee ... ok
[INFO] [stdout] test orderbook::fees::tests::test_large_notional ... ok
[INFO] [stdout] test orderbook::fees::tests::test_serialization ... ok
[INFO] [stdout] test orderbook::fees::tests::test_taker_only ... ok
[INFO] [stdout] test orderbook::fees::tests::test_zero_fee_calculation ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_call_price_atm ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_deep_itm_call ... ok
[INFO] [stdout] test orderbook::fees::tests::test_zero_fee ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_delta_bounds ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_erf ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_deep_otm_call ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_gamma_positive ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_norm_cdf ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_price_at_expiry ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_put_price_atm ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_norm_pdf ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_put_call_parity ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_vega_positive ... ok
[INFO] [stdout] test orderbook::implied_volatility::black_scholes::tests::test_theta_negative_for_long ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_price_level_error_unknown_order_type ... ok
[INFO] [stdout] test orderbook::error::tests::test_clone_self_trade_prevented ... ok
[INFO] [stdout] test orderbook::fees::tests::test_default ... ok
[INFO] [stdout] test orderbook::fees::tests::test_maker_rebate ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_extract_price_mid ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_extract_price_last_trade ... ok
[INFO] [stdout] test orderbook::implied_volatility::error::tests::test_error_display ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_extract_price_no_orders ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_extract_price_weighted_mid ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_one_sided_market_ask_only ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_implied_volatility_spread_too_wide ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_iv_config_builder ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_option_greeks ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_implied_volatility_calculation ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_one_sided_market_bid_only ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_theoretical_price ... ok
[INFO] [stdout] test orderbook::implied_volatility::integration::tests::test_spread_to_quality ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_convergence_speed ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_smart_initial_guess ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_atm_call ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_atm_put ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_bisection ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_high_volatility ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_invalid_spot ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_invalid_strike ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_low_volatility ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_price_below_intrinsic ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_otm_call ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_various_maturities ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solver_config_builder ... ok
[INFO] [stdout] test orderbook::implied_volatility::types::tests::test_iv_params_atm ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_itm_call ... ok
[INFO] [stdout] test orderbook::implied_volatility::types::tests::test_iv_params_intrinsic_value ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_various_moneyness ... ok
[INFO] [stdout] test orderbook::implied_volatility::types::tests::test_iv_result_percent ... ok
[INFO] [stdout] test orderbook::implied_volatility::types::tests::test_iv_result_quality ... ok
[INFO] [stdout] test orderbook::implied_volatility::solver::tests::test_solve_iv_time_too_small ... ok
[INFO] [stdout] test orderbook::market_impact::tests::test_market_impact_can_fill ... ok
[INFO] [stdout] test orderbook::market_impact::tests::test_market_impact_fill_ratio ... ok
[INFO] [stdout] test orderbook::market_impact::tests::test_market_impact_empty ... ok
[INFO] [stdout] test orderbook::market_impact::tests::test_order_simulation_empty ... ok
[INFO] [stdout] test orderbook::implied_volatility::types::tests::test_price_source_default ... ok
[INFO] [stdout] test orderbook::market_impact::tests::test_order_simulation_is_fully_filled ... ok
[INFO] [stdout] test orderbook::implied_volatility::types::tests::test_option_type_serialization ... ok
[INFO] [stdout] test orderbook::market_impact::tests::test_order_simulation_levels_count ... ok
[INFO] [stdout] test orderbook::market_impact::tests::test_order_simulation_total_cost ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_all_with_iceberg_orders ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_all_with_orders ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_all_empty_book ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_all_with_post_only_orders ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_price_range_no_match ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_price_range_multiple_orders_same_level ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_price_range_inverted ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_price_range ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_price_range_exact_boundaries ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_side_buy ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_mass_cancel_result_display ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_user ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_user_multiple_levels ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_side_empty ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_order_status_display ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_side_sell ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_cancel_by_user_no_match ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_mass_cancel_result_is_must_use ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_order_status_filled_quantity ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_order_status_is_active ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_order_locations_cleaned_after_mass_cancel ... ok
[INFO] [stdout] test orderbook::mass_cancel::tests::test_mass_cancel_result_default ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_cancel_reason_display ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_order_status_is_terminal ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_lifecycle_open_to_filled ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_clear ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_cancel_reason_serde_roundtrip ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_order_status_serde_roundtrip ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_active_orders_not_evicted ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_lifecycle_open_to_cancelled ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_unknown_order_returns_none ... ok
[INFO] [stdout] test orderbook::private::tests::test_has_expired_day_order ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_listener_fires_on_transition ... ok
[INFO] [stdout] test orderbook::private::tests::test_match_market_order_partial_availability ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_new_is_empty ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_rejected_order ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_retention_evicts_oldest ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_transition_and_get ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_json_content_type ... ok
[INFO] [stdout] test orderbook::private::tests::test_will_cross_market_buy_with_cross ... ok
[INFO] [stdout] test orderbook::private::tests::test_match_market_order_no_matches ... ok
[INFO] [stdout] test orderbook::private::tests::test_will_cross_market_sell_with_cross ... ok
[INFO] [stdout] test orderbook::private::tests::test_will_cross_market_buy_no_ask ... ok
[INFO] [stdout] test orderbook::private::tests::test_private_place_order_in_book ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_json_deserialize_trade_error ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_json_deserialize_book_change_error ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_json_roundtrip_trade ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_json_roundtrip_book_change ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_json_serialize_trade ... ok
[INFO] [stdout] test orderbook::statistics::tests::test_depth_stats_not_empty ... ok
[INFO] [stdout] test orderbook::statistics::tests::test_depth_stats_zero ... ok
[INFO] [stdout] test orderbook::order_state::tests::test_tracker_concurrent_access ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_json_serialize_book_change ... ok
[INFO] [stdout] test orderbook::statistics::tests::test_distribution_bin_midpoint ... ok
[INFO] [stdout] test orderbook::private::tests::test_will_cross_market_sell_no_bid ... ok
[INFO] [stdout] test orderbook::stp::tests::test_check_stp_cancel_both_detects_self ... ok
[INFO] [stdout] test orderbook::serialization::tests::test_serialization_error_display ... ok
[INFO] [stdout] test orderbook::stp::tests::test_check_stp_cancel_maker_collects_ids ... ok
[INFO] [stdout] test orderbook::stp::tests::test_stp_mode_display ... ok
[INFO] [stdout] test orderbook::stp::tests::test_check_stp_no_conflict_when_different_users ... ok
[INFO] [stdout] test orderbook::stp::tests::test_check_stp_zero_user_bypasses ... ok
[INFO] [stdout] test orderbook::stp::tests::test_check_stp_none_mode_returns_no_conflict ... ok
[INFO] [stdout] test orderbook::stp::tests::test_check_stp_cancel_taker_safe_quantity_before_self ... ok
[INFO] [stdout] test orderbook::stp::tests::test_stp_mode_default_is_none ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_remaining::test_create_snapshot_empty_book ... ok
[INFO] [stdout] test orderbook::stp::tests::test_stp_mode_is_enabled ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_remaining::test_symbol_accessor ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_remaining::test_market_close_accessors ... ok
[INFO] [stdout] test orderbook::stp::tests::test_check_stp_cancel_taker_detects_same_user ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_remaining::test_best_bid_ask_with_multiple_levels ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_specific::test_get_all_orders ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_remaining::test_last_trade_price ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_specific::test_get_orders_at_price ... ok
[INFO] [stdout] test orderbook::tests::book::test_book_specific::test_match_market_order_empty_book ... ok
[INFO] [stdout] test orderbook::tests::book::test_orderbook_book::test_spread_calculation ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_add_standard_order ... ok
[INFO] [stdout] test orderbook::tests::book::test_orderbook_book::test_get_volume_by_price ... ok
[INFO] [stdout] test orderbook::tests::book::test_orderbook_book::test_market_close_timestamp ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_book_snapshot ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_cancel_nonexistent_order ... ok
[INFO] [stdout] test orderbook::tests::book::test_orderbook_book::test_mid_price_calculation ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_add_multiple_bids ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_add_multiple_asks ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_cancel_order ... ok
[INFO] [stdout] test orderbook::tests::book::test_orderbook_book::test_snapshot_creation ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_market_order_insufficient_liquidity ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_market_order_match ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_mid_price_calculation ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_new_order_book ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_fill_or_kill_order_partial_fill ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_iceberg_order ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_immediate_or_cancel_order_full_fill ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_market_close_timestamp ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_update_nonexistent_order ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_spread_calculation ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_post_only_order_no_crossing ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_fill_or_kill_order_full_fill ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_post_only_order_with_crossing ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_update_order_quantity ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_update_order_price ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_cumulative_depth_to_target_sell_side ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_depth_methods_priority_order_sell_side ... ok
[INFO] [stdout] test orderbook::tests::book::tests::test_volume_by_price ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_depth_methods_priority_order_buy_side ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_cumulative_depth_to_target_buy_side ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_depth_methods_with_multiple_orders_per_level ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_cumulative_depth_to_target_empty_book ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_price_at_depth_empty_book ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_price_at_depth_buy_side ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_price_at_depth_sell_side ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_total_depth_at_levels_empty_book ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_total_depth_at_levels_sell_side ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_total_depth_at_levels_buy_side ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_all_metrics ... ok
[INFO] [stdout] test orderbook::tests::depth_analysis::tests::test_total_depth_at_levels_zero_levels ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_balanced_book ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_custom_metrics ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_empty_book ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_buy_heavy ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_one_sided ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_limited_depth ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_only_imbalance ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_only_depth ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_only_vwap ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_mid_price_calculation ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_sell_heavy ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_serialization ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_metric_flags_all ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_metric_flags_combination ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_display_invalid_price_level ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_spread_bps_calculation ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_display_price_crossing ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_display_insufficient_liquidity ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_display_order_not_found ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_display_price_level_error ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_error_trait_implementation ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_display_invalid_operation ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_from_price_level_error ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_invalid_field_value_conversion ... ok
[INFO] [stdout] test orderbook::tests::enriched_snapshot_tests::tests::test_enriched_snapshot_vwap_limited_levels ... ok
[INFO] [stdout] test orderbook::tests::error::tests::test_missing_field_conversion ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_find_depth_threshold ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_find_level_empty_book ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_iterator_composition ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_count_levels ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_find_level_by_cumulative_depth ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_find_level_by_quantity ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_functional_style_analysis ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_iterator_short_circuit ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_in_range_basic ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_in_range_map_sum ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_until_depth_partial ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_find_level_not_found ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_in_range_no_match ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_in_range_partial ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_in_range_single ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_until_depth_exceeds_available ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_until_depth_exact ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_until_depth_with_filter ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_until_depth_zero ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_with_cumulative_depth_buy ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_with_cumulative_depth_empty_book ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_liquidity_in_range_asks ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_with_cumulative_depth_sell ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_liquidity_in_range_basic ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_liquidity_in_range_empty_book ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_levels_with_cumulative_depth_take ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_liquidity_in_range_invalid_range ... ok
[INFO] [stdout] test orderbook::tests::iterator_tests::tests::test_sell_side_iterators ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_liquidity_in_range_no_overlap ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_all_functions_together ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_market_impact_sell_side ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_liquidity_in_range_full_range ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_market_impact_basic ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_market_impact_slippage_bps ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_market_impact_empty_book ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_simulate_market_order_basic ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_market_impact_insufficient_liquidity ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_market_impact_zero_quantity ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_micro_price_zero_volumes ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_simulate_market_order_empty_book ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_simulate_market_order_total_cost ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_all_metrics_together ... ok
[INFO] [stdout] test orderbook::tests::market_impact_tests::tests::test_simulate_market_order_partial_fill ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_order_book_imbalance_balanced ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_order_book_imbalance_buy_pressure ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_micro_price ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_order_book_imbalance_empty_book ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_order_book_imbalance_multiple_levels ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_micro_price_imbalanced ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_vwap_empty_book ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_order_book_imbalance_sell_pressure ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_vwap_buy_side ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_order_book_imbalance_zero_levels ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_spread_bps_custom_multiplier ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_market_order_no_liquidity_error ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_spread_absolute ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_vwap_sell_side ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_vwap_zero_quantity ... ok
[INFO] [stdout] test orderbook::tests::market_metrics::tests::test_spread_bps ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_limit_sell_unfavorable_price_no_match ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_market_buy_full_match ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_limit_buy_favorable_price_match ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_market_sell_partial_match ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_peek_match_sell_side_with_price_limit ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_remaining::test_cancel_order_removes_price_level ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_peek_match_buy_side_full_match ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_peek_match_buy_side_partial_match ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_remaining::test_replace_with_special_order_types ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_peek_match_no_liquidity ... ok
[INFO] [stdout] test orderbook::tests::matching::tests::test_match_across_multiple_price_levels ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_remaining::test_update_price_error_cases ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_specific::test_cancel_non_existent_order ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_specific::test_update_order_when_order_is_not_found ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_remaining::test_update_order_with_all_types ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_remaining::test_update_price_and_quantity_nonexistent ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_specific::test_replace_unsupported_order_type ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_modifications_specific::test_update_price_edge_cases ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_order_modifications::test_iceberg_order_update_quantity ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_order_modifications::test_cancel_nonexistent_order ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_order_modifications::test_replace_with_different_side ... ok
[INFO] [stdout] test orderbook::tests::modifications::tests::test_add_post_only_order_crossing_market ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_order_modifications::test_update_order_replace ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_order_modifications::test_update_order_cancel ... ok
[INFO] [stdout] test orderbook::tests::modifications::tests::test_add_expired_order ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_order_modifications::test_update_price_same_value ... ok
[INFO] [stdout] test orderbook::tests::modifications::test_order_modifications::test_update_price_and_quantity ... ok
[INFO] [stdout] test orderbook::tests::modifications::tests::test_set_quantity_for_reserve_order ... ok
[INFO] [stdout] test orderbook::tests::modifications::tests::test_successful_cancel_order_removes_level ... ok
[INFO] [stdout] test orderbook::tests::operations::test_extra_fields::test_market_order_matching_with_extra_fields ... ok
[INFO] [stdout] test orderbook::tests::operations::test_extra_fields::test_add_iceberg_order_with_extra_fields ... ok
[INFO] [stdout] test orderbook::tests::modifications::tests::test_update_price_and_quantity ... ok
[INFO] [stdout] test orderbook::tests::operations::test_extra_fields::test_add_post_only_order_with_extra_fields ... ok
[INFO] [stdout] test orderbook::tests::operations::test_extra_fields::test_add_limit_order_with_extra_fields ... ok
[INFO] [stdout] test orderbook::tests::modifications::tests::test_update_order_not_found ... ok
[INFO] [stdout] test orderbook::tests::operations::test_operations_remaining::test_add_limit_order_with_trace ... ok
[INFO] [stdout] test orderbook::tests::operations::test_operations_remaining::test_add_post_only_order_with_trace ... ok
[INFO] [stdout] test orderbook::tests::operations::test_extra_fields::test_mixed_orders_with_and_without_extra_fields ... ok
[INFO] [stdout] test orderbook::tests::operations::test_operations_specific::test_submit_market_order_with_tracing ... ok
[INFO] [stdout] test orderbook::tests::operations::test_operations_remaining::test_add_iceberg_order_with_trace ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_add_iceberg_order ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_limit_order_fill_or_kill_failure ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_add_post_only_order ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_add_limit_order ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_limit_order_immediate_or_cancel ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_market_order_no_liquidity ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_fill_or_kill_property ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_iceberg_order_properties ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_limit_order_fill_or_kill_success ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_submit_market_order ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_post_only_order_price_crossing ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_submit_market_order_insufficient_liquidity ... ok
[INFO] [stdout] test orderbook::tests::operations::tests::test_submit_market_order_full_fill ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_immediate_or_cancel_property ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_match_against_iceberg_full_visible_with_refresh ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_post_only_order_properties ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_refresh_iceberg ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_standard_order_properties ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_match_against_standard_full_match ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_match_against_standard_partial_match ... ok
[INFO] [stdout] test orderbook::tests::order::tests::test_with_reduced_quantity ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_all_placement_functions_together ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_at_depth_adjusted_empty_book ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_at_depth_adjusted_zero_values ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_at_depth_adjusted_basic ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_at_depth_adjusted_insufficient_depth ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_for_queue_position_sell_side ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_for_queue_position_basic ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_n_ticks_inside_underflow ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_at_depth_adjusted_sell_side ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_queue_ahead_at_price_different_levels ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_for_queue_position_empty_book ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_n_ticks_inside_empty_book ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_queue_ahead_at_price_basic ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_for_queue_position_zero ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_n_ticks_inside_sell ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_n_ticks_inside_zero_values ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_queue_ahead_at_price_no_orders ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_price_n_ticks_inside_buy ... ok
[INFO] [stdout] test orderbook::tests::serialize_tests::tests::test_orderbook_serialize_empty ... ok
[INFO] [stdout] test orderbook::tests::serialize_tests::tests::test_orderbook_serialize_pretty ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_queue_position_with_multiple_levels ... ok
[INFO] [stdout] test orderbook::tests::order_placement_tests::tests::test_tick_calculations_with_large_values ... ok
[INFO] [stdout] test orderbook::tests::serialize_tests::tests::test_orderbook_serialize_with_market_close ... ok
[INFO] [stdout] test orderbook::tests::serialize_tests::tests::test_orderbook_serialize_with_orders ... ok
[INFO] [stdout] test orderbook::tests::snapshot::test_snapshot_remaining::test_snapshot_tracing ... ok
[INFO] [stdout] test orderbook::tests::snapshot::test_snapshot_specific::test_snapshot_trace_output ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_empty_snapshot_best_bid_ask ... ok
[INFO] [stdout] test orderbook::tests::snapshot::test_orderbook_snapshot::test_snapshot_methods ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_best_bid_ask ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_snapshot_integrity ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_mid_price ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_bid_ask_with_prices_out_of_order ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_serialization_deserialization ... ok
[INFO] [stdout] test orderbook::tests::snapshot::test_snapshot_remaining::test_empty_snapshot_volume_methods ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_total_bid_volume ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_spread ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_total_ask_value ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests_bis::test_improved_best_bid_ask ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_total_ask_volume ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests_bis::test_mid_price_with_improved_methods ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests::test_total_bid_value ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests_bis::test_integration_with_sort ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_buy_sell_pressure_empty_book ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests_bis::test_proposal_for_impl_best_bid_ask ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_buy_sell_pressure_one_sided ... ok
[INFO] [stdout] test orderbook::tests::snapshot::tests_bis::test_spread_with_improved_methods ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_combined_statistics_workflow ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_buy_sell_pressure ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_distribution_basic ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_distribution_bins_match_range ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_distribution_bins ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_distribution_level_count ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_statistics_empty_book ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_distribution_empty_book ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_distribution_single_price ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_distribution_zero_bins ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_statistics_limited_levels ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_statistics_all_levels ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_statistics_buy_basic ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_statistics_std_dev ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_is_thin_book_false ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_statistics_weighted_avg_price ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_is_thin_book_empty ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_depth_statistics_sell_basic ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_is_thin_book_one_side_thin ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_is_thin_book_true ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_order_book_imbalance_buy_heavy ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_order_book_imbalance_sell_heavy ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_add_order_direct_nonzero_user_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_both_cancels_maker_and_taker ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_add_order_direct_zero_user_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::statistics_tests::tests::test_order_book_imbalance_balanced ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_maker_all_same_user_orders_cancelled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_both_partial_fill_before_self ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_taker_zero_taker_user_bypasses_stp_during_matching ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_maker_removes_same_user_orders ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_taker_partial_fill_before_self_trade ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_maker_across_price_levels ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_taker_allows_different_users ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_cancel_taker_prevents_self_trade ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_iceberg_order_with_user_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_missing_user_id_error_contains_order_id ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_iceberg_order_stp_disabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_limit_order_with_user_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_limit_order_with_zero_user_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_missing_user_id_limit_order_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_missing_user_id_post_only_order_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_missing_user_id_display ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_missing_user_id_iceberg_order_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_missing_user_id_all_stp_modes ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_post_only_order_stp_disabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_missing_user_id_limit_order_stp_disabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_post_only_order_with_user_stp_enabled ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_limit_order_no_cross_adds_to_book ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_cancel_taker_via_add_order ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_empty_book_returns_insufficient_liquidity ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_match_limit_order_with_user ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_mode_setter_getter ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_backward_compat_no_user_id ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_cancel_maker_sell_side ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_cancel_maker_via_add_order ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_cancel_taker_sell_side ... ok
[INFO] [stdout] test orderbook::tests::time_in_force::tests::test_time_in_force_has_expiry_property ... ok
[INFO] [stdout] test orderbook::tests::time_in_force::tests::test_time_in_force_display ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_multiple_levels_cancel_taker ... ok
[INFO] [stdout] test orderbook::tests::time_in_force::tests::test_time_in_force_from_str ... ok
[INFO] [stdout] test orderbook::tests::time_in_force::tests::test_time_in_force_immediate_property ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_none_orders_match_normally ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_stp_submit_market_order_with_user ... ok
[INFO] [stdout] test orderbook::tests::stp::tests::test_with_stp_mode_constructor ... ok
[INFO] [stdout] test orderbook::tests::uuid::tests::test_uuid_generator_creates_unique_ids ... ok
[INFO] [stdout] test orderbook::tests::time_in_force::tests::test_time_in_force_is_expired ... ok
[INFO] [stdout] test orderbook::tests::uuid::tests::test_uuid_generator_is_deterministic ... ok
[INFO] [stdout] test orderbook::tests::uuid::tests::test_different_namespaces_generate_different_uuids ... ok
[INFO] [stdout] test orderbook::tests::uuid::tests::test_uuid_version_and_variant ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_new_has_zero_fees ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_symbol_preserved ... ok
[INFO] [stdout] test orderbook::tests::uuid::tests::test_uuid_generator_thread_safety ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_with_fees_no_transactions ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_with_fees_none_schedule ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_with_maker_rebate ... ok
[INFO] [stdout] test utils::tests::time::tests::test_current_time_millis_is_reasonably_current ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_with_fees_multiple_transactions ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_with_fees_single_transaction ... ok
[INFO] [stdout] test orderbook::trade::tests::test_trade_result_with_fees_zero_schedule ... ok
[INFO] [stdout] test orderbook::trade::tests::test_transaction_info_fee_fields ... ok
[INFO] [stdout] test utils::tests::time::tests::test_current_time_millis_increases ... ok
[INFO] [stderr]      Running tests/fee_tests.rs (/opt/rustwide/target/debug/deps/fee_tests-9818198172229875)
[INFO] [stdout] test utils::tests::time::tests::test_current_time_millis_precision ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 471 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test test_fee_calculation_edge_cases ... ok
[INFO] [stdout] test test_fee_calculation_large_values ... ok
[INFO] [stdout] test integration_tests::test_trade_listener_receives_zero_fees_when_no_schedule ... ok
[INFO] [stdout] test integration_tests::test_trade_listener_fees_across_multiple_price_levels ... ok
[INFO] [stdout] test test_fee_calculation_maker_rebate ... ok
[INFO] [stdout] test test_fee_calculation_taker ... ok
[INFO] [stdout] test test_fee_calculation_zero_fee ... ok
[INFO] [stdout] test test_fee_schedule_creation ... ok
[INFO] [stdout] test test_fee_schedule_mathematical_properties ... ok
[INFO] [stdout] test test_fee_schedule_default_trait ... ok
[INFO] [stdout] test test_orderbook_constructors_with_fee_schedule ... ok
[INFO] [stdout] test test_fee_schedule_serialization ... ok
[INFO] [stdout] test test_fee_schedule_precision ... ok
[INFO] [stdout] test test_maker_rebate_schedule ... ok
[INFO] [stdout] test integration_tests::test_fee_schedule_with_multiple_operations ... ok
[INFO] [stdout] test integration_tests::test_trade_listener_receives_fees ... ok
[INFO] [stdout] test integration_tests::test_fee_schedule_with_matching ... ok
[INFO] [stdout] test test_orderbook_fee_schedule_default ... ok
[INFO] [stdout] test test_orderbook_serialization_with_fee_schedule ... ok
[INFO] [stdout] test test_orderbook_fee_schedule_persistence ... ok
[INFO] [stderr]      Running tests/unit/mod.rs (/opt/rustwide/target/debug/deps/tests-86cff6812e198a9b)
[INFO] [stdout] test test_orderbook_serialization_without_fee_schedule ... ok
[INFO] [stdout] test test_orderbook_set_fee_schedule ... ok
[INFO] [stdout] test test_orderbook_update_fee_schedule ... ok
[INFO] [stdout] test test_zero_fee_schedule ... ok
[INFO] [stdout] test test_taker_only_schedule ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 344 tests
[INFO] [stdout] test book_coverage_tests::tests::test_best_ask_with_cache_miss ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_convert_pegged_order ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_convert_reserve_order ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_best_bid_with_cache_miss ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_get_all_orders_empty_book ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_clear_market_close_timestamp ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_convert_market_to_limit_order ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_convert_from_unit_type_all_variants ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_get_order_not_found ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_get_orders_at_price_empty_level ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_get_volume_by_price_empty_book ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_match_market_order_delegation ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_last_trade_price_no_trades ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_create_snapshot_empty_book ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_mid_price_edge_cases ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_match_limit_order_delegation ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::std_cancel_all_across_books ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_set_and_remove_trade_listener ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::std_cancel_all_across_empty_books ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::std_cancel_all_no_books ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_trade_listener_with_symbol_information ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::std_cancel_by_side_across_books ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::tokio_cancel_by_user_across_books ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_spread_edge_cases ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::tokio_cancel_by_side_across_books ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::tokio_cancel_all_across_books ... ok
[INFO] [stdout] test book_manager_cross_cancel_tests::tests_cross_book_cancel::std_cancel_by_user_across_books ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_with_trade_listener_constructor ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_calculation_atm_call ... ok
[INFO] [stdout] test book_coverage_tests::tests::test_convert_trailing_stop_order ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_calculation_itm_put ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_calculation_otm_call ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_calculation_various_maturities ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_params_moneyness ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_quality_based_on_spread ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_result_methods ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_with_custom_solver_config ... ok
[INFO] [stdout] test implied_volatility_tests::test_iv_with_different_price_sources ... ok
[INFO] [stdout] test implied_volatility_tests::test_theoretical_price_and_greeks ... ok
[INFO] [stdout] test integration_workflow_tests::json_serializer_book_change_round_trip ... ok
[INFO] [stdout] test integration_workflow_tests::book_manager_multi_book_operations ... ok
[INFO] [stdout] test integration_workflow_tests::journal_replay_partial_from_sequence ... ok
[INFO] [stdout] test integration_workflow_tests::book_manager_multi_book_independent_state ... ok
[INFO] [stdout] test integration_workflow_tests::journal_replay_reconstructs_identical_state ... ok
[INFO] [stdout] test integration_workflow_tests::journal_verify_matches_snapshot ... ok
[INFO] [stdout] test integration_workflow_tests::json_serializer_trade_result_round_trip ... ok
[INFO] [stdout] test integration_workflow_tests::order_lifecycle_open_to_cancelled ... ok
[INFO] [stdout] test integration_workflow_tests::order_lifecycle_open_to_filled ... ok
[INFO] [stdout] test integration_workflow_tests::mass_cancel_then_snapshot_shows_empty_book ... ok
[INFO] [stdout] test integration_workflow_tests::validation_prevents_invalid_then_valid_order_succeeds ... ok
[INFO] [stdout] test manager_coverage_tests::std_cancel_by_side_across_books ... ok
[INFO] [stdout] test manager_coverage_tests::std_cancel_by_user_across_books ... ok
[INFO] [stdout] test integration_workflow_tests::order_match_snapshot_restore_round_trip ... ok
[INFO] [stdout] test manager_coverage_tests::std_add_and_get_book ... ok
[INFO] [stdout] test integration_workflow_tests::snapshot_enriched_metrics_validation ... ok
[INFO] [stdout] test manager_coverage_tests::std_get_book_mut_allows_modification ... ok
[INFO] [stdout] test manager_coverage_tests::std_get_book_mut_returns_none_for_unknown ... ok
[INFO] [stdout] test manager_coverage_tests::std_get_book_returns_valid_ref ... ok
[INFO] [stdout] test integration_workflow_tests::snapshot_json_round_trip ... ok
[INFO] [stdout] test manager_coverage_tests::std_get_book_returns_none_for_unknown ... ok
[INFO] [stdout] test manager_coverage_tests::std_add_order_and_cancel_across_books ... ok
[INFO] [stdout] test manager_coverage_tests::std_default_creates_empty_manager ... ok
[INFO] [stdout] test manager_coverage_tests::std_remove_book_returns_none_when_missing ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_default_creates_empty_manager ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_add_and_get_book ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_get_book_mut_returns_none_for_unknown ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_cancel_all_across_books ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_cancel_by_side_across_books ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_cancel_by_user_across_books ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_get_book_returns_none_for_unknown ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_remove_book_returns_none_when_missing ... ok
[INFO] [stdout] test manager_coverage_tests::std_remove_book_returns_some_when_exists ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_remove_book_returns_some_when_exists ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_clears_all_user_entries ... ok
[INFO] [stdout] test manager_coverage_tests::tokio_symbols_returns_all_books ... ok
[INFO] [stdout] test manager_coverage_tests::std_start_trade_processor_fails_second_time ... ok
[INFO] [stdout] test manager_coverage_tests::std_start_trade_processor_ok_first_time ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_cleans_order_locations ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_emits_price_level_changed_events ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_with_post_only_orders ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_idempotent ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_on_empty_book_returns_zero ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_removes_every_order ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_returns_all_ids ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_with_iceberg_orders ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_price_range_inclusive_boundaries ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_price_range_inverted_returns_zero ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_price_range_multiple_orders_at_same_level ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_price_range_no_orders_in_range ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_price_range_on_wrong_side_returns_zero ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_user_across_multiple_levels_and_sides ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_price_range_single_price ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_side_buy_leaves_asks ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_side_on_empty_side ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_user_no_match_returns_zero ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_side_sell_leaves_bids ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_side_then_cancel_all ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_user_removes_only_matching_orders ... ok
[INFO] [stdout] test mass_cancel_tests::double_cancel_all_is_idempotent ... ok
[INFO] [stdout] test mass_cancel_tests::mass_cancel_result_default_is_empty ... ok
[INFO] [stdout] test mass_cancel_tests::mass_cancel_result_display ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_by_user_on_stp_enabled_book ... ok
[INFO] [stdout] test mass_cancel_tests::multi_user_cancel_does_not_affect_other_users ... ok
[INFO] [stdout] test mass_cancel_tests::stp_cancel_maker_cleans_user_orders ... ok
[INFO] [stdout] test mass_cancel_tests::user_orders_cleaned_after_full_match ... ok
[INFO] [stdout] test mass_cancel_tests::user_orders_cleaned_after_individual_cancel ... ok
[INFO] [stdout] test mass_cancel_tests::user_orders_partial_match_keeps_resting_order ... ok
[INFO] [stdout] test mass_cancel_tests::user_orders_populated_on_add_and_cleared_on_cancel ... ok
[INFO] [stdout] test mass_cancel_tests::cancel_all_clears_book_completely ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_early_exit_full_match ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_price_level_removed_by_thread ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_batch_removal_operations ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_empty_opposite_side_market_order ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_empty_price_level_removal ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_filled_orders_tracking ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_market_order_insufficient_liquidity ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_empty_opposite_side_limit_order ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_peek_match_empty_price_levels ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_peek_match_price_limit_buy_continue ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_price_limit_buy_exceeds ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_price_limit_sell_below ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_match_order_with_transactions ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_peek_match_early_termination ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_peek_match_price_limit_sell_continue ... ok
[INFO] [stdout] test matching_coverage_tests::tests::test_peek_match_quantity_calculation ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_match_order_insufficient_liquidity_market_order ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_match_order_no_liquidity_with_limit_price ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_match_order_with_price_limit_sell_side ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_match_order_price_limit_continue_conditions ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_match_orders_batch ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_peek_match_empty_order_book ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_peek_match_exceeds_available_quantity ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_match_order_with_price_limit_buy_side ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_peek_match_price_limit_continue_conditions ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_update_nonexistent_order ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_update_order_price_and_quantity_success ... ok
[INFO] [stdout] test matching_coverage_tests_extended::tests::test_peek_match_with_price_limit ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_update_order_quantity_success ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_order_type_quantity_methods ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_order_type_set_quantity_methods ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_order_type_total_quantity_methods ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_update_order_price_same_value ... ok
[INFO] [stdout] test modifications_coverage_tests::tests::test_update_order_price_success ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_add_limit_order_without_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_add_post_only_order_without_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_add_post_only_order_with_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_add_iceberg_order_without_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_add_limit_order_with_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_extra_fields_functionality_with_complex_data ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_add_iceberg_order_with_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_extra_fields_with_empty_string ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_extra_fields_with_unicode_characters ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_iceberg_order_with_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_iceberg_order_zero_visible_quantity ... ok
[INFO] [stdout] test operations_coverage_tests::tests::test_multiple_orders_with_different_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_limit_order_ioc_no_fill ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_iceberg_order_without_extra_fields ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_limit_order_fok_complete_fill ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_limit_order_ioc_partial_fill ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_limit_order_fok_incomplete_fill ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_order_type_methods_coverage ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_post_only_order_no_cross ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_iceberg_order_zero_hidden_quantity ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_submit_market_order_with_liquidity ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_add_post_only_order_would_cross ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_submit_market_order_insufficient_liquidity ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::cancel_order_tracks_user_requested ... ok
[INFO] [stdout] test operations_coverage_tests_extended::tests::test_submit_market_order_without_extra_fields ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::add_order_no_match_tracks_open ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::add_order_fully_matched_tracks_filled ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::cancel_partially_filled_preserves_filled_quantity ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::add_order_partial_match_tracks_partially_filled ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::active_and_terminal_counts ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::counts_zero_without_tracker ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::get_order_history_returns_none_for_unknown ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::get_order_history_single_transition_open ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::get_order_history_no_tracker_returns_none ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::listener_fires_on_every_transition ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::ioc_partial_fill_tracks_cancelled_with_filled_qty ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::mass_cancel_all_tracks_correct_reason ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::purge_terminal_states_keeps_recent_entries ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::mass_cancel_by_price_range_tracks_correct_reason ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::mass_cancel_by_side_tracks_correct_reason ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::purge_terminal_states_does_not_affect_active ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::rejected_order_post_only_crossing ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::purge_terminal_states_removes_old_entries ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::rejected_order_tick_size ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::purge_terminal_states_zero_without_tracker ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::no_tracker_returns_none_and_no_panic ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_convert_to_unit_type_iceberg_order ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::stp_cancel_taker_tracks_cancelled ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::order_status_unknown_returns_none ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::fok_insufficient_liquidity_tracks_cancelled ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_convert_to_unit_type_standard_order ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_has_expired_gtd_order_expired ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_convert_to_unit_type_trailing_stop_order ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_has_expired_gtd_order_not_expired ... ok
[INFO] [stdout] test order_state_tests::tests_order_state::get_order_history_returns_transitions_in_order ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_convert_to_unit_type_pegged_order ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_convert_to_unit_type_post_only_order ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_convert_to_unit_type_market_to_limit_order ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_has_expired_with_market_close_set ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_convert_to_unit_type_reserve_order ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_place_order_in_book_existing_price_level ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_has_expired_without_market_close ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_will_cross_market_sell_side ... ok
[INFO] [stdout] test replay_coverage_tests::in_memory_journal_append_and_len ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_place_order_in_book_buy_side ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_place_order_in_book_sell_side ... ok
[INFO] [stdout] test replay_coverage_tests::in_memory_journal_default_is_empty ... ok
[INFO] [stdout] test replay_coverage_tests::in_memory_journal_new_is_empty ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_will_cross_market_buy_side ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_corrupt_entry ... ok
[INFO] [stdout] test private_coverage_tests::tests::test_will_cross_market_no_opposite_side ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_deserialization ... ok
[INFO] [stdout] test replay_coverage_tests::in_memory_journal_verify_integrity_always_ok ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_entry_too_large ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_io_with_path ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_io_without_path ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_invalid_directory ... ok
[INFO] [stdout] test replay_coverage_tests::in_memory_journal_with_capacity ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_invalid_entry_header ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_mutex_poisoned ... ok
[INFO] [stdout] test replay_coverage_tests::in_memory_journal_read_from_filters_correctly ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_sequence_not_found ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_display_serialization ... ok
[INFO] [stdout] test replay_coverage_tests::replay_error_snapshot_mismatch_display ... ok
[INFO] [stdout] test replay_coverage_tests::replay_cancel_by_side_command ... ok
[INFO] [stdout] test replay_coverage_tests::replay_cancel_by_price_range_command ... ok
[INFO] [stdout] test replay_coverage_tests::journal_error_from_io_error ... ok
[INFO] [stdout] test replay_coverage_tests::replay_cancel_by_user_command ... ok
[INFO] [stdout] test replay_coverage_tests::replay_single_add_order ... ok
[INFO] [stdout] test replay_coverage_tests::replay_sequence_gap_returns_error ... ok
[INFO] [stdout] test replay_coverage_tests::replay_add_then_cancel ... ok
[INFO] [stdout] test replay_coverage_tests::replay_cancel_all_command ... ok
[INFO] [stdout] test replay_coverage_tests::replay_invalid_sequence_returns_error ... ok
[INFO] [stdout] test replay_coverage_tests::replay_skips_rejected_events ... ok
[INFO] [stdout] test replay_coverage_tests::replay_market_order_command ... ok
[INFO] [stdout] test replay_coverage_tests::replay_verify_matching_snapshot ... ok
[INFO] [stdout] test replay_coverage_tests::snapshots_match_different_bids_returns_false ... ok
[INFO] [stdout] test replay_coverage_tests::replay_verify_mismatched_snapshot ... ok
[INFO] [stdout] test replay_coverage_tests::snapshots_match_different_symbols_returns_false ... ok
[INFO] [stdout] test replay_coverage_tests::replay_with_progress_callback ... ok
[INFO] [stdout] test replay_coverage_tests::snapshots_match_identical_books ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_cancel_all ... ok
[INFO] [stdout] test replay_coverage_tests::snapshots_match_different_ask_count_returns_false ... ok
[INFO] [stdout] test replay_coverage_tests::snapshots_match_different_asks_returns_false ... ok
[INFO] [stdout] test replay_coverage_tests::snapshots_match_different_bid_count_returns_false ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_cancel_by_price_range ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_cancel_by_side ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_cancel_by_user ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_event_cancel_all ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_event_cancel_by_price_range ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_event_cancel_by_side ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_event_cancel_by_user ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_existing_add_order_unchanged ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_existing_cancel_order_unchanged ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::restore_rejects_checksum_mismatch ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::restore_rejects_symbol_mismatch ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::replay_mass_cancel_tests::replay_cancel_by_side_removes_one_side ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::replay_mass_cancel_tests::replay_cancel_by_price_range ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::restore_rejects_version_mismatch ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::replay_mass_cancel_tests::replay_cancel_by_user_removes_user_orders ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_preserves_fee_schedule ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_json_round_trip_preserves_config ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::replay_mass_cancel_tests::replay_cancel_all_clears_book ... ok
[INFO] [stdout] test sequencer_types_tests::tests_sequencer_types::json_roundtrip_mass_cancelled_empty ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_backward_compat_no_config_fields ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_preserves_all_config_fields ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_preserves_min_max_order_size ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_json_round_trip_restores_book_state ... ok
[INFO] [stdout] test replay_coverage_tests::replay_empty_journal_returns_error ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_preserves_tick_size ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_preserves_lot_size ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_round_trip_restores_orders ... ok
[INFO] [stdout] test validation_tests::tests::test_add_limit_order_respects_lot_size ... ok
[INFO] [stdout] test validation_tests::tests::test_add_limit_order_respects_max_order_size ... ok
[INFO] [stdout] test validation_tests::tests::test_add_limit_order_respects_tick_size ... ok
[INFO] [stdout] test validation_tests::tests::test_all_validations_pass ... ok
[INFO] [stdout] test validation_tests::tests::test_invalid_lot_size_error_display ... ok
[INFO] [stdout] test validation_tests::tests::test_invalid_lot_size_off_by_one ... ok
[INFO] [stdout] test validation_tests::tests::test_invalid_lot_size_not_multiple ... ok
[INFO] [stdout] test snapshot_restore_tests::tests_snapshot_restore::snapshot_package_preserves_stp_mode ... ok
[INFO] [stdout] test validation_tests::tests::test_add_limit_order_respects_min_order_size ... ok
[INFO] [stdout] test validation_tests::tests::test_add_limit_order_valid_lot_size ... ok
[INFO] [stdout] test validation_tests::tests::test_add_limit_order_valid_tick_size ... ok
[INFO] [stdout] test validation_tests::tests::test_invalid_tick_size_off_by_one ... ok
[INFO] [stdout] test validation_tests::tests::test_invalid_tick_size_off_by_one_below ... ok
[INFO] [stdout] test validation_tests::tests::test_invalid_tick_size_error_display ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_accepts_sell_order_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_invalid_tick_size_not_multiple ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_fails_before_min_max ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_iceberg_both_invalid ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_iceberg_hidden_invalid ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_rejects_sell_order ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_one_accepts_any_quantity ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_rejects_post_only_order ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_iceberg_both_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_max_order_size_accepts_equal ... ok
[INFO] [stdout] test validation_tests::tests::test_max_order_size_iceberg_total_above_max ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_iceberg_visible_invalid ... ok
[INFO] [stdout] test validation_tests::tests::test_max_order_size_rejects_above ... ok
[INFO] [stdout] test validation_tests::tests::test_max_order_size_accepts_below ... ok
[INFO] [stdout] test validation_tests::tests::test_min_and_max_above_max ... ok
[INFO] [stdout] test validation_tests::tests::test_min_and_max_below_min ... ok
[INFO] [stdout] test validation_tests::tests::test_lot_size_accepts_post_only_order_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_min_order_size_accepts_equal ... ok
[INFO] [stdout] test validation_tests::tests::test_min_order_size_rejects_sell_below ... ok
[INFO] [stdout] test validation_tests::tests::test_min_order_size_iceberg_total_accepted ... ok
[INFO] [stdout] test validation_tests::tests::test_min_order_size_accepts_above ... ok
[INFO] [stdout] test validation_tests::tests::test_min_order_size_rejects_below ... ok
[INFO] [stdout] test validation_tests::tests::test_min_order_size_rejects_post_only ... ok
[INFO] [stdout] test validation_tests::tests::test_min_and_max_within_range ... ok
[INFO] [stdout] test validation_tests::tests::test_no_lot_size_accepts_any_quantity ... ok
[INFO] [stdout] test validation_tests::tests::test_no_min_max_accepts_any_quantity ... ok
[INFO] [stdout] test validation_tests::tests::test_no_tick_size_accepts_any_price ... ok
[INFO] [stdout] test validation_tests::tests::test_only_max_set_small_quantity_accepted ... ok
[INFO] [stdout] test validation_tests::tests::test_only_min_set_large_quantity_accepted ... ok
[INFO] [stdout] test validation_tests::tests::test_order_size_out_of_range_error_display ... ok
[INFO] [stdout] test validation_tests::tests::test_set_lot_size_changes_validation ... ok
[INFO] [stdout] test validation_tests::tests::test_set_min_order_size ... ok
[INFO] [stdout] test validation_tests::tests::test_set_max_order_size ... ok
[INFO] [stdout] test validation_tests::tests::test_set_tick_size_changes_validation ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_fails_before_min_max ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_invalid_lot_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_size_accepts_iceberg_order_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_set_tick_size ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_and_lot_size_both_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_set_min_max_changes_validation ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_size_accepts_post_only_order_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_size_one_accepts_any_price ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_size_rejects_sell_order ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_size_accepts_sell_order_valid ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_size_rejects_iceberg_order ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_valid_lot_invalid ... ok
[INFO] [stdout] test validation_tests::tests::test_tick_size_rejects_post_only_order ... ok
[INFO] [stdout] test validation_tests::tests::test_valid_lot_size_equals_lot ... ok
[INFO] [stdout] test validation_tests::tests::test_valid_tick_size_equals_tick ... ok
[INFO] [stdout] test validation_tests::tests::test_valid_tick_size_larger_multiple ... ok
[INFO] [stdout] test validation_tests::tests::test_valid_tick_size_exact_multiple ... ok
[INFO] [stdout] test validation_tests::tests::test_valid_lot_size_exact_multiple ... ok
[INFO] [stdout] test validation_tests::tests::test_set_lot_size ... ok
[INFO] [stderr]    Doc-tests orderbook_rs
[INFO] [stdout] test validation_tests::tests::test_with_tick_size_constructor ... ok
[INFO] [stdout] test validation_tests::tests::test_with_lot_size_constructor ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 344 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 44 tests
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::cumulative_depth_to_target (line 907) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::is_thin_book (line 2736) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::enriched_snapshot (line 2391) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::depth_statistics (line 2587) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::depth_distribution (line 2774) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::buy_sell_pressure (line 2687) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::market_impact (line 1296) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::liquidity_in_range (line 1511) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::levels_until_depth (line 1873) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::levels_in_range (line 1913) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::levels_with_cumulative_depth (line 1827) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::micro_price (line 1175) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::price_at_depth_adjusted (line 1744) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::price_for_queue_position (line 1680) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::price_n_ticks_inside (line 1620) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::queue_ahead_at_price (line 1576) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::spread_absolute (line 1016) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::simulate_market_order (line 1416) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::spread_bps (line 1048) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::vwap (line 1096) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::set_fee_schedule (line 533) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::total_depth_at_levels (line 963) ... ok
[INFO] [stdout] test src/orderbook/implied_volatility/integration.rs - orderbook::implied_volatility::integration::OrderBook<T>::implied_volatility (line 89) ... ignored
[INFO] [stdout] test src/orderbook/implied_volatility/solver.rs - orderbook::implied_volatility::solver::solve_iv (line 157) ... ignored
[INFO] [stdout] test src/orderbook/fees.rs - orderbook::fees::FeeSchedule::calculate_fee (line 80) ... ok
[INFO] [stdout] test src/orderbook/fees.rs - orderbook::fees::FeeSchedule::new (line 51) ... ok
[INFO] [stdout] test src/orderbook/manager.rs - orderbook::manager::BookManagerStd<T>::cancel_all_across_books (line 134) ... ok
[INFO] [stdout] test src/orderbook/mass_cancel.rs - orderbook::mass_cancel::MassCancelResult (line 30) ... ok
[INFO] [stdout] test src/orderbook/mass_cancel.rs - orderbook::mass_cancel::OrderBook<T>::cancel_orders_by_price_range (line 307) ... ok
[INFO] [stdout] test src/orderbook/fees.rs - orderbook::fees::FeeSchedule (line 12) ... ok
[INFO] [stdout] test src/orderbook/mass_cancel.rs - orderbook::mass_cancel::OrderBook<T>::cancel_all_orders (line 113) ... ok
[INFO] [stdout] test src/orderbook/mod.rs - orderbook::implied_volatility (line 33) ... ignored
[INFO] [stdout] test src/orderbook/mass_cancel.rs - orderbook::mass_cancel::OrderBook<T>::cancel_orders_by_side (line 214) ... ok
[INFO] [stdout] test src/orderbook/mass_cancel.rs - orderbook::mass_cancel::OrderBook<T>::cancel_orders_by_user (line 253) ... ok
[INFO] [stdout] test src/orderbook/snapshot.rs - orderbook::snapshot::EnrichedSnapshot (line 323) ... ok
[INFO] [stdout] test src/orderbook/sequencer/in_memory_journal.rs - orderbook::sequencer::in_memory_journal::InMemoryJournal (line 20) ... ok
[INFO] [stdout] test src/prelude.rs - prelude (line 13) ... ok
[INFO] [stdout] test src/orderbook/order_state.rs - orderbook::order_state::OrderStateTracker (line 222) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::order_book_imbalance (line 1239) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::find_level (line 1961) ... ok
[INFO] [stdout] test src/orderbook/snapshot.rs - orderbook::snapshot::MetricFlags (line 278) ... ok
[INFO] [stdout] test src/orderbook/order_state.rs - orderbook::order_state::OrderStateTracker::get_history (line 383) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::price_at_depth (line 851) ... ok
[INFO] [stdout] test src/orderbook/book.rs - orderbook::book::OrderBook<T>::enriched_snapshot_with_metrics (line 2431) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 41 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.65s; merged doctests compilation took 1.54s
[INFO] running `Command { std: "docker" "inspect" "beaa96518a2abb23611bcdb20f3cba9dba451ddb3f5fdcda5a92e5f217a5643c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "beaa96518a2abb23611bcdb20f3cba9dba451ddb3f5fdcda5a92e5f217a5643c", kill_on_drop: false }`
[INFO] [stdout] beaa96518a2abb23611bcdb20f3cba9dba451ddb3f5fdcda5a92e5f217a5643c
