Esempio n. 1
0
 def testCardsRed(self):
     cards = Cards()
     cards.add_card(Card(RED, 4))
     cards.add_card(Card(RED, 5))
     cards.add_card(Card(RED, 6))
     self.assertEqual(3, len(cards))
     self.assertEqual(str(cards), "Cards(3)")
Esempio n. 2
0
 def testCardsYellow(self):
     cards = Cards()
     cards.add_card(Card(YELLOW, 4))
     cards.add_card(Card(YELLOW, 5))
     cards.add_card(Card(YELLOW, 6))
     self.assertEqual(3, len(cards))
     self.assertEqual(str(cards), "Cards(3)")
Esempio n. 3
0
 def testCardsGreen(self):
     cards = Cards()
     cards.add_card(Card(GREEN, 4))
     cards.add_card(Card(GREEN, 5))
     cards.add_card(Card(GREEN, 6))
     self.assertEqual(3, len(cards))
     self.assertEqual(str(cards), "Cards(3)")
Esempio n. 4
0
	def test_can_be_played_effects(self):
		# test a draw two
		draw_two = Card(constants.CARD_DRAW_TWO, constants.CARD_BLUE)
		another_draw_two = Card(constants.CARD_DRAW_TWO, constants.CARD_PURPLE)
		draw_two.actions.append(action.Action(draw_two,"",[action.PlusTwo]))
		another_draw_two.actions.append(action.Action(another_draw_two,"",[action.PlusTwo]))
		ctx = {constants.CONTEXT.TOP_CARD: draw_two, constants.CONTEXT.CURRENT_EFFECT: constants.CONTEXT.EFFECTS.DRAW_TWO, constants.CONTEXT.CURRENT_EFFECT_VALUE: 2}
		self.assertFalse(MelbourneRules.can_be_played(Card(constants.CARD_EIGHT, constants.CARD_RED), ctx))
		self.assertFalse(MelbourneRules.can_be_played(Card(constants.CARD_EIGHT, constants.CARD_BLUE), ctx))
		self.assertTrue(MelbourneRules.can_be_played(another_draw_two, ctx))
Esempio n. 5
0
 def testCardsRed2(self):
     card_list = [
         Card(RED, 4),
         Card(RED, 5),
         Card(RED, 6),
         Card(RED, 7),
     ]
     cards = Cards()
     cards.add_cards(card_list)
     self.assertEqual(4, len(cards))
     self.assertEqual(str(cards), "Cards(4)")
Esempio n. 6
0
 def testCardsYellow2(self):
     card_list = [
         Card(YELLOW, 4),
         Card(YELLOW, 5),
         Card(YELLOW, 6),
         Card(YELLOW, "A"),
     ]
     cards = Cards()
     cards.add_cards(card_list)
     self.assertEqual(4, len(cards))
     self.assertEqual(str(cards), "Cards(4)")
Esempio n. 7
0
    def testCardsMixed1(self):
        card_list = [
            Card(RED, 4),
            Card(YELLOW, 5),
            Card(GREEN, 6),
        ]
        cards = Cards()
        cards.add_cards(card_list)

        self.assertEqual(3, len(cards))
        self.assertNotEqual(1, len(cards))
Esempio n. 8
0
 def testHandRed(self):
     hand = Hand("Player Red")
     hand.add_card(Card(RED, 4))
     hand.add_card(Card(RED, 5))
     hand.add_card(Card(RED, 6))
     self.assertEqual(45, hand.score)
     self.assertEqual(3, len(hand))
     self.assertEqual(str(hand),
                      'Hand(name="Player Red", cards=3, score=45)')
     self.assertEqual(repr(hand),
                      'Hand(name="Player Red", cards=3, score=45)')
Esempio n. 9
0
 def testHandYellow(self):
     hand = Hand("Player Yellow")
     hand.add_card(Card(YELLOW, 4))
     hand.add_card(Card(YELLOW, 5))
     hand.add_card(Card(YELLOW, 6))
     self.assertEqual(30, hand.score)
     self.assertEqual(3, len(hand))
     self.assertEqual(str(hand),
                      'Hand(name="Player Yellow", cards=3, score=30)')
     self.assertEqual(repr(hand),
                      'Hand(name="Player Yellow", cards=3, score=30)')
Esempio n. 10
0
 def testHandGreen(self):
     hand = Hand("Player Green")
     hand.add_card(Card(GREEN, 4))
     hand.add_card(Card(GREEN, 5))
     hand.add_card(Card(GREEN, 6))
     self.assertEqual(15, hand.score)
     self.assertEqual(3, len(hand))
     self.assertEqual(str(hand),
                      'Hand(name="Player Green", cards=3, score=15)')
     self.assertEqual(repr(hand),
                      'Hand(name="Player Green", cards=3, score=15)')
