def test_valid_moves_do_not_include_backwards_moves(self): game = Game() game.reset() game.move("26-23") game.move("7-11") assert "23-26" not in game.valid_moves("white") assert "11-7" not in game.valid_moves("black")
def test_that_king_takes_are_included_in_valid_moves(self): game = Game() game._board._board[4, 3] = King("white", None) game._board._board[3, 4] = King("black", None) game._board._board[5, 4] = King("black", None) game._board._board[2, 3] = King("white", None) assert "18-11" in game.valid_moves("white") assert "15-22" in game.valid_moves("black") assert "18-27" in game.valid_moves("white") assert "15-6" in game.valid_moves("black")
def test_takes_included_in_valid_moves(self): game = Game() game._board._board[4, 3] = Piece("white", None) game._board._board[3, 4] = Piece("black", None) game._board._board[5, 4] = Piece("black", None) game._board._board[2, 3] = Piece("white", None) assert "18-11" in game.valid_moves("white") assert "15-22" in game.valid_moves("black") assert "18-27" not in game.valid_moves( "white") # because piece can't move backwards assert "15-6" not in game.valid_moves("black")
def test_valid_moves_include_backwards_moves_for_kings(self): game = Game() game.reset() game._board._board[4, 3] = King("white", None) game._board._board[4, 5] = King("black", None) white_moves = game.valid_moves("white") for move in ["18-14", "18-15", "18-22", "18-23"]: assert move in white_moves black_moves = game.valid_moves("black") for move in ["19-15", "19-16", "19-23", "19-24"]: assert move in black_moves
def test_valid_moves_can_accept_other_piece(self): game = Game() # Remove all black pieces, but keep game turn as white game._board._board[:, :2] = EmptyPiece() assert game.valid_moves("black") == []
def test_valid_moves_considers_player_turn(self): game = Game() game.turn = "black" # Remove existing black pieces game._board._board[:, :2] = EmptyPiece() game._board._board[0, 3] = Piece("black", None) assert game.valid_moves() == ["2-6", "2-7"]
def test_other_play_wins_if_no_valid_moves(self): game = Game() game.reset() game.valid_moves = mock.Mock(return_value=[]) assert game.game_over() assert game.result == "black" game.turn = "black" assert game.game_over() assert game.result == "white"
def test_valid_moves_returns_empty_list_if_no_moves(self): game = Game() # game._board is initialised to an empty array # no pieces == no moves assert game.valid_moves() == []