MCPcopy
hub / github.com/Codium-ai/AlphaCodium / eval_solution

Function eval_solution

alpha_codium/code_contests/eval/code_test_runners.py:313–346  ·  view source on GitHub ↗
(evaluation_test_type: str = "private_tests",
                  example: dict = {},  # noqa # the code contest problem
                  prediction: str = '',  # python code to be evaluated
                  test_inputs: Optional[List[str]] = None,
                  test_outputs: Optional[List[str]] = None,
                  silent=False,
                  break_on_timeout=False)

Source from the content-addressed store, hash-verified

311
312
313def eval_solution(evaluation_test_type: str = "private_tests",
314 example: dict = {}, # noqa # the code contest problem
315 prediction: str = '', # python code to be evaluated
316 test_inputs: Optional[List[str]] = None,
317 test_outputs: Optional[List[str]] = None,
318 silent=False,
319 break_on_timeout=False):
320 if not test_inputs:
321 test_inputs = example.get(evaluation_test_type).get("input") if example.get(evaluation_test_type) else None
322 if not test_outputs:
323 test_outputs = example.get(evaluation_test_type).get("output") if example.get(evaluation_test_type) else None
324
325 is_valid_test_list = example.get(evaluation_test_type).get("is_valid_test") if example.get(
326 evaluation_test_type) else None
327 if is_valid_test_list:
328 test_inputs = [test_inputs[i] for i, is_valid in enumerate(is_valid_test_list) if is_valid]
329 test_outputs = [test_outputs[i] for i, is_valid in enumerate(is_valid_test_list) if is_valid]
330 if test_inputs and test_outputs:
331 test_runner = PythonTestsRunner.factory(get_settings().code_tester.tester_type)
332 _, _, results = test_runner.run_tests(
333 test_id=example["name"],
334 candidate_id="id",
335 candidate=prediction,
336 test_inputs=test_inputs,
337 tests_outputs=test_outputs,
338 timeout=3,
339 break_on_timeout = break_on_timeout,
340 )
341 if not silent:
342 test_runner.print_test_results(results, test_inputs)
343 return test_inputs, results
344 else:
345 # logger.error(f"example '{example['name']}', type: '{evaluation_test_type}' doesn't have tests")
346 return test_inputs, []
347
348
349if __name__ == '__main__':

Callers 3

run_testsFunction · 0.90

Calls 4

get_settingsFunction · 0.90
factoryMethod · 0.80
print_test_resultsMethod · 0.80
run_testsMethod · 0.45

Tested by

no test coverage detected