コード例 #1
0
 def test_compilation_error(self):
     user_answer = "int add(int a, int b)\n{return a+b}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {"user_answer": user_answer, "test_case_data": self.test_case_data, "file_paths": self.file_paths}
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertTrue("Compilation Error" in result.get("error"))
コード例 #2
0
 def test_file_based_assert(self):
     self.file_paths = [('/tmp/test.txt', False)]
     self.test_case_data = [{
         "test_case": "c_cpp_files/file_data.c",
         "weight": 0.0
     }]
     user_answer = dedent("""
         #include<stdio.h>
         char ans()
         {
         FILE *fp;
         char buff[255];
         fp = fopen("test.txt", "r");
         fscanf(fp, "%s", buff);
         fclose(fp);
         return buff[0];
         }
         """)
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {
         'user_answer': user_answer,
         'partial_grading': False,
         'test_case_data': self.test_case_data,
         'file_paths': self.file_paths
     }
     result = get_class.evaluate(**kwargs)
     self.assertTrue(result.get('success'))
     self.assertEqual(result.get('error'), "Correct answer\n")
コード例 #3
0
 def test_infinite_loop(self):
     user_answer = "int add(int a, int b)\n{while(1>0){}}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {"user_answer": user_answer, "test_case_data": self.test_case_data, "file_paths": self.file_paths}
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertEquals(result.get("error"), self.timeout_msg)
コード例 #4
0
 def test_correct_answer(self):
     user_answer = "int add(int a, int b)\n{return a+b;}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {"user_answer": user_answer, "test_case_data": self.test_case_data, "file_paths": self.file_paths}
     result = get_class.evaluate(**kwargs)
     self.assertTrue(result.get("success"))
     self.assertEquals(result.get("error"), "Correct answer")
コード例 #5
0
    def test_infinite_loop(self):
        user_answer = "int add(int a, int b)\n{while(1>0){}}"
        get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
        result = get_class.evaluate()
 
        self.assertFalse(result.get("success"))
        self.assertEquals(result.get("error"), self.timeout_msg)
コード例 #6
0
    def test_compilation_error(self):
        user_answer = "int add(int a, int b)\n{return a+b}"
        get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
        result = get_class.evaluate()

        self.assertFalse(result.get("success"))
        self.assertTrue("Compilation Error" in result.get("error"))
コード例 #7
0
    def test_correct_answer(self):
        user_answer = "int add(int a, int b)\n{return a+b;}"
        get_class = CppCodeEvaluator(self.test_case_data, self.test, self.language, user_answer, self.ref_code_path, self.in_dir)
        result = get_class.evaluate()

        self.assertTrue(result.get("success"))
        self.assertEqual(result.get("error"), "Correct answer")
コード例 #8
0
 def test_incorrect_answer(self):
     user_answer = "int add(int a, int b)\n{return a-b;}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {"user_answer": user_answer, "test_case_data": self.test_case_data, "file_paths": self.file_paths}
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertIn("Incorrect:", result.get("error"))
     self.assertTrue(result.get("error").splitlines > 1)
コード例 #9
0
 def test_correct_answer(self):
     user_answer = "int add(int a, int b)\n{return a+b;}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {'user_answer': user_answer, 
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertTrue(result.get('success'))
     self.assertEquals(result.get('error'), "Correct answer")
コード例 #10
0
 def test_incorrect_answer(self):
     user_answer = "int add(int a, int b)\n{return a-b;}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {'user_answer': user_answer,
                 'test_case_data': self.test_case_data
             }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get('success'))
     self.assertIn("Incorrect:", result.get('error'))
     self.assertTrue(result.get('error').splitlines > 1)
コード例 #11
0
 def test_infinite_loop(self):
     user_answer = "int add(int a, int b)\n{while(1>0){}}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data,
         'file_paths': self.file_paths
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertEquals(result.get("error"), self.timeout_msg)
コード例 #12
0
 def test_compilation_error(self):
     user_answer = "int add(int a, int b)\n{return a+b}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data,
         'file_paths': self.file_paths
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertTrue("Compilation Error" in result.get("error"))
コード例 #13
0
 def test_correct_answer(self):
     user_answer = "int add(int a, int b)\n{return a+b;}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data,
         'file_paths': self.file_paths
     }
     result = get_class.evaluate(**kwargs)
     self.assertTrue(result.get('success'))
     self.assertEquals(result.get('error'), "Correct answer")
コード例 #14
0
 def test_incorrect_answer(self):
     user_answer = "int add(int a, int b)\n{return a-b;}"
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data,
         'file_paths': self.file_paths
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get('success'))
     self.assertIn("Incorrect:", result.get('error'))
     self.assertTrue(result.get('error').splitlines > 1)
コード例 #15
0
 def test_file_based_assert(self):
     self.file_paths = [(os.getcwd() + "/yaksh/test.txt", False)]
     self.test_case_data = [{"test_case": "c_cpp_files/file_data.c"}]
     user_answer = dedent(
         """
         #include<stdio.h>
         char ans()
         {
         FILE *fp;
         char buff[255];
         fp = fopen("test.txt", "r");
         fscanf(fp, "%s", buff);
         fclose(fp);
         return buff[0];
         }
         """
     )
     get_class = CppCodeEvaluator(self.in_dir)
     kwargs = {"user_answer": user_answer, "test_case_data": self.test_case_data, "file_paths": self.file_paths}
     result = get_class.evaluate(**kwargs)
     self.assertTrue(result.get("success"))
     self.assertEquals(result.get("error"), "Correct answer")