[INFO] fetching crate sliding_puzzle 1.0.0...
[INFO] testing sliding_puzzle-1.0.0 against 1.47.0 for beta-1.48-1
[INFO] extracting crate sliding_puzzle 1.0.0 into /workspace/builds/worker-3/source
[INFO] validating manifest of crates.io crate sliding_puzzle 1.0.0 on toolchain 1.47.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate sliding_puzzle 1.0.0
[INFO] finished tweaking crates.io crate sliding_puzzle 1.0.0
[INFO] tweaked toml for crates.io crate sliding_puzzle 1.0.0 written to /workspace/builds/worker-3/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bench]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other benchmark targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a benchmark target:
[INFO] [stderr] 
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/slide_mut_unchecked.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/slide_unchecked.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/to_decimal_unchecked.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/slide.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/from_decimal_unchecked.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/clone.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/from_decimal.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/new.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/scramble.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/slide_mut.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/moves.rs
[INFO] [stderr] * /workspace/builds/worker-3/source/benches/to_decimal.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a benchmark target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobenches = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6a739931f01f247319b68530b7d77dfd6ea10e85d74089ef9925ed9769f1d4aa
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "6a739931f01f247319b68530b7d77dfd6ea10e85d74089ef9925ed9769f1d4aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6a739931f01f247319b68530b7d77dfd6ea10e85d74089ef9925ed9769f1d4aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a739931f01f247319b68530b7d77dfd6ea10e85d74089ef9925ed9769f1d4aa", kill_on_drop: false }`
[INFO] [stdout] 6a739931f01f247319b68530b7d77dfd6ea10e85d74089ef9925ed9769f1d4aa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 305e720384231246f7a36fa50fb7aed36d94ca6d8371c52542ae4e089a99dff1
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "305e720384231246f7a36fa50fb7aed36d94ca6d8371c52542ae4e089a99dff1", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bench]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other benchmark targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a benchmark target:
[INFO] [stderr] 
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_mut_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/to_decimal_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/from_decimal_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/clone.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/from_decimal.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/new.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/scramble.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_mut.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/moves.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/to_decimal.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a benchmark target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobenches = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr]    Compiling lehmer v2.0.0
[INFO] [stderr]    Compiling sliding_puzzle v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/base/mod.rs:72:66
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn slide_mut(&mut self, direction: &Direction) -> Result<(&mut Self)> {
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.27s
[INFO] running `Command { std: "docker" "inspect" "305e720384231246f7a36fa50fb7aed36d94ca6d8371c52542ae4e089a99dff1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "305e720384231246f7a36fa50fb7aed36d94ca6d8371c52542ae4e089a99dff1", kill_on_drop: false }`
[INFO] [stdout] 305e720384231246f7a36fa50fb7aed36d94ca6d8371c52542ae4e089a99dff1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ca6bc54c86bd4a8237a93ff7a456e01186b27f95bbb8685f65d109a04458611b
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "ca6bc54c86bd4a8237a93ff7a456e01186b27f95bbb8685f65d109a04458611b", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bench]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other benchmark targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a benchmark target:
[INFO] [stderr] 
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_mut_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/to_decimal_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/from_decimal_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/clone.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/from_decimal.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/new.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/scramble.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_mut.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/moves.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/to_decimal.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a benchmark target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobenches = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr]    Compiling bencher v0.1.5
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/base/mod.rs:72:66
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn slide_mut(&mut self, direction: &Direction) -> Result<(&mut Self)> {
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling sliding_puzzle v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/base/mod.rs:72:66
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn slide_mut(&mut self, direction: &Direction) -> Result<(&mut Self)> {
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 2.38s
[INFO] running `Command { std: "docker" "inspect" "ca6bc54c86bd4a8237a93ff7a456e01186b27f95bbb8685f65d109a04458611b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ca6bc54c86bd4a8237a93ff7a456e01186b27f95bbb8685f65d109a04458611b", kill_on_drop: false }`
[INFO] [stdout] ca6bc54c86bd4a8237a93ff7a456e01186b27f95bbb8685f65d109a04458611b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ea07e7e8f6fbc354e64faab498a36eebee84b9ba838f974db3d644e116b3672a
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "ea07e7e8f6fbc354e64faab498a36eebee84b9ba838f974db3d644e116b3672a", kill_on_drop: false }`
[INFO] [stderr] warning: An explicit [[bench]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other benchmark targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a benchmark target:
[INFO] [stderr] 
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_mut_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/to_decimal_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/from_decimal_unchecked.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/clone.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/from_decimal.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/new.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/scramble.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/slide_mut.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/moves.rs
[INFO] [stderr] * /opt/rustwide/workdir/benches/to_decimal.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a benchmark target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobenches = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/base/mod.rs:72:66
[INFO] [stderr]    |
[INFO] [stderr] 72 |     pub fn slide_mut(&mut self, direction: &Direction) -> Result<(&mut Self)> {
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/base/mod.rs:72:66
[INFO] [stderr]    |
[INFO] [stderr] 72 |     pub fn slide_mut(&mut self, direction: &Direction) -> Result<(&mut Self)> {
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/sliding_puzzle-2f2b05ef9d26261d
[INFO] [stdout] 
[INFO] [stdout] running 55 tests
[INFO] [stdout] test base::test::from_decimal::it_errors_if_columns_is_zero ... ok
[INFO] [stdout] test base::test::from_decimal::it_constructs_a_puzzle_from_the_factorial_base_number_in_general ... ok
[INFO] [stdout] test base::test::blank_is_on_the_x::blank_is_on_the_right::it_returns_the_expected_true_false_values ... ok
[INFO] [stdout] test base::test::blank_is_on_the_x::blank_is_on_the_left::it_returns_the_expected_true_false_values ... ok
[INFO] [stdout] test base::test::from_decimal::it_errors_if_n_is_too_large ... ok
[INFO] [stdout] test base::test::blank_is_on_the_x::blank_is_on_the_top::it_returns_the_expected_true_false_values ... ok
[INFO] [stdout] test base::test::blank_is_on_the_x::blank_is_on_the_bottom::it_returns_the_expected_true_false_values ... ok
[INFO] [stdout] test base::test::from_decimal::it_errors_if_rows_is_zero ... ok
[INFO] [stdout] test base::test::get::it_gets_the_tile_at_x_y_position ... ok
[INFO] [stdout] test base::test::get::it_returns_none_if_out_of_bounds ... ok
[INFO] [stdout] test base::test::move_is_valid::it_returns_whether_the_move_can_be_made_in_the_puzzle ... ok
[INFO] [stdout] test base::test::from_decimal::it_errors_if_the_puzzle_contains_more_than_twenty_tiles ... ok
[INFO] [stdout] test base::test::in_bounds::it_returns_true_if_the_x_y_position_is_in_bounds ... ok
[INFO] [stdout] test base::test::from_decimal_unchecked::it_constructs_a_puzzle_with_sequential_tiles_for_zero ... ok
[INFO] [stdout] test base::test::moves::it_returns_four_directions_when_the_blank_is_in_the_middle ... ok
[INFO] [stdout] test base::test::from_decimal_unchecked::it_constructs_a_puzzle_from_the_factorial_base_number_in_general ... ok
[INFO] [stdout] test base::test::new::it_errors_if_the_puzzle_contains_more_than_one_blank ... ok
[INFO] [stdout] test base::test::new::it_can_be_used_in_a_generic_way ... ok
[INFO] [stdout] test base::test::moves::it_returns_two_directions_when_the_blank_is_in_a_corner ... ok
[INFO] [stdout] test base::test::moves::it_returns_three_directions_when_the_blank_is_at_an_edge ... ok
[INFO] [stdout] test base::test::new::it_errors_if_the_puzzle_doesnt_contain_a_blank ... ok
[INFO] [stdout] test base::test::new::it_errors_if_the_puzzle_isnt_rectangular ... ok
[INFO] [stdout] test base::test::new::it_errors_if_the_puzzle_has_no_rows ... ok
[INFO] [stdout] test base::test::new::it_is_initialized_with_a_2d_slice ... ok
[INFO] [stdout] test base::test::position::it_returns_none_if_the_tile_cant_be_found ... ok
[INFO] [stdout] test base::test::new::it_errors_if_the_puzzle_has_no_columns ... ok
[INFO] [stdout] test base::test::position::it_finds_the_x_y_position_of_the_tile ... ok
[INFO] [stdout] test base::test::slide::it_errors_if_the_move_is_invalid ... ok
[INFO] [stdout] test base::test::slide_mut::it_slides_a_tile_in_the_direction_of_the_blank ... ok
[INFO] [stdout] test base::test::slide_mut_unchecked::it_can_be_chained_for_convenience ... ok
[INFO] [stdout] test base::test::slide_mut_unchecked::it_might_not_panic_if_the_move_is_invalid ... ok
[INFO] [stdout] test base::test::slide_mut_unchecked::it_slides_a_tile_in_the_direction_of_the_blank ... ok
[INFO] [stdout] test base::test::new::it_initializes_correctly_when_theres_a_single_row ... ok
[INFO] [stdout] test base::test::slide_mut::it_does_not_mutate_the_puzzle_if_the_move_is_invalid ... ok
[INFO] [stdout] test base::test::slide::it_slides_a_tile_in_the_direction_of_the_blank ... ok
[INFO] [stdout] test base::test::slide::it_does_not_mutate_the_subject ... ok
[INFO] [stdout] test base::test::slide_unchecked::it_can_be_chained_for_convenience ... ok
[INFO] [stdout] test base::test::slide_mut::it_errors_if_the_move_is_invalid ... ok
[INFO] [stdout] test base::test::slide_unchecked::it_does_not_mutate_the_subject ... ok
[INFO] [stdout] test base::test::tiles::it_reconstructs_the_2d_representation_of_the_puzzle ... ok
[INFO] [stdout] test base::test::to_decimal::it_errors_if_the_puzzle_doesnt_contain_zero_through_n_minus_one ... ok
[INFO] [stdout] test base::test::slide_unchecked::it_might_not_panic_if_the_move_is_invalid ... ok
[INFO] [stdout] test base::test::to_decimal_unchecked::it_returns_zero_if_the_tiles_are_in_sequence ... ok
[INFO] [stdout] test base::test::slide_unchecked::it_slides_a_tile_in_the_direction_of_the_blank ... ok
[INFO] [stdout] test base::test::scramble::it_does_not_immediately_double_back_on_itself ... ok
[INFO] [stdout] test base::test::to_decimal::it_returns_the_factorial_base_number_in_general ... ok
[INFO] [stdout] test base::test::to_decimal_unchecked::it_returns_the_factorial_base_number_in_general ... ok
[INFO] [stdout] test direction::test::y::it_returns_the_y_offset_relative_to_the_blank_for_the_moving_tile ... ok
[INFO] [stdout] test error::test::new::it_is_initialized_with_a_description ... ok
[INFO] [stdout] test error::test::fmt::it_formats_the_error ... ok
[INFO] [stdout] test direction::test::x::it_returns_the_x_offset_relative_to_the_blank_for_the_moving_tile ... ok
[INFO] [stdout] test direction::test::opposite::it_returns_the_opposite_direction ... ok
[INFO] [stdout] test base::test::slide_unchecked::it_might_panic_if_the_move_is_invalid ... ok
[INFO] [stdout] test base::test::slide_mut_unchecked::it_might_panic_if_the_move_is_invalid ... ok
[INFO] [stdout] test base::test::scramble::it_slides_in_a_random_direction_a_number_of_times ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/search-69f270e2f0c3bdfe
[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
[INFO] [stdout] 
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/sliding_puzzle_test-f19019072f4063e1
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test it_works_for_the_example_in_the_readme ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests sliding_puzzle
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> /opt/rustwide/workdir/src/base/mod.rs:72:66
[INFO] [stderr]    |
[INFO] [stderr] 72 |     pub fn slide_mut(&mut self, direction: &Direction) -> Result<(&mut Self)> {
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[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
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ea07e7e8f6fbc354e64faab498a36eebee84b9ba838f974db3d644e116b3672a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea07e7e8f6fbc354e64faab498a36eebee84b9ba838f974db3d644e116b3672a", kill_on_drop: false }`
[INFO] [stdout] ea07e7e8f6fbc354e64faab498a36eebee84b9ba838f974db3d644e116b3672a
