Skip to main content

✅ Speed tie first contract die roll

CategoryAbility
StatusPassing
Testtests/test_turn_sequence.py::test_speed_tie_first_contract_die_roll

First contract — neither player has the time token. RNG decides.

Preconditions

  • P1 has_time_token = False.

  • P2 has_time_token = False.

  • rng seeded deterministically (seed=0).

Action

  • resolve_speed_tie(state, rng)

Expected Postconditions

  • _contract_faster_side is set to PLAYER_1 or PLAYER_2 (not None).

  • Exactly one player has has_time_token = True (the loser).

  • The winner has has_time_token = False.

Assertions

assert faster in (Side.PLAYER_1, Side.PLAYER_2)
loser = Side.PLAYER_2 if faster == Side.PLAYER_1 else Side.PLAYER_1
assert result.players[loser].has_time_token is True
assert result.players[faster].has_time_token is False