Description:
fixed test run scoring bug: now it takes the minimum of each test case's score
git-svn-id: http://theory.cpe.ku.ac.th/grader/judge/trunk/scripts@273 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r66:c03ebf30fb10 - - 4 files changed: 19 inserted, 18 deleted
@@ -27,8 +27,10 | |||||
|
27 | # The program would see this file only if it is copied |
|
27 | # The program would see this file only if it is copied |
|
28 | # to the sandbox directory later. The run script should do it. |
|
28 | # to the sandbox directory later. The run script should do it. |
|
29 | # |
|
29 | # |
|
30 |
- |
|
30 | + if FileTest.exists?("#{test_request.input_file_name}.files") |
|
31 | - system(cmd) |
|
31 | + cmd = "cp #{test_request.input_file_name}.files/* #{grading_room}" |
|
|
32 | + system(cmd) | ||
|
|
33 | + end | ||
|
32 |
|
34 | ||
|
33 | grading_room |
|
35 | grading_room |
|
34 | end |
|
36 | end |
@@ -46,7 +46,7 | |||||
|
46 | (1..(problem.runs.length-1)).each do |k| |
|
46 | (1..(problem.runs.length-1)).each do |k| |
|
47 | log "grade run #{k}" |
|
47 | log "grade run #{k}" |
|
48 | run = problem.runs[k] |
|
48 | run = problem.runs[k] |
|
49 |
- run_score = |
|
49 | + run_score = nil |
|
50 | run_comment = '' |
|
50 | run_comment = '' |
|
51 | run_comment_short = '' |
|
51 | run_comment_short = '' |
|
52 | run.tests.each do |test_num| |
|
52 | run.tests.each do |test_num| |
@@ -59,27 +59,25 | |||||
|
59 | result_file = File.new(result_file_name, "r") |
|
59 | result_file = File.new(result_file_name, "r") |
|
60 | result_file_lines = result_file.readlines |
|
60 | result_file_lines = result_file.readlines |
|
61 | if result_file_lines.length>=2 |
|
61 | if result_file_lines.length>=2 |
|
62 |
- |
|
62 | + current_run_score = result_file_lines[1].to_i |
|
63 | run_comment += result_file_lines[0] |
|
63 | run_comment += result_file_lines[0] |
|
64 | run_comment_short += char_comment(result_file_lines[0].chomp) |
|
64 | run_comment_short += char_comment(result_file_lines[0].chomp) |
|
65 | else |
|
65 | else |
|
|
66 | + current_run_score = 0 | ||
|
66 | run_comment += "result file for test #{test_num} error\n" |
|
67 | run_comment += "result file for test #{test_num} error\n" |
|
67 | run_comment_short += RUN_ERROR_MARK |
|
68 | run_comment_short += RUN_ERROR_MARK |
|
68 | log "Error in #{test_num}/result!" |
|
69 | log "Error in #{test_num}/result!" |
|
69 | end |
|
70 | end |
|
|
71 | + | ||
|
|
72 | + # the score of this run should be the minimum of the score for | ||
|
|
73 | + # each test case | ||
|
|
74 | + if (run_score==nil) or (run_score>current_run_score) | ||
|
|
75 | + run_score = current_run_score | ||
|
|
76 | + end | ||
|
70 | result_file.close |
|
77 | result_file.close |
|
71 | end |
|
78 | end |
|
72 | end |
|
79 | end |
|
73 |
|
80 | ||
|
74 | - # find total score for this run |
|
||
|
75 | - run_total_score = 0 |
|
||
|
76 | - problem = Problem.get_instance |
|
||
|
77 | - run.tests.each { |test_num| run_total_score += problem.get_score(test_num) } |
|
||
|
78 | - |
|
||
|
79 | - if run_total_score!=run_score # fail in some test cases, fail the run |
|
||
|
80 | - run_score = 0 |
|
||
|
81 | - end |
|
||
|
82 | - |
|
||
|
83 | run_result_file = File.new("result-#{k}", "w") |
|
81 | run_result_file = File.new("result-#{k}", "w") |
|
84 | run_result_file.write run_score |
|
82 | run_result_file.write run_score |
|
85 | run_result_file.write "\n" |
|
83 | run_result_file.write "\n" |
@@ -13,7 +13,7 | |||||
|
13 | <% if testrun.length==1 %> |
|
13 | <% if testrun.length==1 %> |
|
14 | scores 10 |
|
14 | scores 10 |
|
15 | <% else %> |
|
15 | <% else %> |
|
16 | - scores 10 <% (testrun.length-1).times do %>,0 <% end %> |
|
16 | + scores 10 <% (testrun.length-1).times do %>,10 <% end %> |
|
17 | <% end %> |
|
17 | <% end %> |
|
18 | end |
|
18 | end |
|
19 | <% end %> |
|
19 | <% end %> |
@@ -7,14 +7,14 | |||||
|
7 |
|
7 | ||
|
8 | run 1 do |
|
8 | run 1 do |
|
9 | tests 1, 2 |
|
9 | tests 1, 2 |
|
10 |
- scores |
|
10 | + scores 30, 30 |
|
11 | time_limits 1, 2 |
|
11 | time_limits 1, 2 |
|
12 | mem_limits 5, 6 |
|
12 | mem_limits 5, 6 |
|
13 | end |
|
13 | end |
|
14 |
|
14 | ||
|
15 | run 2 do |
|
15 | run 2 do |
|
16 | tests 3, 4, 5, 6, 7 |
|
16 | tests 3, 4, 5, 6, 7 |
|
17 |
- score_each |
|
17 | + score_each 50 |
|
18 | time_limit_each 3 |
|
18 | time_limit_each 3 |
|
19 | mem_limit_each 3 |
|
19 | mem_limit_each 3 |
|
20 | end |
|
20 | end |
@@ -24,16 +24,17 | |||||
|
24 | end |
|
24 | end |
|
25 |
|
25 | ||
|
26 | test 8 do |
|
26 | test 8 do |
|
27 |
- score |
|
27 | + score 55 |
|
28 | time_limit 3 |
|
28 | time_limit 3 |
|
29 | mem_limit 10 |
|
29 | mem_limit 10 |
|
30 | end |
|
30 | end |
|
31 |
|
31 | ||
|
32 | test 9 do |
|
32 | test 9 do |
|
33 |
- score |
|
33 | + score 55 |
|
34 | end |
|
34 | end |
|
35 |
|
35 | ||
|
36 | test 10 do |
|
36 | test 10 do |
|
|
37 | + score 55 | ||
|
37 | time_limit 1 |
|
38 | time_limit 1 |
|
38 | end |
|
39 | end |
|
39 | end |
|
40 | end |
You need to be logged in to leave comments.
Login now