Update test_scoring.py
parent
c041963b97
commit
42a6320ce8
|
|
@ -1,72 +1,19 @@
|
|||
import pytest
|
||||
from src.engine.scoring import calculate_score
|
||||
|
||||
@pytest.mark.parametrize("fan, is_self_draw, base_score, expected_scores", [
|
||||
# 测试用例 1: 自摸,总番数 3
|
||||
(3, True, 5, {"winner": 120, "loser": [-40, -40, -40]}),
|
||||
|
||||
def test_dealer_self_draw():
|
||||
"""
|
||||
测试用例 1: 庄家自摸,总番数 3,底分 10
|
||||
"""
|
||||
fan = 3
|
||||
base_score = 10
|
||||
is_self_draw = True
|
||||
is_dealer = True
|
||||
# 测试用例 2: 点炮,总番数 2
|
||||
(2, False, 5, {"winner": 20, "loser": [-20, 0, 0]}),
|
||||
|
||||
scores = calculate_score(fan, base_score, is_self_draw, is_dealer)
|
||||
expected_scores = {"winner": 240, "loser": [-80, -80, -80]}
|
||||
assert scores == expected_scores, f"庄家自摸测试失败: {scores} != {expected_scores}"
|
||||
# 测试用例 3: 自摸,总番数 4
|
||||
(4, True, 5, {"winner": 240, "loser": [-80, -80, -80]}),
|
||||
|
||||
|
||||
def test_non_dealer_point_win():
|
||||
"""
|
||||
测试用例 2: 闲家点炮,总番数 2,底分 10
|
||||
"""
|
||||
fan = 2
|
||||
base_score = 10
|
||||
is_self_draw = False
|
||||
is_dealer = False
|
||||
|
||||
scores = calculate_score(fan, base_score, is_self_draw, is_dealer)
|
||||
expected_scores = {"winner": 40, "loser": [-40, 0, 0]}
|
||||
assert scores == expected_scores, f"闲家点炮测试失败: {scores} != {expected_scores}"
|
||||
|
||||
|
||||
def test_non_dealer_self_draw():
|
||||
"""
|
||||
测试用例 3: 闲家自摸,总番数 4,底分 10
|
||||
"""
|
||||
fan = 4
|
||||
base_score = 10
|
||||
is_self_draw = True
|
||||
is_dealer = False
|
||||
|
||||
scores = calculate_score(fan, base_score, is_self_draw, is_dealer)
|
||||
expected_scores = {"winner": 160, "loser": [-80, -40, -40]}
|
||||
assert scores == expected_scores, f"闲家自摸测试失败: {scores} != {expected_scores}"
|
||||
|
||||
|
||||
def test_dealer_point_win():
|
||||
"""
|
||||
测试用例 4: 庄家点炮,总番数 1,底分 5
|
||||
"""
|
||||
fan = 1
|
||||
base_score = 5
|
||||
is_self_draw = False
|
||||
is_dealer = True
|
||||
|
||||
scores = calculate_score(fan, base_score, is_self_draw, is_dealer)
|
||||
expected_scores = {"winner": 10, "loser": [-10, 0, 0]}
|
||||
assert scores == expected_scores, f"庄家点炮测试失败: {scores} != {expected_scores}"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 单独执行测试
|
||||
test_dealer_self_draw()
|
||||
print("测试 1: 庄家自摸通过!")
|
||||
|
||||
test_non_dealer_point_win()
|
||||
print("测试 2: 闲家点炮通过!")
|
||||
|
||||
test_non_dealer_self_draw()
|
||||
print("测试 3: 闲家自摸通过!")
|
||||
|
||||
test_dealer_point_win()
|
||||
print("测试 4: 庄家点炮通过!")
|
||||
# 测试用例 4: 点炮,总番数 1
|
||||
(1, False, 5, {"winner": 10, "loser": [-10, 0, 0]}),
|
||||
])
|
||||
def test_calculate_score(fan, is_self_draw, base_score, expected_scores):
|
||||
scores = calculate_score(fan, base_score, is_self_draw)
|
||||
assert scores == expected_scores, f"测试失败: {scores} != {expected_scores}"
|
||||
|
|
|
|||
Loading…
Reference in New Issue