telltale / tests /test_evaluator.py
smpdl
Deploy ZeroGPU Space snapshot
60daaa6
Raw
History Blame Contribute Delete
1.74 kB
from telltale.poker import native
def rank(cards: list[str]):
return native.evaluate_7(cards).as_tuple()
def test_straight_flush_beats_four_of_a_kind():
assert rank(["As", "Ks", "Qs", "Js", "Ts", "2c", "3d"]) > rank(["Ah", "Ad", "Ac", "As", "Kh", "2c", "3d"])
def test_four_of_a_kind_beats_full_house():
assert rank(["Ah", "Ad", "Ac", "As", "Kh", "2c", "3d"]) > rank(["Kh", "Kd", "Kc", "2s", "2h", "3c", "4d"])
def test_full_house_beats_flush():
assert rank(["Kh", "Kd", "Kc", "2s", "2h", "3c", "4d"]) > rank(["Ah", "Th", "8h", "6h", "4h", "2c", "3d"])
def test_flush_beats_straight():
assert rank(["Ah", "Th", "8h", "6h", "4h", "2c", "3d"]) > rank(["9c", "8d", "7h", "6s", "5c", "2h", "3d"])
def test_straight_beats_trips():
assert rank(["9c", "8d", "7h", "6s", "5c", "2h", "3d"]) > rank(["Qc", "Qd", "Qh", "9s", "5c", "2h", "3d"])
def test_trips_beats_two_pair():
assert rank(["Qc", "Qd", "Qh", "9s", "5c", "2h", "3d"]) > rank(["Ac", "Ad", "Kh", "Ks", "5c", "2h", "3d"])
def test_two_pair_beats_one_pair():
assert rank(["Ac", "Ad", "Kh", "Ks", "5c", "2h", "3d"]) > rank(["Ac", "Ad", "Qh", "9s", "5c", "2h", "3d"])
def test_one_pair_beats_high_card():
assert rank(["Ac", "Ad", "Qh", "9s", "5c", "2h", "3d"]) > rank(["Ac", "Kd", "Qh", "9s", "5c", "2h", "3d"])
def test_wheel_straight_works():
assert native.evaluate_7(["Ac", "2d", "3h", "4s", "5c", "Kh", "Qd"]).label == "straight"
assert native.evaluate_7(["Ac", "2d", "3h", "4s", "5c", "Kh", "Qd"]).tiebreakers == (5,)
def test_best_five_of_seven_cards_are_selected():
best = native.evaluate_7(["Ah", "Ad", "Ac", "Ks", "Kh", "2c", "3d"])
assert best.label == "full house"
assert best.tiebreakers == (14, 13)