Download CF_CodeTesting.py from aiflows/CCFlows: direct link, hf CLI and curl.
- Browser
- Download file 1.99 kB
-
https://huggingface.co/aiflows/CCFlows/resolve/main/CF_CodeTesting.py
- Command line
-
hf download hf://aiflows/CCFlows/CF_CodeTesting.py
-
curl -L -o CF_CodeTesting.py https://huggingface.co/aiflows/CCFlows/resolve/main/CF_CodeTesting.py
1.99 kB
| from typing import Any, Dict | |
| from aiflows import logging | |
| from aiflows.utils.general_helpers import validate_flow_config | |
| from .src.evaluation import testing_utils_codeforces | |
| from .CodeTesting import CodeTesting | |
| log = logging.get_logger(__name__) | |
| class CF_CodeTesting(CodeTesting): | |
| REQUIRED_KEYS_CONFIG = [] | |
| REQUIRED_KEYS_CONSTRUCTOR = [] | |
| def __init__(self, **kwargs): | |
| super().__init__(**kwargs) | |
| def _validate_flow_config(cls, kwargs): | |
| validate_flow_config(cls, kwargs) | |
| if "public_tests_key" not in kwargs and "hidden_tests_key" not in kwargs: | |
| raise ValueError("At least one of 'public_tests_key' " | |
| "and 'hidden_tests_key' must be specified in the config.") | |
| def _get_test_data(self, input_data: Dict): | |
| """This function retrieves (or generates) input-output pairs that will be used to test the implementation.""" | |
| test_data = {"public_tests_io": None, "hidden_tests_io": None} | |
| if "public_tests_key" in self.flow_config: | |
| test_data["public_tests_io"] = input_data[self.flow_config["public_tests_key"]] | |
| if "hidden_tests_key" in self.flow_config: | |
| test_data["hidden_tests_io"] = input_data[self.flow_config["hidden_tests_key"]] | |
| return test_data | |
| def _run_tests(self, input_data: Dict, test_data: Dict) -> Dict[str, Any]: | |
| testing_results = testing_utils_codeforces.evaluate_solution_for_problem( | |
| candidate_solution=input_data["code"], | |
| **test_data | |
| ) | |
| if "public_tests_results" in testing_results: | |
| for test_output in testing_results["public_tests_results"]: | |
| test_output["input"] = "\n".join(test_output["input"]) | |
| if "hidden_tests_results" in testing_results: | |
| for test_output in testing_results["hidden_tests_results"]: | |
| test_output["input"] = "\n".join(test_output["input"]) | |
| return testing_results | |