Esempio n. 1
0
    def test_get_problem_output(self):

        problem = Problem(desc="For test",
                          input_desc="For test",
                          output_desc="Fore test",
                          pid="ITP1_6_B",
                          objective=1)
        problem.save()

        problem_input = ProblemInput(problem=problem, content=["1", "2", "3"])
        problem_input.save()

        problem_output = ProblemOutput(problem_input=problem_input,
                                       content=["1", "2", "3"])
        problem_output.save()

        problem_input_id = problem.to_dict()['id']

        response = self.client.get(f"/api/problem/{problem_input_id}/output/")
        self.assertEqual(response.status_code, 200)

        response = self.client.post("/api/problem/1/output/", {})
        self.assertEqual(response.status_code, 405)
Esempio n. 2
0
    def test_other_solutions(self):
        client = Client()

        user = User.objects.create_user(username="******",
                                        password="******",
                                        email="*****@*****.**",
                                        salt="123",
                                        role=1)
        user_id = User.objects.filter(email="*****@*****.**").first().id

        client.login(username="******", password="******")

        problem1 = Problem(desc="For test",
                           input_desc="For test",
                           output_desc="Fore test",
                           pid="ITP1_6_B",
                           objective=1)
        problem1.save()
        problem1_id = problem1.to_dict()['id']

        problem2 = Problem(desc="For test",
                           input_desc="For test",
                           output_desc="Fore test",
                           pid="ALDS1_4_B",
                           objective=3)

        problem2.save()
        problem2_id = problem2.to_dict()['id']

        problem3 = Problem(desc="For test",
                           input_desc="For test",
                           output_desc="Fore test",
                           pid="ITP1_7_B",
                           objective=1)

        problem3.save()
        problem3_id = problem3.to_dict()['id']

        solution1_body = {
            "erase_cnt":
            12,
            "elapsed_time":
            30,
            "evaluation":
            66.0,
            "code":
            "n=int(input())\na=[[0 for i in range(13)]for j in range(4)]\nfor k in range(n):\ncard=input().split()\np=5\nif (card[0]=='S'):\np=0\nelif (card[0]=='H':\np=1\nelif (card[0]=='C'):\np=2\nelse:\np=3\nq=int(card[1])-1\na[p][q]=1\nfor i in range(4):\nfor j in range(13):\nif a[i][j]==0:\ntype=''\nif i==0 :\ntype='S'\nelif i==1:\ntype='H'\nelif i==2:\ntype='C'\nelse:\ntype='D'\nprint('{0} {1}'.format(type,j+1))",
        }

        response = client.post(
            f"/api/problem/{problem1_id}/solution/",
            json.dumps(solution1_body),
            content_type="application/json",
        )

        self.assertEqual(response.status_code, 201)

        solution2_body = {
            "erase_cnt":
            12,
            "elapsed_time":
            30,
            "evaluation":
            66.0,
            "code":
            "n=int(input())\na=[[0 for i in range(13)]for j in range(4)]\nfor k in range(n):\ncard=input().split()\np=5\nif (card[0]=='S'):\np=0\nelif (card[0]=='H':\np=1\nelif (card[0]=='C'):\np=2\nelse:\np=3\nq=int(card[1])-1\na[p][q]=1\nfor i in range(4):\nfor j in range(13):\nif a[i][j]==0:\ntype=''\nif i==0 :\ntype='S'\nelif i==1:\ntype='H'\nelif i==2:\ntype='C'\nelse:\ntype='D'\nprint('{0} {1}'.format(type,j+1))",
        }

        response = client.post(
            f"/api/problem/{problem2_id}/solution/",
            json.dumps(solution2_body),
            content_type="application/json",
        )

        self.assertEqual(response.status_code, 201)

        solution3_body = {
            "erase_cnt":
            12,
            "elapsed_time":
            30,
            "evaluation":
            66.0,
            "code":
            "n=int(input())\na=[[0 for i in range(13)]for j in range(4)]\nfor k in range(n):\ncard=input().split()\np=5\nif (card[0]=='S'):\np=0\nelif (card[0]=='H':\np=1\nelif (card[0]=='C'):\np=2\nelse:\np=3\nq=int(card[1])-1\na[p][q]=1\nfor i in range(4):\nfor j in range(13):\nif a[i][j]==0:\ntype=''\nif i==0 :\ntype='S'\nelif i==1:\ntype='H'\nelif i==2:\ntype='C'\nelse:\ntype='D'\nprint('{0} {1}'.format(type,j+1))",
        }

        response = client.post(
            f"/api/problem/{problem3_id}/solution/",
            json.dumps(solution3_body),
            content_type="application/json",
        )

        self.assertEqual(response.status_code, 201)

        response = client.post("/api/analysis/my/report/")

        self.assertEqual(response.status_code, 204)

        User.objects.create_user(username="******",
                                 password="******",
                                 email="*****@*****.**",
                                 salt="123",
                                 role=1)

        client = Client()

        client.login(username="******", password="******")

        response = client.get(f"/api/analysis/other/{user_id}/solutions/")

        self.assertEqual(response.status_code, 200)