def test_foldwithnopostfloppairorbetter_call_preflop():
    table = Table()
    num_players = 3
    for i in xrange(num_players):
        player = Player(10, 'FoldWithNoPostFlopPairOrBetter')
        player.sit(table, i)
    table.initialize_hand()
    table.players[0].hole_cards.append(Card('D', 2))
    table.players[0].hole_cards.append(Card('H', 9))
    assert table.players[0].decide() == Decision.CALL
def test_callpairorbetter_fold_preflop():
    table = Table()
    num_players = 3
    for i in xrange(num_players):
        player = Player(10, 'CallPairOrBetter')
        player.sit(table, i)
    table.initialize_hand()
    table.players[0].hole_cards.append(Card('H', 10))
    table.players[0].hole_cards.append(Card('H', 9))
    assert table.players[0].decide() == Decision.FOLD
def test_callpairorbetter_call_postflop():
    table = Table()
    num_players = 3
    for i in xrange(num_players):
        player = Player(10, 'CallPairOrBetter')
        player.sit(table, i)
    table.initialize_hand()
    table.players[0].hole_cards.append(Card('D', 9))
    table.players[0].hole_cards.append(Card('H', 9))
    table.board.append(Card('S', 'A'))
    assert table.players[0].decide() == Decision.CALL
