[INFO] cloning repository https://github.com/throttle2k/ray-tracer-challenge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/throttle2k/ray-tracer-challenge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthrottle2k%2Fray-tracer-challenge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthrottle2k%2Fray-tracer-challenge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a85b08d7ef7e07a87da7de25ad0e20cb08514e8b [INFO] testing throttle2k/ray-tracer-challenge against 1.85.0 for beta-1.86-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthrottle2k%2Fray-tracer-challenge" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/throttle2k/ray-tracer-challenge on toolchain 1.85.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.85.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/throttle2k/ray-tracer-challenge [INFO] finished tweaking git repo https://github.com/throttle2k/ray-tracer-challenge [INFO] tweaked toml for git repo https://github.com/throttle2k/ray-tracer-challenge written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/throttle2k/ray-tracer-challenge already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.85.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded perlin_noise v1.0.1 [INFO] [stderr] Downloaded yare v3.0.0 [INFO] [stderr] Downloaded nom v1.2.4 [INFO] [stderr] Downloaded meval v0.2.0 [INFO] [stderr] Downloaded yare-macro v3.0.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d590670aef9f053859d355bd91f4ecd14a81e8959d372adc2e98525125150074 [INFO] running `Command { std: "docker" "start" "-a" "d590670aef9f053859d355bd91f4ecd14a81e8959d372adc2e98525125150074", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d590670aef9f053859d355bd91f4ecd14a81e8959d372adc2e98525125150074", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d590670aef9f053859d355bd91f4ecd14a81e8959d372adc2e98525125150074", kill_on_drop: false }` [INFO] [stdout] d590670aef9f053859d355bd91f4ecd14a81e8959d372adc2e98525125150074 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9db071fa5bfb05f248ea21ca0e2e675bfa8f4be0d0291389da4293b67d1a068a [INFO] running `Command { std: "docker" "start" "-a" "9db071fa5bfb05f248ea21ca0e2e675bfa8f4be0d0291389da4293b67d1a068a", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling libc v0.2.159 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling hashbrown v0.15.0 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling approx-eq v0.1.0 (/opt/rustwide/workdir/approx-eq) [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling nom v1.2.4 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling colo-rs v0.1.0 (/opt/rustwide/workdir/colo-rs) [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling colorchoice v1.0.2 [INFO] [stderr] Compiling anstyle-parse v0.2.5 [INFO] [stderr] Compiling anstyle-query v1.1.1 [INFO] [stderr] Compiling anstyle v1.0.8 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling clap_lex v0.7.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling serde_yml v0.0.12 [INFO] [stderr] Compiling meval v0.2.0 [INFO] [stderr] Compiling anstream v0.6.15 [INFO] [stderr] Compiling indexmap v2.6.0 [INFO] [stderr] Compiling clap_builder v4.5.20 [INFO] [stderr] Compiling libyml v0.0.5 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling crossbeam-deque v0.8.5 [INFO] [stderr] Compiling syn v2.0.79 [INFO] [stderr] Compiling rand v0.5.6 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling perlin_noise v1.0.1 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling clap_derive v4.5.18 [INFO] [stderr] Compiling clap v4.5.20 [INFO] [stderr] Compiling ray-tracer v0.1.0 (/opt/rustwide/workdir/ray-tracer) [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> ray-tracer/src/shapes/csg.rs:74:74 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn filter_intersections<'a>(&'a self, xs: &Intersections<'a>) -> Intersections { [INFO] [stdout] | -- lifetime `'a` declared here ^^^^^^^^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_point` [INFO] [stdout] --> ray-tracer/src/shapes/csg.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | local_point: crate::tuples::points::Point, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_point` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `lines_skipped` is never read [INFO] [stdout] --> ray-tracer/src/obj_parser.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct OBJParser { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 82 | lines_skipped: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling scene-drawing v0.1.0 (/opt/rustwide/workdir/scene-drawing) [INFO] [stderr] Compiling analog-clock v0.1.0 (/opt/rustwide/workdir/analog-clock) [INFO] [stderr] Compiling plane-drawing v0.1.0 (/opt/rustwide/workdir/plane-drawing) [INFO] [stderr] Compiling patterns-drawing v0.1.0 (/opt/rustwide/workdir/patterns-drawing) [INFO] [stderr] Compiling hexagon-drawing v0.1.0 (/opt/rustwide/workdir/hexagon-drawing) [INFO] [stderr] Compiling cones-drawing v0.1.0 (/opt/rustwide/workdir/cones-drawing) [INFO] [stderr] Compiling refractions-drawing v0.1.0 (/opt/rustwide/workdir/refractions-drawing) [INFO] [stderr] Compiling obj-drawing v0.1.0 (/opt/rustwide/workdir/obj-drawing) [INFO] [stderr] Compiling virtual-cannon v0.1.0 (/opt/rustwide/workdir/virtual-cannon) [INFO] [stderr] Compiling csg-drawing v0.1.0 (/opt/rustwide/workdir/csg-drawing) [INFO] [stderr] Compiling reflections-drawing v0.1.0 (/opt/rustwide/workdir/reflections-drawing) [INFO] [stderr] Compiling yaml-drawing v0.1.0 (/opt/rustwide/workdir/yaml-drawing) [INFO] [stderr] Compiling world-drawing v0.1.0 (/opt/rustwide/workdir/world-drawing) [INFO] [stderr] Compiling cubes-drawing v0.1.0 (/opt/rustwide/workdir/cubes-drawing) [INFO] [stderr] Compiling open-cylinders-drawing v0.1.0 (/opt/rustwide/workdir/open-cylinders-drawing) [INFO] [stderr] Compiling sphere-drawing v0.1.0 (/opt/rustwide/workdir/sphere-drawing) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.88s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "9db071fa5bfb05f248ea21ca0e2e675bfa8f4be0d0291389da4293b67d1a068a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9db071fa5bfb05f248ea21ca0e2e675bfa8f4be0d0291389da4293b67d1a068a", kill_on_drop: false }` [INFO] [stdout] 9db071fa5bfb05f248ea21ca0e2e675bfa8f4be0d0291389da4293b67d1a068a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 51e24ea0f9196a76856f5abcc7121330cf5f0f3d18b28305f75b319b730488d9 [INFO] running `Command { std: "docker" "start" "-a" "51e24ea0f9196a76856f5abcc7121330cf5f0f3d18b28305f75b319b730488d9", kill_on_drop: false }` [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> ray-tracer/src/shapes/csg.rs:74:74 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn filter_intersections<'a>(&'a self, xs: &Intersections<'a>) -> Intersections { [INFO] [stdout] | -- lifetime `'a` declared here ^^^^^^^^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_point` [INFO] [stdout] --> ray-tracer/src/shapes/csg.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | local_point: crate::tuples::points::Point, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_point` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `lines_skipped` is never read [INFO] [stdout] --> ray-tracer/src/obj_parser.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct OBJParser { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 82 | lines_skipped: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling colo-rs v0.1.0 (/opt/rustwide/workdir/colo-rs) [INFO] [stderr] Compiling approx-eq v0.1.0 (/opt/rustwide/workdir/approx-eq) [INFO] [stderr] Compiling yare-macro v3.0.0 [INFO] [stderr] Compiling obj-drawing v0.1.0 (/opt/rustwide/workdir/obj-drawing) [INFO] [stderr] Compiling world-drawing v0.1.0 (/opt/rustwide/workdir/world-drawing) [INFO] [stderr] Compiling cones-drawing v0.1.0 (/opt/rustwide/workdir/cones-drawing) [INFO] [stderr] Compiling refractions-drawing v0.1.0 (/opt/rustwide/workdir/refractions-drawing) [INFO] [stderr] Compiling hexagon-drawing v0.1.0 (/opt/rustwide/workdir/hexagon-drawing) [INFO] [stderr] Compiling scene-drawing v0.1.0 (/opt/rustwide/workdir/scene-drawing) [INFO] [stderr] Compiling virtual-cannon v0.1.0 (/opt/rustwide/workdir/virtual-cannon) [INFO] [stderr] Compiling plane-drawing v0.1.0 (/opt/rustwide/workdir/plane-drawing) [INFO] [stderr] Compiling analog-clock v0.1.0 (/opt/rustwide/workdir/analog-clock) [INFO] [stderr] Compiling reflections-drawing v0.1.0 (/opt/rustwide/workdir/reflections-drawing) [INFO] [stderr] Compiling patterns-drawing v0.1.0 (/opt/rustwide/workdir/patterns-drawing) [INFO] [stderr] Compiling sphere-drawing v0.1.0 (/opt/rustwide/workdir/sphere-drawing) [INFO] [stderr] Compiling open-cylinders-drawing v0.1.0 (/opt/rustwide/workdir/open-cylinders-drawing) [INFO] [stderr] Compiling csg-drawing v0.1.0 (/opt/rustwide/workdir/csg-drawing) [INFO] [stderr] Compiling cubes-drawing v0.1.0 (/opt/rustwide/workdir/cubes-drawing) [INFO] [stderr] Compiling yaml-drawing v0.1.0 (/opt/rustwide/workdir/yaml-drawing) [INFO] [stderr] Compiling yare v3.0.0 [INFO] [stderr] Compiling ray-tracer v0.1.0 (/opt/rustwide/workdir/ray-tracer) [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> ray-tracer/src/shapes/csg.rs:74:74 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn filter_intersections<'a>(&'a self, xs: &Intersections<'a>) -> Intersections { [INFO] [stdout] | -- lifetime `'a` declared here ^^^^^^^^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tuples::vectors::Vector` [INFO] [stdout] --> ray-tracer/src/shapes/csg.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | tuples::vectors::Vector, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_point` [INFO] [stdout] --> ray-tracer/src/shapes/csg.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | local_point: crate::tuples::points::Point, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_point` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 9.96s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "51e24ea0f9196a76856f5abcc7121330cf5f0f3d18b28305f75b319b730488d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "51e24ea0f9196a76856f5abcc7121330cf5f0f3d18b28305f75b319b730488d9", kill_on_drop: false }` [INFO] [stdout] 51e24ea0f9196a76856f5abcc7121330cf5f0f3d18b28305f75b319b730488d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 009af178fc061bc8e18531b39f06f649d0b0e85ca0c8b63692e48bd2367e4dd7 [INFO] running `Command { std: "docker" "start" "-a" "009af178fc061bc8e18531b39f06f649d0b0e85ca0c8b63692e48bd2367e4dd7", kill_on_drop: false }` [INFO] [stderr] warning: elided lifetime has a name [INFO] [stderr] --> ray-tracer/src/shapes/csg.rs:74:74 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn filter_intersections<'a>(&'a self, xs: &Intersections<'a>) -> Intersections { [INFO] [stderr] | -- lifetime `'a` declared here ^^^^^^^^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `local_point` [INFO] [stderr] --> ray-tracer/src/shapes/csg.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | local_point: crate::tuples::points::Point, [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_point` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `lines_skipped` is never read [INFO] [stderr] --> ray-tracer/src/obj_parser.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 81 | pub struct OBJParser { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] 82 | lines_skipped: usize, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `tuples::vectors::Vector` [INFO] [stderr] --> ray-tracer/src/shapes/csg.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | tuples::vectors::Vector, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `ray-tracer` (lib) generated 3 warnings [INFO] [stderr] warning: `ray-tracer` (lib test) generated 3 warnings (2 duplicates) (run `cargo fix --lib -p ray-tracer --tests` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/analog_clock-30643bd3d92bbd84) [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 unittests src/lib.rs (/opt/rustwide/target/debug/deps/approx_eq-106de57fac481921) [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 unittests src/lib.rs (/opt/rustwide/target/debug/deps/colo_rs-bd8058e7fb85d136) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test colors::tests::color_can_be_created ... ok [INFO] [stdout] test colors::tests::color_can_be_added ... ok [INFO] [stdout] test colors::tests::color_can_be_multiplied_by_a_scalar ... ok [INFO] [stdout] test colors::tests::color_can_be_subtracted ... ok [INFO] [stdout] test colors::tests::color_can_be_multiplied ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cones_drawing-39cb98c6c9ddcb91) [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/csg_drawing-e4d5cfb5da1af5f4) [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] [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/cubes_drawing-506c2d8e74fb79fb) [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/hexagon_drawing-553afe7c10dd3e6c) [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/obj_drawing-713a1e4919819bc8) [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] [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/open_cylinders_drawing-627011a605838663) [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/patterns_drawing-74e40deaed0d7a9d) [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] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/plane_drawing-dc61325ec968ec14) [INFO] [stdout] [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 unittests src/lib.rs (/opt/rustwide/target/debug/deps/ray_tracer-a9f94e27eecb3356) [INFO] [stdout] [INFO] [stdout] running 401 tests [INFO] [stdout] test bounds::tests::adding_a_bounding_box_to_another ... ok [INFO] [stdout] test bounds::tests::checking_id_a_box_contains_a_given_box::box_inside_2 ... ok [INFO] [stdout] test bounds::tests::adding_points_to_empty_bounding_box ... ok [INFO] [stdout] test bounds::tests::checking_id_a_box_contains_a_given_box::box_inside_1 ... ok [INFO] [stdout] test bounds::tests::checking_id_a_box_contains_a_given_box::box_outside_1 ... ok [INFO] [stdout] test bounds::tests::checking_id_a_box_contains_a_given_box::box_outside_2 ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_inside_2 ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_inside_3 ... ok [INFO] [stdout] test bounds::tests::creating_a_bounding_box_with_volume ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_outside_1 ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_outside_6 ... ok [INFO] [stdout] test bounds::tests::creating_an_empty_bounding_box ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::intersecting_1 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::intersecting_3 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::intersecting_2 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::intersecting_6 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::not_intersecting_3 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::intersecting_4 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::not_intersecting_5 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::not_intersecting_6 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::not_intersecting_4 ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_outside_5 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::intersecting_3 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::intersecting_4 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::intersecting_7 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::not_intersecting_1 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::not_intersecting_3 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::not_intersecting_4 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::not_intersecting_6 ... ok [INFO] [stdout] test bounds::tests::splitting_a_x_wide_box ... ok [INFO] [stdout] test bounds::tests::splitting_a_y_wide_box ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::intersecting_5 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::intersecting_6 ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_outside_3 ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_outside_4 ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_outside_2 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::not_intersecting_2 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::not_intersecting_5 ... ok [INFO] [stdout] test bounds::tests::splitting_a_z_wide_box ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::intersecting_5 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::intersecting_1 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_bounding_box_at_the_origin::intersecting_2 ... ok [INFO] [stdout] test bounds::tests::splitting_a_perfect_cube ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::not_intersecting_1 ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::intersecting_7 ... ok [INFO] [stdout] test canvas::tests::writing_pixel_to_a_canvas ... ok [INFO] [stdout] test canvas::tests::creating_a_canvas ... ok [INFO] [stdout] test intersections::tests::hit_is_always_the_lowest_non_negative_intersection ... ok [INFO] [stdout] test bounds::tests::intersecting_a_ray_with_a_non_cubic_bounding_box::not_intersecting_2 ... ok [INFO] [stdout] test camera::tests::pixel_size_for_horizontal_canvas ... ok [INFO] [stdout] test camera::tests::pixel_size_for_vertical_canvas ... ok [INFO] [stdout] test intersections::tests::hit_when_intersection_occurs_outside ... ok [INFO] [stdout] test bounds::tests::checking_if_a_box_contains_a_given_point::point_inside_1 ... ok [INFO] [stdout] test camera::tests::constructing_a_ray_through_the_center_of_the_canvas ... ok [INFO] [stdout] test camera::tests::contructing_a_camera ... ok [INFO] [stdout] test bounds::tests::transforming_a_bounding_box ... ok [INFO] [stdout] test intersections::tests::precomputing_state_of_an_intersection ... ok [INFO] [stdout] test camera::tests::constructing_a_ray_when_the_camera_is_transformed ... ok [INFO] [stdout] test intersections::tests::hit_when_all_intersections_have_negative_t ... ok [INFO] [stdout] test intersections::tests::hit_when_all_intersections_have_positive_t ... ok [INFO] [stdout] test intersections::tests::hit_when_intersection_occurs_inside ... ok [INFO] [stdout] test intersections::tests::hit_when_some_intersections_have_negative_t ... ok [INFO] [stdout] test intersections::tests::finding_n1_and_n2_at_various_intersections ... ok [INFO] [stdout] test intersections::tests::precomputing_the_reflection_vector ... ok [INFO] [stdout] test camera::tests::constructing_a_ray_through_a_corner_of_the_canvas ... ok [INFO] [stdout] test intersections::tests::the_hit_should_offset_the_point ... ok [INFO] [stdout] test intersections::tests::the_schlick_approximation_with_small_angle_and_n2_gt_n1 ... ok [INFO] [stdout] test lights::tests::point_light_has_position_and_intensity ... ok [INFO] [stdout] test intersections::tests::shading_an_intersection_from_inside ... ok [INFO] [stdout] test intersections::tests::shading_an_intersection ... ok [INFO] [stdout] test materials::tests::lighting_with_eye_opposite_surface_light_offset_45_deg ... ok [INFO] [stdout] test matrix::tests::a_matrix_can_be_multiplied_by_a_tuple ... ok [INFO] [stdout] test matrix::tests::a_submatrix_of_a_3x3_matrix_is_a_2x2_matrix ... ok [INFO] [stdout] test matrix::tests::a_submatrix_of_a_4x4_matrix_is_a_3x3_matrix ... ok [INFO] [stdout] test materials::tests::lighting_with_eye_in_the_path_of_reflection ... ok [INFO] [stdout] test materials::tests::lighting_with_surface_in_shadow ... ok [INFO] [stdout] test matrix::tests::can_calculate_the_determinant_of_a_2x2_matrix ... ok [INFO] [stdout] test materials::tests::lighting_with_eye_between_light_and_surface ... ok [INFO] [stdout] test intersections::tests::the_shlick_approximation_under_total_internal_reflection ... ok [INFO] [stdout] test intersections::tests::the_under_point_is_offset_below_the_surface ... ok [INFO] [stdout] test materials::tests::lighting_with_eye_behind_surface ... ok [INFO] [stdout] test intersections::tests::the_schlick_approximation_with_a_perpendicular_viewing_angle ... ok [INFO] [stdout] test materials::tests::default_material ... ok [INFO] [stdout] test materials::tests::lighting_with_eye_between_light_and_surface_eye_offset_45_deg ... ok [INFO] [stdout] test materials::tests::transparency_and_refractive_index_for_default_material ... ok [INFO] [stdout] test matrix::tests::a_2x2_matrix_can_be_represented ... ok [INFO] [stdout] test matrix::tests::can_calculate_the_determinant_of_a_4x4_matrix ... ok [INFO] [stdout] test matrix::tests::can_calculate_the_inverse_of_another_matrix ... ok [INFO] [stdout] test matrix::tests::matrices_can_be_multiplied ... ok [INFO] [stdout] test camera::tests::rendering_a_world_with_a_camera ... ok [INFO] [stdout] test matrix::tests::a_3x3_matrix_can_be_represented ... ok [INFO] [stdout] test matrix::tests::can_calculate_the_inverse_of_a_third_matrix ... ok [INFO] [stdout] test materials::tests::reflective_for_default_material ... ok [INFO] [stdout] test matrix::tests::matrix_can_be_built_and_inspected ... ok [INFO] [stdout] test matrix::tests::can_calculate_the_inverse_of_a_matrix ... ok [INFO] [stdout] test materials::tests::lighting_with_a_pattern_applied ... ok [INFO] [stdout] test matrix::tests::can_calculate_the_determinant_of_a_3x3_matrix ... ok [INFO] [stdout] test matrix::tests::matrices_can_be_compared ... ok [INFO] [stdout] test matrix::tests::multiplying_a_matrix_for_identity_matrix_gives_back_the_same ... ok [INFO] [stdout] test matrix::tests::multiplying_a_product_by_the_inverse ... ok [INFO] [stdout] test matrix::tests::matrix_can_be_transposed ... ok [INFO] [stdout] test matrix::tests::testing_the_inverse_of_a_invertible_matrix ... ok [INFO] [stdout] test matrix::tests::testing_the_inverse_of_a_non_invertible_matrix ... ok [INFO] [stdout] test matrix::tests::the_cofactor_of_a_3x3_matrix_can_be_calculated ... ok [INFO] [stdout] test matrix::tests::the_transpose_of_the_identity_matrix_is_the_identity_matrix ... ok [INFO] [stdout] test matrix::tests::the_minor_of_a_3x3_matrix_can_be_calculated ... ok [INFO] [stdout] test obj_parser::tests::triangles_in_groups ... ok [INFO] [stdout] test obj_parser::tests::ignoring_unrecognized_lines ... ok [INFO] [stdout] test patterns::linear_gradient_pattern::tests::a_gradient_linearly_interpolates_between_colors ... ok [INFO] [stdout] test patterns::striped_pattern::tests::creating_a_stripe_pattern ... ok [INFO] [stdout] test patterns::blending_pattern::tests::pattern_colors_are_averaged ... ok [INFO] [stdout] test patterns::striped_pattern::tests::stripe_pattern_alternates_in_x ... ok [INFO] [stdout] test patterns::striped_pattern::tests::stripe_pattern_is_constant_in_z ... ok [INFO] [stdout] test obj_parser::tests::triangulating_polygons ... ok [INFO] [stdout] test obj_parser::tests::converting_an_obj_file_to_group ... ok [INFO] [stdout] test patterns::tests::a_pattern_with_an_object_transformation ... ok [INFO] [stdout] test patterns::striped_pattern::tests::stripe_pattern_is_constant_in_y ... ok [INFO] [stdout] test obj_parser::tests::faces_with_normals ... ok [INFO] [stdout] test obj_parser::tests::vertex_records ... ok [INFO] [stdout] test patterns::checker_pattern::tests::checkers_should_repeat_in_y ... ok [INFO] [stdout] test patterns::tests::a_pattern_with_a_pattern_transformation ... ok [INFO] [stdout] test obj_parser::tests::parsing_triangle_faces ... ok [INFO] [stdout] test patterns::checker_pattern::tests::checkers_should_repeat_in_z ... ok [INFO] [stdout] test ppm::tests::constructing_ppm_header ... ok [INFO] [stdout] test ppm::tests::contructing_ppm_pixel_data ... ok [INFO] [stdout] test ppm::tests::splitting_long_lines_in_ppm ... ok [INFO] [stdout] test rays::tests::a_ray_originate_inside_a_sphere ... ok [INFO] [stdout] test rays::tests::a_sphere_behind_a_ray ... ok [INFO] [stdout] test rays::tests::an_intersection_encapsulates_t_and_object ... ok [INFO] [stdout] test patterns::tests::the_default_pattern_transform ... ok [INFO] [stdout] test patterns::tests::assigning_a_transformation ... ok [INFO] [stdout] test rays::tests::intersecting_scaled_sphere_with_ray ... ok [INFO] [stdout] test rays::tests::intersecting_translated_sphere_with_ray ... ok [INFO] [stdout] test rays::tests::a_ray_intersects_a_sphere_at_a_tangent ... ok [INFO] [stdout] test obj_parser::tests::parsing_vertex_normals ... ok [INFO] [stdout] test rays::tests::creating_and_querying_a_ray ... ok [INFO] [stdout] test rays::tests::aggregating_intersections ... ok [INFO] [stdout] test patterns::checker_pattern::tests::checkers_should_repeat_in_x ... ok [INFO] [stdout] test patterns::tests::a_pattern_with_both_an_object_and_a_pattern_transformation ... ok [INFO] [stdout] test shapes::cone::tests::a_bounded_cone_has_a_bounding_box ... ok [INFO] [stdout] test rays::tests::translating_a_ray ... ok [INFO] [stdout] test rays::tests::computing_a_point_from_distance ... ok [INFO] [stdout] test rays::tests::intersect_sets_the_objects_in_intersections ... ok [INFO] [stdout] test rays::tests::a_ray_misses_a_sphere ... ok [INFO] [stdout] test patterns::ring_pattern::tests::a_ring_should_extend_in_both_x_and_z ... ok [INFO] [stdout] test rays::tests::scaling_a_ray ... ok [INFO] [stdout] test shapes::cone::tests::a_ray_strikes_a_cone::ray_oblique_1 ... ok [INFO] [stdout] test shapes::cone::tests::a_ray_misses_a_cone ... ok [INFO] [stdout] test shapes::cone::tests::an_unbounded_cone_has_a_bounding_box ... ok [INFO] [stdout] test shapes::cone::tests::a_ray_strikes_a_cone::ray_oblique_2 ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_a_constrained_cone::ray_vertical_close_to_origin ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_a_constrained_cone::ray_oblique ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_cap_of_a_top_closed_cone::ray_oblique ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_a_constrained_cone::ray_outside_cone ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_cap_of_a_top_closed_cone::ray_outside_cone ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_cap_of_a_bottom_closed_cone::ray_oblique ... ok [INFO] [stdout] test shapes::cone::tests::a_ray_strikes_a_cone::ray_across_origin ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_cap_of_a_bottom_closed_cone::ray_vertical_close_to_origin ... ok [INFO] [stdout] test rays::tests::a_ray_intersects_a_sphere_in_two_points ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_cap_of_a_top_closed_cone::ray_vertical_close_to_origin ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_caps_of_a_closed_cone::ray_oblique ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_caps_of_a_closed_cone::ray_vertical_close_to_origin ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_caps_of_a_closed_cone::ray_outside_cone ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_the_cap_of_a_bottom_closed_cone::ray_outside_cone ... ok [INFO] [stdout] test shapes::cone::tests::default_minimum_and_maximum_for_a_cone ... ok [INFO] [stdout] test shapes::cone::tests::intersecting_a_cone_with_a_ray_parallel_to_one_of_its_halves ... ok [INFO] [stdout] test shapes::cone::tests::normal_vector_on_a_cone::negative_x ... ok [INFO] [stdout] test shapes::cone::tests::normal_vector_on_a_cone::positive_x ... ok [INFO] [stdout] test shapes::cone::tests::normal_vector_on_a_cone::negative_z ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_end_cap::normal_on_top_cap_1 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_end_cap::normal_on_bottom_cap_3 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_end_cap::normal_on_bottom_cap_2 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_with_top_cap::normal_on_bottom_2 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_with_top_cap::normal_on_bottom_3 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_end_cap::normal_on_top_cap_3 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_with_top_cap::normal_on_top_cap_2 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_end_cap::normal_on_top_cap_2 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_with_top_cap::normal_on_top_cap_3 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_with_top_cap::normal_on_top_cap_1 ... ok [INFO] [stdout] test shapes::csg::tests::csg_is_created_with_an_operation_and_two_shapes ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_1 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_end_cap::normal_on_bottom_cap_1 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_2 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_4 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_3 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_5 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_6 ... ok [INFO] [stdout] test shapes::cone::tests::the_normal_vector_on_a_cone_with_top_cap::normal_on_bottom_1 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_7 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_2 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_3 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_1 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::difference_8 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_4 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_5 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_6 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_7 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_1 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::intersection_8 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_4 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_2 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_3 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_6 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_7 ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_5 ... ok [INFO] [stdout] test shapes::csg::tests::filtering_a_list_of_intersections::intersection ... ok [INFO] [stdout] test shapes::csg::tests::filtering_a_list_of_intersections::difference ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_intersects_a_cube::strike_along_edge ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_intersects_a_cube::strike_along_x_axis ... ok [INFO] [stdout] test shapes::cube::tests::a_cube_has_a_bounding_box ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_intersects_a_cube::strike_along_x_neg_axis ... ok [INFO] [stdout] test shapes::csg::tests::evaluating_rule_for_csg_operation::union_8 ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_intersects_a_cube::strike_along_z_axis ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_intersects_a_cube::strike_along_y_axis ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_intersects_a_cube::strike_along_z_neg_axis ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_intersects_a_cube::strike_along_y_neg_axis ... ok [INFO] [stdout] test shapes::csg::tests::filtering_a_list_of_intersections::union ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_misses_a_cube::miss_1 ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_misses_a_cube::miss_along_x_axis ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_misses_a_cube::miss_3 ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_misses_a_cube::miss_along_z_axis ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_misses_a_cube::miss_2 ... ok [INFO] [stdout] test shapes::cube::tests::a_ray_misses_a_cube::miss_along_y_axis ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_bottom ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_corner ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_front ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_other_corner ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_other_side ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_side ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_top ... ok [INFO] [stdout] test shapes::cylinder::tests::a_bounded_cylinder_has_a_bounding_box ... ok [INFO] [stdout] test shapes::cube::tests::the_normal_of_the_surface_of_a_cube::normal_on_back ... ok [INFO] [stdout] test shapes::cylinder::tests::a_ray_strikes_a_cylinder::ray_perpendicular ... ok [INFO] [stdout] test shapes::cylinder::tests::a_ray_misses_a_cylinder::ray_on_surface_vertical ... ok [INFO] [stdout] test shapes::cylinder::tests::a_ray_strikes_a_cylinder::ray_tangent ... ok [INFO] [stdout] test shapes::cylinder::tests::a_ray_misses_a_cylinder::ray_inside_vertical ... ok [INFO] [stdout] test shapes::cylinder::tests::an_unbounded_cylinder_has_a_bounding_box ... ok [INFO] [stdout] test shapes::cylinder::tests::default_minimum_and_maximum_for_a_cylinder ... ok [INFO] [stdout] test shapes::cylinder::tests::a_ray_misses_a_cylinder::ray_outside_oblique ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_a_constrained_cylinder::ray_oblique_inside_without_intersections ... ok [INFO] [stdout] test shapes::cylinder::tests::a_ray_strikes_a_cylinder::ray_oblique ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_a_constrained_cylinder::ray_perpendicular_above ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_a_constrained_cylinder::ray_perpendicular_in_middle ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_a_constrained_cylinder::ray_perpendicular_on_top_extreme ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_bottom_closed_cylinder::ray_oblique_across_cap_from_below ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_top_closed_cylinder::ray_oblique_across_cap_from_above ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_bottom_closed_cylinder::ray_oblique_across_cap_from_above ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_top_closed_cylinder::ray_oblique_across_cap_from_below ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_top_closed_cylinder::ray_straight_across_cap ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_bottom_closed_cylinder::ray_oblique_across_cap_from_below_to_corner ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_top_closed_cylinder::ray_oblique_across_cap_from_below_to_corner ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_bottom_closed_cylinder::ray_straight_across_cap ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_a_constrained_cylinder::ray_perpendicular_on_bottom_extreme ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_top_closed_cylinder::ray_oblique_across_cap_from_above_to_corner ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_caps_of_a_closed_cylinder::ray_oblique_across_two_caps_from_above ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_caps_of_a_closed_cylinder::ray_oblique_across_two_caps_from_below ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_a_constrained_cylinder::ray_perpendicular_below ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_cap_of_a_bottom_closed_cylinder::ray_oblique_across_cap_from_above_to_corner ... ok [INFO] [stdout] test shapes::cylinder::tests::normal_vector_on_a_cylinder::positive_z ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_end_cap::normal_on_bottom_cap_1 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_end_cap::normal_on_top_cap_1 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_end_cap::normal_on_top_cap_2 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_end_cap::normal_on_top_cap_3 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_with_top_cap::normal_on_bottom_1 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_with_top_cap::normal_on_bottom_2 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_with_top_cap::normal_on_bottom_3 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_end_cap::normal_on_bottom_cap_3 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_with_top_cap::normal_on_top_cap_3 ... ok [INFO] [stdout] test shapes::cylinder::tests::normal_vector_on_a_cylinder::negative_x ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_caps_of_a_closed_cylinder::ray_straight_across_two_caps ... ok [INFO] [stdout] test shapes::cylinder::tests::normal_vector_on_a_cylinder::negative_z ... ok [INFO] [stdout] test shapes::cylinder::tests::normal_vector_on_a_cylinder::positive_x ... ok [INFO] [stdout] test shapes::plane::tests::a_ray_intersecting_a_plane_from_below ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_end_cap::normal_on_bottom_cap_2 ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_with_top_cap::normal_on_top_cap_1 ... ok [INFO] [stdout] test shapes::group::tests::partitioning_a_group_s_children ... ok [INFO] [stdout] test shapes::plane::tests::a_ray_intersecting_a_plane_from_above ... ok [INFO] [stdout] test shapes::plane::tests::intersect_with_a_coplanar_ray ... ok [INFO] [stdout] test shapes::group::tests::a_group_has_a_bounding_box_that_contains_its_children ... ok [INFO] [stdout] test shapes::cylinder::tests::the_normal_vector_on_a_cylinder_with_top_cap::normal_on_top_cap_2 ... ok [INFO] [stdout] test shapes::plane::tests::intersect_with_a_ray_parallel_to_the_plane ... ok [INFO] [stdout] test shapes::plane::tests::the_normal_of_a_plane_is_constant_everywhere ... ok [INFO] [stdout] test shapes::smooth_triangle::tests::a_smooth_triangle_has_a_bounding_box ... ok [INFO] [stdout] test shapes::plane::tests::a_plane_has_a_bounding_box ... ok [INFO] [stdout] test shapes::group::tests::intersecting_ray_group_does_not_test_children_if_box_is_missed ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_caps_of_a_closed_cylinder::ray_oblique_across_two_caps_from_above_to_corner ... ok [INFO] [stdout] test shapes::smooth_triangle::tests::a_smooth_triangle_uses_uv_to_interpolate_normal ... ok [INFO] [stdout] test shapes::smooth_triangle::tests::an_intersection_with_a_smooth_triangle_stores_uv ... ok [INFO] [stdout] test shapes::group::tests::intersecting_ray_group_tests_children_if_box_is_hit ... ok [INFO] [stdout] test shapes::smooth_triangle::tests::constructing_a_smooth_triangle ... ok [INFO] [stdout] test shapes::smooth_triangle::tests::preparing_the_normal_on_a_smooth_triangle ... ok [INFO] [stdout] test shapes::sphere::tests::normal_of_sphere_at_a_non_axial_point ... ok [INFO] [stdout] test shapes::group::tests::make_a_subgroup_from_list_of_children ... ok [INFO] [stdout] test shapes::sphere::tests::normal_of_sphere_at_point_on_y_axis ... ok [INFO] [stdout] test shapes::sphere::tests::a_sphere_has_a_bounding_box ... ok [INFO] [stdout] test shapes::test_shape::tests::test_shape_has_a_arbitrary_bounding_box ... ok [INFO] [stdout] test shapes::sphere::tests::the_normal_is_a_normalized_vector ... ok [INFO] [stdout] test shapes::sphere::tests::normal_of_sphere_at_point_on_x_axis ... ok [INFO] [stdout] test shapes::tests::computing_the_normal_on_a_translated_shape ... ok [INFO] [stdout] test shapes::tests::a_ray_misses_a_csg_object ... ok [INFO] [stdout] test shapes::tests::a_ray_hits_a_csg_object ... ok [INFO] [stdout] test shapes::tests::assigning_a_material ... ok [INFO] [stdout] test shapes::cylinder::tests::intersecting_the_caps_of_a_closed_cylinder::ray_oblique_across_two_caps_from_below_to_corner ... ok [INFO] [stdout] test shapes::sphere::tests::normal_of_sphere_at_point_on_z_axis ... ok [INFO] [stdout] test shapes::tests::computing_the_normal_on_a_transformed_shape ... ok [INFO] [stdout] test shapes::tests::changing_transformation ... ok [INFO] [stdout] test shapes::tests::adding_a_child_to_a_group ... ok [INFO] [stdout] test shapes::tests::converting_a_point_from_world_to_object_space ... ok [INFO] [stdout] test shapes::tests::finding_the_normal_on_a_child_object ... ok [INFO] [stdout] test shapes::tests::default_transformation ... ok [INFO] [stdout] test shapes::tests::default_material ... ok [INFO] [stdout] test shapes::tests::querying_a_shape_s_bounding_box_in_its_parent_space ... ok [INFO] [stdout] test shapes::tests::ray_intersects_bounds_in_a_transformed_shape ... ok [INFO] [stdout] test shapes::tests::creating_a_new_group ... ok [INFO] [stdout] test shapes::tests::subdividing_a_primitive_does_nothing ... ok [INFO] [stdout] test shapes::tests::intersecting_another_nested_transformed_group ... ok [INFO] [stdout] test shapes::tests::ray_intersects_bounds_in_multiple_transformed_shapes ... ok [INFO] [stdout] test shapes::tests::ray_intersects_bounds_in_a_non_transformed_shape ... ok [INFO] [stdout] test shapes::tests::intersecting_a_ray_with_an_empty_group ... ok [INFO] [stdout] test shapes::tests::intersecting_a_nested_transformed_group ... ok [INFO] [stdout] test shapes::tests::converting_a_normal_from_object_to_world_space ... ok [INFO] [stdout] test shapes::tests::subdividing_a_group_with_too_few_children ... ok [INFO] [stdout] test shapes::tests::intersecting_a_transformed_group ... ok [INFO] [stdout] test shapes::tests::intersecting_a_ray_with_an_nonempty_group ... ok [INFO] [stdout] test shapes::tests::subdividing_a_group_partitions_its_children ... ok [INFO] [stdout] test shapes::triangle::tests::a_ray_misses_p1_p2_edge ... ok [INFO] [stdout] test shapes::triangle::tests::a_ray_misses_p2_p3_edge ... ok [INFO] [stdout] test shapes::triangle::tests::a_ray_misses_p1_p3_edge ... ok [INFO] [stdout] test shapes::triangle::tests::constructing_a_triangle ... ok [INFO] [stdout] test shapes::triangle::tests::finding_the_normal_of_a_triangle ... ok [INFO] [stdout] test transformations::tests::inverse_of_x_rotation_rotates_in_the_opposite_direction ... ok [INFO] [stdout] test transformations::tests::scaling_a_point ... ok [INFO] [stdout] test transformations::tests::reflection_is_scaling_by_negative_value ... ok [INFO] [stdout] test transformations::tests::rotating_a_point_around_y_axis ... ok [INFO] [stdout] test transformations::tests::rotating_a_point_around_x_axis ... ok [INFO] [stdout] test transformations::tests::chaining_transformations ... ok [INFO] [stdout] test transformations::tests::multiplying_by_a_translation_matrix ... ok [INFO] [stdout] test shapes::triangle::tests::a_ray_strikes_a_triangle ... ok [INFO] [stdout] test transformations::tests::multiplying_by_the_inverse_of_a_scaling_matrix ... ok [INFO] [stdout] test shapes::triangle::tests::a_triangle_has_a_bounding_box ... ok [INFO] [stdout] test transformations::tests::multiplying_by_the_inverse_of_a_translation_matrix ... ok [INFO] [stdout] test transformations::tests::an_arbitrary_view_transformation ... ok [INFO] [stdout] test transformations::tests::scaling_a_vector ... ok [INFO] [stdout] test transformations::tests::shearing_moves_x_in_proportion_to_z ... ok [INFO] [stdout] test transformations::tests::shearing_moves_z_in_proportion_to_y ... ok [INFO] [stdout] test transformations::tests::shearing_moves_x_in_proportion_to_y ... ok [INFO] [stdout] test shapes::triangle::tests::intersecting_a_ray_parallel_to_the_triangle ... ok [INFO] [stdout] test transformations::tests::shearing_moves_z_in_proportion_to_x ... ok [INFO] [stdout] test transformations::tests::rotating_a_point_around_z_axis ... ok [INFO] [stdout] test transformations::tests::shearing_moves_y_in_proportion_to_z ... ok [INFO] [stdout] test transformations::tests::shearing_moves_y_in_proportion_to_x ... ok [INFO] [stdout] test transformations::tests::the_view_transformation_moves_the_world ... ok [INFO] [stdout] test transformations::tests::a_view_transformation_matrix_looking_in_positive_z_direction ... ok [INFO] [stdout] test transformations::tests::transformation_matrix_for_default_orientation ... ok [INFO] [stdout] test tuples::tests::a_vector_is_a_tuple_with_w_0 ... ok [INFO] [stdout] test tuples::tests::multiplying_a_vector_for_a_scalar_returns_a_vector ... ok [INFO] [stdout] test tuples::tests::dividing_a_vector_by_a_scalar_returns_a_vector ... ok [INFO] [stdout] test transformations::tests::translation_does_not_affect_vectors ... ok [INFO] [stdout] test tuples::tests::negating_a_vector_returns_a_vector ... ok [INFO] [stdout] test tuples::tests::subtracting_two_points_returns_vector ... ok [INFO] [stdout] test tuples::tests::summing_a_point_to_a_vector_returns_a_point ... ok [INFO] [stdout] test tuples::vectors::tests::cross_product_of_two_vector_is_a_vector ... ok [INFO] [stdout] test tuples::vectors::tests::dot_product_of_two_vector_is_a_scalar ... ok [INFO] [stdout] test tuples::tests::a_point_is_a_tuple_with_w_1 ... ok [INFO] [stdout] test tuples::vectors::tests::magnitude_of_0_0_1 ... ok [INFO] [stdout] test tuples::vectors::tests::magnitude_of_1_0_0 ... ok [INFO] [stdout] test tuples::vectors::tests::magnitude_of_0_1_0 ... ok [INFO] [stdout] test tuples::tests::subtracting_a_vector_from_a_point_returns_point ... ok [INFO] [stdout] test tuples::vectors::tests::magnitude_of_minus_1_2_3 ... ok [INFO] [stdout] test tuples::vectors::tests::magnitude_of_1_2_3 ... ok [INFO] [stdout] test tuples::vectors::tests::normalize_1_2_3 ... ok [INFO] [stdout] test tuples::vectors::tests::normalize_4_0_0 ... ok [INFO] [stdout] test tuples::tests::subtracting_two_vectors_returns_a_vector ... ok [INFO] [stdout] test tuples::vectors::tests::magnitude_of_normalized_vector_is_1 ... ok [INFO] [stdout] test tuples::vectors::tests::reflecting_a_vector_approaching_45_deg ... ok [INFO] [stdout] test world::tests::creating_a_world ... ok [INFO] [stdout] test tuples::vectors::tests::reflecting_a_vector_off_a_slanted_surface ... ok [INFO] [stdout] test world::tests::a_material_can_opt_out_shadow ... ok [INFO] [stdout] test world::tests::a_reflective_material_reflects_color ... ok [INFO] [stdout] test world::tests::shade_hit_with_intersection_in_shadow ... ok [INFO] [stdout] test world::tests::intersect_the_world_with_a_ray ... ok [INFO] [stdout] test world::tests::color_when_ray_misses ... ok [INFO] [stdout] test world::tests::a_non_reflective_material_is_black ... ok [INFO] [stdout] test world::tests::shade_hit_with_transparent_material ... ok [INFO] [stdout] test world::tests::the_refracted_color_at_the_maximum_recursive_depth ... ok [INFO] [stdout] test world::tests::color_with_intersection_behind_ray ... ok [INFO] [stdout] test world::tests::color_at_with_mutually_reflective_surfaces ... ok [INFO] [stdout] test world::tests::color_when_ray_hits ... ok [INFO] [stdout] test world::tests::the_shadow_when_an_object_is_between_point_and_light ... ok [INFO] [stdout] test world::tests::shade_hit_with_reflective_transparent_material ... ok [INFO] [stdout] test world::tests::the_reflected_color_at_the_maximum_depth ... ok [INFO] [stdout] test yaml_loader::tests::defines_can_be_inherited ... ok [INFO] [stdout] test world::tests::there_is_no_shadow_when_an_object_is_behind_the_point ... ok [INFO] [stdout] test world::tests::the_refracted_color_under_total_reflection ... ok [INFO] [stdout] test world::tests::there_is_no_shadow_when_an_object_is_behind_the_light ... ok [INFO] [stdout] test world::tests::the_refracted_color_with_an_opaque_surface ... ok [INFO] [stdout] test yaml_loader::tests::yaml_materials_can_be_merged ... ok [INFO] [stdout] test world::tests::there_is_no_shadow_when_nothing_is_collinear_with_point_and_light ... ok [INFO] [stdout] test yaml_loader::tests::test_deserialize ... ok [INFO] [stdout] test yaml_loader::tests::can_use_math_expressions_in_fields ... ok [INFO] [stdout] test world::tests::the_refracted_color_with_a_refracted_ray ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 401 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/reflections_drawing-b2e796c2dda0e06c) [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/refractions_drawing-b197f3fefb7e11b1) [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/scene_drawing-88798dcbd1ec59fe) [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/sphere_drawing-2611c7360b8312e3) [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/virtual_cannon-e18f4a688613f60c) [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/world_drawing-242a3ce991276536) [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] [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 unittests src/main.rs (/opt/rustwide/target/debug/deps/yaml_drawing-5f3d3417f8b310fe) [INFO] [stdout] [INFO] [stderr] Doc-tests approx_eq [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] [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 colo_rs [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 ray_tracer [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] running `Command { std: "docker" "inspect" "009af178fc061bc8e18531b39f06f649d0b0e85ca0c8b63692e48bd2367e4dd7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "009af178fc061bc8e18531b39f06f649d0b0e85ca0c8b63692e48bd2367e4dd7", kill_on_drop: false }` [INFO] [stdout] 009af178fc061bc8e18531b39f06f649d0b0e85ca0c8b63692e48bd2367e4dd7