def test_TLE(self): tle_code = """ #include<stdio.h> int main() { int a, b; scanf("%d%d",&a,&b); while(1) {a+=b;} printf("%d",a+b); return 0; } """ submitted_executor = get_executor(self.submission_lang, tle_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 1111, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result["verdict"], VerdictResult.TLE, msg=result['desc'])
def test_TLE(self): tle_code = """ import java.util.Scanner; import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(),b=sc.nextInt(); ArrayList<Integer> arr = new ArrayList<Integer>(); int t = 20000000; for (int i = 0; i < t; ++i) { arr.add(1); arr.remove(arr.size() - 1); } System.out.println(a+b); } } """ submitted_executor = get_executor(self.submission_lang, tle_code, f'{self.submission_dir}/submitted') result = do_judge({ "submit_id": 1, "problem_id": 1, "time_limit": 100, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.TLE, msg=result['desc'])
def test_MLE(self): mle_code = """ #include <stdio.h> int f**k[3500000]; int dick[3500000]; int main() { int a, b; scanf("%d%d",&a,&b); for(int i = 0;i < 3500000;i++) { f**k[i] = i; dick[i] = i;} printf("%d",f**k[1]+dick[1]); return 0; } """ submitted_executor = get_executor(self.submission_lang, mle_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 10011, "memory_limit": 28072, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result["verdict"], VerdictResult.MLE, msg=f"{result}\n{result['desc']}")
def test_OLE(self): ole_code = f""" #include <stdio.h> int main() {{ int a, b; scanf("%d%d",&a,&b); for(int i = 0;i < 729145;i++) printf("%s","{'A' * 100}"); return 0; }} """ submitted_executor = get_executor(self.submission_lang, ole_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 22222, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result["verdict"], VerdictResult.OLE, msg=result['desc'])
def test_MLE(self): mle_code = """ #include <iostream> int f**k[3000000]; int dick[3000000]; using namespace std; int main() { int a, b; cin >> a >> b; for(int i = 0;i < 3000000;i++) { f**k[i] = i; dick[i] = i;} cout << a + b << endl; return 0; } """ submitted_executor = get_executor(self.submission_lang, mle_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 10011, "memory_limit": 26072, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result["verdict"], VerdictResult.MLE, msg=result['desc'])
def test_TLE(self): tle_code = """ #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; while(true){ a += b; } cout << a + b << endl; return 0; } """ submitted_executor = get_executor(self.submission_lang, tle_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 1111, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result["verdict"], VerdictResult.TLE, msg=result['desc'])
def test_WA(self): wa_code = """ #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b + 2 << endl; return 0; } """ submitted_executor = get_executor("GXX", wa_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 1000, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.WA, msg=result['desc'])
def test_SJ(self): sj_code = """ #include "testlib.h" #include <stdio.h> int main(int argc, char * argv[]) { setName("compare two signed int%d's", 8 * int(sizeof(int))); registerTestlibCmd(argc, argv); int ja = ans.readInt(); int pa = ouf.readInt(); if (ja != pa) quitf(_wa, "expected %d, found %d", ja, pa); quitf(_ok, "answer is %d", ja); } """ ac_code = """ #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b<< endl; return 0; } """ sj_name = 'test_checker' log_file_path = f'{conf.LOG_DIR}/sj_{sj_name}.log' result = create_special_judge(sj_code, sj_name, log_file_path) self.assertEqual(result['result'], VerdictResult.AC, msg=result['desc']) submitted_executor = get_executor("GXX", ac_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 1000, "memory_limit": 262144, "checker_type": sj_name, }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.AC, msg=result['desc'])
def test_AC(self): ac_code = """ a = input().split() print(int(a[0]) + int(a[1])) """ submitted_executor = get_executor(self.submission_lang, ac_code, f'{self.submission_dir}/submitted') result = do_judge({ "submit_id": 1, "problem_id": 1, "time_limit": 1000, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.AC, msg=result['desc'])
def test_OLE(self): ole_code = f""" a = input().split() for i in range(0, 729145): print("{'A' * 100}") """ submitted_executor = get_executor(self.submission_lang, ole_code, f'{self.submission_dir}/submitted') result = do_judge({ "submit_id": 1, "problem_id": 1, "time_limit": 22222, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.OLE, msg=result['desc'])
def test_WA(self): wa_code = """ import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(),b=sc.nextInt(); System.out.println(a+b+1); } } """ submitted_executor = get_executor(self.submission_lang, wa_code, f'{self.submission_dir}/submitted') result = do_judge({ "submit_id": 1, "problem_id": 1, "time_limit": 5000, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.WA, msg=result['desc'])
def test_OLE(self): ole_code = f""" import java.util.Scanner; public class Solution {{ public static void main(String[] args) {{ Scanner sc=new Scanner(System.in); int a=sc.nextInt(),b=sc.nextInt(); int t = 729145; for (int i = 0; i < t; ++i) {{ System.out.println("{'A' * 100}"); }} }} }} """ submitted_executor = get_executor(self.submission_lang, ole_code, f'{self.submission_dir}/submitted') result = do_judge({ "submit_id": 1, "problem_id": 1, "time_limit": 22222, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.OLE, msg=result['desc'])
def test_WA(self): wa_code = """ #include<stdio.h> int main() { int a, b; scanf("%d%d",&a,&b); printf("%d",a+b+1); return 0; } """ submitted_executor = get_executor(self.submission_lang, wa_code, f'{self.submission_dir}/submitted') result = do_judge( { "submit_id": 1, "problem_id": 1, "time_limit": 1000, "memory_limit": 262144, "checker_type": "icmp", }, self.submission_dir, submitted_executor) self.assertEqual(result['verdict'], VerdictResult.WA, msg=result['desc'])