[INFO] fetching crate market-maker-rs 0.3.0... [INFO] testing market-maker-rs-0.3.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate market-maker-rs 0.3.0 into /workspace/builds/worker-6-tc2/source [INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml [INFO] started tweaking crates.io crate market-maker-rs 0.3.0 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate market-maker-rs 0.3.0 [INFO] tweaked toml for crates.io crate market-maker-rs 0.3.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate market-maker-rs 0.3.0 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate market-maker-rs 0.3.0 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d7c1e07f088835800f298aeec98d3906d47e42aa64aa5fde9037bc3161e8b5cb [INFO] running `Command { std: "docker" "start" "-a" "d7c1e07f088835800f298aeec98d3906d47e42aa64aa5fde9037bc3161e8b5cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d7c1e07f088835800f298aeec98d3906d47e42aa64aa5fde9037bc3161e8b5cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d7c1e07f088835800f298aeec98d3906d47e42aa64aa5fde9037bc3161e8b5cb", kill_on_drop: false }` [INFO] [stdout] d7c1e07f088835800f298aeec98d3906d47e42aa64aa5fde9037bc3161e8b5cb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ff6b124f63f28c07a666e69d8a517486430408271e2918830e8c6f2fb4eb4327 [INFO] running `Command { std: "docker" "start" "-a" "ff6b124f63f28c07a666e69d8a517486430408271e2918830e8c6f2fb4eb4327", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling serde_json v1.0.147 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zmij v0.1.8 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling itoa v1.0.16 [INFO] [stderr] Compiling sha1_smol v1.0.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling rust_decimal v1.39.0 [INFO] [stderr] Compiling crossbeam-skiplist v0.1.3 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling rust_decimal_macros v1.39.0 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ulid v1.2.1 [INFO] [stderr] Compiling pricelevel v0.4.2 [INFO] [stderr] Compiling orderbook-rs v0.4.6 [INFO] [stderr] Compiling market-maker-rs v0.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.87s [INFO] running `Command { std: "docker" "inspect" "ff6b124f63f28c07a666e69d8a517486430408271e2918830e8c6f2fb4eb4327", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff6b124f63f28c07a666e69d8a517486430408271e2918830e8c6f2fb4eb4327", kill_on_drop: false }` [INFO] [stdout] ff6b124f63f28c07a666e69d8a517486430408271e2918830e8c6f2fb4eb4327 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 707ddc41524e071bdde3f68542035fa13439a3e8bf135265755ac11bf7557bb3 [INFO] running `Command { std: "docker" "start" "-a" "707ddc41524e071bdde3f68542035fa13439a3e8bf135265755ac11bf7557bb3", kill_on_drop: false }` [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling orderbook-rs v0.4.6 [INFO] [stderr] Compiling market-maker-rs v0.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 14.05s [INFO] running `Command { std: "docker" "inspect" "707ddc41524e071bdde3f68542035fa13439a3e8bf135265755ac11bf7557bb3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "707ddc41524e071bdde3f68542035fa13439a3e8bf135265755ac11bf7557bb3", kill_on_drop: false }` [INFO] [stdout] 707ddc41524e071bdde3f68542035fa13439a3e8bf135265755ac11bf7557bb3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2dd4f67feb2e0a32eb367bc108dcf0a96cc84cc4a92a301bb32a24ad7cea40ed [INFO] running `Command { std: "docker" "start" "-a" "2dd4f67feb2e0a32eb367bc108dcf0a96cc84cc4a92a301bb32a24ad7cea40ed", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/market_maker_rs-d75a2b5a813af9b7) [INFO] [stdout] [INFO] [stdout] running 604 tests [INFO] [stdout] test analytics::intensity::tests::test_config_invalid_smoothing ... ok [INFO] [stdout] test analytics::intensity::tests::test_estimator_cleanup ... ok [INFO] [stdout] test analytics::intensity::tests::test_config_invalid_min_trades ... ok [INFO] [stdout] test analytics::intensity::tests::test_estimator_estimate ... ok [INFO] [stdout] test analytics::intensity::tests::test_config_invalid_window ... ok [INFO] [stdout] test analytics::intensity::tests::test_estimator_insufficient_observations ... ok [INFO] [stdout] test analytics::intensity::tests::test_estimator_record_fill ... ok [INFO] [stdout] test analytics::intensity::tests::test_estimator_reset ... ok [INFO] [stdout] test analytics::intensity::tests::test_estimator_new ... ok [INFO] [stdout] test analytics::intensity::tests::test_config_valid ... ok [INFO] [stdout] test analytics::intensity::tests::test_ln_approx ... ok [INFO] [stdout] test analytics::intensity::tests::test_fill_probability ... ok [INFO] [stdout] test analytics::intensity::tests::test_fill_side ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_counter_reset ... ok [INFO] [stdout] test analytics::intensity::tests::test_linear_regression ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_gauge_negative ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_gauge_new ... ok [INFO] [stdout] test analytics::intensity::tests::test_observation_stats ... ok [INFO] [stdout] test analytics::intensity::tests::test_estimator_get_k_or_default ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_counter_add ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_counter_new ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_gauge_set ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_counter_increment ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_counter_with_value ... ok [INFO] [stdout] test analytics::intensity::tests::test_intensity_estimate_confidence ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_gauge_increment_decrement ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_position ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_gauge_with_value ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_add_realized_pnl ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_record_quote ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_record_orders ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_pnl ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_gauge_add_sub ... ok [INFO] [stdout] test analytics::intensity::tests::test_exp_approx ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_open_orders ... ok [INFO] [stdout] test analytics::intensity::tests::test_fill_observation ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_metrics_snapshot_has_activity ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_snapshot ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_reset ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_metrics_snapshot_default ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_snapshot_rates ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_metrics_snapshot_partial_fill_rate ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_new ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_metrics_snapshot_rejection_rate ... ok [INFO] [stdout] test analytics::order_flow::tests::test_add_trade_components ... ok [INFO] [stdout] test analytics::order_flow::tests::test_balanced_flow ... ok [INFO] [stdout] test analytics::order_flow::tests::test_builder_invalid_max_trades ... ok [INFO] [stdout] test analytics::order_flow::tests::test_builder_invalid_window ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_concurrent_pnl_updates ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_live_metrics_thread_safety ... ok [INFO] [stdout] test analytics::order_flow::tests::test_builder_valid ... ok [INFO] [stdout] test analytics::order_flow::tests::test_cleanup ... ok [INFO] [stdout] test analytics::live_metrics::tests::test_shared_live_metrics ... ok [INFO] [stdout] test analytics::order_flow::tests::test_clear ... ok [INFO] [stdout] test analytics::order_flow::tests::test_empty_analyzer ... ok [INFO] [stdout] test analytics::order_flow::tests::test_imbalanced_flow_bearish ... ok [INFO] [stdout] test analytics::order_flow::tests::test_imbalanced_flow_bullish ... ok [INFO] [stdout] test analytics::order_flow::tests::test_last_first_trade ... ok [INFO] [stdout] test analytics::order_flow::tests::test_max_trades_limit ... ok [INFO] [stdout] test analytics::order_flow::tests::test_single_buy_trade ... ok [INFO] [stdout] test analytics::order_flow::tests::test_single_sell_trade ... ok [INFO] [stdout] test analytics::order_flow::tests::test_trade_creation ... ok [INFO] [stdout] test analytics::order_flow::tests::test_trade_intensity ... ok [INFO] [stdout] test analytics::order_flow::tests::test_is_bullish_bearish ... ok [INFO] [stdout] test analytics::order_flow::tests::test_window_expiration ... ok [INFO] [stdout] test analytics::vpin::tests::test_trade_classifier_quote_rule ... ok [INFO] [stdout] test analytics::vpin::tests::test_trade_classifier_tick_rule ... ok [INFO] [stdout] test analytics::vpin::tests::test_volume_bucket_helpers ... ok [INFO] [stdout] test analytics::order_flow::tests::test_vwap_calculation ... ok [INFO] [stdout] test analytics::vpin::tests::test_volume_bucket_new ... ok [INFO] [stdout] test analytics::vpin::tests::test_trade_classifier_reset ... ok [INFO] [stdout] test analytics::vpin::tests::test_volume_bucket_signed_imbalance ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_bucket_rotation ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_calculator_single_bucket ... ok [INFO] [stdout] test analytics::vpin::tests::test_decimal_sqrt_approx ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_calculator_sufficient_buckets ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_config_valid ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_calculator_imbalanced ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_config_with_defaults ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_calculator_new ... ok [INFO] [stdout] test analytics::order_flow::tests::test_trade_side ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_config_invalid_num_buckets ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_calculator_mixed_imbalance ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_current_bucket_fill ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_bucket_stats ... ok [INFO] [stdout] test analytics::order_flow::tests::test_order_flow_stats_helpers ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_config_invalid_threshold ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_is_toxic ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_not_toxic ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_config_invalid_bucket_volume ... ok [INFO] [stdout] test analytics::order_flow::tests::test_volume_intensity ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_reset ... ok [INFO] [stdout] test backtest::data::tests::test_market_tick_imbalance ... ok [INFO] [stdout] test backtest::data::tests::test_market_tick_spread ... ok [INFO] [stdout] test backtest::data::tests::test_market_tick_mid_price ... ok [INFO] [stdout] test analytics::vpin::tests::test_vpin_toxicity_level ... ok [INFO] [stdout] test backtest::data::tests::test_market_tick_spread_bps ... ok [INFO] [stdout] test backtest::data::tests::test_market_tick_with_last_trade ... ok [INFO] [stdout] test backtest::data::tests::test_ohlcv_bar_body ... ok [INFO] [stdout] test backtest::data::tests::test_ohlcv_bar_new ... ok [INFO] [stdout] test backtest::data::tests::test_ohlcv_bar_range ... ok [INFO] [stdout] test backtest::data::tests::test_ohlcv_bar_typical_price ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_peek_tick ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_empty ... ok [INFO] [stdout] test backtest::data::tests::test_market_tick_new ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_push ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_time_range ... ok [INFO] [stdout] test backtest::data::tests::test_ohlcv_bar_bullish_bearish ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_remaining ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_config_default ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_new ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_config_with_record_trades ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_no_equity_curve ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_config_with_slippage ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_equity_curve ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_next_tick ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_max_drawdown ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_reset ... ok [INFO] [stdout] test backtest::data::tests::test_vec_data_source_time_range_empty ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_get_state ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_config_builder ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_progress_callback ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_reset ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_sharpe_calculation ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_passive ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_with_fees ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_with_fills ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_result_avg_trade_pnl ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_result_avg_trade_pnl_zero_trades ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_engine_with_actual_fills ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_result_duration ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_result_is_profitable ... ok [INFO] [stdout] test backtest::engine::tests::test_simulated_fill_notional ... ok [INFO] [stdout] test backtest::engine::tests::test_decimal_sqrt ... ok [INFO] [stdout] test backtest::engine::tests::test_simulated_fill_with_fee ... ok [INFO] [stdout] test backtest::engine::tests::test_slippage_model_fixed ... ok [INFO] [stdout] test backtest::engine::tests::test_slippage_model_none ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_result_default ... ok [INFO] [stdout] test backtest::engine::tests::test_slippage_model_percentage ... ok [INFO] [stdout] test backtest::fill_models::tests::test_decimal_sqrt_negative ... ok [INFO] [stdout] test backtest::engine::tests::test_slippage_model_volatility_based ... ok [INFO] [stdout] test backtest::fill_models::tests::test_decimal_sqrt_positive ... ok [INFO] [stdout] test backtest::fill_models::tests::test_decimal_sqrt_zero ... ok [INFO] [stdout] test backtest::fill_models::tests::test_immediate_fill_buy_fills ... ok [INFO] [stdout] test backtest::fill_models::tests::test_immediate_fill_buy_no_fill ... ok [INFO] [stdout] test backtest::engine::tests::test_simulated_fill_new ... ok [INFO] [stdout] test backtest::fill_models::tests::test_immediate_fill_sell_fills ... ok [INFO] [stdout] test backtest::fill_models::tests::test_immediate_fill_sell_no_fill ... ok [INFO] [stdout] test backtest::fill_models::tests::test_fill_result_full_fill ... ok [INFO] [stdout] test backtest::fill_models::tests::test_market_impact_buy_increases_price ... ok [INFO] [stdout] test backtest::fill_models::tests::test_market_impact_calculate_impact ... ok [INFO] [stdout] test backtest::fill_models::tests::test_fill_result_partial_fill ... ok [INFO] [stdout] test backtest::fill_models::tests::test_probabilistic_calculate_probability ... ok [INFO] [stdout] test backtest::fill_models::tests::test_immediate_fill_name ... ok [INFO] [stdout] test backtest::fill_models::tests::test_probabilistic_deterministic ... ok [INFO] [stdout] test backtest::fill_models::tests::test_fill_result_no_fill ... ok [INFO] [stdout] test backtest::fill_models::tests::test_probabilistic_new ... ok [INFO] [stdout] test backtest::fill_models::tests::test_market_impact_reset ... ok [INFO] [stdout] test backtest::fill_models::tests::test_market_impact_no_fill_passes_through ... ok [INFO] [stdout] test backtest::fill_models::tests::test_market_impact_sell_decreases_price ... ok [INFO] [stdout] test backtest::fill_models::tests::test_queue_position_new ... ok [INFO] [stdout] test backtest::fill_models::tests::test_queue_position_no_fill_market_not_crossed ... ok [INFO] [stdout] test backtest::fill_models::tests::test_probabilistic_probability_increases_with_time ... ok [INFO] [stdout] test backtest::fill_models::tests::test_queue_position_partial_fill ... ok [INFO] [stdout] test backtest::fill_models::tests::test_queue_position_reset ... ok [INFO] [stdout] test backtest::fill_models::tests::test_queue_position_update_queue ... ok [INFO] [stdout] test backtest::fill_models::tests::test_simulated_order_is_buy_sell ... ok [INFO] [stdout] test backtest::fill_models::tests::test_simulated_order_new ... ok [INFO] [stdout] test backtest::fill_models::tests::test_simulated_order_notional ... ok [INFO] [stdout] test backtest::metrics::tests::test_calculate_empty_equity ... ok [INFO] [stdout] test backtest::fill_models::tests::test_queue_position_fill_after_queue_clears ... ok [INFO] [stdout] test backtest::fill_models::tests::test_queue_position_min_queue_time ... ok [INFO] [stdout] test backtest::engine::tests::test_backtest_config_with_initial_capital ... ok [INFO] [stdout] test backtest::metrics::tests::test_calculate_returns_empty ... ok [INFO] [stdout] test backtest::metrics::tests::test_calculate_no_trades ... ok [INFO] [stdout] test backtest::metrics::tests::test_calculate_returns_single_point ... ok [INFO] [stdout] test backtest::metrics::tests::test_decimal_exp ... ok [INFO] [stdout] test backtest::metrics::tests::test_decimal_ln ... ok [INFO] [stdout] test backtest::metrics::tests::test_calculate_returns ... ok [INFO] [stdout] test backtest::metrics::tests::test_decimal_sqrt_zero ... ok [INFO] [stdout] test backtest::metrics::tests::test_decimal_sqrt ... ok [INFO] [stdout] test backtest::metrics::tests::test_equity_point_new ... ok [INFO] [stdout] test backtest::metrics::tests::test_max_drawdown ... ok [INFO] [stdout] test backtest::metrics::tests::test_max_drawdown_empty ... ok [INFO] [stdout] test backtest::metrics::tests::test_metrics_config_builder ... ok [INFO] [stdout] test backtest::metrics::tests::test_performance_metrics_expectancy ... ok [INFO] [stdout] test backtest::metrics::tests::test_metrics_config_default ... ok [INFO] [stdout] test backtest::metrics::tests::test_performance_metrics_is_profitable ... ok [INFO] [stdout] test backtest::fill_models::tests::test_probabilistic_reset ... ok [INFO] [stdout] test backtest::metrics::tests::test_calculate_full_metrics ... ok [INFO] [stdout] test execution::connector::tests::test_empty_order_book ... ok [INFO] [stdout] test execution::connector::tests::test_book_level ... ok [INFO] [stdout] test execution::connector::tests::test_fill ... ok [INFO] [stdout] test backtest::metrics::tests::test_performance_metrics_risk_reward ... ok [INFO] [stdout] test backtest::metrics::tests::test_profit_factor ... ok [INFO] [stdout] test backtest::metrics::tests::test_profit_factor_no_losses ... ok [INFO] [stdout] test backtest::metrics::tests::test_sharpe_ratio_empty ... ok [INFO] [stdout] test backtest::metrics::tests::test_sharpe_ratio ... ok [INFO] [stdout] test backtest::metrics::tests::test_sortino_ratio ... ok [INFO] [stdout] test backtest::metrics::tests::test_trade_record_duration ... ok [INFO] [stdout] test backtest::metrics::tests::test_trade_record_is_winner ... ok [INFO] [stdout] test backtest::metrics::tests::test_trade_record_net_pnl ... ok [INFO] [stdout] test backtest::metrics::tests::test_var ... ok [INFO] [stdout] test backtest::metrics::tests::test_trade_record_new ... ok [INFO] [stdout] test execution::connector::tests::test_order_book_imbalance ... ok [INFO] [stdout] test execution::connector::tests::test_order_book_snapshot ... ok [INFO] [stdout] test execution::connector::tests::test_order_id ... ok [INFO] [stdout] test execution::connector::tests::test_order_request ... ok [INFO] [stdout] test execution::connector::tests::test_order_request_builders ... ok [INFO] [stdout] test execution::connector::tests::test_order_status ... ok [INFO] [stdout] test execution::connector::tests::test_order_type ... ok [INFO] [stdout] test execution::connector::tests::test_side ... ok [INFO] [stdout] test execution::connector::tests::test_time_in_force ... ok [INFO] [stdout] test execution::latency::tests::test_histogram_new ... ok [INFO] [stdout] test execution::latency::tests::test_histogram_overflow ... ok [INFO] [stdout] test execution::latency::tests::test_histogram_percentile ... ok [INFO] [stdout] test execution::latency::tests::test_histogram_record ... ok [INFO] [stdout] test execution::latency::tests::test_histogram_reset ... ok [INFO] [stdout] test execution::latency::tests::test_integer_sqrt ... ok [INFO] [stdout] test execution::latency::tests::test_latency_measurement_as_duration ... ok [INFO] [stdout] test execution::latency::tests::test_latency_measurement_from_duration ... ok [INFO] [stdout] test execution::latency::tests::test_latency_measurement_new ... ok [INFO] [stdout] test execution::latency::tests::test_latency_metric_all ... ok [INFO] [stdout] test execution::latency::tests::test_latency_metric_as_str ... ok [INFO] [stdout] test execution::latency::tests::test_latency_stats_empty ... ok [INFO] [stdout] test execution::latency::tests::test_latency_stats_single ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_config_builder ... ok [INFO] [stdout] test execution::latency::tests::test_latency_stats_multiple ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_get_all_stats ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_is_degraded ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_get_recent ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_get_stats ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_record ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_record_duration ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_reset_metric ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_window_rotation ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_is_p99_degraded ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_with_histogram ... ok [INFO] [stdout] test execution::mock::tests::test_cancel_order ... ok [INFO] [stdout] test execution::mock::tests::test_cancel_nonexistent_order ... ok [INFO] [stdout] test execution::mock::tests::test_cancel_all_orders ... ok [INFO] [stdout] test execution::mock::tests::test_get_open_orders ... ok [INFO] [stdout] test execution::mock::tests::test_mock_config_builder ... ok [INFO] [stdout] test execution::mock::tests::test_client_order_id ... ok [INFO] [stdout] test execution::mock::tests::test_get_balance ... ok [INFO] [stdout] test execution::mock::tests::test_get_orderbook ... ok [INFO] [stdout] test execution::mock::tests::test_get_order_status ... ok [INFO] [stdout] test execution::mock::tests::test_open_order_count ... ok [INFO] [stdout] test execution::mock::tests::test_market_data_stream ... ok [INFO] [stdout] test execution::latency::tests::test_percentile_function ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_reset ... ok [INFO] [stdout] test execution::mock::tests::test_modify_order ... ok [INFO] [stdout] test execution::mock::tests::test_set_balance ... ok [INFO] [stdout] test execution::latency::tests::test_latency_tracker_config_default ... ok [INFO] [stdout] test execution::mock::tests::test_submit_limit_order ... ok [INFO] [stdout] test execution::mock::tests::test_time_management ... ok [INFO] [stdout] test execution::order_manager::tests::test_managed_order_new ... ok [INFO] [stdout] test execution::mock::tests::test_submit_market_order ... ok [INFO] [stdout] test execution::order_manager::tests::test_managed_order_record_fill ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_age ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_check_timeouts ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_cleanup ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_duplicate_detection ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_get_open_orders ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_mark_cancelled ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_get_open_quantity ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_max_open_orders ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_record_fill ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_register ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_stats ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_manager_update_order ... ok [INFO] [stdout] test execution::order_manager::tests::test_order_notional ... ok [INFO] [stdout] test execution::order_manager::tests::test_thread_safe_order_manager ... ok [INFO] [stdout] test execution::orderbook_connector::tests::test_balance ... ok [INFO] [stdout] test execution::orderbook_connector::tests::test_cancel_all_orders ... ok [INFO] [stdout] test execution::orderbook_connector::tests::test_connector_creation ... ok [INFO] [stdout] test execution::orderbook_connector::tests::test_get_orderbook ... ok [INFO] [stdout] test execution::orderbook_connector::tests::test_submit_and_cancel_order ... ok [INFO] [stdout] test market_state::snapshot::tests::test_market_state_new ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_ewma_insufficient_data ... ok [INFO] [stdout] test execution::orderbook_connector::tests::test_submit_limit_order ... ok [INFO] [stdout] test market_state::snapshot::tests::test_market_state_creation ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_ewma_negative_price ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_parkinson_empty_vectors ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_parkinson_high_less_than_low ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_parkinson_mismatched_lengths ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_ewma_valid ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_parkinson_negative_price ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_parkinson_valid ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_simple_insufficient_data ... ok [INFO] [stdout] test market_state::volatility::tests::test_volatility_estimator_with_custom_factor ... ok [INFO] [stdout] test position::inventory::tests::test_default_position ... ok [INFO] [stdout] test position::inventory::tests::test_is_flat ... ok [INFO] [stdout] test position::inventory::tests::test_is_long ... ok [INFO] [stdout] test market_state::volatility::tests::test_ewma_vs_simple ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_ewma_with_many_prices ... ok [INFO] [stdout] test position::inventory::tests::test_is_short ... ok [INFO] [stdout] test position::inventory::tests::test_new_position_is_flat ... ok [INFO] [stdout] test market_state::volatility::tests::test_volatility_estimator_new ... ok [INFO] [stdout] test position::inventory::tests::test_unrealized_pnl_flat ... ok [INFO] [stdout] test position::inventory::tests::test_unrealized_pnl_long_loss ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_ewma_invalid_lambda ... ok [INFO] [stdout] test position::inventory::tests::test_unrealized_pnl_long_profit ... ok [INFO] [stdout] test position::inventory::tests::test_update_fill_flatten_position ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_parkinson_zero_price ... ok [INFO] [stdout] test position::inventory::tests::test_update_fill_reduce_position ... ok [INFO] [stdout] test position::inventory::tests::test_update_fill_sell ... ok [INFO] [stdout] test position::inventory::tests::test_update_fill_weighted_average ... ok [INFO] [stdout] test position::inventory::tests::test_very_small_position_is_flat ... ok [INFO] [stdout] test position::pnl::tests::test_default_pnl ... ok [INFO] [stdout] test position::inventory::tests::test_update_fill_buy ... ok [INFO] [stdout] test position::pnl::tests::test_new_pnl ... ok [INFO] [stdout] test position::pnl::tests::test_pnl_add_realized ... ok [INFO] [stdout] test position::pnl::tests::test_pnl_add_realized_negative ... ok [INFO] [stdout] test position::pnl::tests::test_pnl_combined_operations ... ok [INFO] [stdout] test position::inventory::tests::test_unrealized_pnl_short_profit ... ok [INFO] [stdout] test position::inventory::tests::test_update_fill_flip_position ... ok [INFO] [stdout] test position::pnl::tests::test_pnl_set_unrealized ... ok [INFO] [stdout] test position::pnl::tests::test_pnl_with_values ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_acknowledge ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_is_critical ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_new ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_display ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_type_default_message ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_type_default_message_all_variants ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_type_key ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_type_type_key_all_variants ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_type_display ... ok [INFO] [stdout] test risk::alerts::tests::test_callback_handler ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_with_default_message ... ok [INFO] [stdout] test risk::alerts::tests::test_callback_handler_accepts_severity ... ok [INFO] [stdout] test position::pnl::tests::test_pnl_update ... ok [INFO] [stdout] test risk::alerts::tests::test_alert_is_error_or_higher ... ok [INFO] [stdout] test risk::alerts::tests::test_callback_handler_debug ... ok [INFO] [stdout] test risk::alerts::tests::test_collecting_handler ... ok [INFO] [stdout] test risk::alerts::tests::test_collecting_handler_accepts_severity ... ok [INFO] [stdout] test risk::alerts::tests::test_log_handler_accepts_severity ... ok [INFO] [stdout] test risk::alerts::tests::test_log_handler_all ... ok [INFO] [stdout] test risk::alerts::tests::test_log_handler_default ... ok [INFO] [stdout] test risk::alerts::tests::test_log_handler_all_severities ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_acknowledge ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_acknowledge_nonexistent ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_add_handler ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_acknowledge_all ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_alert ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_get_alerts_by_severity ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_get_recent_alerts ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_cleanup ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_history_limit ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_new ... ok [INFO] [stdout] test risk::alerts::tests::test_severity_all ... ok [INFO] [stdout] test risk::alerts::tests::test_severity_display ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_severity_filtering ... ok [INFO] [stdout] test risk::alerts::tests::test_severity_ordering ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_config_invalid_max_consecutive_losses ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_simple_negative_price ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_config_invalid_max_daily_loss ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_config_invalid_max_volatility ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_config_invalid_rapid_drawdown_threshold ... ok [INFO] [stdout] test market_state::volatility::tests::test_calculate_simple_valid ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_config_invalid_rapid_drawdown_window ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_different_types_not_deduplicated ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_cooldown_expiry ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_config_valid ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_cooldown_transition ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_record_losing_trade ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_deduplication ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_record_winning_trade ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_equity_history_pruning ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_reset ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_state_helper_methods ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_trigger_consecutive_losses ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_trigger_reason_display ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_trigger_volatility_spike ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_consecutive_losses_reset_on_win ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_with_initial_equity ... ok [INFO] [stdout] test risk::drawdown::tests::test_distance_to_max_drawdown ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_new_breaker_is_active ... ok [INFO] [stdout] test risk::drawdown::tests::test_drawdown_history ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_trigger_max_daily_loss ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_manual_trigger ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_trigger_rapid_drawdown ... ok [INFO] [stdout] test risk::circuit_breaker::tests::test_no_recording_when_triggered ... ok [INFO] [stdout] test risk::drawdown::tests::test_equity_at_max_drawdown ... ok [INFO] [stdout] test risk::drawdown::tests::test_history_pruning ... ok [INFO] [stdout] test risk::drawdown::tests::test_max_drawdown_reached ... ok [INFO] [stdout] test risk::drawdown::tests::test_max_historical_drawdown ... ok [INFO] [stdout] test risk::drawdown::tests::test_new_invalid_equity ... ok [INFO] [stdout] test risk::drawdown::tests::test_new_invalid_max_drawdown ... ok [INFO] [stdout] test risk::drawdown::tests::test_new_valid ... ok [INFO] [stdout] test risk::drawdown::tests::test_recovery_and_new_peak ... ok [INFO] [stdout] test risk::drawdown::tests::test_reset ... ok [INFO] [stdout] test risk::drawdown::tests::test_reset_peak ... ok [INFO] [stdout] test risk::drawdown::tests::test_update_drawdown ... ok [INFO] [stdout] test risk::drawdown::tests::test_update_new_peak ... ok [INFO] [stdout] test risk::alerts::tests::test_manager_clear_history ... ok [INFO] [stdout] test risk::drawdown::tests::test_with_timestamp ... ok [INFO] [stdout] test risk::limits::tests::test_check_order_exactly_at_limit ... ok [INFO] [stdout] test risk::limits::tests::test_check_order_exceeds_notional_limit ... ok [INFO] [stdout] test risk::limits::tests::test_check_order_exceeds_position_limit ... ok [INFO] [stdout] test risk::limits::tests::test_check_order_invalid_price ... ok [INFO] [stdout] test risk::limits::tests::test_check_order_reducing_position ... ok [INFO] [stdout] test risk::limits::tests::test_check_order_within_limits ... ok [INFO] [stdout] test risk::limits::tests::test_is_notional_limit_breached ... ok [INFO] [stdout] test risk::limits::tests::test_is_position_limit_breached ... ok [INFO] [stdout] test risk::limits::tests::test_new_invalid_max_notional ... ok [INFO] [stdout] test risk::limits::tests::test_new_invalid_max_position ... ok [INFO] [stdout] test risk::limits::tests::test_new_invalid_scaling_factor ... ok [INFO] [stdout] test risk::limits::tests::test_new_valid_limits ... ok [INFO] [stdout] test risk::limits::tests::test_new_one_scaling_factor ... ok [INFO] [stdout] test risk::limits::tests::test_new_zero_scaling_factor ... ok [INFO] [stdout] test risk::limits::tests::test_position_utilization ... ok [INFO] [stdout] test risk::limits::tests::test_remaining_position_capacity ... ok [INFO] [stdout] test risk::limits::tests::test_scale_order_size_at_half_position ... ok [INFO] [stdout] test risk::limits::tests::test_scale_order_size_at_limit ... ok [INFO] [stdout] test risk::limits::tests::test_scale_order_size_at_zero_position ... ok [INFO] [stdout] test risk::limits::tests::test_scale_order_size_beyond_limit ... ok [INFO] [stdout] test risk::limits::tests::test_scale_order_size_negative_position ... ok [INFO] [stdout] test risk::limits::tests::test_scale_order_size_zero_desired ... ok [INFO] [stdout] test risk::limits::tests::test_scale_order_size_zero_scaling_factor ... ok [INFO] [stdout] test risk::portfolio::tests::test_asset_id_equality ... ok [INFO] [stdout] test risk::portfolio::tests::test_asset_id_from ... ok [INFO] [stdout] test risk::portfolio::tests::test_asset_id_new ... ok [INFO] [stdout] test risk::portfolio::tests::test_correlation_matrix_invalid_range ... ok [INFO] [stdout] test risk::portfolio::tests::test_correlation_matrix_is_valid ... ok [INFO] [stdout] test risk::portfolio::tests::test_correlation_matrix_new ... ok [INFO] [stdout] test risk::portfolio::tests::test_correlation_matrix_self_correlation ... ok [INFO] [stdout] test risk::portfolio::tests::test_correlation_matrix_set_get ... ok [INFO] [stdout] test risk::portfolio::tests::test_correlation_matrix_to_matrix ... ok [INFO] [stdout] test risk::portfolio::tests::test_correlation_matrix_update_from_returns ... ok [INFO] [stdout] test risk::portfolio::tests::test_find_best_hedge ... ok [INFO] [stdout] test risk::portfolio::tests::test_hedge_ratio ... ok [INFO] [stdout] test risk::portfolio::tests::test_diversification_ratio ... ok [INFO] [stdout] test risk::portfolio::tests::test_hedge_ratio_zero_vol ... ok [INFO] [stdout] test risk::portfolio::tests::test_marginal_risk_contribution ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_position_new ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_position_remove ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_position_set_get ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_position_totals ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_var ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_variance_single_asset ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_variance_two_assets ... ok [INFO] [stdout] test risk::portfolio::tests::test_portfolio_volatility ... ok [INFO] [stdout] test risk::portfolio::tests::test_residual_risk ... ok [INFO] [stdout] test risk::portfolio::tests::test_residual_risk_perfect_correlation ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_adaptive_spread_asymmetric ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_adaptive_spread_prices ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_adaptive_spread_symmetric ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_orderbook_imbalance ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_orderbook_imbalance_limited_levels ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_spread_ask_heavy ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_spread_balanced ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_spread_bid_heavy ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_spread_with_tradeflow ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_spread_with_volatility ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_tradeflow_imbalance ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_calculate_tradeflow_imbalance_window ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_config_invalid_base_spread ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_config_invalid_max_adjustment ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_config_invalid_sensitivity ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_config_valid ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_orderbook_imbalance_ask_heavy ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_orderbook_imbalance_balanced ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_orderbook_imbalance_bid_heavy ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_orderbook_imbalance_empty ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_trade_creation ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_tradeflow_imbalance_buy_dominated ... ok [INFO] [stdout] test strategy::adaptive_spread::tests::test_tradeflow_imbalance_sell_dominated ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_quotes_bid_exceeds_ask_error ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_quotes_negative_bid_error ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_quotes_spread_positive ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_quotes_valid ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_quotes_with_negative_inventory ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_quotes_with_positive_inventory ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_spread_increases_with_volatility ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_spread_invalid_order_intensity ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_spread_invalid_risk_aversion ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_spread_invalid_volatility ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_spread_negative_result ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_spread_non_finite_result ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_optimal_spread_positive ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_flat_inventory ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_invalid_inventory ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_invalid_mid_price ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_invalid_risk_aversion ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_invalid_volatility ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_long_inventory ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_non_finite_result ... ok [INFO] [stdout] test strategy::avellaneda_stoikov::tests::test_reservation_price_short_inventory ... ok [INFO] [stdout] test strategy::calibration::tests::test_calibration_config_default ... ok [INFO] [stdout] test strategy::calibration::tests::test_calibration_config_precise ... ok [INFO] [stdout] test strategy::calibration::tests::test_calibration_config_quick ... ok [INFO] [stdout] test strategy::calibration::tests::test_calibration_result_new ... ok [INFO] [stdout] test strategy::calibration::tests::test_calibration_result_quality_checks ... ok [INFO] [stdout] test strategy::calibration::tests::test_calibration_result_with_note ... ok [INFO] [stdout] test strategy::calibration::tests::test_fill_observation_new ... ok [INFO] [stdout] test strategy::calibration::tests::test_optimized_parameters_adjusted_gamma ... ok [INFO] [stdout] test strategy::calibration::tests::test_optimized_parameters_is_acceptable ... ok [INFO] [stdout] test strategy::calibration::tests::test_optimizer_full ... ok [INFO] [stdout] test strategy::calibration::tests::test_optimizer_quick ... ok [INFO] [stdout] test strategy::calibration::tests::test_optimizer_quick_high_vol ... ok [INFO] [stdout] test strategy::calibration::tests::test_order_intensity_from_fills ... ok [INFO] [stdout] test strategy::calibration::tests::test_order_intensity_insufficient_data ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_adjustments ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_adjustments_default ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_adjustments_neutral ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_detector_extreme ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_detector_high ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_detector_low ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_detector_normal ... ok [INFO] [stdout] test strategy::calibration::tests::test_regime_detector_zero_historical ... ok [INFO] [stdout] test strategy::calibration::tests::test_risk_aversion_from_history ... ok [INFO] [stdout] test strategy::calibration::tests::test_risk_aversion_insufficient_data ... ok [INFO] [stdout] test strategy::calibration::tests::test_risk_aversion_from_halflife ... ok [INFO] [stdout] test strategy::calibration::tests::test_risk_aversion_zero_volatility ... ok [INFO] [stdout] test strategy::calibration::tests::test_volatility_regime_display ... ok [INFO] [stdout] test strategy::config::tests::test_invalid_min_spread_negative ... ok [INFO] [stdout] test strategy::config::tests::test_invalid_order_intensity_negative ... ok [INFO] [stdout] test strategy::config::tests::test_invalid_risk_aversion_negative ... ok [INFO] [stdout] test strategy::config::tests::test_invalid_risk_aversion_zero ... ok [INFO] [stdout] test strategy::config::tests::test_valid_config ... ok [INFO] [stdout] test strategy::config::tests::test_invalid_order_intensity_zero ... ok [INFO] [stdout] test strategy::depth_based::tests::test_calculate_ask_size_short_inventory ... ok [INFO] [stdout] test strategy::depth_based::tests::test_calculate_bid_size_flat_inventory ... ok [INFO] [stdout] test strategy::config::tests::test_valid_min_spread_zero ... ok [INFO] [stdout] test strategy::depth_based::tests::test_calculate_bid_size_long_inventory ... ok [INFO] [stdout] test strategy::depth_based::tests::test_calculate_bid_size_short_inventory ... ok [INFO] [stdout] test strategy::depth_based::tests::test_depth_based_offering_creation ... ok [INFO] [stdout] test strategy::depth_based::tests::test_price_adjustment_for_bid ... ok [INFO] [stdout] test strategy::depth_based::tests::test_price_adjustment_for_ask ... ok [INFO] [stdout] test strategy::depth_based::tests::test_calculate_ask_size_long_inventory ... ok [INFO] [stdout] test strategy::depth_based::tests::test_symmetric_sizing ... ok [INFO] [stdout] test strategy::glft::tests::test_compare_with_as ... ok [INFO] [stdout] test strategy::depth_based::tests::test_calculate_ask_size_flat_inventory ... ok [INFO] [stdout] test strategy::glft::tests::test_config_invalid_order_intensity ... ok [INFO] [stdout] test strategy::glft::tests::test_config_invalid_risk_aversion ... ok [INFO] [stdout] test strategy::glft::tests::test_config_valid ... ok [INFO] [stdout] test strategy::glft::tests::test_config_invalid_terminal_penalty ... ok [INFO] [stdout] test strategy::glft::tests::test_config_with_dynamic_gamma ... ok [INFO] [stdout] test strategy::glft::tests::test_dynamic_gamma_at_end ... ok [INFO] [stdout] test strategy::glft::tests::test_config_with_penalty_function ... ok [INFO] [stdout] test strategy::glft::tests::test_dynamic_gamma_at_start ... ok [INFO] [stdout] test strategy::glft::tests::test_config_invalid_terminal_time ... ok [INFO] [stdout] test strategy::glft::tests::test_dynamic_gamma_disabled ... ok [INFO] [stdout] test strategy::glft::tests::test_optimal_quotes_valid ... ok [INFO] [stdout] test strategy::glft::tests::test_dynamic_gamma_halfway ... ok [INFO] [stdout] test strategy::glft::tests::test_optimal_quotes_with_inventory ... ok [INFO] [stdout] test strategy::glft::tests::test_optimal_spread_positive ... ok [INFO] [stdout] test strategy::glft::tests::test_optimal_spread_min_constraint ... ok [INFO] [stdout] test strategy::calibration::tests::test_volatility_regime_is_high_risk ... ok [INFO] [stdout] test strategy::glft::tests::test_penalty_function_linear ... ok [INFO] [stdout] test strategy::glft::tests::test_penalty_function_quadratic ... ok [INFO] [stdout] test strategy::glft::tests::test_invalid_mid_price ... ok [INFO] [stdout] test strategy::glft::tests::test_reservation_price_flat_inventory ... ok [INFO] [stdout] test strategy::grid::tests::test_generate_grid_prices ... ok [INFO] [stdout] test strategy::glft::tests::test_invalid_volatility ... ok [INFO] [stdout] test strategy::glft::tests::test_reservation_price_long_inventory ... ok [INFO] [stdout] test strategy::grid::tests::test_generate_grid_with_inventory_long ... ok [INFO] [stdout] test strategy::glft::tests::test_reservation_price_short_inventory ... ok [INFO] [stdout] test strategy::grid::tests::test_generate_grid_symmetric ... ok [INFO] [stdout] test strategy::glft::tests::test_terminal_penalty_effect ... ok [INFO] [stdout] test strategy::glft::tests::test_terminal_penalty_increases_near_end ... ok [INFO] [stdout] test strategy::grid::tests::test_arithmetic_spacing ... ok [INFO] [stdout] test strategy::grid::tests::test_calculate_level_size_no_progression ... ok [INFO] [stdout] test strategy::grid::tests::test_calculate_level_size_with_progression ... ok [INFO] [stdout] test strategy::grid::tests::test_config_invalid_base_size ... ok [INFO] [stdout] test strategy::grid::tests::test_config_invalid_levels ... ok [INFO] [stdout] test strategy::grid::tests::test_config_invalid_max_position ... ok [INFO] [stdout] test strategy::grid::tests::test_config_invalid_spacing ... ok [INFO] [stdout] test strategy::grid::tests::test_config_valid ... ok [INFO] [stdout] test strategy::grid::tests::test_config_with_progression ... ok [INFO] [stdout] test strategy::grid::tests::test_generate_grid_with_inventory_short ... ok [INFO] [stdout] test strategy::grid::tests::test_grid_order_notional ... ok [INFO] [stdout] test strategy::grid::tests::test_generate_grid_with_max_inventory ... ok [INFO] [stdout] test strategy::grid::tests::test_order_side_display ... ok [INFO] [stdout] test strategy::grid::tests::test_strategy_invalid_reference_price ... ok [INFO] [stdout] test strategy::grid::tests::test_total_orders ... ok [INFO] [stdout] test strategy::grid::tests::test_update_reference_price ... ok [INFO] [stdout] test strategy::grid::tests::test_strategy_with_reference_price ... ok [INFO] [stdout] test strategy::interface::tests::test_default_avellaneda_stoikov_sync ... ok [INFO] [stdout] test strategy::interface::tests::test_default_optimal_spread_sync ... ok [INFO] [stdout] test strategy::interface::tests::test_default_avellaneda_stoikov_async ... ok [INFO] [stdout] test strategy::quote::tests::test_quote_mid_price ... ok [INFO] [stdout] test strategy::quote::tests::test_quote_spread ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_ln ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_ln_error_handling ... ok [INFO] [stdout] test strategy::interface::tests::test_default_reservation_price_sync ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_ln_negative_value ... ok [INFO] [stdout] test strategy::quote::tests::test_quote_creation ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_ln_zero ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_powi_conversion_error ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_powi ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_powi_error_handling ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_sqrt_conversion_error ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_sqrt ... ok [INFO] [stdout] test strategy::grid::tests::test_price_range ... ok [INFO] [stdout] test strategy::grid::tests::test_strategy_new ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_sqrt_error_handling ... ok [INFO] [stdout] test types::error::tests::test_error_creation ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_sqrt_negative_value ... ok [INFO] [stdout] test types::decimal::tests::test_decimal_ln_conversion_error ... ok [INFO] [stdout] test types::error::tests::test_error_type_checking ... ok [INFO] [stdout] test types::error::tests::test_result_type ... ok [INFO] [stdout] test types::error::tests::test_error_message ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 604 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-2ed1e2d705809429) [INFO] [stderr] Doc-tests market_maker_rs [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 168 tests [INFO] [stdout] test src/analytics/live_metrics.rs - analytics::live_metrics::Gauge (line 109) ... ok [INFO] [stdout] test src/analytics/intensity.rs - analytics::intensity::FillObservation (line 177) ... ok [INFO] [stdout] test src/analytics/order_flow.rs - analytics::order_flow::Trade (line 67) ... ok [INFO] [stdout] test src/analytics/mod.rs - analytics::intensity (line 68) ... ok [INFO] [stdout] test src/analytics/intensity.rs - analytics::intensity::OrderIntensityEstimator (line 308) ... ok [INFO] [stdout] test src/analytics/vpin.rs - analytics::vpin::VPINConfig (line 74) ... ok [INFO] [stdout] test src/analytics/vpin.rs - analytics::vpin::VPINConfig::new (line 112) ... ok [INFO] [stdout] test src/analytics/vpin.rs - analytics::vpin::VPINCalculator (line 253) ... ok [INFO] [stdout] test src/analytics/order_flow.rs - analytics::order_flow::OrderFlowAnalyzer (line 237) ... ok [INFO] [stdout] test src/analytics/live_metrics.rs - analytics::live_metrics::Counter (line 53) ... ok [INFO] [stdout] test src/analytics/mod.rs - analytics::order_flow (line 44) ... ok [INFO] [stdout] test src/analytics/live_metrics.rs - analytics::live_metrics::LiveMetrics (line 290) ... ok [INFO] [stdout] test src/backtest/data.rs - backtest::data::MarketTick (line 35) ... ok [INFO] [stdout] test src/analytics/mod.rs - analytics::live_metrics (line 54) ... ok [INFO] [stdout] test src/analytics/mod.rs - analytics::vpin (line 68) ... ok [INFO] [stdout] test src/analytics/order_flow.rs - analytics::order_flow::OrderFlowAnalyzer::new (line 273) ... ok [INFO] [stdout] test src/backtest/engine.rs - backtest::engine::BacktestEngine (line 396) ... ok [INFO] [stdout] test src/backtest/data.rs - backtest::data::OHLCVBar (line 150) ... ok [INFO] [stdout] test src/backtest/fill_models.rs - backtest::fill_models::FillResult (line 114) ... ok [INFO] [stdout] test src/backtest/fill_models.rs - backtest::fill_models::QueuePositionFillModel (line 302) ... ok [INFO] [stdout] test src/backtest/engine.rs - backtest::engine::SlippageModel (line 131) ... ok [INFO] [stdout] test src/backtest/data.rs - backtest::data::VecDataSource (line 276) ... ok [INFO] [stdout] test src/backtest/engine.rs - backtest::engine::BacktestConfig (line 178) ... ok [INFO] [stdout] test src/backtest/engine.rs - backtest::engine::BacktestResult (line 291) ... ok [INFO] [stdout] test src/backtest/fill_models.rs - backtest::fill_models::MarketImpactFillModel (line 643) ... ok [INFO] [stdout] test src/backtest/metrics.rs - backtest::metrics::EquityPoint (line 60) ... ok [INFO] [stdout] test src/backtest/engine.rs - backtest::engine::SimulatedFill (line 66) ... ok [INFO] [stdout] test src/backtest/fill_models.rs - backtest::fill_models::ImmediateFillModel (line 227) ... ok [INFO] [stdout] test src/backtest/fill_models.rs - backtest::fill_models::ProbabilisticFillModel (line 468) ... ok [INFO] [stdout] test src/backtest/fill_models.rs - backtest::fill_models::SimulatedOrder (line 55) ... ok [INFO] [stdout] test src/backtest/metrics.rs - backtest::metrics::MetricsCalculator (line 364) ... ok [INFO] [stdout] test src/backtest/mod.rs - backtest::engine (line 51) ... ok [INFO] [stdout] test src/backtest/metrics.rs - backtest::metrics::MetricsConfig (line 195) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::Fill (line 528) ... ok [INFO] [stdout] test src/backtest/metrics.rs - backtest::metrics::TradeRecord (line 92) ... ok [INFO] [stdout] test src/backtest/mod.rs - backtest::metrics (line 66) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::Side (line 103) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::OrderBookSnapshot (line 625) ... ok [INFO] [stdout] test src/backtest/mod.rs - backtest::fill_models (line 63) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::OrderRequest (line 363) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::OrderId (line 51) ... ok [INFO] [stdout] test src/execution/latency.rs - execution::latency::LatencyStats (line 103) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::OrderStatus (line 247) ... ok [INFO] [stdout] test src/execution/latency.rs - execution::latency::LatencyMeasurement (line 49) ... ok [INFO] [stdout] test src/backtest/mod.rs - backtest::data (line 48) ... ok [INFO] [stdout] test src/execution/latency.rs - execution::latency::LatencyTrackerConfig (line 230) ... ok [INFO] [stdout] test src/execution/latency.rs - execution::latency::LatencyTracker (line 415) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::OrderType (line 155) ... ok [INFO] [stdout] test src/execution/mock.rs - execution::mock::MockConfig (line 48) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::BookLevel (line 589) ... ok [INFO] [stdout] test src/execution/connector.rs - execution::connector::OrderResponse (line 476) ... ok [INFO] [stdout] test src/execution/mod.rs - execution::orderbook_connector (line 58) ... ignored [INFO] [stdout] test src/execution/connector.rs - execution::connector::TimeInForce (line 200) ... ok [INFO] [stdout] test src/analytics/intensity.rs - analytics::intensity::OrderIntensityConfig (line 68) ... ok [INFO] [stdout] test src/lib.rs - (line 196) ... ignored [INFO] [stdout] test src/lib.rs - (line 237) ... ignored [INFO] [stdout] test src/lib.rs - (line 255) ... ignored [INFO] [stdout] test src/lib.rs - (line 282) ... ignored [INFO] [stdout] test src/lib.rs - (line 308) ... ignored [INFO] [stdout] test src/lib.rs - (line 330) ... ignored [INFO] [stdout] test src/lib.rs - (line 362) ... ignored [INFO] [stdout] test src/execution/latency.rs - execution::latency::Histogram (line 298) ... ok [INFO] [stdout] test src/lib.rs - analytics (line 476) ... ok [INFO] [stdout] test src/lib.rs - (line 169) ... ok [INFO] [stdout] test src/analytics/intensity.rs - analytics::intensity::OrderIntensityConfig::new (line 116) ... ok [INFO] [stdout] test src/execution/order_manager.rs - execution::order_manager::ManagedOrder (line 53) ... ok [INFO] [stdout] test src/lib.rs - execution (line 487) ... ok [INFO] [stdout] test src/execution/order_manager.rs - execution::order_manager::ThreadSafeOrderManager (line 675) ... ok [INFO] [stdout] test src/execution/order_manager.rs - execution::order_manager::OrderManagerConfig (line 223) ... ok [INFO] [stdout] test src/lib.rs - prelude (line 504) ... ok [INFO] [stdout] test src/lib.rs - (line 216) ... ok [INFO] [stdout] test src/lib.rs - backtest (line 498) ... ok [INFO] [stdout] test src/lib.rs - risk (line 463) ... ok [INFO] [stdout] test src/execution/order_manager.rs - execution::order_manager::OrderManager (line 309) ... ok [INFO] [stdout] test src/lib.rs - prelude (line 512) ... ok [INFO] [stdout] test src/lib.rs - (line 130) ... ok [INFO] [stdout] test src/market_state/mod.rs - market_state::volatility (line 26) ... ok [INFO] [stdout] test src/market_state/volatility.rs - market_state::volatility::VolatilityEstimator::calculate_simple (line 129) ... ok [INFO] [stdout] test src/market_state/volatility.rs - market_state::volatility::VolatilityEstimator::with_annualization_factor (line 81) ... ok [INFO] [stdout] test src/market_state/volatility.rs - market_state::volatility::VolatilityEstimator (line 37) ... ok [INFO] [stdout] test src/market_state/volatility.rs - market_state::volatility::VolatilityEstimator::calculate_parkinson (line 305) ... ok [INFO] [stdout] test src/position/inventory.rs - position::inventory::InventoryPosition::update_fill (line 70) ... ok [INFO] [stdout] test src/market_state/volatility.rs - market_state::volatility::VolatilityEstimator::new (line 60) ... ok [INFO] [stdout] test src/risk/alerts.rs - risk::alerts::CallbackAlertHandler (line 504) ... ok [INFO] [stdout] test src/risk/alerts.rs - risk::alerts::AlertManager (line 627) ... ok [INFO] [stdout] test src/position/inventory.rs - position::inventory::InventoryPosition::unrealized_pnl (line 121) ... ok [INFO] [stdout] test src/risk/circuit_breaker.rs - risk::circuit_breaker::CircuitBreaker::is_trading_allowed (line 341) ... ok [INFO] [stdout] test src/execution/mock.rs - execution::mock::MockExchangeConnector (line 158) ... ok [INFO] [stdout] test src/execution/mod.rs - execution::mock (line 56) ... ok [INFO] [stdout] test src/execution/mod.rs - execution::latency (line 65) ... ok [INFO] [stdout] test src/risk/alerts.rs - risk::alerts::AlertHandler (line 396) ... ok [INFO] [stdout] test src/execution/mod.rs - execution::connector (line 56) ... ok [INFO] [stdout] test src/market_state/volatility.rs - market_state::volatility::VolatilityEstimator::calculate_ewma (line 205) ... ok [INFO] [stdout] test src/risk/circuit_breaker.rs - risk::circuit_breaker::CircuitBreakerConfig (line 85) ... ok [INFO] [stdout] test src/risk/alerts.rs - risk::alerts::AlertSeverity (line 62) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::current_drawdown (line 230) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker (line 39) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::current_drawdown_pct (line 252) ... ok [INFO] [stdout] test src/position/pnl.rs - position::pnl::PnL::set_unrealized (line 97) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::distance_to_max_drawdown (line 347) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::reset (line 393) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::is_max_drawdown_reached (line 269) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::new (line 95) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::max_historical_drawdown (line 316) ... ok [INFO] [stdout] test src/risk/circuit_breaker.rs - risk::circuit_breaker::CircuitBreaker::new (line 269) ... ok [INFO] [stdout] test src/risk/circuit_breaker.rs - risk::circuit_breaker::CircuitBreaker (line 218) ... ok [INFO] [stdout] test src/execution/mod.rs - execution::order_manager (line 62) ... ok [INFO] [stdout] test src/position/pnl.rs - position::pnl::PnL::add_realized (line 71) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::update (line 170) ... ok [INFO] [stdout] test src/risk/portfolio.rs - risk::portfolio::AssetId (line 86) ... ok [INFO] [stdout] test src/risk/portfolio.rs - risk::portfolio::CorrelationMatrix (line 143) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits (line 31) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits::is_notional_limit_breached (line 282) ... ok [INFO] [stdout] test src/risk/portfolio.rs - risk::portfolio::HedgeCalculator (line 778) ... ok [INFO] [stdout] test src/risk/circuit_breaker.rs - risk::circuit_breaker::CircuitBreaker::record_trade (line 370) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits::check_order (line 144) ... ok [INFO] [stdout] test src/risk/drawdown.rs - risk::drawdown::DrawdownTracker::equity_at_max_drawdown (line 367) ... ok [INFO] [stdout] test src/risk/mod.rs - risk::portfolio (line 99) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits::is_position_limit_breached (line 253) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits::new (line 88) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits::scale_order_size (line 204) ... ok [INFO] [stdout] test src/risk/mod.rs - risk::alerts (line 67) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits::remaining_position_capacity (line 312) ... ok [INFO] [stdout] test src/position/pnl.rs - position::pnl::PnL::update (line 46) ... ok [INFO] [stdout] test src/risk/limits.rs - risk::limits::RiskLimits::position_utilization (line 340) ... ok [INFO] [stdout] test src/strategy/adaptive_spread.rs - strategy::adaptive_spread::AdaptiveSpread (line 295) ... ok [INFO] [stdout] test src/strategy/adaptive_spread.rs - strategy::adaptive_spread::AdaptiveSpreadCalculator::calculate_orderbook_imbalance (line 420) ... ok [INFO] [stdout] test src/strategy/adaptive_spread.rs - strategy::adaptive_spread::AdaptiveSpreadCalculator::calculate_tradeflow_imbalance (line 527) ... ok [INFO] [stdout] test src/strategy/adaptive_spread.rs - strategy::adaptive_spread::AdaptiveSpreadCalculator (line 369) ... ok [INFO] [stdout] test src/strategy/avellaneda_stoikov.rs - strategy::avellaneda_stoikov::calculate_optimal_quotes (line 230) ... ok [INFO] [stdout] test src/risk/portfolio.rs - risk::portfolio::PortfolioRiskCalculator (line 550) ... ok [INFO] [stdout] test src/risk/portfolio.rs - risk::portfolio::PortfolioPosition (line 455) ... ok [INFO] [stdout] test src/strategy/adaptive_spread.rs - strategy::adaptive_spread::TradeFlowImbalance (line 105) ... ok [INFO] [stdout] test src/strategy/adaptive_spread.rs - strategy::adaptive_spread::OrderBookImbalance (line 24) ... ok [INFO] [stdout] test src/risk/alerts.rs - risk::alerts::LogAlertHandler (line 435) ... ok [INFO] [stdout] test src/strategy/depth_based.rs - strategy::depth_based::DepthBasedOffering::new (line 55) ... ok [INFO] [stdout] test src/strategy/adaptive_spread.rs - strategy::adaptive_spread::AdaptiveSpreadConfig (line 212) ... ok [INFO] [stdout] test src/strategy/calibration.rs - strategy::calibration::RiskAversionCalibrator (line 246) ... ok [INFO] [stdout] test src/strategy/calibration.rs - strategy::calibration::OrderIntensityCalibrator (line 551) ... ok [INFO] [stdout] test src/strategy/avellaneda_stoikov.rs - strategy::avellaneda_stoikov::calculate_reservation_price (line 65) ... ok [INFO] [stdout] test src/strategy/glft.rs - strategy::glft::GLFTStrategy::calculate_dynamic_gamma (line 460) ... ok [INFO] [stdout] test src/strategy/depth_based.rs - strategy::depth_based::DepthBasedOffering::calculate_bid_size (line 119) ... ok [INFO] [stdout] test src/strategy/glft.rs - strategy::glft::GLFTConfig::new (line 125) ... ok [INFO] [stdout] test src/strategy/glft.rs - strategy::glft::GLFTConfig (line 67) ... ok [INFO] [stdout] test src/strategy/calibration.rs - strategy::calibration::CalibrationConfig (line 67) ... ok [INFO] [stdout] test src/strategy/avellaneda_stoikov.rs - strategy::avellaneda_stoikov::calculate_optimal_spread (line 142) ... ok [INFO] [stdout] test src/strategy/glft.rs - strategy::glft::GLFTStrategy (line 208) ... ok [INFO] [stdout] test src/strategy/calibration.rs - strategy::calibration::ParameterOptimizer (line 1059) ... ok [INFO] [stdout] test src/strategy/depth_based.rs - strategy::depth_based::DepthBasedOffering::calculate_ask_size (line 94) ... ok [INFO] [stdout] test src/strategy/glft.rs - strategy::glft::GLFTStrategy::calculate_optimal_quotes (line 387) ... ok [INFO] [stdout] test src/strategy/grid.rs - strategy::grid::GridConfig::new (line 98) ... ok [INFO] [stdout] test src/strategy/grid.rs - strategy::grid::GridConfig (line 46) ... ok [INFO] [stdout] test src/strategy/grid.rs - strategy::grid::GridStrategy::calculate_level_size (line 444) ... ok [INFO] [stdout] test src/strategy/grid.rs - strategy::grid::GridStrategy::generate_grid_with_inventory (line 365) ... ok [INFO] [stdout] test src/strategy/grid.rs - strategy::grid::GridStrategy::new (line 249) ... ok [INFO] [stdout] test src/strategy/grid.rs - strategy::grid::GridStrategy::generate_grid (line 312) ... ok [INFO] [stdout] test src/strategy/interface.rs - strategy::interface::AsyncAvellanedaStoikov (line 187) ... ignored [INFO] [stdout] test src/strategy/interface.rs - strategy::interface::DefaultAvellanedaStoikov (line 335) ... ignored [INFO] [stdout] test src/strategy/mod.rs - strategy::depth_based (line 53) ... ignored [INFO] [stdout] test src/strategy/interface.rs - strategy::interface (line 10) ... ok [INFO] [stdout] test src/strategy/mod.rs - strategy::calibration (line 75) ... ok [INFO] [stdout] test src/strategy/interface.rs - strategy::interface::DefaultAvellanedaStoikov (line 256) ... ok [INFO] [stdout] test src/types/decimal.rs - types::decimal::decimal_sqrt (line 124) ... ok [INFO] [stdout] test src/strategy/calibration.rs - strategy::calibration::VolatilityRegimeDetector (line 877) ... ok [INFO] [stdout] test src/types/decimal.rs - types::decimal::decimal_ln (line 32) ... ok [INFO] [stdout] test src/strategy/grid.rs - strategy::grid::GridStrategy (line 210) ... ok [INFO] [stdout] test src/strategy/interface.rs - strategy::interface::AvellanedaStoikov (line 41) ... ok [INFO] [stdout] test src/types/decimal.rs - types::decimal::decimal_powi (line 76) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 157 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stdout] all doctests ran in 1.48s; merged doctests compilation took 1.35s [INFO] running `Command { std: "docker" "inspect" "2dd4f67feb2e0a32eb367bc108dcf0a96cc84cc4a92a301bb32a24ad7cea40ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2dd4f67feb2e0a32eb367bc108dcf0a96cc84cc4a92a301bb32a24ad7cea40ed", kill_on_drop: false }` [INFO] [stdout] 2dd4f67feb2e0a32eb367bc108dcf0a96cc84cc4a92a301bb32a24ad7cea40ed