[INFO] cloning repository https://github.com/a-dev-mobile/cutting
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/a-dev-mobile/cutting" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fa-dev-mobile%2Fcutting", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fa-dev-mobile%2Fcutting'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4e7309c6d34dc4895fa56af51b3e5c8f7a512f74
[INFO] testing a-dev-mobile/cutting against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fa-dev-mobile%2Fcutting" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/a-dev-mobile/cutting
[INFO] finished tweaking git repo https://github.com/a-dev-mobile/cutting
[INFO] tweaked toml for git repo https://github.com/a-dev-mobile/cutting written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/a-dev-mobile/cutting on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/a-dev-mobile/cutting 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded predicates-core v1.0.9
[INFO] [stderr]   Downloaded float-cmp v0.10.0
[INFO] [stderr]   Downloaded mimalloc v0.1.47
[INFO] [stderr]   Downloaded metrics v0.23.1
[INFO] [stderr]   Downloaded plotters-svg v0.3.7
[INFO] [stderr]   Downloaded predicates v3.1.3
[INFO] [stderr]   Downloaded termtree v0.5.1
[INFO] [stderr]   Downloaded predicates-tree v1.0.12
[INFO] [stderr]   Downloaded assert_cmd v2.0.17
[INFO] [stderr]   Downloaded oorandom v11.1.5
[INFO] [stderr]   Downloaded plotters-backend v0.3.7
[INFO] [stderr]   Downloaded indicatif v0.17.11
[INFO] [stderr]   Downloaded console v0.15.11
[INFO] [stderr]   Downloaded criterion v0.6.0
[INFO] [stderr]   Downloaded plotters v0.3.7
[INFO] [stderr]   Downloaded libmimalloc-sys v0.1.43
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] aece2a5b3f124d40e2c829003dba4778409d71c82088616b0031cd504b735955
[INFO] running `Command { std: "docker" "start" "-a" "aece2a5b3f124d40e2c829003dba4778409d71c82088616b0031cd504b735955", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aece2a5b3f124d40e2c829003dba4778409d71c82088616b0031cd504b735955", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aece2a5b3f124d40e2c829003dba4778409d71c82088616b0031cd504b735955", kill_on_drop: false }`
[INFO] [stdout] aece2a5b3f124d40e2c829003dba4778409d71c82088616b0031cd504b735955
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c4c350094199988781ff507eb353f69cec5ea5273af1caa3abca7ac184126b58
[INFO] running `Command { std: "docker" "start" "-a" "c4c350094199988781ff507eb353f69cec5ea5273af1caa3abca7ac184126b58", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.103
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling anstyle-query v1.1.3
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling bytemuck v1.23.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anstream v0.6.19
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling atomic v0.6.1
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling clap_builder v4.5.40
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling metrics v0.23.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling clap v4.5.40
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling cutlist-optimizer-cli v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/engine/service/computation/material_compute.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     logging::macros::{debug, info, trace, warn, error},
[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: `crate::{
[INFO] [stdout]          }`
[INFO] [stdout]  --> src/engine/service/service_management.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |   use crate::{
[INFO] [stdout]   |  _____^
[INFO] [stdout] 7 | | };
[INFO] [stdout]   | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |     let task_id = {
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `configuration`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:567:5
[INFO] [stdout]     |
[INFO] [stdout] 567 |     configuration: &Configuration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `permutation`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:568:5
[INFO] [stdout]     |
[INFO] [stdout] 568 |     permutation: &[TileDimensions],
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_permutation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stock_solution`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:569:5
[INFO] [stdout]     |
[INFO] [stdout] 569 |     stock_solution: &StockSolution,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stock_solution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cut_thickness`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:570:5
[INFO] [stdout]     |
[INFO] [stdout] 570 |     cut_thickness: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cut_thickness`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_trim_dimension`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:571:5
[INFO] [stdout]     |
[INFO] [stdout] 571 |     min_trim_dimension: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_trim_dimension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optimization_factor`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:572:5
[INFO] [stdout]     |
[INFO] [stdout] 572 |     optimization_factor: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimization_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solutions`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:575:5
[INFO] [stdout]     |
[INFO] [stdout] 575 |     solutions: &[Solution],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solutions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:621:5
[INFO] [stdout]     |
[INFO] [stdout] 621 |     material: &str,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task`
[INFO] [stdout]    --> src/engine/service/computation/task_compute.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let task = task_arc.read();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value_name`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:527:5
[INFO] [stdout]     |
[INFO] [stdout] 527 |     value_name: &str,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:603:5
[INFO] [stdout]     |
[INFO] [stdout] 603 |     group: &str,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `configuration`
[INFO] [stdout]    --> src/engine/service/computation/debug_single_thread.rs:609:5
[INFO] [stdout]     |
[INFO] [stdout] 609 |     configuration: &Configuration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/engine/stock/stock_solution/impls.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn iter(&self) -> std::slice::Iter<TileDimensions> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn iter(&self) -> std::slice::Iter<'_, TileDimensions> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/engine/stock/stock_solution/impls.rs:118:21
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<TileDimensions> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, TileDimensions> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.75s
[INFO] running `Command { std: "docker" "inspect" "c4c350094199988781ff507eb353f69cec5ea5273af1caa3abca7ac184126b58", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4c350094199988781ff507eb353f69cec5ea5273af1caa3abca7ac184126b58", kill_on_drop: false }`
[INFO] [stdout] c4c350094199988781ff507eb353f69cec5ea5273af1caa3abca7ac184126b58
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4501beda19137753efdbccb629abfd7559e646ac84cb679152d8b21b75d10033
[INFO] running `Command { std: "docker" "start" "-a" "4501beda19137753efdbccb629abfd7559e646ac84cb679152d8b21b75d10033", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling slab v0.4.10
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling doc-comment v0.3.3
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling sdd v3.0.8
[INFO] [stderr]    Compiling assert_cmd v2.0.17
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]    Compiling scc v2.3.4
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serial_test v3.2.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling bstr v1.12.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling criterion v0.6.0
[INFO] [stderr]    Compiling cutlist-optimizer-cli v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/engine/service/computation/material_compute.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     logging::macros::{debug, info, trace, warn, error},
[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: `crate::{
[INFO] [stdout]          }`
[INFO] [stdout]  --> src/engine/service/service_management.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |   use crate::{
[INFO] [stdout]   |  _____^
[INFO] [stdout] 7 | | };
[INFO] [stdout]   | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |     let task_id = {
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `configuration`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:567:5
[INFO] [stdout]     |
[INFO] [stdout] 567 |     configuration: &Configuration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `permutation`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:568:5
[INFO] [stdout]     |
[INFO] [stdout] 568 |     permutation: &[TileDimensions],
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_permutation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stock_solution`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:569:5
[INFO] [stdout]     |
[INFO] [stdout] 569 |     stock_solution: &StockSolution,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stock_solution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cut_thickness`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:570:5
[INFO] [stdout]     |
[INFO] [stdout] 570 |     cut_thickness: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cut_thickness`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_trim_dimension`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:571:5
[INFO] [stdout]     |
[INFO] [stdout] 571 |     min_trim_dimension: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_trim_dimension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optimization_factor`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:572:5
[INFO] [stdout]     |
[INFO] [stdout] 572 |     optimization_factor: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimization_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solutions`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:575:5
[INFO] [stdout]     |
[INFO] [stdout] 575 |     solutions: &[Solution],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solutions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:621:5
[INFO] [stdout]     |
[INFO] [stdout] 621 |     material: &str,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task`
[INFO] [stdout]    --> src/engine/service/computation/task_compute.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let task = task_arc.read();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value_name`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:527:5
[INFO] [stdout]     |
[INFO] [stdout] 527 |     value_name: &str,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:603:5
[INFO] [stdout]     |
[INFO] [stdout] 603 |     group: &str,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `configuration`
[INFO] [stdout]    --> src/engine/service/computation/debug_single_thread.rs:609:5
[INFO] [stdout]     |
[INFO] [stdout] 609 |     configuration: &Configuration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/engine/stock/stock_solution/impls.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn iter(&self) -> std::slice::Iter<TileDimensions> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn iter(&self) -> std::slice::Iter<'_, TileDimensions> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/engine/stock/stock_solution/impls.rs:118:21
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<TileDimensions> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, TileDimensions> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/engine/service/computation/material_compute.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     logging::macros::{debug, info, trace, warn, error},
[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: `crate::{
[INFO] [stdout]          }`
[INFO] [stdout]  --> src/engine/service/service_management.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |   use crate::{
[INFO] [stdout]   |  _____^
[INFO] [stdout] 7 | | };
[INFO] [stdout]   | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_id`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |     let task_id = {
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `configuration`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:567:5
[INFO] [stdout]     |
[INFO] [stdout] 567 |     configuration: &Configuration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `permutation`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:568:5
[INFO] [stdout]     |
[INFO] [stdout] 568 |     permutation: &[TileDimensions],
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_permutation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stock_solution`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:569:5
[INFO] [stdout]     |
[INFO] [stdout] 569 |     stock_solution: &StockSolution,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stock_solution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cut_thickness`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:570:5
[INFO] [stdout]     |
[INFO] [stdout] 570 |     cut_thickness: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cut_thickness`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_trim_dimension`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:571:5
[INFO] [stdout]     |
[INFO] [stdout] 571 |     min_trim_dimension: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_trim_dimension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optimization_factor`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:572:5
[INFO] [stdout]     |
[INFO] [stdout] 572 |     optimization_factor: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimization_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `solutions`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:575:5
[INFO] [stdout]     |
[INFO] [stdout] 575 |     solutions: &[Solution],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solutions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `material`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:621:5
[INFO] [stdout]     |
[INFO] [stdout] 621 |     material: &str,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task`
[INFO] [stdout]    --> src/engine/service/computation/task_compute.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let task = task_arc.read();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value_name`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:527:5
[INFO] [stdout]     |
[INFO] [stdout] 527 |     value_name: &str,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]    --> src/engine/service/computation/material_compute.rs:603:5
[INFO] [stdout]     |
[INFO] [stdout] 603 |     group: &str,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `configuration`
[INFO] [stdout]    --> src/engine/service/computation/debug_single_thread.rs:609:5
[INFO] [stdout]     |
[INFO] [stdout] 609 |     configuration: &Configuration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/engine/service/service_management.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut service = CutListOptimizerServiceImpl::new();
[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 import: `compute_task_complete`
[INFO] [stdout]  --> tests/engine/service/computation/task_compute_tests.rs:9:81
[INFO] [stdout]   |
[INFO] [stdout] 9 |         service::computation::task_compute::{compute_task_simple, compute_task, compute_task_complete},
[INFO] [stdout]   |                                                                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/engine/stock/stock_solution/impls.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn iter(&self) -> std::slice::Iter<TileDimensions> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn iter(&self) -> std::slice::Iter<'_, TileDimensions> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Status`, `configuration::structs::Configuration`, `errors::Result`, and `task::structs::Task`
[INFO] [stdout]   --> tests/engine/service/computation/material_compute_tests.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         configuration::structs::Configuration,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |         task::structs::Task,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |         enums::{orientation::Orientation, Status},
[INFO] [stdout]    |                                           ^^^^^^
[INFO] [stdout] 15 |     },
[INFO] [stdout] 16 |     errors::Result,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio`
[INFO] [stdout]   --> tests/engine/service/computation/material_compute_tests.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> tests/engine/service/computation/material_compute_tests.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> tests/engine/service/computation/material_compute_tests.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::RwLock`
[INFO] [stdout]   --> tests/engine/service/computation/material_compute_tests.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use parking_lot::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/engine/stock/stock_solution/impls.rs:118:21
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<TileDimensions> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, TileDimensions> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serial_test::serial`
[INFO] [stdout]  --> tests/engine/service_impl_tests.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serial_test::serial;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `models::enums::Status`
[INFO] [stdout]    --> tests/engine/service_impl_tests.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |         models::enums::Status,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `models::enums::Status`
[INFO] [stdout]    --> tests/engine/service_impl_tests.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         models::enums::Status,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Status`
[INFO] [stdout]   --> tests/engine/service_integration_tests.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     enums::{Status, StatusCode},
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serial_test::serial`
[INFO] [stdout]   --> tests/engine/service_integration_tests.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serial_test::serial;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> tests/engine/service_integration_tests.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::timeout`
[INFO] [stdout]   --> tests/engine/service_integration_tests.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tokio::time::timeout;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]  --> tests/engine/watch_dog_tests.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::time::{sleep, Duration};
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> tests/engine/watch_dog_cleanup_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `service`
[INFO] [stdout]   --> tests/engine/service_tests.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let service = CutListOptimizerServiceImpl::new();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service`
[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]    --> tests/engine/service_impl_tests.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let mut task = Task::new(task_id.clone());
[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]    --> tests/engine/service_impl_tests.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let mut task = Task::new(task_id.clone());
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_picker` is never used
[INFO] [stdout]    --> tests/stock/stock_panel_picker_tests.rs:221:8
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn create_test_picker() -> Result<StockPanelPicker> {
[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 `create_multi_material_request` is never used
[INFO] [stdout]   --> tests/engine/service/computation/task_compute_tests.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn create_multi_material_request() -> CalculationRequest {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_tiles` is never used
[INFO] [stdout]   --> tests/engine/service/computation/material_compute_tests.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn create_test_tiles(material: &str, count: usize) -> Vec<TileDimensions> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_stock_tiles` is never used
[INFO] [stdout]   --> tests/engine/service/computation/material_compute_tests.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn create_test_stock_tiles(material: &str, count: usize) -> Vec<TileDimensions> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_request` is never used
[INFO] [stdout]   --> tests/engine/service_integration_tests.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn create_test_request() -> CalculationRequest {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 34.60s
[INFO] running `Command { std: "docker" "inspect" "4501beda19137753efdbccb629abfd7559e646ac84cb679152d8b21b75d10033", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4501beda19137753efdbccb629abfd7559e646ac84cb679152d8b21b75d10033", kill_on_drop: false }`
[INFO] [stdout] 4501beda19137753efdbccb629abfd7559e646ac84cb679152d8b21b75d10033
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0f56c3051623cce6d39d70433cc1480ae13fe7b816e333f105a4513fcf9a9092
[INFO] running `Command { std: "docker" "start" "-a" "0f56c3051623cce6d39d70433cc1480ae13fe7b816e333f105a4513fcf9a9092", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `error`
[INFO] [stderr]   --> src/engine/service/computation/material_compute.rs:20:49
[INFO] [stderr]    |
[INFO] [stderr] 20 |     logging::macros::{debug, info, trace, warn, error},
[INFO] [stderr]    |                                                 ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::{
[INFO] [stderr]          }`
[INFO] [stderr]  --> src/engine/service/service_management.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |   use crate::{
[INFO] [stderr]   |  _____^
[INFO] [stderr] 7 | | };
[INFO] [stderr]   | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `task_id`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:444:9
[INFO] [stderr]     |
[INFO] [stderr] 444 |     let task_id = {
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_id`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `configuration`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:567:5
[INFO] [stderr]     |
[INFO] [stderr] 567 |     configuration: &Configuration,
[INFO] [stderr]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `permutation`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:568:5
[INFO] [stderr]     |
[INFO] [stderr] 568 |     permutation: &[TileDimensions],
[INFO] [stderr]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_permutation`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stock_solution`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:569:5
[INFO] [stderr]     |
[INFO] [stderr] 569 |     stock_solution: &StockSolution,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stock_solution`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cut_thickness`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:570:5
[INFO] [stderr]     |
[INFO] [stderr] 570 |     cut_thickness: i32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cut_thickness`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `min_trim_dimension`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:571:5
[INFO] [stderr]     |
[INFO] [stderr] 571 |     min_trim_dimension: i32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_trim_dimension`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `optimization_factor`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:572:5
[INFO] [stderr]     |
[INFO] [stderr] 572 |     optimization_factor: i32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimization_factor`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `solutions`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:575:5
[INFO] [stderr]     |
[INFO] [stderr] 575 |     solutions: &[Solution],
[INFO] [stderr]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solutions`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `material`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:621:5
[INFO] [stderr]     |
[INFO] [stderr] 621 |     material: &str,
[INFO] [stderr]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_material`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `task`
[INFO] [stderr]    --> src/engine/service/computation/task_compute.rs:278:13
[INFO] [stderr]     |
[INFO] [stderr] 278 |         let task = task_arc.read();
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_task`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value_name`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:527:5
[INFO] [stderr]     |
[INFO] [stderr] 527 |     value_name: &str,
[INFO] [stderr]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `group`
[INFO] [stderr]    --> src/engine/service/computation/material_compute.rs:603:5
[INFO] [stderr]     |
[INFO] [stderr] 603 |     group: &str,
[INFO] [stderr]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `configuration`
[INFO] [stderr]    --> src/engine/service/computation/debug_single_thread.rs:609:5
[INFO] [stderr]     |
[INFO] [stderr] 609 |     configuration: &Configuration,
[INFO] [stderr]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_configuration`
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/engine/stock/stock_solution/impls.rs:113:17
[INFO] [stderr]     |
[INFO] [stderr] 113 |     pub fn iter(&self) -> std::slice::Iter<TileDimensions> {
[INFO] [stderr]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 113 |     pub fn iter(&self) -> std::slice::Iter<'_, TileDimensions> {
[INFO] [stderr]     |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/engine/stock/stock_solution/impls.rs:118:21
[INFO] [stderr]     |
[INFO] [stderr] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<TileDimensions> {
[INFO] [stderr]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 118 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, TileDimensions> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: `cutlist-optimizer-cli` (lib) generated 17 warnings (run `cargo fix --lib -p cutlist-optimizer-cli` to apply 17 suggestions)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/engine/service/service_management.rs:102:13
[INFO] [stderr]     |
[INFO] [stderr] 102 |         let mut service = CutListOptimizerServiceImpl::new();
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `compute_task_complete`
[INFO] [stderr]  --> tests/engine/service/computation/task_compute_tests.rs:9:81
[INFO] [stderr]   |
[INFO] [stderr] 9 |         service::computation::task_compute::{compute_task_simple, compute_task, compute_task_complete},
[INFO] [stderr]   |                                                                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Status`, `configuration::structs::Configuration`, `errors::Result`, and `task::structs::Task`
[INFO] [stderr]   --> tests/engine/service/computation/material_compute_tests.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |         configuration::structs::Configuration,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 13 |         task::structs::Task,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 14 |         enums::{orientation::Orientation, Status},
[INFO] [stderr]    |                                           ^^^^^^
[INFO] [stderr] 15 |     },
[INFO] [stderr] 16 |     errors::Result,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio`
[INFO] [stderr]   --> tests/engine/service/computation/material_compute_tests.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use tokio;
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]   --> tests/engine/service/computation/material_compute_tests.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use uuid::Uuid;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]   --> tests/engine/service/computation/material_compute_tests.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use std::sync::Arc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `parking_lot::RwLock`
[INFO] [stderr]   --> tests/engine/service/computation/material_compute_tests.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | use parking_lot::RwLock;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serial_test::serial`
[INFO] [stderr]  --> tests/engine/service_impl_tests.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use serial_test::serial;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `models::enums::Status`
[INFO] [stderr]    --> tests/engine/service_impl_tests.rs:259:9
[INFO] [stderr]     |
[INFO] [stderr] 259 |         models::enums::Status,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `models::enums::Status`
[INFO] [stderr]    --> tests/engine/service_impl_tests.rs:299:9
[INFO] [stderr]     |
[INFO] [stderr] 299 |         models::enums::Status,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Status`
[INFO] [stderr]   --> tests/engine/service_integration_tests.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 12 |     enums::{Status, StatusCode},
[INFO] [stderr]    |             ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serial_test::serial`
[INFO] [stderr]   --> tests/engine/service_integration_tests.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use serial_test::serial;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> tests/engine/service_integration_tests.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::time::timeout`
[INFO] [stderr]   --> tests/engine/service_integration_tests.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use tokio::time::timeout;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sleep`
[INFO] [stderr]  --> tests/engine/watch_dog_tests.rs:5:19
[INFO] [stderr]   |
[INFO] [stderr] 5 | use tokio::time::{sleep, Duration};
[INFO] [stderr]   |                   ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> tests/engine/watch_dog_cleanup_tests.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `service`
[INFO] [stderr]   --> tests/engine/service_tests.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let service = CutListOptimizerServiceImpl::new();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/engine/service_impl_tests.rs:223:9
[INFO] [stderr]     |
[INFO] [stderr] 223 |     let mut task = Task::new(task_id.clone());
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/engine/service_impl_tests.rs:267:9
[INFO] [stderr]     |
[INFO] [stderr] 267 |     let mut task = Task::new(task_id.clone());
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_picker` is never used
[INFO] [stderr]    --> tests/stock/stock_panel_picker_tests.rs:221:8
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn create_test_picker() -> Result<StockPanelPicker> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_multi_material_request` is never used
[INFO] [stderr]   --> tests/engine/service/computation/task_compute_tests.rs:71:4
[INFO] [stderr]    |
[INFO] [stderr] 71 | fn create_multi_material_request() -> CalculationRequest {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_tiles` is never used
[INFO] [stderr]   --> tests/engine/service/computation/material_compute_tests.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn create_test_tiles(material: &str, count: usize) -> Vec<TileDimensions> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_stock_tiles` is never used
[INFO] [stderr]   --> tests/engine/service/computation/material_compute_tests.rs:40:4
[INFO] [stderr]    |
[INFO] [stderr] 40 | fn create_test_stock_tiles(material: &str, count: usize) -> Vec<TileDimensions> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_request` is never used
[INFO] [stderr]   --> tests/engine/service_integration_tests.rs:19:4
[INFO] [stderr]    |
[INFO] [stderr] 19 | fn create_test_request() -> CalculationRequest {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `cutlist-optimizer-cli` (lib test) generated 18 warnings (17 duplicates) (run `cargo fix --lib -p cutlist-optimizer-cli --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `cutlist-optimizer-cli` (test "integration_tests") generated 23 warnings (run `cargo fix --test "integration_tests" -p cutlist-optimizer-cli` to apply 18 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.51s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cutlist_optimizer_cli-44ca9788bd1f3a85)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test engine::service::service_management::tests::test_service_health_status ... ok
[INFO] [stdout] test engine::service::service_management::tests::test_service_health_status_enum ... ok
[INFO] [stdout] test engine::service::service_management::tests::test_service_health_status_variants ... ok
[INFO] [stdout] test engine::service::utilities::task_monitor::tests::test_calculate_progress ... ok
[INFO] [stdout] test engine::service::utilities::task_monitor::tests::test_is_task_completed ... ok
[INFO] [stdout] test engine::service::utilities::task_monitor::tests::test_should_cleanup_task ... ok
[INFO] [stdout] test engine::service::utilities::task_monitor::tests::test_is_task_running ... ok
[INFO] [stdout] test engine::service::utilities::stats_collector::tests::test_calculate_avg_completion_time ... ok
[INFO] [stdout] test engine::service::utilities::stats_collector::tests::test_format_memory_size ... ok
[INFO] [stdout] test engine::service::utilities::stats_collector::tests::test_calculate_success_rate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cutlist-9423e93a5502dbfd)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-8044542159b1b39b)
[INFO] [stdout] 
[INFO] [stdout] running 653 tests
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_custom_priority_list_no_duplicates_when_primary_is_standard ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_custom_priority_list_contains_standard_priorities ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_custom_priority_list_primary_first ... ok
[INFO] [stdout] test comparator::factory_tests::integration_tests::test_round_trip_string_to_enum_conversion ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_enum_list_other_priority ... ok
[INFO] [stdout] test comparator::factory_tests::integration_tests::test_factory_integration_with_configuration ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_most_tiles_priority_configuration ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_enum_list_most_tiles ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_function_list_length_and_validity ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_priority_list_consistency_between_string_and_enum ... ok
[INFO] [stdout] test comparator::factory_tests::priority_list_factory_tests::test_non_most_tiles_priority_configuration ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_empty_string ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_comparator_factory_error_display ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_enum_list ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_enum_valid ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_invalid_priority ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_list_mixed_valid_invalid ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_case_insensitive ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_none_input ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_whitespace_only ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_optimization_priority_to_solution_comparator_conversion ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_comparator_functional_equivalence ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_least_nbr_unused_tiles ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_least_wasted_area ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_most_nbr_tiles ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_most_unused_panel_area ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_smallest_center_of_mass_dist_to_origin ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_empty_collection_edge_cases ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_empty_solutions ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_biggest_unused_tile_area ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_equal_solutions ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_single_element_collection ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_hv_discrepancy ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_solution_comparator_enum ... ok
[INFO] [stdout] test comparator::factory_tests::solution_comparator_factory_tests::test_get_solution_comparator_valid_priorities ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_least_nbr_cuts ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_solution_sorting_trait ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_compare_by_least_nbr_mosaics ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_empty_stock_tiles_error ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_basic_grouping ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_empty_tiles_error ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_group_key_generation ... ok
[INFO] [stdout] test comparator::solution_comparator_tests::tests::test_solution_sorting_trait_extended ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_single_tile ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_tiles_with_different_properties ... ok
[INFO] [stdout] test engine::collection_utils_tests::get_tile_dimensions_per_material_tests::test_single_tile ... ok
[INFO] [stdout] test engine::collection_utils_tests::integration_tests::test_error_propagation ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_complex_java_algorithm_simulation ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_empty_stock_tiles_error ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_false_case_stock_breaks_pattern ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_single_tile_single_stock ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_one_dimensional_optimization_grouping ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_true_case_shared_width ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_all_solutions_thread_safety ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_cut_list_thread_creation ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_cutting_strategies ... ok
[INFO] [stdout] test engine::collection_utils_tests::get_tile_dimensions_per_material_tests::test_material_name_variations ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_debug_implementation ... ok
[INFO] [stdout] test engine::collection_utils_tests::get_tile_dimensions_per_material_tests::test_single_material ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_empty_tiles_error ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_false_case_no_shared_dimensions ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_true_case_mixed_orientation ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_default_implementation ... ok
[INFO] [stdout] test engine::collection_utils_tests::get_tile_dimensions_per_material_tests::test_basic_grouping ... ok
[INFO] [stdout] test engine::collection_utils_tests::get_tile_dimensions_per_material_tests::test_empty_input ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_different_cut_orientations ... ok
[INFO] [stdout] test engine::collection_utils_tests::integration_tests::test_workflow_integration ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_find_candidates ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_edge_cases ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_elapsed_time ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_grain_direction_consideration ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_run_with_invalid_configuration ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_run_with_valid_configuration ... ok
[INFO] [stdout] test engine::collection_utils_tests::is_one_dimensional_optimization_tests::test_true_case_shared_height ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_setters_and_getters ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_split_vertically ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_comparators ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_split_horizontally ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_remove_duplicated ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_percentage_done_tracking ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_solutions_management ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_sort_solutions ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_error_handling ... ok
[INFO] [stdout] test engine::collection_utils_tests::generate_groups_tests::test_group_splitting_large_dataset ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_memory_safety ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_validation_configuration ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_status_checks ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_stock_solution ... ok
[INFO] [stdout] test engine::debug_comprehensive_test::test_debug_edge_cases ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_tiles_management ... ok
[INFO] [stdout] test engine::debug_comprehensive_test::test_debug_high_precision_decimals ... ok
[INFO] [stdout] test engine::debug_comprehensive_test::test_debug_performance_measurement ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_create_debug_test_case ... ok
[INFO] [stdout] test engine::debug_comprehensive_test::test_debug_large_panel_count ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_compute_complete_basic ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_material ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_compute_empty_panels ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_compute_with_limited_permutations ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_compute_empty_stock ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_decimal_places_basic ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_compute_with_verbose_logging ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_integer_places_basic ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_max_decimal_places_multiple_panels ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_config_defaults ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_decimal_places_edge_cases ... ok
[INFO] [stdout] test engine::cut_list_thread_tests::test_concurrent_access ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_compute_scaling_factor ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_result_step_tracking ... ok
[INFO] [stdout] test engine::debug_single_thread_tests::test_debug_compute_mixed_materials ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_validate_and_count_places_invalid_inputs ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_max_decimal_places_single_panel ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_max_decimal_places_with_disabled_panels ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_max_integer_places_multiple_panels ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_max_integer_places_single_panel ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_max_integer_places_with_disabled_panels ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_none_values_handling ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_empty_panels_collections ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_validate_and_count_places ... ok
[INFO] [stdout] test engine::collection_utils_tests::integration_tests::test_performance_characteristics ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_validate_digit_limits ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_validate_digit_limits_success ... ok
[INFO] [stdout] test engine::errors_tests::test_invalid_client_id_error ... ok
[INFO] [stdout] test engine::errors_tests::test_invalid_task_id_error ... ok
[INFO] [stdout] test engine::errors_tests::test_client_already_has_task_error ... ok
[INFO] [stdout] test engine::errors_tests::test_lock_failed_error ... ok
[INFO] [stdout] test engine::errors_tests::test_retryable_errors ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_validate_and_count_places_valid_inputs ... ok
[INFO] [stdout] test engine::errors_tests::test_server_errors ... ok
[INFO] [stdout] test engine::errors_tests::test_error_creation ... ok
[INFO] [stdout] test engine::errors_tests::test_task_already_exists_error ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_integer_places_edge_cases ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_are_equivalent_tiles ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_different_orientations ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_edge_cases ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_generate_tile_key ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_group_equivalent_tiles ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_calculate_group_total_count ... ok
[INFO] [stdout] test engine::decimal_place_counter_tests::decimal_place_counter_tests::test_validate_digit_limits_failure ... ok
[INFO] [stdout] test engine::errors_tests::test_error_display ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_create_representatives_from_groups ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_remove_duplicated_permutations ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_validate_permutation_removal ... ok
[INFO] [stdout] test engine::running_tasks_singleton_tests::test_convenience_function ... ok
[INFO] [stdout] test engine::running_tasks_tests::test_status_counters ... ok
[INFO] [stdout] test engine::running_tasks_singleton_tests::test_singleton_same_instance ... ok
[INFO] [stdout] test engine::running_tasks_tests::test_running_tasks_basic_operations ... ok
[INFO] [stdout] test engine::running_tasks_tests::test_task_status_filtering ... ok
[INFO] [stdout] test engine::running_tasks_tests::test_singleton_instance ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::group_generation_tests::test_group_generation_empty_inputs ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::group_generation_tests::test_group_generation_mixed_tile_types ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::group_generation_tests::test_group_generation_one_dimensional_optimization ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::one_dimensional_optimization_tests::test_one_dimensional_detection_empty_stock ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::one_dimensional_optimization_tests::test_one_dimensional_detection_empty_tiles ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::one_dimensional_optimization_tests::test_one_dimensional_detection_false_case ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::one_dimensional_optimization_tests::test_one_dimensional_detection_height_common ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::one_dimensional_optimization_tests::test_one_dimensional_detection_mixed_dimensions ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::one_dimensional_optimization_tests::test_one_dimensional_detection_stock_breaks_pattern ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::one_dimensional_optimization_tests::test_one_dimensional_detection_true_case ... ok
[INFO] [stdout] test engine::debug_comprehensive_test::test_debug_algorithm_consistency ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::utility_method_tests::test_get_distinct_grouped_tile_dimensions ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::utility_method_tests::test_get_distinct_grouped_tile_dimensions_empty ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_comprehensive_decimal_and_integer_places ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::utility_method_tests::test_get_tile_dimensions_per_material ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::utility_method_tests::test_get_tile_dimensions_per_material_empty ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::group_generation_tests::test_group_generation_preserves_tile_order ... ok
[INFO] [stdout] test engine::service::computation::task_compute_tests::test_compute_task_creates_task ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_decimal_places_empty_panels ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_decimal_places_multiple_panels ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_decimal_places_no_decimals ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_decimal_places_single_panel ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_decimal_places_with_disabled_panels ... ok
[INFO] [stdout] test engine::service::computation::task_compute_tests::test_compute_task_full_flow ... ok
[INFO] [stdout] test engine::service::computation::task_compute_tests::test_compute_task_material_without_stock ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::group_generation_tests::test_group_generation_large_dataset_splitting ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::group_generation_tests::test_group_generation_small_dataset ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_integer_places_empty_panels ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_integer_places_multiple_panels ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_integer_places_single_panel ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_integer_places_with_disabled_panels ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_max_nbr_integer_places_with_none_values ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_nbr_decimal_places_edge_cases ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_nbr_integer_places_basic ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_nbr_decimal_places_without_decimals ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_nbr_decimal_places_with_decimals ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_nbr_integer_places_with_decimals ... ok
[INFO] [stdout] test engine::service_impl_tests::test_get_task_status_missing ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_get_nbr_integer_places_edge_cases ... ok
[INFO] [stdout] test engine::service_impl_tests::test_stop_task_existing ... ok
[INFO] [stdout] test engine::service_decimal_places_tests::decimal_places_tests::test_java_compatibility_edge_cases ... ok
[INFO] [stdout] test engine::service_impl_tests::test_invalid_request ... ok
[INFO] [stdout] test engine::service_impl_tests::test_submit_valid_request ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::legacy_compatibility_tests::test_legacy_method_compatibility ... ok
[INFO] [stdout] test engine::service_tests::test_task_operations ... ok
[INFO] [stdout] test engine::watch_dog_cleanup_tests::test_cleanup_result_new ... ok
[INFO] [stdout] test engine::service_impl_tests::test_uninitialized_service ... ok
[INFO] [stdout] test engine::watch_dog_cleanup_tests::test_cleanup_result_with_data ... ok
[INFO] [stdout] test engine::watch_dog_core_tests::test_config_update ... ok
[INFO] [stdout] test engine::watch_dog_core_tests::test_watchdog_creation ... ok
[INFO] [stdout] test engine::watch_dog_core_tests::test_watchdog_with_custom_config ... ok
[INFO] [stdout] test engine::watch_dog_monitoring_tests::test_task_monitor_config_update ... ok
[INFO] [stdout] test engine::watch_dog_monitoring_tests::test_task_monitor_creation ... ok
[INFO] [stdout] test engine::watch_dog_statistics_tests::test_watchdog_summary_to_string ... ok
[INFO] [stdout] test engine::watch_dog_tests::test_watchdog_creation ... ok
[INFO] [stdout] test engine::watch_dog_tests::test_watchdog_with_custom_intervals ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_all_variants_comprehensive ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_conversions ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_boundary_values ... ok
[INFO] [stdout] test engine::service_integration_tests::test_pipeline_with_invalid_request ... ok
[INFO] [stdout] test engine::service_impl_tests::test_stop_task_missing ... ok
[INFO] [stdout] test engine::service_impl_tests::test_submit_invalid_panels ... ok
[INFO] [stdout] test engine::errors_tests::test_invalid_task_state_error ... ok
[INFO] [stdout] test engine::errors_tests::test_permission_denied_error ... ok
[INFO] [stdout] test engine::service_impl_tests::test_terminate_task_existing ... ok
[INFO] [stdout] test engine::permutation_utils_tests::test_get_max_count_from_group ... ok
[INFO] [stdout] test engine::service_tests::test_service_basic_operations ... ok
[INFO] [stdout] test engine::service_tests::test_service_creation ... ok
[INFO] [stdout] test engine::service_impl_tests::test_terminate_task_invalid_status ... ok
[INFO] [stdout] test engine::service_impl_tests::test_terminate_task_missing ... ok
[INFO] [stdout] test engine::service_tests::test_service_destroy ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_copy_semantics ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_default ... ok
[INFO] [stdout] test engine::service::computation::grouping_tests::performance_tests::test_large_dataset_performance ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_descriptions ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_is_ok_and_is_error ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_display_with_description ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_hash_and_equality ... ok
[INFO] [stdout] test enums::status_code_tests::status_code_integration_tests::test_status_code_serialization ... ok
[INFO] [stdout] test logging::enums_tests::test_log_level_clone ... ok
[INFO] [stdout] test logging::init_tests::test_config_properties ... ok
[INFO] [stdout] test logging::init_tests::test_log_config_creation ... ok
[INFO] [stdout] test logging::enums_tests::test_log_level_debug ... ok
[INFO] [stdout] test logging::enums_tests::test_log_level_equality ... ok
[INFO] [stdout] test logging::enums_tests::test_log_level_to_tracing_level_conversion ... ok
[INFO] [stdout] test logging::enums_tests::test_log_level_to_string_conversion ... ok
[INFO] [stdout] test logging::init_tests::test_quiet_vs_default_config ... ok
[INFO] [stdout] test logging::init_tests::test_verbose_vs_default_config ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_log_level_filtering ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_log_info_macro ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_log_error_macro ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_log_debug_macro ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_log_trace_macro ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_logging_config ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_quiet_config ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_verbose_config ... ok
[INFO] [stdout] test logging::structs_tests::test_log_config_custom ... ok
[INFO] [stdout] test logging::structs_tests::test_log_config_default ... ok
[INFO] [stdout] test logging::structs_tests::test_log_config_verbose ... ok
[INFO] [stdout] test logging::structs_tests::test_with_time_config ... ok
[INFO] [stdout] test models::calculation_request_tests::test_add_panel ... ok
[INFO] [stdout] test models::calculation_request_tests::test_base_tiles_to_string ... ok
[INFO] [stdout] test logging::structs_tests::test_log_config_quiet ... ok
[INFO] [stdout] test models::calculation_request_tests::test_add_stock_panel ... ok
[INFO] [stdout] test models::calculation_request_tests::test_new_calculation_request ... ok
[INFO] [stdout] test models::calculation_request_tests::test_set_panels ... ok
[INFO] [stdout] test models::calculation_request_tests::test_set_stock_panels ... ok
[INFO] [stdout] test models::calculation_request_tests::test_tiles_to_string ... ok
[INFO] [stdout] test logging::structs_tests::test_log_config_debug ... ok
[INFO] [stdout] test models::calculation_response_tests::test_calculation_request_operations ... ok
[INFO] [stdout] test models::calculation_request_tests::test_with_configuration ... ok
[INFO] [stdout] test models::calculation_request_tests::test_take_configuration ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_log_warn_macro ... ok
[INFO] [stdout] test models::calculation_response_tests::test_calculation_response_new ... ok
[INFO] [stdout] test models::calculation_response_tests::test_calculation_response_default ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_macros_with_fields ... ok
[INFO] [stdout] test logging::macros_tests::tests::test_macros_with_formatting ... ok
[INFO] [stdout] test models::calculation_response_tests::test_calculation_response_with_id ... ok
[INFO] [stdout] test models::calculation_response_tests::test_clone ... ok
[INFO] [stdout] test models::calculation_response_tests::test_no_fit_panels_operations ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_clone ... ok
[INFO] [stdout] test models::calculation_response_tests::test_debug ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_default ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_equality ... ok
[INFO] [stdout] test models::calculation_response_tests::test_edge_bands_operations ... ok
[INFO] [stdout] test models::calculation_response_tests::test_mosaics_operations ... ok
[INFO] [stdout] test models::calculation_response_tests::test_mutable_references ... ok
[INFO] [stdout] test models::calculation_response_tests::test_panels_operations ... ok
[INFO] [stdout] test models::calculation_response_tests::test_serialization ... ok
[INFO] [stdout] test models::calculation_response_tests::test_setters_and_getters ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_convenience_methods ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_display ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_error_constructor ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_getters ... ok
[INFO] [stdout] test models::calculation_response_tests::test_used_stock_panels_operations ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_java_constructor_equivalence ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_java_getter_setter_equivalence ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_new_with_both_parameters ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_rust_improvements ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_serialization ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_setters ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_builder_getters ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_clone_and_equality ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_with_status_only ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_default ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_display ... ok
[INFO] [stdout] test models::calculation_submission_result_tests::test_success_constructor ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_from_cut ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_length ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_new ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_serialization ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_clone ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_all_edges_complete ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_all_edges_empty ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_all_edges_partial ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_all_edges_different_values ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_default ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_empty_serialization ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_any_edge_empty ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_any_edge_with_right ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_any_edge_with_bottom ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_any_edge_with_left ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_any_edge_with_multiple ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_debug ... ok
[INFO] [stdout] test models::cut_tests::cut_tests::test_cut_builder ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_has_any_edge_with_top ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_new ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_partial_eq ... ok
[INFO] [stdout] test models::grouped_tile_dimensions_tests::grouped_tile_dimensions_tests::test_display ... ok
[INFO] [stdout] test logging::init_tests::test_init_default_does_not_panic ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_serialization ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_uniform ... ok
[INFO] [stdout] test models::edge_tests::edge_tests::test_edge_uniform_empty_string ... ok
[INFO] [stdout] test models::final_tile_tests::test_final_tile_area_calculations ... ok
[INFO] [stdout] test models::final_tile_tests::test_final_tile_clone ... ok
[INFO] [stdout] test models::final_tile_tests::test_final_tile_count_plus_plus ... ok
[INFO] [stdout] test models::final_tile_tests::test_final_tile_count_plus_plus_from_zero ... ok
[INFO] [stdout] test models::final_tile_tests::test_final_tile_default ... ok
[INFO] [stdout] test models::final_tile_tests::test_final_tile_new ... ok
[INFO] [stdout] test models::final_tile_tests::test_final_tile_setters ... ok
[INFO] [stdout] test models::grouped_tile_dimensions_tests::grouped_tile_dimensions_tests::test_constructors ... ok
[INFO] [stdout] test models::grouped_tile_dimensions_tests::grouped_tile_dimensions_tests::test_equality ... ok
[INFO] [stdout] test models::grouped_tile_dimensions_tests::grouped_tile_dimensions_tests::test_hash ... ok
[INFO] [stdout] test models::grouped_tile_dimensions_tests::grouped_tile_dimensions_tests::test_java_equivalence ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_area_calculations ... ok
[INFO] [stdout] test models::grouped_tile_dimensions_tests::grouped_tile_dimensions_tests::test_delegation ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_biggest_unused_tile ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_cuts_management ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_equality ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_from_tile_dimensions ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_from_tile_node ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_hv_diff ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_tile_counts ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_to_tile_dimensions ... ok
[INFO] [stdout] test models::no_fit_tile_tests::test_no_fit_tile_clone ... ok
[INFO] [stdout] test models::no_fit_tile_tests::test_no_fit_tile_area_calculations ... ok
[INFO] [stdout] test models::no_fit_tile_tests::test_no_fit_tile_default ... ok
[INFO] [stdout] test models::no_fit_tile_tests::test_no_fit_tile_new ... ok
[INFO] [stdout] test models::no_fit_tile_tests::test_no_fit_tile_setters ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_area ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_setters_and_getters ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_center_of_mass_distance ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_default ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_copy_constructor ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_area_decimal ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_default_serialization ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_has_valid_dimensions_partial ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_height_as_f64 ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_height_as_f64_zero ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_height_as_f64_negative ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_negative_count ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_invalid_width ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_builder_pattern ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_negative_height ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_builder_pattern_chaining ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_depth ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_area_zero ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_clone ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_has_valid_dimensions ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_display ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_display_zero_count ... ok
[INFO] [stdout] test models::mosaic_tests::mosaic_tests::test_mosaic_display ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_disabled ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_negative_width ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_no_width ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_success ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_success_decimal ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_zero_count ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_zero_height ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_zero_width ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_new ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_set_material ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_no_height ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_width_as_f64 ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_width_as_f64_zero ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_with_edge ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_with_id_negative ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_with_id ... ok
[INFO] [stdout] test models::panel_tests::edge_tests::test_edge_default ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_with_id_zero ... ok
[INFO] [stdout] test models::panel_tests::edge_tests::test_edge_has_all_edges ... ok
[INFO] [stdout] test models::panel_tests::edge_tests::test_edge_has_any_edge ... ok
[INFO] [stdout] test models::panel_tests::edge_tests::test_edge_new ... ok
[INFO] [stdout] test models::panel_tests::edge_tests::test_edge_uniform ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_serialization ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_set_material_empty_string ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_is_valid_invalid_height ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_width_as_f64_negative ... ok
[INFO] [stdout] test models::panel_struct_tests::panel_struct_tests::test_panel_debug ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_default ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_display ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_height_as_f64 ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_has_valid_dimensions ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_disabled ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_no_height ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_negative_height ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_no_width ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_success ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_zero_width ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_new ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_set_material ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_with_id ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_new_constructor ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_width_as_f64 ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_serialization ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_validation_success ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_default_performance_thresholds ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_zero_count ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_setters ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_validation_zero_interval ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_validation_zero_threads ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_with_all_params_constructor ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_add_mosaic ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_add_multiple_mosaics ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_creator_thread_group ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_aux_info ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_is_valid_invalid_width ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_bases_as_string ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_default ... ok
[INFO] [stdout] test models::performance_thresholds_tests::tests::test_validation_zero_tasks ... ok
[INFO] [stdout] test models::task_status_response_tests::test_complete_with_solution ... ok
[INFO] [stdout] test models::task_status_response_tests::test_default_task_status_response ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_efficiency ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_from_solution ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_builder_pattern ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_no_fit_panels ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_from_tile_dimensions ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_is_empty ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_new ... ok
[INFO] [stdout] test models::solution_tests::tests::test_solution_summary ... ok
[INFO] [stdout] test models::stats_tests::test_stats_calculations ... ok
[INFO] [stdout] test models::stats_tests::test_stats_default ... ok
[INFO] [stdout] test models::stats_tests::test_stats_display ... ok
[INFO] [stdout] test models::task_status_response_tests::test_boundary_values ... ok
[INFO] [stdout] test models::panel_tests::edge_tests::test_panel_with_edge ... ok
[INFO] [stdout] test models::panel_tests::panel_tests::test_panel_area ... ok
[INFO] [stdout] test models::task_status_response_tests::test_mark_as_error ... ok
[INFO] [stdout] test models::task_status_response_tests::test_mark_as_terminated ... ok
[INFO] [stdout] test models::task_status_response_tests::test_new_task_status_response ... ok
[INFO] [stdout] test models::task_status_response_tests::test_serialization ... ok
[INFO] [stdout] test models::task_status_response_tests::test_status_checks ... ok
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task error-test: Queued -> Running
[INFO] [stdout] [32m INFO[0m ℹ️ Task error-test set to running status
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task error-test: Running -> Error
[INFO] [stdout] [31mERROR[0m ❌ Task error-test terminated with error
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task edge-test: Queued -> Running
[INFO] [stdout] [32m INFO[0m ℹ️ Task edge-test set to running status
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task edge-test: Running -> Finished
[INFO] [stdout] [32m INFO[0m ℹ️ Task edge-test finished
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task material-test: Queued -> Running
[INFO] [stdout] [32m INFO[0m ℹ️ Task material-test set to running status
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task material-test: Running -> Finished
[INFO] [stdout] [32m INFO[0m ℹ️ Task material-test finished
[INFO] [stdout] test models::task_status_response_tests::test_update_progress ... ok
[INFO] [stdout] test models::task_status_response_tests::test_with_details_valid ... ok
[INFO] [stdout] test models::task_tests::test_getters_and_setters ... ok
[INFO] [stdout] [32m INFO[0m ℹ️ Collected 0 total solutions for task test_task
[INFO] [stdout] [33m WARN[0m ⚠️ No solutions found for task test_task
[INFO] [stdout] [33m WARN[0m ⚠️ Built empty solution for task test_task with 0 no-fit panels
[INFO] [stdout] [32m INFO[0m ℹ️ Solution built and set for task test_task
[INFO] [stdout] [32m INFO[0m ℹ️ Collected 0 total solutions for task solution-test
[INFO] [stdout] [33m WARN[0m ⚠️ No solutions found for task solution-test
[INFO] [stdout] [33m WARN[0m ⚠️ Built empty solution for task solution-test with 0 no-fit panels
[INFO] [stdout] [32m INFO[0m ℹ️ Collected 0 total solutions for task solution-test
[INFO] [stdout] [33m WARN[0m ⚠️ No solutions found for task solution-test
[INFO] [stdout] [33m WARN[0m ⚠️ Built empty solution for task solution-test with 0 no-fit panels
[INFO] [stdout] [32m INFO[0m ℹ️ Solution built and set for task solution-test
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task status-test: Queued -> Running
[INFO] [stdout] [32m INFO[0m ℹ️ Task status-test set to running status
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task status-test: Running -> Finished
[INFO] [stdout] [32m INFO[0m ℹ️ Task status-test stopped
[INFO] [stdout] test models::task_status_response_tests::test_progress_workflow ... ok
[INFO] [stdout] test models::task_tests::test_error_status ... ok
[INFO] [stdout] test models::task_status_response_tests::test_set_init_percentage_valid ... ok
[INFO] [stdout] test models::task_tests::test_edge_cases ... ok
[INFO] [stdout] test models::task_tests::test_logging ... ok
[INFO] [stdout] test models::task_status_response_tests::test_set_init_percentage_invalid ... ok
[INFO] [stdout] test models::task_status_response_tests::test_set_percentage_done_invalid ... ok
[INFO] [stdout] test models::task_status_response_tests::test_with_details_invalid_percentage_done ... ok
[INFO] [stdout] test models::task_status_response_tests::test_with_details_invalid_init_percentage ... ok
[INFO] [stdout] test models::task_status_response_tests::test_solution_management ... ok
[INFO] [stdout] test models::task_status_response_tests::test_set_percentage_done_valid ... ok
[INFO] [stdout] test models::task_tests::test_clone_behavior ... ok
[INFO] [stdout] test models::task_tests::test_solution_building_with_request ... ok
[INFO] [stdout] test models::task_tests::test_solution_building ... ok
[INFO] [stdout] test models::task_tests::test_status_transitions ... ok
[INFO] [stdout] test models::task_tests::test_thread_group_rankings ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_dimensions_string ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_tile_creation ... ok
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task terminate-test: Queued -> Running
[INFO] [stdout] [32m INFO[0m ℹ️ Task terminate-test set to running status
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task terminate-test: Running -> Terminated
[INFO] [stdout] [33m WARN[0m ⚠️ Task terminate-test terminated
[INFO] [stdout] test models::tile_dimensions_tests::test_vertical_orientation_no_rotation ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_area_calculations ... ok
[INFO] [stdout] test models::task_tests::test_status_transitions_terminate ... ok
[INFO] [stdout] test models::task_tests::test_task_creation ... ok
[INFO] [stdout] test models::task_tests::test_thread_counting_placeholders ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_dimensions_hash ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_tile_rotation ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_tile_fits ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_tile_with_label ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_orientation_constraints ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_has_same_dimensions ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_max_dimension ... ok
[INFO] [stdout] test models::tile_dimensions_tests::test_orientation_any_allows_rotation ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_creation ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_depth ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_copy ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_distinct_tile_set ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_final_tiles ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_find_and_replace ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_default ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_biggest_area ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_equality ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_children ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_horizontal_vertical_counts ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_from_dimensions ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_to_tile_dimensions ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_tree_string ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_string_identifier ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_large_area_calculation ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_default ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_dimensions ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_equality ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_display ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_from_dimensions ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_new ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_from_tile ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_orientation ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_overlaps ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_unused_tiles ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_translation ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_clone_and_hash ... ok
[INFO] [stdout] test models::tile_tests::tile_tests::test_tile_contains_point ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::error_handling_compatibility_tests::test_interrupt_error_handling ... ok
[INFO] [stdout] test models::tile_node_tests::test_tile_node_orientation ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_blocking_get_solution_not_initialized ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_interrupt_functionality ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_java_style_get_solution_not_initialized ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_java_style_getters ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_java_style_sorting_with_large_areas ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::sorting_compatibility_tests::test_normal_sorting_vs_java_compatible ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::sorting_compatibility_tests::test_sorting_overflow_behavior ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::builder_tests::test_builder_default ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::builder_tests::test_builder_missing_stock_tiles ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::constructor_tests::test_builder_missing_required_fields ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::builder_tests::test_builder_missing_tiles_to_fit ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_java_style_sorting ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::builder_tests::test_builder_missing_task ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::builder_tests::test_builder_with_hint ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::constructor_tests::test_builder_pattern ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::constructor_tests::test_new_constructor ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::error_handling_compatibility_tests::test_silent_error_handling ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_is_ready_false_when_not_initialized ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::builder_tests::test_builder_fluent_interface ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_get_picker_stats ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_get_required_area ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_get_max_retrieved_idx_initial ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::constructor_tests::test_new_without_hint_constructor ... ok
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 3 stock tiles, 1 tiles to fit, required area: 4800
[INFO] [stdout] [32m INFO[0m ℹ️ Minimum tiles needed: 1
[INFO] [stdout] [32m INFO[0m ℹ️ Maximum solution length: 1000
[INFO] [stdout] [32m INFO[0m ℹ️ Using default max length with all-panel solution
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_get_task ... ok
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 3 stock tiles, 1 tiles to fit, required area: 600
[INFO] [stdout] [32m INFO[0m ℹ️ Minimum tiles needed: 1
[INFO] [stdout] [32m INFO[0m ℹ️ Maximum solution length: 2
[INFO] [stdout] [32m INFO[0m ℹ️ Searching for solution with 1-2 tiles
[INFO] [stdout] [32m INFO[0m ℹ️ Trying solution with 1 tiles
[INFO] [stdout] [32m INFO[0m ℹ️ Found solution with 1 tiles, total area: 2000
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 3 stock tiles, 1 tiles to fit, required area: 600
[INFO] [stdout] [32m INFO[0m ℹ️ Minimum tiles needed: 1
[INFO] [stdout] [32m INFO[0m ℹ️ Maximum solution length: 2
[INFO] [stdout] [32m INFO[0m ℹ️ Searching for solution with 1-2 tiles
[INFO] [stdout] [32m INFO[0m ℹ️ Trying solution with 1 tiles
[INFO] [stdout] [32m INFO[0m ℹ️ Found solution with 1 tiles, total area: 2100
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_is_generating_false ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_solution_count_empty ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_sort_stock_solutions_default ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::thread_management_tests::test_double_init_error ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::thread_management_tests::test_init_starts_generation ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_dimension_constraints ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_empty_stock_tiles_error ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_empty_tiles_to_fit_error ... ok
[INFO] [stdout] test stock::stock_panel_picker_tests::thread_management_tests::test_stop_generation ... ok
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task time-test: Queued -> Running
[INFO] [stdout] test models::task_tests::test_material_management ... ok
[INFO] [stdout] [32m INFO[0m ℹ️ Task time-test set to running status
[INFO] [stdout] test stock::stock_panel_picker_tests::core_implementation_tests::test_is_initialized_false ... ok
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 2 stock tiles, 1 tiles to fit, required area: 30000
[INFO] [stdout] [32m INFO[0m ℹ️ Minimum tiles needed: 15
[INFO] [stdout] [32m INFO[0m ℹ️ Maximum solution length: 1000
[INFO] [stdout] [32m INFO[0m ℹ️ Using default max length with all-panel solution
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 3 stock tiles, 2 tiles to fit, required area: 2500
[INFO] [stdout] [32m INFO[0m ℹ️ Minimum tiles needed: 1
[INFO] [stdout] [32m INFO[0m ℹ️ Maximum solution length: 1000
[INFO] [stdout] [32m INFO[0m ℹ️ Using default max length with all-panel solution
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 3 stock tiles, 1 tiles to fit, required area: 600
[INFO] [stdout] [32m INFO[0m ℹ️ Using unique stock panel optimization
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stdout] test stock::stock_solution_generator_tests::test_generate_multiple_solutions ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_stock_solution_result_variants ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_insufficient_stock_area ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_generate_stock_solution_basic ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_optimizer_error_display ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_stock_solution_generator_creation ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_unique_stock_panel_scenario ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_equality_rotated_tiles ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_equality_same_tiles ... ok
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 4 stock tiles, 1 tiles to fit, required area: 1200
[INFO] [stdout] [32m INFO[0m ℹ️ Minimum tiles needed: 1
[INFO] [stdout] [32m INFO[0m ℹ️ Maximum solution length: 2
[INFO] [stdout] [32m INFO[0m ℹ️ Searching for solution with 1-2 tiles
[INFO] [stdout] [32m INFO[0m ℹ️ Trying solution with 1 tiles
[INFO] [stdout] [32m INFO[0m ℹ️ Found solution with 1 tiles, total area: 3500
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stdout] test stock::stock_solution_tests::tests::test_from_slice ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_from_slice_conversion ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_from_tiles ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_from_vec_conversion ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_get_total_area ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_has_unique_panel_size_empty ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_has_unique_panel_size_false ... ok
[INFO] [stdout] test models::task_tests::test_thread_safe_operations ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_with_length_hint ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_add_stock_tile ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_display_trait ... ok
[INFO] [stdout] [32m INFO[0m 🚀 Starting: stock_solution_generation
[INFO] [stdout] [32m INFO[0m ℹ️ Starting stock solution generation: 1 stock tiles, 1 tiles to fit, required area: 100
[INFO] [stdout] [32m INFO[0m ℹ️ Using unique stock panel optimization
[INFO] [stdout] [32m INFO[0m ✅ Completed: stock_solution_generation
[INFO] [stderr]    Doc-tests cutlist_optimizer_cli
[INFO] [stdout] test stock::stock_solution_tests::tests::test_has_unique_panel_size_true ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_equality_different_order ... ok
[INFO] [stdout] test stock::stock_solution_generator_tests::test_stock_solution_generator_simple_creation ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_inequality_different_counts ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_inequality_different_sizes ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_into_iterator ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_iterator ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_sort_panels_asc ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_new_stock_solution ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_sort_panels_desc ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_to_string ... ok
[INFO] [stdout] test stock::stock_solution_tests::tests::test_to_string_grouped ... ok
[INFO] [stdout] test utils::arrangement_tests::test_borrowed_permutations ... ok
[INFO] [stdout] test utils::arrangement_tests::test_empty_permutations ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_performance ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_with_custom_types ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_with_duplicates ... ok
[INFO] [stdout] [32m INFO[0m ℹ️ Updated counters for task time-test: Running -> Finished
[INFO] [stdout] [32m INFO[0m ℹ️ Task time-test stopped
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_java_builder_pattern ... ok
[INFO] [stdout] test utils::arrangement_tests::test_factorial_large_number ... ok
[INFO] [stdout] test utils::arrangement_tests::test_four_element_permutations_count ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_iter ... ok
[INFO] [stdout] test utils::arrangement_tests::test_expected_permutation_count ... ok
[INFO] [stdout] test utils::arrangement_tests::test_factorial ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_limited ... ok
[INFO] [stdout] test stock::stock_panel_picker_compatibility_tests::java_compatibility_tests::test_java_style_initialization ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_limited_more_than_total ... ok
[INFO] [stdout] test utils::arrangement_tests::test_single_element_permutations ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_limited_zero ... ok
[INFO] [stdout] test models::task_tests::test_time_tracking ... ok
[INFO] [stdout] test utils::arrangement_tests::test_three_element_permutations ... ok
[INFO] [stdout] test utils::arrangement_tests::test_two_element_permutations ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_basic ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_detailed ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_multiple_panels ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_no_edge_config ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_partial_edges ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_rotated ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_safe_invalid_scale ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_safe_panel_not_found ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_safe_success ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_edge_bands_with_scale_factor ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_calc_material_total ... ok
[INFO] [stdout] test utils::arrangement_tests::test_string_permutations ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_edge_banding_empty_inputs ... ok
[INFO] [stdout] test utils::math_tests::test_percentage_zero_denominator ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_edge_banding_error_display ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_edge_banding_large_scale_factor ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_edge_banding_with_zero_dimensions ... ok
[INFO] [stdout] test utils::edge_banding_tests::test_get_material_summary ... ok
[INFO] [stdout] test utils::math_tests::test_approx_equal ... ok
[INFO] [stdout] test utils::math_tests::test_clamp ... ok
[INFO] [stdout] test utils::math_tests::test_efficiency_ratio_half ... ok
[INFO] [stdout] test utils::math_tests::test_efficiency_ratio_perfect ... ok
[INFO] [stdout] test utils::math_tests::test_efficiency_ratio_zero_total ... ok
[INFO] [stdout] test utils::math_tests::test_efficiency_ratio_zero_used ... ok
[INFO] [stdout] test utils::math_tests::test_lerp ... ok
[INFO] [stdout] test utils::math_tests::test_percentage_basic ... ok
[INFO] [stdout] test utils::math_tests::test_percentage_equal_values ... ok
[INFO] [stdout] test utils::arrangement_tests::test_permutations_memory_usage ... ok
[INFO] [stdout] test utils::timing_tests::test_format_duration_seconds ... ok
[INFO] [stdout] test utils::timing_tests::test_percentage_basic ... ok
[INFO] [stdout] test utils::timing_tests::test_percentage_zero_denominator ... ok
[INFO] [stdout] test utils::math_tests::test_percentage_zero_numerator ... ok
[INFO] [stdout] test utils::math_tests::test_rectangle_area ... ok
[INFO] [stdout] test utils::math_tests::test_rectangle_perimeter ... ok
[INFO] [stdout] test utils::timing_tests::test_percentage_zero_numerator ... ok
[INFO] [stdout] test utils::math_tests::test_round_to_decimal_places ... ok
[INFO] [stdout] test utils::math_tests::test_waste_percentage_half_waste ... ok
[INFO] [stdout] test utils::math_tests::test_waste_percentage_no_waste ... ok
[INFO] [stdout] test utils::math_tests::test_waste_percentage_zero_total ... ok
[INFO] [stdout] test utils::math_tests::test_waste_percentage_zero_used ... ok
[INFO] [stdout] test utils::timing_tests::test_format_duration_hours_minutes_seconds ... ok
[INFO] [stdout] test utils::timing_tests::test_format_duration_milliseconds ... ok
[INFO] [stdout] test utils::timing_tests::test_format_duration_minutes_and_seconds ... ok
[INFO] [stdout] test utils::timing_tests::test_format_duration_zero ... ok
[INFO] [stdout] test utils::timing_tests::test_percentage_decimal_result ... ok
[INFO] [stdout] test utils::timing_tests::test_percentage_equal_values ... ok
[INFO] [stdout] test utils::utils_tests::test_misc_format_number ... ok
[INFO] [stdout] test utils::utils_tests::test_misc_truncate_string ... ok
[INFO] [stdout] test utils::utils_tests::test_util_error_display ... ok
[INFO] [stdout] test utils::utils_tests::test_validation_non_negative ... ok
[INFO] [stdout] test utils::utils_tests::test_validation_not_empty ... ok
[INFO] [stdout] test utils::utils_tests::test_validation_positive ... ok
[INFO] [stdout] test utils::utils_tests::test_validation_range ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 653 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test src/engine/service/task_management.rs - engine::service::task_management (line 7) ... FAILED
[INFO] [stdout] test src/engine/service/computation/dimension_utils.rs - engine::service::computation::dimension_utils::DimensionUtils::get_nbr_integer_places (line 59) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::get_task_id (line 117) ... ok
[INFO] [stdout] test src/engine/service/computation/dimension_utils.rs - engine::service::computation::dimension_utils::DimensionUtils::get_nbr_decimal_places (line 28) ... ok
[INFO] [stdout] test src/engine/service/computation/dimension_utils.rs - engine::service::computation::dimension_utils::DimensionUtils::get_max_nbr_decimal_places (line 89) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::is_error (line 101) ... ok
[INFO] [stdout] test src/engine/comparator/priority_list_factory.rs - engine::comparator::priority_list_factory::PriorityListFactory::get_final_solution_prioritized_comparator_enum_list (line 90) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::set_status_code (line 180) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::get_status_code (line 133) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::error (line 71) ... ok
[INFO] [stdout] test src/engine/comparator/priority_list_factory.rs - engine::comparator::priority_list_factory::PriorityListFactory::get_final_solution_prioritized_comparator_list (line 40) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::is_success (line 85) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::clear_task_id (line 163) ... ok
[INFO] [stdout] test src/engine/service/computation/dimension_utils.rs - engine::service::computation::dimension_utils::DimensionUtils::get_max_nbr_integer_places (line 125) ... ok
[INFO] [stdout] test src/lib.rs - (line 8) ... ok
[INFO] [stdout] test src/engine/comparator/solution_comparator_factory.rs - engine::comparator::solution_comparator_factory::SolutionComparatorFactory::get_solution_comparator (line 50) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::new (line 14) ... ok
[INFO] [stdout] test src/engine/comparator/priority_list_factory.rs - engine::comparator::priority_list_factory::PriorityListFactory::get_final_solution_prioritized_comparator_functions (line 136) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::set_task_id (line 149) ... ok
[INFO] [stdout] test src/engine/comparator/solution_comparator_factory.rs - engine::comparator::solution_comparator_factory::SolutionComparatorFactory::get_solution_comparator_list (line 103) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::with_status (line 34) ... ok
[INFO] [stdout] test src/models/calculation_submission_result/impls.rs - models::calculation_submission_result::impls::CalculationSubmissionResult::success (line 54) ... ok
[INFO] [stdout] test src/utils/arrangement.rs - utils::arrangement::generate_permutations (line 20) ... ok
[INFO] [stdout] test src/utils/edge_banding.rs - utils::edge_banding::calc_edge_bands (line 23) ... ok
[INFO] [stdout] test src/utils/timing.rs - utils::timing::Timer (line 53) ... ok
[INFO] [stdout] test src/utils/math.rs - utils::math::percentage (line 19) ... ok
[INFO] [stdout] test src/utils/timing.rs - utils::timing::measure_time (line 131) ... ok
[INFO] [stdout] test src/utils/mod.rs - utils (line 16) ... ok
[INFO] [stdout] test src/utils/math.rs - utils::math::round_to_decimal_places (line 77) ... ok
[INFO] [stdout] test src/utils/timing.rs - utils::timing::format_duration (line 21) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/engine/service/task_management.rs - engine::service::task_management (line 7) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]  --> src/engine/service/task_management.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::engine::service::utilities::TaskMonitor;
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            unresolved import
[INFO] [stdout]   |            help: a similar path exists: `cutlist_optimizer_cli::engine`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/engine/service/task_management.rs - engine::service::task_management (line 7)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 29 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.60s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "0f56c3051623cce6d39d70433cc1480ae13fe7b816e333f105a4513fcf9a9092", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f56c3051623cce6d39d70433cc1480ae13fe7b816e333f105a4513fcf9a9092", kill_on_drop: false }`
[INFO] [stdout] 0f56c3051623cce6d39d70433cc1480ae13fe7b816e333f105a4513fcf9a9092
