[INFO] cloning repository https://github.com/ixi2101/rrt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ixi2101/rrt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fixi2101%2Frrt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fixi2101%2Frrt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4e61ed25f181a80578ceb81941c690b56e531c4c
[INFO] testing ixi2101/rrt against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fixi2101%2Frrt" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ixi2101/rrt
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/ixi2101/rrt
[INFO] tweaked toml for git repo https://github.com/ixi2101/rrt written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ixi2101/rrt on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ixi2101/rrt 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded winapi-util v0.1.10
[INFO] [stderr]   Downloaded lazy-regex-proc_macros v3.4.1
[INFO] [stderr]   Downloaded globset v0.4.16
[INFO] [stderr]   Downloaded ignore v0.4.23
[INFO] [stderr]   Downloaded drain_filter_polyfill v0.1.3
[INFO] [stderr]   Downloaded lazy-regex v3.4.1
[INFO] [stderr]   Downloaded smawk v0.3.2
[INFO] [stderr]   Downloaded synthez v0.3.1
[INFO] [stderr]   Downloaded typed-builder-macro v0.15.2
[INFO] [stderr]   Downloaded synthez-codegen v0.3.1
[INFO] [stderr]   Downloaded assert_float_eq v1.1.4
[INFO] [stderr]   Downloaded gherkin v0.14.0
[INFO] [stderr]   Downloaded clap_derive v4.5.45
[INFO] [stderr]   Downloaded synthez-core v0.3.1
[INFO] [stderr]   Downloaded clap v4.5.45
[INFO] [stderr]   Downloaded nom_locate v4.2.0
[INFO] [stderr]   Downloaded cucumber-codegen v0.20.2
[INFO] [stderr]   Downloaded cucumber v0.20.2
[INFO] [stderr]   Downloaded cucumber-expressions v0.3.0
[INFO] [stderr]   Downloaded clap_builder v4.5.44
[INFO] [stderr]   Downloaded typed-builder v0.15.2
[INFO] [stderr]   Downloaded sealed v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ea6103edf576453b8bf1d879f58a84a1dae4f0124de5a214948c173f50e60c41
[INFO] running `Command { std: "docker" "start" "-a" "ea6103edf576453b8bf1d879f58a84a1dae4f0124de5a214948c173f50e60c41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ea6103edf576453b8bf1d879f58a84a1dae4f0124de5a214948c173f50e60c41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea6103edf576453b8bf1d879f58a84a1dae4f0124de5a214948c173f50e60c41", kill_on_drop: false }`
[INFO] [stdout] ea6103edf576453b8bf1d879f58a84a1dae4f0124de5a214948c173f50e60c41
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0145f9ca3a9574d91eaaecc9f35be77969ada15374fdab5588b9e418660b4167
[INFO] running `Command { std: "docker" "start" "-a" "0145f9ca3a9574d91eaaecc9f35be77969ada15374fdab5588b9e418660b4167", kill_on_drop: false }`
[INFO] [stderr]    Compiling assert_float_eq v1.1.4
[INFO] [stderr]    Compiling rrt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.58s
[INFO] running `Command { std: "docker" "inspect" "0145f9ca3a9574d91eaaecc9f35be77969ada15374fdab5588b9e418660b4167", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0145f9ca3a9574d91eaaecc9f35be77969ada15374fdab5588b9e418660b4167", kill_on_drop: false }`
[INFO] [stdout] 0145f9ca3a9574d91eaaecc9f35be77969ada15374fdab5588b9e418660b4167
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9149bfeb77240546132fce63f876396b387bf8506e9fc79c670854657095b31f
[INFO] running `Command { std: "docker" "start" "-a" "9149bfeb77240546132fce63f876396b387bf8506e9fc79c670854657095b31f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling bitflags v2.9.3
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling bstr v1.12.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling peg-runtime v0.6.3
[INFO] [stderr]    Compiling regex-syntax v0.7.5
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling peg-macros v0.6.3
[INFO] [stderr]    Compiling anstream v0.6.20
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling nom_locate v4.2.0
[INFO] [stderr]    Compiling terminal_size v0.4.3
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling clap_builder v4.5.44
[INFO] [stderr]    Compiling peg v0.6.3
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling globset v0.4.16
[INFO] [stderr]    Compiling ignore v0.4.23
[INFO] [stderr]    Compiling drain_filter_polyfill v0.1.3
[INFO] [stderr]    Compiling inventory v0.3.21
[INFO] [stderr]    Compiling humantime v2.2.0
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling globwalk v0.8.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling sealed v0.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling typed-builder-macro v0.15.2
[INFO] [stderr]    Compiling synthez-core v0.3.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling typed-builder v0.15.2
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.4.1
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]    Compiling synthez-codegen v0.3.1
[INFO] [stderr]    Compiling synthez v0.3.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling lazy-regex v3.4.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling smart-default v0.7.1
[INFO] [stderr]    Compiling clap v4.5.45
[INFO] [stderr]    Compiling cucumber-expressions v0.3.0
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling cucumber-codegen v0.20.2
[INFO] [stderr]    Compiling gherkin v0.14.0
[INFO] [stderr]    Compiling cucumber v0.20.2
[INFO] [stderr]    Compiling rrt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 32s
[INFO] running `Command { std: "docker" "inspect" "9149bfeb77240546132fce63f876396b387bf8506e9fc79c670854657095b31f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9149bfeb77240546132fce63f876396b387bf8506e9fc79c670854657095b31f", kill_on_drop: false }`
[INFO] [stdout] 9149bfeb77240546132fce63f876396b387bf8506e9fc79c670854657095b31f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 83a09022d102fe939e2f8cc4c62b34e626f287d7cb18b7d622858d1c5d8e20ee
[INFO] running `Command { std: "docker" "start" "-a" "83a09022d102fe939e2f8cc4c62b34e626f287d7cb18b7d622858d1c5d8e20ee", 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/rrt-d6b506105f8ec66b)
[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/rrt-d98857b3dcbaf3d8)
[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/tuple_test.rs (/opt/rustwide/target/debug/deps/tuple_test-d1818293a4c0fbfe)
[INFO] [stdout] Feature: Tuple feature
[INFO] [stdout]   Scenario: A tuple with w=1.0 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]    ✔  And a is not a vector
[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 a = point(4, -4, 3)
[INFO] [stdout]    ✔  Then a.x = 4
[INFO] [stdout]    ✔  And a.y = -4
[INFO] [stdout]    ✔  And a.z = 3
[INFO] [stdout]    ✔  And a is a point
[INFO] [stdout]    ✔  And a is not a vector
[INFO] [stdout]   Scenario: vector() creates tuples with w=0
[INFO] [stdout]    ✔  Given a = vector(4, -4, 3)
[INFO] [stdout]    ✔  Then a.x = 4
[INFO] [stdout]    ✔  And a.y = -4
[INFO] [stdout]    ✔  And a.z = 3
[INFO] [stdout]    ✔  And a is not a point
[INFO] [stdout]    ✔  And a is a vector
[INFO] [stdout]   Scenario: tuple equivalency
[INFO] [stdout]    ✔  Given a = vector(4, -4, 3)
[INFO] [stdout]    ✔  And b = vector(4, -4, 3)
[INFO] [stdout]    ✔  Then equal(a, b)
[INFO] [stdout]   Scenario: tuple inequivalency
[INFO] [stdout]    ✔  Given a = vector(4, -4, 3)
[INFO] [stdout]    ✔  And b = point(4, -4, 3)
[INFO] [stdout]    ✔  Then not equal(a, b)
[INFO] [stdout]   Scenario: Adding two tuples
[INFO] [stdout]    ✔  Given lhs = tuple(3, -2, 5, 1)
[INFO] [stdout]    ✔  And rhs = tuple(-2, 3, 1, 0)
[INFO] [stdout]    ✔  And expected = tuple(1, 1, 6, 1)
[INFO] [stdout]    ✔  Then expected = lhs + rhs
[INFO] [stdout]   Scenario: Adding two vectors
[INFO] [stdout]    ✔  Given lhs = vector(3, -2, 5)
[INFO] [stdout]    ✔  And rhs = vector(-2, 3, 1)
[INFO] [stdout]    ✔  And expected = vector(1, 1, 6)
[INFO] [stdout]    ✔  Then expected = lhs + rhs
[INFO] [stdout]   Scenario: Subtracting two points
[INFO] [stdout]    ✔  Given p1 = point(3, 2, 1)
[INFO] [stdout]    ✔  And p2 = point(5, 6, 7)
[INFO] [stdout]    ✔  And expected = vector(-2, -4, -6)
[INFO] [stdout]    ✔  Then expected = p1 - p2
[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]    ✔  And expected = point(-2, -4, -6)
[INFO] [stdout]    ✔  Then expected = p - v
[INFO] [stdout]   Scenario: Subtracting two vectors
[INFO] [stdout]    ✔  Given v1 = vector(3, 2, 1)
[INFO] [stdout]    ✔  And v2 = vector(5, 6, 7)
[INFO] [stdout]    ✔  And expected = vector(-2, -4, -6)
[INFO] [stdout]    ✔  Then expected = v1 - v2
[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]    ✔  And expected = vector(-1, 2, -3)
[INFO] [stdout]    ✔  Then expected = zero - v
[INFO] [stdout]   Scenario: Negating a tuple
[INFO] [stdout]    ✔  Given a = tuple(1, -2, 3, -4)
[INFO] [stdout]    ✔  And neg_a = tuple(-1, 2, -3, 4)
[INFO] [stdout]    ✔  Then a negated is neg_a
[INFO] [stdout]   Scenario: Multiplying a tuple by a scalar
[INFO] [stdout]    ✔  Given a = tuple(1, -2, 3, -4)
[INFO] [stdout]    ✔  And b = tuple(3.5, -7, 10.5, -14)
[INFO] [stdout]    ✔  Then a * 3.5f = b
[INFO] [stdout]   Scenario: Multiplying a tuple by a scalar but real
[INFO] [stdout]    ✔  Given a = tuple(1, -2, 3, -4)
[INFO] [stdout]    ✔  And b = tuple(3, -6, 9, -12)
[INFO] [stdout]    ✔  Then a * 3 = b
[INFO] [stdout]   Scenario: Multiplying a tuple by a fraction
[INFO] [stdout]    ✔  Given a = tuple(1, -2, 3, -4)
[INFO] [stdout]    ✔  Given b = tuple(0.5, -1, 1.5, -2)
[INFO] [stdout]    ✔  Then a * 0.5f = b
[INFO] [stdout]   Scenario: Dividing a tuple by a scalar
[INFO] [stdout]    ✔  Given a = tuple(1, -2, 3, -4)
[INFO] [stdout]    ✔  And b = tuple(0.5, -1, 1.5, -2)
[INFO] [stdout]    ✔  Then a / 2 = b
[INFO] [stdout]   Scenario: Dividing a tuple by a scalar but fraction
[INFO] [stdout]    ✔  Given a = tuple(1, -2, 3, -4)
[INFO] [stdout]    ✔  And b = tuple(2, -4, 6, -8)
[INFO] [stdout]    ✔  Then a / 0.5f = b
[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] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 23 scenarios (23 passed)
[INFO] [stdout] 84 steps (84 passed)
[INFO] [stderr]    Doc-tests rrt
[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" "83a09022d102fe939e2f8cc4c62b34e626f287d7cb18b7d622858d1c5d8e20ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "83a09022d102fe939e2f8cc4c62b34e626f287d7cb18b7d622858d1c5d8e20ee", kill_on_drop: false }`
[INFO] [stdout] 83a09022d102fe939e2f8cc4c62b34e626f287d7cb18b7d622858d1c5d8e20ee
