[INFO] fetching crate aprender-viz 0.31.2... [INFO] testing aprender-viz-0.31.2 against beta-2026-04-21 for beta-1.96-1 [INFO] extracting crate aprender-viz 0.31.2 into /workspace/builds/worker-7-tc2/source [INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-7-tc2/source/rust-toolchain.toml [INFO] started tweaking crates.io crate aprender-viz 0.31.2 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate aprender-viz 0.31.2 [INFO] tweaked toml for crates.io crate aprender-viz 0.31.2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate aprender-viz 0.31.2 on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate aprender-viz 0.31.2 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3bbe9db0d6544ac93d57a1401cf76ae96cb668dee8a8b843c0a5c043fa467e5c [INFO] running `Command { std: "docker" "start" "-a" "3bbe9db0d6544ac93d57a1401cf76ae96cb668dee8a8b843c0a5c043fa467e5c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3bbe9db0d6544ac93d57a1401cf76ae96cb668dee8a8b843c0a5c043fa467e5c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3bbe9db0d6544ac93d57a1401cf76ae96cb668dee8a8b843c0a5c043fa467e5c", kill_on_drop: false }` [INFO] [stdout] 3bbe9db0d6544ac93d57a1401cf76ae96cb668dee8a8b843c0a5c043fa467e5c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 57f1796074542de44b67dcd7d6398e4f4b4a4fcdb834e21ca0fae9e3d097580c [INFO] running `Command { std: "docker" "start" "-a" "57f1796074542de44b67dcd7d6398e4f4b4a4fcdb834e21ca0fae9e3d097580c", kill_on_drop: false }` [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling indexmap v2.13.1 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling provable-contracts-macros v0.2.2 [INFO] [stderr] Compiling hostname v0.4.2 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling cc v1.2.59 [INFO] [stderr] Compiling trueno-gemm-codegen v0.1.0 [INFO] [stderr] Compiling lz4_flex v0.11.6 [INFO] [stderr] Compiling aprender-viz v0.31.2 (/opt/rustwide/workdir) [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling serde_yaml_ng v0.10.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling trueno v0.17.5 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling trueno-quant v0.1.0 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling batuta-common v0.1.0 [INFO] [stderr] Finished `dev` profile [optimized + debuginfo] target(s) in 1m 19s [INFO] running `Command { std: "docker" "inspect" "57f1796074542de44b67dcd7d6398e4f4b4a4fcdb834e21ca0fae9e3d097580c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "57f1796074542de44b67dcd7d6398e4f4b4a4fcdb834e21ca0fae9e3d097580c", kill_on_drop: false }` [INFO] [stdout] 57f1796074542de44b67dcd7d6398e4f4b4a4fcdb834e21ca0fae9e3d097580c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9bf7d9bad9b90618ada695da299c4767d209e857318c5d8131d268111ec317d2 [INFO] running `Command { std: "docker" "start" "-a" "9bf7d9bad9b90618ada695da299c4767d209e857318c5d8131d268111ec317d2", kill_on_drop: false }` [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling indexmap v2.13.1 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling hostname v0.4.2 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling lz4_flex v0.11.6 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling batuta-common v0.1.0 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling trueno-quant v0.1.0 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling proptest v1.11.0 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling trueno v0.17.5 [INFO] [stderr] Compiling criterion v0.6.0 [INFO] [stderr] Compiling aprender-viz v0.31.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [optimized + debuginfo] target(s) in 2m 02s [INFO] running `Command { std: "docker" "inspect" "9bf7d9bad9b90618ada695da299c4767d209e857318c5d8131d268111ec317d2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9bf7d9bad9b90618ada695da299c4767d209e857318c5d8131d268111ec317d2", kill_on_drop: false }` [INFO] [stdout] 9bf7d9bad9b90618ada695da299c4767d209e857318c5d8131d268111ec317d2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1cf12c23d4ee429018345e17de8775ed7141f021a65c15625ef388ede2a6db43 [INFO] running `Command { std: "docker" "start" "-a" "1cf12c23d4ee429018345e17de8775ed7141f021a65c15625ef388ede2a6db43", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [optimized + debuginfo] target(s) in 0.40s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/trueno_viz-ccd9e8f918a6a092) [INFO] [stdout] [INFO] [stdout] running 551 tests [INFO] [stdout] test color::tests::test_from_hsla_trait ... ok [INFO] [stdout] test color::tests::test_hsla_to_rgba_cyan ... ok [INFO] [stdout] test color::tests::test_hsla_new ... ok [INFO] [stdout] test color::tests::test_hsla_default ... ok [INFO] [stdout] test color::tests::test_hsla_to_rgba ... ok [INFO] [stdout] test color::tests::test_hsla_to_rgba_high_hue ... ok [INFO] [stdout] test color::tests::test_lerp_boundaries ... ok [INFO] [stdout] test color::tests::test_rgba_constants ... ok [INFO] [stdout] test color::tests::test_rgba_to_array_from_array ... ok [INFO] [stdout] test color::tests::test_rgba_transparent ... ok [INFO] [stdout] test color::tests::test_rgba_default ... ok [INFO] [stdout] test color::tests::test_hsla_to_rgba_low_lightness ... ok [INFO] [stdout] test color::tests::test_rgba_with_alpha ... ok [INFO] [stdout] test framebuffer::tests::test_adjust_brightness ... ok [INFO] [stdout] test framebuffer::tests::test_backend_selection ... ok [INFO] [stdout] test framebuffer::tests::test_blend_pixel_out_of_bounds ... ok [INFO] [stdout] test framebuffer::tests::test_blend_over ... ok [INFO] [stdout] test framebuffer::tests::test_blend_pixel ... ok [INFO] [stdout] test framebuffer::tests::test_clear ... ok [INFO] [stdout] test framebuffer::tests::test_luminance_stats ... ok [INFO] [stdout] test framebuffer::tests::test_fill_rect ... ok [INFO] [stdout] test framebuffer::tests::test_invalid_dimensions ... ok [INFO] [stdout] test error::tests::test_error_display ... ok [INFO] [stdout] test error::tests::test_data_length_mismatch ... ok [INFO] [stdout] test framebuffer::tests::test_fill_rect_out_of_bounds ... ok [INFO] [stdout] test framebuffer::tests::test_pixels_access ... ok [INFO] [stdout] test framebuffer::tests::test_pixels_mut_access ... ok [INFO] [stdout] test framebuffer::tests::test_blend_over_dimension_mismatch ... ok [INFO] [stdout] test framebuffer::tests::test_fill_rect_empty ... ok [INFO] [stdout] test framebuffer::tests::test_row_access ... ok [INFO] [stdout] test framebuffer::tests::test_row_mut_out_of_bounds ... ok [INFO] [stdout] test framebuffer::tests::test_row_out_of_bounds ... ok [INFO] [stdout] test framebuffer::tests::test_to_compact_pixels_with_stride ... ok [INFO] [stdout] test geometry::tests::test_line_debug_clone ... ok [INFO] [stdout] test framebuffer::tests::test_set_pixel_out_of_bounds ... ok [INFO] [stdout] test geometry::tests::test_line_default ... ok [INFO] [stdout] test geometry::tests::test_line_new ... ok [INFO] [stdout] test framebuffer::tests::test_set_get_pixel ... ok [INFO] [stdout] test geometry::tests::test_line_length ... ok [INFO] [stdout] test geometry::tests::test_line_eq ... ok [INFO] [stdout] test geometry::tests::test_point_debug_clone ... ok [INFO] [stdout] test framebuffer::tests::test_to_compact_pixels ... ok [INFO] [stdout] test geometry::tests::test_point_default ... ok [INFO] [stdout] test geometry::tests::test_rect_contains ... ok [INFO] [stdout] test geometry::tests::test_point_eq ... ok [INFO] [stdout] test geometry::tests::test_point_lerp ... ok [INFO] [stdout] test geometry::tests::test_rect_center ... ok [INFO] [stdout] test geometry::tests::test_point_distance ... ok [INFO] [stdout] test framebuffer::tests::test_new_framebuffer ... ok [INFO] [stdout] test framebuffer::tests::test_is_aligned ... ok [INFO] [stdout] test geometry::tests::test_rect_area ... ok [INFO] [stdout] test geometry::tests::test_rect_default ... ok [INFO] [stdout] test geometry::tests::test_rect_eq ... ok [INFO] [stdout] test geometry::tests::test_point_new ... ok [INFO] [stdout] test geometry::tests::test_point_origin ... ok [INFO] [stdout] test geometry::tests::test_rect_from_corners ... ok [INFO] [stdout] test geometry::tests::test_rect_contains_outside ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_alpha ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_alpha_value ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_alpha_value_clamp ... ok [INFO] [stdout] test geometry::tests::test_rect_debug_clone ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_debug_clone ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_default ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_group ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_merge ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_merge_all_fields ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_shape ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_label ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_fill ... ok [INFO] [stdout] test grammar::coord::tests::test_coord_cartesian ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_size ... ok [INFO] [stdout] test grammar::coord::tests::test_coord_default ... ok [INFO] [stdout] test grammar::coord::tests::test_coord_debug_clone ... ok [INFO] [stdout] test grammar::coord::tests::test_coord_fixed ... ok [INFO] [stdout] test grammar::coord::tests::test_coord_flip ... ok [INFO] [stdout] test grammar::coord::tests::test_coord_polar ... ok [INFO] [stdout] test grammar::coord::tests::test_direction_on_non_polar ... ok [INFO] [stdout] test grammar::coord::tests::test_direction_zero ... ok [INFO] [stdout] test grammar::coord::tests::test_fixed_debug_clone ... ok [INFO] [stdout] test grammar::coord::tests::test_polar_debug_clone ... ok [INFO] [stdout] test grammar::coord::tests::test_flip_on_non_cartesian ... ok [INFO] [stdout] test grammar::coord::tests::test_start_angle_on_non_polar ... ok [INFO] [stdout] test grammar::coord::tests::test_xlim_on_non_cartesian ... ok [INFO] [stdout] test grammar::coord::tests::test_ylim_on_non_cartesian ... ok [INFO] [stdout] test grammar::data::tests::test_data_value_as_f32_on_text ... ok [INFO] [stdout] test grammar::coord::tests::test_direction_positive ... ok [INFO] [stdout] test grammar::data::tests::test_data_value_as_str_on_number ... ok [INFO] [stdout] test grammar::data::tests::test_data_value_conversions ... ok [INFO] [stdout] test grammar::data::tests::test_data_value_debug_clone_eq ... ok [INFO] [stdout] test grammar::data::tests::test_data_value_from_string ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_add_column_str ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_columns ... ok [INFO] [stdout] test grammar::data::tests::test_data_value_null ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_debug_clone ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_default ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_from_data ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_from_xy_unequal ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_from_xy ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_get ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_empty ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_get_f32 ... ok [INFO] [stdout] test grammar::data::tests::test_dataframe_get_missing ... ok [INFO] [stdout] test grammar::facet::tests::test_facet_col ... ok [INFO] [stdout] test grammar::facet::tests::test_facet_debug_clone ... ok [INFO] [stdout] test grammar::facet::tests::test_facet_default ... ok [INFO] [stdout] test grammar::facet::tests::test_facet_grid ... ok [INFO] [stdout] test grammar::facet::tests::test_facet_none ... ok [INFO] [stdout] test grammar::facet::tests::test_facet_row ... ok [INFO] [stdout] test grammar::facet::tests::test_facet_wrap ... ok [INFO] [stdout] test grammar::geom::tests::test_alpha_on_non_area ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_area ... ok [INFO] [stdout] test grammar::geom::tests::test_bins_on_non_histogram ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_area_alpha ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_area_alpha_clamp ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_bar_width ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_bar ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_boxplot ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_clone ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_debug ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_hline ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_histogram_bins ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_point ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_line_width ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_smooth ... ok [INFO] [stdout] test grammar::geom::tests::test_point_shape_clone_eq ... ok [INFO] [stdout] test grammar::geom::tests::test_point_shape_default ... ok [INFO] [stdout] test grammar::geom::tests::test_point_shapes ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_with_aes ... ok [INFO] [stdout] test grammar::geom::tests::test_shape_on_non_point ... ok [INFO] [stdout] test grammar::geom::tests::test_smooth_methods_debug ... ok [INFO] [stdout] test grammar::geom::tests::test_width_on_non_line_bar ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_text ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_tile ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_type_debug ... ok [INFO] [stdout] test grammar::aes::tests::test_aes_builder ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_vline ... ok [INFO] [stdout] test grammar::ggplot::tests::test_built_ggplot_debug ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_violin ... ok [INFO] [stdout] test geometry::tests::test_rect_contains_boundary ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_error_no_layers ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_debug_clone ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_default ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_basic ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_bar ... ok [INFO] [stdout] test grammar::geom::tests::test_smooth_method_default ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_layer ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_area ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_facet ... ok [INFO] [stdout] test grammar::geom::tests::test_geom_with_stat ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_multiple_layers ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_data ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_negative_values_bar ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_square_points ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_hline ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_coord_limits ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_layer_specific_data ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_coord_polar ... ok [INFO] [stdout] test grammar::ggplot::tests::test_layer_data ... ok [INFO] [stdout] test grammar::ggplot::tests::test_layer_debug_clone ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_with_theme ... ok [INFO] [stdout] test grammar::ggplot::tests::test_layer_aes ... ok [INFO] [stdout] test grammar::ggplot::tests::test_layer_with_aes ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_theme_void ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_bin ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_theme_bw ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_vline ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_title_labels ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_triangle_points ... ok [INFO] [stdout] test framebuffer::tests::test_clear_large ... ok [INFO] [stdout] test color::tests::test_rgba_lerp ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_bin2d ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_boxplot ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_clone ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_debug ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_identity ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_count ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_mean ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_density ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_sum ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_dark ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_classic ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_grey ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_grid_color ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_minimal ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_panel_background ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_all_options ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_basic ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_void ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_clone ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_responsive_disabled ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_dark_mode_disabled ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_display ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_responsive ... ok [INFO] [stdout] test output::png_encoder::tests::test_png_roundtrip_dimensions ... ok [INFO] [stdout] test output::png_encoder::tests::test_png_to_bytes ... ok [INFO] [stdout] test grammar::theme::tests::test_all_themes_valid ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_axis ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_dark_mode ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_customization ... ok [INFO] [stdout] test output::png_encoder::tests::test_png_various_sizes ... ok [INFO] [stdout] test output::svg::tests::test_svg_add_element ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_default ... ok [INFO] [stdout] test grammar::ggplot::tests::test_ggplot_single_point ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_save ... ok [INFO] [stdout] test output::png_encoder::tests::test_png_write_to_file ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_bw ... ok [INFO] [stdout] test output::html::tests::test_html_exporter_from_svg_string ... ok [INFO] [stdout] test output::svg::tests::test_svg_circle ... ok [INFO] [stdout] test output::svg::tests::test_svg_circle_outlined ... ok [INFO] [stdout] test output::svg::tests::test_svg_debug_clone ... ok [INFO] [stdout] test output::svg::tests::test_svg_polygon_no_stroke ... ok [INFO] [stdout] test output::svg::tests::test_svg_rect ... ok [INFO] [stdout] test output::svg::tests::test_svg_polyline ... ok [INFO] [stdout] test output::svg::tests::test_svg_element_debug_clone ... ok [INFO] [stdout] test output::svg::tests::test_svg_rect_outlined ... ok [INFO] [stdout] test output::svg::tests::test_svg_encoder_default ... ok [INFO] [stdout] test output::svg::tests::test_svg_encoder_new ... ok [INFO] [stdout] test output::svg::tests::test_svg_encoder_width_height ... ok [INFO] [stdout] test output::svg::tests::test_svg_path ... ok [INFO] [stdout] test output::svg::tests::test_svg_path_no_stroke ... ok [INFO] [stdout] test output::svg::tests::test_svg_path_with_fill ... ok [INFO] [stdout] test output::svg::tests::test_svg_polygon ... ok [INFO] [stdout] test output::svg::tests::test_svg_line ... ok [INFO] [stdout] test output::svg::tests::test_svg_from_framebuffer ... ok [INFO] [stdout] test output::svg::tests::test_svg_encoder_display ... ok [INFO] [stdout] test output::svg::tests::test_svg_text ... ok [INFO] [stdout] test grammar::theme::tests::test_theme_debug_clone ... ok [INFO] [stdout] test output::svg::tests::test_svg_text_anchored_middle ... ok [INFO] [stdout] test grammar::stat::tests::test_stat_smooth ... ok [INFO] [stdout] test output::svg::tests::test_svg_text_escaping ... ok [INFO] [stdout] test output::svg::tests::test_svg_text_xml_entities ... ok [INFO] [stdout] test output::svg::tests::test_svg_transparent_background ... ok [INFO] [stdout] test output::svg::tests::test_svg_text_anchored_end ... ok [INFO] [stdout] test output::terminal::tests::test_ansi_true_color_contains_escapes ... ok [INFO] [stdout] test output::svg::tests::test_text_anchor_default ... ok [INFO] [stdout] test output::svg::tests::test_svg_rgba_alpha ... ok [INFO] [stdout] test output::svg::tests::test_svg_write_to_file ... ok [INFO] [stdout] test output::terminal::tests::test_aspect_ratio_preservation ... ok [INFO] [stdout] test output::terminal::tests::test_gradient_produces_varied_output ... ok [INFO] [stdout] test plots::boxplot::tests::test_box_stats_all_nan ... ok [INFO] [stdout] test output::terminal::tests::test_invert_mode ... ok [INFO] [stdout] test plots::boxplot::tests::test_box_stats_basic ... ok [INFO] [stdout] test output::terminal::tests::test_default_width_capped_at_80 ... ok [INFO] [stdout] test plots::boxplot::tests::test_box_stats_debug_clone ... ok [INFO] [stdout] test output::terminal::tests::test_unicode_half_block_contains_ansi ... ok [INFO] [stdout] test plots::boxplot::tests::test_box_stats_empty ... ok [INFO] [stdout] test plots::boxplot::tests::test_box_stats_nan_filtered ... ok [INFO] [stdout] test output::svg::tests::test_text_anchor_debug_clone ... ok [INFO] [stdout] test output::terminal::tests::test_custom_dimensions ... ok [INFO] [stdout] test output::terminal::tests::test_ascii_render_basic ... ok [INFO] [stdout] test plots::boxplot::tests::test_box_stats_with_outliers ... ok [INFO] [stdout] test output::terminal::tests::test_ascii_render_black ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_build ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_default ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_all_empty_groups ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_debug_clone ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_empty_error ... ok [INFO] [stdout] test plots::boxplot::tests::test_box_stats_single ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_multiple_groups_outliers ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_colors ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_box_width ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_margin ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_box_width_clamp ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_render_tiny_margin ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_render ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_show_outliers_false ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_data_method ... ok [INFO] [stdout] test plots::boxplot::tests::test_built_boxplot_stats_labels ... ok [INFO] [stdout] test plots::boxplot::tests::test_boxplot_show_outliers_true ... ok [INFO] [stdout] test plots::boxplot::tests::test_kde_all_nan ... ok [INFO] [stdout] test plots::boxplot::tests::test_kde_basic ... ok [INFO] [stdout] test plots::boxplot::tests::test_built_boxplot_debug ... ok [INFO] [stdout] test plots::boxplot::tests::test_kde_empty ... ok [INFO] [stdout] test plots::boxplot::tests::test_percentile ... ok [INFO] [stdout] test plots::boxplot::tests::test_kde_nan_filtered ... ok [INFO] [stdout] test plots::boxplot::tests::test_built_violin_debug ... ok [INFO] [stdout] test plots::boxplot::tests::test_percentile_single ... ok [INFO] [stdout] test plots::boxplot::tests::test_percentile_empty ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_build ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_data_method ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_debug_clone ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_bandwidth ... ok [INFO] [stdout] test plots::boxplot::tests::test_kde_custom_bandwidth ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_default ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_empty_error ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_clone_debug ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_fill_color ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_labels ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_margin ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_multiple_groups ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_render ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_render_tiny_margin ... ok [INFO] [stdout] test plots::boxplot::tests::test_violin_show_box_false ... ok [INFO] [stdout] test plots::boxplot::tests::test_kde_constant_data ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_builder ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_from_predictions ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_metrics ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_normalization_row ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_with_labels ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_render ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_normalization_all ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_data_2d ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_empty_2d_matrix ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_normalization_none ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_f1_scores ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_predictions_valid ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_normalization_column ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_normalization_debug_clone_eq ... ok [INFO] [stdout] test plots::force_graph::tests::test_force_graph_attraction ... ok [INFO] [stdout] test plots::force_graph::tests::test_force_graph_empty_error ... ok [INFO] [stdout] test plots::force_graph::tests::test_force_graph_separation ... ok [INFO] [stdout] test plots::force_graph::tests::test_force_graph_single_node ... ok [INFO] [stdout] test plots::force_graph::tests::test_graph_edge_builder ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_normalization_default ... ok [INFO] [stdout] test plots::force_graph::tests::test_force_graph_simple ... ok [INFO] [stdout] test plots::force_graph::tests::test_force_graph_invalid_edge ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_border_options ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_color_scale ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_default ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_dimension_mismatch ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_border_customization ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_empty_data ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_builder ... ok [INFO] [stdout] test plots::confusion_matrix::tests::test_confusion_matrix_multiclass ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_custom_color_scale ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_data_2d ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_default ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_empty_data ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_margin ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_no_borders ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_palette_debug ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_constant_values ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_bin_count_empty ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_palettes ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_builder ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_render ... ok [INFO] [stdout] test plots::histogram::tests::test_bin_strategy_default ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_clone_debug ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_dimension_mismatch ... ok [INFO] [stdout] test plots::heatmap::tests::test_heatmap_palette_default ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_color ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_debug_clone ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_empty_data ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_default ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_fixed_zero ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_iqr_small ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_freedman_diaconis_zero_iqr ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_freedman_diaconis ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_normalize ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_std_small ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_sturges ... ok [INFO] [stdout] test plots::line::tests::test_douglas_peucker_simple ... ok [INFO] [stdout] test plots::line::tests::test_douglas_peucker_straight_line ... ok [INFO] [stdout] test plots::line::tests::test_douglas_peucker_too_few_points ... ok [INFO] [stdout] test plots::force_graph::tests::test_force_graph_render ... ok [INFO] [stdout] test plots::line::tests::test_line_chart_builder ... ok [INFO] [stdout] test plots::force_graph::tests::test_graph_node_builder ... ok [INFO] [stdout] test plots::line::tests::test_line_chart_data_mismatch ... ok [INFO] [stdout] test plots::line::tests::test_line_chart_render ... ok [INFO] [stdout] test plots::line::tests::test_line_chart_empty_data ... ok [INFO] [stdout] test plots::line::tests::test_line_chart_with_markers ... ok [INFO] [stdout] test plots::line::tests::test_line_chart_multi_series ... ok [INFO] [stdout] test plots::line::tests::test_line_chart_with_simplification ... ok [INFO] [stdout] test plots::line::tests::test_line_series_builder ... ok [INFO] [stdout] test plots::line::tests::test_perpendicular_distance ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_best_markers ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_scott ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_render ... ok [INFO] [stdout] test plots::histogram::tests::test_histogram_small_data ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_builder ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_fixed_y_range ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_higher_is_better ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_push ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_render ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_render_empty_series ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_empty ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_series_by_name ... ok [INFO] [stdout] test plots::loss_curve::tests::test_loss_curve_summary ... ok [INFO] [stdout] test plots::loss_curve::tests::test_metric_series_basic ... ok [INFO] [stdout] test plots::roc_pr::tests::test_compute_roc_length_mismatch ... ok [INFO] [stdout] test plots::loss_curve::tests::test_metric_series_clear ... ok [INFO] [stdout] test plots::roc_pr::tests::test_compute_roc_random ... ok [INFO] [stdout] test plots::roc_pr::tests::test_auc_calculation ... ok [INFO] [stdout] test plots::roc_pr::tests::test_compute_roc_empty ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_average_precision_getter ... ok [INFO] [stdout] test plots::roc_pr::tests::test_compute_roc_basic ... ok [INFO] [stdout] test plots::roc_pr::tests::test_curve_point_clone_debug ... ok [INFO] [stdout] test plots::roc_pr::tests::test_compute_roc_perfect ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_curve_baseline ... ok [INFO] [stdout] test plots::roc_pr::tests::test_compute_roc_no_positives ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_curve_render ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_curve_with_data ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_curve_color ... ok [INFO] [stdout] test plots::loss_curve::tests::test_metric_series_min_max ... ok [INFO] [stdout] test plots::loss_curve::tests::test_metric_series_smoothing ... ok [INFO] [stdout] test plots::roc_pr::tests::test_compute_pr_basic ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_data_clone_debug ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_empty ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_length_mismatch ... ok [INFO] [stdout] test plots::roc_pr::tests::test_pr_no_positives ... ok [INFO] [stdout] test plots::roc_pr::tests::test_roc_auc_getter ... ok [INFO] [stdout] test plots::roc_pr::tests::test_roc_curve_color ... ok [INFO] [stdout] test plots::roc_pr::tests::test_roc_curve_diagonal ... ok [INFO] [stdout] test plots::roc_pr::tests::test_roc_curve_render ... ok [INFO] [stdout] test plots::roc_pr::tests::test_roc_curve_with_data ... ok [INFO] [stdout] test plots::roc_pr::tests::test_roc_data_clone_debug ... ok [INFO] [stdout] test plots::roc_pr::tests::test_roc_no_negatives ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_default ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_empty_data ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_large_points ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_length_mismatch ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_render ... ok [INFO] [stdout] test prompt::tests::test_from_prompt_boxplot ... ok [INFO] [stdout] test prompt::tests::test_from_prompt_heatmap ... ok [INFO] [stdout] test prompt::tests::test_from_prompt_histogram ... ok [INFO] [stdout] test prompt::tests::test_from_prompt_line ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_alpha ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_alpha_clamp ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_builder ... ok [INFO] [stdout] test plots::scatter::tests::test_scatter_plot_clone_debug ... ok [INFO] [stdout] test prompt::tests::test_parse_array ... ok [INFO] [stdout] test prompt::tests::test_parse_array_empty ... ok [INFO] [stdout] test prompt::tests::test_parse_array_floats ... ok [INFO] [stdout] test prompt::tests::test_parse_array_invalid ... ok [INFO] [stdout] test prompt::tests::test_from_prompt_scatter ... ok [INFO] [stdout] test prompt::tests::test_parse_color_invalid_hex ... ok [INFO] [stdout] test prompt::tests::test_parse_color_hex ... ok [INFO] [stdout] test prompt::tests::test_parse_color_named ... ok [INFO] [stdout] test prompt::tests::test_parse_color_all_named ... ok [INFO] [stdout] test prompt::tests::test_parse_color_unknown ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_case_insensitive ... ok [INFO] [stdout] test prompt::tests::test_parse_matrix ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_empty ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_error_missing_data ... ok [INFO] [stdout] test prompt::tests::test_parse_matrix_invalid_format ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_boxplot_missing_groups ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_boxplot ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_histogram ... ok [INFO] [stdout] test prompt::tests::test_parse_matrix_multiple_rows ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_invalid_width ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_scatter ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_line_missing_y ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_size ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_title ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_title_multiword ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_unknown_option ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_with_options ... ok [INFO] [stdout] test prompt::tests::test_plotspec_debug_clone ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_heatmap_missing_matrix ... ok [INFO] [stdout] test prompt::tests::test_plotspec_default ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_histogram_missing_data ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_heatmap ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_invalid_size ... ok [INFO] [stdout] test prompt::tests::test_parse_prompt_invalid_height ... ok [INFO] [stdout] test prompt::tests::test_render_heatmap_missing_matrix ... ok [INFO] [stdout] test prompt::tests::test_render_histogram_missing_data ... ok [INFO] [stdout] test prompt::tests::test_render_boxplot_missing_groups ... ok [INFO] [stdout] test prompt::tests::test_render_unknown_plot_type ... ok [INFO] [stdout] test prompt::tests::test_render_line_missing_data ... ok [INFO] [stdout] test render::primitives::tests::test_draw_circle ... ok [INFO] [stdout] test render::primitives::tests::test_draw_circle_outline ... ok [INFO] [stdout] test render::primitives::tests::test_draw_line_horizontal ... ok [INFO] [stdout] test render::primitives::tests::test_draw_line_vertical ... ok [INFO] [stdout] test prompt::tests::test_render_scatter_missing_x ... ok [INFO] [stdout] test render::primitives::tests::test_draw_point ... ok [INFO] [stdout] test render::primitives::tests::test_draw_rect ... ok [INFO] [stdout] test render::primitives::tests::test_line_out_of_bounds ... ok [INFO] [stdout] test scale::tests::test_color_scale ... ok [INFO] [stdout] test render::primitives::tests::test_draw_line_diagonal ... ok [INFO] [stdout] test scale::tests::test_color_scale_builtin_invalid_domain ... ok [INFO] [stdout] test scale::tests::test_color_scale_blues ... ok [INFO] [stdout] test prompt::tests::test_render_scatter_missing_y ... ok [INFO] [stdout] test scale::tests::test_color_scale_clamping ... ok [INFO] [stdout] test render::primitives::tests::test_drawable_trait_line ... ok [INFO] [stdout] test scale::tests::test_color_scale_domain_range ... ok [INFO] [stdout] test render::primitives::tests::test_draw_line_aa ... ok [INFO] [stdout] test scale::tests::test_color_scale_magma ... ok [INFO] [stdout] test render::primitives::tests::test_drawable_trait_rect ... ok [INFO] [stdout] test scale::tests::test_color_scale_multi_segment ... ok [INFO] [stdout] test render::primitives::tests::test_drawable_trait_point ... ok [INFO] [stdout] test scale::tests::test_color_scale_invalid_empty ... ok [INFO] [stdout] test scale::tests::test_color_scale_greyscale ... ok [INFO] [stdout] test scale::tests::test_color_scale_heat ... ok [INFO] [stdout] test scale::tests::test_color_scale_viridis ... ok [INFO] [stdout] test scale::tests::test_color_scale_invalid_equal_domain ... ok [INFO] [stdout] test scale::tests::test_linear_scale ... ok [INFO] [stdout] test scale::tests::test_color_scale_red_blue ... ok [INFO] [stdout] test scale::tests::test_linear_scale_debug_clone ... ok [INFO] [stdout] test scale::tests::test_linear_scale_equal_domain_error ... ok [INFO] [stdout] test render::primitives::tests::test_circle_zero_radius ... ok [INFO] [stdout] test scale::tests::test_color_scale_debug_clone ... ok [INFO] [stdout] test scale::tests::test_linear_scale_from_data_equal_values ... ok [INFO] [stdout] test scale::tests::test_color_scale_single_color ... ok [INFO] [stdout] test scale::tests::test_linear_scale_invert ... ok [INFO] [stdout] test scale::tests::test_log_scale ... ok [INFO] [stdout] test scale::tests::test_log_scale_debug_clone ... ok [INFO] [stdout] test scale::tests::test_log_scale_domain_range ... ok [INFO] [stdout] test scale::tests::test_log_scale_invalid_domain ... ok [INFO] [stdout] test scale::tests::test_linear_scale_domain_range ... ok [INFO] [stdout] test scale::tests::test_log_scale_invalid_base ... ok [INFO] [stdout] test scale::tests::test_linear_scale_from_data ... ok [INFO] [stdout] test scale::tests::test_log_scale_very_small_value ... ok [INFO] [stdout] test scale::tests::test_log_scale_base_e ... ok [INFO] [stdout] test scale::tests::test_linear_scale_from_data_empty ... ok [INFO] [stdout] test scale::tests::test_log_scale_with_base ... ok [INFO] [stdout] test tests::test_library_compiles ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_accessors ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_clone_debug ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_custom_colors ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_default ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_dimensions_minimum ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_colors ... ok [INFO] [stdout] test render::primitives::tests::test_draw_rect_outline ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_over_budget ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_percentage ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_percentage_edge_cases ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_render ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_status_indicator ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_status_display ... ok [INFO] [stdout] test widgets::experiment::resource_bar::tests::test_resource_bar_render_over_budget ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_row_creation ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_status_terminal ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_status_is_active ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_default ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_add_run ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_filter_by_status ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_row_duration_display ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_metric_sorting ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_render_with_missing_metric ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_sort_accessors ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_sort_by_nonexistent_metric ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_sort_by_status ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_sort_with_missing_metrics ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_clone_debug ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_empty_data ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_render_empty ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_status_counts ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_render ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_dimensions_minimum ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_single_point ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_default ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_trend_falling ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_sort_with_none_durations ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_trend_stable ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_trend_indicator ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_trend_direction_debug ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_trend_rising ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_sparkline_with_trend ... ok [INFO] [stdout] test widgets::experiment::sparkline::tests::test_stability_threshold_clamp ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_render ... ok [INFO] [stdout] test widgets::experiment::run_table::tests::test_run_table_sorting ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 551 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running tests/collectors_macos_test.rs (/opt/rustwide/target/debug/deps/collectors_macos_test-1901b2c024cb3485) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/pixel_verification_test.rs (/opt/rustwide/target/debug/deps/pixel_verification_test-0b04140713871ca7) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/popperian_falsification_test.rs (/opt/rustwide/target/debug/deps/popperian_falsification_test-9bef92ded3d359ab) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/wgpu_multi_gpu_test.rs (/opt/rustwide/target/debug/deps/wgpu_multi_gpu_test-225b3d7bdc9b3bce) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests trueno_viz [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test src/lib.rs - (line 18) ... ignored [INFO] [stdout] test src/lib.rs - prelude (line 118) ... ignored [INFO] [stdout] test src/lib.rs - widgets (line 116) ... ignored [INFO] [stdout] test src/output/html.rs - output::html (line 8) ... ignored [INFO] [stdout] test src/prompt/mod.rs - prompt::from_prompt (line 368) ... ignored [INFO] [stdout] test src/lib.rs - prompt (line 126) ... ok [INFO] [stdout] test src/prompt/mod.rs - prompt::parse_prompt (line 171) ... ok [INFO] [stdout] test src/framebuffer.rs - framebuffer::Framebuffer::new (line 47) ... ok [INFO] [stdout] test src/lib.rs - grammar (line 97) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.73s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "1cf12c23d4ee429018345e17de8775ed7141f021a65c15625ef388ede2a6db43", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1cf12c23d4ee429018345e17de8775ed7141f021a65c15625ef388ede2a6db43", kill_on_drop: false }` [INFO] [stdout] 1cf12c23d4ee429018345e17de8775ed7141f021a65c15625ef388ede2a6db43