This commit is contained in:
2025-09-24 16:54:52 +08:00
parent 45f86ba95e
commit 57a7e9216e
22 changed files with 1647 additions and 102 deletions

View File

@@ -15,7 +15,7 @@ class TestMainProgram:
def test_example_input(self):
"""Test the example input from the requirements"""
cards_str = "AsKs AhAdAc6s7s"
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
assert str(ranking) == "Quad(A)"
@@ -35,13 +35,13 @@ class TestMainProgram:
]
for cards_str, expected_result in test_cases:
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
assert str(ranking) == expected_result, f"Failed for {cards_str}"
def test_wheel_straight(self):
"""Test A-2-3-4-5 straight"""
cards_str = "As2h3d4c5h7s8s"
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
assert str(ranking) == "Straight(5 high)"
@@ -56,29 +56,29 @@ class TestMainProgram:
expected_result = "Quad(A)"
for cards_str in formats:
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
assert str(ranking) == expected_result
def test_case_insensitive_suits(self):
"""Test that suits are case insensitive"""
cards_str = "AsKsAhAdAc6s7s"
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
assert str(ranking) == "Quad(A)"
def test_edge_cases(self):
"""Test edge cases and boundary conditions"""
cards_str = "2s2h2d2c3s4h5d"
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
assert str(ranking) == "Quad(2)"
# Minimum straight
cards_str = "As2h3d4c5h6s7s"
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
# Should pick 3-4-5-6-7 over A-2-3-4-5
assert "Straight(7 high)" in str(ranking)
# Maximum straight
cards_str = "9sTsJhQdKhAsAd"
ranking = HandEvaluator.evaluateFromInput(cards_str)
ranking = HandEvaluator.evaluate_from_input(cards_str)
assert str(ranking) == "Straight(A high)"