def test_lowest_card_by_suit_empty(self): players = self.test_players.copy() new_game = spades.Spades(players) seven_spades = pyCardDeck.PokerCard("Spades", 7, "Seven") new_game.board[0] = pyCardDeck.PokerCard("Spades", 3, "Three") actual = players[0].lowest_card_that_wins(new_game.board[0]) self.assertEqual([], actual)
def test_update_winner_2(self): players = self.test_players.copy() new_game = spades.Spades(players) for i in range(20): players[0].hand.append(pyCardDeck.PokerCard("Spades", 10, "Ten")) players[1].hand.append(pyCardDeck.PokerCard("Spades", 9, "Ten")) new_game.play_full_turn() self.assertDictEqual(new_game.scores, {1:20, 2:0})
def test_lowest_spade_that_wins1(self): players = self.test_players.copy() new_game = spades.Spades(players) seven_spades = pyCardDeck.PokerCard("Spades", 7, "Seven") players[0].hand.append(seven_spades) new_game.board[0] = pyCardDeck.PokerCard("Spades", 3, "Three") actual = players[0].lowest_spade_that_wins(new_game.board[0]) self.assertEqual(seven_spades, actual)
def test_only_off_suits(self): players = self.test_players.copy() new_game = spades.Spades(players) new_game.board[0] = pyCardDeck.PokerCard("Clubs", 2, "Two") players[0].hand.append(pyCardDeck.PokerCard("Hearts", 7, "Seven")) expected = ["LOWEST_OFF_SUIT"] actual = players[0].getLegalActions(new_game) self.assertEqual(expected, actual)
def test_board_with_clubs(self): players = self.test_players.copy() new_game = spades.Spades(players) new_game.board[0] = pyCardDeck.PokerCard("Clubs", 2, "Two") players[0].hand.append(pyCardDeck.PokerCard("Clubs", 7, "Seven")) expected = ["HIGHEST_SAME_SUIT", "LOWEST_SAME_SUIT", "LOWEST_SAME_SUIT_WIN", "LOWEST_OFF_SUIT"] actual = players[0].getLegalActions(new_game) self.assertEqual(expected, actual)
def test_update_winner(self): players = self.test_players.copy() new_game = spades.Spades(players) players[0].hand.append(pyCardDeck.PokerCard("Spades", 10, "Ten")) players[1].hand.append(pyCardDeck.PokerCard("Spades", 9, "Ten")) self.assertDictEqual(new_game.scores, {1:0, 2:0}) new_game.play_turn() new_game.update_winner() self.assertDictEqual(new_game.scores, {1:1, 2:0})
def test_reward_function_simple_loss(self): players = self.test_players.copy() new_game = spades.Spades(players) players[1].hand.append(pyCardDeck.PokerCard("Spades", 10, "Ten")) players[0].hand.append(pyCardDeck.PokerCard("Hearts", 10, "Ten")) new_game.play_turn() actual_reward = new_game.reward_function(players[0]) expected_reward = -100 self.assertEqual(expected_reward, actual_reward)
def test_empty_board_only_spades(self): players = self.test_players.copy() new_game = spades.Spades(players) players[0].hand.append(pyCardDeck.PokerCard("Spades", 7, "Seven")) expected = ["HIGHEST_SPADE", "LOWEST_SPADE"] actual_actions = self.test_players[0].getLegalActions(new_game) self.assertEqual(expected, actual_actions)
def test_board_rep_one_heart(self): players = self.test_players.copy() new_game = spades.Spades(players) new_game.board[0] = pyCardDeck.PokerCard("Hearts", 2, "Two") actual = players[0].create_board_representation(new_game) expected = ("H2", ) self.assertEqual(expected, actual)
def create_card(suit, rank): return pyCardDeck.PokerCard(suit, rank, "Card")