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]])
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))
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([])))
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))
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)
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)))
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))
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])
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))
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), [])