librectf-rust/judge/models.py

65 lines
1.6 KiB
Python

import enum
class Problem:
def __init__(
self,
id: int,
test_cases: int,
time_limit: float,
memory_limit: int,
generator_code: str,
generator_language,
grader_code: str,
grader_language,
source_verifier_code: str = None,
source_verifier_language=None,
):
self.id = id
self.test_cases = test_cases
self.time_limit = time_limit
self.memory_limit = memory_limit
self.generator_code = generator_code
self.generator_language = generator_language
self.grader_code = grader_code
self.grader_language = grader_language
self.source_verifier_code = source_verifier_code
self.source_verifier_language = source_verifier_language
class Job:
def __init__(self, id: int, problem: Problem, code: str, language):
self.id = id
self.problem = problem
self.code = code
self.language = language
class JobVerdict(enum.Enum):
accepted = "AC"
ran = "RAN"
invalid_source = "IS"
wrong_answer = "WA"
time_limit_exceeded = "TLE"
memory_limit_exceeded = "MLE"
runtime_error = "RTE"
illegal_syscall = "ISC"
compilation_error = "CE"
judge_error = "JE"
class ExecutionResult:
def __init__(
self,
job: Job,
verdict: JobVerdict,
last_ran_case: int,
execution_time: float,
execution_memory: int,
):
self.job = job
self.verdict = verdict
self.last_ran_case = last_ran_case
self.execution_time = execution_time
self.execution_memory = execution_memory