from src.engine.hand import Hand def test_hand(): # 创建一个玩家的手牌 hand = Hand() # 添加一些牌到手牌中 hand.add_tile("1条") hand.add_tile("1条") hand.add_tile("2条") hand.add_tile("2条") hand.add_tile("2条") hand.add_tile("3条") # 打印手牌 print("\n当前手牌:", hand) # 测试获取某张牌的数量 assert hand.get_tile_count("1条") == 2, f"测试失败:1条应该有 2 张" assert hand.get_tile_count("2条") == 3, f"测试失败:2条应该有 3 张" assert hand.get_tile_count("3条") == 1, f"测试失败:3条应该有 1 张" # 测试移除一张牌 hand.remove_tile("1条") print("移除 1条 后的手牌:", hand) assert hand.get_tile_count("1条") == 1, f"测试失败:1条应该有 1 张" # 确保移除后有足够的牌可以碰 # 添加一张 1条,确保可以碰 hand.add_tile("1条") print("添加 1条 后的手牌:", hand) # 测试是否可以碰 assert hand.can_peng("1条") == True, f"测试失败:1条应该可以碰" print("可以碰 1条 的牌:", hand.can_peng("1条")) assert hand.can_peng("3条") == False, f"测试失败:3条不可以碰" print("不可以碰 3条 的牌:", hand.can_peng("3条")) # 测试是否可以杠 assert hand.can_gang("1条") == False, f"测试失败:1条不可以杠" print("不可以杠 1条 的牌:", hand.can_gang("1条")) assert hand.can_gang("2条") == False, f"测试失败:2条不可以杠" print("不可以杠 2条 的牌:", hand.can_gang("2条")) # 添加更多牌来形成杠 hand.add_tile("2条") print("添加牌后手牌:", hand) hand.add_tile("2条") print("添加牌后手牌:", hand) assert hand.can_gang("2条") == False, f"测试失败:2条不可以杠" # still not enough for gang # 添加一张更多的 2条 来形成杠 hand.add_tile("2条") print("添加一张2条后:", hand) assert hand.can_gang("2条") == True, f"测试失败:2条应该可以杠" print("所有测试通过!") # 运行测试 test_hand()