Update test_calculate_fan.py

pull/1/head
wsy182 2024-11-30 16:44:57 +08:00
parent 8ad0177ee0
commit 0c8a2ff668
1 changed files with 115 additions and 1 deletions

View File

@ -53,9 +53,28 @@ def test_clear_win():
fan = calculate_fan(hand, melds, is_self_draw=True, is_cleared=is_cleared(hand), conditions=conditions) fan = calculate_fan(hand, melds, is_self_draw=True, is_cleared=is_cleared(hand), conditions=conditions)
assert fan == 3, f"Expected 3 fans (1 basic + 2 cleared), got {fan}" assert fan == 3, f"Expected 3 fans (1 basic + 2 cleared), got {fan}"
def test_pure_cleared():
"""
测试清对计分
"""
hand = [2] * 6 + [0] * 102 # 手牌:清对
melds = [0, 1, 2] # 模拟碰
conditions = {"is_pure_cleared": True}
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=True, conditions=conditions)
assert fan == 3, f"Expected 3 fans (pure cleared), got {fan}"
def test_pure_cleared():
"""
测试清对计分
"""
hand = [2] * 6 + [0] * 102 # 手牌:清对
melds = [0, 1, 2] # 模拟碰
conditions = {"is_pure_cleared": True} # 明确条件
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=True, conditions=conditions)
assert fan == 3, f"Expected 3 fans (pure cleared), got {fan}"
def test_seven_pairs(): def test_seven_pairs():
""" """
测试七对计分 测试七对计分
@ -77,6 +96,40 @@ def test_seven_pairs():
assert fan == 2, f"Expected 2 fans (7 pairs), got {fan}" assert fan == 2, f"Expected 2 fans (7 pairs), got {fan}"
def test_small_pairs():
"""
测试小七对计分
"""
hand = [2] * 6 + [0] * 102
melds = []
conditions = {"is_small_pairs": True}
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=False, conditions=conditions)
assert fan == 2, f"Expected 2 fans (small pairs), got {fan}"
def test_clear_seven_pairs():
"""
测试清七对计分
"""
hand = [2] * 7 + [0] * 101
melds = []
conditions = {"is_clear_seven_pairs": True}
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=True, conditions=conditions)
assert fan == 12, f"Expected 12 fans (clear seven pairs), got {fan}"
def test_full_request():
"""
测试全求人计分
"""
hand = [2] + [0] * 107
melds = []
conditions = {"is_full_request": True}
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=False, conditions=conditions)
assert fan == 6, f"Expected 6 fans (full request), got {fan}"
def test_big_pairs(): def test_big_pairs():
""" """
测试大对子计分 测试大对子计分
@ -126,6 +179,59 @@ def test_gang_flower():
assert fan == 2, f"Expected 2 fans (1 basic + 1 gang flower), got {fan}" assert fan == 2, f"Expected 2 fans (1 basic + 1 gang flower), got {fan}"
def test_rob_gang():
"""
测试抢杠胡计分
"""
hand = [0] * 108
melds = []
conditions = {"is_rob_gang": True}
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=False, conditions=conditions)
assert fan == 1, f"Expected 1 fan (rob gang), got {fan}"
def test_under_the_sea():
"""
测试海底捞月计分
"""
hand = [0] * 108
melds = []
conditions = {"is_under_the_sea": True}
fan = calculate_fan(hand, melds, is_self_draw=True, is_cleared=False, conditions=conditions)
assert fan == 1, f"Expected 1 fan (under the sea), got {fan}"
def test_cannon():
"""
测试放炮计分
"""
hand = [0] * 108
melds = []
conditions = {"is_cannon": True}
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=False, conditions=conditions)
assert fan == 1, f"Expected 1 fan (cannon), got {fan}"
def test_tian_hu():
"""
测试天胡计分
"""
hand = [0] * 108
melds = []
conditions = {"is_tian_hu": True}
fan = calculate_fan(hand, melds, is_self_draw=True, is_cleared=False, conditions=conditions)
assert fan == 12, f"Expected 12 fans (tian hu), got {fan}"
def test_di_hu():
"""
测试地胡计分
"""
hand = [0] * 108
melds = []
conditions = {"is_di_hu": True}
fan = calculate_fan(hand, melds, is_self_draw=False, is_cleared=False, conditions=conditions)
assert fan == 12, f"Expected 12 fans (di hu), got {fan}"
def test_dragon_seven_pairs(): def test_dragon_seven_pairs():
""" """
测试龙七对计分 测试龙七对计分
@ -149,5 +255,13 @@ def test_dragon_seven_pairs():
fan = calculate_fan(hand, melds, is_self_draw=True, is_cleared=False, conditions=conditions) fan = calculate_fan(hand, melds, is_self_draw=True, is_cleared=False, conditions=conditions)
assert fan == 13, f"Expected 13 fans (1 self-draw + 12 dragon seven pairs), got {fan}" assert fan == 13, f"Expected 13 fans (1 self-draw + 12 dragon seven pairs), got {fan}"
def test_self_draw():
"""
测试自摸计分
"""
hand = [0] * 108
melds = []
conditions = {}
fan = calculate_fan(hand, melds, is_self_draw=True, is_cleared=False, conditions=conditions)
assert fan == 1, f"Expected 1 fan (self-draw), got {fan}"