[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 1.47.0 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShybert%2Fsorb-rust" "/workspace/builds/worker-5/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Shybert/sorb-rust on toolchain 1.47.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "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-5/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" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "metadata" "--no-deps" "--format-version=1", 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] 1001b4bd3f5536b7f21e66c84477819b77bb081b0db5e952ad1a102d34a8a8a8
[INFO] running `Command { std: "docker" "start" "-a" "1001b4bd3f5536b7f21e66c84477819b77bb081b0db5e952ad1a102d34a8a8a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1001b4bd3f5536b7f21e66c84477819b77bb081b0db5e952ad1a102d34a8a8a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1001b4bd3f5536b7f21e66c84477819b77bb081b0db5e952ad1a102d34a8a8a8", kill_on_drop: false }`
[INFO] [stdout] 1001b4bd3f5536b7f21e66c84477819b77bb081b0db5e952ad1a102d34a8a8a8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d781005fa713aa8dcb1f14d1145ceb315313f288d6df8f495bf8c80da6345a1
[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" "6d781005fa713aa8dcb1f14d1145ceb315313f288d6df8f495bf8c80da6345a1", 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<Box<dyn Shape>>,
[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<Box<dyn Shape>>) -> 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<dyn Shape>] {
[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 0.67s
[INFO] running `Command { std: "docker" "inspect" "6d781005fa713aa8dcb1f14d1145ceb315313f288d6df8f495bf8c80da6345a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d781005fa713aa8dcb1f14d1145ceb315313f288d6df8f495bf8c80da6345a1", kill_on_drop: false }`
[INFO] [stdout] 6d781005fa713aa8dcb1f14d1145ceb315313f288d6df8f495bf8c80da6345a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2b8c2017c2eb48fc3dd21707ceaca5ba555daf1766f7ae5957aed27a810f2818
[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" "2b8c2017c2eb48fc3dd21707ceaca5ba555daf1766f7ae5957aed27a810f2818", 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.10s
[INFO] running `Command { std: "docker" "inspect" "2b8c2017c2eb48fc3dd21707ceaca5ba555daf1766f7ae5957aed27a810f2818", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b8c2017c2eb48fc3dd21707ceaca5ba555daf1766f7ae5957aed27a810f2818", kill_on_drop: false }`
[INFO] [stdout] 2b8c2017c2eb48fc3dd21707ceaca5ba555daf1766f7ae5957aed27a810f2818
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 809327bb86aaa44ba129e89bc05c6060a4f13070557d9885363dea0337bd4f44
[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" "809327bb86aaa44ba129e89bc05c6060a4f13070557d9885363dea0337bd4f44", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stdout] 
[INFO] [stderr] warning: struct is never constructed: `Camera`
[INFO] [stdout] running 110 tests
[INFO] [stderr]  --> src/render/camera.rs:5:12
[INFO] [stdout] test color::tests::color_multiplication ... ok
[INFO] [stderr]   |
[INFO] [stdout] test color::tests::subtraction ... ok
[INFO] [stderr] 5 | pub struct Camera {
[INFO] [stdout] test color::tests::init_new ... ok
[INFO] [stderr]   |            ^^^^^^
[INFO] [stdout] test color::tests::scalar_multiplication ... ok
[INFO] [stderr]   |
[INFO] [stdout] test geometry::matrix::tests::equality_identical ... ok
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] test geometry::matrix::tests::index_set ... ok
[INFO] [stderr] 
[INFO] [stdout] test geometry::matrix::tests::equality_different ... ok
[INFO] [stderr] warning: associated function is never used: `render`
[INFO] [stdout] test geometry::matrix::tests::init_identity ... ok
[INFO] [stderr]  --> src/render/camera.rs:9:10
[INFO] [stdout] test geometry::matrix::tests::init_default ... ok
[INFO] [stderr]   |
[INFO] [stdout] test geometry::matrix::tests::index_get ... ok
[INFO] [stderr] 9 |   pub fn render(&self, scene: &Scene, canvas: &mut Canvas, transform: Matrix) {
[INFO] [stdout] test geometry::matrix::tests::init_new ... ok
[INFO] [stderr]   |          ^^^^^^
[INFO] [stdout] test geometry::matrix::tests::invert ... ok
[INFO] [stderr] 
[INFO] [stdout] test geometry::matrix::tests::matrix_ray_multiplication ... ok
[INFO] [stderr] warning: associated function is never used: `to_ppm`
[INFO] [stdout] test color::tests::set ... ok
[INFO] [stderr]   --> src/render/canvas.rs:41:10
[INFO] [stdout] test geometry::matrix::tests::multiplying_by_inverse_gives_identity_matrix ... ok
[INFO] [stderr]    |
[INFO] [stdout] test geometry::matrix::tests::multiplying_identity_matrix_does_nothing ... ok
[INFO] [stderr] 41 |   pub fn to_ppm(&self) -> String {
[INFO] [stdout] test color::tests::addition ... ok
[INFO] [stderr]    |          ^^^^^^
[INFO] [stdout] test color::tests::init_default ... ok
[INFO] [stderr] 
[INFO] [stdout] test color::tests::equality ... ok
[INFO] [stderr] warning: 3 warnings emitted
[INFO] [stdout] test geometry::matrix::tests::matrix_matrix_multiplication ... ok
[INFO] [stderr] 
[INFO] [stdout] test geometry::interaction::tests::get_color ... ok
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.17s
[INFO] [stdout] test geometry::matrix::tests::scaling_by_negative_value_is_reflection ... ok
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/sorb_rust-bd1036e2ae4b97de
[INFO] [stdout] test geometry::matrix::tests::matrix_vector_multiplication ... ok
[INFO] [stdout] test geometry::matrix::tests::scaling_inverse_scales_in_reverse ... ok
[INFO] [stdout] test geometry::matrix::tests::scaling_scales_points ... ok
[INFO] [stdout] test geometry::matrix::tests::shear ... ok
[INFO] [stdout] test geometry::matrix::tests::scaling_scales_vectors ... ok
[INFO] [stdout] test geometry::matrix::tests::translation_moves_points ... ok
[INFO] [stdout] test geometry::matrix::tests::transpose ... ok
[INFO] [stdout] test geometry::point::tests::addition_vector ... ok
[INFO] [stdout] test geometry::point::tests::equality ... ok
[INFO] [stdout] test geometry::matrix::tests::matrix_point_multiplication ... ok
[INFO] [stdout] test geometry::matrix::tests::translation_does_not_affect_vectors ... ok
[INFO] [stdout] test geometry::matrix::tests::translation_inverse_moves_points_in_reverse ... ok
[INFO] [stdout] test geometry::matrix::tests::transposing_identity_matrix_does_nothing ... ok
[INFO] [stdout] test geometry::point::tests::init_default ... ok
[INFO] [stdout] test geometry::point::tests::init_new ... ok
[INFO] [stdout] test geometry::point::tests::init_origin ... ok
[INFO] [stdout] test geometry::point::tests::scalar_division ... ok
[INFO] [stdout] test geometry::matrix::tests::rotate_y ... ok
[INFO] [stdout] test geometry::matrix::tests::rotate_y_inverse_rotates_in_reverse ... ok
[INFO] [stdout] test geometry::matrix::tests::inverting_identity_matrix_does_nothing ... ok
[INFO] [stdout] test geometry::point::tests::subtracting_vector_gives_new_point ... ok
[INFO] [stdout] test geometry::ray::tests::get_direction ... ok
[INFO] [stdout] test geometry::ray::tests::get_origin ... ok
[INFO] [stdout] test geometry::point::tests::negation ... ok
[INFO] [stdout] test geometry::vector::tests::addition ... ok
[INFO] [stdout] test geometry::point::tests::scalar_multiplication ... ok
[INFO] [stdout] test geometry::point::tests::subtracting_points_gives_vector_between ... ok
[INFO] [stdout] test geometry::ray::tests::position ... ok
[INFO] [stdout] test geometry::vector::tests::init_zero ... ok
[INFO] [stdout] test geometry::vector::tests::init_default ... ok
[INFO] [stdout] test geometry::vector::tests::normalize ... ok
[INFO] [stdout] test geometry::matrix::tests::rotate_x_inverse_rotates_in_reverse ... ok
[INFO] [stdout] test geometry::vector::tests::normalize_length ... ok
[INFO] [stdout] test geometry::vector::tests::magnitude ... ok
[INFO] [stdout] test geometry::vector::tests::negation ... ok
[INFO] [stdout] test geometry::matrix::tests::chained_transformations ... ok
[INFO] [stdout] test geometry::vector::tests::cross_product ... ok
[INFO] [stdout] test geometry::vector::tests::dot_product ... ok
[INFO] [stdout] test geometry::vector::tests::equality ... ok
[INFO] [stdout] test geometry::vector::tests::init_new ... ok
[INFO] [stdout] test geometry::matrix::tests::rotate_x ... ok
[INFO] [stdout] test geometry::vector::tests::scalar_division ... ok
[INFO] [stdout] test geometry::vector::tests::subtraction ... ok
[INFO] [stdout] test render::canvas::tests::get_width ... ok
[INFO] [stdout] test render::canvas::tests::get_pixel ... ok
[INFO] [stdout] test render::canvas::tests::init ... ok
[INFO] [stdout] test render::scene::tests::init_default ... ok
[INFO] [stdout] test render::scene::tests::init_new ... ok
[INFO] [stdout] test shapes::sphere::tests::intersection_ray_behind ... ok
[INFO] [stdout] test shapes::sphere::tests::intersection_ray_at_tangent ... ok
[INFO] [stdout] test shapes::sphere::tests::intersect_interaction_has_sphere_color ... ok
[INFO] [stdout] test shapes::sphere::tests::intersection_ray_in_front ... ok
[INFO] [stdout] test shapes::sphere::tests::intersection_scaled_sphere ... ok
[INFO] [stdout] test shapes::sphere::tests::intersection_translated_sphere ... ok
[INFO] [stdout] test shapes::sphere::tests::normal_at_non_axial_point ... ok
[INFO] [stdout] test shapes::sphere::tests::normal_at_x_axis ... ok
[INFO] [stdout] test shapes::sphere::tests::normal_at_y_axis ... ok
[INFO] [stdout] test shapes::sphere::tests::normal_at_z_axis ... ok
[INFO] [stdout] test shapes::sphere::tests::normal_is_normalized ... ok
[INFO] [stdout] test shapes::sphere::tests::normal_of_transformed_sphere ... ok
[INFO] [stdout] test shapes::sphere::tests::normal_of_translated_sphere ... ok
[INFO] [stdout] test shapes::tests::hit_intersection_order_does_not_matter ... ok
[INFO] [stdout] test shapes::tests::hit_when_all_negative ... ok
[INFO] [stdout] test shapes::tests::hit_when_all_positive ... ok
[INFO] [stdout] test shapes::tests::hit_when_some_negative ... ok
[INFO] [stdout] test shapes::tests::intersection_init ... ok
[INFO] [stdout] test utils::tests::clamp_number_above_max ... ok
[INFO] [stdout] test geometry::vector::tests::scalar_multiplication ... ok
[INFO] [stdout] test shapes::sphere::tests::intersection_ray_inside ... ok
[INFO] [stdout] test shapes::sphere::tests::get_set_transformation ... ok
[INFO] [stdout] test shapes::sphere::tests::intersection_ray_misses ... ok
[INFO] [stdout] test render::canvas::tests::get_height ... ok
[INFO] [stdout] test shapes::sphere::tests::init_new ... ok
[INFO] [stdout] test utils::tests::clamp_number_at_max ... ok
[INFO] [stdout] test shapes::sphere::tests::init_default ... ok
[INFO] [stdout] test utils::tests::quadratic_two_roots ... ok
[INFO] [stdout] test utils::tests::quadratic_zero_roots ... ok
[INFO] [stdout] test utils::tests::clamp_number_at_min ... ok
[INFO] [stdout] test utils::tests::clamp_number_below_min ... ok
[INFO] [stdout] test utils::tests::quadratic_large_floating_point_numbers ... ok
[INFO] [stdout] test render::canvas::tests::get_pixels ... ok
[INFO] [stdout] test utils::tests::clamp_number_between ... ok
[INFO] [stdout] test utils::tests::quadratic_single_root ... ok
[INFO] [stdout] test render::canvas::tests::set_pixel ... ok
[INFO] [stdout] test shapes::sphere::tests::get_set_color ... ok
[INFO] [stdout] test geometry::matrix::tests::rotate_z ... ok
[INFO] [stdout] test geometry::matrix::tests::rotate_z_inverse_rotates_in_reverse ... 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
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "809327bb86aaa44ba129e89bc05c6060a4f13070557d9885363dea0337bd4f44", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "809327bb86aaa44ba129e89bc05c6060a4f13070557d9885363dea0337bd4f44", kill_on_drop: false }`
[INFO] [stdout] 809327bb86aaa44ba129e89bc05c6060a4f13070557d9885363dea0337bd4f44
