예제 #1
0
    def test_deck_remembers_its_own_starting_count(self):
        d = Deck(count_of_suits=2, count_of_ranks=2)
        self.assertEqual(d.count_of_cards, 4)
        self.assertEqual(d.count_of_cards, len(d))

        d.shuffle()
        self.assertEqual(d.count_of_cards, 4)
        self.assertEqual(d.count_of_cards, len(d))

        d.deal([Player('Alice'), Player('Bob')])
        self.assertEqual(d.count_of_cards, 4)
        self.assertNotEqual(d.count_of_cards, len(d))
예제 #2
0
    def test_deck_deals_out_to_two_players_correctly(self):
        players = []
        for n in range(2):  # 2 players
            players.append(Player(name=str(n + 1)))

        d = Deck(count_of_suits=4, count_of_ranks=4)  # 16 cards
        d.shuffle()
        d.deal(players)

        # 8 cards each ...
        self.assertEqual(len(players[0].hand), 8)
        self.assertEqual(len(players[0].hand), len(players[1].hand))

        # ... of different cards
        for n in range(len(players[0].hand)):
            self.assertNotEqual(players[0].hand[n].__hash__(),
                                players[1].hand[n].__hash__())
예제 #3
0
    def test_deck_deals_out_to_four_players_correctly(self):
        players = []
        for n in range(4):  # 4 players
            players.append(Player(name=str(n + 1)))

        d = Deck(count_of_suits=8, count_of_ranks=8)  # 64 cards
        d.shuffle()
        d.deal(players)

        # 16 cards each ...
        self.assertEqual(len(players[0].hand), 16)
        self.assertEqual(len(players[0].hand), len(players[1].hand))
        self.assertEqual(len(players[1].hand), len(players[2].hand))
        self.assertEqual(len(players[2].hand), len(players[3].hand))

        # ... of different cards
        for n in range(len(players[0].hand)):
            self.assertNotEqual(id(players[0].hand[n]), id(players[1].hand[n]))
            self.assertNotEqual(id(players[1].hand[n]), id(players[2].hand[n]))
            self.assertNotEqual(id(players[2].hand[n]), id(players[3].hand[n]))