def test_timeout(use_docker, solution_timeout): request = ProcessRequest(src=solution_timeout.read_text(), docker=use_docker, **solve_request_base) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT) case.assertIs(request.result['case-1.s'].status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT) case.assertGreater(request.result['case-1.s'].duration, 1.0) case.assertIs(request.result['case-2'].status, ExecutorStatus.ANSWER_CORRECT) case.assertIs(request.result['case-3.0'].status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT) case.assertIs(request.result['case-3.1'].status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT) case.assertIs(request.result['case-3.2'].status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT) case.assertIs(request.result['case-3.3'].status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT) case.assertIs(request.result['case-3.4'].status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
def test_solution_fatal_compile(use_docker, solution_fatal_compile): request = ProcessRequest(src=solution_fatal_compile.read_text(), docker=use_docker, **solve_request_base) with case.assertRaises(CompileException): request.process()
def test_wrong(use_docker, solution_wrong): request = ProcessRequest(src=solution_wrong.read_text(), docker=use_docker, **solve_request_base) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.ANSWER_WRONG) for subcase in request.iter_subcases(): result = request.result[subcase.id] case.assertIs(result.status, ExecutorStatus.ANSWER_WRONG)
def test_solution_fatal(use_docker, solution_fatal): request = ProcessRequest(src=None, docker=use_docker, **generate_input_request_base) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result.compilation.status, ExecutorStatus.OK) for subcase in request.iter_subcases(): result = request.result[subcase.id] case.assertIs(result.status, ExecutorStatus.ERROR_WHILE_RUNNING)
def test_fatal(use_docker, solution_fatal): request = ProcessRequest(src=solution_fatal.read_text(), docker=use_docker, **solve_request_base) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.ERROR_WHILE_RUNNING) for subcase in request.iter_subcases(): result = request.result[subcase.id] case.assertIs(result.status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIn('!!!FOOBAR!!!', result.stderr.read_text())
def test_solution_timeout(use_docker, solution_timeout): request = ProcessRequest(src=solution_timeout.read_text(), docker=use_docker, **solve_request_base) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT) case.assertIs(request.result.compilation.status, ExecutorStatus.OK) for subcase in request.iter_subcases(): result = request.result[subcase.id] case.assertIs(result.status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
def test_ok(use_docker, solution_correct): request = ProcessRequest(src=None, docker=use_docker, **generate_output_request_base) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.OK) case.assertIs(request.result.compilation.status, ExecutorStatus.OK) for subcase in request.iter_subcases(): result = request.result[subcase.id] case.assertIs(result.status, ExecutorStatus.OK)
def test_solution_correct(use_docker, solution_correct): request = ProcessRequest(src=None, docker=use_docker, **generate_input_request_base) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.OK) case.assertIs(request.result['case-1.s'].status, ExecutorStatus.IGNORE) case.assertIs(request.result['case-2'].status, ExecutorStatus.OK) case.assertIs(request.result['case-3.0'].status, ExecutorStatus.OK) case.assertIs(request.result['case-3.1'].status, ExecutorStatus.OK) case.assertIs(request.result['case-3.2'].status, ExecutorStatus.OK) case.assertIs(request.result['case-3.3'].status, ExecutorStatus.OK) case.assertIs(request.result['case-3.4'].status, ExecutorStatus.OK)
def test_solution_fatal(use_docker, solution_fatal): request = ProcessRequest( src=None, docker=use_docker, **generate_output_request_base ) request.process() evaluation = request.result.result case.assertIs(evaluation.status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result['case-1.s'].status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result['case-2'].status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result['case-3.0'].status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result['case-3.1'].status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result['case-3.2'].status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result['case-3.3'].status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIs(request.result['case-3.4'].status, ExecutorStatus.ERROR_WHILE_RUNNING) case.assertIn('!!!FOOBAR!!!', request.result['case-3.4'].stderr.read_text())