[INFO] cloning repository https://github.com/datakdtk/texas_handranks [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/datakdtk/texas_handranks" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatakdtk%2Ftexas_handranks", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatakdtk%2Ftexas_handranks'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2f635b8716559c4401c7f1a654cbc9c832f71a5b [INFO] testing datakdtk/texas_handranks against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatakdtk%2Ftexas_handranks" "/workspace/builds/worker-7/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/datakdtk/texas_handranks on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/datakdtk/texas_handranks [INFO] finished tweaking git repo https://github.com/datakdtk/texas_handranks [INFO] tweaked toml for git repo https://github.com/datakdtk/texas_handranks written to /workspace/builds/worker-7/source/Cargo.toml [INFO] crate git repo https://github.com/datakdtk/texas_handranks already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] fed5e8dbe37e94d43b4c37165324b4b4a0ca881c7b2dfa07f0d6137869384e21 [INFO] running `Command { std: "docker" "start" "-a" "fed5e8dbe37e94d43b4c37165324b4b4a0ca881c7b2dfa07f0d6137869384e21", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fed5e8dbe37e94d43b4c37165324b4b4a0ca881c7b2dfa07f0d6137869384e21", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fed5e8dbe37e94d43b4c37165324b4b4a0ca881c7b2dfa07f0d6137869384e21", kill_on_drop: false }` [INFO] [stdout] fed5e8dbe37e94d43b4c37165324b4b4a0ca881c7b2dfa07f0d6137869384e21 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d29531a9856803fdc99f9d65109723092dfa31303ae7d6717c7913d4e1cfbece [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" "d29531a9856803fdc99f9d65109723092dfa31303ae7d6717c7913d4e1cfbece", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.90 [INFO] [stderr] Compiling getrandom v0.2.2 [INFO] [stderr] Compiling rand_core v0.6.2 [INFO] [stderr] Compiling rand_chacha v0.3.0 [INFO] [stderr] Compiling rand v0.8.3 [INFO] [stderr] Compiling playing_card v0.1.0 (/opt/rustwide/workdir/playing_card) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> playing_card/src/card/rank.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | x => panic!(format!("Argument {} is out of range", x).to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 24 | x => panic!("{}", format!("Argument {} is out of range", x).to_string()), [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling texas_holdem v0.1.0 (/opt/rustwide/workdir/texas_holdem) [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling texas_holdem_monte_carlo v0.1.0 (/opt/rustwide/workdir/texas_holdem_monte_carlo) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> texas_holdem_monte_carlo/src/starting_hand.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | _ => panic!(format!("Unexpected card: {}", rank)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 33 - _ => panic!(format!("Unexpected card: {}", rank)), [INFO] [stdout] 33 + _ => panic!("Unexpected card: {}", rank), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.90s [INFO] running `Command { std: "docker" "inspect" "d29531a9856803fdc99f9d65109723092dfa31303ae7d6717c7913d4e1cfbece", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d29531a9856803fdc99f9d65109723092dfa31303ae7d6717c7913d4e1cfbece", kill_on_drop: false }` [INFO] [stdout] d29531a9856803fdc99f9d65109723092dfa31303ae7d6717c7913d4e1cfbece [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b73cc2cd63e16103aad07593ff8c1668b7c6ba893be8cb6ab871d69474078bf1 [INFO] running `Command { std: "docker" "start" "-a" "b73cc2cd63e16103aad07593ff8c1668b7c6ba893be8cb6ab871d69474078bf1", kill_on_drop: false }` [INFO] [stderr] Compiling playing_card v0.1.0 (/opt/rustwide/workdir/playing_card) [INFO] [stderr] Compiling texas_holdem v0.1.0 (/opt/rustwide/workdir/texas_holdem) [INFO] [stderr] Compiling texas_holdem_monte_carlo v0.1.0 (/opt/rustwide/workdir/texas_holdem_monte_carlo) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> playing_card/src/card/rank.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | x => panic!(format!("Argument {} is out of range", x).to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 24 | x => panic!("{}", format!("Argument {} is out of range", x).to_string()), [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> texas_holdem_monte_carlo/src/starting_hand.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | _ => panic!(format!("Unexpected card: {}", rank)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 33 - _ => panic!(format!("Unexpected card: {}", rank)), [INFO] [stdout] 33 + _ => panic!("Unexpected card: {}", rank), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> playing_card/src/card/rank.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | x => panic!(format!("Argument {} is out of range", x).to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 24 | x => panic!("{}", format!("Argument {} is out of range", x).to_string()), [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 6.90s [INFO] running `Command { std: "docker" "inspect" "b73cc2cd63e16103aad07593ff8c1668b7c6ba893be8cb6ab871d69474078bf1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b73cc2cd63e16103aad07593ff8c1668b7c6ba893be8cb6ab871d69474078bf1", kill_on_drop: false }` [INFO] [stdout] b73cc2cd63e16103aad07593ff8c1668b7c6ba893be8cb6ab871d69474078bf1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1be94c064d6760748841c0fad2f037a84206fbc10b206a4dc42e818bdc2b9ef4 [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" "1be94c064d6760748841c0fad2f037a84206fbc10b206a4dc42e818bdc2b9ef4", kill_on_drop: false }` [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> playing_card/src/card/rank.rs:24:25 [INFO] [stderr] | [INFO] [stderr] 24 | x => panic!(format!("Argument {} is out of range", x).to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to Display the message [INFO] [stderr] | [INFO] [stderr] 24 | x => panic!("{}", format!("Argument {} is out of range", x).to_string()), [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: `playing_card` (lib) generated 1 warning [INFO] [stderr] warning: `playing_card` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> texas_holdem_monte_carlo/src/starting_hand.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | _ => panic!(format!("Unexpected card: {}", rank)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 33 - _ => panic!(format!("Unexpected card: {}", rank)), [INFO] [stderr] 33 + _ => panic!("Unexpected card: {}", rank), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `texas_holdem_monte_carlo` (bin "texas_holdem_monte_carlo" test) generated 1 warning [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/playing_card-d1b9f3a74f65b394) [INFO] [stdout] [INFO] [stdout] running 65 tests [INFO] [stdout] test card::rank::test::ace_is_1_in_int ... ok [INFO] [stdout] test card::rank::test::ace_is_A_in_char ... ok [INFO] [stdout] test card::rank::test::ace_is_A_in_string ... ok [INFO] [stdout] test card::rank::test::ace_is_ace ... ok [INFO] [stdout] test card::rank::test::jack_is_J_in_char ... ok [INFO] [stdout] test card::rank::test::jack_is_created_from_11 ... ok [INFO] [stdout] test card::rank::test::king_is_13_in_int ... ok [INFO] [stdout] test card::rank::test::king_is_created_from_13 ... ok [INFO] [stdout] test card::rank::test::king_is_K_in_char ... ok [INFO] [stdout] test card::rank::test::king_is_not_ace ... ok [INFO] [stdout] test card::rank::test::all_includes_from_1_to_13 ... ok [INFO] [stdout] test card::rank::test::queen_is_12_in_int ... ok [INFO] [stdout] test card::rank::test::queen_is_picture_card ... ok [INFO] [stdout] test card::rank::test::queen_is_created_from_12 ... ok [INFO] [stdout] test card::rank::test::rank_2_is_2_in_int ... ok [INFO] [stdout] test card::rank::test::jack_is_picture_card ... ok [INFO] [stdout] test card::rank::test::rank_2_is_2_in_string ... ok [INFO] [stdout] test card::rank::test::rank_2_is_2_in_char ... ok [INFO] [stdout] test card::rank::test::ace_is_created_from_1 ... ok [INFO] [stdout] test card::rank::test::jack_is_11_in_int ... ok [INFO] [stdout] test card::rank::test::rank_10_is_T_in_char ... ok [INFO] [stdout] test card::rank::test::rank_10_is_not_picture_card ... ok [INFO] [stdout] test card::rank::test::rank_10_is_10_in_string ... ok [INFO] [stdout] test card::rank::test::ace_is_not_picture_card ... ok [INFO] [stdout] test card::rank::test::rank_2_is_not_ace ... ok [INFO] [stdout] test card::rank::test::queen_is_Q_in_char ... ok [INFO] [stdout] test card::rank::test::rank_10_is_10_in_int ... ok [INFO] [stdout] test card::rank::test::rank_10_is_not_ace ... ok [INFO] [stdout] test card::rank::test::king_is_picture_card ... ok [INFO] [stdout] test card::rank::test::rank_can_create_from_2 ... ok [INFO] [stdout] test card::rank::test::rank_2_is_not_picture_card ... ok [INFO] [stdout] test card::rank::test::rank_9_is_9_in_char ... ok [INFO] [stdout] test card::suit::test::club_is_black ... ok [INFO] [stdout] test card::test::all_cards_with_one_joker_are_53_cards ... ok [INFO] [stdout] test card::test::all_cards_with_one_joker_are_all_different ... ok [INFO] [stdout] test card::test::all_cards_with_two_jokers_are_54_cards ... ok [INFO] [stdout] test card::test::all_cards_with_two_jokers_have_two_joker_cards ... ok [INFO] [stdout] test cmp::test::test_rank_order_when_2_is_highest ... ok [INFO] [stdout] test cmp::test::same_rank_cards_are_compared_by_suit ... ok [INFO] [stdout] test cmp::test::test_rank_order_when_ace_is_highest ... ok [INFO] [stdout] test cmp::test::test_rank_order_when_king_is_highest ... ok [INFO] [stdout] test deck::test::deal_many_removes_returned_items ... ok [INFO] [stdout] test deck::test::card_order_is_changed_by_shuffle ... ok [INFO] [stdout] test deck::test::deal_many_returns_first_items ... ok [INFO] [stdout] test deck::test::deal_many_returns_all_items_when_it_does_not_have_enough_card ... ok [INFO] [stdout] test cmp::test::it_can_compare_suits_in_customized_order_2 ... ok [INFO] [stdout] test cmp::test::same_cards_are_equal ... ok [INFO] [stdout] test deck::test::deal_one_returns_first_item ... ok [INFO] [stdout] test deck::test::deal_many_returns_preceding_items_when_called_twice ... ok [INFO] [stdout] test deck::test::deal_one_removes_returned_item ... ok [INFO] [stdout] test deck::test::deal_one_returns_none_when_deck_is_empty ... ok [INFO] [stdout] test deck::test::search_removes_matched_cards ... ok [INFO] [stdout] test deck::test::deal_one_returns_second_item_when_called_twice ... ok [INFO] [stdout] test card::suit::test::heart_is_red ... ok [INFO] [stdout] test card::suit::test::diamond_is_red ... ok [INFO] [stdout] test card::rank::test::rank_can_create_from_10 ... ok [INFO] [stdout] test cmp::test::it_can_compare_suits_in_customized_order_1 ... ok [INFO] [stdout] test cmp::test::cards_are_compared_by_rank_at_first ... ok [INFO] [stdout] test card::test::all_non_joker_cards_are_52_cards ... ok [INFO] [stdout] test deck::test::search_returns_matched_cards ... ok [INFO] [stdout] test card::test::all_non_joker_cards_are_all_different ... ok [INFO] [stdout] test card::suit::test::spade_is_black ... ok [INFO] [stdout] test cmp::test::duplicate_suits_order_causes_error ... ok [INFO] [stdout] test card::rank::test::rank_can_not_create_from_0 - should panic ... ok [INFO] [stdout] test card::rank::test::rank_can_not_create_from_14 - should panic ... ok [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/texas_holdem-958d0de0aa8d5a83) [INFO] [stdout] [INFO] [stdout] test result: ok. 65 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 180 tests [INFO] [stdout] test card::board::test::cards_are_empty_at_first ... ok [INFO] [stdout] test card::board::test::initial_phase_is_pre_flop ... ok [INFO] [stdout] test card::board::test::phase_becomes_flop_after_first_deal ... ok [INFO] [stdout] test card::board::test::phase_becomes_turn_after_second_deal ... ok [INFO] [stdout] test card::hand_value::test::hand_rank_values_are_compared_by_rank_type_at_first ... ok [INFO] [stdout] test card::board::test::turn_is_dealt_by_second_deal ... ok [INFO] [stdout] test card::hand_value::test::hand_values_of_same_rank_are_compared_by_highest_card_rank ... ok [INFO] [stdout] test card::board::test::river_is_dealt_by_third_deal ... ok [INFO] [stdout] test card::hand_value::test::hand_values_of_same_rank_can_be_compared_by_fourth_highest_card_rank ... ok [INFO] [stdout] test card::hand_value::test::hand_values_of_same_rank_can_be_compared_by_second_highest_card_rank ... ok [INFO] [stdout] test card::rank::flush::test::hand_rank_of_result_is_flush ... ok [INFO] [stdout] test card::board::test::phase_becomes_river_after_third_deal ... ok [INFO] [stdout] test card::hand_value::test::hand_values_with_same_type_and_card_ranks_are_equal ... ok [INFO] [stdout] test card::rank::flush::test::returns_some_when_extra_card_of_another_suit_exists ... ok [INFO] [stdout] test card::rank::four_of_a_kind::test::hand_rank_of_result_is_four_of_a_kind ... ok [INFO] [stdout] test card::rank::flush::test::returns_some_when_6_same_suit_cards_exist ... ok [INFO] [stdout] test card::rank::flush::test::returns_some_when_5_same_suit_cards_exist ... ok [INFO] [stdout] test card::rank::four_of_a_kind::test::returns_none_when_quads_exist_but_only_4_cards_are_given ... ok [INFO] [stdout] test card::rank::four_of_a_kind::test::returns_none_when_5_cards_are_given_but_no_quads ... ok [INFO] [stdout] test card::rank::four_of_a_kind::test::rank_of_quads_comes_first_in_result_value_and_other_ranks_are_sorted ... ok [INFO] [stdout] test card::rank::flush::test::returns_none_when_only_4_same_suit_cards_exist ... ok [INFO] [stdout] test card::board::test::length_of_cards_is_3_after_first_deal ... ok [INFO] [stdout] test card::hand_value::test::hand_values_of_same_rank_can_be_compared_by_third_highest_card_rank ... ok [INFO] [stdout] test card::board::test::length_of_cards_is_5_after_third_deal ... ok [INFO] [stdout] test card::rank::four_of_a_kind::test::returns_some_when_5_cards_are_given_and_quads_exit ... ok [INFO] [stdout] test card::hand_value::test::hand_values_of_same_rank_can_be_compared_by_lowest_card_rank ... ok [INFO] [stdout] test card::rank::full_house::test::hand_rank_of_result_is_full_house ... ok [INFO] [stdout] test card::board::test::length_of_cards_is_4_after_second_deal ... ok [INFO] [stdout] test card::rank::flush::test::result_includes_higher_ranks_of_suit_of_flush ... ok [INFO] [stdout] test card::rank::full_house::test::lower_set_becomes_pair_when_2_sets_exist ... ok [INFO] [stdout] test card::rank::full_house::test::returns_none_when_only_pairs_exists ... ok [INFO] [stdout] test card::rank::full_house::test::higher_pair_appears_in_result_when_2_pairs_exist ... ok [INFO] [stdout] test card::rank::full_house::test::rank_of_set_come_first_and_rank_of_pair_comes_second_in_result ... ok [INFO] [stdout] test card::board::test::deal_until_turn ... ok [INFO] [stdout] test card::board::test::flop_is_dealt_by_first_deal ... ok [INFO] [stdout] test card::rank::high_card::test::hand_rank_of_result_is_high_card ... ok [INFO] [stdout] test card::rank::high_card::test::returns_none_when_only_4_cards_are_given ... ok [INFO] [stdout] test card::rank::pair::test::rank_of_pair_comes_first_in_result_value_and_other_ranks_are_sorted ... ok [INFO] [stdout] test card::rank::high_card::test::card_ranks_of_result_is_sorted_by_rank ... ok [INFO] [stdout] test card::rank::pair::test::returns_none_when_5_cards_are_given_but_no_pair ... ok [INFO] [stdout] test card::rank::full_house::test::returns_some_when_2_sets_exist ... ok [INFO] [stdout] test card::rank::high_card::test::returns_some_when_5_cards_are_given ... ok [INFO] [stdout] test card::rank::full_house::test::returns_some_when_both_set_and_pair_exist ... ok [INFO] [stdout] test card::rank::pair::test::hand_rank_of_result_is_pair ... ok [INFO] [stdout] test card::rank::full_house::test::returns_none_when_only_set_exists ... ok [INFO] [stdout] test card::board::test::deal_until_river ... ok [INFO] [stdout] test card::rank::straight::test::result_contains_higher_straight_when_sequence_is_longer_than_5 ... ok [INFO] [stdout] test card::rank::straight::test::can_build_ace_high_straight ... ok [INFO] [stdout] test card::rank::royal_flush::test::ranks_of_result_value_are_ace_to_10 ... ok [INFO] [stdout] test card::rank::royal_flush::test::hand_rank_of_result_is_royal_flush ... ok [INFO] [stdout] test card::rank::straight_flush::test::result_contains_ranks_of_highest_straight_flush_when_same_suit_sequence_is_longer_than_5 ... ok [INFO] [stdout] test card::rank::straight_flush::test::hand_rank_of_result_is_straight_flush ... ok [INFO] [stdout] test card::rank::straight_flush::test::result_contains_ranks_of_straight_flush_when_lower_straight_is_flush ... ok [INFO] [stdout] test card::rank::straight_flush::test::result_contains_ranks_of_straight_flush_when_higher_straight_is_flush ... ok [INFO] [stdout] test card::rank::straight_flush::test::returns_none_when_flush_but_not_straight ... ok [INFO] [stdout] test card::rank::straight_flush::test::result_contains_ranks_of_straight_flush_when_middle_straight_is_flush ... ok [INFO] [stdout] test card::rank::straight_flush::test::returns_none_when_straight_but_not_flush ... ok [INFO] [stdout] test card::rank::straight_flush::test::returns_none_when_straight_and_flush_but_not_straight_flush ... ok [INFO] [stdout] test card::rank::royal_flush::test::returns_some_when_ace_high_straight_flush ... ok [INFO] [stdout] test card::rank::straight::test::returns_none_when_not_straight ... ok [INFO] [stdout] test card::rank::straight::test::returns_some_when_straight ... ok [INFO] [stdout] test card::rank::straight::test::result_contains_ranks_of_straight ... ok [INFO] [stdout] test card::rank::royal_flush::test::returns_none_when_straight_flush_but_that_is_not_ace_high ... ok [INFO] [stdout] test card::rank::royal_flush::test::returns_some_when_sequence_is_longer_than_5 ... ok [INFO] [stdout] test card::rank::straight::test::can_build_five_high_straight ... ok [INFO] [stdout] test card::rank::pair::test::returns_some_when_5_cards_are_given_and_is_paired ... ok [INFO] [stdout] test card::rank::straight_flush::test::returns_some_when_straight_has_duplicate_rank ... ok [INFO] [stdout] test card::rank::straight::test::hand_rank_of_result_is_straight ... ok [INFO] [stdout] test card::rank::royal_flush::test::returns_none_when_5_to_ace_straight_flush ... ok [INFO] [stdout] test card::rank::test::can_find_flush ... ok [INFO] [stdout] test card::rank::pair::test::returns_none_when_is_paired_but_only_4_cards_are_given ... ok [INFO] [stdout] test card::rank::royal_flush::test::returns_none_when_ace_high_straight_but_not_flush ... ok [INFO] [stdout] test card::rank::straight_flush::test::returns_some_when_straight_flush ... ok [INFO] [stdout] test card::board::test::deal_until_flop ... ok [INFO] [stdout] test card::board::test::deals_hand_to_given_number_of_players ... ok [INFO] [stdout] test card::rank::test::can_find_high_card ... ok [INFO] [stdout] test card::rank::test::can_find_three_of_a_kind ... ok [INFO] [stdout] test card::rank::test::returns_none_when_4_or_less_cards ... ok [INFO] [stdout] test card::rank::test::can_find_straight ... ok [INFO] [stdout] test card::rank::test::can_find_straight_flush ... ok [INFO] [stdout] test card::rank::test::can_find_four_of_a_kind ... ok [INFO] [stdout] test card::rank::test::can_find_two_pairs ... ok [INFO] [stdout] test card::rank::three_of_a_kind::test::returns_some_when_5_cards_are_given_and_set_exist ... ok [INFO] [stdout] test card::rank::test::can_find_full_house ... ok [INFO] [stdout] test card::rank::two_pairs::test::returns_none_when_2_pairs_exist_but_only_4_cards_are_given ... ok [INFO] [stdout] test card::starting_hand::test::ace_and_3_is_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::ace_and_ace_is_not_connector ... ok [INFO] [stdout] test card::rank::three_of_a_kind::test::returns_none_when_5_cards_are_given_but_no_set ... ok [INFO] [stdout] test card::rank::two_pairs::test::hand_rank_of_result_is_two_pairs ... ok [INFO] [stdout] test card::rank::two_pairs::test::third_highest_pair_can_become_kicker_card ... ok [INFO] [stdout] test card::starting_hand::test::ace_and_2_is_connector ... ok [INFO] [stdout] test card::starting_hand::test::ace_and_queen_is_not_connector ... ok [INFO] [stdout] test card::starting_hand::test::has_rank_of_does_not_matches ... ok [INFO] [stdout] test card::starting_hand::test::has_any_rank_of_matches_lower_card ... ok [INFO] [stdout] test card::starting_hand::test::has_rank_of_matches_higher_card ... ok [INFO] [stdout] test card::starting_hand::test::has_rank_of_matches_lower_card ... ok [INFO] [stdout] test card::starting_hand::test::has_suit_of_does_not_match ... ok [INFO] [stdout] test card::starting_hand::test::has_suit_of_matches_higher_card ... ok [INFO] [stdout] test card::starting_hand::test::has_suit_of_matches_lower_card ... ok [INFO] [stdout] test card::starting_hand::test::higher_card_comes_first_in_both_cards_when_first_item_is_higher_than_second ... ok [INFO] [stdout] test card::starting_hand::test::higher_card_comes_first_in_both_cards_when_first_item_is_lower_than_second ... ok [INFO] [stdout] test card::starting_hand::test::higher_card_is_first_item_when_first_item_is_higher_than_second ... ok [INFO] [stdout] test card::starting_hand::test::higher_card_is_second_item_when_first_item_is_lower_than_second ... ok [INFO] [stdout] test card::starting_hand::test::is_not_suited ... ok [INFO] [stdout] test card::starting_hand::test::is_pair_of_returns_false_when_rank_matches_but_not_same_ranks ... ok [INFO] [stdout] test card::starting_hand::test::ace_and_queen_is_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::has_any_rank_of_does_not_match ... ok [INFO] [stdout] test card::rank::two_pairs::test::returns_none_when_5_cards_are_given_but_no_pair ... ok [INFO] [stdout] test card::rank::test::can_find_pair ... ok [INFO] [stdout] test card::starting_hand::test::has_any_rank_of_matches_higher_card ... ok [INFO] [stdout] test card::rank::two_pairs::test::returns_some_when_3_pairs_exist ... ok [INFO] [stdout] test card::rank::three_of_a_kind::test::hand_rank_of_result_is_three_of_a_kind ... ok [INFO] [stdout] test card::rank::test::can_find_royal_flush ... ok [INFO] [stdout] test card::rank::three_of_a_kind::test::returns_none_when_set_exists_but_only_4_cards_are_given ... ok [INFO] [stdout] test card::rank::two_pairs::test::returns_some_when_5_cards_are_given_and_2_pairs_exist ... ok [INFO] [stdout] test card::rank::three_of_a_kind::test::rank_of_set_comes_first_in_result_value_and_other_ranks_are_sorted ... ok [INFO] [stdout] test card::rank::two_pairs::test::higher_pair_ranks_come_first_lower_pair_ranks_second_then_kicker_comes_last_in_result ... ok [INFO] [stdout] test card::rank::two_pairs::test::returns_none_when_5_cards_are_given_but_only_1_pair_exists ... ok [INFO] [stdout] test card::starting_hand::test::is_pair_of_returns_false_when_same_ranks_but_rank_does_not_match ... ok [INFO] [stdout] test card::starting_hand::test::is_pair_of_returns_true_when_same_ranks_and_rank_matches ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_connector_returns_false_when_it_is_connector_but_not_suited ... ok [INFO] [stdout] test card::starting_hand::test::is_pair_returns_true_when_same_ranks ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_in_returns_false_when_suited_but_suit_does_not_match ... ok [INFO] [stdout] test card::starting_hand::test::king_and_2_is_not_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::is_suited ... ok [INFO] [stdout] test card::starting_hand::test::king_and_queen_is_connector ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_in_returns_false_when_suit_matches_but_not_suited ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_in_returns_true_when_suited_and_suit_matches ... ok [INFO] [stdout] test card::starting_hand::test::king_and_queen_is_not_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_connector_returns_false_when_it_is_suited_but_not_connector ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_one_gapper_returns_true_when_it_is_suited_and_is_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::summary_of_offsuit_hand_has_suffix_o ... ok [INFO] [stdout] test card::starting_hand::test::summary_of_pair_has_no_suffix ... ok [INFO] [stdout] test card::starting_hand::test::lower_card_is_first_item_when_first_item_is_lower_than_second ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_one_gapper_returns_false_when_it_is_one_gapper_but_not_suited ... ok [INFO] [stdout] test card::total_hand::test::can_construct_from_hand_and_board ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_connector_returns_true_when_it_is_suited_and_is_connector ... ok [INFO] [stdout] test card::total_hand::test::can_detect_one_set ... ok [INFO] [stdout] test card::starting_hand::test::is_suited_one_gapper_returns_false_when_it_is_suited_but_not_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::king_and_jack_is_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::king_and_ace_is_connector ... ok [INFO] [stdout] test card::starting_hand::test::king_and_king_is_not_one_gapper ... ok [INFO] [stdout] test card::starting_hand::test::is_pair_returns_false_when_different_ranks ... ok [INFO] [stdout] test card::total_hand::test::can_detect_two_pairs ... ok [INFO] [stdout] test card::total_hand::test::cards_should_get_sorted_in_descending_order ... ok [INFO] [stdout] test card::total_hand::test::not_open_end_straight_draw_but_has_2_draw_rank ... ok [INFO] [stdout] test card::total_hand::test::four_cards_are_not_straight ... ok [INFO] [stdout] test card::total_hand::test::none_is_returned_when_no_quads ... ok [INFO] [stdout] test card::total_hand::test::not_straight_from_5_to_ace_when_2_dropped ... ok [INFO] [stdout] test card::total_hand::test::not_straight_from_5_to_ace_when_5_dropped ... ok [INFO] [stdout] test card::total_hand::test::open_end_straight_draw_has_2_draw_ranks ... ok [INFO] [stdout] test card::total_hand::test::quads_is_not_sets ... ok [INFO] [stdout] test card::total_hand::test::same_suit_3_cards_are_not_flush_draw ... ok [INFO] [stdout] test card::total_hand::test::set_is_not_pair ... ok [INFO] [stdout] test card::total_hand::test::straight_from_ace_to_10 ... ok [INFO] [stdout] test card::total_hand::test::can_create_with_no_card ... ok [INFO] [stdout] test card::starting_hand::test::lower_card_is_second_item_when_first_item_is_higher_than_second ... ok [INFO] [stdout] test card::starting_hand::test::summary_of_suited_hand_has_suffix_s ... ok [INFO] [stdout] test card::total_hand::test::same_suit_4_cards_are_flush_draw ... ok [INFO] [stdout] test card::total_hand::test::can_detect_one_pair ... ok [INFO] [stdout] test card::total_hand::test::straight_cannot_get_over_ace ... ok [INFO] [stdout] test card::total_hand::test::can_detect_quads ... ok [INFO] [stdout] test card::total_hand::test::none_is_returned_when_no_flush ... ok [INFO] [stdout] test card::total_hand::test::straight_from_5_to_ace ... ok [INFO] [stdout] test card::total_hand::test::can_detect_flush_with_6_same_suits ... ok [INFO] [stdout] test card::total_hand::test::can_detect_flush_with_5_same_suits ... ok [INFO] [stdout] test card::total_hand::test::can_detect_two_sets ... ok [INFO] [stdout] test card::total_hand::test::inside_straight_draw_has_1_draw_rank ... ok [INFO] [stdout] test card::total_hand::test::straight_with_duplicate_card_ranks_on_tail ... ok [INFO] [stdout] test card::total_hand::test::straight_with_duplicate_card_ranks_in_middle ... ok [INFO] [stdout] test card::total_hand::test::straight_with_7_cards_sequence ... ok [INFO] [stdout] test card::total_hand::test::straight_with_duplicate_card_ranks_on_head ... ok [INFO] [stdout] test card::total_hand::test::straight_with_6_cards_sequence ... ok [INFO] [stdout] test card::total_hand::test::straight_with_extra_card_higher_than_top ... ok [INFO] [stdout] test card::total_hand::test::straight_with_extra_card_lower_than_tail ... ok [INFO] [stdout] test card::total_hand::test::straight_with_3_duplicate_cards_ranks ... ok [INFO] [stdout] test card::total_hand::test::straight_with_higher_and_lower_extra_cards ... ok [INFO] [stdout] test card::total_hand::test::straight_with_two_pairs_of_duplicate_card_ranks ... ok [INFO] [stdout] test card::total_hand::test::straight_of_exactly_five_cards ... ok [INFO] [stdout] test card::total_hand::test::should_panic_when_8_cards_are_given - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 180 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/texas_holdem_monte_carlo-7a947680afd4c60d) [INFO] [stdout] [INFO] [stderr] Doc-tests playing_card [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 texas_holdem [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" "1be94c064d6760748841c0fad2f037a84206fbc10b206a4dc42e818bdc2b9ef4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1be94c064d6760748841c0fad2f037a84206fbc10b206a4dc42e818bdc2b9ef4", kill_on_drop: false }` [INFO] [stdout] 1be94c064d6760748841c0fad2f037a84206fbc10b206a4dc42e818bdc2b9ef4