예제 #1
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())
예제 #2
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())