2026-04-07 17:15:01 +08:00
|
|
|
"""评测合成分:评审缺失侧不得被当作 0 分。"""
|
|
|
|
|
|
2026-04-08 21:36:12 +08:00
|
|
|
from app.features.evaluation.composite_score import _composite
|
2026-04-07 17:15:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_composite_none_when_both_missing() -> None:
|
|
|
|
|
assert _composite(None, None, None) is None
|
|
|
|
|
assert _composite(None, None, {"conversation": 0.7, "memoir": 0.3}) is None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_composite_weighted_when_both_present() -> None:
|
|
|
|
|
assert _composite(80.0, 60.0, {"conversation": 0.5, "memoir": 0.5}) == 70.0
|
|
|
|
|
assert _composite(100.0, 0.0, {"conversation": 0.8, "memoir": 0.2}) == 80.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_composite_single_side_uses_raw_score() -> None:
|
|
|
|
|
assert _composite(77.0, None, {"conversation": 0.5, "memoir": 0.5}) == 77.0
|
|
|
|
|
assert _composite(None, 55.5, {"conversation": 0.5, "memoir": 0.5}) == 55.5
|