| from .Dataset import Dataset |
| from evaluations.evalute import xcode_evaluate, contest_evaluate_public_tests |
| from constants.paths import * |
|
|
|
|
| class XCodeDataset(Dataset): |
| def __init__( |
| self, |
| path: str = XCODE_VALIDATION_DATA_PATH, |
| ): |
| super().__init__(path) |
| self.id_key = "src_uid" |
|
|
| def evaluate_sample_io( |
| self, |
| item: dict, |
| cur_imp: str, |
| language: str, |
| ): |
| sample_io = [] |
|
|
| for input, output in zip(item["sample_inputs"], item["sample_outputs"]): |
| sample_io.append({ |
| "input": input, |
| "output": [output] |
| }) |
|
|
| return contest_evaluate_public_tests( |
| generated_code=cur_imp, |
| id=item[self.id_key], |
| tests=sample_io, |
| lang=language |
| ) |
|
|
|
|
| def evaluate( |
| self, |
| item: dict, |
| cur_imp: str, |
| language: str, |
| ): |
| return xcode_evaluate( |
| generated_code=cur_imp, |
| src_uid=item["src_uid"], |
| lang=language |
| ) |
|
|
| @staticmethod |
| def get_prompt(item): |
| return f"Problem Description:\n{item['description']}\nInput Specification:\n{item['input_spec']}\nOutput Specification:\n{item['output_spec']}\nSample Inputs: {item['sample_inputs']}\nSample Outputs: {item['sample_outputs']}\nNote: {item['notes']}\nTake input from: {item['input_from']}\nGive output to: {item['output_to']}\nTime Limit: {item['time_limit']}\nMemory Limit: {item['memory_limit']}\n\nNote: If you are writing a function then after the function definition take input from using `input()` function, call the function with specified parameters and finally print the output of the function." |
|
|