feat: basic function
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user