#!/usr/bin/ruby def char_comment(comment) if comment =~ /[iI]ncorrect/ '-' elsif comment =~ /[Cc]orrect/ 'P' elsif comment =~ /[Tt]ime/ 'T' else '?' end end problem_home = ENV['PROBLEM_HOME'] require "#{problem_home}/script/test_dsl.rb" load "#{problem_home}/test_cases/all_tests.cfg" problem = Problem.get_instance if problem.well_formed? == false puts "The problem specification is not well formed." exit(127) end all_score = 0 all_comment = '' (1..(problem.runs.length-1)).each do |k| run = problem.runs[k] run_score = 0 run_comment = '' run_comment_short = '' run.tests.each do |test_num| result_file_name = "#{test_num}/result" if not File.exists?(result_file_name) puts "Cannot find the file #{test_num}/result!" exit(127) end result_file = File.new(result_file_name, "r") result_file_lines = result_file.readlines run_score = run_score + result_file_lines[1].to_i run_comment += result_file_lines[0] run_comment_short += char_comment(result_file_lines[0]) result_file.close end run_result_file = File.new("result-#{k}", "w") run_result_file.write run_score run_result_file.write "\n" run_result_file.close run_comment_file = File.new("comment-#{k}", "w") run_comment_file.write "#{run_comment}\n" run_comment_file.close all_score = all_score + run_score all_comment += run_comment_short end result_file = File.new("result", "w") result_file.write all_score result_file.write "\n" result_file.close comment_file = File.new("comment", "w") comment_file.write "#{all_comment}\n" comment_file.close