87 lines
2.2 KiB
Python
87 lines
2.2 KiB
Python
from src import Hand
|
|
from src import MahjongTile
|
|
|
|
|
|
def test_add_tile():
|
|
"""测试添加牌功能"""
|
|
hand = Hand()
|
|
tile1 = MahjongTile("条", 1)
|
|
tile2 = MahjongTile("条", 2)
|
|
|
|
hand.add_tile(tile1)
|
|
hand.add_tile(tile1)
|
|
hand.add_tile(tile2)
|
|
print("\n测试添加牌功能,当前手牌:", hand)
|
|
|
|
assert hand.get_tile_count(tile1) == 2, f"测试失败:{tile1} 应该有 2 张"
|
|
assert hand.get_tile_count(tile2) == 1, f"测试失败:{tile2} 应该有 1 张"
|
|
|
|
|
|
def test_remove_tile():
|
|
"""测试移除牌功能"""
|
|
hand = Hand()
|
|
tile1 = MahjongTile("条", 1)
|
|
|
|
hand.add_tile(tile1)
|
|
hand.add_tile(tile1)
|
|
hand.remove_tile(tile1)
|
|
print("\n测试移除牌功能,移除一张 1条 后的手牌:", hand)
|
|
|
|
assert hand.get_tile_count(tile1) == 1, f"测试失败:{tile1} 应该有 1 张"
|
|
|
|
|
|
def test_can_peng():
|
|
"""测试是否可以碰"""
|
|
hand = Hand()
|
|
tile1 = MahjongTile("条", 1)
|
|
tile2 = MahjongTile("条", 2)
|
|
|
|
hand.add_tile(tile1)
|
|
hand.add_tile(tile1)
|
|
print("\n测试碰功能,当前手牌:", hand)
|
|
|
|
assert hand.can_peng(tile1) == True, f"测试失败:{tile1} 应该可以碰"
|
|
assert hand.can_peng(tile2) == False, f"测试失败:{tile2} 不可以碰"
|
|
|
|
print(f"可以碰 {tile1} 的牌:", hand.can_peng(tile1))
|
|
print(f"不可以碰 {tile2} 的牌:", hand.can_peng(tile2))
|
|
|
|
|
|
def test_can_gang():
|
|
"""测试是否可以杠"""
|
|
hand = Hand()
|
|
tile2 = MahjongTile("条", 2)
|
|
|
|
hand.add_tile(tile2)
|
|
hand.add_tile(tile2)
|
|
hand.add_tile(tile2)
|
|
print("\n测试杠功能,当前手牌:", hand)
|
|
|
|
assert hand.can_gang(tile2) == False, f"测试失败:{tile2} 不可以杠"
|
|
|
|
# 添加更多牌来形成杠
|
|
hand.add_tile(tile2)
|
|
print("再添加一张 2条 后:", hand)
|
|
|
|
assert hand.can_gang(tile2) == True, f"测试失败:{tile2} 应该可以杠"
|
|
|
|
|
|
def run_all_tests():
|
|
"""运行所有测试"""
|
|
test_add_tile()
|
|
print("测试添加牌功能通过!")
|
|
|
|
test_remove_tile()
|
|
print("测试移除牌功能通过!")
|
|
|
|
test_can_peng()
|
|
print("测试碰功能通过!")
|
|
|
|
test_can_gang()
|
|
print("测试杠功能通过!")
|
|
|
|
print("\n所有测试通过!")
|
|
|
|
|
|
# 运行测试
|
|
run_all_tests() |