from src.engine.hand import Hand from src.engine.mahjong_tile 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()