예제 #1
0
class JudgeServerTest(unittest.TestCase):
    def setUp(self):
        self.token = "YOUR_TOKEN_HERE"
        self.server_base_url = "http://127.0.0.1:12358"
        self.client = JudgeServerClient(token=self.token, server_base_url=self.server_base_url)

    def test_success(self):
        data = self.client.ping()
        self.assertEqual(data["err"], None)
        self.assertEqual(data["data"]["action"], "pong")

    def test_invalid_token(self):
        client = JudgeServerClient(token="wrong token", server_base_url=self.server_base_url)
        data = client.ping()
        self.assertEqual(data["err"], "TokenVerificationFailed")

    def test_no_token_header(self):
        client = JudgeServerClientForTokenHeaderTest(token="wrong token", server_base_url=self.server_base_url)
        data = client.ping()
        self.assertEqual(data["err"], "TokenVerificationFailed")
예제 #2
0
    def setUp(self):
        self.token = "YOUR_TOKEN_HERE"
        self.server_base_url = "http://127.0.0.1:12358"
        self.client = JudgeServerClient(token=self.token,
                                        server_base_url=self.server_base_url)
        self.c_src = r"""
            #include <stdio.h>
            int main(){
                int a, b;
                scanf("%d%d", &a, &b);
                printf("%d\n", a+b);
                return 0;
            }
            """

        self.c_spj_src = r"""
            #include <stdio.h>
            int main(){
                /* 
                    AC return 0
                    WA return 1
                    Other Error return -1
                */
                return 0;
            }
            """

        self.cpp_src = r"""
            #include <iostream>

            using namespace std;

            int main()
            {
                int a,b;
                cin >> a >> b;
                cout << a+b << endl;
                return 0;
            }
            """

        self.java_src = r"""
            import java.util.Scanner;
            public class Main{
                public static void main(String[] args){
                    Scanner in=new Scanner(System.in);
                    int a=in.nextInt();
                    int b=in.nextInt();
                    System.out.println(a + b);
                }
            }
            """

        self.py2_src = """s = raw_input()
s1 = s.split(" ")
print int(s1[0]) + int(s1[1])"""

        self.py3_src = """s = input()
s1 = s.split(" ")
print(int(s1[0]) + int(s1[1]))"""

        self.c_src_re = r"""
예제 #3
0
class JudgeServerTest(unittest.TestCase):
    def setUp(self):
        self.token = "YOUR_TOKEN_HERE"
        self.server_base_url = "http://127.0.0.1:12358"
        self.client = JudgeServerClient(token=self.token,
                                        server_base_url=self.server_base_url)
        self.c_src = r"""
            #include <stdio.h>
            int main(){
                int a, b;
                scanf("%d%d", &a, &b);
                printf("%d\n", a+b);
                return 0;
            }
            """

        self.c_spj_src = r"""
            #include <stdio.h>
            int main(){
                /* 
                    AC return 0
                    WA return 1
                    Other Error return -1
                */
                return 0;
            }
            """

        self.cpp_src = r"""
            #include <iostream>

            using namespace std;

            int main()
            {
                int a,b;
                cin >> a >> b;
                cout << a+b << endl;
                return 0;
            }
            """

        self.java_src = r"""
            import java.util.Scanner;
            public class Main{
                public static void main(String[] args){
                    Scanner in=new Scanner(System.in);
                    int a=in.nextInt();
                    int b=in.nextInt();
                    System.out.println(a + b);
                }
            }
            """

        self.py2_src = """s = raw_input()
s1 = s.split(" ")
print int(s1[0]) + int(s1[1])"""

        self.py3_src = """s = input()
