示例#1
0
    def testGetWinningCard_InSuiteMiddle(self):
        """Highest in suit card is detected when first card is out of suit.
        """
        highest = card.Card('5', card.SPADES)
        cards = [
            card.Card('9', card.HEARTS),
            card.Card('2', card.SPADES),
            card.Card('3', card.SPADES), highest,
            card.Card('K', card.SPADES)
        ]

        self.assertEqual(rules.get_winnind_card(card.SPADES, cards), highest)
示例#2
0
    def testGetWinningCard_OutSuite(self):
        """Correct highest out suit card is detected."""
        highest = card.Card('5', card.HEARTS)
        cards = [
            highest,
            card.Card('2', card.HEARTS),
            card.Card('Q', card.CLUBS),
            card.Card('5', card.DIAMONDS),
            card.Card('K', card.CLUBS)
        ]

        self.assertTrue(rules.get_winnind_card(card.SPADES, cards) == highest)
示例#3
0
    def testGetWinningCard_InSuite(self):
        """Correct highest in suit card is detected.
        """
        highest = card.Card('5', card.SPADES)
        cards = [
            card.Card('9', card.SPADES),
            card.Card('2', card.SPADES),
            card.Card('3', card.SPADES), highest,
            card.Card('K', card.SPADES)
        ]

        self.assertEqual(rules.get_winnind_card(card.SPADES, cards), highest)
示例#4
0
    def testGetHighestCardOutSuit(self):
        """Highest card out of suit is detected.
        """
        highest = card.Card('5', card.HEARTS)
        cards = [
            highest,
            card.Card('2', card.HEARTS),
            card.Card('Q', card.CLUBS),
            card.Card('5', card.DIAMONDS),
            card.Card('K', card.CLUBS)
        ]

        self.assertEqual(rules.get_highest_card_out_suit(cards), highest)
示例#5
0
    def testGetHighestCardInSuit_AceOfHearts(self):
        """Ace of Hearts is detected as highest card.
        """
        highest = card.Card('A', card.HEARTS)
        cards = [
            card.Card('9', card.SPADES),
            card.Card('2', card.SPADES),
            card.Card('3', card.SPADES), highest,
            card.Card('K', card.SPADES)
        ]

        self.assertEqual(rules.get_highest_card_in_suit(card.SPADES, cards),
                         highest)
示例#6
0
    def testGetHighestCardInSuit_HighestCard(self):
        """Highest card is detected.
        """
        highest = card.Card('5', card.SPADES)
        cards = [
            card.Card('9', card.SPADES),
            card.Card('2', card.SPADES),
            card.Card('3', card.SPADES), highest,
            card.Card('K', card.SPADES)
        ]

        self.assertEqual(rules.get_highest_card_in_suit(card.SPADES, cards),
                         highest)
示例#7
0
    def testGetOutSuitCards_NoSuit(self):
        """No cards are returned if no out suit cards available.
        """
        cards = [
            card.Card('2', card.SPADES),
            card.Card('3', card.SPADES),
            card.Card('4', card.SPADES),
            card.Card('5', card.SPADES),
            card.Card('J', card.SPADES)
        ]

        returned_cards = rules.get_out_suit_cards(card.SPADES, cards)
        self.assertTrue(len(returned_cards) == 0)
示例#8
0
    def testGetHighestCardInSuit_Invalid(self):
        """Exception is raised if no cards available in suit.
        """
        cards = [
            card.Card('2', card.DIAMONDS),
            card.Card('2', card.SPADES),
            card.Card('3', card.SPADES),
            card.Card('4', card.SPADES),
            card.Card('4', card.HEARTS)
        ]

        self.assertRaises(rules.RulesException, rules.get_highest_card_in_suit,
                          card.CLUBS, cards)
示例#9
0
    def testGetInSuitCards_NoSuit(self):
        """No cards are returned if no suit cards available.
        """
        cards = [
            card.Card('2', card.DIAMONDS),
            card.Card('2', card.CLUBS),
            card.Card('3', card.CLUBS),
            card.Card('4', card.CLUBS),
            card.Card('4', card.HEARTS)
        ]

        returned_cards = rules.get_in_suit_cards(card.SPADES, cards)
        self.assertTrue(len(returned_cards) == 0)
