[INFO] cloning repository https://github.com/Kunaixfox/digipet
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kunaixfox/digipet" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKunaixfox%2Fdigipet", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKunaixfox%2Fdigipet'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e08491a9a4353f353298b6e10ea1bcc6a85e2b62
[INFO] testing Kunaixfox/digipet against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKunaixfox%2Fdigipet" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Kunaixfox/digipet
[INFO] finished tweaking git repo https://github.com/Kunaixfox/digipet
[INFO] tweaked toml for git repo https://github.com/Kunaixfox/digipet written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Kunaixfox/digipet on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Kunaixfox/digipet 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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded stability v0.2.1
[INFO] [stderr]   Downloaded castaway v0.2.4
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.5
[INFO] [stderr]   Downloaded unicode-truncate v1.1.0
[INFO] [stderr]   Downloaded ratatui v0.26.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5ddf74a8f06736cfbff109d95531b6d347b43a8a38b85ae352a4f91c7df3f09f
[INFO] running `Command { std: "docker" "start" "-a" "5ddf74a8f06736cfbff109d95531b6d347b43a8a38b85ae352a4f91c7df3f09f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ddf74a8f06736cfbff109d95531b6d347b43a8a38b85ae352a4f91c7df3f09f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ddf74a8f06736cfbff109d95531b6d347b43a8a38b85ae352a4f91c7df3f09f", kill_on_drop: false }`
[INFO] [stdout] 5ddf74a8f06736cfbff109d95531b6d347b43a8a38b85ae352a4f91c7df3f09f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a8eb99f251dfb8e8bd3086fe4336c0b801d25c68a642d6389e8b6aedb2ba35a
[INFO] running `Command { std: "docker" "start" "-a" "4a8eb99f251dfb8e8bd3086fe4336c0b801d25c68a642d6389e8b6aedb2ba35a", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling compact_str v0.7.1
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.26.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling digipet v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:291:29
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line> {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here                                        ^^^^ the same lifetime is hidden 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] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line<'_>> {
[INFO] [stdout]     |                                                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line {
[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] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:350:28
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line {
[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] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:291:29
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line> {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here                                        ^^^^ the same lifetime is hidden 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] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line<'_>> {
[INFO] [stdout]     |                                                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line {
[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] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:350:28
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line {
[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] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.39s
[INFO] running `Command { std: "docker" "inspect" "4a8eb99f251dfb8e8bd3086fe4336c0b801d25c68a642d6389e8b6aedb2ba35a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a8eb99f251dfb8e8bd3086fe4336c0b801d25c68a642d6389e8b6aedb2ba35a", kill_on_drop: false }`
[INFO] [stdout] 4a8eb99f251dfb8e8bd3086fe4336c0b801d25c68a642d6389e8b6aedb2ba35a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6894f3497c00c2eb49a4fb3f6a781f2aea7a48b65a02d6efae87314c4deb4be9
[INFO] running `Command { std: "docker" "start" "-a" "6894f3497c00c2eb49a4fb3f6a781f2aea7a48b65a02d6efae87314c4deb4be9", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling ratatui v0.26.3
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling digipet v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:291:29
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line> {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here                                        ^^^^ the same lifetime is hidden 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] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line<'_>> {
[INFO] [stdout]     |                                                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line {
[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] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:350:28
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line {
[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] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_area` is never used
[INFO] [stdout]   --> tests/task27_enhanced_stats_input_handling_qa.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn create_test_area() -> Rect {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task86_rendering_performance_optimization_qa.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let mut manager = DisplayManager::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: variable does not need to be mutable
[INFO] [stdout]   --> tests/task38_cooldown_display_wiring_qa.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]   --> tests/task38_cooldown_display_wiring_qa.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]   --> tests/task38_cooldown_display_wiring_qa.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let pet = create_test_pet();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/task38_cooldown_display_wiring_qa.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actions_area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let actions_area = Rect::new(0, 0, 100, 20);
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actions_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]   --> tests/task38_cooldown_display_wiring_qa.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let pet = create_test_pet();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let mut backend = TestBackend::new(120, 60);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `full_area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let full_area = Rect::new(0, 0, 120, 60);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut backend = TestBackend::new(width, height);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |             let area = Rect::new(0, 0, width, height);
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:280:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 297 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:324:13
[INFO] [stdout]     |
[INFO] [stdout] 324 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/layout_system_integration_qa.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |         assert!(current_layout.pet_display.width >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/layout_system_integration_qa.rs:185:17
[INFO] [stdout]     |
[INFO] [stdout] 185 |         assert!(current_layout.stats_area.height >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/layout_system_integration_qa.rs:640:17
[INFO] [stdout]     |
[INFO] [stdout] 640 |         assert!(layout.pet_display.width >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/layout_system_integration_qa.rs:642:17
[INFO] [stdout]     |
[INFO] [stdout] 642 |         assert!(layout.stats_area.height >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/layout_system_integration_qa.rs:644:17
[INFO] [stdout]     |
[INFO] [stdout] 644 |         assert!(layout.actions_area.width >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/layout_system_integration_qa.rs:646:17
[INFO] [stdout]     |
[INFO] [stdout] 646 |         assert!(layout.messages_area.height >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task38_cooldown_display_wiring_qa.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |     assert!(stats.total_renders >= 0, "DisplayManager should track rendering stats");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/task36_evolution_checking_main_loop_qa.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Baby);
[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/task36_evolution_checking_main_loop_qa.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Child);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task36_evolution_checking_main_loop_qa.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Teen);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task36_evolution_checking_main_loop_qa.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Adult);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task36_evolution_checking_main_loop_qa.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     let mut action_cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_state`
[INFO] [stdout]    --> tests/task36_evolution_checking_main_loop_qa.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |             let previous_state = save_data.pet_state;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_state`
[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/task36_evolution_checking_main_loop_qa.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |     let mut pet = Pet::new(); // Default pet with insufficient evolution requirements
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task36_evolution_checking_main_loop_qa.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Baby);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task36_evolution_checking_main_loop_qa.rs:405:9
[INFO] [stdout]     |
[INFO] [stdout] 405 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Child);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> tests/task1_action_menu_integration_qa.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let save_data = SaveData::new(pet.clone(), pet.calculate_state());
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `needs_update`
[INFO] [stdout]    --> tests/task1_action_menu_integration_qa.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |     let needs_update = display_manager.needs_update(&pet);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> tests/task1_action_menu_integration_qa.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |     let save_data = SaveData::new(pet.clone(), pet.calculate_state());
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_stats`
[INFO] [stdout]    --> tests/task1_action_menu_integration_qa.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let display_stats = display_manager.get_stats();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task82_tui_pet_system_integration_qa.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 238 |     let mut pet = create_test_pet();
[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/task82_tui_pet_system_integration_qa.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let mut pet = create_test_pet();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task82_tui_pet_system_integration_qa.rs:527:9
[INFO] [stdout]     |
[INFO] [stdout] 527 |     let mut pet = create_test_pet();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_save_data` is never used
[INFO] [stdout]   --> tests/task82_tui_pet_system_integration_qa.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn create_test_save_data() -> SaveData {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task69_state_dependent_sprite_display_qa.rs:273:9
[INFO] [stdout]     |
[INFO] [stdout] 273 |     let area = Rect::new(0, 0, 30, 15);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task69_state_dependent_sprite_display_qa.rs:361:9
[INFO] [stdout]     |
[INFO] [stdout] 361 |     let area = Rect::new(0, 0, 30, 15);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `test_pet` is assigned to, but never used
[INFO] [stdout]    --> tests/task16_component_area_management_integration_qa.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |     let mut test_pet = pet;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_test_pet` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `test_pet` is never read
[INFO] [stdout]    --> tests/task16_component_area_management_integration_qa.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 291 |     test_pet.happiness = 75;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `test_pet` is never read
[INFO] [stdout]    --> tests/task16_component_area_management_integration_qa.rs:292:5
[INFO] [stdout]     |
[INFO] [stdout] 292 |     test_pet.health = 50;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `test_pet` is never read
[INFO] [stdout]    --> tests/task16_component_area_management_integration_qa.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     test_pet.energy = 25;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `test_pet` is never read
[INFO] [stdout]    --> tests/task16_component_area_management_integration_qa.rs:294:5
[INFO] [stdout]     |
[INFO] [stdout] 294 |     test_pet.hunger = 60;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `test_pet` is never read
[INFO] [stdout]    --> tests/task16_component_area_management_integration_qa.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 295 |     test_pet.cleanliness = 90;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/e2e_tests.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let mut pet = Pet::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: variable does not need to be mutable
[INFO] [stdout]    --> tests/e2e_tests.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut action_cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action_cooldowns`
[INFO] [stdout]    --> tests/e2e_tests.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut action_cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_action_cooldowns`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_health`
[INFO] [stdout]    --> tests/e2e_tests.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let original_health = pet.health;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_health`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_happiness`
[INFO] [stdout]    --> tests/e2e_tests.rs:541:9
[INFO] [stdout]     |
[INFO] [stdout] 541 |     let original_happiness = pet.happiness;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_happiness`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_evolution_stage`
[INFO] [stdout]    --> tests/e2e_tests.rs:542:9
[INFO] [stdout]     |
[INFO] [stdout] 542 |     let original_evolution_stage = pet.evolution_stage;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_evolution_stage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pre_save_timestamp`
[INFO] [stdout]    --> tests/e2e_tests.rs:584:9
[INFO] [stdout]     |
[INFO] [stdout] 584 |     let pre_save_timestamp = save_data.pet.last_updated;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_save_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/e2e_tests.rs:565:13
[INFO] [stdout]     |
[INFO] [stdout] 565 |     assert!(pet.health >= 0 && pet.health <= 100,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/e2e_tests.rs:567:13
[INFO] [stdout]     |
[INFO] [stdout] 567 |     assert!(pet.happiness >= 0 && pet.happiness <= 100,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/e2e_tests.rs:569:13
[INFO] [stdout]     |
[INFO] [stdout] 569 |     assert!(pet.hunger >= 0 && pet.hunger <= 100,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/e2e_tests.rs:571:13
[INFO] [stdout]     |
[INFO] [stdout] 571 |     assert!(pet.energy >= 0 && pet.energy <= 100,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/e2e_tests.rs:573:13
[INFO] [stdout]     |
[INFO] [stdout] 573 |     assert!(pet.cleanliness >= 0 && pet.cleanliness <= 100,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/task87_main_loop_qa.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut pet = Pet::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 variable: `initial_happiness`
[INFO] [stdout]   --> tests/task87_main_loop_qa.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let initial_happiness = save_data.pet.happiness;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_happiness`
[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/task87_main_loop_qa.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let mut pet = Pet::new();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task87_main_loop_qa.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let mut pet = Pet::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task87_main_loop_qa.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |     let mut pet = Pet::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `needs_update`
[INFO] [stdout]    --> tests/task87_main_loop_qa.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let needs_update = display_manager.needs_update(&save_data.pet);
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task87_main_loop_qa.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |     let mut pet = Pet::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_energy`
[INFO] [stdout]    --> tests/task87_main_loop_qa.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |     let initial_energy = save_data.pet.energy;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_energy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task87_main_loop_qa.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |     let mut pet = Pet::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `needs_update`
[INFO] [stdout]    --> tests/task87_main_loop_qa.rs:397:13
[INFO] [stdout]     |
[INFO] [stdout] 397 |         let needs_update = display_manager.needs_update(&save_data.pet);
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task28_stat_predictions_integration_qa.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let mut display_manager = DisplayManager::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: variable does not need to be mutable
[INFO] [stdout]    --> tests/task28_stat_predictions_integration_qa.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let mut display_manager = DisplayManager::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task28_stat_predictions_integration_qa.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let mut display_manager = DisplayManager::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task28_stat_predictions_integration_qa.rs:439:13
[INFO] [stdout]     |
[INFO] [stdout] 439 |         let mut display_manager = DisplayManager::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task28_stat_predictions_integration_qa.rs:284:17
[INFO] [stdout]     |
[INFO] [stdout] 284 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task28_stat_predictions_integration_qa.rs:289:35
[INFO] [stdout]     |
[INFO] [stdout] 289 |         let tracking_api_exists = stat_tracker.history_size() >= 0; // API is functional
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task28_stat_predictions_integration_qa.rs:455:17
[INFO] [stdout]     |
[INFO] [stdout] 455 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task29_care_quality_assessment_integration_qa.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |             assert!(stats.total_renders >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task29_care_quality_assessment_integration_qa.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task29_care_quality_assessment_integration_qa.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task29_care_quality_assessment_integration_qa.rs:300:29
[INFO] [stdout]     |
[INFO] [stdout] 300 |                     assert!(stats.total_renders >= 0,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task29_care_quality_assessment_integration_qa.rs:365:17
[INFO] [stdout]     |
[INFO] [stdout] 365 |         assert!(areas_for_improvement.len() >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task29_care_quality_assessment_integration_qa.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 227 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_check`
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     let first_check = display_manager.needs_update(&save_data.pet);
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_check`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second_check`
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |     let second_check = display_manager.needs_update(&save_data.pet);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_second_check`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `needs_update`
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |     let needs_update = display_manager.needs_update(&save_data.pet);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats_mode`
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let stats_mode = display_manager.get_stats_display_mode();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stats_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |     assert!(stats.total_renders >= 0, "Should track render count");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:214:13
[INFO] [stdout]     |
[INFO] [stdout] 214 |     assert!(stats.total_renders >= 0, "Should maintain valid render count");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:282:13
[INFO] [stdout]     |
[INFO] [stdout] 282 |     assert!(display_manager.get_stats().total_renders >= 0,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task37_conditional_rendering_integration_qa.rs:393:13
[INFO] [stdout]     |
[INFO] [stdout] 393 |     assert!(final_stats.total_renders >= 0, "Should maintain valid stats throughout testing");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]   --> tests/task15_responsive_layout_modes_integration_qa.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let save_data = create_test_save_data(pet);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cooldowns`
[INFO] [stdout]   --> tests/task15_responsive_layout_modes_integration_qa.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let cooldowns = ActionCooldowns::default();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |         let save_data = create_test_save_data(pet);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `perf_stats`
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let perf_stats = display_manager.get_performance_stats();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_perf_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `activity_level`
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let activity_level = display_manager.get_activity_level();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_activity_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let save_data = create_test_save_data(pet);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:483:13
[INFO] [stdout]     |
[INFO] [stdout] 483 |         let save_data = create_test_save_data(pet);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cooldowns`
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:484:13
[INFO] [stdout]     |
[INFO] [stdout] 484 |         let cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> tests/task15_responsive_layout_modes_integration_qa.rs:73:42
[INFO] [stdout]    |
[INFO] [stdout] 73 |             assert!(layout.is_valid() || layout.pet_display.width >= 0,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |             assert!(layout_with_config.pet_display.width >= 0 && layout_with_config.pet_display.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:101:66
[INFO] [stdout]     |
[INFO] [stdout] 101 |             assert!(layout_with_config.pet_display.width >= 0 && layout_with_config.pet_display.height >= 0,
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/task15_responsive_layout_modes_integration_qa.rs:287:54
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 assert!(current_layout.is_valid() || current_layout.pet_display.width >= 0,
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task11_main_loop_evolution_integration_e2e.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let mut pet = Pet::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 variable: `original_stats`
[INFO] [stdout]    --> tests/task64_action_selection_execution_qa.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let original_stats = (pet.health, pet.hunger, pet.happiness, pet.energy, pet.cleanliness);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_stats`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_stats`
[INFO] [stdout]    --> tests/task64_action_selection_execution_qa.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let final_stats = (pet.health, pet.hunger, pet.happiness, pet.energy, pet.cleanliness);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> tests/task70_evolution_stage_sprite_switching_qa.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let area = Rect::new(0, 0, 40, 20);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_trends`
[INFO] [stdout]    --> tests/task25_simple_integration_qa.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let has_trends = display_manager.has_trend_data();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_trends`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_pet` is never used
[INFO] [stdout]   --> tests/task25_simple_integration_qa.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn create_test_pet() -> Pet {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> tests/task25_simple_integration_qa.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |     assert!(stat_tracker.history_size() >= 0, "Stat tracker should have valid history size");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> tests/task14_display_manager_layout_fields_qa.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let save_data = create_test_save_data();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pet` is assigned to, but never used
[INFO] [stdout]    --> src/ui/pet_display.rs:511:13
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let mut pet = create_test_pet();
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pet` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pet` is never read
[INFO] [stdout]    --> src/ui/pet_display.rs:524:13
[INFO] [stdout]     |
[INFO] [stdout] 524 |             pet.evolution_stage = stage;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (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/ui/cooldown_display.rs:291:29
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line> {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here                                        ^^^^ the same lifetime is hidden 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] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line<'_>> {
[INFO] [stdout]     |                                                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line {
[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] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:350:28
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line {
[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] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comprehensive_stats`
[INFO] [stdout]    --> tests/task2_global_error_handler_integration_qa.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |     let comprehensive_stats = error_handler.get_stats();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comprehensive_stats`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comprehensive_stats`
[INFO] [stdout]    --> tests/task2_global_error_handler_integration_qa.rs:521:9
[INFO] [stdout]     |
[INFO] [stdout] 521 |     let comprehensive_stats = comprehensive_handler.get_stats();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comprehensive_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats_panel`
[INFO] [stdout]    --> tests/task26_stats_display_mode_integration_qa.rs:306:9
[INFO] [stdout]     |
[INFO] [stdout] 306 |     let stats_panel = StatsPanel::new(area);
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stats_panel`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pet`
[INFO] [stdout]    --> tests/task26_stats_display_mode_integration_qa.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 307 |     let pet = create_test_pet();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut feedback_manager = FeedbackManager::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 variable: `layout`
[INFO] [stdout]    --> src/ui/mod.rs:284:13
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let layout = UiLayout::new(full_area);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cooldowns`
[INFO] [stdout]    --> src/ui/mod.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cooldowns`
[INFO] [stdout]    --> src/ui/mod.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]    --> src/ui/mod.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let layout = UiLayout::new(full_area);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats_panel`
[INFO] [stdout]    --> src/ui/mod.rs:324:13
[INFO] [stdout]     |
[INFO] [stdout] 324 |         let stats_panel = StatsPanel::new(full_area);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stats_panel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_area`
[INFO] [stdout]    --> src/ui/mod.rs:325:13
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let status_area = StatusArea::new(full_area, true, "Integration Test".to_string());
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut error_handler = ErrorHandler::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |         let mut error_display = ErrorDisplay::new(area, true, "Error Test".to_string());
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_display`
[INFO] [stdout]    --> src/ui/mod.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |         let mut error_display = ErrorDisplay::new(area, true, "Error Test".to_string());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> src/ui/mod.rs:470:13
[INFO] [stdout]     |
[INFO] [stdout] 470 |         let save_data = create_test_save_data();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:526:13
[INFO] [stdout]     |
[INFO] [stdout] 526 |         let mut feedback_manager = FeedbackManager::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> src/ui/mod.rs:500:13
[INFO] [stdout]     |
[INFO] [stdout] 500 |         let area = Rect::new(0, 0, 80, 24);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_save_data` is never used
[INFO] [stdout]     --> src/ui/display_manager.rs:2552:8
[INFO] [stdout]      |
[INFO] [stdout] 2552 |     fn create_test_save_data() -> SaveData {
[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_test_pet` is never used
[INFO] [stdout]    --> src/ui/stat_bars.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 |     fn create_test_pet() -> Pet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:291:29
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line> {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here                                        ^^^^ the same lifetime is hidden 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] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line<'_>> {
[INFO] [stdout]     |                                                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line {
[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] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:350:28
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line {
[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] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/display_manager.rs:3169:17
[INFO] [stdout]      |
[INFO] [stdout] 3169 |         assert!(final_stats.partial_updates >= 0 || final_stats.total_renders >= 0,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/display_manager.rs:3169:53
[INFO] [stdout]      |
[INFO] [stdout] 3169 |         assert!(final_stats.partial_updates >= 0 || final_stats.total_renders >= 0,
[INFO] [stdout]      |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:673:21
[INFO] [stdout]     |
[INFO] [stdout] 673 |             assert!(layout.pet_display.width >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:675:21
[INFO] [stdout]     |
[INFO] [stdout] 675 |             assert!(layout.stats_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:677:21
[INFO] [stdout]     |
[INFO] [stdout] 677 |             assert!(layout.actions_area.width >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:679:21
[INFO] [stdout]     |
[INFO] [stdout] 679 |             assert!(layout.messages_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/task35_evolution_popup_triggering_qa.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Baby);
[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: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:746:39
[INFO] [stdout]     |
[INFO] [stdout] 746 |             let _pet_display_exists = layout.pet_display.width >= 0 && layout.pet_display.height >= 0;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:746:72
[INFO] [stdout]     |
[INFO] [stdout] 746 |             let _pet_display_exists = layout.pet_display.width >= 0 && layout.pet_display.height >= 0;
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:747:38
[INFO] [stdout]     |
[INFO] [stdout] 747 |             let _stats_area_exists = layout.stats_area.width >= 0 && layout.stats_area.height >= 0;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:747:70
[INFO] [stdout]     |
[INFO] [stdout] 747 |             let _stats_area_exists = layout.stats_area.width >= 0 && layout.stats_area.height >= 0;
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:748:40
[INFO] [stdout]     |
[INFO] [stdout] 748 |             let _actions_area_exists = layout.actions_area.width >= 0 && layout.actions_area.height >= 0;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_points`
[INFO] [stdout]   --> tests/task35_evolution_popup_triggering_qa.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let initial_points = save_data.pet.evolution_points;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_points`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:748:74
[INFO] [stdout]     |
[INFO] [stdout] 748 |             let _actions_area_exists = layout.actions_area.width >= 0 && layout.actions_area.height >= 0;
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:749:41
[INFO] [stdout]     |
[INFO] [stdout] 749 |             let _messages_area_exists = layout.messages_area.width >= 0 && layout.messages_area.height >= 0;
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:749:76
[INFO] [stdout]     |
[INFO] [stdout] 749 |             let _messages_area_exists = layout.messages_area.width >= 0 && layout.messages_area.height >= 0;
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task35_evolution_popup_triggering_qa.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Baby);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:910:21
[INFO] [stdout]     |
[INFO] [stdout] 910 |             assert!(minimal_layout.pet_display.width >= 0, "Minimal layout pet display should not crash for {}x{}", width, height);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:911:21
[INFO] [stdout]     |
[INFO] [stdout] 911 |             assert!(minimal_layout.stats_area.height >= 0, "Minimal layout stats area should not crash for {}x{}", width, height);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:912:21
[INFO] [stdout]     |
[INFO] [stdout] 912 |             assert!(minimal_layout.actions_area.width >= 0, "Minimal layout actions area should not crash for {}x{}", width, height);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:913:21
[INFO] [stdout]     |
[INFO] [stdout] 913 | ...   assert!(minimal_layout.messages_area.height >= 0, "Minimal layout messages area should not crash for {}x{}", width, height);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task35_evolution_popup_triggering_qa.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Child);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:951:21
[INFO] [stdout]     |
[INFO] [stdout] 951 |             assert!(layout.pet_display.width >= 0, "{}: Pet display should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:952:21
[INFO] [stdout]     |
[INFO] [stdout] 952 |             assert!(layout.stats_area.height >= 0, "{}: Stats area should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_pet_update` is never read
[INFO] [stdout]    --> tests/task35_evolution_popup_triggering_qa.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         last_pet_update = now;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:953:21
[INFO] [stdout]     |
[INFO] [stdout] 953 |             assert!(layout.actions_area.width >= 0, "{}: Actions area should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:954:21
[INFO] [stdout]     |
[INFO] [stdout] 954 |             assert!(layout.messages_area.height >= 0, "{}: Messages area should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task35_evolution_popup_triggering_qa.rs:338:9
[INFO] [stdout]     |
[INFO] [stdout] 338 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Teen);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:986:21
[INFO] [stdout]     |
[INFO] [stdout] 986 |             assert!(layout.pet_display.width >= 0 && layout.pet_display.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/task35_evolution_popup_triggering_qa.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Adult);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:986:54
[INFO] [stdout]     |
[INFO] [stdout] 986 |             assert!(layout.pet_display.width >= 0 && layout.pet_display.height >= 0,
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_pet` is never used
[INFO] [stdout]   --> tests/task35_evolution_popup_triggering_qa.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn create_test_pet() -> Pet {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:988:21
[INFO] [stdout]     |
[INFO] [stdout] 988 |             assert!(layout.stats_area.width >= 0 && layout.stats_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:988:53
[INFO] [stdout]     |
[INFO] [stdout] 988 |             assert!(layout.stats_area.width >= 0 && layout.stats_area.height >= 0,
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:990:21
[INFO] [stdout]     |
[INFO] [stdout] 990 |             assert!(layout.actions_area.width >= 0 && layout.actions_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:990:55
[INFO] [stdout]     |
[INFO] [stdout] 990 |             assert!(layout.actions_area.width >= 0 && layout.actions_area.height >= 0,
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:992:21
[INFO] [stdout]     |
[INFO] [stdout] 992 |             assert!(layout.messages_area.width >= 0 && layout.messages_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:992:56
[INFO] [stdout]     |
[INFO] [stdout] 992 |             assert!(layout.messages_area.width >= 0 && layout.messages_area.height >= 0,
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/layout.rs:1047:17
[INFO] [stdout]      |
[INFO] [stdout] 1047 |         assert!(centered_popup.x >= 0 && centered_popup.x + centered_popup.width <= frame_size.width,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/layout.rs:1049:17
[INFO] [stdout]      |
[INFO] [stdout] 1049 |         assert!(centered_popup.y >= 0 && centered_popup.y + centered_popup.height <= frame_size.height,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |         assert!(stats.total_active >= 0, "Should have valid feedback count");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 345 |         assert!(initial_stats.total_errors >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:346:17
[INFO] [stdout]     |
[INFO] [stdout] 346 |         assert!(initial_stats.recovery_attempts >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:521:17
[INFO] [stdout]     |
[INFO] [stdout] 521 |         assert!(stats.total_renders >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:522:17
[INFO] [stdout]     |
[INFO] [stdout] 522 |         assert!(stats.cache_hits >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:523:17
[INFO] [stdout]     |
[INFO] [stdout] 523 |         assert!(stats.cache_misses >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:528:17
[INFO] [stdout]     |
[INFO] [stdout] 528 |         assert!(feedback_stats.total_active >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:529:17
[INFO] [stdout]     |
[INFO] [stdout] 529 |         assert!(feedback_stats.button_presses >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::style::Color`
[INFO] [stdout]  --> tests/task76_action_cooldown_visual_indicators_qa.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ratatui::style::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_mock_cooldown_info` is never used
[INFO] [stdout]   --> tests/task76_action_cooldown_visual_indicators_qa.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn create_mock_cooldown_info(action: PlayerAction, is_on_cooldown: bool, remaining: Option<i64>, total: i64) -> CooldownInfo {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pet` is assigned to, but never used
[INFO] [stdout]    --> src/ui/pet_display.rs:511:13
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let mut pet = create_test_pet();
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pet` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pet` is never read
[INFO] [stdout]    --> src/ui/pet_display.rs:524:13
[INFO] [stdout]     |
[INFO] [stdout] 524 |             pet.evolution_stage = stage;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut feedback_manager = FeedbackManager::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 variable: `layout`
[INFO] [stdout]    --> src/ui/mod.rs:284:13
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let layout = UiLayout::new(full_area);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cooldowns`
[INFO] [stdout]    --> src/ui/mod.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cooldowns`
[INFO] [stdout]    --> src/ui/mod.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut cooldowns = ActionCooldowns::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]    --> src/ui/mod.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let layout = UiLayout::new(full_area);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats_panel`
[INFO] [stdout]    --> src/ui/mod.rs:324:13
[INFO] [stdout]     |
[INFO] [stdout] 324 |         let stats_panel = StatsPanel::new(full_area);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stats_panel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_area`
[INFO] [stdout]    --> src/ui/mod.rs:325:13
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let status_area = StatusArea::new(full_area, true, "Integration Test".to_string());
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut error_handler = ErrorHandler::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |         let mut error_display = ErrorDisplay::new(area, true, "Error Test".to_string());
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_display`
[INFO] [stdout]    --> src/ui/mod.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |         let mut error_display = ErrorDisplay::new(area, true, "Error Test".to_string());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save_data`
[INFO] [stdout]    --> src/ui/mod.rs:470:13
[INFO] [stdout]     |
[INFO] [stdout] 470 |         let save_data = create_test_save_data();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/mod.rs:526:13
[INFO] [stdout]     |
[INFO] [stdout] 526 |         let mut feedback_manager = FeedbackManager::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> src/ui/mod.rs:500:13
[INFO] [stdout]     |
[INFO] [stdout] 500 |         let area = Rect::new(0, 0, 80, 24);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1495:13
[INFO] [stdout]      |
[INFO] [stdout] 1495 |         let mut pet = Pet::new();
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1537:13
[INFO] [stdout]      |
[INFO] [stdout] 1537 |         let mut pet = Pet::new();
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1598:13
[INFO] [stdout]      |
[INFO] [stdout] 1598 |         let mut pet = Pet::new();
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_save_data` is never used
[INFO] [stdout]     --> src/ui/display_manager.rs:2552:8
[INFO] [stdout]      |
[INFO] [stdout] 2552 |     fn create_test_save_data() -> SaveData {
[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_test_pet` is never used
[INFO] [stdout]    --> src/ui/stat_bars.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 |     fn create_test_pet() -> Pet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:291:29
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line> {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here                                        ^^^^ the same lifetime is hidden 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] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line<'_>> {
[INFO] [stdout]     |                                                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line {
[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] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ui/cooldown_display.rs:350:28
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line {
[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] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stdout]     |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/display_manager.rs:3169:17
[INFO] [stdout]      |
[INFO] [stdout] 3169 |         assert!(final_stats.partial_updates >= 0 || final_stats.total_renders >= 0,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/display_manager.rs:3169:53
[INFO] [stdout]      |
[INFO] [stdout] 3169 |         assert!(final_stats.partial_updates >= 0 || final_stats.total_renders >= 0,
[INFO] [stdout]      |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:673:21
[INFO] [stdout]     |
[INFO] [stdout] 673 |             assert!(layout.pet_display.width >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:675:21
[INFO] [stdout]     |
[INFO] [stdout] 675 |             assert!(layout.stats_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:677:21
[INFO] [stdout]     |
[INFO] [stdout] 677 |             assert!(layout.actions_area.width >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:679:21
[INFO] [stdout]     |
[INFO] [stdout] 679 |             assert!(layout.messages_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:746:39
[INFO] [stdout]     |
[INFO] [stdout] 746 |             let _pet_display_exists = layout.pet_display.width >= 0 && layout.pet_display.height >= 0;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:746:72
[INFO] [stdout]     |
[INFO] [stdout] 746 |             let _pet_display_exists = layout.pet_display.width >= 0 && layout.pet_display.height >= 0;
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:747:38
[INFO] [stdout]     |
[INFO] [stdout] 747 |             let _stats_area_exists = layout.stats_area.width >= 0 && layout.stats_area.height >= 0;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:747:70
[INFO] [stdout]     |
[INFO] [stdout] 747 |             let _stats_area_exists = layout.stats_area.width >= 0 && layout.stats_area.height >= 0;
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:748:40
[INFO] [stdout]     |
[INFO] [stdout] 748 |             let _actions_area_exists = layout.actions_area.width >= 0 && layout.actions_area.height >= 0;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:748:74
[INFO] [stdout]     |
[INFO] [stdout] 748 |             let _actions_area_exists = layout.actions_area.width >= 0 && layout.actions_area.height >= 0;
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:749:41
[INFO] [stdout]     |
[INFO] [stdout] 749 |             let _messages_area_exists = layout.messages_area.width >= 0 && layout.messages_area.height >= 0;
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:749:76
[INFO] [stdout]     |
[INFO] [stdout] 749 |             let _messages_area_exists = layout.messages_area.width >= 0 && layout.messages_area.height >= 0;
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:910:21
[INFO] [stdout]     |
[INFO] [stdout] 910 |             assert!(minimal_layout.pet_display.width >= 0, "Minimal layout pet display should not crash for {}x{}", width, height);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:911:21
[INFO] [stdout]     |
[INFO] [stdout] 911 |             assert!(minimal_layout.stats_area.height >= 0, "Minimal layout stats area should not crash for {}x{}", width, height);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:912:21
[INFO] [stdout]     |
[INFO] [stdout] 912 |             assert!(minimal_layout.actions_area.width >= 0, "Minimal layout actions area should not crash for {}x{}", width, height);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:913:21
[INFO] [stdout]     |
[INFO] [stdout] 913 | ...   assert!(minimal_layout.messages_area.height >= 0, "Minimal layout messages area should not crash for {}x{}", width, height);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:951:21
[INFO] [stdout]     |
[INFO] [stdout] 951 |             assert!(layout.pet_display.width >= 0, "{}: Pet display should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:952:21
[INFO] [stdout]     |
[INFO] [stdout] 952 |             assert!(layout.stats_area.height >= 0, "{}: Stats area should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:953:21
[INFO] [stdout]     |
[INFO] [stdout] 953 |             assert!(layout.actions_area.width >= 0, "{}: Actions area should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:954:21
[INFO] [stdout]     |
[INFO] [stdout] 954 |             assert!(layout.messages_area.height >= 0, "{}: Messages area should remain valid", description);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:986:21
[INFO] [stdout]     |
[INFO] [stdout] 986 |             assert!(layout.pet_display.width >= 0 && layout.pet_display.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:986:54
[INFO] [stdout]     |
[INFO] [stdout] 986 |             assert!(layout.pet_display.width >= 0 && layout.pet_display.height >= 0,
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:988:21
[INFO] [stdout]     |
[INFO] [stdout] 988 |             assert!(layout.stats_area.width >= 0 && layout.stats_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:988:53
[INFO] [stdout]     |
[INFO] [stdout] 988 |             assert!(layout.stats_area.width >= 0 && layout.stats_area.height >= 0,
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:990:21
[INFO] [stdout]     |
[INFO] [stdout] 990 |             assert!(layout.actions_area.width >= 0 && layout.actions_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:990:55
[INFO] [stdout]     |
[INFO] [stdout] 990 |             assert!(layout.actions_area.width >= 0 && layout.actions_area.height >= 0,
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:992:21
[INFO] [stdout]     |
[INFO] [stdout] 992 |             assert!(layout.messages_area.width >= 0 && layout.messages_area.height >= 0,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/layout.rs:992:56
[INFO] [stdout]     |
[INFO] [stdout] 992 |             assert!(layout.messages_area.width >= 0 && layout.messages_area.height >= 0,
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/layout.rs:1047:17
[INFO] [stdout]      |
[INFO] [stdout] 1047 |         assert!(centered_popup.x >= 0 && centered_popup.x + centered_popup.width <= frame_size.width,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/ui/layout.rs:1049:17
[INFO] [stdout]      |
[INFO] [stdout] 1049 |         assert!(centered_popup.y >= 0 && centered_popup.y + centered_popup.height <= frame_size.height,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |         assert!(stats.total_active >= 0, "Should have valid feedback count");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 345 |         assert!(initial_stats.total_errors >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:346:17
[INFO] [stdout]     |
[INFO] [stdout] 346 |         assert!(initial_stats.recovery_attempts >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:521:17
[INFO] [stdout]     |
[INFO] [stdout] 521 |         assert!(stats.total_renders >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:522:17
[INFO] [stdout]     |
[INFO] [stdout] 522 |         assert!(stats.cache_hits >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:523:17
[INFO] [stdout]     |
[INFO] [stdout] 523 |         assert!(stats.cache_misses >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:528:17
[INFO] [stdout]     |
[INFO] [stdout] 528 |         assert!(feedback_stats.total_active >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ui/mod.rs:529:17
[INFO] [stdout]     |
[INFO] [stdout] 529 |         assert!(feedback_stats.button_presses >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 27.40s
[INFO] running `Command { std: "docker" "inspect" "6894f3497c00c2eb49a4fb3f6a781f2aea7a48b65a02d6efae87314c4deb4be9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6894f3497c00c2eb49a4fb3f6a781f2aea7a48b65a02d6efae87314c4deb4be9", kill_on_drop: false }`
[INFO] [stdout] 6894f3497c00c2eb49a4fb3f6a781f2aea7a48b65a02d6efae87314c4deb4be9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c5fc236d840b51e939c0b66e71bf97a30be75b1077c743d3e5a16e2d8ba31773
[INFO] running `Command { std: "docker" "start" "-a" "c5fc236d840b51e939c0b66e71bf97a30be75b1077c743d3e5a16e2d8ba31773", kill_on_drop: false }`
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ui/cooldown_display.rs:291:29
[INFO] [stderr]     |
[INFO] [stderr] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line> {
[INFO] [stderr]     |                             ^^^^^ the lifetime is elided here                                        ^^^^ the same lifetime is hidden 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] 291 |     fn create_content_lines(&self, cooldown_info: &[CooldownInfo], mode: CooldownDisplayMode) -> Vec<Line<'_>> {
[INFO] [stderr]     |                                                                                                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ui/cooldown_display.rs:320:29
[INFO] [stderr]     |
[INFO] [stderr] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line {
[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] 320 |     fn create_detailed_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stderr]     |                                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ui/cooldown_display.rs:350:28
[INFO] [stderr]     |
[INFO] [stderr] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line {
[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] 350 |     fn create_compact_line(&self, info: &CooldownInfo) -> Line<'_> {
[INFO] [stderr]     |                                                               ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `digipet` (lib) generated 3 warnings (run `cargo fix --lib -p digipet` to apply 3 suggestions)
[INFO] [stderr] warning: `digipet` (bin "digipet") generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: unused variable: `stats_panel`
[INFO] [stderr]    --> tests/task26_stats_display_mode_integration_qa.rs:306:9
[INFO] [stderr]     |
[INFO] [stderr] 306 |     let stats_panel = StatsPanel::new(area);
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stats_panel`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task26_stats_display_mode_integration_qa.rs:307:9
[INFO] [stderr]     |
[INFO] [stderr] 307 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task69_state_dependent_sprite_display_qa.rs:273:9
[INFO] [stderr]     |
[INFO] [stderr] 273 |     let area = Rect::new(0, 0, 30, 15);
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task69_state_dependent_sprite_display_qa.rs:361:9
[INFO] [stderr]     |
[INFO] [stderr] 361 |     let area = Rect::new(0, 0, 30, 15);
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/task36_evolution_checking_main_loop_qa.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Baby);
[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/task36_evolution_checking_main_loop_qa.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Child);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task36_evolution_checking_main_loop_qa.rs:159:9
[INFO] [stderr]     |
[INFO] [stderr] 159 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Teen);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task36_evolution_checking_main_loop_qa.rs:197:9
[INFO] [stderr]     |
[INFO] [stderr] 197 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Adult);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task36_evolution_checking_main_loop_qa.rs:205:9
[INFO] [stderr]     |
[INFO] [stderr] 205 |     let mut action_cooldowns = ActionCooldowns::default();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `previous_state`
[INFO] [stderr]    --> tests/task36_evolution_checking_main_loop_qa.rs:224:17
[INFO] [stderr]     |
[INFO] [stderr] 224 |             let previous_state = save_data.pet_state;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_state`
[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/task36_evolution_checking_main_loop_qa.rs:271:9
[INFO] [stderr]     |
[INFO] [stderr] 271 |     let mut pet = Pet::new(); // Default pet with insufficient evolution requirements
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task36_evolution_checking_main_loop_qa.rs:371:9
[INFO] [stderr]     |
[INFO] [stderr] 371 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Baby);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task36_evolution_checking_main_loop_qa.rs:405:9
[INFO] [stderr]     |
[INFO] [stderr] 405 |     let mut pet = create_evolution_ready_pet(EvolutionStage::Child);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/task87_main_loop_qa.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 25 |     let mut pet = Pet::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 variable: `initial_happiness`
[INFO] [stderr]   --> tests/task87_main_loop_qa.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |     let initial_happiness = save_data.pet.happiness;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_happiness`
[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/task87_main_loop_qa.rs:94:9
[INFO] [stderr]    |
[INFO] [stderr] 94 |     let mut pet = Pet::new();
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task87_main_loop_qa.rs:141:9
[INFO] [stderr]     |
[INFO] [stderr] 141 |     let mut pet = Pet::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task87_main_loop_qa.rs:191:9
[INFO] [stderr]     |
[INFO] [stderr] 191 |     let mut pet = Pet::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `needs_update`
[INFO] [stderr]    --> tests/task87_main_loop_qa.rs:221:13
[INFO] [stderr]     |
[INFO] [stderr] 221 |         let needs_update = display_manager.needs_update(&save_data.pet);
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task87_main_loop_qa.rs:237:9
[INFO] [stderr]     |
[INFO] [stderr] 237 |     let mut pet = Pet::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `initial_energy`
[INFO] [stderr]    --> tests/task87_main_loop_qa.rs:244:9
[INFO] [stderr]     |
[INFO] [stderr] 244 |     let initial_energy = save_data.pet.energy;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_energy`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task87_main_loop_qa.rs:371:9
[INFO] [stderr]     |
[INFO] [stderr] 371 |     let mut pet = Pet::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `needs_update`
[INFO] [stderr]    --> tests/task87_main_loop_qa.rs:397:13
[INFO] [stderr]     |
[INFO] [stderr] 397 |         let needs_update = display_manager.needs_update(&save_data.pet);
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task70_evolution_stage_sprite_switching_qa.rs:152:13
[INFO] [stderr]     |
[INFO] [stderr] 152 |         let area = Rect::new(0, 0, 40, 20);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[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/task11_main_loop_evolution_integration_e2e.rs:165:9
[INFO] [stderr]     |
[INFO] [stderr] 165 |     let mut pet = Pet::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: `digipet` (test "task26_stats_display_mode_integration_qa") generated 2 warnings (run `cargo fix --test "task26_stats_display_mode_integration_qa" -p digipet` to apply 2 suggestions)
[INFO] [stderr] warning: `digipet` (test "task69_state_dependent_sprite_display_qa") generated 2 warnings (run `cargo fix --test "task69_state_dependent_sprite_display_qa" -p digipet` to apply 2 suggestions)
[INFO] [stderr] warning: `digipet` (test "task36_evolution_checking_main_loop_qa") generated 9 warnings (run `cargo fix --test "task36_evolution_checking_main_loop_qa" -p digipet` to apply 9 suggestions)
[INFO] [stderr] warning: `digipet` (test "task87_main_loop_qa") generated 10 warnings (run `cargo fix --test "task87_main_loop_qa" -p digipet` to apply 10 suggestions)
[INFO] [stderr] warning: `digipet` (test "task70_evolution_stage_sprite_switching_qa") generated 1 warning (run `cargo fix --test "task70_evolution_stage_sprite_switching_qa" -p digipet` to apply 1 suggestion)
[INFO] [stderr] warning: `digipet` (test "task11_main_loop_evolution_integration_e2e") generated 1 warning (run `cargo fix --test "task11_main_loop_evolution_integration_e2e" -p digipet` to apply 1 suggestion)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task28_stat_predictions_integration_qa.rs:157:13
[INFO] [stderr]     |
[INFO] [stderr] 157 |         let mut display_manager = DisplayManager::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: variable does not need to be mutable
[INFO] [stderr]    --> tests/task28_stat_predictions_integration_qa.rs:267:13
[INFO] [stderr]     |
[INFO] [stderr] 267 |         let mut display_manager = DisplayManager::new();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task28_stat_predictions_integration_qa.rs:333:13
[INFO] [stderr]     |
[INFO] [stderr] 333 |         let mut display_manager = DisplayManager::new();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task28_stat_predictions_integration_qa.rs:439:13
[INFO] [stderr]     |
[INFO] [stderr] 439 |         let mut display_manager = DisplayManager::new();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task28_stat_predictions_integration_qa.rs:284:17
[INFO] [stderr]     |
[INFO] [stderr] 284 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task28_stat_predictions_integration_qa.rs:289:35
[INFO] [stderr]     |
[INFO] [stderr] 289 |         let tracking_api_exists = stat_tracker.history_size() >= 0; // API is functional
[INFO] [stderr]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task28_stat_predictions_integration_qa.rs:455:17
[INFO] [stderr]     |
[INFO] [stderr] 455 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task86_rendering_performance_optimization_qa.rs:151:9
[INFO] [stderr]     |
[INFO] [stderr] 151 |     let mut manager = DisplayManager::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: `ratatui::style::Color`
[INFO] [stderr]  --> tests/task76_action_cooldown_visual_indicators_qa.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use ratatui::style::Color;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_mock_cooldown_info` is never used
[INFO] [stderr]   --> tests/task76_action_cooldown_visual_indicators_qa.rs:21:4
[INFO] [stderr]    |
[INFO] [stderr] 21 | fn create_mock_cooldown_info(action: PlayerAction, is_on_cooldown: bool, remaining: Option<i64>, total: i64) -> CooldownInfo {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/layout_system_integration_qa.rs:183:17
[INFO] [stderr]     |
[INFO] [stderr] 183 |         assert!(current_layout.pet_display.width >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/layout_system_integration_qa.rs:185:17
[INFO] [stderr]     |
[INFO] [stderr] 185 |         assert!(current_layout.stats_area.height >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/layout_system_integration_qa.rs:640:17
[INFO] [stderr]     |
[INFO] [stderr] 640 |         assert!(layout.pet_display.width >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/layout_system_integration_qa.rs:642:17
[INFO] [stderr]     |
[INFO] [stderr] 642 |         assert!(layout.stats_area.height >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/layout_system_integration_qa.rs:644:17
[INFO] [stderr]     |
[INFO] [stderr] 644 |         assert!(layout.actions_area.width >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/layout_system_integration_qa.rs:646:17
[INFO] [stderr]     |
[INFO] [stderr] 646 |         assert!(layout.messages_area.height >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]   --> tests/task15_responsive_layout_modes_integration_qa.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |         let save_data = create_test_save_data(pet);
[INFO] [stderr]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cooldowns`
[INFO] [stderr]   --> tests/task15_responsive_layout_modes_integration_qa.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |         let cooldowns = ActionCooldowns::default();
[INFO] [stderr]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:187:13
[INFO] [stderr]     |
[INFO] [stderr] 187 |         let save_data = create_test_save_data(pet);
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `perf_stats`
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:196:13
[INFO] [stderr]     |
[INFO] [stderr] 196 |         let perf_stats = display_manager.get_performance_stats();
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_perf_stats`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `activity_level`
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:201:13
[INFO] [stderr]     |
[INFO] [stderr] 201 |         let activity_level = display_manager.get_activity_level();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_activity_level`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:213:13
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let save_data = create_test_save_data(pet);
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:483:13
[INFO] [stderr]     |
[INFO] [stderr] 483 |         let save_data = create_test_save_data(pet);
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cooldowns`
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:484:13
[INFO] [stderr]     |
[INFO] [stderr] 484 |         let cooldowns = ActionCooldowns::default();
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]   --> tests/task15_responsive_layout_modes_integration_qa.rs:73:42
[INFO] [stderr]    |
[INFO] [stderr] 73 |             assert!(layout.is_valid() || layout.pet_display.width >= 0,
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:101:21
[INFO] [stderr]     |
[INFO] [stderr] 101 |             assert!(layout_with_config.pet_display.width >= 0 && layout_with_config.pet_display.height >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:101:66
[INFO] [stderr]     |
[INFO] [stderr] 101 |             assert!(layout_with_config.pet_display.width >= 0 && layout_with_config.pet_display.height >= 0,
[INFO] [stderr]     |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task15_responsive_layout_modes_integration_qa.rs:287:54
[INFO] [stderr]     |
[INFO] [stderr] 287 |                 assert!(current_layout.is_valid() || current_layout.pet_display.width >= 0,
[INFO] [stderr]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `digipet` (test "task28_stat_predictions_integration_qa") generated 7 warnings (run `cargo fix --test "task28_stat_predictions_integration_qa" -p digipet` to apply 4 suggestions)
[INFO] [stderr] warning: `digipet` (test "task86_rendering_performance_optimization_qa") generated 1 warning (run `cargo fix --test "task86_rendering_performance_optimization_qa" -p digipet` to apply 1 suggestion)
[INFO] [stderr] warning: `digipet` (test "task76_action_cooldown_visual_indicators_qa") generated 2 warnings (run `cargo fix --test "task76_action_cooldown_visual_indicators_qa" -p digipet` to apply 1 suggestion)
[INFO] [stderr] warning: `digipet` (test "layout_system_integration_qa") generated 6 warnings
[INFO] [stderr] warning: `digipet` (test "task15_responsive_layout_modes_integration_qa") generated 12 warnings (run `cargo fix --test "task15_responsive_layout_modes_integration_qa" -p digipet` to apply 8 suggestions)
[INFO] [stderr] warning: variable `test_pet` is assigned to, but never used
[INFO] [stderr]    --> tests/task16_component_area_management_integration_qa.rs:290:9
[INFO] [stderr]     |
[INFO] [stderr] 290 |     let mut test_pet = pet;
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_test_pet` instead
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `test_pet` is never read
[INFO] [stderr]    --> tests/task16_component_area_management_integration_qa.rs:291:5
[INFO] [stderr]     |
[INFO] [stderr] 291 |     test_pet.happiness = 75;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `test_pet` is never read
[INFO] [stderr]    --> tests/task16_component_area_management_integration_qa.rs:292:5
[INFO] [stderr]     |
[INFO] [stderr] 292 |     test_pet.health = 50;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `test_pet` is never read
[INFO] [stderr]    --> tests/task16_component_area_management_integration_qa.rs:293:5
[INFO] [stderr]     |
[INFO] [stderr] 293 |     test_pet.energy = 25;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `test_pet` is never read
[INFO] [stderr]    --> tests/task16_component_area_management_integration_qa.rs:294:5
[INFO] [stderr]     |
[INFO] [stderr] 294 |     test_pet.hunger = 60;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `test_pet` is never read
[INFO] [stderr]    --> tests/task16_component_area_management_integration_qa.rs:295:5
[INFO] [stderr]     |
[INFO] [stderr] 295 |     test_pet.cleanliness = 90;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_area` is never used
[INFO] [stderr]   --> tests/task27_enhanced_stats_input_handling_qa.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn create_test_area() -> Rect {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task29_care_quality_assessment_integration_qa.rs:152:21
[INFO] [stderr]     |
[INFO] [stderr] 152 |             assert!(stats.total_renders >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task29_care_quality_assessment_integration_qa.rs:213:17
[INFO] [stderr]     |
[INFO] [stderr] 213 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task29_care_quality_assessment_integration_qa.rs:217:17
[INFO] [stderr]     |
[INFO] [stderr] 217 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task29_care_quality_assessment_integration_qa.rs:300:29
[INFO] [stderr]     |
[INFO] [stderr] 300 |                     assert!(stats.total_renders >= 0,
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task29_care_quality_assessment_integration_qa.rs:365:17
[INFO] [stderr]     |
[INFO] [stderr] 365 |         assert!(areas_for_improvement.len() >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task29_care_quality_assessment_integration_qa.rs:382:17
[INFO] [stderr]     |
[INFO] [stderr] 382 |         assert!(stat_tracker.history_size() >= 0,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_stats`
[INFO] [stderr]    --> tests/task64_action_selection_execution_qa.rs:215:13
[INFO] [stderr]     |
[INFO] [stderr] 215 |         let original_stats = (pet.health, pet.hunger, pet.happiness, pet.energy, pet.cleanliness);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_stats`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `final_stats`
[INFO] [stderr]    --> tests/task64_action_selection_execution_qa.rs:265:13
[INFO] [stderr]     |
[INFO] [stderr] 265 |         let final_stats = (pet.health, pet.hunger, pet.happiness, pet.energy, pet.cleanliness);
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_stats`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `comprehensive_stats`
[INFO] [stderr]    --> tests/task2_global_error_handler_integration_qa.rs:420:9
[INFO] [stderr]     |
[INFO] [stderr] 420 |     let comprehensive_stats = error_handler.get_stats();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comprehensive_stats`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `comprehensive_stats`
[INFO] [stderr]    --> tests/task2_global_error_handler_integration_qa.rs:521:9
[INFO] [stderr]     |
[INFO] [stderr] 521 |     let comprehensive_stats = comprehensive_handler.get_stats();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comprehensive_stats`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/e2e_tests.rs:98:9
[INFO] [stderr]    |
[INFO] [stderr] 98 |     let mut pet = Pet::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: variable does not need to be mutable
[INFO] [stderr]    --> tests/e2e_tests.rs:356:9
[INFO] [stderr]     |
[INFO] [stderr] 356 |     let mut action_cooldowns = ActionCooldowns::default();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action_cooldowns`
[INFO] [stderr]    --> tests/e2e_tests.rs:356:9
[INFO] [stderr]     |
[INFO] [stderr] 356 |     let mut action_cooldowns = ActionCooldowns::default();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_action_cooldowns`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_health`
[INFO] [stderr]    --> tests/e2e_tests.rs:540:9
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let original_health = pet.health;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_health`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_happiness`
[INFO] [stderr]    --> tests/e2e_tests.rs:541:9
[INFO] [stderr]     |
[INFO] [stderr] 541 |     let original_happiness = pet.happiness;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_happiness`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_evolution_stage`
[INFO] [stderr]    --> tests/e2e_tests.rs:542:9
[INFO] [stderr]     |
[INFO] [stderr] 542 |     let original_evolution_stage = pet.evolution_stage;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_evolution_stage`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pre_save_timestamp`
[INFO] [stderr]    --> tests/e2e_tests.rs:584:9
[INFO] [stderr]     |
[INFO] [stderr] 584 |     let pre_save_timestamp = save_data.pet.last_updated;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_save_timestamp`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/e2e_tests.rs:565:13
[INFO] [stderr]     |
[INFO] [stderr] 565 |     assert!(pet.health >= 0 && pet.health <= 100,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/e2e_tests.rs:567:13
[INFO] [stderr]     |
[INFO] [stderr] 567 |     assert!(pet.happiness >= 0 && pet.happiness <= 100,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/e2e_tests.rs:569:13
[INFO] [stderr]     |
[INFO] [stderr] 569 |     assert!(pet.hunger >= 0 && pet.hunger <= 100,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/e2e_tests.rs:571:13
[INFO] [stderr]     |
[INFO] [stderr] 571 |     assert!(pet.energy >= 0 && pet.energy <= 100,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/e2e_tests.rs:573:13
[INFO] [stderr]     |
[INFO] [stderr] 573 |     assert!(pet.cleanliness >= 0 && pet.cleanliness <= 100,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `digipet` (test "task16_component_area_management_integration_qa") generated 6 warnings
[INFO] [stderr] warning: `digipet` (test "task27_enhanced_stats_input_handling_qa") generated 1 warning
[INFO] [stderr] warning: `digipet` (test "task29_care_quality_assessment_integration_qa") generated 6 warnings
[INFO] [stderr] warning: `digipet` (test "task64_action_selection_execution_qa") generated 2 warnings (run `cargo fix --test "task64_action_selection_execution_qa" -p digipet` to apply 2 suggestions)
[INFO] [stderr] warning: `digipet` (test "task2_global_error_handler_integration_qa") generated 2 warnings (run `cargo fix --test "task2_global_error_handler_integration_qa" -p digipet` to apply 2 suggestions)
[INFO] [stderr] warning: `digipet` (test "e2e_tests") generated 12 warnings (run `cargo fix --test "e2e_tests" -p digipet` to apply 7 suggestions)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task82_tui_pet_system_integration_qa.rs:238:9
[INFO] [stderr]     |
[INFO] [stderr] 238 |     let mut pet = create_test_pet();
[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/task82_tui_pet_system_integration_qa.rs:277:9
[INFO] [stderr]     |
[INFO] [stderr] 277 |     let mut pet = create_test_pet();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task82_tui_pet_system_integration_qa.rs:527:9
[INFO] [stderr]     |
[INFO] [stderr] 527 |     let mut pet = create_test_pet();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_save_data` is never used
[INFO] [stderr]   --> tests/task82_tui_pet_system_integration_qa.rs:30:4
[INFO] [stderr]    |
[INFO] [stderr] 30 | fn create_test_save_data() -> SaveData {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `has_trends`
[INFO] [stderr]    --> tests/task25_simple_integration_qa.rs:130:9
[INFO] [stderr]     |
[INFO] [stderr] 130 |     let has_trends = display_manager.has_trend_data();
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_trends`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_pet` is never used
[INFO] [stderr]   --> tests/task25_simple_integration_qa.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn create_test_pet() -> Pet {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]   --> tests/task25_simple_integration_qa.rs:70:13
[INFO] [stderr]    |
[INFO] [stderr] 70 |     assert!(stat_tracker.history_size() >= 0, "Stat tracker should have valid history size");
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pet` is assigned to, but never used
[INFO] [stderr]    --> src/ui/pet_display.rs:511:13
[INFO] [stderr]     |
[INFO] [stderr] 511 |         let mut pet = create_test_pet();
[INFO] [stderr]     |             ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_pet` instead
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `pet` is never read
[INFO] [stderr]    --> src/ui/pet_display.rs:524:13
[INFO] [stderr]     |
[INFO] [stderr] 524 |             pet.evolution_stage = stage;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ui/mod.rs:259:13
[INFO] [stderr]     |
[INFO] [stderr] 259 |         let mut feedback_manager = FeedbackManager::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 variable: `layout`
[INFO] [stderr]    --> src/ui/mod.rs:284:13
[INFO] [stderr]     |
[INFO] [stderr] 284 |         let layout = UiLayout::new(full_area);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cooldowns`
[INFO] [stderr]    --> src/ui/mod.rs:294:13
[INFO] [stderr]     |
[INFO] [stderr] 294 |         let cooldowns = ActionCooldowns::default();
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ui/mod.rs:309:13
[INFO] [stderr]     |
[INFO] [stderr] 309 |         let mut cooldowns = ActionCooldowns::default();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cooldowns`
[INFO] [stderr]    --> src/ui/mod.rs:309:13
[INFO] [stderr]     |
[INFO] [stderr] 309 |         let mut cooldowns = ActionCooldowns::default();
[INFO] [stderr]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cooldowns`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `layout`
[INFO] [stderr]    --> src/ui/mod.rs:312:13
[INFO] [stderr]     |
[INFO] [stderr] 312 |         let layout = UiLayout::new(full_area);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stats_panel`
[INFO] [stderr]    --> src/ui/mod.rs:324:13
[INFO] [stderr]     |
[INFO] [stderr] 324 |         let stats_panel = StatsPanel::new(full_area);
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stats_panel`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `status_area`
[INFO] [stderr]    --> src/ui/mod.rs:325:13
[INFO] [stderr]     |
[INFO] [stderr] 325 |         let status_area = StatusArea::new(full_area, true, "Integration Test".to_string());
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_area`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ui/mod.rs:341:13
[INFO] [stderr]     |
[INFO] [stderr] 341 |         let mut error_handler = ErrorHandler::new();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ui/mod.rs:349:13
[INFO] [stderr]     |
[INFO] [stderr] 349 |         let mut error_display = ErrorDisplay::new(area, true, "Error Test".to_string());
[INFO] [stderr]     |             ----^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `error_display`
[INFO] [stderr]    --> src/ui/mod.rs:349:13
[INFO] [stderr]     |
[INFO] [stderr] 349 |         let mut error_display = ErrorDisplay::new(area, true, "Error Test".to_string());
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_display`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]    --> src/ui/mod.rs:470:13
[INFO] [stderr]     |
[INFO] [stderr] 470 |         let save_data = create_test_save_data();
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ui/mod.rs:526:13
[INFO] [stderr]     |
[INFO] [stderr] 526 |         let mut feedback_manager = FeedbackManager::new();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> src/ui/mod.rs:500:13
[INFO] [stderr]     |
[INFO] [stderr] 500 |         let area = Rect::new(0, 0, 80, 24);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_save_data` is never used
[INFO] [stderr]     --> src/ui/display_manager.rs:2552:8
[INFO] [stderr]      |
[INFO] [stderr] 2552 |     fn create_test_save_data() -> SaveData {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_pet` is never used
[INFO] [stderr]    --> src/ui/stat_bars.rs:434:8
[INFO] [stderr]     |
[INFO] [stderr] 434 |     fn create_test_pet() -> Pet {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]     --> src/ui/display_manager.rs:3169:17
[INFO] [stderr]      |
[INFO] [stderr] 3169 |         assert!(final_stats.partial_updates >= 0 || final_stats.total_renders >= 0,
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]     --> src/ui/display_manager.rs:3169:53
[INFO] [stderr]      |
[INFO] [stderr] 3169 |         assert!(final_stats.partial_updates >= 0 || final_stats.total_renders >= 0,
[INFO] [stderr]      |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:673:21
[INFO] [stderr]     |
[INFO] [stderr] 673 |             assert!(layout.pet_display.width >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:675:21
[INFO] [stderr]     |
[INFO] [stderr] 675 |             assert!(layout.stats_area.height >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:677:21
[INFO] [stderr]     |
[INFO] [stderr] 677 |             assert!(layout.actions_area.width >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:679:21
[INFO] [stderr]     |
[INFO] [stderr] 679 |             assert!(layout.messages_area.height >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:746:39
[INFO] [stderr]     |
[INFO] [stderr] 746 |             let _pet_display_exists = layout.pet_display.width >= 0 && layout.pet_display.height >= 0;
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:746:72
[INFO] [stderr]     |
[INFO] [stderr] 746 |             let _pet_display_exists = layout.pet_display.width >= 0 && layout.pet_display.height >= 0;
[INFO] [stderr]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:747:38
[INFO] [stderr]     |
[INFO] [stderr] 747 |             let _stats_area_exists = layout.stats_area.width >= 0 && layout.stats_area.height >= 0;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:747:70
[INFO] [stderr]     |
[INFO] [stderr] 747 |             let _stats_area_exists = layout.stats_area.width >= 0 && layout.stats_area.height >= 0;
[INFO] [stderr]     |                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:748:40
[INFO] [stderr]     |
[INFO] [stderr] 748 |             let _actions_area_exists = layout.actions_area.width >= 0 && layout.actions_area.height >= 0;
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:748:74
[INFO] [stderr]     |
[INFO] [stderr] 748 |             let _actions_area_exists = layout.actions_area.width >= 0 && layout.actions_area.height >= 0;
[INFO] [stderr]     |                                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:749:41
[INFO] [stderr]     |
[INFO] [stderr] 749 |             let _messages_area_exists = layout.messages_area.width >= 0 && layout.messages_area.height >= 0;
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:749:76
[INFO] [stderr]     |
[INFO] [stderr] 749 |             let _messages_area_exists = layout.messages_area.width >= 0 && layout.messages_area.height >= 0;
[INFO] [stderr]     |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:910:21
[INFO] [stderr]     |
[INFO] [stderr] 910 |             assert!(minimal_layout.pet_display.width >= 0, "Minimal layout pet display should not crash for {}x{}", width, height);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:911:21
[INFO] [stderr]     |
[INFO] [stderr] 911 |             assert!(minimal_layout.stats_area.height >= 0, "Minimal layout stats area should not crash for {}x{}", width, height);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:912:21
[INFO] [stderr]     |
[INFO] [stderr] 912 |             assert!(minimal_layout.actions_area.width >= 0, "Minimal layout actions area should not crash for {}x{}", width, height);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:913:21
[INFO] [stderr]     |
[INFO] [stderr] 913 | ...   assert!(minimal_layout.messages_area.height >= 0, "Minimal layout messages area should not crash for {}x{}", width, height);
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:951:21
[INFO] [stderr]     |
[INFO] [stderr] 951 |             assert!(layout.pet_display.width >= 0, "{}: Pet display should remain valid", description);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:952:21
[INFO] [stderr]     |
[INFO] [stderr] 952 |             assert!(layout.stats_area.height >= 0, "{}: Stats area should remain valid", description);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:953:21
[INFO] [stderr]     |
[INFO] [stderr] 953 |             assert!(layout.actions_area.width >= 0, "{}: Actions area should remain valid", description);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:954:21
[INFO] [stderr]     |
[INFO] [stderr] 954 |             assert!(layout.messages_area.height >= 0, "{}: Messages area should remain valid", description);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:986:21
[INFO] [stderr]     |
[INFO] [stderr] 986 |             assert!(layout.pet_display.width >= 0 && layout.pet_display.height >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:986:54
[INFO] [stderr]     |
[INFO] [stderr] 986 |             assert!(layout.pet_display.width >= 0 && layout.pet_display.height >= 0,
[INFO] [stderr]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:988:21
[INFO] [stderr]     |
[INFO] [stderr] 988 |             assert!(layout.stats_area.width >= 0 && layout.stats_area.height >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:988:53
[INFO] [stderr]     |
[INFO] [stderr] 988 |             assert!(layout.stats_area.width >= 0 && layout.stats_area.height >= 0,
[INFO] [stderr]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:990:21
[INFO] [stderr]     |
[INFO] [stderr] 990 |             assert!(layout.actions_area.width >= 0 && layout.actions_area.height >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:990:55
[INFO] [stderr]     |
[INFO] [stderr] 990 |             assert!(layout.actions_area.width >= 0 && layout.actions_area.height >= 0,
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:992:21
[INFO] [stderr]     |
[INFO] [stderr] 992 |             assert!(layout.messages_area.width >= 0 && layout.messages_area.height >= 0,
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/layout.rs:992:56
[INFO] [stderr]     |
[INFO] [stderr] 992 |             assert!(layout.messages_area.width >= 0 && layout.messages_area.height >= 0,
[INFO] [stderr]     |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]     --> src/ui/layout.rs:1047:17
[INFO] [stderr]      |
[INFO] [stderr] 1047 |         assert!(centered_popup.x >= 0 && centered_popup.x + centered_popup.width <= frame_size.width,
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]     --> src/ui/layout.rs:1049:17
[INFO] [stderr]      |
[INFO] [stderr] 1049 |         assert!(centered_popup.y >= 0 && centered_popup.y + centered_popup.height <= frame_size.height,
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:265:17
[INFO] [stderr]     |
[INFO] [stderr] 265 |         assert!(stats.total_active >= 0, "Should have valid feedback count");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:345:17
[INFO] [stderr]     |
[INFO] [stderr] 345 |         assert!(initial_stats.total_errors >= 0);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:346:17
[INFO] [stderr]     |
[INFO] [stderr] 346 |         assert!(initial_stats.recovery_attempts >= 0);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:521:17
[INFO] [stderr]     |
[INFO] [stderr] 521 |         assert!(stats.total_renders >= 0);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:522:17
[INFO] [stderr]     |
[INFO] [stderr] 522 |         assert!(stats.cache_hits >= 0);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:523:17
[INFO] [stderr]     |
[INFO] [stderr] 523 |         assert!(stats.cache_misses >= 0);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:528:17
[INFO] [stderr]     |
[INFO] [stderr] 528 |         assert!(feedback_stats.total_active >= 0);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/ui/mod.rs:529:17
[INFO] [stderr]     |
[INFO] [stderr] 529 |         assert!(feedback_stats.button_presses >= 0);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]    --> tests/task14_display_manager_layout_fields_qa.rs:240:13
[INFO] [stderr]     |
[INFO] [stderr] 240 |         let save_data = create_test_save_data();
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[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/task35_evolution_popup_triggering_qa.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Baby);
[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 variable: `initial_points`
[INFO] [stderr]   --> tests/task35_evolution_popup_triggering_qa.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 81 |     let initial_points = save_data.pet.evolution_points;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_points`
[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/task35_evolution_popup_triggering_qa.rs:137:9
[INFO] [stderr]     |
[INFO] [stderr] 137 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Baby);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task35_evolution_popup_triggering_qa.rs:168:9
[INFO] [stderr]     |
[INFO] [stderr] 168 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Child);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `last_pet_update` is never read
[INFO] [stderr]    --> tests/task35_evolution_popup_triggering_qa.rs:210:9
[INFO] [stderr]     |
[INFO] [stderr] 210 |         last_pet_update = now;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task35_evolution_popup_triggering_qa.rs:338:9
[INFO] [stderr]     |
[INFO] [stderr] 338 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Teen);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task35_evolution_popup_triggering_qa.rs:368:9
[INFO] [stderr]     |
[INFO] [stderr] 368 |     let mut pet = create_pet_ready_for_evolution(EvolutionStage::Adult);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_pet` is never used
[INFO] [stderr]   --> tests/task35_evolution_popup_triggering_qa.rs:12:4
[INFO] [stderr]    |
[INFO] [stderr] 12 | fn create_test_pet() -> Pet {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `digipet` (test "task82_tui_pet_system_integration_qa") generated 4 warnings (run `cargo fix --test "task82_tui_pet_system_integration_qa" -p digipet` to apply 3 suggestions)
[INFO] [stderr] warning: `digipet` (test "task25_simple_integration_qa") generated 3 warnings (run `cargo fix --test "task25_simple_integration_qa" -p digipet` to apply 1 suggestion)
[INFO] [stderr] warning: `digipet` (lib test) generated 61 warnings (3 duplicates) (run `cargo fix --lib -p digipet --tests` to apply 14 suggestions)
[INFO] [stderr] warning: `digipet` (test "task14_display_manager_layout_fields_qa") generated 1 warning (run `cargo fix --test "task14_display_manager_layout_fields_qa" -p digipet` to apply 1 suggestion)
[INFO] [stderr] warning: `digipet` (test "task35_evolution_popup_triggering_qa") generated 8 warnings (run `cargo fix --test "task35_evolution_popup_triggering_qa" -p digipet` to apply 6 suggestions)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1495:13
[INFO] [stderr]      |
[INFO] [stderr] 1495 |         let mut pet = Pet::new();
[INFO] [stderr]      |             ----^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1537:13
[INFO] [stderr]      |
[INFO] [stderr] 1537 |         let mut pet = Pet::new();
[INFO] [stderr]      |             ----^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1598:13
[INFO] [stderr]      |
[INFO] [stderr] 1598 |         let mut pet = Pet::new();
[INFO] [stderr]      |             ----^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]    --> tests/task1_action_menu_integration_qa.rs:268:9
[INFO] [stderr]     |
[INFO] [stderr] 268 |     let save_data = SaveData::new(pet.clone(), pet.calculate_state());
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `needs_update`
[INFO] [stderr]    --> tests/task1_action_menu_integration_qa.rs:284:9
[INFO] [stderr]     |
[INFO] [stderr] 284 |     let needs_update = display_manager.needs_update(&pet);
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `save_data`
[INFO] [stderr]    --> tests/task1_action_menu_integration_qa.rs:343:9
[INFO] [stderr]     |
[INFO] [stderr] 343 |     let save_data = SaveData::new(pet.clone(), pet.calculate_state());
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_save_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `display_stats`
[INFO] [stderr]    --> tests/task1_action_menu_integration_qa.rs:404:9
[INFO] [stderr]     |
[INFO] [stderr] 404 |     let display_stats = display_manager.get_stats();
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_stats`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/task38_cooldown_display_wiring_qa.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 72 |     let mut backend = TestBackend::new(100, 50);
[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 variable: `area`
[INFO] [stderr]   --> tests/task38_cooldown_display_wiring_qa.rs:76:13
[INFO] [stderr]    |
[INFO] [stderr] 76 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]   --> tests/task38_cooldown_display_wiring_qa.rs:65:9
[INFO] [stderr]    |
[INFO] [stderr] 65 |     let pet = create_test_pet();
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/task38_cooldown_display_wiring_qa.rs:97:9
[INFO] [stderr]    |
[INFO] [stderr] 97 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `actions_area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:102:13
[INFO] [stderr]     |
[INFO] [stderr] 102 |         let actions_area = Rect::new(0, 0, 100, 20);
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actions_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]   --> tests/task38_cooldown_display_wiring_qa.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 92 |     let pet = create_test_pet();
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:123:9
[INFO] [stderr]     |
[INFO] [stderr] 123 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:127:13
[INFO] [stderr]     |
[INFO] [stderr] 127 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 118 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:143:9
[INFO] [stderr]     |
[INFO] [stderr] 143 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:167:9
[INFO] [stderr]     |
[INFO] [stderr] 167 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:180:13
[INFO] [stderr]     |
[INFO] [stderr] 180 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:172:13
[INFO] [stderr]     |
[INFO] [stderr] 172 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:162:9
[INFO] [stderr]     |
[INFO] [stderr] 162 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:203:9
[INFO] [stderr]     |
[INFO] [stderr] 203 |     let mut backend = TestBackend::new(120, 60);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `full_area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:208:13
[INFO] [stderr]     |
[INFO] [stderr] 208 |         let full_area = Rect::new(0, 0, 120, 60);
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:195:9
[INFO] [stderr]     |
[INFO] [stderr] 195 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:235:13
[INFO] [stderr]     |
[INFO] [stderr] 235 |         let mut backend = TestBackend::new(width, height);
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:239:17
[INFO] [stderr]     |
[INFO] [stderr] 239 |             let area = Rect::new(0, 0, width, height);
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:223:9
[INFO] [stderr]     |
[INFO] [stderr] 223 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:262:9
[INFO] [stderr]     |
[INFO] [stderr] 262 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:280:13
[INFO] [stderr]     |
[INFO] [stderr] 280 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:267:13
[INFO] [stderr]     |
[INFO] [stderr] 267 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:256:9
[INFO] [stderr]     |
[INFO] [stderr] 256 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:297:9
[INFO] [stderr]     |
[INFO] [stderr] 297 |     let mut backend = TestBackend::new(100, 50);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:324:13
[INFO] [stderr]     |
[INFO] [stderr] 324 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:312:13
[INFO] [stderr]     |
[INFO] [stderr] 312 |         let area = Rect::new(0, 0, 100, 50);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:295:9
[INFO] [stderr]     |
[INFO] [stderr] 295 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task38_cooldown_display_wiring_qa.rs:471:13
[INFO] [stderr]     |
[INFO] [stderr] 471 |     assert!(stats.total_renders >= 0, "DisplayManager should track rendering stats");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pet`
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:227:9
[INFO] [stderr]     |
[INFO] [stderr] 227 |     let pet = create_test_pet();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_pet`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `first_check`
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:230:9
[INFO] [stderr]     |
[INFO] [stderr] 230 |     let first_check = display_manager.needs_update(&save_data.pet);
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_check`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `second_check`
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:231:9
[INFO] [stderr]     |
[INFO] [stderr] 231 |     let second_check = display_manager.needs_update(&save_data.pet);
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_second_check`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `needs_update`
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:270:9
[INFO] [stderr]     |
[INFO] [stderr] 270 |     let needs_update = display_manager.needs_update(&save_data.pet);
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_update`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stats_mode`
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:278:9
[INFO] [stderr]     |
[INFO] [stderr] 278 |     let stats_mode = display_manager.get_stats_display_mode();
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stats_mode`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:105:13
[INFO] [stderr]     |
[INFO] [stderr] 105 |     assert!(stats.total_renders >= 0, "Should track render count");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:214:13
[INFO] [stderr]     |
[INFO] [stderr] 214 |     assert!(stats.total_renders >= 0, "Should maintain valid render count");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:282:13
[INFO] [stderr]     |
[INFO] [stderr] 282 |     assert!(display_manager.get_stats().total_renders >= 0,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/task37_conditional_rendering_integration_qa.rs:393:13
[INFO] [stderr]     |
[INFO] [stderr] 393 |     assert!(final_stats.total_renders >= 0, "Should maintain valid stats throughout testing");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `digipet` (bin "digipet" test) generated 64 warnings (61 duplicates) (run `cargo fix --bin "digipet" -p digipet --tests` to apply 3 suggestions)
[INFO] [stderr] warning: `digipet` (test "task1_action_menu_integration_qa") generated 4 warnings (run `cargo fix --test "task1_action_menu_integration_qa" -p digipet` to apply 4 suggestions)
[INFO] [stderr] warning: `digipet` (test "task38_cooldown_display_wiring_qa") generated 29 warnings (run `cargo fix --test "task38_cooldown_display_wiring_qa" -p digipet` to apply 28 suggestions)
[INFO] [stderr] warning: `digipet` (test "task37_conditional_rendering_integration_qa") generated 9 warnings (run `cargo fix --test "task37_conditional_rendering_integration_qa" -p digipet` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/digipet-784b2fea18fb2176)
[INFO] [stdout] 
[INFO] [stdout] running 950 tests
[INFO] [stdout] test actions::action_result_feedback_qa_tests::test_action_result_detailed_messages ... ok
[INFO] [stdout] test actions::action_result_feedback_qa_tests::test_action_feedback_includes_stat_information ... ok
[INFO] [stdout] test actions::action_result_feedback_qa_tests::test_action_results_provide_execution_context ... ok
[INFO] [stdout] test actions::action_result_feedback_qa_tests::test_action_result_feedback_system_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test actions::action_result_feedback_qa_tests::test_current_action_functions_return_status ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_clean_action_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_clean_action_bounded_by_stat_limits ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_clean_action_exact_boundaries ... ok
[INFO] [stdout] test actions::action_result_feedback_qa_tests::test_different_actions_return_appropriate_feedback ... ok
[INFO] [stdout] test actions::action_result_feedback_qa_tests::test_action_result_success_failure_status ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_clean_action_has_cooldown_system ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_clean_action_increases_cleanliness_correct_range ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_clean_action_rejects_dead_pets ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_clean_action_validation ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_action_validation_system_consistency ... ok
[INFO] [stdout] test actions::clean_action_qa_tests::test_multiple_cleaning_sessions ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_clean_action_cooldown ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_detailed_action_results_comprehensive ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_feed_action_error_cases ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_clean_action_behavior ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_sleep_action_behavior ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_sleep_action_error_cases ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_train_action_behavior ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_sleep_action_bounds ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_all_actions_stat_bounds_consistency ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_feed_action_bounds ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_clean_action_bounds ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_play_action_bounds ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_train_action_error_cases ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_task_50_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_feed_action_cooldown ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_play_action_behavior ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_wake_action_comprehensive ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_play_action_cooldown ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_cooldown_remaining_time_calculation ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_feed_action_behavior ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_cooldown_system_consistency ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_all_actions_use_cooldown_system_consistently ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_actions_have_individual_cooldown_timers ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_configurable_cooldown_durations ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_sleep_action_cooldown ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_train_action_bounds ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_is_on_cooldown_method_accuracy ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_appropriate_error_messages_for_dead_pets ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_all_actions_blocked_when_pet_dead ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_dead_pets_no_stat_changes ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_death_state_takes_priority ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_cooldown_timers_prevent_spam ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_47_acceptance_criteria ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_play_action_error_cases ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_individual_cooldowns_independent ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_48_tui_cooldown_checking_interface ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_48_tui_execute_actions_interface ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_detailed_action_results_for_dead_pets ... ok
[INFO] [stdout] test actions::cooldown_system_qa_tests::test_cooldown_system_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_all_actions_death_state_consistency ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_48_acceptance_criteria ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_49_acceptance_criteria ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_48_combined_tui_workflow ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_49_evolution_points_in_detailed_results ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_48_tui_action_availability_interface ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_49_care_quality_affects_evolution_points ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_clean_action_error_cases ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_49_failed_actions_dont_award_points ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_49_successful_actions_award_points ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_tui_action_availability_convenience ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_tui_action_info_comprehensive ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_task_49_train_action_awards_evolution_points ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_tui_cooldown_convenience ... ok
[INFO] [stdout] test actions::comprehensive_action_tests::test_train_action_cooldown ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_tui_execute_action_detailed_unified_interface ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_all_detailed_actions_handle_dead_pet ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_clean_action_detailed_already_clean ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_tui_execute_action_unified_interface ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_detailed_action_result_failure ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_detailed_action_result_success ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_clean_action_detailed_success ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_detailed_action_result_success_no_changes ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_feed_action_detailed_dead_pet ... ok
[INFO] [stdout] test actions::death_state_interaction_qa_tests::test_tui_complete_workflow_with_convenience ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_feed_action_detailed_validation_failure ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_play_action_detailed_low_energy ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_feed_action_detailed_success ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_stat_changes_convenience_constructors ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_sleep_action_detailed_already_sleeping ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_stat_changes_creation ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_play_action_detailed_success ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_stat_changes_formatting ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_wake_pet_detailed_insufficient_sleep ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_stat_changes_bounds_handling ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_wake_pet_detailed_success ... ok
[INFO] [stdout] test actions::execution_tests::test_action_cooldowns_default ... ok
[INFO] [stdout] test actions::execution_tests::test_action_result_is_success ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_task_45_acceptance_criteria ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_wake_pet_detailed_not_sleeping ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_sleep_action_detailed_success ... ok
[INFO] [stdout] test actions::execution_tests::test_action_result_message ... ok
[INFO] [stdout] test actions::execution_tests::test_cooldown_mechanism ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_clean_action_bounds ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_clean_action_cooldown ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_clean_action_dead_pet ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_clean_action_simple_bounds ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_train_action_detailed_low_energy ... ok
[INFO] [stdout] test actions::detailed_action_result_tests::test_train_action_detailed_success ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_clean_action_simple_success ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_clean_action_success ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_clean_action_validation_failure ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_feed_action_bounds ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_feed_action_dead_pet ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_feed_action_cooldown ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_feed_action_validation_failure ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_feed_action_success ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_play_action_bounds_happiness ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_play_action_bounds_energy ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_play_action_simple_bounds ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_play_action_validation_failure ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_dead_pet ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_play_action_success ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_energy_boundary ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_evolution_points_always_increase ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_play_action_dead_pet ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_evolution_points_boundary ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_simple_bounds ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_minimum_energy_threshold ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_validation_failure ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_automatic_wake_after_8_hours ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_energy_restoration_during_sleep ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_simple_success ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_sleep_action_rejects_dead_pets ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_sleep_action_transitions_to_sleeping_state ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_sleep_action_validation ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_sleep_has_minimum_duration ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_play_action_simple_success ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_sleep_prevents_other_actions ... ok
[INFO] [stdout] test actions::execution_tests::test_execute_train_action_success ... ok
[INFO] [stdout] test actions::stat_bounds_enforcement_qa_tests::test_graceful_bounds_enforcement ... ok
[INFO] [stdout] test actions::stat_bounds_enforcement_qa_tests::test_stats_clamped_to_valid_range ... ok
[INFO] [stdout] test actions::tests::test_all_actions_completeness ... ok
[INFO] [stdout] test actions::stat_bounds_enforcement_qa_tests::test_overflow_underflow_handling ... ok
[INFO] [stdout] test actions::tests::test_player_action_as_str ... ok
[INFO] [stdout] test actions::stat_bounds_enforcement_qa_tests::test_all_actions_respect_stat_bounds ... ok
[INFO] [stdout] test actions::stat_bounds_enforcement_qa_tests::test_task_46_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test actions::sleep_action_qa_tests::test_sleep_system_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test actions::tests::test_player_action_clone_and_copy ... ok
[INFO] [stdout] test actions::tests::test_player_action_debug_formatting ... ok
[INFO] [stdout] test actions::tests::test_player_action_description ... ok
[INFO] [stdout] test actions::tests::test_player_action_equality ... ok
[INFO] [stdout] test actions::tests::test_player_action_hash_trait ... ok
[INFO] [stdout] test actions::tests::test_player_action_variants_exist ... ok
[INFO] [stdout] test actions::train_action_qa_tests::test_multiple_training_sessions_accumulate_points ... ok
[INFO] [stdout] test actions::train_action_qa_tests::test_train_action_decreases_energy_correctly ... ok
[INFO] [stdout] test actions::train_action_qa_tests::test_train_action_rejects_dead_pets ... ok
[INFO] [stdout] test actions::train_action_qa_tests::test_train_action_boundary_conditions ... ok
[INFO] [stdout] test actions::validation_tests::test_action_validation_result_is_valid ... ok
[INFO] [stdout] test actions::train_action_qa_tests::test_train_action_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test actions::validation_tests::test_death_takes_priority_over_other_validation_errors ... ok
[INFO] [stdout] test actions::train_action_qa_tests::test_train_action_increases_evolution_points ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_action_dead_pet_all_actions ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_action_dispatcher ... ok
[INFO] [stdout] test actions::validation_tests::test_boundary_conditions ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_clean_action_dead_pet ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_clean_action_when_already_clean ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_clean_action_when_dirty ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_feed_action_dead_pet ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_feed_action_when_hungry ... ok
[INFO] [stdout] test actions::validation_tests::test_action_validation_result_error_message ... ok
[INFO] [stdout] test actions::train_action_qa_tests::test_train_action_requires_minimum_energy_threshold ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_sleep_action_dead_pet ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_sleep_action_when_already_energized ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_train_action_dead_pet ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_train_action_when_energetic ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_play_action_dead_pet ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_play_action_when_energetic ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_train_action_when_too_tired ... ok
[INFO] [stdout] test evolution::task_27_notification_tests::test_dead_pet_no_evolution_notification ... ok
[INFO] [stdout] test evolution::task_27_notification_tests::test_evolution_notification_contains_stage_information ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_play_action_when_too_tired ... ok
[INFO] [stdout] test evolution::task_27_notification_tests::test_evolution_notification_single_evolution ... ok
[INFO] [stdout] test evolution::task_27_notification_tests::test_evolution_notification_multiple_evolutions ... ok
[INFO] [stdout] test evolution::task_27_notification_tests::test_final_stage_no_evolution_notification ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_feed_action_when_not_hungry ... ok
[INFO] [stdout] test evolution::task_27_notification_tests::test_no_evolution_no_notification ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_assess_care_quality_dead_pet_always_poor ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_auto_evolve_pet_dead_returns_empty ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_award_evolution_points_dead_pet_no_change ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_calculate_evolution_points_dead_pet_always_zero ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_can_evolve_dead_pet_always_false ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_can_evolve_dying_pet_health_boundary ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_death_mechanics_integration_with_all_evolution_functions ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_evolve_pet_death_priority_over_other_failures ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_pet_dying_during_evolution_sequence ... ok
[INFO] [stdout] test evolution::tests::test_age_calculation_edge_cases_for_evolution ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_evolve_pet_dead_returns_pet_dead ... ok
[INFO] [stdout] test evolution::tests::test_age_calculation_integration_with_evolution_timing ... ok
[INFO] [stdout] test evolution::task_28_death_mechanics_tests::test_evolution_requirements_death_state_consistency ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_average ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_boundary_conditions ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_dead_pet ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_excellent ... ok
[INFO] [stdout] test evolution::tests::test_age_calculation_precision_for_evolution_requirements ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_good_all_above_50 ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_poor ... ok
[INFO] [stdout] test evolution::tests::test_auto_evolution_with_complex_age_scenarios ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_excellent_4_out_of_5 ... ok
[INFO] [stdout] test evolution::tests::test_auto_evolve_pet_dead ... ok
[INFO] [stdout] test actions::validation_tests::test_validate_sleep_action_when_tired ... ok
[INFO] [stdout] test evolution::tests::test_auto_evolve_pet_multiple_evolutions ... ok
[INFO] [stdout] test evolution::tests::test_auto_evolve_pet_single_evolution ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_poor_all_low ... ok
[INFO] [stdout] test evolution::tests::test_award_evolution_points_basic ... ok
[INFO] [stdout] test evolution::tests::test_auto_evolve_pet_already_final_stage ... ok
[INFO] [stdout] test evolution::tests::test_award_evolution_points_multiple_awards ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_excellent_care ... ok
[INFO] [stdout] test evolution::tests::test_assess_care_quality_good_4_out_of_5 ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_good_care ... ok
[INFO] [stdout] test evolution::tests::test_auto_evolve_pet_extensive_progression ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_negative_time ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_poor_care ... ok
[INFO] [stdout] test evolution::tests::test_award_evolution_points_zero_time ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_zero_time ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_average_care ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_baby_to_child_failure_points ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_dead_pet ... ok
[INFO] [stdout] test evolution::tests::test_award_evolution_points_poor_care ... ok
[INFO] [stdout] test evolution::tests::test_award_evolution_points_overflow_protection ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_child_to_teen_success ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_fractional_hours ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_dead_pet ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_egg_to_baby_failure_happiness ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_egg_to_baby_failure_health ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_teen_to_adult_success ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_egg_to_baby_success ... ok
[INFO] [stdout] test evolution::tests::test_care_quality_enum_equality ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_elder_final_stage ... ok
[INFO] [stdout] test evolution::tests::test_comprehensive_eligibility_checking_all_requirements ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_exact_minimum_requirements ... ok
[INFO] [stdout] test evolution::tests::test_evolution_points_integration_with_evolution ... ok
[INFO] [stdout] test evolution::tests::test_default_evolution_stage ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_just_below_requirements ... ok
[INFO] [stdout] test evolution::tests::test_evolution_preserves_other_pet_data ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_adult_to_elder_success ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_mixed_requirement_failures ... ok
[INFO] [stdout] test evolution::tests::test_evolution_progression_edge_cases ... ok
[INFO] [stdout] test evolution::tests::test_evolution_progression_through_all_stages_sequentially ... ok
[INFO] [stdout] test evolution::tests::test_evolution_requirements_progression ... ok
[INFO] [stdout] test evolution::tests::test_calculate_evolution_points_large_values ... ok
[INFO] [stdout] test evolution::tests::test_evolution_stage_clone_and_copy ... ok
[INFO] [stdout] test evolution::tests::test_evolution_stage_equality ... ok
[INFO] [stdout] test evolution::tests::test_evolution_stage_display_names ... ok
[INFO] [stdout] test evolution::tests::test_evolution_requirements_for_each_stage ... ok
[INFO] [stdout] test evolution::tests::test_evolution_result_equality ... ok
[INFO] [stdout] test evolution::tests::test_evolution_stage_descriptions ... ok
[INFO] [stdout] test evolution::tests::test_evolution_stage_progression ... ok
[INFO] [stdout] test evolution::tests::test_evolve_pet_already_final_stage ... ok
[INFO] [stdout] test evolution::tests::test_final_stage_detection ... ok
[INFO] [stdout] test evolution::tests::test_evolve_pet_through_multiple_stages ... ok
[INFO] [stdout] test evolution::tests::test_award_evolution_points_care_quality_changes ... ok
[INFO] [stdout] test evolution::tests::test_evolve_pet_dead ... ok
[INFO] [stdout] test input::tests::test_action_execution_integration ... ok
[INFO] [stdout] test evolution::tests::test_evolve_pet_requirements_not_met ... ok
[INFO] [stdout] test input::tests::test_can_execute_action_from_key ... ok
[INFO] [stdout] test input::tests::test_boundary_conditions ... ok
[INFO] [stdout] test input::tests::test_get_action_number ... ok
[INFO] [stdout] test input::tests::test_case_sensitivity ... ok
[INFO] [stdout] test input::tests::test_helper_function_consistency ... ok
[INFO] [stdout] test input::tests::test_execute_action_from_key ... ok
[INFO] [stdout] test evolution::tests::test_evolve_pet_successful_evolution ... ok
[INFO] [stdout] test input::tests::test_input_action_enum_completeness ... ok
[INFO] [stdout] test input::tests::test_process_key_input_quit_keys ... ok
[INFO] [stdout] test input::tests::test_process_key_input_selection_keys ... ok
[INFO] [stdout] test input::tests::test_process_key_input_unknown_keys ... ok
[INFO] [stdout] test input::tests::test_task_63_acceptance_criteria_keyboard_input_processing ... ok
[INFO] [stdout] test input::tests::test_task_81_acceptance_criteria_all_keyboard_inputs_properly_validated ... ok
[INFO] [stdout] test input::tests::test_task_64_acceptance_criteria_action_selection_and_execution ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_baby_to_child_success ... ok
[INFO] [stdout] test input::tests::test_input_action_to_player_action ... ok
[INFO] [stdout] test evolution::tests::test_can_evolve_egg_to_baby_failure_age ... ok
[INFO] [stdout] test input::tests::test_is_action_key ... ok
[INFO] [stdout] test input::tests::test_is_quit_key ... ok
[INFO] [stdout] test input::tests::test_process_key_input_action_keys ... ok
[INFO] [stdout] test evolution::tests::test_evolution_system_comprehensive_integration ... ok
[INFO] [stdout] test input::tests::test_process_key_input_navigation_keys ... ok
[INFO] [stdout] test input::tests::test_task_81_acceptance_criteria_input_validation_robustness ... ok
[INFO] [stdout] test input::tests::test_task_81_acceptance_criteria_invalid_inputs_handled_gracefully ... ok
[INFO] [stdout] test pet::tests::test_adjust_cleanliness_negative ... ok
[INFO] [stdout] test pet::tests::test_adjust_cleanliness_positive ... ok
[INFO] [stdout] test pet::tests::test_adjust_energy_negative ... ok
[INFO] [stdout] test input::tests::test_task_81_acceptance_criteria_input_action_conversion_validation ... ok
[INFO] [stdout] test input::tests::test_task_81_acceptance_criteria_comprehensive_input_validation_functions ... ok
[INFO] [stdout] test pet::tests::test_adjust_happiness_overflow_positive ... ok
[INFO] [stdout] test pet::tests::test_adjust_happiness_positive ... ok
[INFO] [stdout] test pet::tests::test_adjust_health_negative ... ok
[INFO] [stdout] test pet::tests::test_adjust_health_overflow_negative ... ok
[INFO] [stdout] test pet::tests::test_age_calculation_with_serialization ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_for_new_pet ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_calculation ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_matches_helper_function ... ok
[INFO] [stdout] test pet::tests::test_adjust_health_overflow_positive ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_with_future_birth_time ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_with_fractional_time ... ok
[INFO] [stdout] test pet::tests::test_adjust_health_positive ... ok
[INFO] [stdout] test pet::tests::test_adjust_hunger_negative ... ok
[INFO] [stdout] test pet::tests::test_adjust_hunger_positive ... ok
[INFO] [stdout] test pet::tests::test_age_calculation_independent_of_updates ... ok
[INFO] [stdout] test input::tests::test_task_81_acceptance_criteria_input_validation_edge_cases ... ok
[INFO] [stdout] test input::tests::test_is_navigation_key ... ok
[INFO] [stdout] test pet::tests::test_adjust_energy_positive ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_with_old_pet ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_with_various_durations ... ok
[INFO] [stdout] test pet::tests::test_all_stats_bounds_validation ... ok
[INFO] [stdout] test pet::tests::test_boundary_stat_combinations ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_boundary_conditions ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_dead_with_all_zero_stats ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_happy_default ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_edge_cases ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_dead ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_happy_good_stats ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_happy_mixed_stats ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_happy_perfect_stats ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sad_all_stats_low ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_priority_order ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sad_low_happiness ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sad_multiple_low_stats ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sad_very_low_happiness ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sick_low_health ... ok
[INFO] [stdout] test pet::tests::test_adjust_happiness_negative ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sick_multiple_critical_stats ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_exact_critical_boundaries ... ok
[INFO] [stdout] test pet::tests::test_clamp_stat_below_bounds ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sick_three_critical_stats ... ok
[INFO] [stdout] test pet::tests::test_clamp_stat_extreme_values ... ok
[INFO] [stdout] test pet::tests::test_create_test_pet_helper_evolution_fields ... ok
[INFO] [stdout] test pet::tests::test_clamp_stat_within_bounds ... ok
[INFO] [stdout] test pet::tests::test_dead_pet_blocks_further_updates ... ok
[INFO] [stdout] test pet::tests::test_dead_pet_state_is_permanent ... ok
[INFO] [stdout] test pet::tests::test_decay_rates_accuracy ... ok
[INFO] [stdout] test pet::tests::test_adjust_happiness_overflow_negative ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_bounds_enforcement ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_fractional_hours ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_from_high_values ... ok
[INFO] [stdout] test pet::tests::test_calculate_state_sick_very_low_health ... ok
[INFO] [stdout] test pet::tests::test_clamp_stat_above_bounds ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_multiple_applications ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_multiple_hours ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_one_hour ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_very_small_duration ... ok
[INFO] [stdout] test pet::tests::test_hours_since_last_update_calculation ... ok
[INFO] [stdout] test pet::tests::test_dying_process_state_transitions ... ok
[INFO] [stdout] test pet::tests::test_multiple_adjustments_with_bounds ... ok
[INFO] [stdout] test pet::tests::test_offline_time_integration_consistency ... ok
[INFO] [stdout] test pet::tests::test_multiple_death_scenarios ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_can_execute_action ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_cooldowns_persist ... ok
[INFO] [stdout] test pet::tests::test_age_in_hours_consistency_over_time ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_execute_action ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_get_action_info ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_get_all_action_info ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_validation ... ok
[INFO] [stdout] test pet::tests::test_pet_dead_state_overrides_other_conditions ... ok
[INFO] [stdout] test pet::tests::test_pet_dies_from_extreme_decay ... ok
[INFO] [stdout] test pet::tests::test_pet_evolution_fields_are_public ... ok
[INFO] [stdout] test pet::tests::test_pet_at_death_threshold ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_execute_action_detailed ... ok
[INFO] [stdout] test pet::tests::test_pet_new_sets_current_timestamp ... ok
[INFO] [stdout] test pet::tests::test_pet_evolution_fields_serialization ... ok
[INFO] [stdout] test pet::tests::test_pet_new_creates_multiple_instances ... ok
[INFO] [stdout] test pet::tests::test_pet_evolution_stage_default ... ok
[INFO] [stdout] test pet::tests::test_pet_becomes_dead_then_blocks_updates ... ok
[INFO] [stdout] test pet::tests::test_pet_new_constructor ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_negative_time ... ok
[INFO] [stdout] test pet::tests::test_pet_action_integration_with_dead_pet ... ok
[INFO] [stdout] test pet::tests::test_pet_new_initializes_evolution_fields ... ok
[INFO] [stdout] test pet::tests::test_pet_state_clone ... ok
[INFO] [stdout] test pet::tests::test_pet_state_debug_formatting ... ok
[INFO] [stdout] test pet::tests::test_pet_state_enum_variants ... ok
[INFO] [stdout] test pet::tests::test_pet_state_equality ... ok
[INFO] [stdout] test pet::tests::test_pet_struct_creation ... ok
[INFO] [stdout] test pet::tests::test_pet_struct_with_boundary_values ... ok
[INFO] [stdout] test pet::tests::test_set_cleanliness_above_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_cleanliness_below_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_energy_below_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_energy_within_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_happiness_above_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_happiness_below_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_happiness_within_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_cleanliness_within_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_energy_above_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_health_below_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_hunger_within_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_hunger_below_bounds ... ok
[INFO] [stdout] test pet::tests::test_set_hunger_above_bounds ... ok
[INFO] [stdout] test pet::tests::test_stat_setters_extreme_values ... ok
[INFO] [stdout] test pet::tests::test_stat_adjustment_zero_delta ... ok
[INFO] [stdout] test pet::tests::test_state_transition_comprehensive_coverage ... ok
[INFO] [stdout] test pet::tests::test_set_health_within_bounds ... ok
[INFO] [stdout] test pet::tests::test_update_bounds_enforcement ... ok
[INFO] [stdout] test pet::tests::test_update_consistency_with_manual_calculations ... ok
[INFO] [stdout] test pet::tests::test_update_from_offline_time_applies_decay ... ok
[INFO] [stdout] test pet::tests::test_set_health_above_bounds ... ok
[INFO] [stdout] test pet::tests::test_update_from_offline_time_death_handling ... ok
[INFO] [stdout] test pet::tests::test_update_handles_state_transition_to_dead ... ok
[INFO] [stdout] test pet::tests::test_update_with_already_dead_pet_different_scenarios ... ok
[INFO] [stdout] test pet::tests::test_update_handles_state_transition_to_sad ... ok
[INFO] [stdout] test pet::tests::test_update_with_fractional_hours ... ok
[INFO] [stdout] test pet::tests::test_update_handles_state_transition_to_sick ... ok
[INFO] [stdout] test pet::tests::test_update_multiple_applications ... ok
[INFO] [stdout] test pet::tests::test_update_preserves_stat_relationships ... ok
[INFO] [stdout] test pet::tests::test_update_state_consistency ... ok
[INFO] [stdout] test pet::tests::test_update_state_priority_handling ... ok
[INFO] [stdout] test pet::tests::test_update_method_updates_timestamp ... ok
[INFO] [stdout] test pet_actions::tests::test_pet_action_integration_can_perform_action ... ok
[INFO] [stdout] test pet_actions::tests::test_pet_action_integration_execute_action ... ok
[INFO] [stdout] test pet_actions::tests::test_pet_action_integration_execute_action_detailed ... ok
[INFO] [stdout] test pet_actions::tests::test_pet_action_integration_get_action_status ... ok
[INFO] [stdout] test pet_actions::tests::test_pet_action_integration_get_action_cooldown ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_from_low_values ... ok
[INFO] [stdout] test pet::tests::test_pet_dies_when_health_reaches_zero ... ok
[INFO] [stdout] test pet::tests::test_decay_stats_no_time_elapsed ... ok
[INFO] [stdout] test pet_actions::tests::test_task_52_detailed_action_integration ... ok
[INFO] [stdout] test pet_actions::tests::test_task_52_integration_trait_functionality ... ok
[INFO] [stdout] test pet::tests::test_save_load_integration_with_offline_decay ... ok
[INFO] [stdout] test pet::tests::test_update_timestamp_method ... ok
[INFO] [stdout] test save::tests::test_data_integrity_validation_lifetime_hours ... ok
[INFO] [stdout] test pet_actions::tests::test_task_52_pet_struct_action_integration ... ok
[INFO] [stdout] test save::tests::test_data_integrity_validation_pet_stats_valid_range ... ok
[INFO] [stdout] test pet_actions::tests::test_task_52_acceptance_criteria_demo ... ok
[INFO] [stdout] test save::tests::test_data_integrity_validation_timestamp_logic ... ok
[INFO] [stdout] test save::tests::test_data_integrity_validation_pet_stats_invalid_range ... ok
[INFO] [stdout] test save::tests::test_evolution_data_json_serialization ... ok
[INFO] [stdout] test save::tests::test_enhanced_validation_integration ... ok
[INFO] [stdout] test save::tests::test_cross_platform_save_directory ... ok
[INFO] [stdout] test save::tests::test_corruption_detection_extreme_values ... ok
[INFO] [stdout] test save::tests::test_directory_path_structure ... ok
[INFO] [stdout] test save::tests::test_get_save_directory_path ... ok
[INFO] [stdout] test save::tests::test_directory_utilities_integration ... ok
[INFO] [stdout] test save::tests::test_get_default_save_file_path ... ok
[INFO] [stdout] test save::tests::test_load_from_file_simulation_corruption ... ok
[INFO] [stdout] test save::tests::test_ensure_save_directory ... ok
[INFO] [stdout] test save::tests::test_load_from_file_simulation_json_error ... ok
[INFO] [stdout] test save::tests::test_load_from_file_simulation_not_found ... ok
[INFO] [stdout] test save::tests::test_load_from_file_simulation_success ... ok
[INFO] [stdout] test save::tests::test_load_and_calculate_offline_time_integration ... ok
[INFO] [stdout] test save::tests::test_load_pet_corrupted_file ... ok
[INFO] [stdout] test save::tests::test_load_from_file_simulation_invalid_data ... ok
[INFO] [stdout] test save::tests::test_load_from_file_simulation_permission_error ... ok
[INFO] [stdout] test save::tests::test_load_pet_already_dead_pet_stays_dead ... ok
[INFO] [stdout] test save::tests::test_load_pet_death_detection_during_offline_time ... ok
[INFO] [stdout] test save::tests::test_load_pet_handles_different_file_formats ... ok
[INFO] [stdout] test save::tests::test_comprehensive_validation_workflow ... ok
[INFO] [stdout] test save::tests::test_load_pet_no_death_with_moderate_offline_time ... ok
[INFO] [stdout] test save::tests::test_corruption_detection_empty_file ... ok
[INFO] [stdout] test save::tests::test_load_pet_file_not_found ... ok
[INFO] [stdout] test save::tests::test_atomic_save_prevents_corruption ... ok
[INFO] [stdout] test save::tests::test_load_pet_reads_save_file_correctly ... ok
[INFO] [stdout] test save::tests::test_evolution_data_persists_across_sessions ... ok
[INFO] [stdout] test save::tests::test_load_pet_success ... ok
[INFO] [stdout] test save::tests::test_load_pet_with_large_offline_time ... ok
[INFO] [stdout] test save::tests::test_evolution_data_survives_offline_time_updates ... ok
[INFO] [stdout] test save::tests::test_offline_time_calculation_hours_since_last_update ... ok
[INFO] [stdout] test save::tests::test_offline_time_calculation_with_minutes ... ok
[INFO] [stdout] test save::tests::test_offline_time_calculation_with_seconds ... ok
[INFO] [stdout] test save::tests::test_load_from_file_simulation_version_error ... ok
[INFO] [stdout] test save::tests::test_create_save_directory_success ... ok
[INFO] [stdout] test save::tests::test_load_pet_error_handling_preserves_time_calculation_capability ... ok
[INFO] [stdout] test save::tests::test_evolution_system_integration_with_save_load ... ok
[INFO] [stdout] test save::tests::test_load_pet_preserves_timestamps_for_time_calculation ... ok
[INFO] [stdout] test save::tests::test_corruption_detection_garbage_data ... ok
[INFO] [stdout] test save::tests::test_save_file_format_validation_wrong_field_types ... ok
[INFO] [stdout] test save::tests::test_save_file_format_validation_valid_json ... ok
[INFO] [stdout] test save::tests::test_corruption_detection_inconsistent_data ... ok
[INFO] [stdout] test save::tests::test_new_game_creates_fresh_pet ... ok
[INFO] [stdout] test save::tests::test_new_game_handles_nonexistent_file ... ok
[INFO] [stdout] test save::tests::test_save_load_roundtrip_with_modified_pet ... ok
[INFO] [stdout] test save::tests::test_load_pet_with_zero_offline_time ... ok
[INFO] [stdout] test save::tests::test_save_file_format_validation_invalid_json ... ok
[INFO] [stdout] test save::tests::test_new_pet_evolution_defaults_persist ... ok
[INFO] [stdout] test save::tests::test_save_file_format_validation_missing_required_fields ... ok
[INFO] [stdout] test save::tests::test_load_pet_zero_offline_time_no_changes ... ok
[INFO] [stdout] test save::tests::test_corruption_detection_truncated_file ... ok
[INFO] [stdout] test save::tests::test_new_game_removes_existing_save ... ok
[INFO] [stdout] test save::tests::test_all_evolution_stages_persist ... ok
[INFO] [stdout] test save::tests::test_save_pet_invalid_file_path ... ok
[INFO] [stdout] test save::tests::test_save_to_file_simulation_disk_full ... ok
[INFO] [stdout] test save::tests::test_save_pet_invalid_data_fails ... ok
[INFO] [stdout] test save::tests::test_save_to_file_simulation_invalid_data ... ok
[INFO] [stdout] test save::tests::test_save_pet_atomic_success ... ok
[INFO] [stdout] test save::tests::test_save_pet_creates_temp_file_then_renames ... ok
[INFO] [stdout] test save::tests::test_save_pet_creates_parent_directory ... ok
[INFO] [stdout] test save::tests::test_save_to_file_simulation_permission_error ... ok
[INFO] [stdout] test save::tests::test_save_to_file_simulation_serialize_fail ... ok
[INFO] [stdout] test save::tests::test_savedata_clone_and_partialeq ... ok
[INFO] [stdout] test save::tests::test_save_to_file_simulation_success ... ok
[INFO] [stdout] test save::tests::test_savedata_from_json_empty_string ... ok
[INFO] [stdout] test save::tests::test_savedata_add_lifetime_hours ... ok
[INFO] [stdout] test save::tests::test_savedata_hours_since_last_update ... ok
[INFO] [stdout] test save::tests::test_savedata_new ... ok
[INFO] [stdout] test save::tests::test_savedata_json_format ... ok
[INFO] [stdout] test save::tests::test_savedata_serialization_roundtrip ... ok
[INFO] [stdout] test save::tests::test_savedata_from_json_success ... ok
[INFO] [stdout] test save::tests::test_savedata_pet_states_serialization ... ok
[INFO] [stdout] test save::tests::test_savedata_from_json_validation_failure ... ok
[INFO] [stdout] test save::tests::test_save_pet_with_different_pet_states ... ok
[INFO] [stdout] test save::tests::test_savedata_timestamps_serialization ... ok
[INFO] [stdout] test save::tests::test_savedata_to_json_validation_failure ... ok
[INFO] [stdout] test save::tests::test_savedata_to_json_success ... ok
[INFO] [stdout] test save::tests::test_savedata_validate_empty_version ... ok
[INFO] [stdout] test save::tests::test_savedata_from_json_invalid_format ... ok
[INFO] [stdout] test save::tests::test_savedata_update_pet ... ok
[INFO] [stdout] test save::tests::test_savedata_update_timestamp ... ok
[INFO] [stdout] test save::tests::test_savedata_validate_invalid_pet_stats ... ok
[INFO] [stdout] test save::tests::test_savedata_validate_invalid_timestamps ... ok
[INFO] [stdout] test save::tests::test_savedata_validate_negative_lifetime ... ok
[INFO] [stdout] test save::tests::test_savedata_validate_success ... ok
[INFO] [stdout] test save::tests::test_savedata_version_field ... ok
[INFO] [stdout] test save::tests::test_saveerror_clone_and_partialeq ... ok
[INFO] [stdout] test save::tests::test_saveerror_comprehensive_coverage ... ok
[INFO] [stdout] test save::tests::test_savedata_with_extreme_values ... ok
[INFO] [stdout] test save::tests::test_saveerror_debug ... ok
[INFO] [stdout] test save::tests::test_saveerror_display ... ok
[INFO] [stdout] test save::tests::test_saveerror_std_error_trait ... ok
[INFO] [stdout] test save::tests::test_saveerror_from_io_error ... ok
[INFO] [stdout] test save::tests::test_validate_corruption_indicators_all_zero_stats_alive ... ok
[INFO] [stdout] test save::tests::test_validate_corruption_indicators_dead_pet_with_health ... ok
[INFO] [stdout] test save::tests::test_validate_corruption_indicators_sick_pet_with_high_health ... ok
[INFO] [stdout] test save::tests::test_validate_corruption_indicators_identical_stats_anomaly ... ok
[INFO] [stdout] test save::tests::test_validate_data_integrity_future_timestamps ... ok
[INFO] [stdout] test save::tests::test_validate_data_integrity_unreasonable_lifetime ... ok
[INFO] [stdout] test save::tests::test_validate_save_file_format_empty_content ... ok
[INFO] [stdout] test save::tests::test_validate_save_file_format_invalid_json_syntax ... ok
[INFO] [stdout] test save::tests::test_validate_save_file_format_suspicious_patterns ... ok
[INFO] [stdout] test save::tests::test_validate_save_file_format_too_small ... ok
[INFO] [stdout] test save::tests::test_saveerror_from_serde_json_error ... ok
[INFO] [stdout] test save::tests::test_validate_save_path_not_exists ... ok
[INFO] [stdout] test save::tests::test_validate_version_compatibility_current_version ... ok
[INFO] [stdout] test save::tests::test_validate_save_path_success ... ok
[INFO] [stdout] test save::tests::test_validate_save_file_format_missing_required_fields ... ok
[INFO] [stdout] test save::tests::test_validate_save_file_format_valid_json ... ok
[INFO] [stdout] test save::tests::test_validate_save_file_format_too_large ... ok
[INFO] [stdout] test save::tests::test_validate_version_compatibility_future_major_version ... ok
[INFO] [stdout] test save::tests::test_validate_version_compatibility_malformed_version ... ok
[INFO] [stdout] test save::tests::test_validate_version_compatibility_old_version ... ok
[INFO] [stdout] test save::tests::test_version_compatibility_validation_empty_version ... ok
[INFO] [stdout] test sprites::tests::test_display_system_shows_appropriate_sprite_for_evolution_stage ... ok
[INFO] [stdout] test sprites::tests::test_get_all_sprites_completeness ... ok
[INFO] [stdout] test sprites::tests::test_get_sprite_with_state ... ok
[INFO] [stdout] test save::tests::test_version_compatibility_validation_current_version ... ok
[INFO] [stdout] test save::tests::test_version_compatibility_validation_future_version ... ok
[INFO] [stdout] test sprites::tests::test_sprite_consistency ... ok
[INFO] [stdout] test sprites::tests::test_sprite_characters_are_printable ... ok
[INFO] [stdout] test sprites::tests::test_sprite_dimensions ... ok
[INFO] [stdout] test sprites::tests::test_sprites_are_distinct ... ok
[INFO] [stdout] test sprites::tests::test_sprite_info_structure_completeness ... ok
[INFO] [stdout] test sprites::tests::test_sprite_line_counts ... ok
[INFO] [stdout] test sprites::tests::test_individual_sprite_functions ... ok
[INFO] [stdout] test sprites::tests::test_sprites_contain_visual_elements ... ok
[INFO] [stdout] test sprites::tests::test_task_69_acceptance_criteria_state_dependent_sprite_display ... ok
[INFO] [stdout] test save::tests::test_validate_save_path_not_directory ... ok
[INFO] [stdout] test sprites::tests::test_task_69_integration_with_pet_system ... ok
[INFO] [stdout] test sprites::tests::test_get_sprite_for_all_stages ... ok
[INFO] [stdout] test sprites::tests::test_task_69_sprite_consistency ... ok
[INFO] [stdout] test save::tests::test_version_compatibility_validation_malformed_version ... ok
[INFO] [stdout] test sprites::tests::test_task_69_state_sprites_visual_characteristics ... ok
[INFO] [stdout] test terminal::tests::test_alternate_screen ... ok
[INFO] [stdout] test terminal::tests::test_is_quit_key ... ok
[INFO] [stdout] test terminal::tests::test_alternate_screen_sequence ... ok
[INFO] [stdout] test terminal::tests::test_task_79_event_reading_functions_exist ... ok
[INFO] [stdout] test terminal::tests::test_task_79_resize_handler ... ok
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_alternate_screen_cross_platform ... ok
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_crossterm_backend_works ... ok
[INFO] [stdout] test terminal::tests::test_task_79_terminal_event_enum ... ok
[INFO] [stdout] test terminal::tests::test_functions_exist_and_callable ... ok
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_platform_specific_verification ... ok
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_error_handling_cross_platform ... ok
[INFO] [stdout] test save::tests::test_save_pet_permission_denied ... FAILED
[INFO] [stdout] test terminal::tests::test_tui_functions_exist ... ok
[INFO] [stdout] test terminal::tests::test_has_event_non_blocking ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_action_menu_with_custom_title ... ok
[INFO] [stdout] test terminal::tests::test_task_79_acceptance_criteria_terminal_functions_do_not_crash ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_action_menu_without_borders ... ok
[INFO] [stdout] test terminal::tests::test_setup_cleanup_sequence ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_can_display_all_actions ... ok
[INFO] [stdout] test ui::action_menu::tests::test_can_display_all_actions_without_borders ... ok
[INFO] [stdout] test terminal::tests::test_task_79_acceptance_criteria_terminal_setup_robust_for_resize ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_get_actions_text ... ok
[INFO] [stdout] test ui::action_menu::tests::test_get_content_area ... ok
[INFO] [stdout] test ui::action_menu::tests::test_get_selected_action ... ok
[INFO] [stdout] test terminal::tests::test_task_79_acceptance_criteria_terminal_state_consistency ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_get_selected_action_description ... ok
[INFO] [stdout] test ui::action_menu::tests::test_get_selected_index ... ok
[INFO] [stdout] test ui::action_menu::tests::test_navigation ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_59_acceptance_criteria_interactive_menu_functionality ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_59_acceptance_criteria_complete_action_menu_functionality ... ok
[INFO] [stdout] test terminal::tests::test_enable_disable_raw_mode ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_get_actions ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_59_action_menu_integration_with_player_actions ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_59_acceptance_criteria_menu_shows_action_details ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_59_acceptance_criteria_interactive_menu_showing_all_actions ... ok
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_event_handling_cross_platform ... FAILED
[INFO] [stdout] test terminal::tests::test_raw_mode_sequence ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_task_59_menu_boundary_conditions ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_actions_disabled_based_on_energy_requirements ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_action_status_function_provides_visual_info ... ok
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_full_terminal_lifecycle_cross_platform ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_actions_disabled_based_on_stat_maximums ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_actions_disabled_when_sleeping ... ok
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_raw_mode_cross_platform ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_actions_show_enabled_disabled_based_on_pet_state ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_menu_can_display_availability_info ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_visual_indicators_differentiate_states ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_acceptance_criteria_cooldown_integration_support ... ok
[INFO] [stdout] test terminal::tests::test_task_79_terminal_size_functions ... FAILED
[INFO] [stdout] test ui::action_menu::tests::test_select_by_index ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_visual_indicators_integration_with_existing_functionality ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_energy_based_action_availability ... ok
[INFO] [stdout] test ui::action_menu::tests::test_update_area ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_selected_action_availability_methods ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_sleeping_state_action_availability ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_stat_maximum_action_availability ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_visual_indicators_can_be_disabled ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_visual_indicators_initialization ... ok
[INFO] [stdout] test terminal::tests::test_task_79_graceful_resize_handling_simulation ... FAILED
[INFO] [stdout] test terminal::tests::test_task_79_resize_detection ... FAILED
[INFO] [stdout] test ui::comprehensive_tui_tests::test_cooldown_and_timing_systems ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_error_handling_integration ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_feedback_and_status_system ... ok
[INFO] [stdout] test ui::action_menu::tests::test_task_72_action_availability_update ... ok
[INFO] [stdout] test ui::action_menu::tests::test_action_menu_creation ... ok
[INFO] [stdout] test terminal::tests::test_terminal_setup_cleanup ... FAILED
[INFO] [stdout] test terminal::tests::test_task_80_acceptance_criteria_terminal_size_cross_platform ... FAILED
[INFO] [stdout] test ui::comprehensive_tui_tests::test_component_state_management ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_comprehensive_input_handling ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_comprehensive_input_validation_edge_cases ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_sprite_and_rendering_integration ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_ui_components_data_consistency ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_display_manager_comprehensive_scenarios ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_area_management ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_ui_error_scenarios_and_recovery ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_ui_components_with_data ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_ui_performance_and_memory_efficiency ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_ui_component_boundary_conditions ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_display_logic_refresh_cycles ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_border_and_detail_settings ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_cooldown_display_creation ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_cooldown_display_with_config ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_cooldown_display_with_title ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_create_progress_bar ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_format_remaining_time ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_get_active_cooldowns ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_get_cooldown_info_all_ready ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_get_status_message ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_task_76_qa_remaining_cooldown_time_display ... ok
[INFO] [stdout] test ui::death_screen::tests::test_area_management ... ok
[INFO] [stdout] test ui::death_screen::tests::test_content_area_calculation ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_task_76_qa_visual_indicators_and_colors ... ok
[INFO] [stdout] test ui::death_screen::tests::test_death_screen_with_custom_message ... ok
[INFO] [stdout] test ui::death_screen::tests::test_pet_stats_snapshot ... ok
[INFO] [stdout] test ui::death_screen::tests::test_reset ... ok
[INFO] [stdout] test ui::death_screen::tests::test_death_screen_without_borders ... ok
[INFO] [stdout] test ui::death_screen::tests::test_restart_option_selection ... ok
[INFO] [stdout] test ui::death_screen::tests::test_restart_options ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_task_76_qa_visual_countdown_timers_exist ... ok
[INFO] [stdout] test ui::death_screen::tests::test_death_screen_with_custom_title ... ok
[INFO] [stdout] test ui::death_screen::tests::test_task_74_acceptance_criteria_complete_death_screen_functionality ... ok
[INFO] [stdout] test ui::death_screen::tests::test_should_display ... ok
[INFO] [stdout] test ui::death_screen::tests::test_task_74_acceptance_criteria_death_screen_displays_appropriate_content ... ok
[INFO] [stdout] test ui::death_screen::tests::test_task_74_acceptance_criteria_special_ui_state_when_pet_dies ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_get_cooldown_color ... ok
[INFO] [stdout] test ui::death_screen::tests::test_update_from_pet ... ok
[INFO] [stdout] test ui::cooldown_display::tests::test_get_cooldown_info_with_active_cooldown ... ok
[INFO] [stdout] test ui::death_screen::tests::test_death_screen_creation ... ok
[INFO] [stdout] test ui::display_manager::tests::test_add_message ... ok
[INFO] [stdout] test ui::display_manager::tests::test_clear_message ... ok
[INFO] [stdout] test ui::display_manager::tests::test_pet_snapshot_equality ... ok
[INFO] [stdout] test ui::display_manager::tests::test_pet_snapshot_creation ... ok
[INFO] [stdout] test ui::display_manager::tests::test_needs_update_initial_call ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task66_ui_updates_automatically_without_user_input ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_layout_and_positioning ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task66_real_time_display_updates_core_functionality ... ok
[INFO] [stdout] test ui::display_manager::tests::test_display_manager_default ... ok
[INFO] [stdout] test ui::display_manager::tests::test_one_second_timed_refresh_default ... ok
[INFO] [stdout] test ui::display_manager::tests::test_needs_update_on_state_change ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_all_ui_components_creation ... ok
[INFO] [stdout] test ui::comprehensive_tui_tests::test_comprehensive_ui_integration ... ok
[INFO] [stdout] test ui::display_manager::tests::test_needs_update_on_stat_change ... ok
[INFO] [stdout] test ui::display_manager::tests::test_force_refresh ... ok
[INFO] [stdout] test ui::display_manager::tests::test_needs_timed_refresh ... FAILED
[INFO] [stdout] test ui::display_manager::tests::test_message_expiration ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task86_performance_statistics_tracking ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task66_acceptance_criteria_comprehensive ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task86_cache_performance ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task86_adaptive_refresh_reduces_frequency ... ok
[INFO] [stdout] test ui::display_manager::tests::test_display_manager_creation ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task86_smooth_rendering_without_flickering ... ok
[INFO] [stdout] test ui::display_manager::tests::test_display_manager_with_custom_refresh_interval ... ok
[INFO] [stdout] test ui::error_display::tests::test_action_result_error_conversion ... ok
[INFO] [stdout] test ui::display_manager::tests::test_default_timed_refresh_interval ... ok
[INFO] [stdout] test ui::display_manager::tests::test_timed_refresh_updates_timestamp ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task67_timed_refresh_shows_current_pet_state ... ok
[INFO] [stdout] test ui::display_manager::tests::test_timed_refresh_triggers_update ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task86_acceptance_criteria_comprehensive ... ok
[INFO] [stdout] test ui::display_manager::tests::test_timed_refresh_system_integration ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task86_efficient_update_cycles ... ok
[INFO] [stdout] test ui::error_display::tests::test_add_error_messages ... ok
[INFO] [stdout] test ui::error_display::tests::test_area_management ... ok
[INFO] [stdout] test ui::error_display::tests::test_clear_errors ... ok
[INFO] [stdout] test ui::error_display::tests::test_display_area_with_borders ... ok
[INFO] [stdout] test ui::error_display::tests::test_display_area_without_borders ... ok
[INFO] [stdout] test ui::error_display::tests::test_error_display_creation ... ok
[INFO] [stdout] test ui::error_display::tests::test_error_message_prefixes ... ok
[INFO] [stdout] test ui::error_display::tests::test_error_limit ... ok
[INFO] [stdout] test ui::error_display::tests::test_save_error_conversion ... ok
[INFO] [stdout] test ui::error_display::tests::test_error_message_styling ... ok
[INFO] [stdout] test ui::error_handler::tests::test_add_error_message ... ok
[INFO] [stdout] test ui::error_display::tests::test_can_display_errors ... ok
[INFO] [stdout] test ui::error_handler::tests::test_clear_errors ... ok
[INFO] [stdout] test ui::error_display::tests::test_default_error_display ... ok
[INFO] [stdout] test ui::error_display::tests::test_action_validation_error_conversion ... ok
[INFO] [stdout] test ui::error_handler::tests::test_error_handler_activation ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task86_dirty_flags_selective_rendering ... ok
[INFO] [stdout] test ui::error_handler::tests::test_error_handler_creation ... ok
[INFO] [stdout] test ui::error_handler::tests::test_error_handler_stats ... ok
[INFO] [stdout] test ui::error_handler::tests::test_handle_action_validation_error ... ok
[INFO] [stdout] test ui::error_handler::tests::test_handle_input_error ... ok
[INFO] [stdout] test ui::error_handler::tests::test_handle_save_error_file_not_found ... ok
[INFO] [stdout] test ui::error_handler::tests::test_handle_save_error_with_startup_screen ... ok
[INFO] [stdout] test ui::error_handler::tests::test_handle_system_error ... ok
[INFO] [stdout] test ui::error_handler::tests::test_handle_terminal_resize ... ok
[INFO] [stdout] test ui::error_handler::tests::test_recoverable_error_properties ... ok
[INFO] [stdout] test ui::error_handler::tests::test_recovery_result_to_status_message ... ok
[INFO] [stdout] test ui::display_manager::tests::test_timed_refresh_interval_creation ... ok
[INFO] [stdout] test ui::error_handler::tests::test_task85_attempts_recovery ... ok
[INFO] [stdout] test ui::error_handler::tests::test_task85_comprehensive_error_recovery ... ok
[INFO] [stdout] test ui::error_handler::tests::test_task85_error_handling_integration ... ok
[INFO] [stdout] test ui::error_handler::tests::test_task85_provides_user_feedback ... ok
[INFO] [stdout] test ui::error_handler::tests::test_task85_ui_handles_errors_gracefully ... ok
[INFO] [stdout] test ui::error_handler::tests::test_handle_action_execution_error ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_create_status_message ... ok
[INFO] [stdout] test ui::error_handler::tests::test_recovery_attempt_cooldown ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_create_status_message_all_stages ... ok
[INFO] [stdout] test ui::display_manager::tests::test_timed_refresh_with_no_pet_changes ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_evolution_popup_with_duration ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_evolution_popup_with_title ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_get_area ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_default_popup ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_get_evolved_stage ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_evolution_popup_creation ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_hide_popup ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_get_remaining_time_when_inactive ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_is_visible_when_active ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_qa_evolution_popup_shows_correct_stage ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_qa_evolution_popup_ui_integration ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_is_visible_when_inactive ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_set_show_borders ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_show_evolution ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_get_remaining_time_when_active ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_set_area ... ok
[INFO] [stdout] test ui::feedback::tests::test_action_execution_failure_feedback ... ok
[INFO] [stdout] test ui::feedback::tests::test_action_execution_feedback ... ok
[INFO] [stdout] test ui::feedback::tests::test_clear_all ... ok
[INFO] [stdout] test ui::feedback::tests::test_evolution_feedback ... ok
[INFO] [stdout] test ui::feedback::tests::test_button_press_feedback ... ok
[INFO] [stdout] test ui::feedback::tests::test_feedback_limit ... ok
[INFO] [stdout] test ui::feedback::tests::test_feedback_is_active ... ok
[INFO] [stdout] test ui::feedback::tests::test_feedback_manager_creation ... ok
[INFO] [stdout] test ui::feedback::tests::test_feedback_stats ... ok
[INFO] [stdout] test ui::feedback::tests::test_status_change_feedback ... ok
[INFO] [stdout] test ui::feedback::tests::test_system_feedback ... ok
[INFO] [stdout] test ui::feedback::tests::test_task_68_acceptance_criteria_feedback_timing_and_lifecycle ... ok
[INFO] [stdout] test ui::feedback::tests::test_task_68_acceptance_criteria_immediate_visual_response_to_action_execution ... ok
[INFO] [stdout] test ui::feedback::tests::test_feedback_type_display_durations ... ok
[INFO] [stdout] test ui::feedback::tests::test_task_68_acceptance_criteria_immediate_visual_response_to_button_presses ... ok
[INFO] [stdout] test ui::feedback::tests::test_task_68_acceptance_criteria_rendering_capability ... ok
[INFO] [stdout] test ui::feedback::tests::test_feedback_manager_enable_disable ... ok
[INFO] [stdout] test ui::feedback::tests::test_task_68_acceptance_criteria_visual_feedback_system_completeness ... ok
[INFO] [stdout] test ui::layout::tests::test_layout_config_default ... ok
[INFO] [stdout] test ui::layout::tests::test_minimum_size_requirements ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_centered_overlay_positioning ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_error_overlay_positioning ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_fullscreen_overlay_positioning ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_overlay_boundary_constraints ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_overlay_position_enum ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_popup_boundary_adjustments ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_popup_overlay_positioning ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_status_overlay_positioning ... ok
[INFO] [stdout] test ui::layout::tests::test_distinct_layout_areas ... ok
[INFO] [stdout] test ui::error_handler::tests::test_update_removes_expired_errors ... ok
[INFO] [stdout] test ui::layout::tests::test_layout_with_custom_config ... ok
[INFO] [stdout] test ui::layout::tests::test_layout_areas_fit_within_frame ... ok
[INFO] [stdout] test ui::layout::tests::test_layout_validation ... ok
[INFO] [stdout] test ui::layout::tests::test_task_56_acceptance_criteria_main_screen_layout_with_distinct_areas ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_needs_resize_update ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_popup_expires_after_duration ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_update_hides_expired_popup ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_get_remaining_time_when_expired ... ok
[INFO] [stdout] test ui::layout::tests::test_title_area_calculation ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_update_for_resize ... ok
[INFO] [stdout] test ui::pet_display::tests::test_can_display_sprite ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_update_for_resize_with_config ... ok
[INFO] [stdout] test ui::pet_display::tests::test_pet_display_creation ... ok
[INFO] [stdout] test ui::pet_display::tests::test_pet_display_with_custom_title ... ok
[INFO] [stdout] test ui::pet_display::tests::test_pet_display_without_borders ... ok
[INFO] [stdout] test ui::pet_display::tests::test_sprite_area_dimensions_edge_cases ... ok
[INFO] [stdout] test ui::layout::tests::test_ui_layout_creation ... ok
[INFO] [stdout] test ui::error_display::tests::test_visibility_management ... ok
[INFO] [stdout] test ui::layout::tests::test_task17_comprehensive_overlay_system ... ok
[INFO] [stdout] test ui::pet_display::tests::test_task_57_acceptance_criteria_boundaries_enforcement ... ok
[INFO] [stdout] test ui::pet_display::tests::test_task_57_acceptance_criteria_dedicated_area_for_pet_sprite_rendering ... ok
[INFO] [stdout] test ui::pet_display::tests::test_sprite_area_dimensions_without_borders ... ok
[INFO] [stdout] test ui::pet_display::tests::test_task_57_acceptance_criteria_sprite_rendering_capability ... ok
[INFO] [stdout] test ui::pet_display::tests::test_task_57_acceptance_criteria_proper_centering ... ok
[INFO] [stdout] test ui::pet_display::tests::test_update_area ... ok
[INFO] [stdout] test ui::pet_display::tests::test_sprite_area_dimensions_with_borders ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_area_management ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_can_wake_naturally ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_format_sleep_duration_helper ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_min_sleep_info ... ok
[INFO] [stdout] test ui::pet_display::tests::test_task_57_pet_display_module_comprehensive_functionality ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_sleep_display_with_custom_title ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_sleep_display_creation ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_content_area_calculation ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_sleep_display_without_borders ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_sleep_indicator ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_sleep_progress ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_sleep_status_text ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_sleep_status_transition ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_should_pet_wake_naturally_helper ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_task_73_acceptance_criteria_complete_sleep_state_ui_functionality ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_update_sleep_status_awake_pet ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_task_73_acceptance_criteria_ui_disables_non_wake_actions_during_sleep ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_task_73_acceptance_criteria_ui_shows_sleeping_indicator ... ok
[INFO] [stdout] test ui::sleep_display::tests::test_update_sleep_status_sleeping_pet ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_can_render_sprite ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_render_pet_sprite_convenience_function ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_acceptance_criteria_graceful_handling_of_extreme_sizes ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_border_style_for_different_states ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_center_sprite_in_area ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_sprite_renderer_creation ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_sprite_renderer_with_custom_title ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_get_sprite_info_function ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_sprite_renderer_with_state_effects ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_task_61_acceptance_criteria_display_sprites_based_on_evolution_stage ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_task_61_acceptance_criteria_display_sprites_based_on_state ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_text_style_for_different_states ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_update_area ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_get_selected_option ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_loading_state_enum ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_loading_state_initialization ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_sprite_renderer_without_borders ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_loading_state_transitions ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_option_count ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_qa_startup_screen_displays_title_and_options ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_qa_supports_load_and_new_game_options ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_qa_user_can_navigate_loading_options ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_reset ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_reset_clears_loading_state ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_select_specific_option ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_show_hide_visibility ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_startup_option_all ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_startup_option_display_name ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_startup_screen_new ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_startup_screen_with_title_and_subtitle ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_comprehensive_qa_acceptance_criteria ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_navigation ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_execute_selected_option_load_existing_no_file ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_recover_with_new_game ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_startup_screen_integration_with_save_system ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_ui_shows_error_messages ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_execute_selected_option_new_game ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_task_61_sprite_renderer_module_completeness ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_ui_shows_loading_states ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_ui_shows_success_state ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_title_subtitle_setters ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_can_display_all_bars ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_can_display_all_bars_without_borders ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_energy_color_coding ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_format_bars_as_text_without_values ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_format_bars_as_text ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task67_acceptance_criteria_comprehensive ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_hunger_color_coding ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_bars_with_custom_title ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_bars_creation ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_health_color_coding ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_bars_without_borders ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_level_colors ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_bars_with_values_configuration ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_level_from_value ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_level_names ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_acceptance_criteria_layout_adapts_to_resize_events ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_values_equality ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_values_from_pet ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_62_acceptance_criteria_animated_stat_bars_visual_indicators ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_62_acceptance_criteria_colored_progress_bars_for_each_stat ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_62_acceptance_criteria_comprehensive_stat_bars_functionality ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_62_acceptance_criteria_different_colors_based_on_stat_levels ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_62_stat_bars_module_integration ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_71_acceptance_criteria_stat_bars_change_color_based_on_levels ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_71_color_transitions_across_all_stat_ranges ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_71_specific_stat_color_behavior ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_task_71_comprehensive_acceptance_criteria ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_can_display_all_stats_without_borders ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_update_area ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_boundary_conditions ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_display_formatting ... ok
[INFO] [stdout] test ui::evolution_popup::tests::test_qa_temporary_notification_display ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_improvement_areas ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_poor_care ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_recommendations ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_score_calculation ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_excellent_care ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_format_stats_text ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_has_changes_detection ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_get_content_area ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_get_stats_summary ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_stats_panel_care_assessment_integration ... ok
[INFO] [stdout] test ui::stat_bars::tests::test_stat_level_summary ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_stats_panel_creation ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_stats_panel_with_custom_title ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_stats_panel_with_progress_bars ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_stats_panel_without_borders ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_task_58_acceptance_criteria_boundary_cases_for_stats_display ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_task_58_acceptance_criteria_complete_stats_panel_functionality ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_task_58_acceptance_criteria_stats_summary_functionality ... ok
[INFO] [stdout] test ui::status_area::tests::test_add_action_result_messages ... ok
[INFO] [stdout] test ui::status_area::tests::test_add_notification_messages ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_task_58_acceptance_criteria_panel_showing_all_pet_stats_with_labels ... ok
[INFO] [stdout] test ui::status_area::tests::test_add_system_messages ... ok
[INFO] [stdout] test ui::status_area::tests::test_can_display_messages ... ok
[INFO] [stdout] test ui::status_area::tests::test_clear_messages ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_resize_handling_comprehensive ... ok
[INFO] [stdout] test ui::status_area::tests::test_display_area_with_borders ... ok
[INFO] [stdout] test ui::sprite_renderer::tests::test_task_61_acceptance_criteria_sprite_rendering_functionality ... ok
[INFO] [stdout] test ui::status_area::tests::test_display_area_without_borders ... ok
[INFO] [stdout] test ui::status_area::tests::test_message_limit ... ok
[INFO] [stdout] test ui::status_area::tests::test_message_styling ... ok
[INFO] [stdout] test ui::status_area::tests::test_mixed_message_types ... ok
[INFO] [stdout] test ui::status_area::tests::test_status_area_creation ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_update_area ... ok
[INFO] [stdout] test ui::status_area::tests::test_area_management ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_task_58_stats_panel_module_integration ... ok
[INFO] [stdout] test ui::status_area::tests::test_default_status_area ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_get_minimal_layout ... ok
[INFO] [stdout] test ui::pet_display::tests::test_center_sprite_in_area ... ok
[INFO] [stdout] test ui::startup_screen::tests::test_task84_ui_handles_save_load_operations_flow ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_can_display_all_stats ... ok
[INFO] [stdout] test ui::stats_panel::tests::test_care_quality_assessment_dead_pet ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_acceptance_criteria_minimum_size_enforcement ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_acceptance_criteria_ui_handles_terminal_resize_without_crashing ... ok
[INFO] [stdout] test ui::display_manager::tests::test_task67_display_refreshes_every_second ... ok
[INFO] [stdout] test ui::layout::tests::test_task_79_layout_consistency_during_rapid_resizes ... ok
[INFO] [stdout] test ui::feedback::tests::test_feedback_expiration ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- save::tests::test_save_pet_permission_denied stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'save::tests::test_save_pet_permission_denied' (511) panicked at src/save.rs:1737:9:
[INFO] [stdout] Save should fail with permission error
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f1ba - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b9f6a4 - digipet::save::tests::test_save_pet_permission_denied::h5472efe884f814cc
[INFO] [stdout]                                at /opt/rustwide/workdir/src/save.rs:1737:9
[INFO] [stdout]   20:     0x581943b9f807 - digipet::save::tests::test_save_pet_permission_denied::{{closure}}::h0ce128c94d38263e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/save.rs:1724:41
[INFO] [stdout]   21:     0x581943af7646 - core::ops::function::FnOnce::call_once::hf7e574716dfb11af
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_has_event_non_blocking stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_has_event_non_blocking' (592) panicked at src/terminal.rs:385:9:
[INFO] [stdout] has_event() should return Ok result
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f1ba - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1df0d - digipet::terminal::tests::test_has_event_non_blocking::h2b9fb4ec866b3918
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:385:9
[INFO] [stdout]   20:     0x581943b1df37 - digipet::terminal::tests::test_has_event_non_blocking::{{closure}}::h17d092aba6cb0500
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:377:37
[INFO] [stdout]   21:     0x581943af78c6 - core::ops::function::FnOnce::call_once::hf94d8c1bb7d2a1b4
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_79_acceptance_criteria_terminal_functions_do_not_crash stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_79_acceptance_criteria_terminal_functions_do_not_crash' (596) panicked at src/terminal.rs:431:9:
[INFO] [stdout] Enable raw mode should not crash: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b2191b - digipet::terminal::tests::test_task_79_acceptance_criteria_terminal_functions_do_not_crash::h921d9e60b3999339
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:431:9
[INFO] [stdout]   20:     0x581943b21e77 - digipet::terminal::tests::test_task_79_acceptance_criteria_terminal_functions_do_not_crash::{{closure}}::hf3675d0d1d112eab
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:426:74
[INFO] [stdout]   21:     0x581943af70f6 - core::ops::function::FnOnce::call_once::hf32bcaf436fa7b13
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_setup_cleanup_sequence stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_setup_cleanup_sequence' (595) panicked at src/terminal.rs:300:13:
[INFO] [stdout] Failed to setup terminal: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1e040 - digipet::terminal::tests::test_setup_cleanup_sequence::h40c827f4c7e6af09
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:300:13
[INFO] [stdout]   20:     0x581943b1e157 - digipet::terminal::tests::test_setup_cleanup_sequence::{{closure}}::haaf5c0a3f1abdd93
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:296:37
[INFO] [stdout]   21:     0x581943af2836 - core::ops::function::FnOnce::call_once::ha7deb4f079d2c0eb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_79_acceptance_criteria_terminal_setup_robust_for_resize stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_79_acceptance_criteria_terminal_setup_robust_for_resize' (597) panicked at src/terminal.rs:413:13:
[INFO] [stdout] Terminal setup should succeed on iteration 1: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b22460 - digipet::terminal::tests::test_task_79_acceptance_criteria_terminal_setup_robust_for_resize::haa0128b7352b9564
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:413:13
[INFO] [stdout]   20:     0x581943b225b7 - digipet::terminal::tests::test_task_79_acceptance_criteria_terminal_setup_robust_for_resize::{{closure}}::hdac2c061c891ec83
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:405:75
[INFO] [stdout]   21:     0x581943aecba6 - core::ops::function::FnOnce::call_once::h4787bd41c30e9fdf
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_79_acceptance_criteria_terminal_state_consistency stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_79_acceptance_criteria_terminal_state_consistency' (598) panicked at src/terminal.rs:462:13:
[INFO] [stdout] Raw mode enable should be consistent
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f1ba - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b20755 - digipet::terminal::tests::test_task_79_acceptance_criteria_terminal_state_consistency::hf703f548fd9706d0
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:462:13
[INFO] [stdout]   20:     0x581943b20807 - digipet::terminal::tests::test_task_79_acceptance_criteria_terminal_state_consistency::{{closure}}::hd4b0e9794368c526
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:456:69
[INFO] [stdout]   21:     0x581943aeea26 - core::ops::function::FnOnce::call_once::h6b477bff25202165
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_enable_disable_raw_mode stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_enable_disable_raw_mode' (590) panicked at src/terminal.rs:266:9:
[INFO] [stdout] Failed to enable raw mode: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1e64e - digipet::terminal::tests::test_enable_disable_raw_mode::hb4e3cd908ba7d8d8
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:266:9
[INFO] [stdout]   20:     0x581943b1e757 - digipet::terminal::tests::test_enable_disable_raw_mode::{{closure}}::h6a6e21b6fe3546cf
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:263:38
[INFO] [stdout]   21:     0x581943aeff86 - core::ops::function::FnOnce::call_once::h8055c4fb0c207556
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_80_acceptance_criteria_event_handling_cross_platform stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_80_acceptance_criteria_event_handling_cross_platform' (611) panicked at src/terminal.rs:693:9:
[INFO] [stdout] Event polling should work on all platforms: Err(Custom { kind: Other, error: "Failed to initialize input reader" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b21163 - digipet::terminal::tests::test_task_80_acceptance_criteria_event_handling_cross_platform::h9c98bc0370286b8d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:693:9
[INFO] [stdout]   20:     0x581943b21427 - digipet::terminal::tests::test_task_80_acceptance_criteria_event_handling_cross_platform::{{closure}}::h23012ce782a27094
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:684:72
[INFO] [stdout]   21:     0x581943af3676 - core::ops::function::FnOnce::call_once::hb4a4c47a36624afe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_raw_mode_sequence stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_raw_mode_sequence' (594) panicked at src/terminal.rs:312:13:
[INFO] [stdout] Failed to enable raw mode: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1dc60 - digipet::terminal::tests::test_raw_mode_sequence::hc181e15179a6f075
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:312:13
[INFO] [stdout]   20:     0x581943b1dd77 - digipet::terminal::tests::test_raw_mode_sequence::{{closure}}::h36949274b1d331e0
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:308:32
[INFO] [stdout]   21:     0x581943aed196 - core::ops::function::FnOnce::call_once::h4e0fe72e73e5b7dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_80_acceptance_criteria_full_terminal_lifecycle_cross_platform stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_80_acceptance_criteria_full_terminal_lifecycle_cross_platform' (613) panicked at src/terminal.rs:745:9:
[INFO] [stdout] Full terminal setup should work on all platforms: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stderr] [?1049h[?1049l[?1049h[?1049l[?1049h[?1049l[?1049h[?1049l[?1049h[?1049l[?1049h[?1049l[?1049h[?1049l[?1049h[?1049l[?1049l[?1049h[?1049l[?1049l[?1049lerror: test failed, to rerun pass `--lib`
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b226bb - digipet::terminal::tests::test_task_80_acceptance_criteria_full_terminal_lifecycle_cross_platform::h4729513004928dba
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:745:9
[INFO] [stdout]   20:     0x581943b22b97 - digipet::terminal::tests::test_task_80_acceptance_criteria_full_terminal_lifecycle_cross_platform::{{closure}}::hcd946bf24662a805
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:739:81
[INFO] [stdout]   21:     0x581943af6026 - core::ops::function::FnOnce::call_once::he3add0641f8f3e8a
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_80_acceptance_criteria_raw_mode_cross_platform stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_80_acceptance_criteria_raw_mode_cross_platform' (616) panicked at src/terminal.rs:644:9:
[INFO] [stdout] Raw mode enable should work on all platforms: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b2008c - digipet::terminal::tests::test_task_80_acceptance_criteria_raw_mode_cross_platform::hd6cf12d43723ea0c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:644:9
[INFO] [stdout]   20:     0x581943b20407 - digipet::terminal::tests::test_task_80_acceptance_criteria_raw_mode_cross_platform::{{closure}}::h7af46877582d58c1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:638:66
[INFO] [stdout]   21:     0x581943af14f6 - core::ops::function::FnOnce::call_once::h97807d9598c74650
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_79_terminal_size_functions stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_79_terminal_size_functions' (604) panicked at src/terminal.rs:508:9:
[INFO] [stdout] Getting terminal size should not crash: Err(Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1f372 - digipet::terminal::tests::test_task_79_terminal_size_functions::h0295f9f428f528fa
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:508:9
[INFO] [stdout]   20:     0x581943b1f717 - digipet::terminal::tests::test_task_79_terminal_size_functions::{{closure}}::h47df2f1d22f81851
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:503:46
[INFO] [stdout]   21:     0x581943aedbd6 - core::ops::function::FnOnce::call_once::h59f85e5a7dc1744a
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_79_graceful_resize_handling_simulation stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_79_graceful_resize_handling_simulation' (600) panicked at src/terminal.rs:585:9:
[INFO] [stdout] Should be able to get initial terminal size
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f1ba - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1f840 - digipet::terminal::tests::test_task_79_graceful_resize_handling_simulation::h7039404dae560aed
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:585:9
[INFO] [stdout]   20:     0x581943b1fe07 - digipet::terminal::tests::test_task_79_graceful_resize_handling_simulation::{{closure}}::h81dcf8a5c2809ef4
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:580:58
[INFO] [stdout]   21:     0x581943aedad6 - core::ops::function::FnOnce::call_once::h58e6e28ceb92a5ee
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_79_resize_detection stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_79_resize_detection' (601) panicked at src/terminal.rs:533:9:
[INFO] [stdout] Should be able to get terminal size
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f1ba - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1e840 - digipet::terminal::tests::test_task_79_resize_detection::h0c8eddb3c38d5266
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:533:9
[INFO] [stdout]   20:     0x581943b1edb7 - digipet::terminal::tests::test_task_79_resize_detection::{{closure}}::h3b7da23d5a43dc01
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:528:39
[INFO] [stdout]   21:     0x581943aea916 - core::ops::function::FnOnce::call_once::h20e3be7f0cfee117
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_terminal_setup_cleanup stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_terminal_setup_cleanup' (629) panicked at src/terminal.rs:288:9:
[INFO] [stdout] Failed to setup terminal: Err(Os { code: 6, kind: Uncategorized, message: "No such device or address" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b1e46e - digipet::terminal::tests::test_terminal_setup_cleanup::h53202d101cf03d5c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:288:9
[INFO] [stdout]   20:     0x581943b1e577 - digipet::terminal::tests::test_terminal_setup_cleanup::{{closure}}::hab8b29ddfc7d8d11
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:285:37
[INFO] [stdout]   21:     0x581943af5ba6 - core::ops::function::FnOnce::call_once::hdd8e23881a85d057
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- terminal::tests::test_task_80_acceptance_criteria_terminal_size_cross_platform stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'terminal::tests::test_task_80_acceptance_criteria_terminal_size_cross_platform' (626) panicked at src/terminal.rs:716:9:
[INFO] [stdout] Terminal size detection should work on all platforms: Err(Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f188 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943b20912 - digipet::terminal::tests::test_task_80_acceptance_criteria_terminal_size_cross_platform::hb65e5136b5e44675
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:716:9
[INFO] [stdout]   20:     0x581943b20df7 - digipet::terminal::tests::test_task_80_acceptance_criteria_terminal_size_cross_platform::{{closure}}::h483fff5f5571ecd3
[INFO] [stdout]                                at /opt/rustwide/workdir/src/terminal.rs:710:71
[INFO] [stdout]   21:     0x581943af2026 - core::ops::function::FnOnce::call_once::ha11aaff5c9505d95
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ui::display_manager::tests::test_needs_timed_refresh stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ui::display_manager::tests::test_needs_timed_refresh' (722) panicked at src/ui/display_manager.rs:2866:9:
[INFO] [stdout] Should not need timed refresh immediately after creation
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x581943d80832 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x581943d80832 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x581943d80832 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x581943d80832 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x581943d93aaa - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x581943d93aaa - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x581943d4d876 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x581943d4d876 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x581943d5f0c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x581943d5f0c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x581943d5ef61 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x581943c445fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x581943c445fe - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x581943d5f342 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x581943d5f342 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x581943d5f1ba - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x581943d5a179 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x581943d4144d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x581943d9ba5c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x581943a9c849 - digipet::ui::display_manager::tests::test_needs_timed_refresh::h9ea5eff942e0c7dd
[INFO] [stdout]                                at /opt/rustwide/workdir/src/ui/display_manager.rs:2866:9
[INFO] [stdout]   20:     0x581943a9c877 - digipet::ui::display_manager::tests::test_needs_timed_refresh::{{closure}}::h600b5200b7119fee
[INFO] [stdout]                                at /opt/rustwide/workdir/src/ui/display_manager.rs:2862:34
[INFO] [stdout]   21:     0x581943aebe66 - core::ops::function::FnOnce::call_once::h38d8fa071fa3387f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x581943c443bb - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x581943c443bb - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x581943c57dca - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x581943c57dca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x581943c57dca - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x581943c57dca - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x581943c57dca - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x581943c57dca - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x581943c57dca - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x581943c32224 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x581943c32224 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x581943c35bc2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x581943c35bc2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x581943c35bc2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x581943c35bc2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x581943c35bc2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x581943c35bc2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x581943d5527f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x581943d5527f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x795ffec33aa4 - <unknown>
[INFO] [stdout]   43:     0x795ffecc0a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     save::tests::test_save_pet_permission_denied
[INFO] [stdout]     terminal::tests::test_enable_disable_raw_mode
[INFO] [stdout]     terminal::tests::test_has_event_non_blocking
[INFO] [stdout]     terminal::tests::test_raw_mode_sequence
[INFO] [stdout]     terminal::tests::test_setup_cleanup_sequence
[INFO] [stdout]     terminal::tests::test_task_79_acceptance_criteria_terminal_functions_do_not_crash
[INFO] [stdout]     terminal::tests::test_task_79_acceptance_criteria_terminal_setup_robust_for_resize
[INFO] [stdout]     terminal::tests::test_task_79_acceptance_criteria_terminal_state_consistency
[INFO] [stdout]     terminal::tests::test_task_79_graceful_resize_handling_simulation
[INFO] [stdout]     terminal::tests::test_task_79_resize_detection
[INFO] [stdout]     terminal::tests::test_task_79_terminal_size_functions
[INFO] [stdout]     terminal::tests::test_task_80_acceptance_criteria_event_handling_cross_platform
[INFO] [stdout]     terminal::tests::test_task_80_acceptance_criteria_full_terminal_lifecycle_cross_platform
[INFO] [stdout]     terminal::tests::test_task_80_acceptance_criteria_raw_mode_cross_platform
[INFO] [stdout]     terminal::tests::test_task_80_acceptance_criteria_terminal_size_cross_platform
[INFO] [stdout]     terminal::tests::test_terminal_setup_cleanup
[INFO] [stdout]     ui::display_manager::tests::test_needs_timed_refresh
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 933 passed; 17 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "c5fc236d840b51e939c0b66e71bf97a30be75b1077c743d3e5a16e2d8ba31773", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c5fc236d840b51e939c0b66e71bf97a30be75b1077c743d3e5a16e2d8ba31773", kill_on_drop: false }`
[INFO] [stdout] c5fc236d840b51e939c0b66e71bf97a30be75b1077c743d3e5a16e2d8ba31773
