#!/usr/bin/ruby # # This is a check script wrapper. It read all required information # and call a real check script call REAL_CHECK_SCRIPT in directory # [problem_home]/script # REAL_CHECK_SCRIPT = "<%= script_name %>" # The REAL_CHECK_SCRIPT is called with: # # (script) # # and REAL_CHECK_SCRIPT's output to standard out is redirected to # 'check_result' as required by normal check script. problem_home = ENV['PROBLEM_HOME'] require "#{problem_home}/script/test_dsl.rb" if ARGV.length < 2 puts "Usage: check []" 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 answer_file_name = "#{problem_home}/test_cases/#{test_num}/answer-#{test_num}.txt" input_file_name = "#{problem_home}/test_cases/#{test_num}/input-#{test_num}.txt" score = problem.get_score(test_num) cmd = "#{problem_home}/script/#{REAL_CHECK_SCRIPT} " + "#{language} #{test_num} #{input_file_name} #{output_file_name} " + "#{answer_file_name} #{score} > check_result" #puts "wrapper-CMD: #{cmd}" system(cmd)