json.test_sets @qurey_test_sets do |test_set|
  json.is_public test_set.is_public
  json.result test_set.try(:result)
  if test_set.is_public || @allowed_hidden_testset
    json.input test_set.input
    json.output test_set.output
    json.actual_output evaluate_actual_output(test_set)
  end
  json.compile_success test_set.try(:compile_success)
  json.ts_time test_set.try(:ts_time)
  json.ts_mem test_set.try(:ts_mem)
end

json.allowed_unlock @shixun.test_set_permission
json.last_compile_output @last_compile_output
json.test_sets_count @test_sets_count
json.sets_error_count @sets_error_count