Пример #1
0
    def test_pong(self):
        handcard = HandCard([l3, l3])
        self.assertListEqual(handcard.used_cards['pong'], [])
        self.manager.pong(handcard, l3)
        self.assertListEqual(handcard.used_cards['pong'], [[l3, l3, l3]])

        # wei
        handcard = HandCard([l3, l3])
        self.assertListEqual(handcard.used_cards['pong'], [])
        self.manager.concealed_pong(handcard, l3)
        self.assertListEqual(handcard.used_cards['concealed_pong'],
                             [[l3, l3, l3]])
Пример #2
0
    def test_get_pattern_with_card(self):
        manager = self.manager
        manager.register_patterns([Normal])

        get_pattern_with_card = manager.get_pattern_with_card
        for cards, card in (([l3], l3), ([l3, l3], l3),
                            ([l3, l4, l4, l5, l5], l3), ([l3, l3, l4, l4,
                                                          l5], l5)):
            self.assertIsNotNone(get_pattern_with_card(HandCard(cards), card))

        self.assertIsNotNone(
            get_pattern_with_card(HandCard([l3, l3]), l3, False))

        self.assertIsNone(get_pattern_with_card(HandCard([]), l3))
Пример #3
0
    def test_get_pattern(self):
        manager = self.manager
        manager.register_patterns([Normal])

        cards = [l3, l3]
        self.assertIsNotNone(manager.get_pattern(HandCard(cards)))

        cards = [l3, l3, l3]
        self.assertIsNotNone(manager.get_pattern(HandCard(cards)))

        cards = [l3, l3, l4, l4, l5, l5]
        self.assertIsNotNone(manager.get_pattern(HandCard(cards)))

        self.assertIsNone(manager.get_pattern(HandCard([])))
Пример #4
0
    def test_check_concealed_kong(self):
        manager = self.manager
        check_kong = manager.check_concealed_kong

        cards = [l3, l3, l3]
        self.assertTrue(check_kong(HandCard(cards), l3))

        cards = [l3, l3]
        handcard = HandCard(cards)
        manager.concealed_pong(handcard, l3)
        self.assertTrue(check_kong(handcard, l3))

        cards = [l3, l3, u3]
        self.assertFalse(check_kong(HandCard(cards), l3))
Пример #5
0
    def test_normal(self):
        manager = Manager()
        manager.register_patterns([Normal])
        get_pattern = manager.get_pattern

        for cards in ([l3, l3], [l3, l3, l3]):
            self.assertIs(get_pattern(HandCard(cards)), Normal)

        for cards in ([l3, l4], [l3], [l1, l5, l10]):
            self.assertIsNot(get_pattern(HandCard(cards)), Normal)

        manager.chow_filter.append(filter_sequence_1_5_10)
        cards = [l1, l5, l10]
        self.assertIs(get_pattern(HandCard(cards)), Normal)
Пример #6
0
    def test_check_win(self):
        cards = [l3, l3]
        self.assertTrue(self.manager.check_win(HandCard(cards)))

        cards = [l3, l3, l4, l4, l5, l5]
        self.assertTrue(self.manager.check_win(HandCard(cards)))

        cards = [Card.LOWER_TWO, Card.LOWER_SEVEN, Card.LOWER_TEN]
        self.assertTrue(self.manager.check_win(HandCard(cards)))

        cards = [l3, u3]
        self.assertFalse(self.manager.check_win(HandCard(cards)))

        cards = [l3]
        self.assertFalse(self.manager.check_win(HandCard(cards)))
Пример #7
0
    def test_check_pong(self):
        check_pong = self.manager.check_pong

        cards = [l3, l3]
        self.assertTrue(check_pong(HandCard(cards), l3))

        # triplet cannot separately use
        cards = [l3, l3, l3, l4, l5]
        self.assertFalse(check_pong(HandCard(cards), l3))

        cards = [l3, l4]
        self.assertFalse(check_pong(HandCard(cards), l3))

        cards = [l3, u3]
        self.assertFalse(check_pong(HandCard(cards), l3))
Пример #8
0
    def test_chow(self):
        chow = self.manager.chow
        self.manager.chow_filter.append(filter_sequence_1_5_10)

        for cards in ([l3, l4, l5], [l3, l4, l5, l3, l4,
                                     l5], [l2, l7, l10], [l1, l5, l10]):
            handcard = HandCard(cards)
            self.assertListEqual(handcard.used_cards['chow'], [])
            chow(handcard, cards)
            self.assertListEqual(handcard.used_cards['chow'], [cards])
Пример #9
0
    def test_check_win_with_card(self):
        cards = [l3]
        self.assertTrue(self.manager.check_win_with_card(HandCard(cards), l3))

        cards = [l3, l3]
        self.assertTrue(self.manager.check_win_with_card(HandCard(cards), l3))

        cards = [l3, l3]
        self.assertTrue(
            self.manager.check_win_with_card(HandCard(cards), l3, False))

        cards = [l3, l3, l4, l4, l5]
        self.assertTrue(self.manager.check_win_with_card(HandCard(cards), l5))

        cards = [Card.LOWER_TWO, Card.LOWER_SEVEN]
        self.assertTrue(
            self.manager.check_win_with_card(HandCard(cards), Card.LOWER_TEN))

        cards = [l3]
        self.assertFalse(self.manager.check_win_with_card(HandCard(cards), u3))
Пример #10
0
    def test_check_chow(self):
        check_chow = self.manager.check_chow

        cards = [l3, l3]
        self.assertListEqual(check_chow(HandCard(cards), u3), [[l3, l3, u3]])

        cards = [l3, l3, l4, l4, l5]
        self.assertListEqual(
            check_chow(HandCard(cards), l5),
            [[l3, l4, l5, l3, l4, l5]],
        )

        cards = [l2, l7]
        self.assertListEqual(check_chow(HandCard(cards), l10), [[l2, l7, l10]])

        cards = [l1, l5]
        self.assertListEqual(check_chow(HandCard(cards), l10), [])

        self.manager.chow_filter.append(filter_sequence_1_5_10)
        self.assertListEqual(check_chow(HandCard(cards), l10), [[l1, l5, l10]])

        cards = [l3]
        self.assertListEqual(check_chow(HandCard(cards), u3), [])