[INFO] fetching crate quantedge-ta 0.21.1...
[INFO] testing quantedge-ta-0.21.1 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate quantedge-ta 0.21.1 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate quantedge-ta 0.21.1
[INFO] finished tweaking crates.io crate quantedge-ta 0.21.1
[INFO] tweaked toml for crates.io crate quantedge-ta 0.21.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate quantedge-ta 0.21.1 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate quantedge-ta 0.21.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89
[INFO] running `Command { std: "docker" "start" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling quantedge-core v0.3.0
[INFO] [stderr]    Compiling quantedge-ta v0.21.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 |             min_val: f64::MAX,
[INFO] [stdout]    |                           ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 |             forming_min: f64::MAX,
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 |         if self.min_val >= f64::MAX {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2.10s
[INFO] running `Command { std: "docker" "inspect" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling quantedge-core v0.3.0
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling quantedge-ta v0.21.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 |             min_val: f64::MAX,
[INFO] [stdout]    |                           ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 |             forming_min: f64::MAX,
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 |         if self.min_val >= f64::MAX {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde v1.0.228
[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] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/internals/price_window.rs:322:17
[INFO] [stdout]     |
[INFO] [stdout] 322 |             use super::*;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 |             min_val: f64::MAX,
[INFO] [stdout]    |                           ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 |             forming_min: f64::MAX,
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stdout]   --> src/internals/rolling_max_min.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 |         if self.min_val >= f64::MAX {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stderr]   --> src/internals/rolling_max_min.rs:29:27
[INFO] [stderr]    |
[INFO] [stderr] 29 |             min_val: f64::MAX,
[INFO] [stderr]    |                           ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stderr]   --> src/internals/rolling_max_min.rs:33:31
[INFO] [stderr]    |
[INFO] [stderr] 33 |             forming_min: f64::MAX,
[INFO] [stderr]    |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f64::MAX`: replaced by the `MAX` associated constant on `f64`
[INFO] [stderr]   --> src/internals/rolling_max_min.rs:41:33
[INFO] [stderr]    |
[INFO] [stderr] 41 |         if self.min_val >= f64::MAX {
[INFO] [stderr]    |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `quantedge-ta` (lib) generated 3 warnings
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/internals/price_window.rs:322:17
[INFO] [stderr]     |
[INFO] [stderr] 322 |             use super::*;
[INFO] [stderr]     |                 ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `quantedge-ta` (lib test) generated 4 warnings (3 duplicates) (run `cargo fix --lib -p quantedge-ta --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/quantedge-ta/6ef9f515abdcd05f/out/quantedge_ta-6ef9f515abdcd05f)
[INFO] [stdout] 
[INFO] [stdout] running 696 tests
[INFO] [stdout] test indicators::adx::tests::config::convergence_is_double_length ... ok
[INFO] [stdout] test indicators::adx::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::adx::tests::computation::uptrend_has_higher_plus_di ... ok
[INFO] [stdout] test indicators::adx::tests::config::length_accessor ... ok
[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::adx_positive_in_trend ... ok
[INFO] [stdout] test indicators::adx::tests::config::source_is_close ... ok
[INFO] [stdout] test indicators::adx::tests::config::source_builder_is_noop ... 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::computation::downtrend_has_higher_minus_di ... ok
[INFO] [stdout] test indicators::adx::tests::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::adx::tests::convergence::returns_none_during_seeding ... 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::adx::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::adx::tests::convergence::value_is_none_before_convergence ... ok
[INFO] [stdout] test indicators::adx::tests::display::formats_adx ... ok
[INFO] [stdout] test indicators::adx::tests::flat_market::flat_bars_give_zero_di ... ok
[INFO] [stdout] test indicators::adx::tests::repaints::repaint_updates_value ... ok
[INFO] [stdout] test indicators::adx::tests::value_accessor::accessors_return_components ... ok
[INFO] [stdout] test indicators::adx::tests::value_accessor::matches_last_compute ... 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::repaints::repaint_then_advance_uses_repainted ... ok
[INFO] [stdout] test indicators::atr::tests::config::builder_sets_length ... ok
[INFO] [stdout] test indicators::atr::tests::config::source_builder_is_noop ... ok
[INFO] [stdout] test indicators::adx::tests::repaints::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::adx::tests::repaints::repaint_during_filling_stays_none ... ok
[INFO] [stdout] test indicators::atr::tests::config::source_is_true_range ... ok
[INFO] [stdout] test indicators::atr::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::atr::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test indicators::atr::tests::display::config_formats_correctly ... ok
[INFO] [stdout] test indicators::atr::tests::gap_detection::gap_down_low_vs_prev_close_dominates ... ok
[INFO] [stdout] test indicators::atr::tests::gap_detection::gap_up_high_vs_prev_close_dominates ... ok
[INFO] [stdout] test indicators::atr::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::atr::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::atr::tests::seeding::none_during_seeding ... ok
[INFO] [stdout] test indicators::atr::tests::flat_market::atr_is_zero_on_flat_bars ... ok
[INFO] [stdout] test indicators::atr::tests::repaint::multiple_repaints_same_bar ... ok
[INFO] [stdout] test indicators::atr::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::atr::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::atr::tests::seeding::repaint_during_seeding ... ok
[INFO] [stdout] test indicators::atr::tests::repaint::recomputes_from_prev_atr ... ok
[INFO] [stdout] test indicators::atr::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::atr::tests::wilders_smoothing::multi_bar_smoothing ... ok
[INFO] [stdout] test indicators::atr::tests::window_size_one::first_bar_returns_value ... ok
[INFO] [stdout] test indicators::atr::tests::wilders_smoothing::applies_wilder_alpha ... ok
[INFO] [stdout] test indicators::atr::tests::repaint::repaint_matches_clean_computation ... ok
[INFO] [stdout] test indicators::atr::tests::seeding::first_value_is_sma_of_true_ranges ... ok
[INFO] [stdout] test indicators::bb::tests::computation::bands_are_symmetric ... ok
[INFO] [stdout] test indicators::bb::tests::computation::constant_input_zero_width ... 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::atr::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::atr::tests::window_size_one::always_equals_current_tr ... ok
[INFO] [stdout] test indicators::bb::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::atr::tests::spike_decay::atr_decays_monotonically_after_spike ... ok
[INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_negative - should panic ... ok
[INFO] [stdout] test indicators::bb::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_nan - should panic ... 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::display::bb_formats_correctly ... ok
[INFO] [stdout] test indicators::bb::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::bb::tests::eq_and_hash::identical_configs_match ... ok
[INFO] [stdout] test indicators::bb::tests::filling::none_until_window_full ... ok
[INFO] [stdout] test indicators::atr::tests::value_accessor::returns_current_value ... ok
[INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_zero - should panic ... ok
[INFO] [stdout] test indicators::bb::tests::computation::basic_bands ... ok
[INFO] [stdout] test indicators::bb::tests::repaint::replaces_current_bar ... 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::sliding::updates_on_advance ... ok
[INFO] [stdout] test indicators::bb::tests::filling::returns_value_when_full ... ok
[INFO] [stdout] test indicators::bb::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::bb::tests::price_source::hl2_source ... 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::computation::negative_cci ... ok
[INFO] [stdout] test indicators::cci::tests::computation::price_at_mean_gives_zero ... ok
[INFO] [stdout] test indicators::cci::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::cci::tests::computation::flat_market_gives_zero ... ok
[INFO] [stdout] test indicators::bb::tests::value::returns_last_computed ... ok
[INFO] [stdout] test indicators::cci::tests::computation::basic_cci_value ... ok
[INFO] [stdout] test indicators::cci::tests::config::close_helper_uses_close_source ... ok
[INFO] [stdout] test indicators::bb::tests::std_dev_multiplier::fractional_multiplier ... ok
[INFO] [stdout] test indicators::bb::tests::std_dev_multiplier::multiplier_of_one ... ok
[INFO] [stdout] test indicators::cci::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::cci::tests::display::config_formats_correctly ... ok
[INFO] [stdout] test indicators::cci::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::cci::tests::filling::none_until_window_full ... ok
[INFO] [stdout] test indicators::cci::tests::config::hlc3_helper_uses_hlc3_source ... ok
[INFO] [stdout] test indicators::cci::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::cci::tests::price_source::uses_configured_source ... ok
[INFO] [stdout] test indicators::cci::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::cci::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::cci::tests::config::default_source_is_hlc3 ... ok
[INFO] [stdout] test indicators::cci::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::cci::tests::config::custom_source ... ok
[INFO] [stdout] test indicators::cci::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::cci::tests::filling::returns_value_when_full ... ok
[INFO] [stdout] test indicators::cci::tests::sliding::drops_oldest_on_advance ... ok
[INFO] [stdout] test indicators::cci::tests::sliding::slides_across_many_bars ... ok
[INFO] [stdout] test indicators::cci::tests::value_accessor::returns_current_value ... ok
[INFO] [stdout] test indicators::chop::tests::bounds::always_between_0_and_100 ... ok
[INFO] [stdout] test indicators::cci::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test indicators::cci::tests::config::length_accessor ... ok
[INFO] [stdout] test indicators::cci::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::chop::tests::clone::produces_independent_state ... 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::chop::tests::config::source_is_true_range ... ok
[INFO] [stdout] test indicators::cci::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::chop::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::cci::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::chop::tests::display::config_formats_correctly ... ok
[INFO] [stdout] test indicators::cci::tests::value_accessor::none_before_convergence ... 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::computation::flat_market_gives_100 ... ok
[INFO] [stdout] test indicators::chop::tests::computation::manual_computation ... ok
[INFO] [stdout] test indicators::chop::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::chop::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::chop::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::chop::tests::computation::value_between_0_and_100 ... ok
[INFO] [stdout] test indicators::chop::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::chop::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::chop::tests::value_accessor::matches_last_compute ... 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::chop::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::dc::tests::computation::upper_lower_middle_math ... ok
[INFO] [stdout] test indicators::dc::tests::computation::flat_market ... ok
[INFO] [stdout] test indicators::dc::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test indicators::dc::tests::computation::slides_across_many_bars ... ok
[INFO] [stdout] test indicators::dc::tests::computation::sliding_window_drops_oldest ... ok
[INFO] [stdout] test indicators::dc::tests::config::custom_length ... 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::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::config::default_length_is_20 ... ok
[INFO] [stdout] test indicators::chop::tests::sliding::old_bar_expires ... ok
[INFO] [stdout] test indicators::dc::tests::display::display_value ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::repaint_during_filling_has_no_effect_on_convergence ... ok
[INFO] [stdout] test indicators::dc::tests::value_accessor::accessors_return_correct_values ... ok
[INFO] [stdout] test indicators::dc::tests::value_accessor::matches_last_compute ... 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::display::display_dc ... 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::ema::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::ema::tests::config::close_helper ... ok
[INFO] [stdout] test indicators::ema::tests::config::custom_source ... 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::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::repaint_updates_value ... ok
[INFO] [stdout] test indicators::dc::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::ema::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::ema::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::ema::tests::convergence::returns_value_at_seed_without_enforcement ... ok
[INFO] [stdout] test indicators::ema::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::ema::tests::price_source::uses_configured_source ... 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::ema::tests::seeding::first_value_is_sma_seed ... 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::ema::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::ema::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::ichimoku::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::ema::tests::display::config_formats_correctly ... ok
[INFO] [stdout] test indicators::ema::tests::seeding::none_during_seeding ... ok
[INFO] [stdout] test indicators::ema::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::ema::tests::seeding::repaint_during_seeding ... ok
[INFO] [stdout] test indicators::ichimoku::tests::computation::chikou_close_equals_current_close ... ok
[INFO] [stdout] test indicators::ichimoku::tests::computation::kijun_is_midpoint_of_window_extremes ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::default_sets_standard_values ... ok
[INFO] [stdout] test indicators::ichimoku::tests::computation::senkou_a_and_b_are_displaced ... 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::custom_parameters ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_senkou_b - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_tenkan - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::filling::none_until_convergence ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::repaint_then_advance_uses_repainted ... ok
[INFO] [stdout] test indicators::ichimoku::tests::display::formats_config ... 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::config::source_is_close ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_kijun - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_displacement - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::sliding::values_change_as_window_slides ... ok
[INFO] [stdout] test indicators::ichimoku::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::ichimoku::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::ichimoku::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::ichimoku::tests::display::formats_indicator ... ok
[INFO] [stdout] test indicators::ichimoku::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::ichimoku::tests::display::formats_value ... ok
[INFO] [stdout] test indicators::ichimoku::tests::filling::returns_value_at_convergence ... ok
[INFO] [stdout] test indicators::kc::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::kc::tests::computation::bands_symmetric_around_middle ... ok
[INFO] [stdout] test indicators::kc::tests::computation::upper_above_middle_above_lower ... ok
[INFO] [stdout] test indicators::kc::tests::config::convergence_is_max_of_lengths ... ok
[INFO] [stdout] test indicators::kc::tests::computation::band_width_equals_2_times_multiplier_times_atr ... ok
[INFO] [stdout] test indicators::kc::tests::config::default_source_is_close ... 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::panics_without_atr_length - should panic ... ok
[INFO] [stdout] test indicators::kc::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::ichimoku::tests::value_accessor::returns_current_value ... ok
[INFO] [stdout] test indicators::kc::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::kc::tests::computation::constant_ohlc_collapses_bands ... ok
[INFO] [stdout] test indicators::kc::tests::computation::middle_equals_ema ... ok
[INFO] [stdout] test indicators::kc::tests::config::full_convergence_uses_ema_bars_to_converge ... ok
[INFO] [stdout] test indicators::kc::tests::config::accessors ... ok
[INFO] [stdout] test indicators::kc::tests::convergence::value_none_before_convergence ... ok
[INFO] [stdout] test indicators::kc::tests::display::display_config ... ok
[INFO] [stdout] test indicators::kc::tests::display::display_kc ... ok
[INFO] [stdout] test indicators::kc::tests::multiplier::wider_multiplier_wider_bands ... ok
[INFO] [stdout] test indicators::kc::tests::price_source::uses_configured_source ... 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::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::kc::tests::repaint::updates_value ... ok
[INFO] [stdout] test indicators::kdj::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::kdj::tests::computation::flat_market_stabilizes_at_50 ... ok
[INFO] [stdout] test indicators::kc::tests::convergence::first_value_at_max_length_atr_length ... ok
[INFO] [stdout] test indicators::kc::tests::convergence::none_when_ema_leads_atr ... ok
[INFO] [stdout] test indicators::kc::tests::display::display_value ... ok
[INFO] [stdout] test indicators::kdj::tests::computation::k_and_d_in_reasonable_range ... ok
[INFO] [stdout] test indicators::kc::tests::config::default_multiplier_is_1_5 ... ok
[INFO] [stdout] test indicators::kdj::tests::computation::values_respond_to_price ... ok
[INFO] [stdout] test indicators::kdj::tests::config::d_smooth_accessor ... ok
[INFO] [stdout] test indicators::kdj::tests::config::custom_k_d_smooth ... ok
[INFO] [stdout] test indicators::kdj::tests::config::close_helper_uses_close_source ... 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::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::kdj::tests::config::custom_source ... ok
[INFO] [stdout] test indicators::kdj::tests::config::convergence_equals_sum ... ok
[INFO] [stdout] test indicators::kdj::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::kdj::tests::display::formats_config ... ok
[INFO] [stdout] test indicators::kdj::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::kdj::tests::config::default_k_d_smooth_are_3 ... ok
[INFO] [stdout] test indicators::kdj::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::kdj::tests::display::formats_indicator ... ok
[INFO] [stdout] test indicators::kdj::tests::config::eq_and_hash_with_custom_smoothing ... ok
[INFO] [stdout] test indicators::kdj::tests::config::k_smooth_accessor ... ok
[INFO] [stdout] test indicators::kdj::tests::config::panics_without_period - should panic ... ok
[INFO] [stdout] test indicators::kdj::tests::config::period_accessor ... ok
[INFO] [stdout] test indicators::kdj::tests::display::formats_indicator_custom ... ok
[INFO] [stdout] test indicators::kdj::tests::filling::returns_value_at_convergence ... ok
[INFO] [stdout] test indicators::kdj::tests::filling::none_until_window_full ... ok
[INFO] [stdout] test indicators::kdj::tests::display::formats_value ... ok
[INFO] [stdout] test indicators::kdj::tests::filling::custom_smoothing_convergence ... ok
[INFO] [stdout] test indicators::kdj::tests::price_source::uses_hl2_source ... ok
[INFO] [stdout] test indicators::kdj::tests::reference::correct_output_count ... ok
[INFO] [stdout] test indicators::kdj::tests::reference::j_equals_3k_minus_2d ... ok
[INFO] [stdout] test indicators::kdj::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::kdj::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::kdj::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::kdj::tests::reference::k_d_in_0_100_range ... ok
[INFO] [stdout] test indicators::kdj::tests::reference::positive_k_d_values ... ok
[INFO] [stdout] test indicators::kdj::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::kdj::tests::sliding::old_extreme_expires ... ok
[INFO] [stdout] test indicators::macd::tests::config::custom_lengths ... ok
[INFO] [stdout] test indicators::macd::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::macd::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::macd::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::macd::tests::config::convergence_equals_slow_length ... ok
[INFO] [stdout] test indicators::macd::tests::config::full_convergence_includes_signal ... ok
[INFO] [stdout] test indicators::macd::tests::config::panics_when_fast_equals_slow - should panic ... ok
[INFO] [stdout] test indicators::macd::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::full_output_at_slow_plus_signal_minus_one ... ok
[INFO] [stdout] test indicators::macd::tests::config::panics_when_fast_greater_than_slow - should panic ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::macd_line_available_at_slow_length ... ok
[INFO] [stdout] test indicators::macd::tests::config::default_is_12_26_9 ... 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_value_full ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::none_before_slow_ema_converges ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::signal_none_during_signal_seed ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::value_none_before_convergence ... ok
[INFO] [stdout] test indicators::macd::tests::display::display_value_partial ... ok
[INFO] [stdout] test indicators::macd::tests::display::display_macd ... 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::edge_cases::constant_price_all_zeros ... ok
[INFO] [stdout] test indicators::macd::tests::edge_cases::trending_up_positive_macd ... ok
[INFO] [stdout] test indicators::macd::tests::histogram::equals_macd_minus_signal ... 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::repaint::repaint_during_signal_seed ... ok
[INFO] [stdout] test indicators::macd::tests::signal_line::signal_is_ema_of_macd_line ... ok
[INFO] [stdout] test indicators::mom::tests::computation::ascending_prices_increasing_momentum ... ok
[INFO] [stdout] test indicators::mom::tests::computation::basic_calculation ... ok
[INFO] [stdout] test indicators::macd::tests::signal_line::zero_when_constant_price ... ok
[INFO] [stdout] test indicators::mom::tests::computation::multi_step ... ok
[INFO] [stdout] test indicators::mom::tests::clone::produces_independent_state ... 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::edge_cases::trending_down_negative_macd ... ok
[INFO] [stdout] test indicators::macd::tests::histogram::zero_when_constant_price ... ok
[INFO] [stdout] test indicators::mom::tests::computation::negative_momentum ... ok
[INFO] [stdout] test indicators::mom::tests::computation::zero_momentum ... ok
[INFO] [stdout] test indicators::mom::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::mom::tests::config::panics_without_period - should panic ... ok
[INFO] [stdout] test indicators::mom::tests::config::close_helper_uses_close_source ... ok
[INFO] [stdout] test indicators::mom::tests::computation::varying_prices ... ok
[INFO] [stdout] test indicators::mom::tests::config::custom_source ... ok
[INFO] [stdout] test indicators::mom::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::mom::tests::config::convergence_equals_period_plus_one ... ok
[INFO] [stdout] test indicators::mom::tests::config::period_accessor ... ok
[INFO] [stdout] test indicators::mom::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::mom::tests::filling::first_output_at_period ... ok
[INFO] [stdout] test indicators::mom::tests::price_source::uses_hl2_source ... ok
[INFO] [stdout] test indicators::mom::tests::display::formats_config ... ok
[INFO] [stdout] test indicators::mom::tests::filling::none_until_period_bars ... ok
[INFO] [stdout] test indicators::mom::tests::display::formats_indicator ... ok
[INFO] [stdout] test indicators::mom::tests::filling::period_one ... ok
[INFO] [stdout] test indicators::mom::tests::repaint::repaint_after_convergence ... ok
[INFO] [stdout] test indicators::mom::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::mom::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::mom::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::mom::tests::reference::matches_reference_basic ... ok
[INFO] [stdout] test indicators::mom::tests::reference::short_input_returns_none ... ok
[INFO] [stdout] test indicators::mom::tests::reference::output_count_matches_reference ... ok
[INFO] [stdout] test indicators::mom::tests::sliding::old_price_expires ... ok
[INFO] [stdout] test indicators::obv::tests::computation::price_unchanged_keeps_obv ... ok
[INFO] [stdout] test indicators::obv::tests::computation::price_up_adds_volume ... ok
[INFO] [stdout] test indicators::mom::tests::sliding::slides_across_many_bars ... ok
[INFO] [stdout] test indicators::obv::tests::computation::zero_volume_bars ... ok
[INFO] [stdout] test indicators::obv::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::obv::tests::config::display_config ... ok
[INFO] [stdout] test indicators::obv::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::mom::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::mom::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::obv::tests::computation::price_down_subtracts_volume ... ok
[INFO] [stdout] test indicators::obv::tests::convergence::convergence_is_one ... ok
[INFO] [stdout] test indicators::obv::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::obv::tests::no_volume::works_with_default_zero_volume ... ok
[INFO] [stdout] test indicators::obv::tests::repaint::multiple_repaints ... ok
[INFO] [stdout] test indicators::obv::tests::repaint::repaint_during_first_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::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::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::computation::af_increments_on_new_ep ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::computation::reversal_long_to_short ... 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::panics_without_af_max - should panic ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::computation::reversal_short_to_long ... 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::sar_advances_toward_ep_in_uptrend ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::config::panics_without_af_step - should panic ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::config::to_builder_roundtrip ... 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::config::source_is_close ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::convergence::none_on_first_bar ... 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_during_filling ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::updates_value ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::returns_current_value ... ok
[INFO] [stdout] test indicators::rsi::tests::bounds::always_between_0_and_100 ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::multiple_repaints_match_clean ... ok
[INFO] [stdout] test indicators::rsi::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::rsi::tests::config::convergence_equals_length_plus_one ... 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::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::rsi::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::rsi::tests::convergence::first_value_at_period_plus_one_bars ... ok
[INFO] [stdout] test indicators::rsi::tests::convergence::returns_none_during_seed ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::initialization::equal_close_defaults_to_long ... ok
[INFO] [stdout] test indicators::obv::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::obv::tests::computation::cumulative_across_bars ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::initialization::uptrend_sar_is_init_low ... ok
[INFO] [stdout] test indicators::rsi::tests::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::rsi::tests::display::display_config ... ok
[INFO] [stdout] test indicators::obv::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::obv::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::rsi::tests::convergence::value_is_none_before_convergence ... ok
[INFO] [stdout] test indicators::rsi::tests::display::display_rsi ... ok
[INFO] [stdout] test indicators::rsi::tests::flat_price::flat_price_gives_50 ... 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::all_losses_gives_0 ... 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::transition_repaint::transition_repaint_matches_clean ... ok
[INFO] [stdout] test indicators::rsi::tests::wilder_smoothing::converges_toward_50_with_alternating ... ok
[INFO] [stdout] test indicators::rsi::tests::repaints::multiple_repaints_match_single_computation ... ok
[INFO] [stdout] test indicators::rsi::tests::wilder_smoothing::first_smoothed_value ... ok
[INFO] [stdout] test indicators::rsi::tests::repaints::repaint_then_advance_uses_repainted_price ... ok
[INFO] [stdout] test indicators::sma::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::sma::tests::config::display_config ... 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::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::sma::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::rsi::tests::price_source::uses_configured_source ... ok
[INFO] [stdout] test indicators::rsi::tests::length_one::length_one_values_correct ... ok
[INFO] [stdout] test indicators::rsi::tests::length_one::produces_on_bar_two ... ok
[INFO] [stdout] test indicators::sma::tests::filling::none_until_window_full ... ok
[INFO] [stdout] test indicators::sma::tests::display::formats_correctly ... 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::filling::returns_average_when_full ... ok
[INFO] [stdout] test indicators::sma::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::sma::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test indicators::sma::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::sma::tests::config::ohlc4_helper_uses_ohlc4_source ... ok
[INFO] [stdout] test indicators::sma::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::rsi::tests::repaints::active_repaint_updates_value ... ok
[INFO] [stdout] test indicators::sma::tests::sliding::drops_oldest_on_advance ... ok
[INFO] [stdout] test indicators::sma::tests::config::close_helper_uses_close_source ... ok
[INFO] [stdout] test indicators::sma::tests::true_range::first_bar_uses_high_minus_low ... ok
[INFO] [stdout] test indicators::sma::tests::true_range::gap_up_uses_prev_close ... ok
[INFO] [stdout] test indicators::sma::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::sma::tests::sliding::slides_across_many_bars ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::d_is_sma_of_k ... ok
[INFO] [stdout] test indicators::sma::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::sma::tests::value_accessor::returns_current_value ... ok
[INFO] [stdout] test indicators::stoch::tests::bounds::k_always_between_0_and_100 ... ok
[INFO] [stdout] test indicators::sma::tests::true_range::averages_true_range_over_window ... ok
[INFO] [stdout] test indicators::stoch::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::flat_market_gives_50 ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::close_at_lowest_low_gives_0 ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::close_at_highest_high_gives_100 ... 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::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::stoch::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::stoch::tests::convergence::d_none_until_d_smooth_bars_after_k ... ok
[INFO] [stdout] test indicators::stoch::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::stoch::tests::convergence::k_smooth_delays_output ... ok
[INFO] [stdout] test indicators::stoch::tests::config::panics_without_k_smooth - should panic ... 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_without_d ... ok
[INFO] [stdout] test indicators::stoch::tests::price_source::uses_configured_source ... ok
[INFO] [stdout] test indicators::stoch::tests::display::display_value_with_d ... 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::stoch::tests::config::panics_without_d_smooth - should panic ... ok
[INFO] [stdout] test indicators::stoch::tests::convergence::first_value_at_length_plus_k_smooth ... ok
[INFO] [stdout] test indicators::stoch::tests::value_accessor::value_k_and_d_accessors ... 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::computation::flat_rsi_gives_50 ... 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_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::stoch_rsi::tests::config::panics_without_k_smooth - should panic ... ok
[INFO] [stdout] test indicators::stoch::tests::repaints::repaint_during_k_smooth_filling_produces_correct_values ... ok
[INFO] [stdout] test indicators::stoch::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::config::panics_without_rsi_length - should panic ... ok
[INFO] [stdout] test indicators::stoch::tests::value_accessor::none_before_convergence ... 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::convergence::d_none_until_d_smooth_bars_after_k ... 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::display::display_value_without_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::convergence::convergence_matches_config ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::repaints::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::repaints::repaint_then_advance_uses_repainted ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::repaints::repaint_updates_value ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::value_accessor::value_k_and_d_accessors ... 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::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::first_value_at_convergence ... ok
[INFO] [stdout] test indicators::supertrend::tests::computation::bearish_to_bullish_transition ... 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::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::config::source_is_close ... ok
[INFO] [stdout] test indicators::supertrend::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::supertrend::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::supertrend::tests::convergence::first_value_at_convergence ... ok
[INFO] [stdout] test indicators::supertrend::tests::convergence::none_before_convergence ... ok
[INFO] [stdout] test indicators::supertrend::tests::convergence::value_none_before_convergence ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::supertrend::tests::config::panics_with_length_one - should panic ... ok
[INFO] [stdout] test indicators::supertrend::tests::display::display_supertrend ... ok
[INFO] [stdout] test indicators::supertrend::tests::clone::produces_independent_state ... 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::display::display_value ... ok
[INFO] [stdout] test indicators::supertrend::tests::live_data::mixed_open_and_closed_bars ... 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::supertrend::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::supertrend::tests::computation::bullish_to_bearish_transition ... ok
[INFO] [stdout] test indicators::supertrend::tests::computation::constant_ohlc_stays_bearish ... ok
[INFO] [stdout] test indicators::vwap::tests::anchor_reset::user_reset_clears_state ... ok
[INFO] [stdout] test indicators::vwap::tests::bands::bands_symmetric_around_vwap ... ok
[INFO] [stdout] test indicators::vwap::tests::bands::band_2_wider_than_band_1 ... 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::anchor_reset::day_anchor_resets_on_boundary ... ok
[INFO] [stdout] test indicators::vwap::tests::anchor_reset::reset_panics_for_non_user_anchor - should panic ... FAILED
[INFO] [stdout] test indicators::supertrend::tests::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::supertrend::tests::display::display_config ... ok
[INFO] [stdout] test indicators::supertrend::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::vwap::tests::clone::produces_independent_state ... 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::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::computation::two_bars_weighted_average ... ok
[INFO] [stdout] test indicators::vwap::tests::computation::equal_volume_gives_simple_average ... ok
[INFO] [stdout] test indicators::vwap::tests::display::value_display ... ok
[INFO] [stdout] test indicators::vwap::tests::config::default_values ... ok
[INFO] [stdout] test indicators::vwap::tests::repaint::repaint_first_bar ... ok
[INFO] [stdout] test indicators::vwap::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::vwap::tests::config::display_config ... ok
[INFO] [stdout] test indicators::vwap::tests::repaint::multiple_repaints ... ok
[INFO] [stdout] test indicators::vwap::tests::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::vwap::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::vwap::tests::value_accessor::matches_last_compute ... 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::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::custom_source ... ok
[INFO] [stdout] test indicators::willr::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::willr::tests::config::length_accessor ... ok
[INFO] [stdout] test indicators::willr::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::willr::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::willr::tests::display::config_formats_correctly ... ok
[INFO] [stdout] test indicators::willr::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::willr::tests::filling::returns_value_when_full ... ok
[INFO] [stdout] test indicators::willr::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::willr::tests::price_source::uses_configured_source ... ok
[INFO] [stdout] test indicators::willr::tests::filling::none_until_window_full ... ok
[INFO] [stdout] test indicators::willr::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::willr::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test indicators::willr::tests::sliding::old_extreme_expires ... ok
[INFO] [stdout] test indicators::willr::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::willr::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::willr::tests::value_accessor::returns_current_value ... 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 inherent_methods::config_methods_without_trait_import ... ok
[INFO] [stdout] test inherent_methods::ema_without_indicator_import ... ok
[INFO] [stdout] test inherent_methods::sma_without_indicator_import ... ok
[INFO] [stdout] test indicators::willr::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::willr::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::willr::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::vwap::tests::computation::no_bands_when_not_configured ... ok
[INFO] [stdout] test indicators::willr::tests::config::default_source_is_close ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::multiple_replaces_during_seed ... ok
[INFO] [stdout] test indicators::vwap::tests::value_accessor::none_before_any_bar ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::multiple_replaces_stable ... ok
[INFO] [stdout] test indicators::willr::tests::config::close_helper_uses_close_source ... ok
[INFO] [stdout] test internals::ema_core::tests::convergence::emits_at_seed_without_enforcement ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::seed_replace_adjusts_sum ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::seed_bar_replace_recomputes_sma ... ok
[INFO] [stdout] test internals::ema_core::tests::seeding::first_value_is_sma ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::steady_state_recomputes_from_previous ... ok
[INFO] [stdout] test internals::ema_core::tests::seeding::length_one_immediate ... ok
[INFO] [stdout] test internals::ema_core::tests::seeding::none_before_seed_complete ... ok
[INFO] [stdout] test internals::ema_core::tests::steady_state::applies_ema_after_seed ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::none_during_seed ... ok
[INFO] [stdout] test internals::ema_core::tests::steady_state::constant_input_stays_constant ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::replace_matches_clean_computation ... ok
[INFO] [stdout] test internals::ema_core::tests::steady_state::continues_computation ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_high ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_hl2 ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_low ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_open ... ok
[INFO] [stdout] test internals::price_source_extract::tests::true_range_hl_wins ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_close ... ok
[INFO] [stdout] test internals::price_source_extract::tests::true_range_high_vs_prev_close_wins ... 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_is_none_when_empty ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::push_after_replace_uses_replaced_value ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::seed_bar_replace_uses_sma_not_ema ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::filling::sum_returns_value_when_full ... ok
[INFO] [stdout] test internals::price_source_extract::tests::true_range_low_vs_prev_close_wins ... 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::replaces_value_in_full_window ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::repaint::replaces_value_in_unfilled_window ... 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::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::gap_down_low_vs_prev_close_wins ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::true_range::gap_up_high_vs_prev_close_wins ... 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_source_extract::tests::extract_hlc3 ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::true_range::sum_accumulates_true_range_values ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_hlcc4 ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_ohlc4 ... 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::slides_with_size_one ... ok
[INFO] [stdout] test internals::ring_buffer::tests::find_value_and_index::find_indexed ... ok
[INFO] [stdout] test internals::ring_buffer::tests::filling_returns_none ... 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_after_wrap ... ok
[INFO] [stdout] test internals::ring_buffer::tests::full_evicts_oldest ... ok
[INFO] [stdout] test internals::ring_buffer::tests::replace_swaps_latest ... ok
[INFO] [stdout] test internals::ring_buffer::tests::replace_when_full ... ok
[INFO] [stdout] test internals::ring_buffer::tests::wrap_around_correctness ... 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::price_source_extract::tests::true_range_without_prev_close_falls_back_to_hl ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::consecutive_rescans ... 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::push::returns_current_extremes ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::push::tracks_highest_high_across_bars ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::push::tracks_lowest_low_across_bars ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::replace::multiple_monotonic_repaints_stable ... 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::multiple_repaints_same_bar ... 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::trending::uptrend_max_always_newest ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::window_size_one::always_equals_current_bar ... ok
[INFO] [stdout] test types::multiplier::tests::display ... ok
[INFO] [stdout] test types::multiplier::tests::eq_and_hash ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::window_size_one::ready_after_one_bar ... ok
[INFO] [stdout] test internals::ring_buffer::tests::find_value_and_index::find_indexed_all_equal ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::flat_market::all_same_price ... ok
[INFO] [stdout] test internals::ring_buffer::tests::capacity_one ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::push::extreme_expires_when_pushed_out_of_window ... ok
[INFO] [stdout] test types::multiplier::tests::rejects_nan - should panic ... ok
[INFO] [stdout] test types::multiplier::tests::rejects_negative - should panic ... ok
[INFO] [stdout] test types::multiplier::tests::rejects_zero - should panic ... 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 types::multiplier::tests::value_accessor ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- indicators::vwap::tests::anchor_reset::reset_panics_for_non_user_anchor stdout ----
[INFO] [stdout] note: test did not panic as expected at src/indicators/vwap.rs:640:12
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     indicators::vwap::tests::anchor_reset::reset_panics_for_non_user_anchor
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 695 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89", kill_on_drop: false }`
[INFO] [stdout] 5f0db2b32c3f344c0e1beb38bdc3820711f88de43573b5bdac75bd42a69dca89
