| | 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." |
| |
|