Beispiel #1
0
 def test_cpp_array_input(self):
     self.test_case_data = [{
         'expected_output': '561',
         'expected_input': '5\n6\n1',
         'weight': 0.0
     }]
     user_answer = dedent("""
     #include<iostream>
     using namespace std;
     int main(void){
     int a[3],i;
     for(i=0;i<3;i++){
     cin>>a[i];}
     for(i=0;i<3;i++){
     cout<<a[i];}
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'partial_grading': False,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEqual(result.get('error'), "Correct answer\n")
     self.assertTrue(result.get('success'))
Beispiel #2
0
 def test_infinite_loop(self):
     user_answer = dedent("""
     #include<stdio.h>
     int main(void){
     while(0==0){
     printf("abc");}
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertEquals(result.get("error"), self.timeout_msg)
Beispiel #3
0
 def test_error(self):
     user_answer = dedent("""
     #include<stdio.h>
     int main(void){
     int a=10;
     printf("%d",a)
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertTrue("Compilation Error" in result.get("error"))
Beispiel #4
0
 def test_cpp_infinite_loop(self):
     user_answer = dedent("""
     #include<iostream>
     using namespace std;
     int main(void){
     while(0==0){
     cout<<"abc";}
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertEquals(result.get("error"), self.timeout_msg)
Beispiel #5
0
 def test_cpp_error(self):
     user_answer = dedent("""
     #include<iostream>
     using namespace std;
     int main(void){
     int a=10;
     cout<<a
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get("success"))
     self.assertTrue("Compilation Error" in result.get("error"))
Beispiel #6
0
 def test_only_stdout(self):
     self.test_case_data = [{'expected_output': '11', 'expected_input': ''}]
     user_answer = dedent("""
     #include<stdio.h>
     int main(void){
     int a=5,b=6;
     printf("%d",a+b);
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEquals(result.get('error'), "Correct Answer")
     self.assertTrue(result.get('success'))
Beispiel #7
0
 def test_incorrect_answer(self):
     user_answer = dedent("""
     #include<stdio.h>
     int main(void){
     int a=10;
     printf("%d",a);
     }""")
     get_class = CppStdioEvaluator()
     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)
Beispiel #8
0
 def test_correct_answer(self):
     user_answer = dedent("""
     #include<stdio.h>
     int main(void){
     int a,b;
     scanf("%d%d",&a,&b);
     printf("%d",a+b);
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEquals(result.get('error'), "Correct Answer")
     self.assertTrue(result.get('success'))
Beispiel #9
0
 def test_cpp_incorrect_answer(self):
     user_answer = dedent("""
     #include<iostream>
     using namespace std;
     int main(void){
     int a=10;
     cout<<a;
     }""")
     get_class = CppStdioEvaluator()
     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)
Beispiel #10
0
 def test_cpp_correct_answer(self):
     user_answer = dedent("""
     #include<iostream>
     using namespace std;
     int main(void){
     int a,b;
     cin>>a>>b;
     cout<<a+b;
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEquals(result.get('error'), "Correct Answer")
     self.assertTrue(result.get('success'))
Beispiel #11
0
 def test_string_input(self):
     self.test_case_data = [{
         'expected_output': 'abc',
         'expected_input': 'abc'
     }]
     user_answer = dedent("""
     #include<stdio.h>
     int main(void){
     char a[4];
     scanf("%s",a);
     printf("%s",a);
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEquals(result.get('error'), "Correct Answer")
     self.assertTrue(result.get('success'))
Beispiel #12
0
 def test_cpp_string_input(self):
     self.test_case_data = [{
         'expected_output': 'abc',
         'expected_input': 'abc'
     }]
     user_answer = dedent("""
     #include<iostream>
     using namespace std;
     int main(void){
     char a[4];
     cin>>a;
     cout<<a;
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEquals(result.get('error'), "Correct Answer")
     self.assertTrue(result.get('success'))
Beispiel #13
0
 def test_cpp_only_stdout(self):
     self.test_case_data = [{
         'expected_output': '11',
         'expected_input': '',
         'weight': 0.0
     }]
     user_answer = dedent("""
     #include<iostream>
     using namespace std;
     int main(void){
     int a=5,b=6;
     cout<<a+b;
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'partial_grading': False,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEqual(result.get('error'), "Correct answer\n")
     self.assertTrue(result.get('success'))
Beispiel #14
0
 def test_array_input(self):
     self.test_case_data = [{
         'expected_output': '561',
         'expected_input': '5\n6\n1'
     }]
     user_answer = dedent("""
     #include<stdio.h>
     int main(void){
     int a[3],i;
     for(i=0;i<3;i++){
     scanf("%d",&a[i]);}
     for(i=0;i<3;i++){
     printf("%d",a[i]);}
     }""")
     get_class = CppStdioEvaluator()
     kwargs = {
         'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertEquals(result.get('error'), "Correct Answer")
     self.assertTrue(result.get('success'))