Spaces:
Sleeping
Sleeping
| import unittest | |
| from env.graders.llm_judge import LLMJudge | |
| class FakeModel: | |
| def __init__(self, payload, raise_error: bool = False): | |
| self.payload = payload | |
| self.raise_error = raise_error | |
| def __call__(self, prompt, **kwargs): | |
| if self.raise_error: | |
| raise RuntimeError("model failure") | |
| return [{"generated_text": self.payload}] | |
| class LLMJudgeTests(unittest.TestCase): | |
| def test_good_json_scores_are_parsed(self): | |
| judge = LLMJudge(FakeModel('{"correctness": 1.0, "minimalism": 0.8, "quality": 0.9}')) | |
| result = judge.evaluate_fix("npm tset", "npm test", "command not found") | |
| self.assertGreaterEqual(result["correctness"], 0.9) | |
| self.assertGreaterEqual(result["minimalism"], 0.7) | |
| self.assertGreaterEqual(result["quality"], 0.8) | |
| def test_regex_fallback_for_noisy_output(self): | |
| noisy = "Correctness: 0.7\nMinimalism: 0.6\nQuality: 0.75" | |
| judge = LLMJudge(FakeModel(noisy)) | |
| result = judge.evaluate_fix("a", "b", "err") | |
| self.assertAlmostEqual(result["correctness"], 0.7) | |
| self.assertAlmostEqual(result["minimalism"], 0.6) | |
| self.assertAlmostEqual(result["quality"], 0.75) | |
| def test_partial_fields_default_to_zero(self): | |
| judge = LLMJudge(FakeModel('{"correctness": 0.8}')) | |
| result = judge.evaluate_fix("a", "b", "err") | |
| self.assertAlmostEqual(result["correctness"], 0.8) | |
| self.assertAlmostEqual(result["minimalism"], 0.001) | |
| self.assertAlmostEqual(result["quality"], 0.001) | |
| def test_model_failure_returns_zeroes(self): | |
| judge = LLMJudge(FakeModel("", raise_error=True)) | |
| result = judge.evaluate_fix("a", "b", "err") | |
| self.assertEqual(result, {"correctness": 0.0, "minimalism": 0.0, "quality": 0.0}) | |
| if __name__ == "__main__": | |
| unittest.main() | |