[INFO] fetching crate riichienv-core 0.4.10...
[INFO] testing riichienv-core-0.4.10 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate riichienv-core 0.4.10 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate riichienv-core 0.4.10
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate riichienv-core 0.4.10
[INFO] tweaked toml for crates.io crate riichienv-core 0.4.10 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate riichienv-core 0.4.10 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate riichienv-core 0.4.10 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.29.2
[INFO] [stderr]   Downloaded pyo3-ffi v0.29.2
[INFO] [stderr]   Downloaded pyo3-macros v0.29.2
[INFO] [stderr]   Downloaded rand_core v0.10.0
[INFO] [stderr]   Downloaded pyo3-build-config v0.29.2
[INFO] [stderr]   Downloaded criterion v0.5.1
[INFO] [stderr]   Downloaded pyo3 v0.29.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733
[INFO] running `Command { std: "docker" "start" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling chacha20 v0.10.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling ndarray v0.17.2
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling riichienv-core v0.4.10 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.91s
[INFO] running `Command { std: "docker" "inspect" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling ndarray v0.17.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling zerocopy-derive v0.8.42
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling riichienv-core v0.4.10 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 39.10s
[INFO] running `Command { std: "docker" "inspect" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/riichienv_core-52f96bdb28506c84)
[INFO] [stdout] 
[INFO] [stdout] running 78 tests
[INFO] [stdout] test observation::tests::find_action_unaffected_for_non_five_tiles ... ok
[INFO] [stdout] test observation_3p::tests::find_action_3p_prefers_non_red_5p ... ok
[INFO] [stdout] test observation_3p::tests::find_action_3p_prefers_non_red_5s ... ok
[INFO] [stdout] test state::game_mode::tests::test_four_player_dora_wrapping ... ok
[INFO] [stdout] test observation::tests::find_action_prefers_non_red_5p ... ok
[INFO] [stdout] test observation::tests::find_action_prefers_non_red_5s ... ok
[INFO] [stdout] test state::game_mode::tests::test_game_mode_config_four_player ... ok
[INFO] [stdout] test state::game_mode::tests::test_sanma_excluded_tiles ... ok
[INFO] [stdout] test observation::tests::find_action_prefers_non_red_5m ... ok
[INFO] [stdout] test tests::unit_tests::test_action_encode_3p_chi_not_allowed ... ok
[INFO] [stdout] test observation::tests::find_action_falls_back_to_red_when_only_red_legal ... ok
[INFO] [stdout] test observation_3p::tests::find_action_3p_falls_back_to_red_when_only_red_legal ... ok
[INFO] [stdout] test tests::unit_tests::test_apply_mjai_event_honor_and_red_tiles ... ok
[INFO] [stdout] test tests::unit_tests::test_action_encode_3p_discard ... ok
[INFO] [stdout] test tests::unit_tests::test_action_encode_3p_invalid_manzu ... ok
[INFO] [stdout] test state_3p::wall::tests::test_old_layout_remove0_would_consume_dora_indicators ... ok
[INFO] [stdout] test state_3p::wall::tests::test_dead_wall_layout_has_8_rinshan_slots ... ok
[INFO] [stdout] test tests::unit_tests::test_action_encode_4p_discard ... ok
[INFO] [stdout] test tests::unit_tests::test_action_encode_4p_special ... ok
[INFO] [stdout] test tests::unit_tests::test_apply_mjai_event_start_kyoku_drawable_count_reinit_across_rounds_4p ... ok
[INFO] [stdout] test tests::unit_tests::test_apply_mjai_event_start_kyoku_drawable_count_reinit_across_rounds_3p ... ok
[INFO] [stdout] test tests::unit_tests::test_3p_encode_all_discard_ids_contiguous ... ok
[INFO] [stdout] test tests::unit_tests::test_action_space_size ... ok
[INFO] [stdout] test tests::unit_tests::test_agari_standard ... ok
[INFO] [stdout] test tests::unit_tests::test_kokushi ... ok
[INFO] [stdout] test tests::unit_tests::test_apply_mjai_event_start_kyoku_resets_pre_tsumo_wall_4p ... ok
[INFO] [stdout] test tests::unit_tests::test_apply_mjai_event_start_kyoku_resets_pre_tsumo_wall_3p ... ok
[INFO] [stdout] test tests::unit_tests::test_chiitoitsu ... ok
[INFO] [stdout] test tests::unit_tests::test_match_84_agari_check ... ok
[INFO] [stdout] test tests::unit_tests::test_daiminkan_no_pao_insufficient_melds ... ok
[INFO] [stdout] test tests::unit_tests::test_daiminkan_pao_daisuushii ... ok
[INFO] [stdout] test tests::unit_tests::test_kazoe_yakuman_score_boundary ... ok
[INFO] [stdout] test tests::unit_tests::test_is_tenpai ... ok
[INFO] [stdout] test tests::unit_tests::test_oyayame_requires_target_in_orasu_3p ... ok
[INFO] [stdout] test tests::unit_tests::test_basic_pinfu ... ok
[INFO] [stdout] test tests::unit_tests::test_kuikae_deadlock_repro ... ok
[INFO] [stdout] test tests::unit_tests::test_action_encode_3p_special ... ok
[INFO] [stdout] test tests::unit_tests::test_reach_to_mjai_includes_actor ... ok
[INFO] [stdout] test tests::unit_tests::test_kita_tile_none_removes_north_from_hand ... ok
[INFO] [stdout] test tests::unit_tests::test_mjsoul_3p_ron_pao_composite ... ok
[INFO] [stdout] test tests::unit_tests::test_mjsoul_4p_ron_pao_composite ... ok
[INFO] [stdout] test tests::unit_tests::test_daiminkan_pao_daisangen ... ok
[INFO] [stdout] test tests::unit_tests::test_daisushii ... ok
[INFO] [stdout] test tests::unit_tests::test_kazoe_yakuman_hand_evaluator_cap ... ok
[INFO] [stdout] test tests::unit_tests::test_replay_start_kyoku_offers_reach_in_legal_actions_4p ... ok
[INFO] [stdout] test tests::unit_tests::test_oyayame_requires_target_in_orasu_4p ... ok
[INFO] [stdout] test tests::unit_tests::test_reach_accepted_mjai_includes_actor ... ok
[INFO] [stdout] test tests::unit_tests::test_replay_start_kyoku_offers_reach_in_legal_actions_3p ... ok
[INFO] [stdout] test tests::unit_tests::test_ron_pao_50_50_split ... ok
[INFO] [stdout] test tests::unit_tests::test_ryukyoku_deltas_are_reset_each_round_3p ... ok
[INFO] [stdout] test tests::unit_tests::test_riichi_stage_only_tenpai_maintaining_discards ... ok
[INFO] [stdout] test tests::unit_tests::test_ryuu_iisou ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_game_mode_config ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_kita_action ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_ankan_available_after_kita_in_riichi ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_observation_num_players ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_reach_available_after_kita ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_player_rotation ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_deal_3_players ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_dora_wrapping ... ok
[INFO] [stdout] test tests::unit_tests::test_ryukyoku_deltas_are_reset_each_round_4p ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_starting_scores ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_tenpai_payment ... ok
[INFO] [stdout] test tests::unit_tests::test_tenhou_tsumo_pao_composite ... ok
[INFO] [stdout] test tests::unit_tests::test_tobi_ends_game ... ok
[INFO] [stdout] test tests::unit_tests::test_tsumo_pao_non_pao_split ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_tsumo_available_after_kita ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_no_chi ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_wall_108_tiles ... ok
[INFO] [stdout] test tests::unit_tests::test_sanma_tsumo_scoring ... ok
[INFO] [stdout] test tests::unit_tests::test_tenhou_ron_pao_composite ... ok
[INFO] [stdout] test tests::unit_tests::test_seeded_shuffle_changes_between_rounds ... ok
[INFO] [stdout] test tests::unit_tests::test_tsuu_iisou ... ok
[INFO] [stdout] test tests::unit_tests::test_sudden_death_hanchan_logic ... ok
[INFO] [stdout] test tests::unit_tests::test_kita_with_correct_tile_still_works ... ok
[INFO] [stdout] test tests::unit_tests::test_no_tobi_with_positive_scores ... ok
[INFO] [stdout] test tests::unit_tests::test_score_calculation ... ok
[INFO] [stdout] test state_3p::wall::tests::test_rinshan_draw_does_not_consume_dora_indicators ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 78 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/abortive_draw_renchan.rs (/opt/rustwide/target/debug/deps/abortive_draw_renchan-6f0ff2d85424f77e)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test three_player::single_round_and_bankruptcy_still_end ... ok
[INFO] [stdout] test four_player::exhaustive_draw_still_ends_with_top_tenpai_dealer ... ok
[INFO] [stdout] test three_player::dealer_win_still_ends_in_orasu ... ok
[INFO] [stdout] test four_player::kyushu_kyuhai_repeats_regardless_of_declarer_and_dealer_rank ... ok
[INFO] [stdout] test reported_south_4_kyushu_kyuhai_repeats ... ok
[INFO] [stdout] test three_player::exhaustive_draw_still_ends_with_top_tenpai_dealer ... ok
[INFO] [stdout] test four_player::single_round_and_bankruptcy_still_end ... ok
[INFO] [stdout] test four_player::dealer_win_still_ends_in_orasu ... ok
[INFO] [stdout] test three_player::kyushu_kyuhai_repeats_regardless_of_declarer_and_dealer_rank ... ok
[INFO] [stdout] test three_player::abortive_draws_repeat_in_orasu_and_extension ... ok
[INFO] [stdout] test four_player::abortive_draws_repeat_in_orasu_and_extension ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/abortive_draw_resolution.rs (/opt/rustwide/target/debug/deps/abortive_draw_resolution-288c8e4de923f7b4)
[INFO] [stdout] 
[INFO] [stdout] running 36 tests
[INFO] [stdout] test four::pon_must_not_take_priority_over_four_kans ... ok
[INFO] [stdout] test chi_must_not_take_priority_over_four_kans ... ok
[INFO] [stdout] test four::fifth_daiminkan_must_be_forbidden ... ok
[INFO] [stdout] test four::fifth_kakan_must_be_forbidden ... ok
[INFO] [stdout] test four::kyushu_after_riichi_has_no_additional_payment ... ok
[INFO] [stdout] test four::fifth_ankan_must_be_forbidden ... ok
[INFO] [stdout] test four::four_kans_with_no_claims_abort_without_payments ... ok
[INFO] [stdout] test four::log_action_kyushu_only_on_first_draw ... ok
[INFO] [stdout] test four::four_kans_must_abort_after_all_pass ... ok
[INFO] [stdout] test four::ron_takes_priority_over_four_kan_abort ... ok
[INFO] [stdout] test four::single_player_four_kans_should_continue ... ok
[INFO] [stdout] test kita_does_not_count_toward_four_kan_limit ... ok
[INFO] [stdout] test riichi::four_riichi_without_ron_repeats_and_keeps_four_sticks ... ok
[INFO] [stdout] test four::fourth_kan_allows_rinshan_win_before_abort ... ok
[INFO] [stdout] test riichi::three_ron_rule_difference ... ok
[INFO] [stdout] test four_winds_without_calls_repeats ... ok
[INFO] [stdout] test three::fifth_daiminkan_must_be_forbidden ... ok
[INFO] [stdout] test riichi::abortive_deltas_must_not_repeat_reach_deductions ... ok
[INFO] [stdout] test three::fifth_kakan_must_be_forbidden ... ok
[INFO] [stdout] test mjai_kita_must_disable_kyushu ... ok
[INFO] [stdout] test riichi::sanchaho_declaration_discard_does_not_pay_riichi ... ok
[INFO] [stdout] test three::four_kans_must_abort_after_all_pass ... ok
[INFO] [stdout] test riichi::fourth_riichi_ron_pass_must_abort ... ok
[INFO] [stdout] test three::log_action_kyushu_only_on_first_draw ... ok
[INFO] [stdout] test four::simulator_kyushu_requires_first_turn_and_nine_distinct_types ... ok
[INFO] [stdout] test three::kyushu_after_riichi_has_no_additional_payment ... ok
[INFO] [stdout] test three::fifth_ankan_must_be_forbidden ... ok
[INFO] [stdout] test three::four_kans_with_no_claims_abort_without_payments ... ok
[INFO] [stdout] test three::pon_must_not_take_priority_over_four_kans ... ok
[INFO] [stdout] test three::mjai_second_turn_must_not_offer_kyushu ... ok
[INFO] [stdout] test four::mjai_second_turn_must_not_offer_kyushu ... ok
[INFO] [stdout] test three::fourth_kan_allows_rinshan_win_before_abort ... ok
[INFO] [stdout] test three::single_player_four_kans_should_continue ... ok
[INFO] [stdout] test three::ron_takes_priority_over_four_kan_abort ... ok
[INFO] [stdout] test three::simulator_kyushu_requires_first_turn_and_nine_distinct_types ... ok
[INFO] [stdout] test three_player_three_winds_and_three_riichi_continue ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/agari_correctness.rs (/opt/rustwide/target/debug/deps/agari_correctness-ee2138a9645f6119)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test test_calculate_score_correctness ... ok
[INFO] [stdout] test test_negative_data_integrity ... ok
[INFO] [stdout] test test_3p_calc_correctness ... ok
[INFO] [stdout] test test_4p_calc_correctness ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/claim_lifecycle.rs (/opt/rustwide/target/debug/deps/claim_lifecycle-4831ea770abf9be7)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test mjsoul_3p::ankan_does_not_restore_old_discard_offers ... ok
[INFO] [stdout] test mjsoul_3p::submitting_a_stale_call_cannot_duplicate_tiles ... ok
[INFO] [stdout] test mjsoul_4p::ankan_does_not_restore_old_discard_offers ... ok
[INFO] [stdout] test mjsoul_3p::accepting_pon_or_daiminkan_retires_discard_offers ... ok
[INFO] [stdout] test mjsoul_3p::kakan_offers_only_current_ron_and_resolves_ron_or_pass ... ok
[INFO] [stdout] test mjsoul_3p::kita_offers_only_current_ron_and_resolves_ron_or_pass ... ok
[INFO] [stdout] test tenhou_3p::accepting_pon_or_daiminkan_retires_discard_offers ... ok
[INFO] [stdout] test tenhou_4p::kakan_offers_only_current_ron_and_resolves_ron_or_pass ... ok
[INFO] [stdout] test tenhou_3p::ankan_does_not_restore_old_discard_offers ... ok
[INFO] [stdout] test mjsoul_4p::submitting_a_stale_call_cannot_duplicate_tiles ... ok
[INFO] [stdout] test mjsoul_4p::kakan_offers_only_current_ron_and_resolves_ron_or_pass ... ok
[INFO] [stdout] test mjsoul_4p::accepting_pon_or_daiminkan_retires_discard_offers ... ok
[INFO] [stdout] test tenhou_3p::kakan_offers_only_current_ron_and_resolves_ron_or_pass ... ok
[INFO] [stdout] test tenhou_4p::submitting_a_stale_call_cannot_duplicate_tiles ... ok
[INFO] [stdout] test tenhou_4p::ankan_does_not_restore_old_discard_offers ... ok
[INFO] [stdout] test tenhou_3p::submitting_a_stale_call_cannot_duplicate_tiles ... ok
[INFO] [stdout] test tenhou_4p::accepting_pon_or_daiminkan_retires_discard_offers ... ok
[INFO] [stdout] test tenhou_3p::kita_offers_only_current_ron_and_resolves_ron_or_pass ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/issue_107_regressions.rs (/opt/rustwide/target/debug/deps/issue_107_regressions-a62f8e868a8f59c2)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test three_player::called_terminal_discard_revokes_nagashi ... ok
[INFO] [stdout] test four_player::called_terminal_discard_revokes_nagashi ... ok
[INFO] [stdout] test four_player::daiminkan_does_not_reopen_chankan_or_reuse_other_claims ... ok
[INFO] [stdout] test four_player::chankan_settlement_uses_four_pin_instead_of_stale_nine_pin ... ok
[INFO] [stdout] test four_player::haitei_blocks_ankan_including_after_riichi ... ok
[INFO] [stdout] test three_player::daiminkan_does_not_reopen_chankan_or_reuse_other_claims ... ok
[INFO] [stdout] test three_player::haitei_blocks_ankan_including_after_riichi ... ok
[INFO] [stderr]      Running tests/kakan_action_normalization.rs (/opt/rustwide/target/debug/deps/kakan_action_normalization-92c064e250819333)
[INFO] [stdout] test three_player::chankan_settlement_uses_four_pin_instead_of_stale_nine_pin ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test mjsoul_3p::contradictory_or_unspecified_kakan_is_rejected ... ok
[INFO] [stdout] test tenhou_3p::contradictory_or_unspecified_kakan_is_rejected ... ok
[INFO] [stdout] test tenhou_4p::contradictory_or_unspecified_kakan_is_rejected ... ok
[INFO] [stdout] test tenhou_3p::shorthand_selects_the_specified_pon_among_multiple_kans ... ok
[INFO] [stdout] test mjsoul_4p::omitted_tile_preserves_physical_tiles_and_red_fives ... ok
[INFO] [stdout] test mjsoul_4p::shorthand_selects_the_specified_pon_among_multiple_kans ... ok
[INFO] [stdout] test tenhou_4p::omitted_tile_preserves_physical_tiles_and_red_fives ... ok
[INFO] [stdout] test mjsoul_3p::omitted_tile_preserves_physical_tiles_and_red_fives ... ok
[INFO] [stdout] test tenhou_4p::omitted_consumed_preserves_mjai_and_observations ... ok
[INFO] [stdout] test mjsoul_4p::shorthand_preserves_chankan_offer_and_resolution ... ok
[INFO] [stdout] test mjsoul_3p::shorthand_selects_the_specified_pon_among_multiple_kans ... ok
[INFO] [stdout] test tenhou_3p::omitted_consumed_preserves_mjai_and_observations ... ok
[INFO] [stdout] test mjsoul_3p::omitted_consumed_preserves_mjai_and_observations ... ok
[INFO] [stdout] test mjsoul_4p::contradictory_or_unspecified_kakan_is_rejected ... ok
[INFO] [stdout] test tenhou_3p::shorthand_preserves_chankan_offer_and_resolution ... ok
[INFO] [stdout] test tenhou_3p::omitted_tile_preserves_physical_tiles_and_red_fives ... ok
[INFO] [stdout] test mjsoul_3p::shorthand_preserves_chankan_offer_and_resolution ... ok
[INFO] [stdout] test mjsoul_4p::omitted_consumed_preserves_mjai_and_observations ... ok
[INFO] [stdout] test tenhou_4p::shorthand_selects_the_specified_pon_among_multiple_kans ... ok
[INFO] [stdout] test tenhou_4p::shorthand_preserves_chankan_offer_and_resolution ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/match_end.rs (/opt/rustwide/target/debug/deps/match_end-726395295f3f8c70)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test four_player::bankruptcy_also_settles_the_pot ... ok
[INFO] [stdout] test three_player::single_round_preserves_unclaimed_deposits ... ok
[INFO] [stdout] test four_player::single_round_preserves_unclaimed_deposits ... ok
[INFO] [stdout] test four_player::tied_top_deposit_goes_to_earlier_seat_not_current_dealer ... ok
[INFO] [stdout] test three_player::bankruptcy_also_settles_the_pot ... ok
[INFO] [stdout] test three_player::extension_dealer_win_repeats_when_child_is_top ... ok
[INFO] [stdout] test four_player::extension_dealer_win_repeats_when_child_is_top ... ok
[INFO] [stdout] test three_player::unclaimed_pot_does_not_count_toward_the_end_threshold ... ok
[INFO] [stdout] test four_player::unclaimed_pot_does_not_count_toward_the_end_threshold ... ok
[INFO] [stdout] test four_player::extension_tenpai_dealer_repeats_when_child_is_top ... ok
[INFO] [stdout] test three_player::extension_rotating_dealer_obeys_target_and_round_limit ... ok
[INFO] [stdout] test three_player::final_draw_awards_deposits_once_and_keeps_hand_payments_separate ... ok
[INFO] [stdout] test three_player::tied_top_deposit_goes_to_earlier_seat_not_current_dealer ... ok
[INFO] [stdout] test three_player::extension_tenpai_dealer_repeats_when_child_is_top ... ok
[INFO] [stdout] test four_player::final_draw_awards_deposits_once_and_keeps_hand_payments_separate ... ok
[INFO] [stdout] test four_player::extension_rotating_dealer_obeys_target_and_round_limit ... ok
[INFO] [stdout] test three_player::extension_top_dealer_stops_only_at_target_with_seat_tiebreak ... ok
[INFO] [stderr]      Running tests/nagashi_mangan.rs (/opt/rustwide/target/debug/deps/nagashi_mangan-0b65802cc1ab190d)
[INFO] [stdout] test four_player::extension_top_dealer_stops_only_at_target_with_seat_tiebreak ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test three_player::abortive_draw_repeats_without_nagashi_payments ... ok
[INFO] [stdout] test four_player::abortive_draw_repeats_without_nagashi_payments ... ok
[INFO] [stdout] test four_player::noten_dealer_nagashi_advances_to_next_wind ... ok
[INFO] [stdout] test three_player::dealer_nagashi_with_tenpai_repeats ... ok
[INFO] [stdout] test three_player::noten_dealer_nagashi_advances_to_next_wind ... ok
[INFO] [stdout] test three_player::dealer_nagashi_without_tenpai_rotates ... ok
[INFO] [stdout] test four_player::multiple_nagashi_do_not_override_dealer_tenpai ... ok
[INFO] [stdout] test three_player::ordinary_draw_keeps_tenpai_payments_and_renchan ... ok
[INFO] [stdout] test four_player::dealer_nagashi_with_tenpai_repeats ... ok
[INFO] [stdout] test four_player::dealer_nagashi_without_tenpai_rotates ... ok
[INFO] [stdout] test four_player::non_dealer_nagashi_with_tenpai_dealer_repeats ... ok
[INFO] [stdout] test four_player::ordinary_draw_keeps_tenpai_payments_and_renchan ... ok
[INFO] [stdout] test four_player::non_dealer_nagashi_without_tenpai_dealer_rotates ... ok
[INFO] [stdout] test three_player::non_dealer_nagashi_with_tenpai_dealer_repeats ... ok
[INFO] [stdout] test three_player::non_dealer_nagashi_without_tenpai_dealer_rotates ... ok
[INFO] [stdout] test three_player::multiple_nagashi_do_not_override_dealer_tenpai ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/nagashi_mangan_replay.rs (/opt/rustwide/target/debug/deps/nagashi_mangan_replay-a3c1b27e4530eb42)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/observation_discard_history.rs (/opt/rustwide/target/debug/deps/observation_discard_history-04408b5a7de271b6)
[INFO] [stdout] test issue_214_south_1_repeats_after_non_dealer_nagashi ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test three_player::explicit_mjai_initial_discard_metadata_is_preserved ... ok
[INFO] [stdout] test four_player::mjai_discard_history_tracks_riichi_and_tedashi ... ok
[INFO] [stdout] test three_player::mjai_discard_history_tracks_riichi_and_tedashi ... ok
[INFO] [stdout] test old_serialized_rules_keep_the_previous_discard_convention ... ok
[INFO] [stdout] test four_player::explicit_mjai_initial_discard_metadata_is_preserved ... ok
[INFO] [stdout] test four_player::log_discard_history_tracks_riichi_and_tedashi ... ok
[INFO] [stdout] test three_player::log_discard_history_tracks_riichi_and_tedashi ... ok
[INFO] [stdout] test three_player::log_dealer_initial_discard_obeys_configured_convention ... ok
[INFO] [stdout] test four_player::log_dealer_initial_discard_obeys_configured_convention ... ok
[INFO] [stderr]      Running tests/sanma_legal_actions.rs (/opt/rustwide/target/debug/deps/sanma_legal_actions-c4e331cf5d901575)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test before_riichi_all_held_norths_can_be_extracted ... ok
[INFO] [stdout] test riichi_cannot_extract_held_north_after_other_draw ... ok
[INFO] [stdout] test riichi_kita_only_offers_the_drawn_physical_copy ... ok
[INFO] [stdout] test generic_kita_after_riichi_preserves_the_original_hand ... ok
[INFO] [stdout] test kita_is_not_offered_between_riichi_declaration_and_discard ... ok
[INFO] [stdout] test kita_requires_a_replacement_draw ... ok
[INFO] [stdout] test riichi_at_three_remaining_tiles_can_be_declared ... ok
[INFO] [stdout] test no_yaku_kita_wait_blocks_later_same_turn_ron ... ok
[INFO] [stdout] test kita_with_a_yaku_can_still_be_ronned ... ok
[INFO] [stdout] test declining_kita_ron_after_riichi_remains_permanent_furiten ... ok
[INFO] [stdout] test riichi_requires_a_remaining_draw_cycle ... ok
[INFO] [stdout] test temporary_kita_furiten_clears_after_the_players_turn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/special_hand_yakuman.rs (/opt/rustwide/target/debug/deps/special_hand_yakuman-85463a471cda1d17)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test four_player::all_honors_seven_pairs_excludes_riichi_and_all_bonus_tiles ... ok
[INFO] [stdout] test four_player::heavenly_seven_pairs_excludes_ordinary_yaku_and_dora ... ok
[INFO] [stdout] test four_player::all_honors_seven_pairs_stacks_with_heavenly_yaku ... ok
[INFO] [stdout] test four_player::kazoe_seven_pairs_remains_a_single_counted_yakuman ... ok
[INFO] [stdout] test four_player::kokushi_stacks_with_tenhou_and_chiihou ... ok
[INFO] [stdout] test three_player::kokushi_stacks_with_tenhou_and_chiihou ... ok
[INFO] [stdout] test three_player::kokushi_later_tsumo_and_ron_do_not_get_heavenly_yaku ... ok
[INFO] [stdout] test three_player::many_dora_cannot_turn_all_honors_into_multiple_yakuman ... ok
[INFO] [stdout] test three_player::ordinary_seven_pairs_keeps_yaku_dora_and_25_fu ... ok
[INFO] [stdout] test three_player::kazoe_seven_pairs_remains_a_single_counted_yakuman ... ok
[INFO] [stdout] test four_player::many_dora_cannot_turn_all_honors_into_multiple_yakuman ... ok
[INFO] [stdout] test four_player::ordinary_seven_pairs_keeps_yaku_dora_and_25_fu ... ok
[INFO] [stdout] test three_player::all_honors_seven_pairs_stacks_with_heavenly_yaku ... ok
[INFO] [stdout] test three_player::all_honors_seven_pairs_excludes_riichi_and_all_bonus_tiles ... ok
[INFO] [stdout] test four_player::tenhou_kokushi_is_independent_of_the_designated_winning_tile ... ok
[INFO] [stdout] test four_player::kokushi_later_tsumo_and_ron_do_not_get_heavenly_yaku ... ok
[INFO] [stdout] test three_player::heavenly_seven_pairs_excludes_ordinary_yaku_and_dora ... ok
[INFO] [stdout] test three_player::tenhou_kokushi_is_independent_of_the_designated_winning_tile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/temporary_furiten.rs (/opt/rustwide/target/debug/deps/temporary_furiten-19cbe04a12da0879)
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test mjsoul_four_player::daiminkan_clears_furiten_only_after_rinshan_discard ... ok
[INFO] [stdout] test mjsoul_four_player::choosing_pon_instead_of_ron_clears_furiten_on_discard ... ok
[INFO] [stdout] test mjsoul_four_player::another_players_reverse_pon_preserves_furiten ... ok
[INFO] [stdout] test mjsoul_four_player::riichi_furiten_survives_a_draw_and_discard ... ok
[INFO] [stdout] test mjsoul_four_player::draw_then_tsumogiri_or_tedashi_clears_temporary_furiten ... ok
[INFO] [stdout] test mjsoul_three_player::riichi_furiten_survives_a_draw_and_discard ... ok
[INFO] [stdout] test mjsoul_four_player::own_pon_clears_furiten_on_discard ... ok
[INFO] [stdout] test mjsoul_three_player::another_players_reverse_pon_preserves_furiten ... ok
[INFO] [stdout] test tenhou_four_player::choosing_pon_instead_of_ron_clears_furiten_on_discard ... ok
[INFO] [stdout] test mjsoul_four_player::calls_from_kamicha_clear_furiten_on_discard ... ok
[INFO] [stdout] test mjsoul_three_player::own_pon_clears_furiten_on_discard ... ok
[INFO] [stdout] test mjsoul_four_player::temporary_furiten_does_not_prevent_tsumo ... ok
[INFO] [stdout] test mjsoul_three_player::temporary_furiten_does_not_prevent_tsumo ... ok
[INFO] [stdout] test mjsoul_three_player::calls_from_kamicha_clear_furiten_on_discard ... ok
[INFO] [stdout] test tenhou_four_player::calls_from_kamicha_clear_furiten_on_discard ... ok
[INFO] [stdout] test mjsoul_three_player::daiminkan_clears_furiten_only_after_rinshan_discard ... ok
[INFO] [stdout] test mjsoul_three_player::draw_then_tsumogiri_or_tedashi_clears_temporary_furiten ... ok
[INFO] [stdout] test mjsoul_three_player::choosing_pon_instead_of_ron_clears_furiten_on_discard ... ok
[INFO] [stdout] test tenhou_four_player::another_players_reverse_pon_preserves_furiten ... ok
[INFO] [stdout] test tenhou_three_player::riichi_furiten_survives_a_draw_and_discard ... ok
[INFO] [stdout] test tenhou_four_player::draw_then_tsumogiri_or_tedashi_clears_temporary_furiten ... ok
[INFO] [stdout] test tenhou_four_player::daiminkan_clears_furiten_only_after_rinshan_discard ... ok
[INFO] [stdout] test tenhou_four_player::temporary_furiten_does_not_prevent_tsumo ... ok
[INFO] [stdout] test tenhou_four_player::riichi_furiten_survives_a_draw_and_discard ... ok
[INFO] [stdout] test tenhou_three_player::calls_from_kamicha_clear_furiten_on_discard ... ok
[INFO] [stdout] test tenhou_three_player::temporary_furiten_does_not_prevent_tsumo ... ok
[INFO] [stdout] test tenhou_three_player::choosing_pon_instead_of_ron_clears_furiten_on_discard ... ok
[INFO] [stdout] test tenhou_three_player::daiminkan_clears_furiten_only_after_rinshan_discard ... ok
[INFO] [stdout] test tenhou_three_player::another_players_reverse_pon_preserves_furiten ... ok
[INFO] [stdout] test tenhou_three_player::draw_then_tsumogiri_or_tedashi_clears_temporary_furiten ... ok
[INFO] [stdout] test tenhou_three_player::own_pon_clears_furiten_on_discard ... ok
[INFO] [stdout] test tenhou_four_player::own_pon_clears_furiten_on_discard ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests riichienv_core
[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" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733", kill_on_drop: false }`
[INFO] [stdout] da8b101d90e7b399cc9fba1768cc16ece0acc71cbd98a7ddcb646410e0c00733
