[INFO] fetching crate quantedge-ta 0.17.0... [INFO] testing quantedge-ta-0.17.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate quantedge-ta 0.17.0 into /workspace/builds/worker-6-tc2/source [INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml [INFO] started tweaking crates.io crate quantedge-ta 0.17.0 [INFO] finished tweaking crates.io crate quantedge-ta 0.17.0 [INFO] tweaked toml for crates.io crate quantedge-ta 0.17.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate quantedge-ta 0.17.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 quantedge-ta 0.17.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] 1c9e7ecaca5b1d7350ad68614914a8e465d9d599b9211cd831072dfa4a3f91b9 [INFO] running `Command { std: "docker" "start" "-a" "1c9e7ecaca5b1d7350ad68614914a8e465d9d599b9211cd831072dfa4a3f91b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1c9e7ecaca5b1d7350ad68614914a8e465d9d599b9211cd831072dfa4a3f91b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c9e7ecaca5b1d7350ad68614914a8e465d9d599b9211cd831072dfa4a3f91b9", kill_on_drop: false }` [INFO] [stdout] 1c9e7ecaca5b1d7350ad68614914a8e465d9d599b9211cd831072dfa4a3f91b9 [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] 45bb76106306ab4f57961374a9916feac4442b532be3ef7306814ec5cc9e4d8a [INFO] running `Command { std: "docker" "start" "-a" "45bb76106306ab4f57961374a9916feac4442b532be3ef7306814ec5cc9e4d8a", kill_on_drop: false }` [INFO] [stderr] Compiling quantedge-ta v0.17.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.77s [INFO] running `Command { std: "docker" "inspect" "45bb76106306ab4f57961374a9916feac4442b532be3ef7306814ec5cc9e4d8a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45bb76106306ab4f57961374a9916feac4442b532be3ef7306814ec5cc9e4d8a", kill_on_drop: false }` [INFO] [stdout] 45bb76106306ab4f57961374a9916feac4442b532be3ef7306814ec5cc9e4d8a [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] 61246575af13f4c30ecc5ff7320bc8a03fb6993aa78acafc2453a48c53f6b616 [INFO] running `Command { std: "docker" "start" "-a" "61246575af13f4c30ecc5ff7320bc8a03fb6993aa78acafc2453a48c53f6b616", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling criterion-plot v0.8.2 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling csv v1.4.0 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling criterion v0.8.2 [INFO] [stderr] Compiling quantedge-ta v0.17.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 19.74s [INFO] running `Command { std: "docker" "inspect" "61246575af13f4c30ecc5ff7320bc8a03fb6993aa78acafc2453a48c53f6b616", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "61246575af13f4c30ecc5ff7320bc8a03fb6993aa78acafc2453a48c53f6b616", kill_on_drop: false }` [INFO] [stdout] 61246575af13f4c30ecc5ff7320bc8a03fb6993aa78acafc2453a48c53f6b616 [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] 6cf93ea3ba054fd2f75372cf65b85166933399ef4ff1bd38fe256eb0ee678edb [INFO] running `Command { std: "docker" "start" "-a" "6cf93ea3ba054fd2f75372cf65b85166933399ef4ff1bd38fe256eb0ee678edb", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/quantedge_ta-85d834801311b492) [INFO] [stdout] [INFO] [stdout] running 634 tests [INFO] [stdout] test indicators::adx::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::adx::tests::bounds::adx_between_0_and_100 ... ok [INFO] [stdout] test indicators::adx::tests::computation::downtrend_has_higher_minus_di ... ok [INFO] [stdout] test indicators::adx::tests::computation::adx_positive_in_trend ... ok [INFO] [stdout] test indicators::adx::tests::computation::uptrend_has_higher_plus_di ... ok [INFO] [stdout] test indicators::adx::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::adx::tests::config::convergence_is_double_length ... ok [INFO] [stdout] test indicators::adx::tests::config::length_accessor ... ok [INFO] [stdout] test indicators::adx::tests::config::source_builder_is_noop ... ok [INFO] [stdout] test indicators::adx::tests::config::source_is_close ... ok [INFO] [stdout] test indicators::adx::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::adx::tests::convergence::first_value_after_seeding ... ok [INFO] [stdout] test indicators::adx::tests::convergence::returns_none_during_seeding ... ok [INFO] [stdout] test indicators::adx::tests::convergence::value_matches_last_compute ... ok [INFO] [stdout] test indicators::adx::tests::repaints::repaint_during_filling_stays_none ... ok [INFO] [stdout] test indicators::adx::tests::repaints::repaint_updates_value ... ok [INFO] [stdout] test indicators::adx::tests::repaints::repaint_then_advance_uses_repainted ... ok [INFO] [stdout] test indicators::adx::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::adx::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::adx::tests::display::formats_config ... ok [INFO] [stdout] test indicators::adx::tests::display::formats_value ... ok [INFO] [stdout] test indicators::atr::tests::config::source_builder_is_noop ... ok [INFO] [stdout] test indicators::atr::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::atr::tests::display::config_formats_correctly ... ok [INFO] [stdout] test indicators::adx::tests::convergence::value_is_none_before_convergence ... ok [INFO] [stdout] test indicators::adx::tests::value_accessor::accessors_return_components ... ok [INFO] [stdout] test indicators::atr::tests::flat_market::atr_is_zero_on_flat_bars ... ok [INFO] [stdout] test indicators::adx::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::atr::tests::config::source_is_true_range ... ok [INFO] [stdout] test indicators::atr::tests::config::builder_sets_length ... ok [INFO] [stdout] test indicators::atr::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::atr::tests::gap_detection::gap_up_high_vs_prev_close_dominates ... ok [INFO] [stdout] test indicators::atr::tests::config::convergence_equals_length ... ok [INFO] [stdout] test indicators::atr::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::adx::tests::flat_market::flat_bars_give_zero_di ... ok [INFO] [stdout] test indicators::adx::tests::repaints::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::atr::tests::display::formats_correctly ... ok [INFO] [stdout] test indicators::atr::tests::seeding::first_value_is_sma_of_true_ranges ... ok [INFO] [stdout] test indicators::atr::tests::seeding::none_during_seeding ... ok [INFO] [stdout] test indicators::atr::tests::seeding::repaint_during_seeding ... ok [INFO] [stdout] test indicators::atr::tests::spike_decay::atr_decays_monotonically_after_spike ... ok [INFO] [stdout] test indicators::atr::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::atr::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::atr::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::atr::tests::wilders_smoothing::applies_wilder_alpha ... ok [INFO] [stdout] test indicators::atr::tests::wilders_smoothing::multi_bar_smoothing ... ok [INFO] [stdout] test indicators::atr::tests::window_size_one::always_equals_current_tr ... ok [INFO] [stdout] test indicators::bb::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::atr::tests::repaint::advance_after_repaint ... ok [INFO] [stdout] test indicators::atr::tests::repaint::multiple_repaints_same_bar ... ok [INFO] [stdout] test indicators::atr::tests::repaint::recomputes_from_prev_atr ... ok [INFO] [stdout] test indicators::atr::tests::repaint::repaint_matches_clean_computation ... ok [INFO] [stdout] test indicators::bb::tests::computation::bands_are_symmetric ... ok [INFO] [stdout] test indicators::bb::tests::computation::basic_bands ... ok [INFO] [stdout] test indicators::bb::tests::computation::constant_input_zero_width ... ok [INFO] [stdout] test indicators::atr::tests::gap_detection::gap_down_low_vs_prev_close_dominates ... ok [INFO] [stdout] test indicators::bb::tests::config::convergence_equals_length ... ok [INFO] [stdout] test indicators::bb::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::bb::tests::config::default_std_dev_is_two ... ok [INFO] [stdout] test indicators::bb::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::bb::tests::display::bb_formats_correctly ... ok [INFO] [stdout] test indicators::bb::tests::display::bb_value_formats_correctly ... ok [INFO] [stdout] test indicators::bb::tests::display::config_formats_correctly ... ok [INFO] [stdout] test indicators::bb::tests::eq_and_hash::identical_configs_match ... ok [INFO] [stdout] test indicators::bb::tests::filling::returns_value_when_full ... ok [INFO] [stdout] test indicators::bb::tests::price_source::hl2_source ... ok [INFO] [stdout] test indicators::bb::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::adx::tests::display::formats_adx ... ok [INFO] [stdout] test indicators::bb::tests::repaint::replaces_current_bar ... ok [INFO] [stdout] test indicators::bb::tests::sliding::updates_on_advance ... ok [INFO] [stdout] test indicators::bb::tests::std_dev_multiplier::multiplier_of_one ... ok [INFO] [stdout] test indicators::bb::tests::std_dev_multiplier::wider_multiplier_wider_bands ... ok [INFO] [stdout] test indicators::bb::tests::value::none_before_first_value ... ok [INFO] [stdout] test indicators::bb::tests::value::returns_last_computed ... ok [INFO] [stdout] test indicators::bb::tests::std_dev_multiplier::fractional_multiplier ... ok [INFO] [stdout] test indicators::atr::tests::window_size_one::first_bar_returns_value ... ok [INFO] [stdout] test indicators::bb::tests::width::equals_upper_minus_lower ... ok [INFO] [stdout] test indicators::bb::tests::width::zero_for_constant_input ... ok [INFO] [stdout] test indicators::cci::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::cci::tests::computation::basic_cci_value ... ok [INFO] [stdout] test indicators::cci::tests::computation::negative_cci ... ok [INFO] [stdout] test indicators::cci::tests::config::default_source_is_hlc3 ... ok [INFO] [stdout] test indicators::cci::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::cci::tests::computation::price_at_mean_gives_zero ... ok [INFO] [stdout] test indicators::cci::tests::config::close_helper_uses_close_source ... ok [INFO] [stdout] test indicators::cci::tests::config::convergence_equals_length ... ok [INFO] [stdout] test indicators::cci::tests::config::custom_source ... ok [INFO] [stdout] test indicators::cci::tests::config::length_accessor ... ok [INFO] [stdout] test indicators::cci::tests::display::formats_correctly ... ok [INFO] [stdout] test indicators::cci::tests::display::config_formats_correctly ... ok [INFO] [stdout] test indicators::cci::tests::filling::none_until_window_full ... ok [INFO] [stdout] test indicators::cci::tests::filling::returns_value_when_full ... ok [INFO] [stdout] test indicators::cci::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::cci::tests::repaint::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::cci::tests::price_source::uses_configured_source ... ok [INFO] [stdout] test indicators::cci::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::cci::tests::sliding::slides_across_many_bars ... ok [INFO] [stdout] test indicators::cci::tests::sliding::drops_oldest_on_advance ... ok [INFO] [stdout] test indicators::cci::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::cci::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::bb::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::adx::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::cci::tests::repaint::advance_after_repaint ... ok [INFO] [stdout] test indicators::cci::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::cci::tests::repaint::updates_current_bar ... ok [INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_nan - should panic ... ok [INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_zero - should panic ... ok [INFO] [stdout] test indicators::cci::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::chop::tests::bounds::always_between_0_and_100 ... ok [INFO] [stdout] test indicators::chop::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::chop::tests::computation::value_between_0_and_100 ... ok [INFO] [stdout] test indicators::chop::tests::computation::manual_computation ... ok [INFO] [stdout] test indicators::chop::tests::computation::flat_market_gives_100 ... ok [INFO] [stdout] test indicators::chop::tests::config::close_helper ... ok [INFO] [stdout] test indicators::chop::tests::config::convergence_equals_length ... ok [INFO] [stdout] test indicators::chop::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::cci::tests::computation::flat_market_gives_zero ... ok [INFO] [stdout] test indicators::chop::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::cci::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::bb::tests::filling::none_until_window_full ... ok [INFO] [stdout] test indicators::chop::tests::config::source_is_true_range ... ok [INFO] [stdout] test indicators::chop::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::chop::tests::display::config_formats_correctly ... ok [INFO] [stdout] test indicators::chop::tests::display::formats_correctly ... ok [INFO] [stdout] test indicators::chop::tests::filling::none_until_window_full ... ok [INFO] [stdout] test indicators::chop::tests::filling::returns_value_when_full ... ok [INFO] [stdout] test indicators::chop::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::chop::tests::repaint::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::chop::tests::repaint::advance_after_repaint ... ok [INFO] [stdout] test indicators::chop::tests::sliding::old_bar_expires ... ok [INFO] [stdout] test indicators::chop::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::chop::tests::repaint::updates_current_bar ... ok [INFO] [stdout] test indicators::chop::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::chop::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::dc::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::dc::tests::computation::slides_across_many_bars ... ok [INFO] [stdout] test indicators::dc::tests::computation::upper_lower_middle_math ... ok [INFO] [stdout] test indicators::dc::tests::config::convergence_equals_length ... ok [INFO] [stdout] test indicators::chop::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::dc::tests::computation::flat_market ... ok [INFO] [stdout] test indicators::dc::tests::config::custom_length ... ok [INFO] [stdout] test indicators::dc::tests::config::default_length_is_20 ... ok [INFO] [stdout] test indicators::dc::tests::computation::sliding_window_drops_oldest ... ok [INFO] [stdout] test indicators::dc::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::dc::tests::config::source_is_always_close ... ok [INFO] [stdout] test indicators::dc::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::dc::tests::display::display_value ... ok [INFO] [stdout] test indicators::dc::tests::convergence::first_value_at_length_bars ... ok [INFO] [stdout] test indicators::dc::tests::convergence::length_one_converges_immediately ... ok [INFO] [stdout] test indicators::dc::tests::convergence::returns_none_during_filling ... ok [INFO] [stdout] test indicators::dc::tests::display::display_config ... ok [INFO] [stdout] test indicators::dc::tests::repaints::repaint_during_filling_has_no_effect_on_convergence ... ok [INFO] [stdout] test indicators::dc::tests::repaints::repaint_then_advance_uses_repainted ... ok [INFO] [stdout] test indicators::dc::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::ema::tests::alpha::ema_2_alpha_is_two_thirds ... ok [INFO] [stdout] test indicators::ema::tests::alpha::ema_4_alpha_is_two_fifths ... ok [INFO] [stdout] test indicators::dc::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::ema::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::ema::tests::config::custom_source ... ok [INFO] [stdout] test indicators::ema::tests::config::close_helper ... ok [INFO] [stdout] test indicators::ema::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::ema::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::ema::tests::config::hl2_helper ... ok [INFO] [stdout] test indicators::ema::tests::config::ohlc4_helper ... ok [INFO] [stdout] test indicators::ema::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::dc::tests::invariants::panics_on_decreasing_open_time - should panic ... ok [INFO] [stdout] test indicators::ema::tests::convergence::returns_value_at_seed_without_enforcement ... ok [INFO] [stdout] test indicators::ema::tests::display::config_formats_correctly ... ok [INFO] [stdout] test indicators::ema::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::ema::tests::seeding::first_value_is_sma_seed ... ok [INFO] [stdout] test indicators::dc::tests::repaints::repaint_updates_value ... ok [INFO] [stdout] test indicators::ema::tests::seeding::repaint_during_seeding ... ok [INFO] [stdout] test indicators::ema::tests::seeding::none_during_seeding ... ok [INFO] [stdout] test indicators::ema::tests::price_source::uses_configured_source ... ok [INFO] [stdout] test indicators::dc::tests::value_accessor::accessors_return_correct_values ... ok [INFO] [stdout] test indicators::ema::tests::repaint::advance_after_repaint ... ok [INFO] [stdout] test indicators::ema::tests::repaint::multiple_repaints_same_bar ... ok [INFO] [stdout] test indicators::ema::tests::repaint::recomputes_from_prev_ema ... ok [INFO] [stdout] test indicators::dc::tests::repaints::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::ema::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::ema::tests::true_range::applies_ema_after_seed ... ok [INFO] [stdout] test indicators::ema::tests::true_range::seeds_with_true_range_sma ... ok [INFO] [stdout] test indicators::ema::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::ema::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::ema::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::ema::tests::window_size_one::always_equals_latest_price ... ok [INFO] [stdout] test indicators::ema::tests::window_size_one::first_bar_returns_value ... ok [INFO] [stdout] test indicators::ichimoku::tests::computation::kijun_is_midpoint_of_window_extremes ... ok [INFO] [stdout] test indicators::ichimoku::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::ichimoku::tests::computation::senkou_a_and_b_are_displaced ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::default_sets_standard_values ... ok [INFO] [stdout] test indicators::ichimoku::tests::computation::chikou_close_equals_current_close ... ok [INFO] [stdout] test indicators::ichimoku::tests::computation::tenkan_is_midpoint_of_window_extremes ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::convergence_is_senkou_b_plus_displacement_plus_one ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::source_is_close ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::ichimoku::tests::display::formats_indicator ... ok [INFO] [stdout] test indicators::ichimoku::tests::display::formats_value ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_displacement - should panic ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_tenkan - should panic ... ok [INFO] [stdout] test indicators::ichimoku::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::ichimoku::tests::repaint::advance_after_repaint ... ok [INFO] [stdout] test indicators::ichimoku::tests::filling::returns_value_at_convergence ... ok [INFO] [stdout] test indicators::ichimoku::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::ichimoku::tests::repaint::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::ichimoku::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::ichimoku::tests::sliding::values_change_as_window_slides ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_kijun - should panic ... ok [INFO] [stdout] test indicators::ichimoku::tests::display::formats_config ... ok [INFO] [stdout] test indicators::ichimoku::tests::repaint::updates_current_bar ... ok [INFO] [stdout] test indicators::ichimoku::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::custom_parameters ... ok [INFO] [stdout] test indicators::ichimoku::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::kc::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::ichimoku::tests::filling::none_until_convergence ... ok [INFO] [stdout] test indicators::kc::tests::computation::band_width_equals_2_times_multiplier_times_atr ... ok [INFO] [stdout] test indicators::kc::tests::computation::bands_symmetric_around_middle ... ok [INFO] [stdout] test indicators::kc::tests::computation::middle_equals_ema ... ok [INFO] [stdout] test indicators::kc::tests::computation::upper_above_middle_above_lower ... ok [INFO] [stdout] test indicators::kc::tests::config::accessors ... ok [INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_senkou_b - should panic ... ok [INFO] [stdout] test indicators::kc::tests::config::convergence_is_max_of_lengths ... ok [INFO] [stdout] test indicators::kc::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::kc::tests::config::full_convergence_capped_by_atr ... ok [INFO] [stdout] test indicators::kc::tests::config::default_multiplier_is_1_5 ... ok [INFO] [stdout] test indicators::kc::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::kc::tests::convergence::none_before_both_converge ... ok [INFO] [stdout] test indicators::kc::tests::convergence::none_when_atr_leads_ema ... ok [INFO] [stdout] test indicators::kc::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::kc::tests::convergence::first_value_at_max_length_atr_length ... ok [INFO] [stdout] test indicators::kc::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::kc::tests::convergence::value_matches_last_compute ... ok [INFO] [stdout] test indicators::kc::tests::config::panics_without_atr_length - should panic ... ok [INFO] [stdout] test indicators::kc::tests::convergence::value_none_before_convergence ... ok [INFO] [stdout] test indicators::kc::tests::convergence::none_when_ema_leads_atr ... ok [INFO] [stdout] test indicators::kc::tests::display::display_kc ... ok [INFO] [stdout] test indicators::kc::tests::display::display_value ... ok [INFO] [stdout] test indicators::kc::tests::price_source::uses_configured_source ... ok [INFO] [stdout] test indicators::kc::tests::multiplier::wider_multiplier_wider_bands ... ok [INFO] [stdout] test indicators::kc::tests::repaint::multiple_repaints_match_clean ... ok [INFO] [stdout] test indicators::kc::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::kc::tests::display::display_config ... ok [INFO] [stdout] test indicators::macd::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::macd::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::kc::tests::repaint::updates_value ... ok [INFO] [stdout] test indicators::kc::tests::repaint::repaint_then_advance ... ok [INFO] [stdout] test indicators::macd::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::macd::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::macd::tests::config::convergence_equals_slow_length ... ok [INFO] [stdout] test indicators::macd::tests::config::custom_lengths ... ok [INFO] [stdout] test indicators::macd::tests::config::default_is_12_26_9 ... ok [INFO] [stdout] test indicators::macd::tests::config::panics_when_fast_equals_slow - should panic ... ok [INFO] [stdout] test indicators::macd::tests::config::panics_when_fast_greater_than_slow - should panic ... ok [INFO] [stdout] test indicators::macd::tests::convergence::full_output_at_slow_plus_signal_minus_one ... ok [INFO] [stdout] test indicators::macd::tests::convergence::macd_line_available_at_slow_length ... ok [INFO] [stdout] test indicators::macd::tests::convergence::none_before_slow_ema_converges ... ok [INFO] [stdout] test indicators::macd::tests::convergence::value_none_before_convergence ... ok [INFO] [stdout] test indicators::macd::tests::display::display_config ... ok [INFO] [stdout] test indicators::macd::tests::convergence::value_matches_last_compute ... ok [INFO] [stdout] test indicators::macd::tests::display::display_macd ... ok [INFO] [stdout] test indicators::macd::tests::convergence::signal_none_during_signal_seed ... ok [INFO] [stdout] test indicators::macd::tests::edge_cases::constant_price_all_zeros ... ok [INFO] [stdout] test indicators::macd::tests::display::display_value_full ... ok [INFO] [stdout] test indicators::macd::tests::display::display_value_partial ... ok [INFO] [stdout] test indicators::macd::tests::edge_cases::trending_up_positive_macd ... ok [INFO] [stdout] test indicators::macd::tests::histogram::zero_when_constant_price ... ok [INFO] [stdout] test indicators::macd::tests::histogram::equals_macd_minus_signal ... ok [INFO] [stdout] test indicators::macd::tests::invariants::panics_on_decreasing_open_time - should panic ... ok [INFO] [stdout] test indicators::macd::tests::macd_line::equals_fast_minus_slow ... ok [INFO] [stdout] test indicators::macd::tests::macd_line::zero_when_constant_price ... ok [INFO] [stdout] test indicators::macd::tests::price_source::uses_configured_source ... ok [INFO] [stdout] test indicators::macd::tests::repaint::forming_bar_updates_value ... ok [INFO] [stdout] test indicators::macd::tests::repaint::multiple_repaints_stable ... ok [INFO] [stdout] test indicators::macd::tests::repaint::repaint_during_signal_seed ... ok [INFO] [stdout] test indicators::macd::tests::repaint::repaint_matches_clean ... ok [INFO] [stdout] test indicators::macd::tests::repaint::repaint_then_signal_seed_completes_correctly ... ok [INFO] [stdout] test indicators::macd::tests::signal_line::zero_when_constant_price ... ok [INFO] [stdout] test indicators::macd::tests::signal_line::signal_is_ema_of_macd_line ... ok [INFO] [stdout] test indicators::obv::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::obv::tests::computation::price_up_adds_volume ... ok [INFO] [stdout] test indicators::obv::tests::computation::zero_volume_bars ... ok [INFO] [stdout] test indicators::obv::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::obv::tests::config::display_config ... ok [INFO] [stdout] test indicators::obv::tests::computation::price_down_subtracts_volume ... ok [INFO] [stdout] test indicators::obv::tests::computation::price_unchanged_keeps_obv ... ok [INFO] [stdout] test indicators::obv::tests::computation::cumulative_across_bars ... ok [INFO] [stdout] test indicators::obv::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::obv::tests::convergence::returns_volume_on_first_bar ... ok [INFO] [stdout] test indicators::obv::tests::display::formats_correctly ... ok [INFO] [stdout] test indicators::obv::tests::no_volume::works_with_default_zero_volume ... ok [INFO] [stdout] test indicators::obv::tests::convergence::convergence_is_one ... ok [INFO] [stdout] test indicators::obv::tests::repaint::repaint_during_first_bar ... ok [INFO] [stdout] test indicators::obv::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::obv::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::obv::tests::repaint::multiple_repaints ... ok [INFO] [stdout] test indicators::obv::tests::repaint::repaint_then_advance ... ok [INFO] [stdout] test indicators::obv::tests::repaint::updates_current_bar ... ok [INFO] [stdout] test indicators::obv::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::obv::tests::value_accessor::none_before_any_bar ... ok [INFO] [stdout] test indicators::obv::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::computation::af_capped_at_max ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::computation::af_does_not_increment_without_new_ep ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::computation::af_increments_on_new_ep ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::computation::reversal_short_to_long ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::computation::sar_advances_toward_ep_in_uptrend ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::config::convergence_is_2 ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::config::default_values ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::config::source_is_close ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::computation::reversal_long_to_short ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::config::panics_without_af_step - should panic ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::config::panics_without_af_max - should panic ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::convergence::none_on_first_bar ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::convergence::some_on_second_bar ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::convergence::value_matches_last_compute ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::convergence::value_none_before_convergence ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::display::display_config ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::display::display_indicator ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::display::display_value ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::initialization::downtrend_sar_is_init_high ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::initialization::equal_close_defaults_to_long ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::initialization::uptrend_sar_is_init_low ... ok [INFO] [stdout] test indicators::dc::tests::display::display_dc ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::repaint::updates_value ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::repaint::repaint_bar3_matches_clean ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::repaint::repaint_then_advance ... ok [INFO] [stdout] test indicators::rsi::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::rsi::tests::bounds::always_between_0_and_100 ... ok [INFO] [stdout] test indicators::rsi::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::rsi::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::rsi::tests::config::convergence_equals_length_plus_one ... ok [INFO] [stdout] test indicators::rsi::tests::convergence::value_is_none_before_convergence ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::rsi::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::rsi::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::rsi::tests::convergence::value_matches_last_compute ... ok [INFO] [stdout] test indicators::rsi::tests::display::display_rsi ... ok [INFO] [stdout] test indicators::rsi::tests::invariants::panics_on_decreasing_open_time - should panic ... ok [INFO] [stdout] test indicators::rsi::tests::flat_price::flat_price_gives_50 ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::repaint::multiple_repaints_match_clean ... ok [INFO] [stdout] test indicators::rsi::tests::length_one::produces_on_bar_two ... ok [INFO] [stdout] test indicators::rsi::tests::price_source::uses_configured_source ... ok [INFO] [stdout] test indicators::rsi::tests::repaints::repaint_then_advance_uses_repainted_price ... ok [INFO] [stdout] test indicators::rsi::tests::repaints::seed_repaint_adjusts_sum ... ok [INFO] [stdout] test indicators::rsi::tests::seed_values::all_gains_gives_100 ... ok [INFO] [stdout] test indicators::rsi::tests::seed_values::equal_gains_and_losses_gives_50 ... ok [INFO] [stdout] test indicators::rsi::tests::seed_values::seed_rsi_computation ... ok [INFO] [stdout] test indicators::rsi::tests::seed_values::all_losses_gives_0 ... ok [INFO] [stdout] test indicators::rsi::tests::transition_repaint::transition_repaint_matches_clean ... ok [INFO] [stdout] test indicators::rsi::tests::length_one::length_one_values_correct ... ok [INFO] [stdout] test indicators::rsi::tests::wilder_smoothing::first_smoothed_value ... ok [INFO] [stdout] test indicators::sma::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::sma::tests::config::close_helper_uses_close_source ... ok [INFO] [stdout] test indicators::sma::tests::config::convergence_equals_length ... ok [INFO] [stdout] test indicators::sma::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::sma::tests::config::hl2_helper_uses_hl2_source ... ok [INFO] [stdout] test indicators::sma::tests::config::display_config ... ok [INFO] [stdout] test indicators::rsi::tests::repaints::active_repaint_updates_value ... ok [INFO] [stdout] test indicators::rsi::tests::repaints::multiple_repaints_match_single_computation ... ok [INFO] [stdout] test indicators::sma::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::rsi::tests::wilder_smoothing::converges_toward_50_with_alternating ... ok [INFO] [stdout] test indicators::sma::tests::display::formats_correctly ... ok [INFO] [stdout] test indicators::sma::tests::filling::none_until_window_full ... ok [INFO] [stdout] test indicators::sma::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::sma::tests::filling::returns_average_when_full ... ok [INFO] [stdout] test indicators::sma::tests::price_source::hl2_source ... ok [INFO] [stdout] test indicators::sma::tests::repaint::multiple_repaints ... ok [INFO] [stdout] test indicators::sma::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::sma::tests::repaint::updates_current_bar ... ok [INFO] [stdout] test indicators::sma::tests::sliding::drops_oldest_on_advance ... ok [INFO] [stdout] test indicators::sma::tests::sliding::slides_across_many_bars ... ok [INFO] [stdout] test indicators::sma::tests::true_range::averages_true_range_over_window ... ok [INFO] [stdout] test indicators::sma::tests::true_range::gap_up_uses_prev_close ... ok [INFO] [stdout] test indicators::sma::tests::true_range::first_bar_uses_high_minus_low ... ok [INFO] [stdout] test indicators::sma::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::sma::tests::config::ohlc4_helper_uses_ohlc4_source ... ok [INFO] [stdout] test indicators::sma::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::sma::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::stoch::tests::bounds::k_always_between_0_and_100 ... ok [INFO] [stdout] test indicators::sma::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::stoch::tests::computation::close_at_lowest_low_gives_0 ... ok [INFO] [stdout] test indicators::stoch::tests::computation::d_is_sma_of_k ... ok [INFO] [stdout] test indicators::stoch::tests::computation::k_smooth_averages_raw_k ... ok [INFO] [stdout] test indicators::stoch::tests::computation::raw_k_math ... ok [INFO] [stdout] test indicators::stoch::tests::config::accessors ... ok [INFO] [stdout] test indicators::stoch::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::stoch::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::stoch::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::stoch::tests::config::panics_without_d_smooth - should panic ... ok [INFO] [stdout] test indicators::stoch::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::stoch::tests::convergence::d_none_until_d_smooth_bars_after_k ... ok [INFO] [stdout] test indicators::stoch::tests::convergence::first_value_at_length_plus_k_smooth ... ok [INFO] [stdout] test indicators::stoch::tests::convergence::k_smooth_delays_output ... ok [INFO] [stdout] test indicators::stoch::tests::convergence::returns_none_during_filling ... ok [INFO] [stdout] test indicators::stoch::tests::display::display_config ... ok [INFO] [stdout] test indicators::stoch::tests::display::display_stoch ... ok [INFO] [stdout] test indicators::stoch::tests::display::display_value_with_d ... ok [INFO] [stdout] test indicators::stoch::tests::display::display_value_without_d ... ok [INFO] [stdout] test indicators::stoch::tests::price_source::uses_configured_source ... ok [INFO] [stdout] test indicators::stoch::tests::repaints::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::stoch::tests::repaints::repaint_during_filling_has_no_effect_on_convergence ... ok [INFO] [stdout] test indicators::stoch::tests::repaints::repaint_during_k_smooth_filling_produces_correct_values ... ok [INFO] [stdout] test indicators::stoch::tests::repaints::repaint_then_advance_uses_repainted ... ok [INFO] [stdout] test indicators::stoch::tests::repaints::repaint_updates_value ... ok [INFO] [stdout] test indicators::macd::tests::edge_cases::trending_down_negative_macd ... ok [INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::rsi::tests::convergence::first_value_at_period_plus_one_bars ... ok [INFO] [stdout] test indicators::stoch::tests::computation::close_at_highest_high_gives_100 ... ok [INFO] [stdout] test indicators::stoch::tests::computation::flat_market_gives_50 ... ok [INFO] [stdout] test indicators::stoch::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::stoch::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::stoch::tests::config::panics_without_k_smooth - should panic ... ok [INFO] [stdout] test indicators::stoch::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::stoch::tests::value_accessor::value_k_and_d_accessors ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::bounds::k_and_d_always_between_0_and_100 ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::computation::monotonic_increase_gives_constant_rsi_hence_50 ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::panics_without_d_smooth - should panic ... ok [INFO] [stdout] test indicators::ema::tests::display::formats_correctly ... ok [INFO] [stdout] test indicators::cci::tests::config::hlc3_helper_uses_hlc3_source ... ok [INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_negative - should panic ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::panics_without_k_smooth - should panic ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::panics_without_rsi_length - should panic ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::panics_without_stoch_length - should panic ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::convergence::convergence_matches_config ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::convergence::d_none_until_d_smooth_bars_after_k ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::convergence::first_value_at_convergence ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::convergence::k_smooth_delays_output ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::convergence::returns_none_during_filling ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::display::display_config ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::display::display_stoch_rsi ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::display::display_value_with_d ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::repaints::repaint_during_filling_has_no_effect_on_convergence ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::repaints::repaint_then_advance_uses_repainted ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::value_accessor::value_k_and_d_accessors ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::repaints::repaint_updates_value ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::repaints::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::supertrend::tests::computation::bearish_to_bullish_transition ... ok [INFO] [stdout] test indicators::supertrend::tests::computation::constant_ohlc_stays_bearish ... ok [INFO] [stdout] test indicators::supertrend::tests::computation::first_output_is_bearish_with_upper_band ... ok [INFO] [stdout] test indicators::supertrend::tests::computation::lower_band_clamps_up ... ok [INFO] [stdout] test indicators::supertrend::tests::computation::upper_band_clamps_down ... ok [INFO] [stdout] test indicators::supertrend::tests::config::accessors ... ok [INFO] [stdout] test indicators::supertrend::tests::config::convergence_equals_length_plus_1 ... ok [INFO] [stdout] test indicators::supertrend::tests::config::default_values ... ok [INFO] [stdout] test indicators::supertrend::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::supertrend::tests::config::source_is_close ... ok [INFO] [stdout] test indicators::supertrend::tests::config::panics_with_length_one - should panic ... ok [INFO] [stdout] test indicators::supertrend::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::supertrend::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::supertrend::tests::convergence::none_before_convergence ... ok [INFO] [stdout] test indicators::supertrend::tests::convergence::value_matches_last_compute ... ok [INFO] [stdout] test indicators::supertrend::tests::convergence::value_none_before_convergence ... ok [INFO] [stdout] test indicators::supertrend::tests::display::display_config ... ok [INFO] [stdout] test indicators::supertrend::tests::display::display_supertrend ... ok [INFO] [stdout] test indicators::supertrend::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::supertrend::tests::repaint::multiple_repaints_match_clean ... ok [INFO] [stdout] test indicators::supertrend::tests::repaint::repaint_then_advance ... ok [INFO] [stdout] test indicators::supertrend::tests::repaint::updates_value ... ok [INFO] [stdout] test indicators::supertrend::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::supertrend::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::supertrend::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::vwap::tests::anchor_reset::day_anchor_resets_on_boundary ... ok [INFO] [stdout] test indicators::supertrend::tests::display::display_value ... ok [INFO] [stdout] test indicators::supertrend::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::vwap::tests::anchor_reset::user_reset_clears_state ... ok [INFO] [stdout] test indicators::vwap::tests::anchor_reset::reset_panics_for_non_user_anchor - should panic ... ok [INFO] [stdout] test indicators::vwap::tests::bands::bands_present_when_configured ... ok [INFO] [stdout] test indicators::vwap::tests::bands::single_price_zero_std_dev ... ok [INFO] [stdout] test indicators::vwap::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::vwap::tests::computation::equal_volume_gives_simple_average ... ok [INFO] [stdout] test indicators::vwap::tests::computation::no_bands_when_not_configured ... ok [INFO] [stdout] test indicators::vwap::tests::computation::single_bar_equals_price ... ok [INFO] [stdout] test indicators::vwap::tests::computation::three_bars_cumulative ... ok [INFO] [stdout] test indicators::vwap::tests::config::default_values ... ok [INFO] [stdout] test indicators::vwap::tests::bands::bands_symmetric_around_vwap ... ok [INFO] [stdout] test indicators::vwap::tests::config::display_config ... ok [INFO] [stdout] test indicators::vwap::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::vwap::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test indicators::vwap::tests::convergence::convergence_is_one ... ok [INFO] [stdout] test indicators::vwap::tests::convergence::none_with_zero_volume ... ok [INFO] [stdout] test indicators::vwap::tests::convergence::returns_value_on_first_bar ... ok [INFO] [stdout] test indicators::vwap::tests::display::anchor_display ... ok [INFO] [stdout] test indicators::vwap::tests::display::band_display ... ok [INFO] [stdout] test indicators::vwap::tests::display::formats_correctly ... ok [INFO] [stdout] test indicators::vwap::tests::display::value_display ... ok [INFO] [stdout] test indicators::vwap::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::vwap::tests::repaint::multiple_repaints ... ok [INFO] [stdout] test indicators::vwap::tests::repaint::repaint_first_bar ... ok [INFO] [stdout] test indicators::vwap::tests::repaint::repaint_then_advance ... ok [INFO] [stdout] test indicators::kc::tests::computation::constant_ohlc_collapses_bands ... ok [INFO] [stdout] test indicators::kc::tests::config::full_convergence_uses_ema_bars_to_converge ... ok [INFO] [stdout] test indicators::macd::tests::config::full_convergence_includes_signal ... ok [INFO] [stdout] test indicators::rsi::tests::convergence::returns_none_during_seed ... ok [INFO] [stdout] test indicators::vwap::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::vwap::tests::repaint::updates_current_bar ... ok [INFO] [stdout] test indicators::vwap::tests::value_accessor::none_before_any_bar ... ok [INFO] [stdout] test indicators::vwap::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test indicators::willr::tests::bounds::always_between_minus_100_and_0 ... ok [INFO] [stdout] test indicators::rsi::tests::display::display_config ... ok [INFO] [stdout] test indicators::willr::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::willr::tests::computation::flat_market_gives_minus_50 ... ok [INFO] [stdout] test indicators::willr::tests::computation::midpoint_gives_minus_50 ... ok [INFO] [stdout] test indicators::willr::tests::computation::price_at_high_gives_zero ... ok [INFO] [stdout] test indicators::willr::tests::computation::price_at_low_gives_minus_100 ... ok [INFO] [stdout] test indicators::willr::tests::config::close_helper_uses_close_source ... ok [INFO] [stdout] test indicators::willr::tests::config::convergence_equals_length ... ok [INFO] [stdout] test indicators::willr::tests::config::custom_source ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::computation::flat_rsi_gives_50 ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::computation::varying_prices_give_intermediate_k ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::config::accessors ... ok [INFO] [stdout] test indicators::willr::tests::config::default_source_is_close ... ok [INFO] [stdout] test indicators::supertrend::tests::convergence::first_value_at_convergence ... ok [INFO] [stdout] test indicators::supertrend::tests::clone::produces_independent_state ... ok [INFO] [stdout] test indicators::stoch_rsi::tests::display::display_value_without_d ... ok [INFO] [stdout] test indicators::willr::tests::config::eq_and_hash ... ok [INFO] [stdout] test indicators::willr::tests::display::config_formats_correctly ... ok [INFO] [stdout] test indicators::willr::tests::config::length_accessor ... ok [INFO] [stdout] test indicators::willr::tests::filling::returns_value_when_full ... ok [INFO] [stdout] test indicators::willr::tests::filling::none_until_window_full ... ok [INFO] [stdout] test indicators::willr::tests::config::panics_without_length - should panic ... ok [INFO] [stdout] test indicators::willr::tests::repaint::advance_after_repaint ... ok [INFO] [stdout] test indicators::willr::tests::value_accessor::none_before_convergence ... ok [INFO] [stdout] test indicators::willr::tests::display::formats_correctly ... ok [INFO] [stdout] test inherent_methods::bb_without_indicator_import ... ok [INFO] [stdout] test inherent_methods::builder_methods_without_trait_import ... ok [INFO] [stdout] test indicators::willr::tests::live_data::mixed_open_and_closed_bars ... ok [INFO] [stdout] test indicators::willr::tests::sliding::old_extreme_expires ... ok [INFO] [stdout] test indicators::willr::tests::price_source::uses_configured_source ... ok [INFO] [stdout] test indicators::willr::tests::repaint::multiple_repaints_match_single ... ok [INFO] [stdout] test indicators::willr::tests::repaint::repaint_during_filling ... ok [INFO] [stdout] test indicators::willr::tests::value_accessor::matches_last_compute ... ok [INFO] [stdout] test indicators::willr::tests::value_accessor::returns_current_value ... ok [INFO] [stdout] test inherent_methods::config_methods_without_trait_import ... ok [INFO] [stdout] test indicators::willr::tests::repaint::updates_current_bar ... ok [INFO] [stdout] test internals::ema_core::tests::replace::multiple_replaces_during_seed ... ok [INFO] [stdout] test internals::ema_core::tests::replace::replace_matches_clean_computation ... ok [INFO] [stdout] test internals::ema_core::tests::replace::seed_bar_replace_recomputes_sma ... ok [INFO] [stdout] test internals::ema_core::tests::replace::seed_bar_replace_uses_sma_not_ema ... ok [INFO] [stdout] test internals::ema_core::tests::seeding::first_value_is_sma ... ok [INFO] [stdout] test internals::ema_core::tests::seeding::length_one_immediate ... ok [INFO] [stdout] test internals::ema_core::tests::replace::seed_replace_adjusts_sum ... ok [INFO] [stdout] test inherent_methods::sma_without_indicator_import ... ok [INFO] [stdout] test internals::ema_core::tests::replace::steady_state_recomputes_from_previous ... ok [INFO] [stdout] test internals::price_window::tests::price_window::filling::sum_is_none_when_empty ... ok [INFO] [stdout] test inherent_methods::ema_without_indicator_import ... ok [INFO] [stdout] test internals::ema_core::tests::steady_state::constant_input_stays_constant ... ok [INFO] [stdout] test internals::ema_core::tests::steady_state::continues_computation ... ok [INFO] [stdout] test internals::ema_core::tests::convergence::emits_at_seed_without_enforcement ... ok [INFO] [stdout] test internals::ema_core::tests::replace::multiple_replaces_stable ... ok [INFO] [stdout] test internals::ema_core::tests::replace::none_during_seed ... ok [INFO] [stdout] test internals::price_window::tests::price_window::filling::sum_is_none_until_window_full ... ok [INFO] [stdout] test internals::price_window::tests::price_window::filling::sum_returns_value_when_full ... ok [INFO] [stdout] test internals::price_window::tests::price_window::repaint::replaces_value_in_full_window ... ok [INFO] [stdout] test internals::price_window::tests::price_window::open_time_zero::first_bar_at_time_zero ... ok [INFO] [stdout] test internals::price_window::tests::price_window::repaint::multiple_repaints_same_bar ... ok [INFO] [stdout] test internals::price_window::tests::price_window::sliding::oldest_value_drops_on_advance ... ok [INFO] [stdout] test internals::price_window::tests::price_window::sliding::slides_across_many_bars ... ok [INFO] [stdout] test internals::price_window::tests::price_window::true_range::first_bar_uses_high_minus_low ... ok [INFO] [stdout] test internals::price_window::tests::price_window::true_range::prev_close_not_updated_on_repaint ... ok [INFO] [stdout] test internals::price_window::tests::price_window::true_range::prev_close_updates_on_advance ... ok [INFO] [stdout] test internals::price_window::tests::price_window::true_range::sum_accumulates_true_range_values ... ok [INFO] [stdout] test internals::price_window::tests::price_window::true_range::uses_prev_close_on_second_bar ... ok [INFO] [stdout] test internals::price_window::tests::price_window::window_size_one::ready_after_one_bar ... ok [INFO] [stdout] test internals::price_window::tests::price_window::invariants::panics_on_decreasing_open_time - should panic ... ok [INFO] [stdout] test internals::price_window::tests::price_window::true_range::gap_up_high_vs_prev_close_wins ... ok [INFO] [stdout] test internals::ema_core::tests::steady_state::applies_ema_after_seed ... ok [INFO] [stdout] test internals::price_window::tests::price_window::window_size_one::slides_with_size_one ... ok [INFO] [stdout] test internals::ring_buffer::tests::capacity_one ... ok [INFO] [stdout] test internals::ema_core::tests::seeding::none_before_seed_complete ... ok [INFO] [stdout] test internals::ring_buffer::tests::find_value_and_index::find_indexed_after_multiple_wraps ... ok [INFO] [stdout] test internals::ring_buffer::tests::find_value_and_index::find_indexed_all_equal ... ok [INFO] [stdout] test internals::ring_buffer::tests::full_evicts_oldest ... ok [INFO] [stdout] test internals::ring_buffer::tests::replace_when_full ... ok [INFO] [stdout] test internals::ring_buffer::tests::replace_swaps_latest ... ok [INFO] [stdout] test internals::ring_buffer::tests::wrap_around_correctness ... ok [INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::consecutive_rescans ... ok [INFO] [stdout] test internals::price_window::tests::price_window::open_time_zero::repaint_at_time_zero ... ok [INFO] [stdout] test internals::price_window::tests::price_window::repaint::replaces_value_in_unfilled_window ... ok [INFO] [stdout] test internals::ring_buffer::tests::find_value_and_index::find_indexed ... ok [INFO] [stdout] test internals::ring_buffer::tests::find_value_and_index::find_indexed_after_wrap ... ok [INFO] [stdout] test internals::ring_buffer::tests::filling_returns_none ... ok [INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::interleaved_replace_and_push ... ok [INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::large_window_stress ... ok [INFO] [stdout] test internals::rolling_extremes::tests::push::extreme_expires_when_pushed_out_of_window ... ok [INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::mid_window_extreme_ages_out ... ok [INFO] [stdout] test internals::rolling_extremes::tests::push::first_push_sets_extremes ... ok [INFO] [stdout] test internals::rolling_extremes::tests::flat_market::all_same_price ... ok [INFO] [stdout] test internals::rolling_extremes::tests::push::tracks_lowest_low_across_bars ... ok [INFO] [stdout] test internals::rolling_extremes::tests::push::tracks_highest_high_across_bars ... ok [INFO] [stdout] test internals::rolling_extremes::tests::replace::push_after_replace_commits_repainted_value ... ok [INFO] [stdout] test internals::rolling_extremes::tests::replace::returns_current_extremes ... ok [INFO] [stdout] test internals::rolling_extremes::tests::replace::multiple_monotonic_repaints_stable ... ok [INFO] [stdout] test internals::rolling_extremes::tests::trending::uptrend_max_always_newest ... ok [INFO] [stdout] test internals::rolling_extremes::tests::window_size_one::always_equals_current_bar ... ok [INFO] [stdout] test internals::rolling_extremes::tests::push::returns_current_extremes ... ok [INFO] [stdout] test price_source::tests::extract_high ... ok [INFO] [stdout] test price_source::tests::extract_hlc3 ... ok [INFO] [stdout] test price_source::tests::extract_hl2 ... ok [INFO] [stdout] test internals::rolling_extremes::tests::replace::updates_forming_bar ... ok [INFO] [stdout] test internals::rolling_extremes::tests::trending::downtrend_min_always_newest ... ok [INFO] [stdout] test price_source::tests::extract_low ... ok [INFO] [stdout] test price_source::tests::extract_close ... ok [INFO] [stdout] test price_source::tests::extract_hlcc4 ... ok [INFO] [stdout] test price_source::tests::true_range_high_vs_prev_close_wins ... ok [INFO] [stdout] test price_source::tests::extract_ohlc4 ... ok [INFO] [stdout] test price_source::tests::extract_open ... ok [INFO] [stdout] test price_source::tests::true_range_without_prev_close_falls_back_to_hl ... ok [INFO] [stdout] test price_source::tests::true_range_low_vs_prev_close_wins ... ok [INFO] [stdout] test types::multiplier::tests::display ... ok [INFO] [stdout] test price_source::tests::true_range_hl_wins ... ok [INFO] [stdout] test types::multiplier::tests::rejects_nan - should panic ... ok [INFO] [stdout] test types::multiplier::tests::eq_and_hash ... ok [INFO] [stdout] test types::multiplier::tests::value_accessor ... ok [INFO] [stdout] test types::multiplier::tests::rejects_zero - should panic ... ok [INFO] [stdout] test types::multiplier::tests::rejects_negative - should panic ... ok [INFO] [stdout] test indicators::supertrend::tests::computation::bullish_to_bearish_transition ... ok [INFO] [stdout] test indicators::vwap::tests::bands::band_2_wider_than_band_1 ... ok [INFO] [stdout] test indicators::vwap::tests::computation::two_bars_weighted_average ... ok [INFO] [stdout] test indicators::willr::tests::config::to_builder_roundtrip ... ok [INFO] [stdout] test internals::ema_core::tests::replace::push_after_replace_uses_replaced_value ... ok [INFO] [stdout] test internals::price_window::tests::price_window::repaint::sum_stays_none_during_repaint_of_unfilled ... ok [INFO] [stdout] test internals::price_window::tests::price_window::true_range::gap_down_low_vs_prev_close_wins ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 634 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] [stderr] Doc-tests quantedge_ta [INFO] [stdout] [INFO] [stdout] running 40 tests [INFO] [stdout] test src/indicators/adx.rs - indicators::adx::AdxConfig (line 18) ... ok [INFO] [stdout] test src/indicators/atr.rs - indicators::atr::AtrConfig (line 15) ... ok [INFO] [stdout] test src/indicator.rs - indicator::Indicator (line 52) ... ok [INFO] [stdout] test src/indicators/ema.rs - indicators::ema::Ema (line 187) ... ok [INFO] [stdout] test src/indicators/dc.rs - indicators::dc::Dc (line 167) ... ok [INFO] [stdout] test src/indicators/chop.rs - indicators::chop::Chop (line 132) ... ok [INFO] [stdout] test src/indicators/adx.rs - indicators::adx::Adx (line 182) ... ok [INFO] [stdout] test src/indicators/ema.rs - indicators::ema::EmaConfig (line 25) ... ok [INFO] [stdout] test src/indicators/ichimoku.rs - indicators::ichimoku::IchimokuConfig (line 24) ... ok [INFO] [stdout] test src/indicators/ichimoku.rs - indicators::ichimoku::Ichimoku (line 288) ... ok [INFO] [stdout] test src/indicators/chop.rs - indicators::chop::ChopConfig (line 20) ... ok [INFO] [stdout] test src/indicators/bb.rs - indicators::bb::BbConfig (line 17) ... ok [INFO] [stdout] test src/indicators/bb.rs - indicators::bb::Bb (line 236) ... ok [INFO] [stdout] test src/indicators/cci.rs - indicators::cci::Cci (line 154) ... ok [INFO] [stdout] test src/indicators/dc.rs - indicators::dc::DcConfig (line 17) ... ok [INFO] [stdout] test src/indicators/kc.rs - indicators::kc::KcConfig (line 24) ... ok [INFO] [stdout] test src/indicators/atr.rs - indicators::atr::Atr (line 139) ... ok [INFO] [stdout] test src/indicators/obv.rs - indicators::obv::Obv (line 122) ... ok [INFO] [stdout] test src/indicators/cci.rs - indicators::cci::CciConfig (line 15) ... ok [INFO] [stdout] test src/indicators/macd.rs - indicators::macd::Macd (line 275) ... ok [INFO] [stdout] test src/indicators/obv.rs - indicators::obv::ObvConfig (line 17) ... ok [INFO] [stdout] test src/indicators/macd.rs - indicators::macd::MacdConfig (line 24) ... ok [INFO] [stdout] test src/indicators/parabolic_sar.rs - indicators::parabolic_sar::ParabolicSar (line 211) ... ok [INFO] [stdout] test src/indicators/parabolic_sar.rs - indicators::parabolic_sar::ParabolicSarConfig (line 23) ... ok [INFO] [stdout] test src/indicators/rsi.rs - indicators::rsi::Rsi (line 164) ... ok [INFO] [stdout] test src/indicators/stoch_rsi.rs - indicators::stoch_rsi::StochRsi (line 262) ... ok [INFO] [stdout] test src/indicators/vwap.rs - indicators::vwap::Vwap (line 347) ... ok [INFO] [stdout] test src/indicators/supertrend.rs - indicators::supertrend::Supertrend (line 222) ... ok [INFO] [stdout] test src/indicators/willr.rs - indicators::willr::WillR (line 147) ... ok [INFO] [stdout] test src/indicators/supertrend.rs - indicators::supertrend::SupertrendConfig (line 24) ... ok [INFO] [stdout] test src/indicators/stoch.rs - indicators::stoch::Stoch (line 262) ... ok [INFO] [stdout] test src/indicators/rsi.rs - indicators::rsi::RsiConfig (line 16) ... ok [INFO] [stdout] test src/indicators/sma.rs - indicators::sma::SmaConfig (line 15) ... ok [INFO] [stdout] test src/indicators/vwap.rs - indicators::vwap::VwapConfig (line 66) ... ok [INFO] [stdout] test src/indicators/willr.rs - indicators::willr::WillRConfig (line 18) ... ok [INFO] [stdout] test src/indicators/stoch.rs - indicators::stoch::StochConfig (line 23) ... ok [INFO] [stdout] test src/ohlcv.rs - ohlcv::Ohlcv (line 31) ... ok [INFO] [stdout] test src/indicators/stoch_rsi.rs - indicators::stoch_rsi::StochRsiConfig (line 23) ... ok [INFO] [stdout] test src/indicators/kc.rs - indicators::kc::Kc (line 256) ... ok [INFO] [stdout] test src/indicators/sma.rs - indicators::sma::Sma (line 149) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.85s; merged doctests compilation took 0.80s [INFO] running `Command { std: "docker" "inspect" "6cf93ea3ba054fd2f75372cf65b85166933399ef4ff1bd38fe256eb0ee678edb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6cf93ea3ba054fd2f75372cf65b85166933399ef4ff1bd38fe256eb0ee678edb", kill_on_drop: false }` [INFO] [stdout] 6cf93ea3ba054fd2f75372cf65b85166933399ef4ff1bd38fe256eb0ee678edb