(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)
| 311 | |
| 312 | |
| 313 | def 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 | |
| 349 | if __name__ == '__main__': |
no test coverage detected