[INFO] fetching crate barter 0.3.0...
[INFO] testing barter-0.3.0 against beta-2021-08-01 for beta-1.55-1
[INFO] extracting crate barter 0.3.0 into /workspace/builds/worker-10/source
[INFO] validating manifest of crates.io crate barter 0.3.0 on toolchain beta-2021-08-01
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate barter 0.3.0
[INFO] finished tweaking crates.io crate barter 0.3.0
[INFO] tweaked toml for crates.io crate barter 0.3.0 written to /workspace/builds/worker-10/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 19802c10e908e27d91f4202e07169113b3564a31845e99e5d54462322448e886
[INFO] running `Command { std: "docker" "start" "-a" "19802c10e908e27d91f4202e07169113b3564a31845e99e5d54462322448e886", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "19802c10e908e27d91f4202e07169113b3564a31845e99e5d54462322448e886", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "19802c10e908e27d91f4202e07169113b3564a31845e99e5d54462322448e886", kill_on_drop: false }`
[INFO] [stdout] 19802c10e908e27d91f4202e07169113b3564a31845e99e5d54462322448e886
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 85b6dfede9a792cb8c27a4915915d46d91d937b711267c21c0716a4cefeb91b0
[INFO] running `Command { std: "docker" "start" "-a" "85b6dfede9a792cb8c27a4915915d46d91d937b711267c21c0716a4cefeb91b0", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling serde v1.0.127
[INFO] [stderr]    Compiling cc v1.0.69
[INFO] [stderr]    Compiling matches v0.1.8
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling gimli v0.25.0
[INFO] [stderr]    Compiling itoa v0.4.7
[INFO] [stderr]    Compiling async-trait v0.1.51
[INFO] [stderr]    Compiling percent-encoding v2.1.0
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling rustc-demangle v0.1.20
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling bytes v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.66
[INFO] [stderr]    Compiling sha1 v0.6.0
[INFO] [stderr]    Compiling encode_unicode v0.3.6
[INFO] [stderr]    Compiling dtoa v0.4.8
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]    Compiling dirs v1.0.5
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling tinyvec v1.3.1
[INFO] [stderr]    Compiling unicode-bidi v0.3.5
[INFO] [stderr]    Compiling term v0.5.2
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling unicode-normalization v0.1.19
[INFO] [stderr]    Compiling backtrace v0.3.61
[INFO] [stderr]    Compiling object v0.26.0
[INFO] [stderr]    Compiling csv-core v0.1.10
[INFO] [stderr]    Compiling combine v4.6.0
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling addr2line v0.16.0
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling serde_derive v1.0.127
[INFO] [stderr]    Compiling thiserror-impl v1.0.26
[INFO] [stderr]    Compiling ta v0.4.0
[INFO] [stderr]    Compiling thiserror v1.0.26
[INFO] [stderr]    Compiling redis v0.20.2
[INFO] [stderr]    Compiling bstr v0.2.16
[INFO] [stderr]    Compiling uuid v0.8.2
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling csv v1.1.6
[INFO] [stderr]    Compiling prettytable-rs v0.8.0
[INFO] [stderr]    Compiling barter v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 31.85s
[INFO] running `Command { std: "docker" "inspect" "85b6dfede9a792cb8c27a4915915d46d91d937b711267c21c0716a4cefeb91b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85b6dfede9a792cb8c27a4915915d46d91d937b711267c21c0716a4cefeb91b0", kill_on_drop: false }`
[INFO] [stdout] 85b6dfede9a792cb8c27a4915915d46d91d937b711267c21c0716a4cefeb91b0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d2007f62d9eeadc6e8b3313350d09f3de718025eb07ee421b0d6a9e42652c1cf
[INFO] running `Command { std: "docker" "start" "-a" "d2007f62d9eeadc6e8b3313350d09f3de718025eb07ee421b0d6a9e42652c1cf", kill_on_drop: false }`
[INFO] [stderr]    Compiling barter v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/statistic/algorithm.rs:49:69
[INFO] [stdout]    |
[INFO] [stdout] 49 |         struct Input { prev_mean: f64, next_value: f64, count: f64 };
[INFO] [stdout]    |                                                                     ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/statistic/algorithm.rs:72:83
[INFO] [stdout]    |
[INFO] [stdout] 72 |         struct Input { prev_m: f64, prev_mean: f64, new_value: f64, new_mean: f64};
[INFO] [stdout]    |                                                                                   ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 5.50s
[INFO] running `Command { std: "docker" "inspect" "d2007f62d9eeadc6e8b3313350d09f3de718025eb07ee421b0d6a9e42652c1cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d2007f62d9eeadc6e8b3313350d09f3de718025eb07ee421b0d6a9e42652c1cf", kill_on_drop: false }`
[INFO] [stdout] d2007f62d9eeadc6e8b3313350d09f3de718025eb07ee421b0d6a9e42652c1cf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ec0325248f17be401e6b289793d8dec6d2e2d7c6fcb68ae8cfc777ce3d03a4a1
[INFO] running `Command { std: "docker" "start" "-a" "ec0325248f17be401e6b289793d8dec6d2e2d7c6fcb68ae8cfc777ce3d03a4a1", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]   --> src/statistic/algorithm.rs:49:69
[INFO] [stderr]    |
[INFO] [stderr] 49 |         struct Input { prev_mean: f64, next_value: f64, count: f64 };
[INFO] [stderr]    |                                                                     ^ help: remove this semicolon
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]   --> src/statistic/algorithm.rs:72:83
[INFO] [stderr]    |
[INFO] [stderr] 72 |         struct Input { prev_m: f64, prev_mean: f64, new_value: f64, new_mean: f64};
[INFO] [stderr]    |                                                                                   ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: `barter` (lib test) generated 2 warnings
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.49s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/barter-ebe5202dad8f8d2d)
[INFO] [stdout] 
[INFO] [stdout] running 97 tests
[INFO] [stdout] test data::handler::tests::should_return_market_event_when_generating_market_with_available_symbol_data ... ok
[INFO] [stdout] test data::market::tests::test_bar_builder_validation ... ok
[INFO] [stdout] test execution::handler::tests::should_calculate_fill_value_gross_correctly ... ok
[INFO] [stdout] test data::market::tests::test_builder_incomplete_attributes_validation ... ok
[INFO] [stdout] test data::handler::tests::should_not_continue_with_no_symbol_data_remaining ... ok
[INFO] [stdout] test execution::handler::tests::should_calculate_simulated_fees_correctly ... ok
[INFO] [stdout] test execution::handler::tests::should_generate_ok_fill_event_with_valid_order_event_provided ... ok
[INFO] [stdout] test portfolio::allocator::tests::should_allocate_order_to_exit_open_short_position ... ok
[INFO] [stdout] test portfolio::portfolio::tests::generate_no_order_with_position_and_no_cash ... ok
[INFO] [stdout] test execution::handler::tests::should_calculate_fill_value_gross_correctly_with_negative_order_quantity_provided ... ok
[INFO] [stdout] test portfolio::allocator::tests::should_allocate_order_to_enter_long_position_with_correct_quantity ... ok
[INFO] [stdout] test data::handler::tests::should_continue_with_symbol_data_remaining ... ok
[INFO] [stdout] test portfolio::portfolio::tests::generate_order_close_long_with_long_position_and_input_net_close_long_signal ... ok
[INFO] [stdout] test portfolio::allocator::tests::should_allocate_order_to_exit_open_long_position ... ok
[INFO] [stdout] test portfolio::allocator::tests::should_allocate_order_to_enter_long_position_with_non_zero_quantity ... ok
[INFO] [stdout] test data::handler::tests::should_return_correct_symbol_data_file_path ... ok
[INFO] [stdout] test portfolio::portfolio::tests::generate_no_order_with_no_position_and_no_cash ... ok
[INFO] [stdout] test portfolio::portfolio::tests::generate_order_close_short_with_short_position_and_input_net_close_short_signal ... ok
[INFO] [stdout] test portfolio::portfolio::tests::generate_order_long_with_no_position_and_input_net_long_signal ... ok
[INFO] [stdout] test portfolio::allocator::tests::should_allocate_order_to_enter_short_position_with_with_non_zero_quantity ... ok
[INFO] [stdout] test data::handler::tests::should_return_data_iterator_empty_error_when_generating_market_with_no_symbol_data ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_net_close_short ... ok
[INFO] [stdout] test portfolio::allocator::tests::should_allocate_order_to_enter_short_position_with_correct_quantity ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_net_close_short_with_conflicting_signals ... ok
[INFO] [stdout] test portfolio::portfolio::tests::generate_order_short_with_no_position_and_input_net_short_signal ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_net_close_long ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_net_close_long_with_conflicting_signals ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_net_long ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_net_short ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_fill_exiting_short_position_in_loss ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_market_with_long_position_increasing_in_value ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_market_with_short_position_increasing_in_value ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_fill_exiting_long_position_in_profit ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_fill_exiting_short_position_in_profit ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_none_with_conflicting_signals ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_none_with_some_long_position_and_long_signal ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_fill_entering_long_position ... ok
[INFO] [stdout] test portfolio::portfolio::tests::parse_signal_decisions_to_none_with_some_short_position_and_short_signal ... ok
[INFO] [stdout] test portfolio::position::tests::calculate_avg_price_gross_correctly_with_positive_quantity ... ok
[INFO] [stdout] test portfolio::position::tests::enter_new_position_and_return_err_with_close_long_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::calculate_unreal_profit_loss ... ok
[INFO] [stdout] test portfolio::position::tests::enter_new_position_with_long_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::enter_new_position_with_short_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::exit_short_position_with_negative_real_pnl ... ok
[INFO] [stdout] test portfolio::position::tests::parse_entry_direction_and_return_err_with_close_short_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::parse_entry_direction_and_return_err_with_negative_quantity_long_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::equity_point_update ... ok
[INFO] [stdout] test portfolio::position::tests::enter_new_position_and_return_err_with_negative_quantity_long_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::parse_entry_direction_as_long_with_positive_quantity_long_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::parse_entry_direction_as_short_with_negative_quantity_short_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::exit_long_position_with_long_entry_fill_and_return_err ... ok
[INFO] [stdout] test portfolio::position::tests::exit_long_position_with_negative_real_pnl ... ok
[INFO] [stdout] test portfolio::position::tests::parse_entry_direction_and_return_err_with_positive_quantity_short_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::calculate_profit_loss_return ... ok
[INFO] [stdout] test portfolio::position::tests::calculate_real_profit_loss ... ok
[INFO] [stdout] test portfolio::position::tests::exit_short_position_with_short_entry_fill_and_return_err ... ok
[INFO] [stdout] test portfolio::position::tests::enter_new_position_and_return_err_with_positive_quantity_short_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::enter_new_position_and_return_err_with_close_short_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::parse_entry_direction_and_return_err_with_close_long_decision_provided ... ok
[INFO] [stdout] test portfolio::position::tests::exit_long_position_with_positive_real_pnl ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_fill_exiting_long_position_in_loss ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_market_with_long_position_decreasing_in_value ... ok
[INFO] [stdout] test portfolio::position::tests::exit_short_position_with_positive_real_pnl ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_fill_entering_short_position ... ok
[INFO] [stdout] test portfolio::position::tests::calculate_avg_price_gross_correctly_with_negative_quantity ... ok
[INFO] [stdout] test portfolio::portfolio::tests::update_from_market_with_short_position_decreasing_in_value ... ok
[INFO] [stdout] test portfolio::position::tests::update_long_position_so_unreal_pnl_decreases ... ok
[INFO] [stdout] test portfolio::position::tests::update_long_position_so_unreal_pnl_increases ... ok
[INFO] [stdout] test statistic::algorithm::tests::calculate_mean ... ok
[INFO] [stdout] test statistic::algorithm::tests::calculate_recurrence_relation_m ... ok
[INFO] [stdout] test statistic::algorithm::tests::calculate_population_variance ... ok
[INFO] [stdout] test portfolio::position::tests::update_short_position_so_unreal_pnl_decreases ... ok
[INFO] [stdout] test portfolio::position::tests::update_short_position_so_unreal_pnl_increases ... ok
[INFO] [stdout] test statistic::algorithm::tests::calculate_sample_variance ... ok
[INFO] [stdout] test statistic::metric::drawdown::tests::avg_drawdown_update ... ok
[INFO] [stdout] test statistic::metric::ratio::tests::calculate_annual_ratios ... ok
[INFO] [stdout] test statistic::metric::ratio::tests::sharpe_ratio_update ... ok
[INFO] [stdout] test statistic::summary::pnl::tests::update_pnl_return_summary ... ok
[INFO] [stdout] test statistic::metric::ratio::tests::sortino_ratio_update ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_entry ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_exit ... ok
[INFO] [stdout] test statistic::metric::drawdown::tests::drawdown_update ... ok
[INFO] [stdout] test statistic::summary::pnl::tests::update_trading_session_duration_with_non_exited_position ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_long ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_not_entry ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_not_exit ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_not_long ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_not_short ... ok
[INFO] [stdout] test statistic::metric::drawdown::tests::max_drawdown_update ... ok
[INFO] [stdout] test statistic::dispersion::tests::update_range ... ok
[INFO] [stdout] test statistic::summary::data::tests::update_data_summary_with_position ... ok
[INFO] [stdout] test statistic::metric::ratio::tests::calmar_ratio_update ... ok
[INFO] [stdout] test statistic::dispersion::tests::update_dispersion ... ok
[INFO] [stdout] test strategy::signal::tests::should_return_decision_is_short ... ok
[INFO] [stdout] test statistic::summary::pnl::tests::update_trading_session_duration_with_exited_position ... ok
[INFO] [stdout] test statistic::metric::ratio::tests::calculate_daily_ratios ... ok
[INFO] [stdout] test strategy::strategy::tests::should_generate_signals_map_containing_long_and_close_short_decision ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 97 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests barter
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/lib.rs - (line 72) ... ok
[INFO] [stdout] test src/lib.rs - (line 111) ... ok
[INFO] [stdout] test src/lib.rs - (line 132) ... ok
[INFO] [stdout] test src/lib.rs - (line 55) ... ok
[INFO] [stdout] test src/lib.rs - (line 31) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ec0325248f17be401e6b289793d8dec6d2e2d7c6fcb68ae8cfc777ce3d03a4a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec0325248f17be401e6b289793d8dec6d2e2d7c6fcb68ae8cfc777ce3d03a4a1", kill_on_drop: false }`
[INFO] [stdout] ec0325248f17be401e6b289793d8dec6d2e2d7c6fcb68ae8cfc777ce3d03a4a1
