Ejemplo n.º 1
0
class DeckTests(unittest.TestCase):
    def setUp(self):
        self.deck = Deck()

    def test_deck_init(self):
        self.assertTrue(isinstance(self.deck.card_deck, list))

    def test_repr(self):
        self.assertEqual(repr(self.deck), "'Deck of 52 cards'")

    def test_count(self):
        self.assertEqual(self.deck.count(), 52)
        self.deck.card_deck.pop()
        self.assertEqual(self.deck.count(), 51)

    def test_deal_sufficient_cards(self):
        cards = self.deck._deal(10)
        self.assertEqual(len(cards), 10)
        self.assertEqual(self.deck.count(), 42)

    def test_deal_insufficient_cards(self):
        self.deck._deal(55)
        self.assertEqual(self.deck.count(), 0)

    def test_deal_no_cards(self):
        self.deck._deal(self.deck.count())
        with self.assertRaises(ValueError):
            self.deck._deal(55)

    def test_deal_card(self):
        card = self.deck.card_deck[-1]
        dealt_card = self.deck.deal_card()
        self.assertEqual([card], dealt_card)
        self.assertEqual(self.deck.count(), 51)

    def test_deal_hand(self):
        cards = self.deck.deal_hand(20)
        self.assertEqual(len(cards), 20)
        self.assertEqual(self.deck.count(), 32)
    
    def shuffle_full_deck(self):
        cards = self.deck.card_deck[:]
        self.deck.shuffle()
        self.assertNotEqual(cards, self.deck.card_deck)
        self.assertEqual(len(self.deck.card_deck), 52)

    def shuffle_not_full_deck(self):
        self.deck.deal_hand(20)
        with self.assertRaises(ValueError):
            self.deck.shuffle()
Ejemplo n.º 2
0
class DeckTests(unittest.TestCase):
    def setUp(self):
        self.deck = Deck()

    def test_init(self):
        """ a deck should have a cards attribute which is a list consisting of 52 cards """
        self.assertIsInstance(self.deck.cards, list)
        self.assertEqual(len(self.deck.cards), 52)

    def test_repr(self):
        self.assertEqual(repr(self.deck), "Deck of 52 cards")

    def test_count(self):
        """ count should return count of the number of cards in the deck"""
        self.assertEqual(self.deck.count(), 52)
        self.deck.cards.pop()
        self.assertEqual(self.deck.count(), 51)

    def test_deal_sufficient_cards(self):
        """ _deal should deal number of cards specified """
        self.cards = self.deck._deal(10)
        self.assertEqual(len(self.cards), 10)
        self.assertEqual(self.deck.count(), 42)

    def test_deal_insufficient_cards(self):
        """_ deal should deal number of cards left in the deck if specified number is high"""
        self.cards = self.deck._deal(100)
        self.assertEqual(len(self.cards), 52)
        self.assertEqual(self.deck.count(), 0)

    def test_deal_no_cards(self):
        """_deal should throw a ValueError if there is no cards left in the deck"""
        self.deck._deal(self.deck.count())
        with self.assertRaises(ValueError):
            self.deck._deal(1)

    def test_deal_card(self):
        """deal_card should deal a single card from the deck """
        card = self.deck.cards[-1]
        dealt_card = self.deck.deal_card()
        self.assertEqual(card, dealt_card)
        self.assertEqual(self.deck.count(), 51)

    def test_deal_hand(self):
        """ deal_hand should deal number of cards specified from the deck"""
        hand = self.deck.deal_hand(20)
        self.assertEqual(len(hand), 20)
        self.assertEqual(self.deck.count(), 32)

    def test_shuffle_deck(self):
        """ shuffle should shuffle the deck only when it is full"""
        cards = self.deck.cards[:]
        self.deck.shuffle()
        self.assertNotEqual(cards, self.deck.cards)
        self.assertEqual(self.deck.count(), 52)

    def test_shuffle_not_full_deck(self):
        """shuffle should throw a ValueError when tried shuffling not a full deck"""
        self.deck._deal(1)
        with self.assertRaises(ValueError):
            self.deck.shuffle()
Ejemplo n.º 3
0
class DeckTests(unittest.TestCase):
    def setUp(self):
        self.deck = Deck()

    def test_init(self):
        """decks should have a cards attribute, which is a list with 52 elements"""
        self.assertTrue(isinstance(self.deck.cards, list))
        self.assertEqual(len(self.deck.cards), 52)

    def test_repr(self):
        """repr should return a string of the form 'Deck of COUNT cards.'"""
        self.assertEqual(repr(self.deck), "Deck of 52 cards")

    def test_count(self):
        """count should return a count of the number of cards in the deck."""
        self.assertEqual(self.deck.count(), 52)
        self.deck.cards.pop()
        self.assertEqual(self.deck.count(), 51)

    def test_deal_sufficient_cards(self):
        """_deal should deal the number of cards specified, if possible"""
        cards = self.deck._deal(10)
        self.assertTrue(isinstance(cards, list),
                        "_deal(10) should return a list of 10 cards")
        self.assertEqual(len(cards), 10)
        self.assertEqual(self.deck.count(), 42)

    def test_deal_insufficient_cards(self):
        """_deal should deal the number of cards left in the deck, if more cards are requested"""
        cards = self.deck._deal(100)
        self.assertTrue(
            isinstance(cards, list),
            "_deal(100) should return a list with all cards left in deck")
        self.assertEqual(len(cards), 52)
        self.assertEqual(self.deck.count(), 0)

    def test_deal_no_cards(self):
        """_deal should throw a ValueError if the deck is empty"""
        self.deck._deal(self.deck.count())
        with self.assertRaises(ValueError):
            self.deck._deal(1)

    def test_deal_card(self):
        """deal_card should deal a single card from the deck"""
        card = self.deck.cards[-1]
        dealt_card = self.deck.deal_card()
        self.assertEqual(card, dealt_card)
        self.assertEqual(self.deck.count(), 51)

    def test_deal_hand(self):
        """deal_hand should deal the number of cards passed into it"""
        cards = self.deck.deal_hand(20)
        self.assertTrue(isinstance(cards, list),
                        "_deal(20) should return a list with 20 cards in it")
        self.assertEqual(len(cards), 20)
        self.assertEqual(self.deck.count(), 32)

    def test_shuffle_full_deck(self):
        """shuffle should shuffle the deck if the deck is full"""
        cards = self.deck.cards[:]
        self.deck.shuffle()
        self.assertNotEqual(cards, self.deck.cards)
        self.assertEqual(self.deck.count(), 52)

    def test_shuffle_not_full_deck(self):
        """shuffle should throw a ValueError of the deck isn't full"""
        self.deck._deal(1)
        with self.assertRaises(ValueError):
            self.deck.shuffle()