From 4bf51b919b941444d7df3ebb4aaba67dc5c3cee3 Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sat, 30 Nov 2024 23:35:45 +0800 Subject: [PATCH] Update test_game_status.py --- tests/test_game_status.py | 70 +++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 13 deletions(-) diff --git a/tests/test_game_status.py b/tests/test_game_status.py index ae526f4..22cd353 100644 --- a/tests/test_game_status.py +++ b/tests/test_game_status.py @@ -21,26 +21,64 @@ def test_set_missing_suit(): raise AssertionError("测试失败:设置无效缺门 '花' 未抛出异常") -def test_can_win_with_sequence_and_pair(): +def test_can_win_with_pure_sequences(): + """测试纯顺子胡牌""" hand = Hand() - hand.add_tile(MahjongTile("条", 1)) - hand.add_tile(MahjongTile("条", 2)) - hand.add_tile(MahjongTile("条", 3)) - hand.add_tile(MahjongTile("条", 4)) - hand.add_tile(MahjongTile("条", 4)) + # 添加牌到手牌中 + hand.add_tile(MahjongTile("筒", 5)) + hand.add_tile(MahjongTile("筒", 5)) + hand.add_tile(MahjongTile("筒", 1)) + hand.add_tile(MahjongTile("筒", 2)) + hand.add_tile(MahjongTile("筒", 3)) + hand.add_tile(MahjongTile("筒", 4)) hand.add_tile(MahjongTile("筒", 5)) hand.add_tile(MahjongTile("筒", 6)) hand.add_tile(MahjongTile("筒", 7)) - hand.add_tile(MahjongTile("万", 1)) - hand.add_tile(MahjongTile("万", 2)) + hand.add_tile(MahjongTile("筒", 8)) + hand.add_tile(MahjongTile("筒", 9)) hand.add_tile(MahjongTile("万", 3)) - hand.add_tile(MahjongTile("筒", 8)) - hand.add_tile(MahjongTile("筒", 8)) + hand.add_tile(MahjongTile("万", 4)) + hand.add_tile(MahjongTile("万", 5)) + state = ChengduMahjongState() state.hands[0] = hand - assert state.can_win(hand), "测试失败:顺子和对子应该可以胡牌" - print("测试通过:顺子和对子可以胡牌") + # 设置缺门为 "条",因为手牌中没有 "条" + missing_suit = "条" + print(f"\n,state.hand[0]: {state.hands[0]}") + + # 调用 can_win 方法并断言胡牌 + assert state.can_win(state.hands[0], missing_suit) == True, "测试失败:纯顺子应该可以胡牌" + + +def test_can_win_with_sequence_and_triplet(): + """测试顺子 + 刻子胡牌""" + hand = Hand() + # 添加牌到手牌中 + hand.add_tile(MahjongTile("筒", 5)) + hand.add_tile(MahjongTile("筒", 5)) + hand.add_tile(MahjongTile("筒", 3)) + hand.add_tile(MahjongTile("筒", 3)) + hand.add_tile(MahjongTile("筒", 3)) + hand.add_tile(MahjongTile("筒", 4)) + hand.add_tile(MahjongTile("筒", 5)) + hand.add_tile(MahjongTile("筒", 6)) + hand.add_tile(MahjongTile("万", 3)) + hand.add_tile(MahjongTile("万", 4)) + hand.add_tile(MahjongTile("万", 5)) + hand.add_tile(MahjongTile("万", 7)) + hand.add_tile(MahjongTile("万", 8)) + hand.add_tile(MahjongTile("万", 9)) + + state = ChengduMahjongState() + state.hands[0] = hand + + # 设置缺门为 "条",因为手牌中没有 "条" + missing_suit = "条" + print(f"\n,state.hand[0]: {state.hands[0]}") + + # 调用 can_win 方法并断言胡牌 + assert state.can_win(state.hands[0], missing_suit) == True, "测试失败:顺子 + 刻子应该可以胡牌" def test_can_win_with_triplets_and_pair(): """测试刻子和对子胡牌""" @@ -59,10 +97,16 @@ def test_can_win_with_triplets_and_pair(): hand.add_tile(MahjongTile("筒", 3)) hand.add_tile(MahjongTile("筒", 4)) hand.add_tile(MahjongTile("筒", 4)) + state = ChengduMahjongState() state.hands[0] = hand + + # 设置缺门为 "万",因为手牌中没有 "万" + missing_suit = "万" print(f"\n,state.hand[0]: {state.hands[0]}") - assert state.can_win(state.hands[0]) == True, "测试失败:刻子和对子应该可以胡牌" + + # 调用 can_win 方法并断言胡牌 + assert state.can_win(state.hands[0], missing_suit) == True, "测试失败:刻子和对子应该可以胡牌" def test_can_win_with_mixed_groups():