Esempio n. 11
0
 def testHandYellow2(self):
     cards = [
         Card(YELLOW, 4),
         Card(YELLOW, 5),
         Card(YELLOW, 6),
     ]
     hand = Hand()
     hand.add_cards(cards)
     self.assertEqual(30, hand.score)
     self.assertEqual(3, len(hand))
     self.assertEqual(str(hand), 'Hand(name="", cards=3, score=30)')
     self.assertEqual(repr(hand), 'Hand(name="", cards=3, score=30)')
Esempio n. 12
0
 def testHandGreen2(self):
     cards = [
         Card(GREEN, 4),
         Card(GREEN, 5),
         Card(GREEN, 6),
     ]
     hand = Hand()
     hand.add_cards(cards)
     self.assertEqual(15, hand.score)
     self.assertEqual(3, len(hand))
     self.assertEqual(str(hand), 'Hand(name="", cards=3, score=15)')
     self.assertEqual(repr(hand), 'Hand(name="", cards=3, score=15)')
Esempio n. 13
0
 def testHandRed2(self):
     cards = [
         Card(RED, 4),
         Card(RED, 5),
         Card(RED, 6),
     ]
     hand = Hand()
     hand.add_cards(cards)
     self.assertEqual(45, hand.score)
     self.assertEqual(3, len(hand))
     self.assertEqual(str(hand), 'Hand(name="", cards=3, score=45)')
     self.assertEqual(repr(hand), 'Hand(name="", cards=3, score=45)')
Esempio n. 14
0
    def testHandMixed1(self):
        cards = [
            Card(RED, 4),
            Card(YELLOW, 5),
            Card(GREEN, 6),
        ]
        hand = Hand()
        hand.add_cards(cards)

        self.assertEqual(28, hand.score)
        self.assertEqual(3, len(hand))

        self.assertNotEqual(99, hand.score)
        self.assertNotEqual(1, len(hand))
Esempio n. 15
0
 def testCardYellowAce(self):
     card = Card(YELLOW, 14)
     self.assertEqual(card.color, YELLOW)
     self.assertEqual(card.color.color, "yellow")
     self.assertEqual(card.value, 14)
     self.assertEqual(card.color.point_multiplier, 2)
     self.assertEqual(str(card), "yellow(A)")
     self.assertEqual(card.point_value, 28)
Esempio n. 16
0
 def testCardRedNumber(self):
     card = Card(RED, 8)
     self.assertEqual(card.color, RED)
     self.assertEqual(card.color.color, "red")
     self.assertEqual(card.value, 8)
     self.assertEqual(card.color.point_multiplier, 3)
     self.assertEqual(str(card), "red(8)")
     self.assertEqual(card.point_value, 24)
Esempio n. 17
0
 def testCardRedJack(self):
     card = Card(RED, 11)
     self.assertEqual(card.color, RED)
     self.assertEqual(card.color.color, "red")
     self.assertEqual(card.value, 11)
     self.assertEqual(card.color.point_multiplier, 3)
     self.assertEqual(str(card), "red(J)")
     self.assertEqual(card.point_value, 33)
Esempio n. 18
0
 def testCardRedQueen(self):
     card = Card(RED, 12)
     self.assertEqual(card.color, RED)
     self.assertEqual(card.color.color, "red")
     self.assertEqual(card.value, 12)
     self.assertEqual(card.color.point_multiplier, 3)
     self.assertEqual(str(card), "red(Q)")
     self.assertEqual(card.point_value, 36)
Esempio n. 19
0
 def testCardRedKing(self):
     card = Card(RED, 13)
     self.assertEqual(card.color, RED)
     self.assertEqual(card.color.color, "red")
     self.assertEqual(card.value, 13)
     self.assertEqual(card.color.point_multiplier, 3)
     self.assertEqual(str(card), "red(K)")
     self.assertEqual(card.point_value, 39)
Esempio n. 20
0
 def testCardRedAce(self):
     card = Card(RED, 14)
     self.assertEqual(card.color, RED)
     self.assertEqual(card.color.color, "red")
     self.assertEqual(card.value, 14)
     self.assertEqual(card.color.point_multiplier, 3)
     self.assertEqual(str(card), "red(A)")
     self.assertEqual(card.point_value, 42)
Esempio n. 21
0
 def testCardGreen(self):
     card = Card(GREEN, 2)
     self.assertEqual(card.color, GREEN)
     self.assertEqual(card.color.color, "green")
     self.assertEqual(card.value, 2)
     self.assertEqual(str(card), "green(2)")
     self.assertEqual(repr(card), "green(2) multiplier=1")
     self.assertEqual(card.color.point_multiplier, 1)
     self.assertEqual(card.point_value, 2)
