[INFO] fetching crate tickglide-ta 0.22.0...
[INFO] testing tickglide-ta-0.22.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate tickglide-ta 0.22.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate tickglide-ta 0.22.0
[INFO] finished tweaking crates.io crate tickglide-ta 0.22.0
[INFO] tweaked toml for crates.io crate tickglide-ta 0.22.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate tickglide-ta 0.22.0 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 tickglide-ta 0.22.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" "+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-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8
[INFO] running `Command { std: "docker" "start" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8", 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" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8" "/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" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8", 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" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tickglide-core v0.4.0
[INFO] [stderr]    Compiling tickglide-ta v0.22.0 (/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 `dev` profile [unoptimized + debuginfo] target(s) in 1.10s
[INFO] running `Command { std: "docker" "inspect" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8", 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" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.4.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling tickglide-core v0.4.0
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling tickglide-ta v0.22.0 (/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.6
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling serde v1.0.229
[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: 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 `test` profile [unoptimized + debuginfo] target(s) in 41.00s
[INFO] running `Command { std: "docker" "inspect" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8", 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" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", 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: `tickglide-ta` (lib) generated 3 warnings
[INFO] [stderr] warning: `tickglide-ta` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/tickglide-ta/fbbcff9608102c88/out/tickglide_ta-fbbcff9608102c88)
[INFO] [stdout] 
[INFO] [stdout] running 700 tests
[INFO] [stdout] test indicators::adx::tests::computation::uptrend_has_higher_plus_di ... ok
[INFO] [stdout] test indicators::adx::tests::config::convergence_is_double_length ... 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::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::adx::tests::config::source_builder_is_noop ... ok
[INFO] [stdout] test indicators::adx::tests::config::eq_and_hash ... 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::config::length_accessor ... 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_is_none_before_convergence ... ok
[INFO] [stdout] test indicators::adx::tests::computation::adx_positive_in_trend ... ok
[INFO] [stdout] test indicators::adx::tests::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::adx::tests::display::formats_config ... ok
[INFO] [stdout] test indicators::adx::tests::repaints::repaint_updates_value ... ok
[INFO] [stdout] test indicators::adx::tests::display::formats_value ... ok
[INFO] [stdout] test indicators::adx::tests::flat_market::flat_bars_give_zero_di ... ok
[INFO] [stdout] test indicators::adx::tests::repaints::repaint_during_filling_stays_none ... ok
[INFO] [stdout] test indicators::adx::tests::repaints::repaint_then_advance_uses_repainted ... ok
[INFO] [stdout] test indicators::adx::tests::repaints::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::adx::tests::display::formats_adx ... ok
[INFO] [stdout] test indicators::atr::tests::config::builder_sets_length ... ok
[INFO] [stdout] test indicators::atr::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test indicators::adx::tests::value_accessor::returns_current_value ... ok
[INFO] [stdout] test indicators::atr::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::adx::tests::value_accessor::accessors_return_components ... ok
[INFO] [stdout] test indicators::adx::tests::value_accessor::none_before_convergence ... 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::adx::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::atr::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::atr::tests::config::source_builder_is_noop ... ok
[INFO] [stdout] test indicators::atr::tests::gap_detection::gap_up_high_vs_prev_close_dominates ... 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::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::none_before_convergence ... ok
[INFO] [stdout] test indicators::atr::tests::value_accessor::returns_current_value ... 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::atr::tests::window_size_one::first_bar_returns_value ... ok
[INFO] [stdout] test indicators::bb::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::bb::tests::computation::bands_are_symmetric ... ok
[INFO] [stdout] test indicators::atr::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::atr::tests::wilders_smoothing::applies_wilder_alpha ... 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::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::convergence_equals_length ... ok
[INFO] [stdout] test indicators::atr::tests::gap_detection::gap_down_low_vs_prev_close_dominates ... ok
[INFO] [stdout] test indicators::atr::tests::display::config_formats_correctly ... ok
[INFO] [stdout] test indicators::atr::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::atr::tests::flat_market::atr_is_zero_on_flat_bars ... ok
[INFO] [stdout] test indicators::bb::tests::display::bb_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::none_until_window_full ... 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::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::fractional_multiplier ... 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::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::bb::tests::display::bb_value_formats_correctly ... 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::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::flat_market_gives_zero ... 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::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::default_source_is_hlc3 ... ok
[INFO] [stdout] test indicators::bb::tests::width::equals_upper_minus_lower ... ok
[INFO] [stdout] test indicators::cci::tests::config::hlc3_helper_uses_hlc3_source ... ok
[INFO] [stdout] test indicators::cci::tests::config::length_accessor ... ok
[INFO] [stdout] test indicators::cci::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::bb::tests::width::zero_for_constant_input ... 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::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::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::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::cci::tests::repaint::updates_current_bar ... 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::matches_last_compute ... ok
[INFO] [stdout] test indicators::cci::tests::value_accessor::none_before_convergence ... 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::chop::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::chop::tests::computation::flat_market_gives_100 ... ok
[INFO] [stdout] test indicators::chop::tests::computation::value_between_0_and_100 ... ok
[INFO] [stdout] test indicators::adx::tests::config::panics_without_length - should panic ... 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::computation::manual_computation ... ok
[INFO] [stdout] test indicators::bb::tests::config::panics_without_length - should panic ... 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::config::source_is_true_range ... 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::bb::tests::config::std_dev_rejects_nan - should panic ... ok
[INFO] [stdout] test indicators::chop::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_negative - should panic ... ok
[INFO] [stdout] test indicators::chop::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::bb::tests::config::std_dev_rejects_zero - should panic ... ok
[INFO] [stdout] test indicators::chop::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::chop::tests::sliding::old_bar_expires ... ok
[INFO] [stdout] test indicators::cci::tests::config::panics_without_length - should panic ... 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::computation::flat_market ... 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::chop::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::dc::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test indicators::chop::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::dc::tests::config::default_length_is_20 ... ok
[INFO] [stdout] test indicators::dc::tests::config::eq_and_hash ... 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::custom_length ... ok
[INFO] [stdout] test indicators::chop::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::chop::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::dc::tests::computation::sliding_window_drops_oldest ... ok
[INFO] [stdout] test indicators::chop::tests::config::close_helper ... ok
[INFO] [stdout] test indicators::dc::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::dc::tests::config::source_is_always_close ... ok
[INFO] [stdout] test indicators::dc::tests::display::display_config ... ok
[INFO] [stdout] test indicators::dc::tests::display::display_value ... ok
[INFO] [stdout] test indicators::dc::tests::convergence::returns_none_during_filling ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::repaint_during_filling_has_no_effect_on_convergence ... ok
[INFO] [stdout] test indicators::dc::tests::display::display_dc ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::repaint_updates_value ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::repaint_then_advance_uses_repainted ... ok
[INFO] [stdout] test indicators::dc::tests::repaints::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::dc::tests::invariants::panics_on_decreasing_open_time - should panic ... 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::dc::tests::value_accessor::accessors_return_correct_values ... ok
[INFO] [stdout] test indicators::ema::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::dc::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::dc::tests::value_accessor::none_before_convergence ... 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::config::custom_source ... ok
[INFO] [stdout] test indicators::ema::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::ema::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::ema::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::ema::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::ema::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::ema::tests::config::to_builder_roundtrip ... 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::price_source::uses_configured_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::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::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::seeding::none_during_seeding ... ok
[INFO] [stdout] test indicators::ema::tests::seeding::repaint_during_seeding ... ok
[INFO] [stdout] test indicators::ema::tests::true_range::applies_ema_after_seed ... 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::clone::produces_independent_state ... 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::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::default_sets_standard_values ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_displacement - should panic ... 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::ichimoku::tests::display::formats_config ... ok
[INFO] [stdout] test indicators::ichimoku::tests::display::formats_indicator ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_kijun - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::filling::none_until_convergence ... ok
[INFO] [stdout] test indicators::ichimoku::tests::filling::returns_value_at_convergence ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_senkou_b - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::ichimoku::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::panics_without_tenkan - should panic ... ok
[INFO] [stdout] test indicators::ichimoku::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::ichimoku::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::ichimoku::tests::config::source_is_close ... ok
[INFO] [stdout] test indicators::ichimoku::tests::value_accessor::returns_current_value ... ok
[INFO] [stdout] test indicators::ichimoku::tests::value_accessor::none_before_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::constant_ohlc_collapses_bands ... 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::kc::tests::config::default_multiplier_is_1_5 ... ok
[INFO] [stdout] test indicators::kc::tests::config::convergence_is_max_of_lengths ... 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_uses_ema_bars_to_converge ... ok
[INFO] [stdout] test indicators::ichimoku::tests::display::formats_value ... ok
[INFO] [stdout] test indicators::ichimoku::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::kc::tests::convergence::first_value_at_max_length_atr_length ... ok
[INFO] [stdout] test indicators::ichimoku::tests::sliding::values_change_as_window_slides ... ok
[INFO] [stdout] test indicators::ichimoku::tests::value_accessor::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::none_when_atr_leads_ema ... ok
[INFO] [stdout] test indicators::kc::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::kc::tests::convergence::none_before_both_converge ... ok
[INFO] [stdout] test indicators::kc::tests::config::full_convergence_capped_by_atr ... 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::convergence::value_none_before_convergence ... ok
[INFO] [stdout] test indicators::kc::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::kc::tests::display::display_value ... ok
[INFO] [stdout] test indicators::kc::tests::multiplier::wider_multiplier_wider_bands ... 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::kc::tests::computation::band_width_equals_2_times_multiplier_times_atr ... 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::kdj::tests::config::close_helper_uses_close_source ... ok
[INFO] [stdout] test indicators::kdj::tests::computation::flat_market_stabilizes_at_50 ... ok
[INFO] [stdout] test indicators::kdj::tests::computation::k_and_d_in_reasonable_range ... ok
[INFO] [stdout] test indicators::kdj::tests::config::convergence_equals_sum ... ok
[INFO] [stdout] test indicators::kdj::tests::config::custom_k_d_smooth ... ok
[INFO] [stdout] test indicators::kdj::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::kdj::tests::config::custom_source ... ok
[INFO] [stdout] test indicators::kdj::tests::config::d_smooth_accessor ... 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::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::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::kdj::tests::display::formats_config ... ok
[INFO] [stdout] test indicators::kdj::tests::config::panics_without_period - should panic ... ok
[INFO] [stdout] test indicators::kdj::tests::display::formats_indicator ... ok
[INFO] [stdout] test indicators::kdj::tests::config::period_accessor ... ok
[INFO] [stdout] test indicators::kc::tests::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::kdj::tests::display::formats_indicator_custom ... ok
[INFO] [stdout] test indicators::kc::tests::display::display_config ... ok
[INFO] [stdout] test indicators::kc::tests::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::kdj::tests::filling::returns_value_at_convergence ... ok
[INFO] [stdout] test indicators::kdj::tests::reference::k_d_in_0_100_range ... 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::filling::none_until_window_full ... ok
[INFO] [stdout] test indicators::kdj::tests::price_source::uses_hl2_source ... 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::sliding::old_extreme_expires ... ok
[INFO] [stdout] test indicators::kdj::tests::value_accessor::none_before_convergence ... 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::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::macd::tests::config::default_is_12_26_9 ... 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::config::full_convergence_includes_signal ... 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::kdj::tests::reference::positive_k_d_values ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::macd_line_available_at_slow_length ... ok
[INFO] [stdout] test indicators::kdj::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::macd::tests::config::panics_when_fast_greater_than_slow - should panic ... ok
[INFO] [stdout] test indicators::kdj::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::kdj::tests::reference::correct_output_count ... ok
[INFO] [stdout] test indicators::kdj::tests::computation::values_respond_to_price ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::value_matches_last_compute ... 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::display::display_config ... ok
[INFO] [stdout] test indicators::macd::tests::display::display_value_full ... ok
[INFO] [stdout] test indicators::macd::tests::edge_cases::trending_down_negative_macd ... ok
[INFO] [stdout] test indicators::macd::tests::display::display_value_partial ... ok
[INFO] [stdout] test indicators::macd::tests::convergence::value_none_before_convergence ... ok
[INFO] [stdout] test indicators::macd::tests::display::display_macd ... ok
[INFO] [stdout] test indicators::macd::tests::histogram::equals_macd_minus_signal ... ok
[INFO] [stdout] test indicators::macd::tests::config::panics_when_fast_equals_slow - should panic ... ok
[INFO] [stdout] test indicators::macd::tests::edge_cases::trending_up_positive_macd ... ok
[INFO] [stdout] test indicators::macd::tests::macd_line::zero_when_constant_price ... ok
[INFO] [stdout] test indicators::macd::tests::macd_line::equals_fast_minus_slow ... ok
[INFO] [stdout] test indicators::macd::tests::histogram::zero_when_constant_price ... 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::price_source::uses_configured_source ... 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::edge_cases::constant_price_all_zeros ... ok
[INFO] [stdout] test indicators::macd::tests::signal_line::signal_is_ema_of_macd_line ... ok
[INFO] [stdout] test indicators::mom::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::mom::tests::computation::multi_step ... ok
[INFO] [stdout] test indicators::mom::tests::computation::negative_momentum ... 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::computation::ascending_prices_increasing_momentum ... ok
[INFO] [stdout] test indicators::mom::tests::computation::zero_momentum ... ok
[INFO] [stdout] test indicators::mom::tests::config::close_helper_uses_close_source ... ok
[INFO] [stdout] test indicators::mom::tests::config::convergence_equals_period_plus_one ... ok
[INFO] [stdout] test indicators::mom::tests::config::eq_and_hash ... 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::display::formats_config ... ok
[INFO] [stdout] test indicators::mom::tests::filling::first_output_at_period ... ok
[INFO] [stdout] test indicators::mom::tests::filling::none_until_period_bars ... ok
[INFO] [stdout] test indicators::mom::tests::filling::period_one ... ok
[INFO] [stdout] test indicators::mom::tests::config::panics_without_period - should panic ... ok
[INFO] [stdout] test indicators::mom::tests::price_source::uses_hl2_source ... ok
[INFO] [stdout] test indicators::mom::tests::reference::matches_reference_basic ... ok
[INFO] [stdout] test indicators::mom::tests::reference::output_count_matches_reference ... 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::sliding::old_price_expires ... ok
[INFO] [stdout] test indicators::mom::tests::sliding::slides_across_many_bars ... 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::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::obv::tests::computation::cumulative_across_bars ... ok
[INFO] [stdout] test indicators::obv::tests::computation::price_down_subtracts_volume ... ok
[INFO] [stdout] test indicators::mom::tests::reference::short_input_returns_none ... ok
[INFO] [stdout] test indicators::mom::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::mom::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::obv::tests::computation::price_unchanged_keeps_obv ... ok
[INFO] [stdout] test indicators::obv::tests::config::display_config ... ok
[INFO] [stdout] test indicators::obv::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::obv::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::obv::tests::convergence::convergence_is_one ... ok
[INFO] [stdout] test indicators::obv::tests::convergence::returns_volume_on_first_bar ... ok
[INFO] [stdout] test indicators::macd::tests::invariants::panics_on_decreasing_open_time - should panic ... ok
[INFO] [stdout] test indicators::obv::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::obv::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::mom::tests::computation::basic_calculation ... 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::mom::tests::display::formats_indicator ... ok
[INFO] [stdout] test indicators::macd::tests::signal_line::zero_when_constant_price ... 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::obv::tests::computation::price_up_adds_volume ... ok
[INFO] [stdout] test indicators::obv::tests::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::obv::tests::computation::zero_volume_bars ... ok
[INFO] [stdout] test indicators::obv::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::computation::reversal_long_to_short ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::computation::reversal_short_to_long ... ok
[INFO] [stdout] test indicators::obv::tests::config::default_source_is_close ... 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_capped_at_max ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::config::panics_without_af_max - should panic ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::config::panics_without_af_step - should panic ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::computation::af_increments_on_new_ep ... 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::config::to_builder_roundtrip ... 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::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::display::display_indicator ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::convergence::none_on_first_bar ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::display::display_value ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::config::default_values ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::convergence::some_on_second_bar ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::initialization::uptrend_sar_is_init_low ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::initialization::equal_close_defaults_to_long ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::multiple_repaints_match_clean ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::repaint_bar3_matches_clean ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::initialization::downtrend_sar_is_init_high ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::convergence::value_none_before_convergence ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::display::display_config ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::repaint::updates_value ... 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::rsi::tests::clone::produces_independent_state ... 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::value_is_none_before_convergence ... ok
[INFO] [stdout] test indicators::rsi::tests::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::parabolic_sar::tests::value_accessor::matches_last_compute ... ok
[INFO] [stdout] test indicators::rsi::tests::config::convergence_equals_length_plus_one ... ok
[INFO] [stdout] test indicators::rsi::tests::convergence::returns_none_during_seed ... ok
[INFO] [stdout] test indicators::rsi::tests::convergence::first_value_at_period_plus_one_bars ... ok
[INFO] [stdout] test indicators::rsi::tests::display::display_config ... 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::invariants::panics_on_decreasing_open_time - should panic ... ok
[INFO] [stdout] test indicators::rsi::tests::length_one::length_one_values_correct ... ok
[INFO] [stdout] test indicators::rsi::tests::repaints::active_repaint_updates_value ... 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::repaints::multiple_repaints_match_single_computation ... 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::wilder_smoothing::converges_toward_50_with_alternating ... 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::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::ohlc4_helper_uses_ohlc4_source ... ok
[INFO] [stdout] test indicators::rsi::tests::transition_repaint::transition_repaint_matches_clean ... ok
[INFO] [stdout] test indicators::sma::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::rsi::tests::wilder_smoothing::first_smoothed_value ... 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::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::first_bar_uses_high_minus_low ... ok
[INFO] [stdout] test indicators::sma::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::rsi::tests::repaints::repaint_then_advance_uses_repainted_price ... ok
[INFO] [stdout] test indicators::sma::tests::value_accessor::returns_current_value ... 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::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::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::close_at_highest_high_gives_100 ... ok
[INFO] [stdout] test indicators::sma::tests::filling::returns_average_when_full ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::d_is_sma_of_k ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::flat_market_gives_50 ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::k_smooth_averages_raw_k ... 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::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::stoch::tests::config::panics_without_d_smooth - should panic ... ok
[INFO] [stdout] test indicators::stoch::tests::config::eq_and_hash ... ok
[INFO] [stdout] test indicators::stoch::tests::config::panics_without_k_smooth - should panic ... ok
[INFO] [stdout] test indicators::stoch::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::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::stoch::tests::computation::raw_k_math ... ok
[INFO] [stdout] test indicators::stoch::tests::display::display_value_without_d ... 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_value_with_d ... ok
[INFO] [stdout] test indicators::stoch::tests::convergence::d_none_until_d_smooth_bars_after_k ... 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_then_advance_uses_repainted ... ok
[INFO] [stdout] test indicators::stoch::tests::convergence::first_value_at_length_plus_k_smooth ... ok
[INFO] [stdout] test indicators::stoch::tests::display::display_stoch ... ok
[INFO] [stdout] test indicators::stoch::tests::convergence::k_smooth_delays_output ... ok
[INFO] [stdout] test indicators::stoch::tests::repaints::repaint_updates_value ... 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::tests::value_accessor::matches_last_compute ... 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_k_smooth_filling_produces_correct_values ... ok
[INFO] [stdout] test indicators::stoch::tests::value_accessor::none_before_convergence ... 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::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::d_none_until_d_smooth_bars_after_k ... ok
[INFO] [stdout] test indicators::stoch::tests::value_accessor::value_k_and_d_accessors ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::convergence::first_value_at_convergence ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::config::accessors ... 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::convergence::k_smooth_delays_output ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::convergence::convergence_matches_config ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::display::display_value_without_d ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::repaints::multiple_repaints_match_single ... 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::computation::flat_rsi_gives_50 ... 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::varying_prices_give_intermediate_k ... 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::supertrend::tests::clone::produces_independent_state ... ok
[INFO] [stdout] test indicators::stoch_rsi::tests::display::display_stoch_rsi ... ok
[INFO] [stdout] test indicators::supertrend::tests::computation::first_output_is_bearish_with_upper_band ... 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::display::display_value_with_d ... 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::supertrend::tests::computation::lower_band_clamps_up ... ok
[INFO] [stdout] test indicators::supertrend::tests::config::accessors ... ok
[INFO] [stdout] test indicators::supertrend::tests::computation::upper_band_clamps_down ... 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::computation::bearish_to_bullish_transition ... ok
[INFO] [stdout] test indicators::supertrend::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::supertrend::tests::convergence::none_before_convergence ... ok
[INFO] [stdout] test indicators::supertrend::tests::convergence::first_value_at_convergence ... ok
[INFO] [stdout] test indicators::supertrend::tests::convergence::value_matches_last_compute ... ok
[INFO] [stdout] test indicators::supertrend::tests::config::panics_without_length - should panic ... ok
[INFO] [stdout] test indicators::supertrend::tests::config::convergence_equals_length_plus_1 ... ok
[INFO] [stdout] test indicators::supertrend::tests::display::display_supertrend ... ok
[INFO] [stdout] test indicators::supertrend::tests::display::display_value ... ok
[INFO] [stdout] test indicators::supertrend::tests::repaint::multiple_repaints_match_clean ... ok
[INFO] [stdout] test indicators::supertrend::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::supertrend::tests::live_data::mixed_open_and_closed_bars ... ok
[INFO] [stdout] test indicators::supertrend::tests::value_accessor::matches_last_compute ... 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::config::default_values ... 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::config::panics_with_length_one - should panic ... ok
[INFO] [stdout] test indicators::supertrend::tests::value_accessor::none_before_convergence ... ok
[INFO] [stdout] test indicators::vwap::tests::anchor_reset::reset_panics_for_non_user_anchor - should panic ... ok
[INFO] [stdout] test indicators::supertrend::tests::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::vwap::tests::bands::band_2_wider_than_band_1 ... 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::bands::bands_symmetric_around_vwap ... ok
[INFO] [stdout] test indicators::vwap::tests::bands::single_price_zero_std_dev ... 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::bands::bands_present_when_configured ... ok
[INFO] [stdout] test indicators::supertrend::tests::repaint::updates_value ... ok
[INFO] [stdout] test indicators::vwap::tests::anchor_reset::user_reset_clears_state ... ok
[INFO] [stdout] test indicators::vwap::tests::config::display_config ... ok
[INFO] [stdout] test indicators::vwap::tests::config::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::vwap::tests::config::eq_and_hash ... 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::computation::two_bars_weighted_average ... ok
[INFO] [stdout] test indicators::vwap::tests::config::default_values ... 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::convergence::returns_value_on_first_bar ... ok
[INFO] [stdout] test indicators::vwap::tests::display::anchor_display ... ok
[INFO] [stdout] test indicators::vwap::tests::repaint::repaint_first_bar ... ok
[INFO] [stdout] test indicators::vwap::tests::display::value_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::repaint::repaint_then_advance ... ok
[INFO] [stdout] test indicators::vwap::tests::value_accessor::matches_last_compute ... 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::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::vwap::tests::repaint::updates_current_bar ... ok
[INFO] [stdout] test indicators::willr::tests::bounds::always_between_minus_100_and_0 ... ok
[INFO] [stdout] test indicators::willr::tests::computation::price_at_low_gives_minus_100 ... ok
[INFO] [stdout] test indicators::willr::tests::computation::price_at_high_gives_zero ... ok
[INFO] [stdout] test indicators::willr::tests::config::close_helper_uses_close_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::to_builder_roundtrip ... ok
[INFO] [stdout] test indicators::willr::tests::display::formats_correctly ... ok
[INFO] [stdout] test indicators::willr::tests::config::panics_without_length - should panic ... 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::repaint::advance_after_repaint ... ok
[INFO] [stdout] test indicators::willr::tests::repaint::multiple_repaints_match_single ... ok
[INFO] [stdout] test indicators::willr::tests::repaint::updates_current_bar ... 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::filling::none_until_window_full ... ok
[INFO] [stdout] test indicators::willr::tests::config::convergence_equals_length ... ok
[INFO] [stdout] test internals::ema_core::tests::convergence::emits_at_seed_without_enforcement ... ok
[INFO] [stdout] test indicators::willr::tests::filling::returns_value_when_full ... ok
[INFO] [stdout] test indicators::willr::tests::repaint::repaint_during_filling ... ok
[INFO] [stdout] test indicators::willr::tests::config::custom_source ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::multiple_replaces_stable ... ok
[INFO] [stdout] test indicators::willr::tests::config::default_source_is_close ... ok
[INFO] [stdout] test indicators::willr::tests::display::config_formats_correctly ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::none_during_seed ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::multiple_replaces_during_seed ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::steady_state_recomputes_from_previous ... 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::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::replace::seed_bar_replace_uses_sma_not_ema ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::seed_replace_adjusts_sum ... ok
[INFO] [stdout] test internals::ema_core::tests::steady_state::continues_computation ... ok
[INFO] [stdout] test internals::ema_core::tests::replace::push_after_replace_uses_replaced_value ... 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::ema_core::tests::steady_state::constant_input_stays_constant ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_hlc3 ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_close ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_hlcc4 ... ok
[INFO] [stdout] test internals::price_source_extract::tests::true_range_hl_wins ... 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::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::price_window::tests::price_window::filling::sum_returns_value_when_full ... 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::open_time_zero::first_bar_at_time_zero ... ok
[INFO] [stdout] test internals::ema_core::tests::seeding::first_value_is_sma ... ok
[INFO] [stdout] test internals::ema_core::tests::steady_state::applies_ema_after_seed ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_low ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_ohlc4 ... ok
[INFO] [stdout] test internals::price_source_extract::tests::extract_open ... ok
[INFO] [stdout] test internals::price_source_extract::tests::true_range_high_vs_prev_close_wins ... ok
[INFO] [stdout] test internals::price_source_extract::tests::true_range_without_prev_close_falls_back_to_hl ... 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::price_window::tests::price_window::sliding::slides_across_many_bars ... 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::first_bar_uses_high_minus_low ... 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::repaint::replaces_value_in_full_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::true_range::sum_accumulates_true_range_values ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::window_size_one::slides_with_size_one ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::true_range::uses_prev_close_on_second_bar ... ok
[INFO] [stdout] test internals::ring_buffer::tests::filling_returns_none ... 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 ... ok
[INFO] [stdout] test internals::ring_buffer::tests::capacity_one ... 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::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_swaps_latest ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::interleaved_replace_and_push ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::consecutive_rescans ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::true_range::gap_down_low_vs_prev_close_wins ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::flat_market::all_same_price ... ok
[INFO] [stdout] test internals::price_window::tests::price_window::true_range::prev_close_updates_on_advance ... ok
[INFO] [stdout] test internals::ring_buffer::tests::wrap_around_correctness ... ok
[INFO] [stdout] test internals::ring_buffer::tests::replace_when_full ... 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::push::first_push_sets_extremes ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::corner_cases::mid_window_extreme_ages_out ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::replace::push_after_replace_commits_repainted_value ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::replace::updates_forming_bar ... 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::replace::returns_current_extremes ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::push::tracks_lowest_low_across_bars ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::trending::downtrend_min_always_newest ... 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::eq_and_hash ... ok
[INFO] [stdout] test types::multiplier::tests::display ... ok
[INFO] [stdout] test internals::rolling_extremes::tests::replace::multiple_monotonic_repaints_stable ... ok
[INFO] [stdout] test types::multiplier::tests::rejects_nan - should panic ... 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] 
[INFO] [stdout] test result: ok. 700 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests tickglide_ta
[INFO] [stdout] 
[INFO] [stdout] running 42 tests
[INFO] [stdout] test src/indicators/cci.rs - indicators::cci::CciConfig (line 15) ... ok
[INFO] [stdout] test src/indicators/adx.rs - indicators::adx::Adx (line 164) ... ok
[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/indicators/cci.rs - indicators::cci::Cci (line 156) ... ok
[INFO] [stdout] test src/indicators/bb.rs - indicators::bb::Bb (line 220) ... ok
[INFO] [stdout] test src/indicators/atr.rs - indicators::atr::Atr (line 141) ... ok
[INFO] [stdout] test src/indicators/dc.rs - indicators::dc::DcConfig (line 17) ... ok
[INFO] [stdout] test src/indicators/bb.rs - indicators::bb::BbConfig (line 17) ... ok
[INFO] [stdout] test src/indicators/dc.rs - indicators::dc::Dc (line 149) ... ok
[INFO] [stdout] test src/indicators/chop.rs - indicators::chop::Chop (line 134) ... ok
[INFO] [stdout] test src/indicators/chop.rs - indicators::chop::ChopConfig (line 20) ... ok
[INFO] [stdout] test src/indicators/kc.rs - indicators::kc::Kc (line 238) ... ok
[INFO] [stdout] test src/indicators/ichimoku.rs - indicators::ichimoku::Ichimoku (line 258) ... ok
[INFO] [stdout] test src/indicators/ema.rs - indicators::ema::EmaConfig (line 25) ... ok
[INFO] [stdout] test src/indicators/kc.rs - indicators::kc::KcConfig (line 24) ... ok
[INFO] [stdout] test src/indicators/ichimoku.rs - indicators::ichimoku::IchimokuConfig (line 24) ... ok
[INFO] [stdout] test src/indicators/ema.rs - indicators::ema::Ema (line 189) ... ok
[INFO] [stdout] test src/indicators/kdj.rs - indicators::kdj::Kdj (line 220) ... ok
[INFO] [stdout] test src/indicators/mom.rs - indicators::mom::Mom (line 140) ... ok
[INFO] [stdout] test src/indicators/macd.rs - indicators::macd::Macd (line 257) ... ok
[INFO] [stdout] test src/indicators/macd.rs - indicators::macd::MacdConfig (line 24) ... ok
[INFO] [stdout] test src/indicators/obv.rs - indicators::obv::ObvConfig (line 20) ... ok
[INFO] [stdout] test src/indicators/obv.rs - indicators::obv::Obv (line 121) ... ok
[INFO] [stdout] test src/indicators/kdj.rs - indicators::kdj::KdjConfig (line 27) ... ok
[INFO] [stdout] test src/indicators/mom.rs - indicators::mom::MomConfig (line 15) ... ok
[INFO] [stdout] test src/indicators/parabolic_sar.rs - indicators::parabolic_sar::ParabolicSar (line 199) ... ok
[INFO] [stdout] test src/indicators/rsi.rs - indicators::rsi::RsiConfig (line 17) ... ok
[INFO] [stdout] test src/indicators/stoch.rs - indicators::stoch::Stoch (line 250) ... ok
[INFO] [stdout] test src/indicators/rsi.rs - indicators::rsi::Rsi (line 167) ... ok
[INFO] [stdout] test src/indicators/sma.rs - indicators::sma::SmaConfig (line 15) ... ok
[INFO] [stdout] test src/indicators/parabolic_sar.rs - indicators::parabolic_sar::ParabolicSarConfig (line 23) ... ok
[INFO] [stdout] test src/indicators/stoch.rs - indicators::stoch::StochConfig (line 23) ... ok
[INFO] [stdout] test src/indicators/willr.rs - indicators::willr::WillR (line 149) ... ok
[INFO] [stdout] test src/indicators/sma.rs - indicators::sma::Sma (line 151) ... ok
[INFO] [stdout] test src/indicators/stoch_rsi.rs - indicators::stoch_rsi::StochRsiConfig (line 23) ... ok
[INFO] [stdout] test src/indicators/supertrend.rs - indicators::supertrend::SupertrendConfig (line 24) ... ok
[INFO] [stdout] test src/indicators/stoch_rsi.rs - indicators::stoch_rsi::StochRsi (line 250) ... ok
[INFO] [stdout] test src/indicators/vwap.rs - indicators::vwap::Vwap (line 318) ... ok
[INFO] [stdout] test src/indicators/willr.rs - indicators::willr::WillRConfig (line 18) ... ok
[INFO] [stdout] test src/indicators/vwap.rs - indicators::vwap::VwapConfig (line 67) ... ok
[INFO] [stdout] test src/indicators/supertrend.rs - indicators::supertrend::Supertrend (line 210) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.74s; merged doctests compilation took 0.68s
[INFO] running `Command { std: "docker" "inspect" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8", kill_on_drop: false }`
[INFO] [stdout] 4a8fb1de45cdafa0d7a5b169fbbf65800904c518a77498b7f851eb14dae704f8
