Ctrl K
ComunidadGuías…

tests/test_eval_case_timing.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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