20 lines
772 B
Python
20 lines
772 B
Python
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]}),
|
|
|
|
# 测试用例 2: 点炮,总番数 2
|
|
(2, False, 5, {"winner": 20, "loser": [-20, 0, 0]}),
|
|
|
|
# 测试用例 3: 自摸,总番数 4
|
|
(4, True, 5, {"winner": 240, "loser": [-80, -80, -80]}),
|
|
|
|
# 测试用例 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}"
|