Description:
fix test run scoring bug git-svn-id: http://theory.cpe.ku.ac.th/grader/judge/trunk/scripts@126 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r32:f9158ac7d119 - - 3 files changed: 35 inserted, 0 deleted

@@ -0,0 +1,13
1 + #include <stdio.h>
2 +
3 + int main()
4 + {
5 + int a,b;
6 + scanf("%d %d",&a,&b);
7 + if((a==1) && (b==1))
8 + printf("100\n");
9 + else
10 + printf("%d\n",a+b);
11 + return 0;
12 + }
13 +
@@ -59,23 +59,37
59 run_score = run_score + result_file_lines[1].to_i
59 run_score = run_score + result_file_lines[1].to_i
60 run_comment += result_file_lines[0]
60 run_comment += result_file_lines[0]
61 run_comment_short += char_comment(result_file_lines[0])
61 run_comment_short += char_comment(result_file_lines[0])
62 result_file.close
62 result_file.close
63 end
63 end
64 end
64 end
65 +
66 + # find total score for this run
67 + run_total_score = 0
68 + problem = Problem.get_instance
69 + run.tests.each { |test_num| run_total_score += problem.get_score(test_num) }
70 +
71 + if run_total_score!=run_score # fail in some test cases, fail the run
72 + run_score = 0
73 + end
65
74
66 run_result_file = File.new("result-#{k}", "w")
75 run_result_file = File.new("result-#{k}", "w")
67 run_result_file.write run_score
76 run_result_file.write run_score
68 run_result_file.write "\n"
77 run_result_file.write "\n"
69 run_result_file.close
78 run_result_file.close
70
79
71 run_comment_file = File.new("comment-#{k}", "w")
80 run_comment_file = File.new("comment-#{k}", "w")
72 run_comment_file.write "#{run_comment}\n"
81 run_comment_file.write "#{run_comment}\n"
73 run_comment_file.close
82 run_comment_file.close
74
83
75 all_score = all_score + run_score
84 all_score = all_score + run_score
85 +
86 + # append comment for test run with many test cases
87 + if run.tests.length > 1
88 + run_comment_short = '[' + run_comment_short + ']'
89 + end
76 all_comment += run_comment_short
90 all_comment += run_comment_short
77 end
91 end
78
92
79 result_file = File.new("result", "w")
93 result_file = File.new("result", "w")
80 result_file.write all_score
94 result_file.write all_score
81 result_file.write "\n"
95 result_file.write "\n"
@@ -78,12 +78,20
78 :on => @problem_test_memory,
78 :on => @problem_test_memory,
79 :and_report => {
79 :and_report => {
80 :score => 10,
80 :score => 10,
81 :comment => /FAILED: [^P]P/})
81 :comment => /FAILED: [^P]P/})
82 end
82 end
83
83
84 + it "should score test runs correctly when submission fails in some test case" do
85 + grader_should(:grade => "add_fail_test_case_1.c",
86 + :on => @problem_test_normal,
87 + :and_report => {
88 + :score => 105,
89 + :comment => /^FAILED:/})
90 + end
91 +
84 it "should fail submission with non-zero exit status" do
92 it "should fail submission with non-zero exit status" do
85 violated("has not been implemented")
93 violated("has not been implemented")
86 end
94 end
87
95
88 def grader_should(args)
96 def grader_should(args)
89 @user1 = stub(User,
97 @user1 = stub(User,
You need to be logged in to leave comments. Login now