Zum Inhalt

tests/test_results.py

def test_evalresponse_reasoning_text_defaults_empty():
    from touchstone.results import EvalResponse

    r = EvalResponse(
        pack_id="p",
        pack_version=1,
        machine="M",
        model="m",
        quant="",
        engine="e",
        engine_version="0",
        variant="none",
        category="A",
        prompt_id="A1",
        repeat=0,
        response_text="",
        content_empty=True,
        ttft_s=0.0,
        decode_tps=0.0,
        prefill_tps=0.0,
        e2e_s=0.0,
        prompt_tokens=0,
        completion_tokens=0,
        is_cold_start=False,
        power_source="ac",
        peak_rss_mb=None,
        sys_used_mb=None,
        mem_pressure_max="",
        throttled=False,
        ok=True,
        error="",
        seed=42,
        t_start=0.0,
        t_end=0.0,
    )
    assert r.reasoning_text == ""
    assert r.as_dict()["reasoning_text"] == ""
    # model-delta fields default safely and serialize
    assert r.sys_used_baseline_mb is None
    assert r.sys_used_delta_mb is None
    d = r.as_dict()
    assert d["sys_used_baseline_mb"] is None
    assert d["sys_used_delta_mb"] is None


def test_evalresponse_reasoning_timing_defaults_safe():
    from touchstone.results import EvalResponse

    r = EvalResponse(
        pack_id="p",
        pack_version=1,
        machine="M",
        model="m",
        quant="",
        engine="e",
        engine_version="0",
        variant="none",
        category="A",
        prompt_id="A1",
        repeat=0,
        response_text="",
        content_empty=True,
        ttft_s=0.0,
        decode_tps=0.0,
        prefill_tps=0.0,
        e2e_s=0.0,
        prompt_tokens=0,
        completion_tokens=0,
        is_cold_start=False,
        power_source="ac",
        peak_rss_mb=None,
        sys_used_mb=None,
        mem_pressure_max="",
        throttled=False,
        ok=True,
        error="",
        seed=42,
        t_start=0.0,
        t_end=0.0,
    )
    # new reasoning-timing fields default safely and serialize
    assert r.reasoning_duration_s == 0.0
    assert r.reasoning_tps == 0.0
    assert r.reasoning_completion_tokens == 0
    d = r.as_dict()
    assert d["reasoning_duration_s"] == 0.0
    assert d["reasoning_tps"] == 0.0
    assert d["reasoning_completion_tokens"] == 0


def test_evalresponse_carries_reasoning_timing_when_set():
    from touchstone.results import EvalResponse

    r = EvalResponse(
        pack_id="p",
        pack_version=1,
        machine="M",
        model="m",
        quant="",
        engine="e",
        engine_version="0",
        variant="none",
        category="A",
        prompt_id="A1",
        repeat=0,
        response_text="x",
        content_empty=False,
        ttft_s=0.0,
        decode_tps=0.0,
        prefill_tps=0.0,
        e2e_s=0.0,
        prompt_tokens=0,
        completion_tokens=0,
        is_cold_start=False,
        power_source="ac",
        peak_rss_mb=None,
        sys_used_mb=None,
        mem_pressure_max="",
        throttled=False,
        ok=True,
        error="",
        seed=42,
        t_start=0.0,
        t_end=0.0,
        reasoning_duration_s=2.5,
        reasoning_tps=40.0,
        reasoning_completion_tokens=100,
    )
    d = r.as_dict()
    assert d["reasoning_duration_s"] == 2.5
    assert d["reasoning_tps"] == 40.0
    assert d["reasoning_completion_tokens"] == 100


def test_evalresponse_carries_model_delta_when_set():
    from touchstone.results import EvalResponse

    r = EvalResponse(
        pack_id="p",
        pack_version=1,
        machine="M",
        model="m",
        quant="",
        engine="e",
        engine_version="0",
        variant="none",
        category="A",
        prompt_id="A1",
        repeat=0,
        response_text="x",
        content_empty=False,
        ttft_s=0.0,
        decode_tps=0.0,
        prefill_tps=0.0,
        e2e_s=0.0,
        prompt_tokens=0,
        completion_tokens=0,
        is_cold_start=False,
        power_source="ac",
        peak_rss_mb=None,
        sys_used_mb=52000.0,
        mem_pressure_max="",
        throttled=False,
        ok=True,
        error="",
        seed=42,
        t_start=0.0,
        t_end=0.0,
        sys_used_baseline_mb=40000.0,
        sys_used_delta_mb=12000.0,
    )
    assert r.as_dict()["sys_used_delta_mb"] == 12000.0
    assert r.as_dict()["sys_used_baseline_mb"] == 40000.0