s1 = s.split(" ")
print(int(s1[0]) + int(s1[1]))"""

        self.c_src_re = r"""
        #include <stdio.h>
        int main(){
            int a[2];
            scanf("%d%d", &a[0], &a[1]);
            a[2] = a[1] + a[0];
            printf("%d\n", a[2]);
            return 0;
        }
        """

    def test_success(self):
        data = self.client.ping()
        self.assertEqual(data["err"], None)
        self.assertEqual(data["data"]["action"], "pong")

    def test_invalid_token(self):
        client = JudgeServerClient(token="wrong token",
                                   server_base_url=self.server_base_url)
        data = client.ping()
        self.assertEqual(data["err"], "TokenVerificationFailed")

    def test_no_token_header(self):
        client = JudgeServerClientForTokenHeaderTest(
            token="wrong token", server_base_url=self.server_base_url)
        data = client.ping()
        self.assertEqual(data["err"], "TokenVerificationFailed")

    def test_spj_compile(self):
        data = self.client.compile_spj(
            src=self.c_spj_src,
            spj_version="2",
            spj_compile_config=special_judge_config['compile'])
        self.assertEqual(data['data'], 'success')

    def test_c_judge_ac(self):
        data = self.client.judge(src=self.c_src,
                                 language="c",
                                 max_cpu_time=1000,
                                 max_memory=1024 * 1024 * 64,
                                 test_case_id="normal",
                                 output=True)
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][0]['result'], 0)

    def test_cpp_judge_ac(self):
        data = self.client.judge(src=self.cpp_src,
                                 language="cpp",
                                 max_cpu_time=1000,
                                 max_memory=1024 * 1024 * 64,
                                 test_case_id="normal")
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][0]['result'], 0)

    def test_java_judge_ac(self):
        data = self.client.judge(src=self.java_src,
                                 language="java",
                                 max_cpu_time=2000,
                                 max_memory=1024 * 1024 * 128,
                                 test_case_id="normal")
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][0]['result'], 0)

    def test_py2_judge_ac(self):
        data = self.client.judge(src=self.py2_src,
                                 language="py2",
                                 max_cpu_time=2000,
                                 max_memory=1024 * 1024 * 128,
                                 test_case_id="normal")
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][0]['result'], 0)

    def test_py3_judge_ac(self):
        data = self.client.judge(src=self.py3_src,
                                 language="py3",
                                 max_cpu_time=2000,
                                 max_memory=1024 * 1024 * 128,
                                 test_case_id="normal")
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][0]['result'], 0)

    def test_c_spj_judge_ac(self):
        data = self.client.judge(src=self.c_src,
                                 language="c",
                                 max_cpu_time=1000,
                                 max_memory=1024 * 1024 * 64,
                                 test_case_id="spj",
                                 is_spj=True,
                                 spj_version="1",
                                 spj_src=self.c_spj_src)
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][0]['result'], 0)

    def test_c_dynamic_input_judge(self):
        data = self.client.judge(src=self.c_src,
                                 language="c",
                                 max_cpu_time=1000,
                                 max_memory=1024 * 1024 * 64,
                                 test_case=[{
                                     "input": "1 2\n",
                                     "output": "3"
                                 }, {
                                     "input": "1 4\n",
                                     "output": "3"
                                 }],
                                 output=True)
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][1]['error'], 0)
        if data['data'][0]['test_case'] == '2':
            self.assertEqual(data['data'][0]['result'], -1)
            self.assertEqual(data['data'][1]['result'], 0)
        else:
            self.assertEqual(data['data'][0]['result'], 0)
            self.assertEqual(data['data'][1]['result'], -1)

    def test_c_judge_re(self):
        data = self.client.judge(src=self.c_src_re,
                                 language="c",
                                 max_cpu_time=1000,
                                 max_memory=1024 * 1024 * 64,
                                 test_case_id="normal",
                                 output=True)
        self.assertEqual(data['err'], None)
        self.assertEqual(data['data'][0]['error'], 0)
        self.assertEqual(data['data'][0]['result'], 4)
예제 #4
0
 def test_invalid_token(self):
     client = JudgeServerClient(token="wrong token",
                                server_base_url=self.server_base_url)
     data = client.ping()
     self.assertEqual(data["err"], "TokenVerificationFailed")
예제 #5
0
파일: tests.py 프로젝트: lugt/JudgeServer
 def setUp(self):
     self.token = "db566c771e8ca6eb9196a08b16d656c1"
     self.server_base_url = "http://127.0.0.1:8090"
     self.client = JudgeServerClient(token=self.token,
                                     server_base_url=self.server_base_url)
예제 #6
0
 def setUp(self):
     self.token = "YOUR_TOKEN_HERE"
     self.server_base_url = "http://127.0.0.1:12358"
     self.client = JudgeServerClient(token=self.token, server_base_url=self.server_base_url)