示例#10
0
    def testSelectValidCards_NoCardsPlayed(self):
        """All cards are selected if no cards have been played yet.
        """
        cards = [
            card.Card('2', card.CLUBS),
            card.Card('3', card.CLUBS),
            card.Card('4', card.CLUBS),
            card.Card('5', card.CLUBS),
            card.Card('6', card.CLUBS)
        ]
        hand1 = hand.Hand()
        for c in cards:
            hand1.add_card(c)

        selected_cards = rules.select_valid_cards(card.CLUBS, hand1, [])
        for c in cards:
            self.assertTrue(c in selected_cards)
示例#11
0
 def testGetOutSuitCards_InSuit(self):
     """All cards in suit are excluded.
     """
     in_suit_cards = [
         card.Card('2', card.CLUBS),
         card.Card('3', card.CLUBS),
         card.Card('4', card.CLUBS)
     ]
     out_suit_cards = [
         card.Card('2', card.DIAMONDS),
         card.Card('4', card.HEARTS)
     ]
     cards = in_suit_cards + out_suit_cards
     returned_cards = rules.get_out_suit_cards(card.CLUBS, cards)
     for c in in_suit_cards:
         self.assertFalse(c in returned_cards)
     for c in out_suit_cards:
         self.assertTrue(c in returned_cards)
示例#12
0
 def __init__(self):
     """
     Initialize deck class
     """
     # Create 52 cards
     self.cards = []
     for suit in card.SUITS:
         for rank in card.RANKS:
             self.cards.append(card.Card(rank, suit))
示例#13
0
    def testGetOutSuitCards_AceOfHearts(self):
        """Ace of Hearts is not returned when suit is not Hearts.
        """
        in_suit_cards = [
            card.Card('2', card.CLUBS),
            card.Card('3', card.CLUBS),
            card.Card('A', card.HEARTS)
        ]
        out_suit_cards = [
            card.Card('2', card.DIAMONDS),
            card.Card('4', card.HEARTS)
        ]
        cards = in_suit_cards + out_suit_cards
        returned_cards = rules.get_out_suit_cards(card.CLUBS, cards)

        for c in in_suit_cards:
            self.assertFalse(c in returned_cards)
        for c in out_suit_cards:
            self.assertTrue(c in returned_cards)
示例#14
0
    def testSelectValidCards_InSuit(self):
        """In suit cards selected if in suit card played first.
        """
        in_suit_cards = [
            card.Card('2', card.CLUBS),
            card.Card('3', card.CLUBS),
            card.Card('4', card.CLUBS)
        ]
        out_suit_cards = [
            card.Card('2', card.DIAMONDS),
            card.Card('4', card.HEARTS)
        ]
        hand1 = hand.Hand()
        # Mix up the cards just in case.
        hand1.add_card(out_suit_cards[0])
        for c in in_suit_cards:
            hand1.add_card(c)
        hand1.add_card(out_suit_cards[1])

        selected_cards = rules.select_valid_cards(card.CLUBS, hand1,
                                                  [card.Card('K', card.CLUBS)])
        for c in in_suit_cards:
            self.assertTrue(c in selected_cards)
        for c in out_suit_cards:
            self.assertFalse(c in selected_cards)
示例#15
0
    def testSelectValidCards_InSuitMissing(self):
        """All selected if in suit played first but no in suit cards available.
        """
        cards = [
            card.Card('2', card.DIAMONDS),
            card.Card('2', card.CLUBS),
            card.Card('3', card.CLUBS),
            card.Card('4', card.CLUBS),
            card.Card('4', card.HEARTS)
        ]
        hand1 = hand.Hand()

        for c in cards:
            hand1.add_card(c)

        selected_cards = rules.select_valid_cards(
            card.CLUBS, hand1, [card.Card('K', card.SPADES)])
        for c in cards:
            self.assertTrue(c in selected_cards)
示例#16
0
    def testSelectValidCards_OutSuit(self):
        """All cards selected if out suit card played first.
        """
        cards = [
            card.Card('2', card.DIAMONDS),
            card.Card('2', card.CLUBS),
            card.Card('3', card.SPADES),
            card.Card('4', card.CLUBS),
            card.Card('4', card.HEARTS)
        ]
        hand1 = hand.Hand()

        for c in cards:
            hand1.add_card(c)

        selected_cards = rules.select_valid_cards(
            card.CLUBS, hand1, [card.Card('K', card.HEARTS)])
        for c in cards:
            self.assertTrue(c in selected_cards)