Spaces:
Sleeping
Sleeping
| from dataclasses import dataclass, field | |
| from exec_outcome import ExecOutcome | |
| from helper import convert_crlf_to_lf | |
| class Unittest: | |
| input: str | |
| output: str | |
| result: str | None = None | |
| exec_outcome: ExecOutcome | None = None | |
| def __post_init__(self): | |
| self.input = convert_crlf_to_lf(self.input) | |
| self.output = convert_crlf_to_lf(self.output) | |
| def update_result(self, result): | |
| self.result = result | |
| def update_exec_outcome(self, exec_outcome): | |
| self.exec_outcome = exec_outcome | |
| def match_output(self): | |
| return self.result == self.output | |
| class ExtendedUnittest: | |
| input: str | |
| output: list[str] = field(default_factory=list) | |
| result: str | None = None | |
| exec_outcome: ExecOutcome | None = None | |
| time_consumed: float | None = None | |
| peak_memory_consumed: str | None = None | |
| def __post_init__(self): | |
| self.input = convert_crlf_to_lf(self.input) | |
| self.output = [convert_crlf_to_lf(o) for o in self.output.copy()] | |
| def update_time_mem(self, tc, mc): | |
| self.time_consumed = tc | |
| self.peak_memory_consumed = mc | |
| def update_result(self, result): | |
| self.result = result | |
| def update_exec_outcome(self, exec_outcome): | |
| self.exec_outcome = exec_outcome | |
| def match_output(self, result=None): | |
| if result is None: | |
| result = self.result | |
| return result in self.output | |
| def json(self): | |
| _json = self.__dict__.copy() | |
| if self.exec_outcome is not None: | |
| _json["exec_outcome"] = self.exec_outcome.value | |
| return _json | |