[INFO] cloning repository https://github.com/mpowaga/raytracer-challenge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mpowaga/raytracer-challenge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmpowaga%2Fraytracer-challenge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmpowaga%2Fraytracer-challenge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9edb45b714377d3f02cbfbf8dc7d917d51330105 [INFO] testing mpowaga/raytracer-challenge against master#b03b3a7ec92682be2917540b679478d41c95a30c for pr-137122-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmpowaga%2Fraytracer-challenge" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mpowaga/raytracer-challenge [INFO] removed 0 missing tests [INFO] finished tweaking git repo https://github.com/mpowaga/raytracer-challenge [INFO] tweaked toml for git repo https://github.com/mpowaga/raytracer-challenge written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mpowaga/raytracer-challenge on toolchain b03b3a7ec92682be2917540b679478d41c95a30c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mpowaga/raytracer-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" "+b03b3a7ec92682be2917540b679478d41c95a30c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded lazy-regex v3.1.0 [INFO] [stderr] Downloaded synthez v0.3.1 [INFO] [stderr] Downloaded synthez-codegen v0.3.1 [INFO] [stderr] Downloaded synthez-core v0.3.1 [INFO] [stderr] Downloaded cucumber-expressions v0.3.0 [INFO] [stderr] Downloaded gherkin v0.14.0 [INFO] [stderr] Downloaded cucumber-codegen v0.20.2 [INFO] [stderr] Downloaded nom_locate v4.2.0 [INFO] [stderr] Downloaded typed-builder-macro v0.15.2 [INFO] [stderr] Downloaded cucumber v0.20.2 [INFO] [stderr] Downloaded typed-builder v0.15.2 [INFO] [stderr] Downloaded inventory v0.3.15 [INFO] [stderr] Downloaded sealed v0.5.0 [INFO] [stderr] Downloaded cc v1.0.94 [INFO] [stderr] Downloaded lazy-regex-proc_macros v3.1.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7c1278810e3800ede1e9d54768d2ced10f80ffe19e5e8aa38255f40cdbb4e7ca [INFO] running `Command { std: "docker" "start" "-a" "7c1278810e3800ede1e9d54768d2ced10f80ffe19e5e8aa38255f40cdbb4e7ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7c1278810e3800ede1e9d54768d2ced10f80ffe19e5e8aa38255f40cdbb4e7ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7c1278810e3800ede1e9d54768d2ced10f80ffe19e5e8aa38255f40cdbb4e7ca", kill_on_drop: false }` [INFO] [stdout] 7c1278810e3800ede1e9d54768d2ced10f80ffe19e5e8aa38255f40cdbb4e7ca [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dc1eaaec79e0e1b79d805fe62582369d10042663d69b2f457c612e9e344d26ee [INFO] running `Command { std: "docker" "start" "-a" "dc1eaaec79e0e1b79d805fe62582369d10042663d69b2f457c612e9e344d26ee", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.81 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling memchr v2.7.2 [INFO] [stderr] Compiling regex-syntax v0.8.3 [INFO] [stderr] Compiling autocfg v1.2.0 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling serde v1.0.198 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling rustix v0.38.32 [INFO] [stderr] Compiling bytecount v0.6.8 [INFO] [stderr] Compiling serde_json v1.0.116 [INFO] [stderr] Compiling ryu v1.0.17 [INFO] [stderr] Compiling either v1.11.0 [INFO] [stderr] Compiling utf8parse v0.2.1 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling linux-raw-sys v0.4.13 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling bitflags v2.5.0 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling anstyle-parse v0.2.3 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling colorchoice v1.0.0 [INFO] [stderr] Compiling thiserror v1.0.58 [INFO] [stderr] Compiling futures-io v0.3.30 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling regex-syntax v0.7.5 [INFO] [stderr] Compiling futures-task v0.3.30 [INFO] [stderr] Compiling peg-runtime v0.6.3 [INFO] [stderr] Compiling bstr v1.9.1 [INFO] [stderr] Compiling anstyle v1.0.6 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling unicode-width v0.1.11 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Compiling anstyle-query v1.0.2 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Compiling anstream v0.6.13 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling syn v2.0.60 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling peg-macros v0.6.3 [INFO] [stderr] Compiling crossbeam-deque v0.8.5 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling clap_lex v0.7.0 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling anyhow v1.0.82 [INFO] [stderr] Compiling terminal_size v0.3.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling clap_builder v4.5.2 [INFO] [stderr] Compiling textwrap v0.16.1 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling regex-automata v0.4.6 [INFO] [stderr] Compiling nom_locate v4.2.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling inflections v1.1.1 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling console v0.15.8 [INFO] [stderr] Compiling peg v0.6.3 [INFO] [stderr] Compiling parking_lot v0.12.1 [INFO] [stderr] Compiling socket2 v0.5.6 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.1 [INFO] [stderr] Compiling bytes v1.6.0 [INFO] [stderr] Compiling drain_filter_polyfill v0.1.3 [INFO] [stderr] Compiling inventory v0.3.15 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling regex v1.10.4 [INFO] [stderr] Compiling globset v0.4.14 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Compiling ignore v0.4.22 [INFO] [stderr] Compiling cucumber-expressions v0.3.0 [INFO] [stderr] Compiling globwalk v0.8.1 [INFO] [stderr] Compiling serde_derive v1.0.198 [INFO] [stderr] Compiling sealed v0.5.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling thiserror-impl v1.0.58 [INFO] [stderr] Compiling typed-builder-macro v0.15.2 [INFO] [stderr] Compiling clap_derive v4.5.4 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling async-trait v0.1.80 [INFO] [stderr] Compiling lazy-regex-proc_macros v3.1.0 [INFO] [stderr] Compiling smart-default v0.7.1 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling synthez-core v0.3.1 [INFO] [stderr] Compiling lazy-regex v3.1.0 [INFO] [stderr] Compiling tokio v1.37.0 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling pin-project v1.1.5 [INFO] [stderr] Compiling synthez-codegen v0.3.1 [INFO] [stderr] Compiling typed-builder v0.15.2 [INFO] [stderr] Compiling synthez v0.3.1 [INFO] [stderr] Compiling cucumber-codegen v0.20.2 [INFO] [stderr] Compiling clap v4.5.4 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling gherkin v0.14.0 [INFO] [stderr] Compiling cucumber v0.20.2 [INFO] [stderr] Compiling raytracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.66s [INFO] running `Command { std: "docker" "inspect" "dc1eaaec79e0e1b79d805fe62582369d10042663d69b2f457c612e9e344d26ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc1eaaec79e0e1b79d805fe62582369d10042663d69b2f457c612e9e344d26ee", kill_on_drop: false }` [INFO] [stdout] dc1eaaec79e0e1b79d805fe62582369d10042663d69b2f457c612e9e344d26ee [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dade22242480e924a4cd8d710d2f17e560254670f2c6895e60f960dcb61afec4 [INFO] running `Command { std: "docker" "start" "-a" "dade22242480e924a4cd8d710d2f17e560254670f2c6895e60f960dcb61afec4", kill_on_drop: false }` [INFO] [stderr] Compiling raytracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 10.12s [INFO] running `Command { std: "docker" "inspect" "dade22242480e924a4cd8d710d2f17e560254670f2c6895e60f960dcb61afec4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dade22242480e924a4cd8d710d2f17e560254670f2c6895e60f960dcb61afec4", kill_on_drop: false }` [INFO] [stdout] dade22242480e924a4cd8d710d2f17e560254670f2c6895e60f960dcb61afec4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f2b8f7ff7d0d34ca0506e8d8a7502447ceba70e36849dedc075089db1f03799f [INFO] running `Command { std: "docker" "start" "-a" "f2b8f7ff7d0d34ca0506e8d8a7502447ceba70e36849dedc075089db1f03799f", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/raytracer-318b05ff76fc0e6b) [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/raytracer-4ee9f2b3ab265896) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/main.rs (/opt/rustwide/target/debug/deps/main-aec06b87c5d4ebdb) [INFO] [stdout] Feature: Tuples feature [INFO] [stdout] Scenario: A tuple with w=1 is a point [INFO] [stdout] ✔ Given a ← tuple(4.3, -4.2, 3.1, 1.0) [INFO] [stdout] ✔ Then a.x = 4.3 [INFO] [stdout] ✔ And a.y = -4.2 [INFO] [stdout] ✔ And a.z = 3.1 [INFO] [stdout] ✔ And a.w = 1.0 [INFO] [stdout] ✔ And a is a point [INFO] [stdout] Scenario: A tuple with w=0 is a vector [INFO] [stdout] ✔ Given a ← tuple(4.3, -4.2, 3.1, 0.0) [INFO] [stdout] ✔ Then a.x = 4.3 [INFO] [stdout] ✔ And a.y = -4.2 [INFO] [stdout] ✔ And a.z = 3.1 [INFO] [stdout] ✔ And a.w = 0.0 [INFO] [stdout] ✔ And a is not a point [INFO] [stdout] ✔ And a is a vector [INFO] [stdout] Scenario: point() creates tuples with w=1 [INFO] [stdout] ✔ Given p ← point(4, -4, 3) [INFO] [stdout] ✔ Then p = tuple(4, -4, 3, 1) [INFO] [stdout] Scenario: vector() creates tuples with w=0 [INFO] [stdout] ✔ Given p ← vector(4, -4, 3) [INFO] [stdout] ✔ Then p = tuple(4, -4, 3, 0) [INFO] [stdout] Scenario: Adding two tuples [INFO] [stdout] ✔ Given a1 ← tuple(3, -2, 5, 1) [INFO] [stdout] ✔ And a2 ← tuple(-2, 3, 1, 0) [INFO] [stdout] ✔ Then a1 + a2 = tuple(1, 1, 6, 1) [INFO] [stdout] Scenario: Subtracting two points [INFO] [stdout] ✔ Given p1 ← point(3, 2, 1) [INFO] [stdout] ✔ And p2 ← point(5, 6, 7) [INFO] [stdout] ✔ Then p1 - p2 = vector(-2, -4, -6) [INFO] [stdout] Scenario: Subtracting a vector from a point [INFO] [stdout] ✔ Given p ← point(3, 2, 1) [INFO] [stdout] ✔ And v ← vector(5, 6, 7) [INFO] [stdout] ✔ Then p - v = point(-2, -4, -6) [INFO] [stdout] Scenario: Subtracting two vectors [INFO] [stdout] ✔ Given v1 ← vector(3, 2, 1) [INFO] [stdout] ✔ And v2 ← vector(5, 6, 7) [INFO] [stdout] ✔ Then v1 - v2 = vector(-2, -4, -6) [INFO] [stdout] Scenario: Subtracting a vector from the zero vector [INFO] [stdout] ✔ Given zero ← vector(0, 0, 0) [INFO] [stdout] ✔ And v ← vector(1, -2, 3) [INFO] [stdout] ✔ Then zero - v = vector(-1, 2, -3) [INFO] [stdout] Scenario: Negating a tuple [INFO] [stdout] ✔ Given a ← tuple(1, -2, 3, -4) [INFO] [stdout] ✔ Then - a = tuple(-1, 2, -3, 4) [INFO] [stdout] Scenario: Multiplying a tuple by a scalar [INFO] [stdout] ✔ Given a ← tuple(1, -2, 3, -4) [INFO] [stdout] ✔ Then a * 3.5 = tuple(3.5, -7, 10.5, -14) [INFO] [stdout] Scenario: Multiplying a tuple by a fraction [INFO] [stdout] ✔ Given a ← tuple(1, -2, 3, -4) [INFO] [stdout] ✔ Then a * 0.5 = tuple(0.5, -1, 1.5, -2) [INFO] [stdout] Scenario: Dividing a tuple by a scalar [INFO] [stdout] ✔ Given a ← tuple(1, -2, 3, -4) [INFO] [stdout] ✔ Then a / 2 = tuple(0.5, -1, 1.5, -2) [INFO] [stdout] Scenario: Computing the magnitude of vector(1, 0, 0) [INFO] [stdout] ✔ Given v ← vector(1, 0, 0) [INFO] [stdout] ✔ Then magnitude(v) = 1 [INFO] [stdout] Scenario: Computing the magnitude of vector(0, 1, 0) [INFO] [stdout] ✔ Given v ← vector(0, 1, 0) [INFO] [stdout] ✔ Then magnitude(v) = 1 [INFO] [stdout] Scenario: Computing the magnitude of vector(0, 0, 1) [INFO] [stdout] ✔ Given v ← vector(0, 0, 1) [INFO] [stdout] ✔ Then magnitude(v) = 1 [INFO] [stdout] Scenario: Computing the magnitude of vector(1, 2, 3) [INFO] [stdout] ✔ Given v ← vector(1, 2, 3) [INFO] [stdout] ✔ Then magnitude(v) = √14 [INFO] [stdout] Scenario: Computing the magnitude of vector(-1, -2, -3) [INFO] [stdout] ✔ Given v ← vector(-1, -2, -3) [INFO] [stdout] ✔ Then magnitude(v) = √14 [INFO] [stdout] Scenario: Normalizing vector(4, 0, 0) gives (1, 0, 0) [INFO] [stdout] ✔ Given v ← vector(4, 0, 0) [INFO] [stdout] ✔ Then normalize(v) = vector(1, 0, 0) [INFO] [stdout] Scenario: Normalizing vector(1, 2, 3) [INFO] [stdout] ✔ Given v ← vector(1, 2, 3) [INFO] [stdout] ✔ Then normalize(v) = vector(1/√14, 2/√14, 3/√14) [INFO] [stdout] Scenario: The magnitude of a normalized vector [INFO] [stdout] ✔ Given v ← vector(1, 2, 3) [INFO] [stdout] ✔ When norm ← normalize(v) [INFO] [stdout] ✔ Then magnitude(norm) = 1 [INFO] [stdout] Scenario: The dot product of two tuples [INFO] [stdout] ✔ Given a ← vector(1, 2, 3) [INFO] [stdout] ✔ And b ← vector(2, 3, 4) [INFO] [stdout] ✔ Then dot(a, b) = 20 [INFO] [stdout] Scenario: The cross product of two vectors [INFO] [stdout] ✔ Given a ← vector(1, 2, 3) [INFO] [stdout] ✔ And b ← vector(2, 3, 4) [INFO] [stdout] ✔ Then cross(a, b) = vector(-1, 2, -1) [INFO] [stdout] ✔ And cross(b, a) = vector(1, -2, 1) [INFO] [stdout] [Summary] [INFO] [stdout] 1 feature [INFO] [stdout] 23 scenarios (23 passed) [INFO] [stdout] 64 steps (64 passed) [INFO] [stderr] Running tests/tuples.rs (/opt/rustwide/target/debug/deps/tuples-71eaf5af8e3eddad) [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 raytracer [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" "f2b8f7ff7d0d34ca0506e8d8a7502447ceba70e36849dedc075089db1f03799f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2b8f7ff7d0d34ca0506e8d8a7502447ceba70e36849dedc075089db1f03799f", kill_on_drop: false }` [INFO] [stdout] f2b8f7ff7d0d34ca0506e8d8a7502447ceba70e36849dedc075089db1f03799f