[INFO] cloning repository https://github.com/abedinia/rust_decision_tree
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/abedinia/rust_decision_tree" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabedinia%2Frust_decision_tree", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabedinia%2Frust_decision_tree'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bd6e217514a7544d4c4fb5c8d1c438209f9d98db
[INFO] checking abedinia/rust_decision_tree/bd6e217514a7544d4c4fb5c8d1c438209f9d98db against 018018e881e2db0956f229dbb543e21f058d1ce7 for pr-162600
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabedinia%2Frust_decision_tree" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/abedinia/rust_decision_tree
[INFO] finished tweaking git repo https://github.com/abedinia/rust_decision_tree
[INFO] tweaked toml for git repo https://github.com/abedinia/rust_decision_tree written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/abedinia/rust_decision_tree on toolchain 018018e881e2db0956f229dbb543e21f058d1ce7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/abedinia/rust_decision_tree 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" "+018018e881e2db0956f229dbb543e21f058d1ce7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | homepage = "https://github.com/abedinia/rust_decision_tree"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 | repository = "https://github.com/abedinia/rust_decision_tree"
[INFO] [stderr]    |              ------------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `decision_tree` (manifest) generated 2 warnings
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9
[INFO] running `Command { std: "docker" "start" "3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9", 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" "3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9" "/opt/rustwide/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9" "/opt/rustwide/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | homepage = "https://github.com/abedinia/rust_decision_tree"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 | repository = "https://github.com/abedinia/rust_decision_tree"
[INFO] [stderr]    |              ------------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `decision_tree` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]     Checking clap_lex v0.7.4
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking clap_builder v4.5.35
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking clap v4.5.35
[INFO] [stderr]     Checking decision_tree v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> src/classification_tree.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         X: &[Vec<f64>], 
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut X_left = Vec::new();
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let mut X_right = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:194:39
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub fn build_tree_parallel(&self, X: &[Vec<f64>], y: &[f64], current_depth: usize) -> DecisionNode {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:216:30
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         let (X_left, y_left, X_right, y_right) = 
[INFO] [stdout]     |                              ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:216:46
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         let (X_left, y_left, X_right, y_right) = 
[INFO] [stdout]     |                                              ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:252:18
[INFO] [stdout]     |
[INFO] [stdout] 252 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:252:34
[INFO] [stdout]     |
[INFO] [stdout] 252 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:281:27
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn fit(&mut self, X: Vec<Vec<f64>>, y: Vec<f64>) -> &mut Self {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:292:27
[INFO] [stdout]     |
[INFO] [stdout] 292 |     pub fn predict(&self, X: Vec<Vec<f64>>) -> Vec<f64> {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:442:18
[INFO] [stdout]     |
[INFO] [stdout] 442 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:442:34
[INFO] [stdout]     |
[INFO] [stdout] 442 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:472:9
[INFO] [stdout]     |
[INFO] [stdout] 472 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:497:18
[INFO] [stdout]     |
[INFO] [stdout] 497 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_feature(X, y, feature_i, threshold);
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:497:34
[INFO] [stdout]     |
[INFO] [stdout] 497 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_feature(X, y, feature_i, threshold);
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:530:18
[INFO] [stdout]     |
[INFO] [stdout] 530 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_categorical_feature(
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:530:34
[INFO] [stdout]     |
[INFO] [stdout] 530 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_categorical_feature(
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:559:17
[INFO] [stdout]     |
[INFO] [stdout] 559 |         let mut X_left = Vec::new();
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:561:17
[INFO] [stdout]     |
[INFO] [stdout] 561 |         let mut X_right = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/classification_tree.rs:231:27
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn fit(&mut self, X: Vec<Vec<f64>>, y: Vec<f64>) -> &mut Self {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/classification_tree.rs:243:27
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn predict(&self, X: Vec<Vec<f64>>) -> Vec<f64> {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/regression_tree.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn fit(&mut self, X: Vec<Vec<f64>>, y: Vec<f64>) -> &mut Self {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/regression_tree.rs:137:27
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn predict(&self, X: Vec<Vec<f64>>) -> Vec<f64> {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> src/utils.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     X: Vec<Vec<f64>>, 
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_train` should have a snake case name
[INFO] [stdout]   --> src/utils.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut X_train = Vec::with_capacity(train_samples);
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_train`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_test` should have a snake case name
[INFO] [stdout]   --> src/utils.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut X_test = Vec::with_capacity(test_samples);
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> src/classification_tree.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]  --> benches/tree_benchmarks.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut X = Vec::with_capacity(size);
[INFO] [stdout]   |             ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_small` should have a snake case name
[INFO] [stdout]   --> benches/tree_benchmarks.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let (X_small, y_small) = create_large_dataset(100, 5);
[INFO] [stdout]    |          ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_small`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_medium` should have a snake case name
[INFO] [stdout]   --> benches/tree_benchmarks.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let (X_medium, y_medium) = create_large_dataset(1000, 10);
[INFO] [stdout]    |          ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_medium`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_train` should have a snake case name
[INFO] [stdout]   --> benches/tree_benchmarks.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let (X_train, y_train) = create_large_dataset(500, 10);
[INFO] [stdout]    |          ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_train`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_test` should have a snake case name
[INFO] [stdout]   --> benches/tree_benchmarks.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let (X_test, _) = create_large_dataset(100, 10);
[INFO] [stdout]    |          ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> benches/tree_benchmarks.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut X = Vec::with_capacity(1000);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `test_X` should have a snake case name
[INFO] [stdout]   --> benches/tree_benchmarks.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let test_X = X[0..100].to_vec();
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `test_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> tests/tree_tests.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let X = vec![
[INFO] [stdout]    |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_train` should have a snake case name
[INFO] [stdout]   --> tests/tree_tests.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let (X_train, X_test, y_train, y_test) = train_test_split(X, y, 0.33);
[INFO] [stdout]    |          ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_train`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_test` should have a snake case name
[INFO] [stdout]   --> tests/tree_tests.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let (X_train, X_test, y_train, y_test) = train_test_split(X, y, 0.33);
[INFO] [stdout]    |                   ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> tests/tree_tests.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let X = vec![
[INFO] [stdout]    |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_train` should have a snake case name
[INFO] [stdout]   --> tests/tree_tests.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let X_train = X.clone();
[INFO] [stdout]    |         ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_train`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_test` should have a snake case name
[INFO] [stdout]   --> tests/tree_tests.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let X_test = X.clone();
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> tests/tree_tests.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let X = vec![
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         X: &[Vec<f64>], 
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut X_left = Vec::new();
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let mut X_right = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:194:39
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub fn build_tree_parallel(&self, X: &[Vec<f64>], y: &[f64], current_depth: usize) -> DecisionNode {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:216:30
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         let (X_left, y_left, X_right, y_right) = 
[INFO] [stdout]     |                              ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:216:46
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         let (X_left, y_left, X_right, y_right) = 
[INFO] [stdout]     |                                              ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:252:18
[INFO] [stdout]     |
[INFO] [stdout] 252 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:252:34
[INFO] [stdout]     |
[INFO] [stdout] 252 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:281:27
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn fit(&mut self, X: Vec<Vec<f64>>, y: Vec<f64>) -> &mut Self {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:292:27
[INFO] [stdout]     |
[INFO] [stdout] 292 |     pub fn predict(&self, X: Vec<Vec<f64>>) -> Vec<f64> {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:442:18
[INFO] [stdout]     |
[INFO] [stdout] 442 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:442:34
[INFO] [stdout]     |
[INFO] [stdout] 442 |             let (X_left, y_left, X_right, y_right) = best_sets.unwrap();
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:472:9
[INFO] [stdout]     |
[INFO] [stdout] 472 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:497:18
[INFO] [stdout]     |
[INFO] [stdout] 497 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_feature(X, y, feature_i, threshold);
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:497:34
[INFO] [stdout]     |
[INFO] [stdout] 497 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_feature(X, y, feature_i, threshold);
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:530:18
[INFO] [stdout]     |
[INFO] [stdout] 530 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_categorical_feature(
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:530:34
[INFO] [stdout]     |
[INFO] [stdout] 530 |             let (X_left, y_left, X_right, y_right) = Self::divide_on_categorical_feature(
[INFO] [stdout]     |                                  ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |         X: &[Vec<f64>],
[INFO] [stdout]     |         ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_left` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:559:17
[INFO] [stdout]     |
[INFO] [stdout] 559 |         let mut X_left = Vec::new();
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_right` should have a snake case name
[INFO] [stdout]    --> src/decision_tree.rs:561:17
[INFO] [stdout]     |
[INFO] [stdout] 561 |         let mut X_right = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/classification_tree.rs:231:27
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn fit(&mut self, X: Vec<Vec<f64>>, y: Vec<f64>) -> &mut Self {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/classification_tree.rs:243:27
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn predict(&self, X: Vec<Vec<f64>>) -> Vec<f64> {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/regression_tree.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn fit(&mut self, X: Vec<Vec<f64>>, y: Vec<f64>) -> &mut Self {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/regression_tree.rs:137:27
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn predict(&self, X: Vec<Vec<f64>>) -> Vec<f64> {
[INFO] [stdout]     |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> src/utils.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     X: Vec<Vec<f64>>, 
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_train` should have a snake case name
[INFO] [stdout]   --> src/utils.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut X_train = Vec::with_capacity(train_samples);
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_train`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X_test` should have a snake case name
[INFO] [stdout]   --> src/utils.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut X_test = Vec::with_capacity(test_samples);
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `x_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.17s
[INFO] running `Command { std: "docker" "inspect" "3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9", kill_on_drop: false }`
[INFO] [stdout] 3b3c9c0f931bdcc3b2cd4030c5a63ea330cdd3f110b6d81461c7796b9a14afd9
