Files
texas_hold_x/tests/test_evaluator.py
2026-05-11 15:46:30 +08:00

34 lines
1.0 KiB
Python

import unittest
from texas_holdem.cards import Card
from texas_holdem.evaluator import evaluate
def cards(values: str) -> list[Card]:
return [Card.parse(value) for value in values.split()]
class EvaluatorTests(unittest.TestCase):
def test_straight_flush_beats_four_of_a_kind(self) -> None:
straight_flush = evaluate(cards("Ah Kh Qh Jh Th 2c 3d"))
quads = evaluate(cards("As Ac Ad Ah Kc 2d 3s"))
self.assertGreater(straight_flush, quads)
self.assertEqual(straight_flush.name, "straight_flush")
def test_wheel_straight_is_ranked_as_five_high(self) -> None:
value = evaluate(cards("Ah 2c 3d 4s 5h Kc Qd"))
self.assertEqual(value.name, "straight")
self.assertEqual(value.ranks, (5,))
def test_two_pair_uses_kicker(self) -> None:
ace_kicker = evaluate(cards("Ah Ac Kd Ks Qh 2c 3d"))
jack_kicker = evaluate(cards("As Ad Kh Kc Jh 2d 3s"))
self.assertGreater(ace_kicker, jack_kicker)
if __name__ == "__main__":
unittest.main()