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}"