File size: 1,771 Bytes
af83196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
"""Tests for LLM generation time and evaluation time instrumentation."""

from skydiscover.search.utils.discovery_utils import SerializableResult


class TestSerializableResultTimeFields:
    """Verify time instrumentation fields on SerializableResult."""

    def test_default_values(self):
        result = SerializableResult()
        assert result.iteration_time == 0.0
        assert result.llm_generation_time == 0.0
        assert result.eval_time == 0.0

    def test_explicit_values(self):
        result = SerializableResult(
            iteration_time=10.5,
            llm_generation_time=8.2,
            eval_time=2.1,
        )
        assert result.iteration_time == 10.5
        assert result.llm_generation_time == 8.2
        assert result.eval_time == 2.1

    def test_error_before_eval(self):
        """LLM succeeds but evaluation never runs."""
        result = SerializableResult(
            llm_generation_time=5.0,
            error="Parse failed",
        )
        assert result.llm_generation_time == 5.0
        assert result.eval_time == 0.0
        assert result.iteration_time == 0.0

    def test_error_before_llm(self):
        """Iteration fails before LLM call (e.g. prompt building)."""
        result = SerializableResult(
            error="No parent found",
        )
        assert result.llm_generation_time == 0.0
        assert result.eval_time == 0.0
        assert result.iteration_time == 0.0

    def test_iteration_time_without_breakdown(self):
        """Old-style result with only iteration_time set."""
        result = SerializableResult(
            iteration_time=12.0,
        )
        assert result.iteration_time == 12.0
        assert result.llm_generation_time == 0.0
        assert result.eval_time == 0.0