[INFO] cloning repository https://github.com/Shybert/sorb-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Shybert/sorb-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShybert%2Fsorb-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShybert%2Fsorb-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 38c69e5723460e8bc598747e542d3f613e666fe0 [INFO] testing Shybert/sorb-rust against beta-2021-01-01 for beta-1.50-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShybert%2Fsorb-rust" "/workspace/builds/worker-14/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Shybert/sorb-rust on toolchain beta-2021-01-01 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-01-01" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Shybert/sorb-rust [INFO] finished tweaking git repo https://github.com/Shybert/sorb-rust [INFO] tweaked toml for git repo https://github.com/Shybert/sorb-rust written to /workspace/builds/worker-14/source/Cargo.toml [INFO] crate git repo https://github.com/Shybert/sorb-rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-01-01" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7b2db2bd6a652a94b0efbf6f4380d331443452554b69c28f24a30016e493c9a0 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "7b2db2bd6a652a94b0efbf6f4380d331443452554b69c28f24a30016e493c9a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7b2db2bd6a652a94b0efbf6f4380d331443452554b69c28f24a30016e493c9a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7b2db2bd6a652a94b0efbf6f4380d331443452554b69c28f24a30016e493c9a0", kill_on_drop: false }` [INFO] [stdout] 7b2db2bd6a652a94b0efbf6f4380d331443452554b69c28f24a30016e493c9a0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ea15c2e43ca2638d515eca8d928410b4119c538b5eb06fccd66937bd7c982eea [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "ea15c2e43ca2638d515eca8d928410b4119c538b5eb06fccd66937bd7c982eea", kill_on_drop: false }` [INFO] [stderr] Compiling sorb-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: associated function is never used: `get_color` [INFO] [stdout] --> src/geometry/interaction.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn get_color(&self) -> &Color { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `translate` [INFO] [stdout] --> src/geometry/matrix.rs:74:10 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn translate(self, x: f64, y: f64, z: f64) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `scale` [INFO] [stdout] --> src/geometry/matrix.rs:85:10 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn scale(self, x: f64, y: f64, z: f64) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `rotate_x` [INFO] [stdout] --> src/geometry/matrix.rs:96:10 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn rotate_x(self, angle: f64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `rotate_y` [INFO] [stdout] --> src/geometry/matrix.rs:108:10 [INFO] [stdout] | [INFO] [stdout] 108 | pub fn rotate_y(self, angle: f64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `rotate_z` [INFO] [stdout] --> src/geometry/matrix.rs:120:10 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn rotate_z(self, angle: f64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `shear` [INFO] [stdout] --> src/geometry/matrix.rs:132:10 [INFO] [stdout] | [INFO] [stdout] 132 | pub fn shear(self, xy: f64, xz: f64, yx: f64, yz: f64, zx: f64, zy: f64) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `position` [INFO] [stdout] --> src/geometry/ray.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn position(&self, t: f64) -> Point { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `cross` [INFO] [stdout] --> src/geometry/vector.rs:88:8 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn cross(a: &Vector, b: &Vector) -> Vector { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Camera` [INFO] [stdout] --> src/render/camera.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Camera { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `render` [INFO] [stdout] --> src/render/camera.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn render(&self, scene: &Scene, canvas: &mut Canvas, transform: Matrix) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/render/canvas.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn new(width: usize, height: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_width` [INFO] [stdout] --> src/render/canvas.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn get_width(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_height` [INFO] [stdout] --> src/render/canvas.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_height(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_pixel_index` [INFO] [stdout] --> src/render/canvas.rs:27:6 [INFO] [stdout] | [INFO] [stdout] 27 | fn get_pixel_index(&self, x: usize, y: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_pixel` [INFO] [stdout] --> src/render/canvas.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn get_pixel(&self, x: usize, y: usize) -> &Color { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_pixels` [INFO] [stdout] --> src/render/canvas.rs:33:10 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn get_pixels(&self) -> &[Color] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_pixel` [INFO] [stdout] --> src/render/canvas.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn set_pixel(&mut self, x: usize, y: usize, color: &Color) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `to_ppm` [INFO] [stdout] --> src/render/canvas.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn to_ppm(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `objects` [INFO] [stdout] --> src/render/scene.rs:5:3 [INFO] [stdout] | [INFO] [stdout] 5 | objects: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/render/scene.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn new(objects: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_objects` [INFO] [stdout] --> src/render/scene.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn get_objects(&self) -> &[Box] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/shapes/sphere.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn new(color: Color, transformation: Matrix) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_color` [INFO] [stdout] --> src/shapes/sphere.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn set_color(&mut self, color: &Color) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `get_hit` [INFO] [stdout] --> src/shapes.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn get_hit(intersections: &[Intersection]) -> Option<&Intersection> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `clamp_number` [INFO] [stdout] --> src/utils.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn clamp_number(number: f64, min: f64, max: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 26 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.09s [INFO] running `Command { std: "docker" "inspect" "ea15c2e43ca2638d515eca8d928410b4119c538b5eb06fccd66937bd7c982eea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea15c2e43ca2638d515eca8d928410b4119c538b5eb06fccd66937bd7c982eea", kill_on_drop: false }` [INFO] [stdout] ea15c2e43ca2638d515eca8d928410b4119c538b5eb06fccd66937bd7c982eea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b839f597b30cd395d7a40ea3370b3a757018c30f0055fb2374b761d13e4e4658 [INFO] running `Command { std: "docker" "start" "-a" "b839f597b30cd395d7a40ea3370b3a757018c30f0055fb2374b761d13e4e4658", kill_on_drop: false }` [INFO] [stderr] Compiling sorb-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: struct is never constructed: `Camera` [INFO] [stdout] --> src/render/camera.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Camera { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `render` [INFO] [stdout] --> src/render/camera.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn render(&self, scene: &Scene, canvas: &mut Canvas, transform: Matrix) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `to_ppm` [INFO] [stdout] --> src/render/canvas.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn to_ppm(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.28s [INFO] running `Command { std: "docker" "inspect" "b839f597b30cd395d7a40ea3370b3a757018c30f0055fb2374b761d13e4e4658", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b839f597b30cd395d7a40ea3370b3a757018c30f0055fb2374b761d13e4e4658", kill_on_drop: false }` [INFO] [stdout] b839f597b30cd395d7a40ea3370b3a757018c30f0055fb2374b761d13e4e4658 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 56bcb7cf8c0d9399eebef23a4408869d1049803295f340806b63f341fe3b9b5a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "56bcb7cf8c0d9399eebef23a4408869d1049803295f340806b63f341fe3b9b5a", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: struct is never constructed: `Camera` [INFO] [stderr] --> src/render/camera.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Camera { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `render` [INFO] [stderr] --> src/render/camera.rs:9:10 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn render(&self, scene: &Scene, canvas: &mut Canvas, transform: Matrix) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `to_ppm` [INFO] [stderr] --> src/render/canvas.rs:41:10 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn to_ppm(&self) -> String { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 3 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1m 55s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/sorb_rust-c835b3ee735078a5 [INFO] [stdout] [INFO] [stdout] running 110 tests [INFO] [stdout] test color::tests::init_default ... ok [INFO] [stdout] test color::tests::color_multiplication ... ok [INFO] [stdout] test color::tests::init_new ... ok [INFO] [stdout] test color::tests::equality ... ok [INFO] [stdout] test color::tests::addition ... ok [INFO] [stdout] test color::tests::set ... ok [INFO] [stdout] test geometry::interaction::tests::get_color ... ok [INFO] [stdout] test geometry::matrix::tests::equality_different ... ok [INFO] [stdout] test geometry::matrix::tests::equality_identical ... ok [INFO] [stdout] test geometry::matrix::tests::index_set ... ok [INFO] [stdout] test geometry::matrix::tests::init_default ... ok [INFO] [stdout] test geometry::matrix::tests::init_new ... ok [INFO] [stdout] test geometry::matrix::tests::invert ... ok [INFO] [stdout] test geometry::matrix::tests::inverting_identity_matrix_does_nothing ... ok [INFO] [stdout] test geometry::matrix::tests::matrix_matrix_multiplication ... ok [INFO] [stdout] test geometry::matrix::tests::matrix_vector_multiplication ... ok [INFO] [stdout] test color::tests::scalar_multiplication ... ok [INFO] [stdout] test geometry::matrix::tests::matrix_point_multiplication ... ok [INFO] [stdout] test geometry::matrix::tests::index_get ... ok [INFO] [stdout] test geometry::matrix::tests::multiplying_by_inverse_gives_identity_matrix ... ok [INFO] [stdout] test geometry::matrix::tests::matrix_ray_multiplication ... ok [INFO] [stdout] test geometry::matrix::tests::multiplying_identity_matrix_does_nothing ... ok [INFO] [stdout] test color::tests::subtraction ... ok [INFO] [stdout] test geometry::matrix::tests::rotate_y_inverse_rotates_in_reverse ... ok [INFO] [stdout] test geometry::matrix::tests::rotate_x_inverse_rotates_in_reverse ... ok [INFO] [stdout] test geometry::matrix::tests::rotate_x ... ok [INFO] [stdout] test geometry::matrix::tests::rotate_y ... ok [INFO] [stdout] test geometry::matrix::tests::rotate_z ... ok [INFO] [stdout] test geometry::matrix::tests::scaling_scales_vectors ... ok [INFO] [stdout] test geometry::matrix::tests::init_identity ... ok [INFO] [stdout] test geometry::matrix::tests::rotate_z_inverse_rotates_in_reverse ... ok [INFO] [stdout] test geometry::matrix::tests::translation_inverse_moves_points_in_reverse ... ok [INFO] [stdout] test geometry::matrix::tests::chained_transformations ... ok [INFO] [stdout] test geometry::matrix::tests::transpose ... ok [INFO] [stdout] test geometry::matrix::tests::translation_does_not_affect_vectors ... ok [INFO] [stdout] test geometry::matrix::tests::translation_moves_points ... ok [INFO] [stdout] test geometry::point::tests::init_origin ... ok [INFO] [stdout] test geometry::point::tests::negation ... ok [INFO] [stdout] test geometry::matrix::tests::scaling_inverse_scales_in_reverse ... ok [INFO] [stdout] test geometry::point::tests::subtracting_vector_gives_new_point ... ok [INFO] [stdout] test geometry::matrix::tests::scaling_scales_points ... ok [INFO] [stdout] test geometry::matrix::tests::transposing_identity_matrix_does_nothing ... ok [INFO] [stdout] test geometry::point::tests::equality ... ok [INFO] [stdout] test geometry::ray::tests::get_direction ... ok [INFO] [stdout] test geometry::vector::tests::dot_product ... ok [INFO] [stdout] test geometry::point::tests::init_default ... ok [INFO] [stdout] test geometry::vector::tests::init_default ... ok [INFO] [stdout] test geometry::vector::tests::init_new ... ok [INFO] [stdout] test geometry::vector::tests::init_zero ... ok [INFO] [stdout] test geometry::vector::tests::cross_product ... ok [INFO] [stdout] test geometry::point::tests::subtracting_points_gives_vector_between ... ok [INFO] [stdout] test geometry::vector::tests::normalize_length ... ok [INFO] [stdout] test geometry::vector::tests::normalize ... ok [INFO] [stdout] test geometry::vector::tests::scalar_division ... ok [INFO] [stdout] test geometry::vector::tests::subtraction ... ok [INFO] [stdout] test geometry::vector::tests::scalar_multiplication ... ok [INFO] [stdout] test render::canvas::tests::get_pixel ... ok [INFO] [stdout] test geometry::matrix::tests::shear ... ok [INFO] [stdout] test render::canvas::tests::get_pixels ... ok [INFO] [stdout] test geometry::vector::tests::addition ... ok [INFO] [stdout] test geometry::vector::tests::magnitude ... ok [INFO] [stdout] test render::canvas::tests::init ... ok [INFO] [stdout] test geometry::vector::tests::equality ... ok [INFO] [stdout] test geometry::ray::tests::get_origin ... ok [INFO] [stdout] test geometry::ray::tests::position ... ok [INFO] [stdout] test geometry::point::tests::scalar_multiplication ... ok [INFO] [stdout] test render::scene::tests::init_default ... ok [INFO] [stdout] test shapes::sphere::tests::init_default ... ok [INFO] [stdout] test shapes::sphere::tests::get_set_color ... ok [INFO] [stdout] test shapes::sphere::tests::intersect_interaction_has_sphere_color ... ok [INFO] [stdout] test geometry::point::tests::addition_vector ... ok [INFO] [stdout] test render::canvas::tests::get_height ... ok [INFO] [stdout] test shapes::sphere::tests::intersection_ray_at_tangent ... ok [INFO] [stdout] test shapes::sphere::tests::intersection_ray_behind ... ok [INFO] [stdout] test shapes::sphere::tests::init_new ... ok [INFO] [stdout] test shapes::sphere::tests::intersection_scaled_sphere ... ok [INFO] [stdout] test shapes::sphere::tests::normal_at_x_axis ... ok [INFO] [stdout] test shapes::sphere::tests::normal_at_non_axial_point ... ok [INFO] [stdout] test geometry::vector::tests::negation ... ok [INFO] [stdout] test geometry::point::tests::scalar_division ... ok [INFO] [stdout] test geometry::point::tests::init_new ... ok [INFO] [stdout] test shapes::sphere::tests::get_set_transformation ... ok [INFO] [stdout] test geometry::matrix::tests::scaling_by_negative_value_is_reflection ... ok [INFO] [stdout] test render::canvas::tests::get_width ... ok [INFO] [stdout] test shapes::sphere::tests::normal_at_y_axis ... ok [INFO] [stdout] test shapes::sphere::tests::normal_of_transformed_sphere ... ok [INFO] [stdout] test shapes::tests::hit_intersection_order_does_not_matter ... ok [INFO] [stdout] test shapes::tests::intersection_init ... ok [INFO] [stdout] test shapes::tests::hit_when_all_negative ... ok [INFO] [stdout] test utils::tests::clamp_number_above_max ... ok [INFO] [stdout] test shapes::sphere::tests::normal_of_translated_sphere ... ok [INFO] [stdout] test shapes::tests::hit_when_all_positive ... ok [INFO] [stdout] test shapes::sphere::tests::intersection_translated_sphere ... ok [INFO] [stdout] test utils::tests::clamp_number_at_max ... ok [INFO] [stdout] test utils::tests::clamp_number_between ... ok [INFO] [stdout] test utils::tests::quadratic_large_floating_point_numbers ... ok [INFO] [stdout] test utils::tests::clamp_number_at_min ... ok [INFO] [stdout] test shapes::tests::hit_when_some_negative ... ok [INFO] [stdout] test shapes::sphere::tests::intersection_ray_inside ... ok [INFO] [stdout] test shapes::sphere::tests::intersection_ray_in_front ... ok [INFO] [stdout] test shapes::sphere::tests::intersection_ray_misses ... ok [INFO] [stdout] test render::scene::tests::init_new ... ok [INFO] [stdout] test utils::tests::quadratic_single_root ... ok [INFO] [stdout] test utils::tests::quadratic_two_roots ... ok [INFO] [stdout] test utils::tests::quadratic_zero_roots ... ok [INFO] [stdout] test shapes::sphere::tests::normal_is_normalized ... ok [INFO] [stdout] test utils::tests::clamp_number_below_min ... ok [INFO] [stdout] test shapes::sphere::tests::normal_at_z_axis ... ok [INFO] [stdout] test render::canvas::tests::set_pixel ... ok [INFO] [stdout] test geometry::matrix::tests::invert_panics_if_singular_matrix ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 110 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "56bcb7cf8c0d9399eebef23a4408869d1049803295f340806b63f341fe3b9b5a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "56bcb7cf8c0d9399eebef23a4408869d1049803295f340806b63f341fe3b9b5a", kill_on_drop: false }` [INFO] [stdout] 56bcb7cf8c0d9399eebef23a4408869d1049803295f340806b63f341fe3b9b5a