示例#4
0
def test_hand_straight_high_card_wins():
    hand1 = Hand([
        Card('D', '7'),
        Card('H', '6'),
        Card('C', '5'),
        Card('H', '4'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('S', '7'),
        Card('C', '8'),
        Card('S', '9'),
        Card('C', '10'),
        Card('D', 'J')
    ])
    assert hand1 < hand2
示例#5
0
def test_hand_two_pair_beats_one_pair():
    hand1 = Hand([
        Card('D', '5'),
        Card('H', '5'),
        Card('C', 'Q'),
        Card('H', 'Q'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('H', '10'),
        Card('C', '4'),
        Card('S', 'A'),
        Card('C', '2'),
        Card('D', 'A')
    ])
    assert hand1 > hand2
示例#6
0
def test_hand_flush_beats_straight():
    hand1 = Hand([
        Card('D', 'A'),
        Card('H', 'K'),
        Card('C', 'Q'),
        Card('H', 'J'),
        Card('D', '10')
    ])
    hand2 = Hand([
        Card('S', 'J'),
        Card('S', '8'),
        Card('S', '6'),
        Card('S', '4'),
        Card('S', '2')
    ])
    assert hand1 < hand2
示例#7
0
def test_hand_pair_two():
    hand1 = Hand([
        Card('H', '3'),
        Card('C', '3'),
        Card('H', '2'),
        Card('H', '5'),
        Card('D', 'A')
    ])
    hand2 = Hand([
        Card('C', 'Q'),
        Card('H', 'Q'),
        Card('C', '8'),
        Card('C', '2'),
        Card('D', 'K')
    ])
    assert hand1 < hand2
示例#8
0
def test_hand_pair_kicker():
    hand1 = Hand([
        Card('H', '2'),
        Card('H', '5'),
        Card('C', 'Q'),
        Card('H', 'Q'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('H', '10'),
        Card('C', '4'),
        Card('S', 'Q'),
        Card('C', '2'),
        Card('D', 'Q')
    ])
    assert hand1 < hand2
示例#9
0
def test_hand_straight_flush_highest_wins():
    hand1 = Hand([
        Card('H', '9'),
        Card('H', '8'),
        Card('H', '7'),
        Card('H', '6'),
        Card('H', '5')
    ])
    hand2 = Hand([
        Card('S', '6'),
        Card('S', '5'),
        Card('S', '4'),
        Card('S', '3'),
        Card('S', '2')
    ])
    assert hand1 > hand2
示例#10
0
def test_hand_four_of_a_kind_high_quad_wins():
    hand1 = Hand([
        Card('D', '4'),
        Card('H', '4'),
        Card('S', '4'),
        Card('C', '4'),
        Card('D', '9')
    ])
    hand2 = Hand([
        Card('S', '10'),
        Card('D', '10'),
        Card('H', '10'),
        Card('C', '10'),
        Card('S', '2')
    ])
    assert hand1 < hand2
示例#11
0
def test_hand_full_house_high_triplet_wins():
    hand1 = Hand([
        Card('D', 'K'),
        Card('C', 'K'),
        Card('H', 'K'),
        Card('D', '2'),
        Card('S', '2')
    ])
    hand2 = Hand([
        Card('S', '10'),
        Card('D', '10'),
        Card('H', '10'),
        Card('D', '9'),
        Card('S', '9')
    ])
    assert hand1 > hand2
示例#12
0
def test_hand_four_of_a_kind_beats_full_house():
    hand1 = Hand([
        Card('D', '4'),
        Card('H', '4'),
        Card('S', '4'),
        Card('C', '4'),
        Card('D', '9')
    ])
    hand2 = Hand([
        Card('S', '10'),
        Card('D', '10'),
        Card('H', '10'),
        Card('D', '2'),
        Card('S', '2')
    ])
    assert hand1 > hand2
示例#13
0
def test_hand_flush_kicker_five():
    hand1 = Hand([
        Card('D', 'J'),
        Card('D', '8'),
        Card('D', '6'),
        Card('D', '4'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('S', 'J'),
        Card('S', '8'),
        Card('S', '6'),
        Card('S', '4'),
        Card('S', '2')
    ])
    assert hand1 > hand2
示例#14
0
def test_hand_full_house_beats_flush():
    hand1 = Hand([
        Card('D', 'J'),
        Card('D', '8'),
        Card('D', '6'),
        Card('D', '4'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('S', '10'),
        Card('D', '10'),
        Card('H', '10'),
        Card('D', '2'),
        Card('S', '2')
    ])
    assert hand1 < hand2
示例#15
0
def test_hand_two_pair_top_wins():
    hand1 = Hand([
        Card('D', '5'),
        Card('H', '5'),
        Card('C', 'Q'),
        Card('H', 'Q'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('H', '4'),
        Card('C', '4'),
        Card('S', 'A'),
        Card('C', '2'),
        Card('D', 'A')
    ])
    assert hand1 < hand2
示例#16
0
def test_hand_flush_kicker_four():
    hand1 = Hand([
        Card('D', 'J'),
        Card('D', '8'),
        Card('D', '5'),
        Card('D', '3'),
        Card('D', '2')
    ])
    hand2 = Hand([
        Card('S', 'J'),
        Card('S', '8'),
        Card('S', '5'),
        Card('S', '4'),
        Card('S', '2')
    ])
    assert hand1 < hand2
示例#17
0
def test_hand_straight_ace_high_wins():
    hand1 = Hand([
        Card('D', 'A'),
        Card('H', 'K'),
        Card('C', 'Q'),
        Card('H', 'J'),
        Card('D', '10')
    ])
    hand2 = Hand([
        Card('S', '7'),
        Card('C', '8'),
        Card('S', '9'),
        Card('C', '10'),
        Card('D', 'J')
    ])
    assert hand1 > hand2
示例#18
0
def test_hand_ace_low_straight_beats_three_of_a_kind():
    hand1 = Hand([
        Card('D', '5'),
        Card('H', '4'),
        Card('C', '3'),
        Card('H', '2'),
        Card('D', 'A')
    ])
    hand2 = Hand([
        Card('S', '4'),
        Card('C', '7'),
        Card('S', 'A'),
        Card('C', 'A'),
        Card('D', 'A')
    ])
    assert hand1 > hand2
示例#19
0
def test_hand_three_of_a_kind_value_wins():
    hand1 = Hand([
        Card('D', '5'),
        Card('H', '5'),
        Card('C', '5'),
        Card('H', 'Q'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('H', '4'),
        Card('C', '7'),
        Card('S', 'A'),
        Card('C', 'A'),
        Card('D', 'A')
    ])
    assert hand1 < hand2
示例#20
0
def test_hand_three_of_a_kind_beats_two_pair():
    hand1 = Hand([
        Card('D', '5'),
        Card('H', '5'),
        Card('C', '5'),
        Card('H', 'Q'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('H', '4'),
        Card('C', '4'),
        Card('S', 'A'),
        Card('C', '2'),
        Card('D', 'A')
    ])
    assert hand1 > hand2
示例#21
0
def test_hand_two_pair_kicker_wins():
    hand1 = Hand([
        Card('D', '5'),
        Card('H', '5'),
        Card('C', 'Q'),
        Card('H', 'Q'),
        Card('D', '3')
    ])
    hand2 = Hand([
        Card('S', '5'),
        Card('C', '5'),
        Card('S', 'Q'),
        Card('C', '2'),
        Card('D', 'Q')
    ])
    assert hand1 > hand2
示例#22
0
def test_hand_straight_flush_beats_four_of_a_kind():
    hand1 = Hand([
        Card('D', '9'),
        Card('H', '9'),
        Card('S', '9'),
        Card('C', '9'),
        Card('D', 'K')
    ])
    hand2 = Hand([
        Card('S', '6'),
        Card('S', '5'),
        Card('S', '4'),
        Card('S', '3'),
        Card('S', '2')
    ])
    assert hand1 < hand2
示例#23
0
def test_hand_high_card_one():
    hand1 = Hand([
        Card('H', '2'),
        Card('H', '5'),
        Card('C', '6'),
        Card('H', 'Q'),
        Card('D', 'A')
    ])
    hand2 = Hand([
        Card('H', '3'),
        Card('H', '7'),
        Card('C', '8'),
        Card('C', '2'),
        Card('D', 'K')
    ])
    assert hand1 > hand2
示例#24
0
def test_hand_straight_tie():
    hand1 = Hand([
        Card('H', '9'),
        Card('H', '8'),
        Card('D', '7'),
        Card('H', '6'),
        Card('H', '5')
    ])
    hand2 = Hand([
        Card('H', '9'),
        Card('H', '8'),
        Card('S', '7'),
        Card('H', '6'),
        Card('H', '5')
    ])
    assert not hand1 > hand2
    assert not hand1 < hand2
    assert hand1 == hand2
示例#25
0
def test_card_string():
    card1 = Card('C', 'J')
    assert str(card1) == 'JC'
示例#26
0
def test_card_cmp_value():
    card1 = Card('C', '10')
    card2 = Card('C', 'Q')
    assert card1.cmp_value(card2) < 0
    assert card2.cmp_value(card1) > 0
示例#27
0
def test_card_repr():
    card1 = Card('C', '10')
    assert repr(card1) == '<Card 10C>'
示例#28
0
def test_card_cmp_value():
    card1 = Card('C', '10')
    card2 = Card('C', 'Q')
    assert card1.cmp_value(card2) < 0
    assert card2.cmp_value(card1) > 0
示例#29
0
def test_card_sort_with_cmp_value():
    cards = [
        Card('C', '10'),
        Card('S', '2'),
        Card('C', '5'),
        Card('S', 'A'),
        Card('H', 'K'),
        Card('D', 'K'),
    ]
    cards.sort(cmp=Card.cmp_value)
    assert cards == [
        Card('S', '2'),
        Card('C', '5'),
        Card('C', '10'),
        Card('H', 'K'),
        Card('D', 'K'),
        Card('S', 'A')
    ]
示例#30
0
def test_blank_card():
    card = Card()
    assert card.suit is None
    assert card.value is None
示例#31
0
def test_single_card():
    card = Card('H', '10')
    assert card.suit == 'H'
    assert card.value == 10