| """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 | |