tests/test_eval_case_timing.py
Rama main · réplica de lectura del repositorio original.
from dm.eval.run_eval import _execute_case
CASE = {"id": "C1", "category": "direct", "question": "q", "grader": "refusal"}
def test_case_execution_records_monotonic_duration():
ticks = iter([10.0, 10.125])
def clock():
return next(ticks)
outcome = _execute_case(
CASE,
agent_runner=lambda *a, **k: {"answer": "暂无数据", "session_id": "S1"},
grader=lambda case, answer: (True, "expected"),
clock=clock,
)
assert outcome.duration_ms == 125
def test_case_execution_clamps_backward_clock_anomalies():
ticks = iter([10.0, 9.0])
outcome = _execute_case(
CASE,
agent_runner=lambda *a, **k: {"answer": "暂无数据", "session_id": "S1"},
grader=lambda case, answer: (True, "expected"),
clock=lambda: next(ticks),
)
assert outcome.duration_ms == 0