[INFO] cloning repository https://github.com/fubio/fer_calc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fubio/fer_calc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffubio%2Ffer_calc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffubio%2Ffer_calc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 653fc7644a0a4a467c92bab6e2f468487823d6d8
[INFO] checking fubio/fer_calc/653fc7644a0a4a467c92bab6e2f468487823d6d8 against master#f5e2df741b4a9820a7579f0c8eccc951706a8782 for pr-147984
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffubio%2Ffer_calc" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fubio/fer_calc
[INFO] finished tweaking git repo https://github.com/fubio/fer_calc
[INFO] tweaked toml for git repo https://github.com/fubio/fer_calc written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fubio/fer_calc on toolchain f5e2df741b4a9820a7579f0c8eccc951706a8782
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fubio/fer_calc 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" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded GSL-sys v3.0.0
[INFO] [stderr]   Downloaded clap v4.3.19
[INFO] [stderr]   Downloaded anstyle-wincon v1.0.1
[INFO] [stderr]   Downloaded bitflags v2.3.3
[INFO] [stderr]   Downloaded serde v1.0.180
[INFO] [stderr]   Downloaded clap_builder v4.3.19
[INFO] [stderr]   Downloaded rustix v0.38.4
[INFO] [stderr]   Downloaded GSL v6.0.0
[INFO] [stderr]   Downloaded syn v2.0.28
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 90c1d9f81ea36f3a11a33de484813574b7e1a56c573a49664dccaf589326f215
[INFO] running `Command { std: "docker" "start" "-a" "90c1d9f81ea36f3a11a33de484813574b7e1a56c573a49664dccaf589326f215", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "90c1d9f81ea36f3a11a33de484813574b7e1a56c573a49664dccaf589326f215", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90c1d9f81ea36f3a11a33de484813574b7e1a56c573a49664dccaf589326f215", kill_on_drop: false }`
[INFO] [stdout] 90c1d9f81ea36f3a11a33de484813574b7e1a56c573a49664dccaf589326f215
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3cd5249766cedd4d722991fc759c900c909cb51b29c81ef92c5a9db9fa1d0b61
[INFO] running `Command { std: "docker" "start" "-a" "3cd5249766cedd4d722991fc759c900c909cb51b29c81ef92c5a9db9fa1d0b61", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]    Compiling rustix v0.38.4
[INFO] [stderr]     Checking bitflags v2.3.3
[INFO] [stderr]     Checking linux-raw-sys v0.4.5
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking anstyle v1.0.1
[INFO] [stderr]    Compiling serde v1.0.180
[INFO] [stderr]     Checking clap_lex v0.5.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling GSL-sys v3.0.0
[INFO] [stderr]     Checking anstyle-parse v0.2.1
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]    Compiling quote v1.0.32
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]    Compiling syn v2.0.28
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking anstream v0.3.2
[INFO] [stderr]     Checking clap_builder v4.3.19
[INFO] [stderr]     Checking GSL v6.0.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking csv v1.2.2
[INFO] [stderr]    Compiling clap_derive v4.3.12
[INFO] [stderr]     Checking clap v4.3.19
[INFO] [stderr]     Checking fer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/bin/simulator.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 |     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout]     |           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout] 155 +     while diff.unwrap_or(10000.0) > delta  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FER_calculator` should have an upper camel case name
[INFO] [stdout]  --> src/bin/model.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FerCalculator`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/bin/simulator.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 |     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout]     |           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout] 155 +     while diff.unwrap_or(10000.0) > delta  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/bin/td_generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/bin/simulator.rs:38:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Sampler {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 38 |     pub(crate) fn new<T: Iterator<Item = (u64, f64)>>(t: T) -> Sampler {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expectation` is never used
[INFO] [stdout]    --> src/bin/simulator.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn expectation(vec: Vec<(u64, f64)>) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_imperical_tenancy_remaining_dist` is never used
[INFO] [stdout]    --> src/bin/simulator.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCExpringDist` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     PCExpringDist: WeightedIndex<u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `pcexpring_dist`
[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 `numPCExpriringArr` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(numPCExpriringArr: Vec<(u64, u64)>)-> PCSampler {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `num_pcexpriring_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `indexToDecrement` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let indexToDecrement = self.PCExpringDist.sample(self.random.borrow_mut().deref_mut());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `index_to_decrement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `VCS` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     VCS: u64,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case (notice the capitalization): `vcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCS` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     PCS: u64,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `pcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `VCExpiringBlockTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     VCExpiringBlockTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `vcexpiring_block_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCExpiringBlockTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     PCExpiringBlockTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pcexpiring_block_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `FERemainingTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     FERemainingTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `feremaining_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCSampler` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     PCSampler: Option<PCSampler>,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `pcsampler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `VC_expirations_at_step` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let VC_expirations_at_step = self.VCExpiringBlockTracker.get(&target).copied().unwrap_or(0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `vc_expirations_at_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PC_expirations_at_step` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let PC_expirations_at_step = self.PCExpiringBlockTracker.get(&target).copied().unwrap_or(0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pc_expirations_at_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `numPCExpiring` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let numPCExpiring = self.PCExpiringBlockTracker.remove(&self.step).unwrap_or(0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `num_pcexpiring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `keyToDecrement` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let keyToDecrement = self.PCSampler.as_mut().unwrap().sample();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `key_to_decrement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PCS` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:179:70
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |                                                                      ^^^ help: convert the identifier to snake case: `pcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FER` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:179:80
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |                                                                                ^^^ help: convert the identifier to snake case: `fer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maxTenancy` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let maxTenancy = data.into_iter().fold(0, |acc, (tenancy, _)| acc.max(*tenancy));
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `max_tenancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/bin/simulator.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 |     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout]     |           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout] 155 +     while diff.unwrap_or(10000.0) > delta  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0601]: `main` function not found in crate `simulator`
[INFO] [stdout]    --> src/bin/simulator.rs:201:2
[INFO] [stdout]     |
[INFO] [stdout] 201 | }
[INFO] [stdout]     |  ^ consider adding a `main` function to `src/bin/simulator.rs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/bin/td_generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/bin/td_generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::util`
[INFO] [stdout]  --> src/bin/model.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::util::vcsd;
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            unresolved import
[INFO] [stdout]   |            help: a similar path exists: `rgsl::util`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::util`
[INFO] [stdout]  --> src/bin/model.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::util::vcsd;
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            unresolved import
[INFO] [stdout]   |            help: a similar path exists: `rgsl::util`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FER_calculator` should have an upper camel case name
[INFO] [stdout]  --> src/bin/model.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FerCalculator`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::util`
[INFO] [stdout]  --> src/bin/model.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::util::vcsd;
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            unresolved import
[INFO] [stdout]   |            help: a similar path exists: `rgsl::util`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FER_calculator` should have an upper camel case name
[INFO] [stdout]  --> src/bin/model.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FerCalculator`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FER_calculator` should have an upper camel case name
[INFO] [stdout]  --> src/bin/model.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FerCalculator`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/bin/simulator.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 |     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout]     |           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout] 155 +     while diff.unwrap_or(10000.0) > delta  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/bin/td_generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/bin/td_generator.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let random_number = rand::thread_rng().gen_range(0.0..1.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/bin/td_generator.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let random_number = rand::thread_rng().gen_range(0.0..1.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FER_calculator` should have an upper camel case name
[INFO] [stdout]  --> src/bin/model.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FerCalculator`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/bin/simulator.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 |     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout]     |           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout] 155 +     while diff.unwrap_or(10000.0) > delta  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/bin/td_generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0601`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::util`
[INFO] [stdout]  --> src/bin/model.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::util::vcsd;
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            unresolved import
[INFO] [stdout]   |            help: a similar path exists: `rgsl::util`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fer` (bin "simulator") due to 1 previous error; 1 warning emitted
[INFO] [stdout] error[E0601]: `main` function not found in crate `model`
[INFO] [stdout]   --> src/bin/model.rs:82:2
[INFO] [stdout]    |
[INFO] [stdout] 82 | }
[INFO] [stdout]    |  ^ consider adding a `main` function to `src/bin/model.rs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: type `FER_calculator` should have an upper camel case name
[INFO] [stdout]  --> src/bin/model.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FerCalculator`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/bin/simulator.rs:155:11
[INFO] [stdout]     |
[INFO] [stdout] 155 |     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout]     |           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     while (diff.unwrap_or(10000.0) > delta) {
[INFO] [stdout] 155 +     while diff.unwrap_or(10000.0) > delta  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/bin/td_generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0601]: `main` function not found in crate `r#mod`
[INFO] [stdout]   --> src/bin/mod.rs:3:18
[INFO] [stdout]    |
[INFO] [stdout]  3 | mod td_generator;
[INFO] [stdout]    |                  ^ the main function must be defined at the crate level (in `src/bin/mod.rs`)
[INFO] [stdout]    |
[INFO] [stdout] note: here is a function named `main`
[INFO] [stdout]   --> src/bin/td_generator.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn main () {
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    = note: you have one or more functions named `main` not defined at the crate level
[INFO] [stdout]    = help: consider moving the `main` function definitions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0601.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/td_generator.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut short_lease = &leases_tuple.0;
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/td_generator.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut short_lease = &leases_tuple.0;
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/bin/td_generator.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let random_number = rand::thread_rng().gen_range(0.0..1.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fer` (bin "model" test) due to 1 previous error; 1 warning emitted
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/td_generator.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut short_lease = &leases_tuple.0;
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `input_to_hashmap` is never used
[INFO] [stdout]   --> src/util/vcsd.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn input_to_hashmap() -> HashMap<u64, f64> {//read input name and convert to Hashmap
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write` is never used
[INFO] [stdout]   --> src/util/vcsd.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn write(output:&HashMap<u64, f64>){
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `efficiency` is never read
[INFO] [stdout]  --> src/bin/model.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     efficiency: f64,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `vcsd_expectation` is never used
[INFO] [stdout]   --> src/bin/model.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl FER_calculator {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn vcsd_expectation(&self) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expectation` is never used
[INFO] [stdout]    --> src/bin/simulator.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn expectation(vec: Vec<(u64, f64)>) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_imperical_tenancy_remaining_dist` is never used
[INFO] [stdout]    --> src/bin/simulator.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lease_to_map` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn lease_to_map(file_path_str: String) -> HashMap<u64, (u64, u64, f64)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ri_to_vec` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn ri_to_vec(file_path_str: String) -> Vec<(u64, i64)> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_to_td` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn convert_to_td(reference_ri_vec: Vec<(u64, i64)>, reference_lease_map: HashMap<u64, (u64, u64, f64)>) -> HashMap<u64, u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn main () {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCExpringDist` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     PCExpringDist: WeightedIndex<u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `pcexpring_dist`
[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 `numPCExpriringArr` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(numPCExpriringArr: Vec<(u64, u64)>)-> PCSampler {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `num_pcexpriring_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `indexToDecrement` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let indexToDecrement = self.PCExpringDist.sample(self.random.borrow_mut().deref_mut());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `index_to_decrement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `VCS` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     VCS: u64,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case (notice the capitalization): `vcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCS` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     PCS: u64,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `pcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `VCExpiringBlockTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     VCExpiringBlockTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `vcexpiring_block_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCExpiringBlockTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     PCExpiringBlockTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pcexpiring_block_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `FERemainingTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     FERemainingTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `feremaining_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCSampler` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     PCSampler: Option<PCSampler>,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `pcsampler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `VC_expirations_at_step` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let VC_expirations_at_step = self.VCExpiringBlockTracker.get(&target).copied().unwrap_or(0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `vc_expirations_at_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PC_expirations_at_step` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let PC_expirations_at_step = self.PCExpiringBlockTracker.get(&target).copied().unwrap_or(0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pc_expirations_at_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `numPCExpiring` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let numPCExpiring = self.PCExpiringBlockTracker.remove(&self.step).unwrap_or(0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `num_pcexpiring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `keyToDecrement` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let keyToDecrement = self.PCSampler.as_mut().unwrap().sample();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `key_to_decrement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PCS` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:179:70
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |                                                                      ^^^ help: convert the identifier to snake case: `pcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FER` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:179:80
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |                                                                                ^^^ help: convert the identifier to snake case: `fer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maxTenancy` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let maxTenancy = data.into_iter().fold(0, |acc, (tenancy, _)| acc.max(*tenancy));
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `max_tenancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fer` (bin "model") due to 2 previous errors; 1 warning emitted
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/bin/td_generator.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let random_number = rand::thread_rng().gen_range(0.0..1.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/td_generator.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut short_lease = &leases_tuple.0;
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/bin/td_generator.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let random_number = rand::thread_rng().gen_range(0.0..1.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/td_generator.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut short_lease = &leases_tuple.0;
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: function `input_to_hashmap` is never used
[INFO] [stdout]   --> src/util/vcsd.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn input_to_hashmap() -> HashMap<u64, f64> {//read input name and convert to Hashmap
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write` is never used
[INFO] [stdout]   --> src/util/vcsd.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn write(output:&HashMap<u64, f64>){
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `efficiency` is never read
[INFO] [stdout]  --> src/bin/model.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FER_calculator {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     efficiency: f64,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `vcsd_expectation` is never used
[INFO] [stdout]   --> src/bin/model.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl FER_calculator {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn vcsd_expectation(&self) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expectation` is never used
[INFO] [stdout]    --> src/bin/simulator.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn expectation(vec: Vec<(u64, f64)>) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_imperical_tenancy_remaining_dist` is never used
[INFO] [stdout]    --> src/bin/simulator.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lease_to_map` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn lease_to_map(file_path_str: String) -> HashMap<u64, (u64, u64, f64)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ri_to_vec` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn ri_to_vec(file_path_str: String) -> Vec<(u64, i64)> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_to_td` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn convert_to_td(reference_ri_vec: Vec<(u64, i64)>, reference_lease_map: HashMap<u64, (u64, u64, f64)>) -> HashMap<u64, u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]   --> src/bin/td_generator.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn main () {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCExpringDist` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     PCExpringDist: WeightedIndex<u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `pcexpring_dist`
[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 `numPCExpriringArr` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(numPCExpriringArr: Vec<(u64, u64)>)-> PCSampler {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `num_pcexpriring_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `indexToDecrement` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let indexToDecrement = self.PCExpringDist.sample(self.random.borrow_mut().deref_mut());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `index_to_decrement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `VCS` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     VCS: u64,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case (notice the capitalization): `vcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCS` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     PCS: u64,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `pcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `VCExpiringBlockTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     VCExpiringBlockTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `vcexpiring_block_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCExpiringBlockTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     PCExpiringBlockTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pcexpiring_block_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `FERemainingTracker` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     FERemainingTracker: HashMap<u64, u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `feremaining_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PCSampler` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     PCSampler: Option<PCSampler>,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `pcsampler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `VC_expirations_at_step` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let VC_expirations_at_step = self.VCExpiringBlockTracker.get(&target).copied().unwrap_or(0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `vc_expirations_at_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PC_expirations_at_step` should have a snake case name
[INFO] [stdout]   --> src/bin/simulator.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let PC_expirations_at_step = self.PCExpiringBlockTracker.get(&target).copied().unwrap_or(0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pc_expirations_at_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `numPCExpiring` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let numPCExpiring = self.PCExpiringBlockTracker.remove(&self.step).unwrap_or(0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `num_pcexpiring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `keyToDecrement` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let keyToDecrement = self.PCSampler.as_mut().unwrap().sample();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `key_to_decrement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PCS` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:179:70
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |                                                                      ^^^ help: convert the identifier to snake case: `pcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FER` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:179:80
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn generate_imperical_tenancy_remaining_dist(data: &Vec<(u64, f64)>, PCS: u64, FER: f64) -> Vec<(u64, f64)> {
[INFO] [stdout]     |                                                                                ^^^ help: convert the identifier to snake case: `fer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maxTenancy` should have a snake case name
[INFO] [stdout]    --> src/bin/simulator.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let maxTenancy = data.into_iter().fold(0, |acc, (tenancy, _)| acc.max(*tenancy));
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `max_tenancy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `random_number`
[INFO] [stdout]   --> src/bin/td_generator.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let random_number = rand::thread_rng().gen_range(0.0..1.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_random_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/td_generator.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut short_lease = &leases_tuple.0;
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fer` (bin "mod" test) due to 1 previous error; 5 warnings emitted
[INFO] [stdout] Some errors have detailed explanations: E0432, E0601.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fer` (bin "mod") due to 2 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3cd5249766cedd4d722991fc759c900c909cb51b29c81ef92c5a9db9fa1d0b61", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3cd5249766cedd4d722991fc759c900c909cb51b29c81ef92c5a9db9fa1d0b61", kill_on_drop: false }`
[INFO] [stdout] 3cd5249766cedd4d722991fc759c900c909cb51b29c81ef92c5a9db9fa1d0b61
