예제 #1
0
 def test_rainbow_card_avoid_accidental_reveal(self):
     rainbow_card = HanabiCard(HanabiColor.RAINBOW, 2)
     self.assertEqual("??", rainbow_card.known())
     rainbow_card.disclose_color(HanabiColor.RED, True)
     self.assertEqual("R?", rainbow_card.known())
     rainbow_card.disclose_color(HanabiColor.RED, True)
     self.assertEqual("R?", rainbow_card.known())
예제 #2
0
 def test_hand_with_rainbow_cards(self):
     card1 = HanabiCard(HanabiColor.RED, 2)
     card2 = HanabiCard(HanabiColor.RAINBOW, 2)
     hand = HanabiHand()
     hand.add(card1)
     hand.add(card2)
     self.assertEqual(["??", "??"], hand.show_cards(True))
     hand.disclose_color(HanabiColor.RED, True)
     self.assertEqual(["R?", "R?"], hand.show_cards(True))
     hand.disclose_color(HanabiColor.GREEN, True)
     self.assertEqual(["R?", "*?"], hand.show_cards(True))
 def test_table_play_card_incorrect_rainbow(self):
     #play white 1
     self.table.play_card(0, 2)
     self.assertEqual(1, self.table.score())
     #play rainbow 2, cannot since it is not wild
     self.table.play_card(0, 3)
     self.assertEqual(1, self.table.score())
     self.assertEqual(2, self.table.mistakes_left)
     self.assertTrue(
         HanabiCard(HanabiColor.RAINBOW, 2) in
         self.table.discard.discarded())
예제 #4
0
 def setUp(self):
     self.unknown_card = HanabiCard(HanabiColor.RED, 5)
     self.known_card = HanabiCard(HanabiColor.BLUE, 1)
     self.known_card.disclose_color(HanabiColor.BLUE)
     self.known_card.disclose_rank()
     self.rank_known_card = HanabiCard(HanabiColor.GREEN, 3)
     self.rank_known_card.disclose_rank()
 def test_table_play_card_incorrect_rainbow(self):
     self.table.discard_card(0, 0)
     self.table.discard_card(0, 0)
     self.table.discard_card(0, 4)
     self.table.discard_card(0, 0)
     self.table.discard_card(0, 1)
     #play yellow 1 and 2
     self.table.play_card(0, 3)
     self.assertEqual(1, self.table.score())
     self.table.play_card(0, 2)
     self.assertEqual(2, self.table.score())
     #play rainbow 3, cannot since it is not wild
     self.table.play_card(0, 0)
     self.assertEqual(2, self.table.score())
     self.assertEqual(2, self.table.mistakes_left)
     self.assertTrue(
         HanabiCard(HanabiColor.RAINBOW, 3) in
         self.table.discard.discarded())
예제 #6
0
 def setUp(self):
     self.discard = HanabiDiscard()
     self.toDiscard = HanabiCard(HanabiColor.RED, 3)
예제 #7
0
 def setUp(self):
     self.hand = HanabiHand()
     self.hand.add(HanabiCard(HanabiColor.BLUE, 2))
     self.hand.add(HanabiCard(HanabiColor.GREEN, 5))
     self.hand.add(HanabiCard(HanabiColor.BLUE, 1))
예제 #8
0
 def test_hand_addCard(self):
     self.hand.add(HanabiCard(HanabiColor.WHITE, 1))
     self.assertEqual(self.hand.card_at(2), HanabiCard(HanabiColor.BLUE, 1))
예제 #9
0
 def test_hand_removeCardAt(self):
     card = self.hand.remove_card_at(0)
     self.assertEqual(card, HanabiCard(HanabiColor.BLUE, 2))
예제 #10
0
 def test_hand_cardAt(self):
     self.assertEqual(self.hand.card_at(0), HanabiCard(HanabiColor.BLUE, 2))
예제 #11
0
 def test_rainbow_card(self):
     rainbow_card = HanabiCard(HanabiColor.RAINBOW, 2)
     self.assertEqual("*2", str(rainbow_card))
     self.assertEqual("??", rainbow_card.known())
     rainbow_card.disclose_rank()
     self.assertEqual("?2", rainbow_card.known())
     rainbow_card.disclose_color(HanabiColor.RED, True)
     self.assertEqual("R2", rainbow_card.known())
     rainbow_card.disclose_color(HanabiColor.GREEN, True)
     self.assertEqual("*2", rainbow_card.known())
예제 #12
0
 def test_eq(self):
     self.assertEqual(self.rank_known_card,
                      HanabiCard(HanabiColor.GREEN, 3))
예제 #13
0
class HanabiCardTests(unittest.TestCase):
    def setUp(self):
        self.unknown_card = HanabiCard(HanabiColor.RED, 5)
        self.known_card = HanabiCard(HanabiColor.BLUE, 1)
        self.known_card.disclose_color(HanabiColor.BLUE)
        self.known_card.disclose_rank()
        self.rank_known_card = HanabiCard(HanabiColor.GREEN, 3)
        self.rank_known_card.disclose_rank()

    def test_unknown_card_color(self):
        self.assertEqual(self.unknown_card.color, HanabiColor.RED)

    def test_known_card_color(self):
        self.assertEqual(self.known_card.color, HanabiColor.BLUE)

    def test_rank_known_card_color(self):
        self.assertEqual(self.rank_known_card.color, HanabiColor.GREEN)

    def test_unknow_card_rank(self):
        self.assertEqual(self.unknown_card.rank, 5)

    def test_known_card_rank(self):
        self.assertEqual(self.known_card.rank, 1)

    def test_rank_known_card_rank(self):
        self.assertEqual(self.rank_known_card.rank, 3)

    def test_unknown_card_str(self):
        self.assertEqual(str(self.unknown_card), "R5")

    def test_known_card_str(self):
        self.assertEqual(str(self.known_card), "B1")

    def test_rank_known_card_str(self):
        self.assertEqual(str(self.rank_known_card), "G3")

    def test_unknown_card_known(self):
        self.assertEqual(self.unknown_card.known(), "??")

    def test_known_card_known(self):
        self.assertEqual(self.known_card.known(), "B1")

    def test_rank_known_card_known(self):
        self.assertEqual(self.rank_known_card.known(), "?3")

    def test_eq(self):
        self.assertEqual(self.rank_known_card,
                         HanabiCard(HanabiColor.GREEN, 3))

    def test_ne(self):
        self.assertNotEqual(self.known_card, self.rank_known_card)

    def test_rainbow_card(self):
        rainbow_card = HanabiCard(HanabiColor.RAINBOW, 2)
        self.assertEqual("*2", str(rainbow_card))
        self.assertEqual("??", rainbow_card.known())
        rainbow_card.disclose_rank()
        self.assertEqual("?2", rainbow_card.known())
        rainbow_card.disclose_color(HanabiColor.RED, True)
        self.assertEqual("R2", rainbow_card.known())
        rainbow_card.disclose_color(HanabiColor.GREEN, True)
        self.assertEqual("*2", rainbow_card.known())

    def test_rainbow_card_avoid_accidental_reveal(self):
        rainbow_card = HanabiCard(HanabiColor.RAINBOW, 2)
        self.assertEqual("??", rainbow_card.known())
        rainbow_card.disclose_color(HanabiColor.RED, True)
        self.assertEqual("R?", rainbow_card.known())
        rainbow_card.disclose_color(HanabiColor.RED, True)
        self.assertEqual("R?", rainbow_card.known())