[INFO] cloning repository https://github.com/charypar/betty [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/charypar/betty" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcharypar%2Fbetty", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcharypar%2Fbetty'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0f6fcfebff60b96f8877e72fe8a7a007ea8f77bb [INFO] testing charypar/betty against master#432e145bd5a974c5b6f4dd9b352891bd7502b69d for pr-87041 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcharypar%2Fbetty" "/workspace/builds/worker-9/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/charypar/betty on toolchain 432e145bd5a974c5b6f4dd9b352891bd7502b69d [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+432e145bd5a974c5b6f4dd9b352891bd7502b69d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/charypar/betty [INFO] finished tweaking git repo https://github.com/charypar/betty [INFO] tweaked toml for git repo https://github.com/charypar/betty written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate git repo https://github.com/charypar/betty already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+432e145bd5a974c5b6f4dd9b352891bd7502b69d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+432e145bd5a974c5b6f4dd9b352891bd7502b69d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e937761163fd94da704cc5df1eb88beb8c2abbf35964fcc49cb0490c67c6f769 [INFO] running `Command { std: "docker" "start" "-a" "e937761163fd94da704cc5df1eb88beb8c2abbf35964fcc49cb0490c67c6f769", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e937761163fd94da704cc5df1eb88beb8c2abbf35964fcc49cb0490c67c6f769", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e937761163fd94da704cc5df1eb88beb8c2abbf35964fcc49cb0490c67c6f769", kill_on_drop: false }` [INFO] [stdout] e937761163fd94da704cc5df1eb88beb8c2abbf35964fcc49cb0490c67c6f769 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+432e145bd5a974c5b6f4dd9b352891bd7502b69d" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5489d922011b4962eff92204a2466693814dcd2cde51b5ff5d00d9b719d2e7ef [INFO] running `Command { std: "docker" "start" "-a" "5489d922011b4962eff92204a2466693814dcd2cde51b5ff5d00d9b719d2e7ef", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.27 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.73 [INFO] [stderr] Compiling memchr v2.4.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling iso_currency v0.4.1 [INFO] [stderr] Compiling itoa v0.4.7 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling iso_country v0.1.4 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling csv-core v0.1.10 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling serde_derive v1.0.126 [INFO] [stderr] Compiling serde v1.0.126 [INFO] [stderr] Compiling rust_decimal v1.14.3 [INFO] [stderr] Compiling bstr v0.2.16 [INFO] [stderr] Compiling csv v1.1.6 [INFO] [stderr] Compiling rust_decimal_macros v1.14.3 [INFO] [stderr] Compiling betty v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Date` [INFO] [stdout] --> src/core/trade.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{Date, DateTime, Utc}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Date` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use chrono::Date; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `values` [INFO] [stdout] --> src/core/strategy.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | fn ema(values: &[Decimal]) -> Decimal { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `history` [INFO] [stdout] --> src/core/strategy.rs:26:22 [INFO] [stdout] | [INFO] [stdout] 26 | fn signal(&self, history: &PriceHistory) -> Option { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `DealTooSmall` [INFO] [stdout] --> src/core/market.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | DealTooSmall, // size below min_deal_size [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `StopTooClose` [INFO] [stdout] --> src/core/market.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | StopTooClose, // stop-loss is not far enough [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `InsufficientBalance` [INFO] [stdout] --> src/core/market.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | InsufficientBalance, // would result in margin call [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `validate_entry` [INFO] [stdout] --> src/core/market.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn validate_entry( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `margin_requirement` [INFO] [stdout] --> src/core/market.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | fn margin_requirement(&self, order: &Entry) -> CurrencyAmount { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `spread` [INFO] [stdout] --> src/core/price.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn spread(&self) -> Points { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Enter` [INFO] [stdout] --> src/core/strategy.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | Enter(Direction), // Also considered an exit signal for the opposite direction [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Exit` [INFO] [stdout] --> src/core/strategy.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | Exit(Direction), // Exit only [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `ema` [INFO] [stdout] --> src/core/strategy.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn ema(values: &[Decimal]) -> Decimal { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Buy` [INFO] [stdout] --> src/core/trade.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | Buy, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Sell` [INFO] [stdout] --> src/core/trade.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | Sell, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Open` [INFO] [stdout] --> src/core/trade.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | Open(Entry), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Close` [INFO] [stdout] --> src/core/trade.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | Close(Exit), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Stop` [INFO] [stdout] --> src/core/trade.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | Stop(Exit), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Loss` [INFO] [stdout] --> src/core/trade.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | Loss, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `exit` [INFO] [stdout] --> src/core/trade.rs:127:12 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn exit(&self, price: Price, time: DateTime) -> Exit { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `NoMatchingEntry` [INFO] [stdout] --> src/core/mod.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | NoMatchingEntry(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `DuplicatePosition` [INFO] [stdout] --> src/core/mod.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | DuplicatePosition(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `PositionAlreadyClosed` [INFO] [stdout] --> src/core/mod.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | PositionAlreadyClosed(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `update_price` [INFO] [stdout] --> src/core/mod.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn update_price(&mut self, frame: Frame) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `log_order` [INFO] [stdout] --> src/core/mod.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | pub fn log_order(&mut self, order: Order) -> Result<(), AccountError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `check_entry` [INFO] [stdout] --> src/core/mod.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | fn check_entry(&self, entry: &Entry) -> Result<(), AccountError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `matching_entry` [INFO] [stdout] --> src/core/mod.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 179 | fn matching_entry(&self, exit: &Exit) -> Result, AccountError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 27 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 31.09s [INFO] running `Command { std: "docker" "inspect" "5489d922011b4962eff92204a2466693814dcd2cde51b5ff5d00d9b719d2e7ef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5489d922011b4962eff92204a2466693814dcd2cde51b5ff5d00d9b719d2e7ef", kill_on_drop: false }` [INFO] [stdout] 5489d922011b4962eff92204a2466693814dcd2cde51b5ff5d00d9b719d2e7ef [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+432e145bd5a974c5b6f4dd9b352891bd7502b69d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9db143b78b4917fae356b85863244317d9a1b7178240b3a79cd0d98369c2d492 [INFO] running `Command { std: "docker" "start" "-a" "9db143b78b4917fae356b85863244317d9a1b7178240b3a79cd0d98369c2d492", kill_on_drop: false }` [INFO] [stderr] Compiling betty v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Date` [INFO] [stdout] --> src/core/trade.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{Date, DateTime, Utc}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Date` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use chrono::Date; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/main.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `values` [INFO] [stdout] --> src/core/strategy.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | fn ema(values: &[Decimal]) -> Decimal { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `history` [INFO] [stdout] --> src/core/strategy.rs:26:22 [INFO] [stdout] | [INFO] [stdout] 26 | fn signal(&self, history: &PriceHistory) -> Option { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `spread` [INFO] [stdout] --> src/core/price.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn spread(&self) -> Points { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `ema` [INFO] [stdout] --> src/core/strategy.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn ema(values: &[Decimal]) -> Decimal { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Loss` [INFO] [stdout] --> src/core/trade.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | Loss, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.11s [INFO] running `Command { std: "docker" "inspect" "9db143b78b4917fae356b85863244317d9a1b7178240b3a79cd0d98369c2d492", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9db143b78b4917fae356b85863244317d9a1b7178240b3a79cd0d98369c2d492", kill_on_drop: false }` [INFO] [stdout] 9db143b78b4917fae356b85863244317d9a1b7178240b3a79cd0d98369c2d492 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+432e145bd5a974c5b6f4dd9b352891bd7502b69d" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1127c5513d221d2a2bbb910ca5574f2ddebd85b4b75bd27267145e0377a545cd [INFO] running `Command { std: "docker" "start" "-a" "1127c5513d221d2a2bbb910ca5574f2ddebd85b4b75bd27267145e0377a545cd", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Date` [INFO] [stderr] --> src/core/trade.rs:1:14 [INFO] [stderr] | [INFO] [stderr] 1 | use chrono::{Date, DateTime, Utc}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `chrono::Date` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use chrono::Date; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/main.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `values` [INFO] [stderr] --> src/core/strategy.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | fn ema(values: &[Decimal]) -> Decimal { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `history` [INFO] [stderr] --> src/core/strategy.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | fn signal(&self, history: &PriceHistory) -> Option { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history` [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `spread` [INFO] [stderr] --> src/core/price.rs:92:12 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn spread(&self) -> Points { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `ema` [INFO] [stderr] --> src/core/strategy.rs:32:4 [INFO] [stderr] | [INFO] [stderr] 32 | fn ema(values: &[Decimal]) -> Decimal { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Loss` [INFO] [stderr] --> src/core/trade.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | Loss, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: 8 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/betty-9190fe6d1e47c18b) [INFO] [stdout] [INFO] [stdout] running 27 tests [INFO] [stdout] test core::market::test::rejects_entry_below_minimum_deal_size ... ok [INFO] [stdout] test core::price::test::adds_days_to_date ... ok [INFO] [stdout] test core::market::test::validates_an_ok_trade ... ok [INFO] [stdout] test core::price::test::adds_minutes_to_date ... ok [INFO] [stdout] test core::price::test::adds_seconds_to_date ... ok [INFO] [stdout] test core::price::test::adds_weeks_to_date ... ok [INFO] [stdout] test core::strategy::test::calculates_exp_average ... ok [INFO] [stdout] test core::strategy::test::calculates_entry_with_stable_history ... ok [INFO] [stdout] test core::strategy::test::rejects_entry_without_enough_history ... ok [INFO] [stdout] test core::test::closes_a_position_based_on_an_exit_signal ... ok [INFO] [stdout] test core::test::logs_three_trades_for_five_orders ... ok [INFO] [stdout] test core::test::rejects_an_order_with_duplicate_position_id ... ok [INFO] [stdout] test core::strategy::test::sets_stop_based_on_recent_history ... ok [INFO] [stdout] test core::market::test::rejects_entry_with_insufficient_margin ... ok [INFO] [stdout] test core::price::test::adds_hours_to_date ... ok [INFO] [stdout] test core::test::gives_an_empty_trade_log_for_no_orders ... ok [INFO] [stdout] test core::market::test::rejects_entry_with_stop_too_close ... ok [INFO] [stdout] test core::test::does_not_allow_to_log_a_close_order_without_matching_open ... ok [INFO] [stdout] test core::test::logs_an_open_trade_for_a_single_order ... ok [INFO] [stdout] test core::price::test::makes_price_from_mid_market_and_spread ... ok [INFO] [stdout] test core::test::logs_a_price_update ... ok [INFO] [stdout] test core::test::reverses_a_positon_based_on_an_entry_signal ... ok [INFO] [stdout] test core::test::rejects_orders_for_closed_positions ... ok [INFO] [stdout] test core::test::logs_a_closed_trade_for_a_pair_of_orders ... ok [INFO] [stdout] test core::test::triggers_a_stop ... ok [INFO] [stdout] test core::test::opens_a_position_based_on_a_signal ... ok [INFO] [stdout] test core::price::test::adds_months_to_date ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "1127c5513d221d2a2bbb910ca5574f2ddebd85b4b75bd27267145e0377a545cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1127c5513d221d2a2bbb910ca5574f2ddebd85b4b75bd27267145e0377a545cd", kill_on_drop: false }` [INFO] [stdout] 1127c5513d221d2a2bbb910ca5574f2ddebd85b4b75bd27267145e0377a545cd