Show More
Commit Description:
handle the case when problem id or submission id is null. Grader will simply skip such request. Add more report on console (for command line grading)...
Commit Description:
handle the case when problem id or submission id is null. Grader will simply skip such request. Add more report on console (for command line grading) (mercurial grafted from d233105d3965c5368c9b33125f390e39b25f910e)
File last commit:
Show/Diff file:
Action:
std-script/check | 84 lines | 1.7 KiB | text/plain | TextLexer |
change hashbang to /usr/bin/env ruby
r146 #!/usr/bin/env ruby
jittat
import original files...
r0
problem_home = ENV['PROBLEM_HOME']
require "#{problem_home}/script/test_dsl.rb"
if ARGV.length < 2
puts "Usage: check <language> <test-number> [<output-file>]"
exit(0)
end
language = ARGV[0]
test_num = ARGV[1].to_i
if ARGV.length >= 3
output_file_name = ARGV[2]
else
output_file_name = "output.txt"
end
load "#{problem_home}/test_cases/all_tests.cfg"
problem = Problem.get_instance
output_file = File.new(output_file_name, "r")
answer_file = File.new("#{problem_home}/test_cases/#{test_num}/answer-#{test_num}.txt")
result_file = File.new("check_result", "w")
output_file_content = output_file.read
answer_file_content = answer_file.read
report_correct = lambda {
result_file.write "Correct\n"
result_file.write problem.get_score(test_num)
result_file.write "\n"
result_file.close
exit(0)
}
report_wrong = lambda {
result_file.write "Incorrect\n"
result_file.write "0\n"
result_file.close
exit(0)
}
##################
# Your code here #
##################
jittat
add warning for check...
r9
puts "YOU HAVE TO EDIT THE CHECKING CODE HERE: #{__FILE__}"
exit(127)
jittat
git-svn-id: http://theory.cpe.ku.ac.th/grader/cli/trunk/scripts@23 6386c4cd-e34a-4fa8-8920-d93eb39b512e
r10 # below are codes for checking integer and text
########### THIS IS FOR CHECKING INTEGER ##########
jittat
import original files...
r0 num_pattern = /^[0-9]*/
if (output_file_content =~ num_pattern) == nil
report_wrong.call
end
output_i = output_file_content.to_i
answer_i = answer_file_content.to_i
if output_i == answer_i
report_correct.call
else
report_wrong.call
end
jittat
git-svn-id: http://theory.cpe.ku.ac.th/grader/cli/trunk/scripts@23 6386c4cd-e34a-4fa8-8920-d93eb39b512e
r10
########### THIS IS FOR CHECKING TEXT ##########
# check visible text
out_items = output_file_content.split
ans_items = answer_file_content.split
if out_items.length != ans_items.length
report_wrong.call
else
out_items.length.times do |i|
if out_items[i]!=ans_items[i]
report_wrong.call
end
end
report_correct.call
end