[INFO] fetching crate quant-system-core 0.4.1...
[INFO] testing quant-system-core-0.4.1 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate quant-system-core 0.4.1 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate quant-system-core 0.4.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate quant-system-core 0.4.1
[INFO] tweaked toml for crates.io crate quant-system-core 0.4.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate quant-system-core 0.4.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate quant-system-core 0.4.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded qs-instruments v0.4.1
[INFO] [stderr]   Downloaded cc v1.2.56
[INFO] [stderr]   Downloaded libc v0.2.182
[INFO] [stderr]   Downloaded qs-symbols v0.4.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4
[INFO] running `Command { std: "docker" "start" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling nanoid v0.4.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling qs-instruments v0.4.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling qs-symbols v0.4.1
[INFO] [stderr]    Compiling quant-system-core v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.12s
[INFO] running `Command { std: "docker" "inspect" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quant-system-core v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.00s
[INFO] running `Command { std: "docker" "inspect" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/qs_core-b3cb0ae91a5ded86)
[INFO] [stdout] 
[INFO] [stdout] running 249 tests
[INFO] [stdout] test alert_register::tests::clear_all_removes_everything ... ok
[INFO] [stdout] test alert_register::tests::alerts_different_symbols_independent ... ok
[INFO] [stdout] test alert_register::tests::deregister_alert_preserves_colocated_other_direction_and_index ... ok
[INFO] [stdout] test alert_register::tests::is_tick_eval_check ... ok
[INFO] [stdout] test alert_register::tests::multiple_alerts_same_price ... ok
[INFO] [stdout] test alert_register::tests::breakeven_trigger_sell ... ok
[INFO] [stdout] test alert_register::tests::deregister_single_alert ... ok
[INFO] [stdout] test alert_register::tests::breakeven_trigger_buy ... ok
[INFO] [stdout] test alert_register::tests::tick_eval_ids_returns_stateful_only ... ok
[INFO] [stdout] test alert_register::tests::register_and_check_buy_stoploss ... ok
[INFO] [stdout] test alert_register::tests::unregister_tick_eval ... ok
[INFO] [stdout] test alert_register::tests::deregister_position_removes_all_alerts ... ok
[INFO] [stdout] test alert_register::tests::mixed_alert_types_same_position ... ok
[INFO] [stdout] test alert_register::tests::deregister_alert_preserves_colocated_same_direction_kind ... ok
[INFO] [stdout] test alert_register::tests::sell_take_profit_fires_on_drop ... ok
[INFO] [stdout] test costs::tests::a_cost_specification_decodes_from_either_tag_spelling ... ok
[INFO] [stdout] test alert_register::tests::register_and_check_sell_stoploss ... ok
[INFO] [stdout] test alert_register::tests::pending_fill_alert_limit_buy ... ok
[INFO] [stdout] test costs::tests::account_currency_swap_ignores_point_size ... ok
[INFO] [stdout] test alert_register::tests::pending_fill_alert_stop_buy ... ok
[INFO] [stdout] test alert_register::tests::deregister_position_also_removes_tick_eval ... ok
[INFO] [stdout] test alert_register::tests::micros_roundtrip ... ok
[INFO] [stdout] test costs::tests::notional_commission_uses_side_specific_rate ... ok
[INFO] [stdout] test alert_register::tests::fill_model_ask_only_buy_sl ... ok
[INFO] [stdout] test costs::tests::per_lot_commission_scales_with_lots_in_account_currency ... ok
[INFO] [stdout] test alert_register::tests::multiple_positions_partial_trigger ... ok
[INFO] [stdout] test costs::tests::point_swap_charges_native_amount_per_night ... ok
[INFO] [stdout] test costs::tests::positive_point_swap_is_a_credit ... ok
[INFO] [stdout] test costs::tests::rollover_instants_cover_a_weekend_gap ... ok
[INFO] [stdout] test costs::tests::validation_rejects_out_of_range_values ... ok
[INFO] [stdout] test costs::tests::triple_weekday_multiplies_nights ... ok
[INFO] [stdout] test alert_register::tests::register_and_check_take_profit ... ok
[INFO] [stdout] test costs::tests::validation_rejects_mismatched_account_currency ... ok
[INFO] [stdout] test costs::tests::zero_nights_produce_no_charge ... ok
[INFO] [stdout] test currency::tests::run_currency_plan_rejects_wrong_destination_and_undeclared_route_symbol ... ok
[INFO] [stdout] test currency::tests::run_currency_plan_requires_complete_primary_mappings_and_routes ... ok
[INFO] [stdout] test currency::tests::run_currency_plan_validates_warmup_quotes ... ok
[INFO] [stdout] test currency::tests::record_canonical_tick_does_not_require_registry ... ok
[INFO] [stdout] test currency::tests::quote_book_rejects_invalid_ticks ... ok
[INFO] [stdout] test currency::tests::direct_and_inverse_conversion_use_signed_bid_ask ... ok
[INFO] [stdout] test currency::tests::causal_lookup_uses_latest_past_quote_and_never_future_quote ... ok
[INFO] [stdout] test currency::tests::causal_lookup_rejects_stale_quote_without_fallback ... ok
[INFO] [stdout] test currency::tests::run_currency_plan_is_immutable_normalized_and_serializable ... ok
[INFO] [stdout] test currency::tests::route_resolution_supports_identity_direct_and_inverse ... ok
[INFO] [stdout] test engine::tests::add_and_remove_target_via_action ... ok
[INFO] [stdout] test currency::tests::route_resolution_rejects_cross_source_fallback ... ok
[INFO] [stdout] test currency::tests::historical_quote_book_retains_history_without_explicit_pruning ... ok
[INFO] [stdout] test currency::tests::replay_pruning_keeps_the_latest_causal_quote_and_future_quotes ... ok
[INFO] [stdout] test engine::tests::askonly_manual_partial_close_records_bid ... ok
[INFO] [stdout] test engine::tests::askonly_breakeven_uses_correct_average_entry ... ok
[INFO] [stdout] test currency::tests::schedule_retention_keeps_only_required_predecessors_and_latest_replay_quotes ... ok
[INFO] [stdout] test currency::tests::two_leg_conversion_is_signed_and_auditable ... ok
[INFO] [stdout] test engine::tests::askonly_sell_market_order_fills_at_bid ... ok
[INFO] [stdout] test currency::tests::two_leg_route_uses_deterministic_pivot_and_available_source_filter ... ok
[INFO] [stdout] test engine::tests::askonly_scale_in_sell_records_bid ... ok
[INFO] [stdout] test engine::tests::askonly_partial_close_records_realistic_price ... ok
[INFO] [stdout] test engine::tests::bulk_cancel_all_pending ... ok
[INFO] [stdout] test engine::tests::breakeven_when_triggers_via_on_price ... ok
[INFO] [stdout] test engine::tests::cancel_pending ... ok
[INFO] [stdout] test engine::tests::bulk_close_all_of_symbol ... ok
[INFO] [stdout] test engine::tests::engine_rejects_duplicate_trade_ids_without_partial_mutation ... ok
[INFO] [stdout] test engine::tests::engine_with_register_close_deregisters ... ok
[INFO] [stdout] test engine::tests::engine_with_register_matches_tickbytick_results ... ok
[INFO] [stdout] test engine::tests::engine_with_register_open_registers_alerts ... ok
[INFO] [stdout] test engine::tests::engine_with_register_pending_fill ... ok
[INFO] [stdout] test engine::tests::engine_with_register_sell_sl_triggers ... ok
[INFO] [stdout] test engine::tests::engine_with_register_sl_triggers_via_register ... ok
[INFO] [stdout] test engine::tests::engine_with_register_tp_triggers_via_register ... ok
[INFO] [stdout] test engine::tests::error_on_market_order_no_price_no_quote ... ok
[INFO] [stdout] test costs::tests::first_observed_timestamp_charges_nothing ... ok
[INFO] [stdout] test engine::tests::error_on_missing_position ... ok
[INFO] [stdout] test engine::tests::fill_model_ask_only_limit_sell_fills_on_ask ... ok
[INFO] [stdout] test engine::tests::fill_model_ask_only_sell_sl_triggers_on_ask ... ok
[INFO] [stdout] test alert_register::tests::price_to_micros_precision ... ok
[INFO] [stdout] test engine::tests::fill_model_ask_only_tp_triggers_on_ask ... ok
[INFO] [stdout] test engine::tests::fill_model_default_is_bidask ... ok
[INFO] [stdout] test engine::tests::fill_model_ask_only_trailing_stop_tracks_ask ... ok
[INFO] [stdout] test engine::tests::fill_model_mid_price_limit_buy_fills_on_mid ... ok
[INFO] [stdout] test engine::tests::close_position_manually ... ok
[INFO] [stdout] test engine::tests::engine_with_register_trailing_stop_works ... ok
[INFO] [stdout] test engine::tests::engine_with_register_breakeven_reregisters_sl ... ok
[INFO] [stdout] test engine::tests::engine_with_register_close_all_deregisters ... ok
[INFO] [stdout] test engine::tests::fill_model_mid_price_uses_midpoint ... ok
[INFO] [stdout] test engine::tests::engine_with_register_modify_sl_reregisters ... ok
[INFO] [stdout] test engine::tests::fill_model_with_fill_model_constructor ... ok
[INFO] [stdout] test engine::tests::future_pending_gap_fill_is_priced_once_and_carried ... ok
[INFO] [stdout] test engine::tests::fixed_stop_rule_add_and_remove_emit_synchronization_effects ... ok
[INFO] [stdout] test engine::tests::future_open_transaction_rollback_restores_indexes_and_id_sequence ... ok
[INFO] [stdout] test engine::tests::future_quote_accounting_rollback_restores_rule_and_alert_state ... ok
[INFO] [stdout] test engine::tests::future_quote_trailing_stop_wins_breakeven_and_retains_provenance ... ok
[INFO] [stdout] test engine::tests::future_pending_quote_transaction_rollback_restores_quote_and_position ... ok
[INFO] [stdout] test engine::tests::future_quote_breakeven_close_retains_reason_and_provenance ... ok
[INFO] [stdout] test engine::tests::future_priced_actions_carry_the_authoritative_fill_into_state ... ok
[INFO] [stdout] test engine::tests::future_rule_pricing_failure_is_atomic ... ok
[INFO] [stdout] test engine::tests::future_transaction_reports_empty_effects_without_losing_rollback ... ok
[INFO] [stdout] test engine::tests::invalid_open_prices_rules_duplicates_and_tiny_sizes_are_atomic ... ok
[INFO] [stdout] test engine::tests::legacy_and_future_scale_in_validation_is_atomic ... ok
[INFO] [stdout] test engine::tests::manual_stops_on_the_target_side_are_rejected_atomically ... ok
[INFO] [stdout] test engine::tests::mixed_side_bulk_stop_rejection_is_atomic ... ok
[INFO] [stdout] test engine::tests::midprice_sell_fills_at_bid ... ok
[INFO] [stdout] test engine::tests::modify_stoploss ... ok
[INFO] [stdout] test engine::tests::modify_target_preserves_colocated_alerts_with_register_parity ... ok
[INFO] [stdout] test engine::tests::move_and_bulk_stop_changes_match_tick_and_indexed_evaluation ... ok
[INFO] [stdout] test engine::tests::near_full_partial_close_emits_full_close_and_leaves_no_residual ... ok
[INFO] [stdout] test engine::tests::move_stoploss_to_entry ... ok
[INFO] [stdout] test engine::tests::open_limit_order_and_fill ... ok
[INFO] [stdout] test engine::tests::open_market_order ... ok
[INFO] [stdout] test engine::tests::partial_close_then_scale_in_conserves_lots_through_engine ... ok
[INFO] [stdout] test engine::tests::scale_in ... ok
[INFO] [stdout] test engine::tests::modify_target_preserves_ratio_rekeys_alert_and_rejects_invalid_state ... ok
[INFO] [stdout] test engine::tests::stoploss_triggers_on_price ... ok
[INFO] [stdout] test engine::tests::open_market_order_uses_last_quote ... ok
[INFO] [stdout] test engine::tests::target_and_rule_mutations_reject_duplicates_and_terminal_positions_atomically ... ok
[INFO] [stdout] test engine::tests::take_profit_partial_then_stoploss ... ok
[INFO] [stdout] test engine::tests::target_ratios_are_validated_atomically_at_core_boundaries ... ok
[INFO] [stdout] test execution::tests::adverse_slippage_moves_entries_against_both_sides ... ok
[INFO] [stdout] test engine::tests::trailing_stop_via_on_price ... ok
[INFO] [stdout] test execution::tests::adverse_slippage_moves_exits_against_both_sides ... ok
[INFO] [stdout] test execution::tests::buy_limit_keeps_improvement_and_caps_adverse_price ... ok
[INFO] [stdout] test execution::tests::execution_fill_reports_inputs_and_selected_quote ... ok
[INFO] [stdout] test execution::tests::legacy_non_market_fills_use_requested_price ... ok
[INFO] [stdout] test execution::tests::ask_only_and_mid_price_are_honored ... ok
[INFO] [stdout] test execution::tests::defaults_preserve_legacy_bid_ask_without_slippage ... ok
[INFO] [stdout] test execution::tests::market_entry_uses_opening_side_for_both_sides ... ok
[INFO] [stdout] test execution::tests::rejects_invalid_pip_size_and_slippage ... ok
[INFO] [stdout] test execution::tests::sell_limit_keeps_improvement_and_caps_adverse_price ... ok
[INFO] [stdout] test execution::tests::limit_cap_is_preserved_after_adverse_slippage ... ok
[INFO] [stdout] test execution::tests::take_profit_keeps_favorable_gap_and_target_cap ... ok
[INFO] [stdout] test execution::tests::market_exit_uses_closing_side_for_both_sides ... ok
[INFO] [stdout] test execution::tests::rejects_non_finite_non_positive_and_crossed_quotes ... ok
[INFO] [stdout] test execution::tests::stop_entry_keeps_adverse_gaps_for_both_sides ... ok
[INFO] [stdout] test execution::tests::stop_entry_does_not_manufacture_favorable_gap ... ok
[INFO] [stdout] test position::tests::average_entry_multiple_fills ... ok
[INFO] [stdout] test position::tests::average_entry_single_fill ... ok
[INFO] [stdout] test position::tests::average_entry_weighted ... ok
[INFO] [stdout] test execution::tests::stop_loss_keeps_adverse_gaps_for_both_sides ... ok
[INFO] [stdout] test execution::tests::validates_requested_price_only_when_required ... ok
[INFO] [stdout] test position::tests::remaining_size_after_partial_close ... ok
[INFO] [stdout] test position::tests::full_close_via_partial ... ok
[INFO] [stdout] test position::tests::partial_close_then_scale_in_preserves_average_cost_cash_flow ... ok
[INFO] [stdout] test position::tests::partial_close_then_scale_in_conserves_absolute_size ... ok
[INFO] [stdout] test position::tests::evaluate_rules_produces_effects ... ok
[INFO] [stdout] test position::tests::full_close ... ok
[INFO] [stdout] test position::tests::pending_position_skips_rule_evaluation ... ok
[INFO] [stdout] test costs::tests::rollover_instants_are_half_open_on_the_left ... ok
[INFO] [stdout] test position::tests::scale_in_then_partial_close_uses_all_entered_size ... ok
[INFO] [stdout] test position::tests::set_stoploss_adds_when_missing ... ok
[INFO] [stdout] test position::tests::serde_defaults_legacy_unclosed_position_to_zero_closed_size ... ok
[INFO] [stdout] test position::tests::try_fill_limit_buy ... ok
[INFO] [stdout] test position::tests::serde_migrates_legacy_ratio_to_absolute_closed_size ... ok
[INFO] [stdout] test position::tests::unrealized_pnl_buy ... ok
[INFO] [stdout] test position::tests::try_fill_stop_sell ... ok
[INFO] [stdout] test position::tests::unrealized_pnl_sell ... ok
[INFO] [stdout] test position_manager::tests::all_open_and_pending_ids ... ok
[INFO] [stdout] test position::tests::repeated_partial_closes_cap_and_reach_exact_zero ... ok
[INFO] [stdout] test position::tests::remove_rule_by_name ... ok
[INFO] [stdout] test position_manager::tests::add_and_get ... ok
[INFO] [stdout] test position_manager::tests::checked_add_overwrite_cleans_old_secondary_indexes ... ok
[INFO] [stdout] test position_manager::tests::checked_add_rejects_duplicate_trade_id_without_corrupting_index ... ok
[INFO] [stdout] test position_manager::tests::duplicate_trade_id_can_be_checked_before_add ... ok
[INFO] [stdout] test position_manager::tests::filter_by_side ... ok
[INFO] [stdout] test position_manager::tests::filter_by_status ... ok
[INFO] [stdout] test position::tests::set_stoploss_updates_existing ... ok
[INFO] [stdout] test position_manager::tests::legacy_add_still_allows_duplicates_and_audit_is_sorted ... ok
[INFO] [stdout] test position_manager::tests::sorted_queries_are_stable_and_lexicographic ... ok
[INFO] [stdout] test rules::tests::fixed_stoploss_buy_no_trigger ... ok
[INFO] [stdout] test rules::tests::fixed_stoploss_buy_triggers ... ok
[INFO] [stdout] test position_manager::tests::group_operations ... ok
[INFO] [stdout] test position_manager::tests::filter_by_symbol_status ... ok
[INFO] [stdout] test position_manager::tests::remove_position ... ok
[INFO] [stdout] test rules::tests::breakeven_when_triggers ... ok
[INFO] [stdout] test rules::tests::from_config_roundtrip ... ok
[INFO] [stdout] test position_manager::tests::checked_trade_id_assignment_is_atomic_and_allows_empty_duplicates ... ok
[INFO] [stdout] test rules::tests::rule_skips_closed_position ... ok
[INFO] [stdout] test sizing::tests::all_policies_reject_lots_below_the_minimum ... ok
[INFO] [stdout] test sizing::tests::catalog_fixed_lot_uses_exact_quantity_grid_and_cap ... ok
[INFO] [stdout] test sizing::tests::catalog_sizing_rejects_nonzero_quantity_grid_origin ... ok
[INFO] [stdout] test sizing::tests::execution_notional_price_enforces_notional_bounds ... ok
[INFO] [stdout] test sizing::tests::fixed_lot_applies_multiplier_before_lot_step ... ok
[INFO] [stdout] test sizing::tests::fixed_lot_may_be_stopless_but_monetary_policies_may_not ... ok
[INFO] [stdout] test rules::tests::time_exit_triggers ... ok
[INFO] [stdout] test rules::tests::trailing_stop_buy ... ok
[INFO] [stdout] test sizing::tests::balance_percent_uses_realized_balance_before ... ok
[INFO] [stdout] test sizing::tests::fixed_risk_returns_requested_and_per_lot_audit_values ... ok
[INFO] [stdout] test sizing::tests::full_spec_sizing_validates_price_grid_and_post_rounding_notional ... ok
[INFO] [stdout] test rules::tests::take_profit_partial ... ok
[INFO] [stdout] test rules::tests::fixed_stoploss_sell_triggers ... ok
[INFO] [stdout] test rules::tests::breakeven_after_targets ... ok
[INFO] [stdout] test rules::tests::take_profit_closes_remaining ... ok
[INFO] [stdout] test sizing::tests::catalog_sizing_uses_quantity_rules_and_contract_multiplier ... ok
[INFO] [stdout] test sizing::tests::contract_multiplier_changes_native_loss_and_monetary_size ... ok
[INFO] [stdout] test sizing::tests::monetary_policy_requires_positive_account_loss_per_lot ... ok
[INFO] [stdout] test sizing::tests::separate_sizing_prices_require_instrument_grid_alignment ... ok
[INFO] [stdout] test sizing::tests::fixed_lot_validates_a_supplied_stop_but_does_not_require_one ... ok
[INFO] [stdout] test sizing::tests::maximum_cap_preserves_raw_lot_and_reports_audit_status ... ok
[INFO] [stdout] test sizing::tests::catalog_sizing_rejects_unsupported_quantity_and_model_combinations ... ok
[INFO] [stdout] test sizing::tests::geometry_is_checked_before_sub_tick_distance ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_arithmetic ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_comparison ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_display ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_from_f64_2digit ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_from_f64_5digit ... ok
[INFO] [stdout] test sizing::tests::full_spec_sizing_uses_exact_grid_and_records_adjustment ... ok
[INFO] [stdout] test sizing::tests::full_spec_sizing_wrapper_matches_separate_price_api ... ok
[INFO] [stdout] test sizing::tests::invalid_risk_multipliers_are_rejected ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_rounding ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_zero ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_display ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_from_f64 ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_is_valid ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_new_and_steps ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_partial_close_25pct ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_partial_close_33pct ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_partial_close_chain ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_from_f64_3digit ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_from_f64_0digit ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_add_sub ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_from_broker_units ... ok
[INFO] [stdout] test sizing::tests::sizing_reference_price_changes_risk_lot_independently_of_execution_price ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_partial_close_50pct ... ok
[INFO] [stdout] test sizing::tests::storage_scale_does_not_change_native_loss_or_monetary_size ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_mid ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_partial_close_min_1 ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_to_f64 ... ok
[INFO] [stdout] test sizing::tests::public_native_loss_helper_matches_compute_size_normalization ... ok
[INFO] [stdout] test types::fixed_point_tests::fixed_price_to_f64_roundtrip ... ok
[INFO] [stdout] test validation::tests::batch_reports_the_first_violation_in_slice_order ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_zero_comparison ... ok
[INFO] [stdout] test validation::tests::limit_and_stop_entries_require_a_price ... ok
[INFO] [stdout] test validation::tests::market_entry_without_price_skips_geometry ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_partial_close_f64 ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_to_broker_units ... ok
[INFO] [stdout] test types::fixed_point_tests::lots_to_f64_always_on_grid ... ok
[INFO] [stdout] test validation::tests::non_finite_and_non_positive_risk_are_rejected ... ok
[INFO] [stdout] test validation::tests::partial_close_ratio_bounds_are_inclusive_at_one ... ok
[INFO] [stdout] test validation::tests::stoploss_must_be_protective_for_each_side ... ok
[INFO] [stdout] test validation::tests::non_positive_entry_price_is_rejected ... ok
[INFO] [stdout] test validation::tests::scale_in_rejects_bad_size_or_price_but_allows_absent_price ... ok
[INFO] [stdout] test validation::tests::entry_class_is_exact_bounded_and_control_free ... ok
[INFO] [stdout] test validation::tests::management_prices_must_be_finite_positive ... ok
[INFO] [stdout] test validation::tests::messages_match_the_strings_embedded_in_parser_goldens ... ok
[INFO] [stdout] test validation::tests::valid_market_entry_passes ... ok
[INFO] [stdout] test validation::tests::targets_must_be_on_the_profitable_side ... ok
[INFO] [stdout] test validation::tests::modify_target_rejects_either_bad_price ... ok
[INFO] [stdout] test validation::tests::variants_without_numeric_payload_always_pass ... ok
[INFO] [stdout] test engine::tests::fill_model_ask_only_sl_triggers_on_ask ... ok
[INFO] [stdout] test currency::tests::schedule_retention_bounds_high_frequency_ticks_before_sparse_primary_quote ... ok
[INFO] [stdout] test execution::tests::favorable_slippage_reverses_the_adverse_direction ... ok
[INFO] [stdout] test position_manager::tests::quote_checkpoint_excludes_closed_history_and_other_symbols ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 249 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/raw_signal_compatibility.rs (/opt/rustwide/target/debug/deps/raw_signal_compatibility-ebbda511e425deea)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test entry_risk_is_required_and_must_be_a_positive_number ... ok
[INFO] [stdout] test action_fields_are_strict_while_nested_compatibility_is_retained ... ok
[INFO] [stdout] test current_management_action_shapes_remain_deserializable ... ok
[INFO] [stdout] test entry_class_is_optional_omitted_and_roundtrips_when_present ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 39 tests
[INFO] [stderr]      Running tests/unit_tests.rs (/opt/rustwide/target/debug/deps/unit_tests-a4823b81d4930756)
[INFO] [stdout] test add_and_remove_rule ... ok
[INFO] [stdout] test breakeven_after_two_targets ... ok
[INFO] [stdout] test add_and_remove_target ... ok
[INFO] [stdout] test all_group_ids_lists_groups ... ok
[INFO] [stdout] test cancel_pending_order ... ok
[INFO] [stdout] test cancel_all_pending ... ok
[INFO] [stdout] test close_all_in_group_skips_closed ... ok
[INFO] [stdout] test error_cancel_open_position ... ok
[INFO] [stdout] test close_all_positions ... ok
[INFO] [stdout] test breakeven_when_moves_sl_to_entry ... ok
[INFO] [stdout] test close_all_of_symbol ... ok
[INFO] [stdout] test error_scale_into_closed ... ok
[INFO] [stdout] test error_close_already_closed ... ok
[INFO] [stdout] test limit_buy_fills_and_tp_closes ... ok
[INFO] [stdout] test close_all_in_group_empty_group ... ok
[INFO] [stdout] test group_field_in_position_data_serde ... ok
[INFO] [stdout] test error_close_nonexistent_position ... ok
[INFO] [stdout] test lifecycle_buy_stoploss ... ok
[INFO] [stdout] test modify_stoploss_via_action ... ok
[INFO] [stdout] test move_stoploss_to_entry ... ok
[INFO] [stdout] test multiple_positions_same_group ... ok
[INFO] [stdout] test open_without_group_no_assignment ... ok
[INFO] [stdout] test open_ids_by_group_filters_by_status ... ok
[INFO] [stdout] test pending_order_with_group ... ok
[INFO] [stdout] test scale_in_updates_average_entry ... ok
[INFO] [stdout] test open_with_group_assigns_position_to_group ... ok
[INFO] [stdout] test modify_all_stoploss_in_group_empty_group ... ok
[INFO] [stdout] test modify_all_stoploss_on_symbol ... ok
[INFO] [stdout] test stop_buy_fills_on_breakout ... ok
[INFO] [stdout] test partial_tp_then_sl ... ok
[INFO] [stdout] test time_exit_closes_position ... ok
[INFO] [stdout] test position_records_audit_trail ... ok
[INFO] [stdout] test price_updates_only_affect_matching_symbol ... ok
[INFO] [stdout] test modify_all_stoploss_in_group ... ok
[INFO] [stdout] test close_all_in_group ... ok
[INFO] [stdout] test manual_close_and_partial_close ... ok
[INFO] [stdout] test trailing_stop_follows_price_and_closes ... ok
[INFO] [stdout] test mixed_group_and_ungrouped_positions ... ok
[INFO] [stdout] test lifecycle_sell_take_profit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests qs_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4", kill_on_drop: false }`
[INFO] [stdout] c35439d57eabb57056fad3f5825127ed714f46db75120656924864696907dec4
