def get_verdicts(self, lang, source_code, tests): with self.lock: compile_error = self._prepare(lang, source_code) if compile_error != None: return 'CE', compile_error verdicts = dict() for test in tests: verdicts[test] = self._get_verdict(lang, read_file(test + '.in'), read_file(test + '.out')) return verdicts
def _get_output_and_verdict(self, lang, test_path): test_input = read_file(test_path + '.in') write_file(box_path() + '/in', test_input) output, error = lang.run() meta = parse_meta(read_file('meta')) if 'status' in meta: return meta['status'], error, test_input test_output = read_file(test_path + '.out') v = 'OK' if output == test_output else 'WA' return v, output, test_input
def _get_output(self, lang, test_input): write_file(box_path() + '/in', test_input) output, error = lang.run() meta = parse_meta(read_file('meta')) if 'status' in meta: return meta['status'], error, test_input return 'OK', output, test_input
def test_java_wa(self): self.assertTrue( self._all(LANGS['java'], read_file(f'{TEST_DIR}/sols/wa.java'), self.all_tests, 'WA'))
def test_javascript_to(self): self.assertTrue( self._all(LANGS['javascript'], read_file(f'{TEST_DIR}/sols/to.js'), self.all_tests, 'TO'))
def test_python_to(self): self.assertTrue( self._all(LANGS['python'], read_file(f'{TEST_DIR}/sols/to.py'), self.all_tests, 'TO'))
def test_java_re(self): self.assertTrue( self._all(LANGS['java'], read_file(f'{TEST_DIR}/sols/re.java'), self.all_tests, 'RE'))
def test_python_ok(self): self.assertTrue( self._all(LANGS['python'], read_file(f'{TEST_DIR}/sols/ok.py'), self.all_tests, 'OK'))
def test_java_ok(self): self.assertTrue( self._all(LANGS['java'], read_file(f'{TEST_DIR}/sols/ok.java'), self.all_tests, 'OK'))
def test_javascript_ce(self): self.assertTrue( self._ce(LANGS['javascript'], read_file(f'{TEST_DIR}/sols/ce.js')))
def test_python_ce(self): self.assertTrue( self._ce(LANGS['python'], read_file(f'{TEST_DIR}/sols/ce.py')))
def test_lodash(self): self.assertTrue( self._all(LANGS['javascript'], read_file(f'{TEST_DIR}/sols/lodash.js'), self.all_tests, 'WA'))
def test_forkbomb(self): self.assertTrue( self._all(LANGS['python'], read_file(f'{TEST_DIR}/sols/forkbomb.py'), self.all_tests, 'RE'))
def test_apache_commons(self): self.assertTrue( self._all(LANGS['java'], read_file(f'{TEST_DIR}/sols/apache_commons.java'), self.all_tests, 'WA'))
def test_python_wa(self): self.assertTrue( self._all(LANGS['python'], read_file(f'{TEST_DIR}/sols/wa.py'), self.all_tests, 'WA'))