Esempio n. 22
0
def GET_SIMPLE_CARDS():
    output = []
    for c in constants.CARD_COLORS:
        for v in constants.CARD_VALUES:
            card = Card(v, c)
            # add the play card action to each card
            card.actions.append(Action(card, "Play Card", [PlayCard]))
            output.append(card)
    return output
Esempio n. 23
0
    def testCardsReport(self):

        card_list = [
            Card(RED, 3),
            Card(YELLOW, 3),
            Card(GREEN, 4),
        ]

        cards = Cards()
        cards.add_cards(card_list)

        master_text = """\
      1) red(3)       9 points
      2) yellow(3)    6 points
      3) green(4)     4 points"""

        report_text = cards.report_cards()
        self.assertEqual(report_text, master_text)
Esempio n. 24
0
    def testHandsDifferentNumCards(self):

        cards = [
            Card(RED, 2),
            Card(YELLOW, 4),
            Card(GREEN, 3),
            Card(GREEN, "J"),
        ]
        hand1 = Hand()
        hand1.add_cards(cards)

        self.assertEqual(28, hand1.score)
        self.assertEqual(4, len(hand1))

        self.assertNotEqual(99, hand1.score)
        self.assertNotEqual(1, len(hand1))

        cards = [
            Card(RED, 3),
            Card(YELLOW, 3),
            Card(GREEN, 4),
        ]
        hand2 = Hand()
        hand2.add_cards(cards)

        self.assertEqual(19, hand2.score)
        self.assertEqual(3, len(hand2))

        self.assertNotEqual(99, hand2.score)
        self.assertNotEqual(1, len(hand2))

        ##################################################
        self.assertFalse(hand1.same_number_of_cards(hand2))
        self.assertFalse(hand2.same_number_of_cards(hand1))

        with self.assertRaises(ValueError):
            self.assertTrue(hand1 == hand2)

        with self.assertRaises(ValueError):
            self.assertTrue(hand1 != hand2)

        with self.assertRaises(ValueError):
            self.assertNotEqual(hand1, hand2)

        with self.assertRaises(ValueError):
            self.assertFalse(hand1 == hand2)

        with self.assertRaises(ValueError):
            self.assertTrue(hand1 != hand2)

        with self.assertRaises(ValueError):
            self.assertFalse(hand1.is_tie(hand2))

        with self.assertRaises(ValueError):
            self.assertFalse(hand1.is_winner(hand2))

        with self.assertRaises(ValueError):
            self.assertTrue(hand1.is_loser(hand2))
Esempio n. 25
0
    def testHandReport(self):

        cards = [
            Card(RED, 3),
            Card(YELLOW, 3),
            Card(GREEN, 4),
        ]

        hand = Hand("Player")
        hand.add_cards(cards)

        master_text = """
Hand: "Player"
      cards=3, total points=19
      1) red(3)       9 points
      2) yellow(3)    6 points
      3) green(4)     4 points"""

        report_text = hand.report_hand()
        self.assertEqual(report_text, master_text)
Esempio n. 26
0
def GET_ACTION_CARDS():
    output = []
    for col in constants.CARD_COLORS:
        # reverse
        card = Card(constants.CARD_REVERSE, col)
        card.actions.append(Action(card, "Reverse", [PlayCard, Reverse]))
        output.append(card)
        # skip
        card = Card(constants.CARD_SKIP, col)
        card.actions.append(Action(card, "Skip", [PlayCard, Skip]))
        output.append(card)
        # draw two
        card = Card(constants.CARD_DRAW_TWO, col)
        card.actions.append(Action(card, "Draw two", [PlayCard, PlusTwo]))
        output.append(card)
        # wild card
        card = Card(constants.CARD_WILD, constants.CARD_BLACK)
        card.actions.append(
            Action(card, "Change to Blue", [PlayCard, ChangeSuitBlue]))
        card.actions.append(
            Action(card, "Change to Red", [PlayCard, ChangeSuitRed]))
        card.actions.append(
            Action(card, "Change to Yellow", [PlayCard, ChangeSuitYellow]))
        card.actions.append(
            Action(card, "Change to Purple", [PlayCard, ChangeSuitPurple]))
        output.append(card)
        # draw four
        card = Card(constants.CARD_DRAW_FOUR, constants.CARD_BLACK)
        card.actions.append(
            Action(card, "Draw four Blue",
                   [PlayCard, ChangeSuitBlue, PlusFour]))
        card.actions.append(
            Action(card, "Draw four Red", [PlayCard, ChangeSuitRed, PlusFour]))
        card.actions.append(
            Action(card, "Draw four Yellow",
                   [PlayCard, ChangeSuitYellow, PlusFour]))
        card.actions.append(
            Action(card, "Draw four Purple",
                   [PlayCard, ChangeSuitPurple, PlusFour]))
        output.append(card)
    return output
