# HG changeset patch # User Nattee Niparnan # Date 2022-01-14 02:25:34 # Node ID 501db8f544daac16db52e173138a54205db013a4 # Parent e2597379728cebc53a172ac9ecd5ca874ee05742 # Parent a7823c56c058b3b76961142779591e0a77219b87 fix unintended branch diff --git a/script/about b/script/about deleted file mode 100755 --- a/script/about +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/about' \ No newline at end of file diff --git a/script/autospec b/script/autospec deleted file mode 100755 --- a/script/autospec +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env ruby -gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9 -ENV['RSPEC'] = 'true' # allows autotest to discover rspec -ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux -system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) || - $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH") diff --git a/script/breakpointer b/script/breakpointer deleted file mode 100755 --- a/script/breakpointer +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/breakpointer' \ No newline at end of file diff --git a/script/console b/script/console deleted file mode 100755 --- a/script/console +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/console' \ No newline at end of file diff --git a/script/dbconsole b/script/dbconsole deleted file mode 100755 --- a/script/dbconsole +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/dbconsole' diff --git a/script/destroy b/script/destroy deleted file mode 100755 --- a/script/destroy +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/destroy' \ No newline at end of file diff --git a/script/generate b/script/generate deleted file mode 100755 --- a/script/generate +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/generate' \ No newline at end of file diff --git a/script/performance/benchmarker b/script/performance/benchmarker deleted file mode 100755 --- a/script/performance/benchmarker +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' -require 'commands/performance/benchmarker' diff --git a/script/performance/profiler b/script/performance/profiler deleted file mode 100755 --- a/script/performance/profiler +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' -require 'commands/performance/profiler' diff --git a/script/performance/request b/script/performance/request deleted file mode 100755 --- a/script/performance/request +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' -require 'commands/performance/request' diff --git a/script/plugin b/script/plugin deleted file mode 100755 --- a/script/plugin +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/plugin' \ No newline at end of file diff --git a/script/process/inspector b/script/process/inspector deleted file mode 100755 --- a/script/process/inspector +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' -require 'commands/process/inspector' diff --git a/script/process/reaper b/script/process/reaper deleted file mode 100755 --- a/script/process/reaper +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' -require 'commands/process/reaper' diff --git a/script/process/spawner b/script/process/spawner deleted file mode 100755 --- a/script/process/spawner +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' -require 'commands/process/spawner' diff --git a/script/rails b/script/rails deleted file mode 100755 --- a/script/rails +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env ruby -# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. - -APP_PATH = File.expand_path('../../config/application', __FILE__) -require File.expand_path('../../config/boot', __FILE__) -require 'rails/commands' diff --git a/script/runner b/script/runner deleted file mode 100755 --- a/script/runner +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/runner' \ No newline at end of file diff --git a/script/score_subtask.rb b/script/score_subtask.rb new file mode 100644 --- /dev/null +++ b/script/score_subtask.rb @@ -0,0 +1,89 @@ +def display_manual + puts <<-USAGE + subtask_score problem last_submision_id sub1_score,sub2_score,sub3_score,.... + example: + rails runner subtask_score.rb o64_may26_train 102983 10,15,18,18,39 + USAGE +end + +def process_options + res = {} + if ARGV.length == 0 + display_manual + exit(1) + end + + res[:prob] = ARGV[0] + res[:last_sub_id] = ARGV[1].to_i + res[:score] = ARGV[2].split(',').map {|x| x.to_i} + return res +end + +def process_subtask(st) + return true if /^P+$/.match(st) + return false +end + +def process_comment(st) + res = [] + loop do + break if st.length == 0 + if st[0] == '[' + #subtask + subtask = st.slice!(0..(st.index(']'))) + res << process_subtask(subtask[1..-2]) + else #not subtask + res << process_subtask(st[0]) + st.slice!(0) + end + end + return res +end + +options = process_options +scoring = options[:score] +puts "doing problem #{options[:prob]}" +puts " consider only submission with id not more than #{options[:last_sub_id]}" +scoring.each.with_index { |x,i| puts " subtask#{i}: #{x}" } + +res = {} + +p = Problem.where(name: options[:prob]).first +unless p + puts "Problem #{options[:prob]} not found" + exit(2) +end + +p.submissions.where('id <= ?',options[:last_sub_id]).order(:id).each do |sub| + unless sub.graded_at + puts "skip ungraded submission #{sub.id}" + next + end + if sub.grader_comment == "compilation error" + puts "skip uncompilable submission #{sub.id}" + next + end + + comment = sub.grader_comment.clone + comment_result = process_comment(comment) + if comment_result.length != scoring.length + puts "ERROR!!! subtask of submission #{sub.id} does not match scoring input" + end + + puts "processing submission #{sub.id} with comment = #{sub.grader_comment} result is #{comment_result}" + current = res[sub.user.login] || [false] * scoring.length + current.each.with_index do |x,i| + if !x && comment_result[i] + puts " user #{sub.user.login} just got subtask #{i+1} from this submission" + current[i] = true + end + end + res[sub.user.login] = current +end + +puts "----summary-----" +res.each do |u,r| + score = scoring.clone + r.each.with_index { |pass,i| score[i] = 0 unless pass } + puts "#{u} #{score.sum} [#{score.join(',')}]" +end diff --git a/script/server b/script/server deleted file mode 100755 --- a/script/server +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/server' \ No newline at end of file diff --git a/script/spec b/script/spec deleted file mode 100755 --- a/script/spec +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env ruby -if ARGV.any? {|arg| %w[--drb -X --generate-options -G --help -h --version -v].include?(arg)} - require 'rubygems' unless ENV['NO_RUBYGEMS'] -else - gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9 - ENV["RAILS_ENV"] ||= 'test' - require File.expand_path(File.dirname(__FILE__) + "/../config/environment") unless defined?(RAILS_ROOT) -end -require 'spec/autorun' -exit ::Spec::Runner::CommandLine.run diff --git a/script/spec_server b/script/spec_server deleted file mode 100755 --- a/script/spec_server +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env ruby -$LOAD_PATH.unshift File.dirname(__FILE__) + '/../../rspec/lib' # For svn -$LOAD_PATH.unshift File.dirname(__FILE__) + '/../vendor/plugins/rspec/lib' # For rspec installed as plugin -require 'rubygems' -require 'drb/drb' -require 'rbconfig' -require 'spec' -require 'optparse' - -# This is based on Florian Weber's TDDMate -module Spec - module Runner - class RailsSpecServer - def run(argv, stderr, stdout) - $stdout = stdout - $stderr = stderr - - base = ActiveRecord::Base - def base.clear_reloadable_connections! - active_connections.each do |name, conn| - if conn.requires_reloading? - conn.disconnect! - active_connections.delete(name) - end - end - end - - if ActionController.const_defined?(:Dispatcher) - dispatcher = ::ActionController::Dispatcher.new($stdout) - dispatcher.cleanup_application(true) - elsif ::Dispatcher.respond_to?(:reset_application!) - ::Dispatcher.reset_application! - else - raise "Application reloading failed" - end - ::Dependencies.mechanism = :load - require_dependency('application.rb') unless Object.const_defined?(:ApplicationController) - load File.dirname(__FILE__) + '/../spec/spec_helper.rb' - - ::Spec::Runner::CommandLine.run( - ::Spec::Runner::OptionParser.parse( - argv, - $stderr, - $stdout - ) - ) - end - end - end -end -puts "Loading Rails environment" - -ENV["RAILS_ENV"] = "test" -require File.expand_path(File.dirname(__FILE__) + "/../config/environment") -require 'dispatcher' - -def restart_test_server - puts "restarting" - config = ::Config::CONFIG - ruby = File::join(config['bindir'], config['ruby_install_name']) + config['EXEEXT'] - command_line = [ruby, $0, ARGV].flatten.join(' ') - exec(command_line) -end - -def daemonize(pid_file = nil) - return yield if $DEBUG - pid = Process.fork{ - Process.setsid - Dir.chdir(RAILS_ROOT) - trap("SIGINT"){ exit! 0 } - trap("SIGTERM"){ exit! 0 } - trap("SIGHUP"){ restart_test_server } - File.open("/dev/null"){|f| - STDERR.reopen f - STDIN.reopen f - STDOUT.reopen f - } - yield - } - puts "spec_server launched. (PID: %d)" % pid - File.open(pid_file,"w"){|f| f.puts pid } if pid_file - exit! 0 -end - -options = Hash.new -opts = OptionParser.new -opts.on("-d", "--daemon"){|v| options[:daemon] = true } -opts.on("-p", "--pid PIDFILE"){|v| options[:pid] = v } -opts.parse!(ARGV) - -puts "Ready" -exec_server = lambda { - trap("USR2") { restart_test_server } if Signal.list.has_key?("USR2") - DRb.start_service("druby://localhost:8989", Spec::Runner::RailsSpecServer.new) - DRb.thread.join -} - -if options[:daemon] - daemonize(options[:pid], &exec_server) -else - exec_server.call -end diff --git a/spec/models/testcases_spec.rb b/spec/models/testcases_spec.rb deleted file mode 100644 --- a/spec/models/testcases_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'spec_helper' - -describe Testcases do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/stories/all.rb b/stories/all.rb deleted file mode 100644 --- a/stories/all.rb +++ /dev/null @@ -1,4 +0,0 @@ -dir = File.dirname(__FILE__) -Dir[File.expand_path("#{dir}/**/*.rb")].uniq.each do |file| - require file -end \ No newline at end of file diff --git a/stories/helper.rb b/stories/helper.rb deleted file mode 100644 --- a/stories/helper.rb +++ /dev/null @@ -1,3 +0,0 @@ -ENV["RAILS_ENV"] = "test" -require File.expand_path(File.dirname(__FILE__) + "/../config/environment") -require 'spec/rails/story_adapter' \ No newline at end of file