[INFO] cloning repository https://github.com/kasper0406/fft
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kasper0406/fft" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkasper0406%2Ffft", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkasper0406%2Ffft'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c4a005944d366ac7b7623f05625f64a89bdc7bdd
[INFO] testing kasper0406/fft against 1.54.0 for beta-1.55-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkasper0406%2Ffft" "/workspace/builds/worker-51/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-51/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/kasper0406/fft on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/kasper0406/fft
[INFO] finished tweaking git repo https://github.com/kasper0406/fft
[INFO] tweaked toml for git repo https://github.com/kasper0406/fft written to /workspace/builds/worker-51/source/Cargo.toml
[INFO] crate git repo https://github.com/kasper0406/fft already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/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" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 65de0cb41124cb41f450c617be8a8f1a1582d986f239c65a673d4e52ed06aec1
[INFO] running `Command { std: "docker" "start" "-a" "65de0cb41124cb41f450c617be8a8f1a1582d986f239c65a673d4e52ed06aec1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65de0cb41124cb41f450c617be8a8f1a1582d986f239c65a673d4e52ed06aec1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65de0cb41124cb41f450c617be8a8f1a1582d986f239c65a673d4e52ed06aec1", kill_on_drop: false }`
[INFO] [stdout] 65de0cb41124cb41f450c617be8a8f1a1582d986f239c65a673d4e52ed06aec1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/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=warn" "-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" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fc7eb3bc391a9a8894fcf08d60799d1d3ceaed71318e2fac4bce6a4c73b5c490
[INFO] running `Command { std: "docker" "start" "-a" "fc7eb3bc391a9a8894fcf08d60799d1d3ceaed71318e2fac4bce6a4c73b5c490", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling autocfg v0.1.6
[INFO] [stderr]    Compiling num-bigint v0.2.2
[INFO] [stderr]    Compiling gnuplot v0.0.31
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling num v0.2.0
[INFO] [stderr]    Compiling fft v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:155:6
[INFO] [stdout]     |
[INFO] [stdout] 155 |     };
[INFO] [stdout]     |      ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axes`
[INFO] [stdout]   --> src/main.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_axes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axes`
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_axes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |     for i in 0..100 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `time`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     time: f64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `render_samples`
[INFO] [stdout]   --> src/main.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn render_samples(samples: &[Sample]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `render_dft_coefficients`
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn render_dft_coefficients(interval: f64, coefficients: &[Complex<f64>]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `naive_dft`
[INFO] [stdout]   --> src/main.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn naive_dft(samples: &[Sample]) -> Vec<Complex<f64>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `recursive_fft`
[INFO] [stdout]    --> src/main.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn recursive_fft(samples: &[Sample]) -> Vec<Complex<f64>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `validate_coefficients`
[INFO] [stdout]    --> src/main.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn validate_coefficients(actual: &[Complex<f64>], expected: &[Complex<f64>]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/main.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let N = coefficients.len() / 2;
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/main.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let N = samples.len();
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/main.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let N = samples.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/main.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn generate_permutation(N: usize) -> Vec<usize> {
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/main.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let N = samples.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 11.51s
[INFO] running `Command { std: "docker" "inspect" "fc7eb3bc391a9a8894fcf08d60799d1d3ceaed71318e2fac4bce6a4c73b5c490", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fc7eb3bc391a9a8894fcf08d60799d1d3ceaed71318e2fac4bce6a4c73b5c490", kill_on_drop: false }`
[INFO] [stdout] fc7eb3bc391a9a8894fcf08d60799d1d3ceaed71318e2fac4bce6a4c73b5c490
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/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=warn" "-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" "+1.54.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] efc649e50369b147f64e187d282cb0c0cf7c20345ddbe16db3eb091db477bce9
[INFO] running `Command { std: "docker" "start" "-a" "efc649e50369b147f64e187d282cb0c0cf7c20345ddbe16db3eb091db477bce9", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling fft v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:155:6
[INFO] [stdout]     |
[INFO] [stdout] 155 |     };
[INFO] [stdout]     |      ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axes`
[INFO] [stdout]   --> src/main.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_axes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axes`
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_axes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |     for i in 0..100 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut axes = figure.axes2d()
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `time`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     time: f64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `render_samples`
[INFO] [stdout]   --> src/main.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn render_samples(samples: &[Sample]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `render_dft_coefficients`
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn render_dft_coefficients(interval: f64, coefficients: &[Complex<f64>]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/main.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let N = coefficients.len() / 2;
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/main.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let N = samples.len();
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/main.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let N = samples.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/main.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn generate_permutation(N: usize) -> Vec<usize> {
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/main.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let N = samples.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 14 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 8.06s
[INFO] running `Command { std: "docker" "inspect" "efc649e50369b147f64e187d282cb0c0cf7c20345ddbe16db3eb091db477bce9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efc649e50369b147f64e187d282cb0c0cf7c20345ddbe16db3eb091db477bce9", kill_on_drop: false }`
[INFO] [stdout] efc649e50369b147f64e187d282cb0c0cf7c20345ddbe16db3eb091db477bce9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-51/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=warn" "-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" "+1.54.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 2d148801123b2519dd358d7084b6f3ee6e4acfc61c2e90e596ec38d09fd4fb2d
[INFO] running `Command { std: "docker" "start" "-a" "2d148801123b2519dd358d7084b6f3ee6e4acfc61c2e90e596ec38d09fd4fb2d", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/main.rs:155:6
[INFO] [stderr]     |
[INFO] [stderr] 155 |     };
[INFO] [stderr]     |      ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `axes`
[INFO] [stderr]   --> src/main.rs:52:13
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let mut axes = figure.axes2d()
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_axes`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `axes`
[INFO] [stderr]   --> src/main.rs:67:13
[INFO] [stderr]    |
[INFO] [stderr] 67 |     let mut axes = figure.axes2d()
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_axes`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:315:9
[INFO] [stderr]     |
[INFO] [stderr] 315 |     for i in 0..100 {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:52:9
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let mut axes = figure.axes2d()
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 67 |     let mut axes = figure.axes2d()
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `time`
[INFO] [stderr]   --> src/main.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     time: f64,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `render_samples`
[INFO] [stderr]   --> src/main.rs:47:4
[INFO] [stderr]    |
[INFO] [stderr] 47 | fn render_samples(samples: &[Sample]) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `render_dft_coefficients`
[INFO] [stderr]   --> src/main.rs:61:4
[INFO] [stderr]    |
[INFO] [stderr] 61 | fn render_dft_coefficients(interval: f64, coefficients: &[Complex<f64>]) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]   --> src/main.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 62 |     let N = coefficients.len() / 2;
[INFO] [stderr]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]   --> src/main.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 81 |     let N = samples.len();
[INFO] [stderr]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]    --> src/main.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 102 |     let N = samples.len();
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]    --> src/main.rs:136:25
[INFO] [stderr]     |
[INFO] [stderr] 136 | fn generate_permutation(N: usize) -> Vec<usize> {
[INFO] [stderr]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]    --> src/main.rs:176:9
[INFO] [stderr]     |
[INFO] [stderr] 176 |     let N = samples.len();
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stderr] 
[INFO] [stderr] warning: 14 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/fft-e3743b6026ca5d2c)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_recursive_odd_size_fft ... FAILED
[INFO] [stderr] error: test failed, to rerun pass '--bin fft'
[INFO] [stdout] test test_iterative_fft ... ok
[INFO] [stdout] test test_recursive_fft ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_recursive_odd_size_fft stdout ----
[INFO] [stdout] Test with sample rate: 7
[INFO] [stdout] thread 'test_recursive_odd_size_fft' panicked at 'Measurement count should be a power of two!', src/main.rs:29:5
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x561841b7c1a0 - std::backtrace_rs::backtrace::libunwind::trace::h34055254b57d8e79
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
[INFO] [stdout]    1:     0x561841b7c1a0 - std::backtrace_rs::backtrace::trace_unsynchronized::h8f1e3fbd9afff6ec
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x561841b7c1a0 - std::sys_common::backtrace::_print_fmt::h3a99a796b770c360
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x561841b7c1a0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h32d1f94a80615d18
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:46:22
[INFO] [stdout]    4:     0x561841b9e99c - core::fmt::write::h306731c068f7162c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/fmt/mod.rs:1110:17
[INFO] [stdout]    5:     0x561841b790c5 - std::io::Write::write_fmt::h87f19b0a2cd190bc
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/io/mod.rs:1588:15
[INFO] [stdout]    6:     0x561841b7e30b - std::sys_common::backtrace::_print::h5abaa2601a852287
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:49:5
[INFO] [stdout]    7:     0x561841b7e30b - std::sys_common::backtrace::print::h8d81445442bb638f
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:36:9
[INFO] [stdout]    8:     0x561841b7e30b - std::panicking::default_hook::{{closure}}::hcfe804496a9fa747
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:208:50
[INFO] [stdout]    9:     0x561841b7de1c - std::panicking::default_hook::hbea8e3ccf2ba8901
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:222:9
[INFO] [stdout]   10:     0x561841b7e9d4 - std::panicking::rust_panic_with_hook::h7ee9e1a2d0f8975a
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:622:17
[INFO] [stdout]   11:     0x561841b61f83 - std::panicking::begin_panic::{{closure}}::h60e59ca05ec98f41
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:542:9
[INFO] [stdout]   12:     0x561841b62d79 - std::sys_common::backtrace::__rust_end_short_backtrace::h21294aa0a60360a1
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:141:18
[INFO] [stdout]   13:     0x561841b61eb9 - std::panicking::begin_panic::hfe1eb6187f0575f3
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:541:12
[INFO] [stdout]   14:     0x561841b1aa57 - fft::sample::h20fe861aac1da353
[INFO] [stdout]                                at /opt/rustwide/workdir/src/main.rs:29:5
[INFO] [stdout]   15:     0x561841b1e494 - fft::test_recursive_odd_size_fft::h95833bf31450770d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/main.rs:270:23
[INFO] [stdout]   16:     0x561841b1e1ca - fft::test_recursive_odd_size_fft::{{closure}}::h997c909f4d21ef43
[INFO] [stdout]                                at /opt/rustwide/workdir/src/main.rs:259:1
[INFO] [stdout]   17:     0x561841b171fe - core::ops::function::FnOnce::call_once::hf21670eadb378bd5
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   18:     0x561841b4b7a3 - core::ops::function::FnOnce::call_once::h152e7e439ff59e19
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   19:     0x561841b4b7a3 - test::__rust_begin_short_backtrace::h0908f3b1fdbb72ab
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:577:5
[INFO] [stdout]   20:     0x561841b4a260 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf6d2a51e5587546c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   21:     0x561841b4a260 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h8af660f3a89ef593
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
[INFO] [stdout]   22:     0x561841b4a260 - std::panicking::try::do_call::hd36aef60f84b6d36
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
[INFO] [stdout]   23:     0x561841b4a260 - std::panicking::try::h9932b4480e69817c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
[INFO] [stdout]   24:     0x561841b4a260 - std::panic::catch_unwind::h6aa177099cfff5f8
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
[INFO] [stdout]   25:     0x561841b4a260 - test::run_test_in_process::h5884d6f2d99e20c3
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:600:18
[INFO] [stdout]   26:     0x561841b4a260 - test::run_test::run_test_inner::{{closure}}::h6fdc58c6d5f5b6e3
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:492:39
[INFO] [stdout]   27:     0x561841b23912 - test::run_test::run_test_inner::{{closure}}::h408365d67a78ade8
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:519:37
[INFO] [stdout]   28:     0x561841b23912 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb560b77c4f701523
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:125:18
[INFO] [stdout]   29:     0x561841b274c8 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::hf2e7831dad93c597
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/thread/mod.rs:481:17
[INFO] [stdout]   30:     0x561841b274c8 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd2e08783d8be4d02
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
[INFO] [stdout]   31:     0x561841b274c8 - std::panicking::try::do_call::h062597b7acfd6b82
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
[INFO] [stdout]   32:     0x561841b274c8 - std::panicking::try::h0d7b79db04c14552
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
[INFO] [stdout]   33:     0x561841b274c8 - std::panic::catch_unwind::hb01a0b5e7c8cd43b
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
[INFO] [stdout]   34:     0x561841b274c8 - std::thread::Builder::spawn_unchecked::{{closure}}::h5bde48cc887e0d1e
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/thread/mod.rs:480:30
[INFO] [stdout]   35:     0x561841b274c8 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h745ea30807a29e55
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   36:     0x561841b83497 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ece6cfefaff1005
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   37:     0x561841b83497 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb8b48e55c21f193e
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   38:     0x561841b83497 - std::sys::unix::thread::Thread::new::thread_start::h8c7c4450dba62914
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys/unix/thread.rs:71:17
[INFO] [stdout]   39:     0x7f9ef1c79609 - start_thread
[INFO] [stdout]   40:     0x7f9ef1a4b293 - clone
[INFO] [stdout]   41:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_recursive_odd_size_fft
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2d148801123b2519dd358d7084b6f3ee6e4acfc61c2e90e596ec38d09fd4fb2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d148801123b2519dd358d7084b6f3ee6e4acfc61c2e90e596ec38d09fd4fb2d", kill_on_drop: false }`
[INFO] [stdout] 2d148801123b2519dd358d7084b6f3ee6e4acfc61c2e90e596ec38d09fd4fb2d