Esempio n. 27
0
 def testCardsGreen2(self):
     card_list = [
         Card(GREEN, 4),
         Card(GREEN, 5),
         Card(GREEN, 6),
         Card(GREEN, "J"),
         Card(GREEN, "Q"),
         Card(GREEN, "K"),
     ]
     cards = Cards()
     cards.add_cards(card_list)
     self.assertEqual(6, len(cards))
     self.assertEqual(str(cards), "Cards(6)")
Esempio n. 28
0
    def testCardStringValue(self):
        card = Card(YELLOW, "5")
        self.assertEqual(card.color, YELLOW)
        self.assertEqual(card.color.color, "yellow")
        self.assertEqual(card.value, 5)
        self.assertEqual(card.color.point_multiplier, 2)
        self.assertEqual(str(card), "yellow(5)")
        self.assertEqual(card.point_value, 10)

        card = Card(YELLOW, "10")
        self.assertEqual(card.color, YELLOW)
        self.assertEqual(card.color.color, "yellow")
        self.assertEqual(card.value, 10)
        self.assertEqual(card.color.point_multiplier, 2)
        self.assertEqual(str(card), "yellow(10)")
        self.assertEqual(card.point_value, 20)

        card = Card(YELLOW, "J")
        self.assertEqual(card.color, YELLOW)
        self.assertEqual(card.color.color, "yellow")
        self.assertEqual(card.value, 11)
        self.assertEqual(card.color.point_multiplier, 2)
        self.assertEqual(str(card), "yellow(J)")
        self.assertEqual(card.point_value, 22)

        card = Card(YELLOW, "Q")
        self.assertEqual(card.color, YELLOW)
        self.assertEqual(card.color.color, "yellow")
        self.assertEqual(card.value, 12)
        self.assertEqual(card.color.point_multiplier, 2)
        self.assertEqual(str(card), "yellow(Q)")
        self.assertEqual(card.point_value, 24)

        card = Card(YELLOW, "K")
        self.assertEqual(card.color, YELLOW)
        self.assertEqual(card.color.color, "yellow")
        self.assertEqual(card.value, 13)
        self.assertEqual(card.color.point_multiplier, 2)
        self.assertEqual(str(card), "yellow(K)")
        self.assertEqual(card.point_value, 26)

        card = Card(YELLOW, "A")
        self.assertEqual(card.color, YELLOW)
        self.assertEqual(card.color.color, "yellow")
        self.assertEqual(card.value, 14)
        self.assertEqual(card.color.point_multiplier, 2)
        self.assertEqual(str(card), "yellow(A)")
        self.assertEqual(card.point_value, 28)
Esempio n. 29
0
    def testHandsEqual(self):
        cards = [
            Card(RED, 2),
            Card(YELLOW, 4),
            Card(GREEN, 2),
        ]
        hand1 = Hand()
        hand1.add_cards(cards)

        self.assertEqual(16, hand1.score)
        self.assertEqual(3, len(hand1))

        self.assertNotEqual(99, hand1.score)
        self.assertNotEqual(1, len(hand1))

        cards = [
            Card(RED, 3),
            Card(YELLOW, 3),
            Card(GREEN, 1),
        ]
        hand2 = Hand()
        hand2.add_cards(cards)

        self.assertEqual(16, hand2.score)
        self.assertEqual(3, len(hand2))

        self.assertNotEqual(99, hand2.score)
        self.assertNotEqual(1, len(hand2))

        ##################################################
        self.assertEqual(hand1, hand2)
        self.assertTrue(hand1 == hand2)
        self.assertFalse(hand1 != hand2)
        self.assertTrue(hand1.is_tie(hand2))
        self.assertFalse(hand1.is_winner(hand2))
        self.assertFalse(hand1.is_loser(hand2))
        self.assertTrue(hand1.same_number_of_cards(hand2))
        self.assertTrue(hand2.same_number_of_cards(hand1))

        ## hands are a tie
        hands = [hand1, hand2]
        n, winners = Hand.determine_winner(hands)
        self.assertEqual(2, n)
        self.assertEqual(hands, winners)
Esempio n. 30
0
    def testCardsMixed2(self):
        card_list = [
            Card(YELLOW, 4),
            Card(GREEN, 5),
            Card(RED, 6),
        ]

        cards = Cards()
        cards.add_cards(card_list)

        self.assertEqual(3, len(cards))
        self.assertNotEqual(1, len(cards))
        self.assertEqual(cards.cards, card_list)

        sorted_cards = [
            Card(RED, 6),
            Card(YELLOW, 4),
            Card(GREEN, 5),
        ]

        cards.sort_by_points()

        self.assertEqual(cards.cards, sorted_cards)