Skip to content

CLI Problem

lanrongqi edited this page Jan 22, 2021 · 4 revisions

题目工程管理

NAME:
   Deer Executor - problem workdir manager

USAGE:
   deer-executor problem command [command options] [arguments...]

COMMANDS:
   build, b          compile binary source codes
   validate, v       run validator cases and test case input
   generate, gen, g  generate test case's input/output
   checker, c        run checker cases
   help, h           Shows a list of commands or help for one command

OPTIONS:
   --help, -h  show help (default: false)

子命令

**注意:**为了配合打包功能,并且规范文件存放,默认的工作目录是configs_file所在的目录。即work_dir := path.Dir(configs_file)

build 构建二进制程序


在本地调试题目的时候,如果涉及到使用特殊评测,必须通过这个命令去编译对应的特判程序代码。这个命令会根据题目配置信息,自动构建checker(包括交互)、validator和generator等程序并存储到 <workdir>/bin下。

顺便一提,这些二进制程序是适应当前操作系统环境编译的,故不会被打包到题目里。

NAME:
   Deer Executor - compile binary source codes

USAGE:
   Deer Executor problem build [command options] configs_file

OPTIONS:
   --library value, -l value  library root for special judge, contains "testlib.h" and "bits/stdc++.h" etc. (default: "./lib")
   --help, -h                 show help (default: false)

参数列表

configs_file 题目的配置文件所在路径

选项参数说明

  • --library 设置编译时所需库文件的位置,默认当前程序所在位置下./lib目录。如果需要testlib支持请把testlib.h放到这个目录下。(bits/stdc++.h是为MacOS下能正确编译有这个引用的C++代码而设置的,你可以自行选择是否需要这个文件)

generate 生成测试数据


NAME:
   Deer Executor - generate test case's input/output

USAGE:
   deer-executor problem generate [command options] configs_file

OPTIONS:
   --silence, -s           silence mode (default: false)
   --with-answer           generate answer (default: false)
   --answer value          answer case index. (default: 0)
   --case value, -c value  case index, -1 means all. when module type set 'all',it would't work. (dfault: -1)
   --help, -h              show help (default: false)

generate 方法用于自动生成数据。和codeforces的机制不同,deer-executor是基于文件的方式运行评测的,故需要预先生成对应的测试数据输入、输出文件。当然,这里也提供了运行generator的支持,你可以编写对应的配置来启用它。

Generator,即数据生成器。当数据很大,手造会累死的时候,我们就需要它来帮助我们自动造数据。

参数列表

configs_file 题目的配置文件所在路径

选项参数说明

  • --silence 静默模式。这是给OJ使用的,此模式下不会有输出和交互,运行结果将自动保存在题目配置文件中

  • --with-answer 默认情况下只会运行generator来获取测试数据输入。如果有设置对应的答案代码,则可以开启这个参数用于生成测试数据的输出。

  • --answer value 设置使用哪个答案代码进行编译并生成测试数据输出,默认是第一组。(仅在--with-answer 选项启用时有效)

  • --case value 可以设置单独运行哪组数据,值为对应数组下标,-1表示运行所有。(通常这个功能是给OJ使用的)

validate 运行Testlib的validator


NAME:
   Deer Executor - run validator cases and test case input

USAGE:
   deer-executor problem validate [command options] configs_file

OPTIONS:
   --silence, -s           silence mode (default: false)
   --type value, -t value  module type: validator_cases|test_cases|all (default: "all")
   --case value, -c value  case index, -1 means all. when module type set 'all',it would't work. (dfault: -1)
   --help, -h              show help (default: false)

validate 方法提供了运行validator的支持,你可以选择验证相关的数据并将验证结果写入到题目配置信息中

Validator(中文:校验器)用于检验造好的数据的合法性。当造好一道题的数据,又担心数据不合法(不符合题目的限制条件:上溢、图不连通、不是树……)时,出题者通常会借助 validator 来检查。

参数列表

configs_file 题目的配置文件所在路径

选项参数说明

  • --silence 静默模式。这是给OJ使用的,此模式下不会有输出和交互,运行结果将自动保存在题目配置文件中
  • --type value 选择测试模块。你可以选择仅运行测试数据test_cases,或者仅运行手动输入的数据validator_cases(参考codeforces-polygon的validator tests),又或者是二者都运行all
  • --case value 可以设置单独运行哪组数据,值为对应数组下标,-1表示运行所有。(通常这个功能是给OJ使用的)

checker 运行特判检查器


NAME:
   Deer Executor - run checker cases

USAGE:
   deer-executor problem checker [command options] configs_file

OPTIONS:
   --silence, -s             silence mode (default: false)
   --answer value, -a value  answer case index. (default: 0)
   --case value, -c value    case index, -1 means all. when module type set 'all',it would't work. default: -1)
   --help, -h                show help (default: false)

checker 方法用于执行特殊评测,这个一般是手打的数据(参考codeforces-polygon的checker tests)

Checker,即 Special Judge ,用于检验答案是否合法。使用 Testlib 可以让我们免去检验许多东西,使编写简单许多。

参数列表

configs_file 题目的配置文件所在路径

选项参数说明

  • --silence 静默模式。这是给OJ使用的,此模式下不会有输出和交互,运行结果将自动保存在题目配置文件中
  • --answer value 设置使用哪个答案代码进行编译并生成测试数据输出,默认是第一组。
  • --case value 可以设置单独运行哪组数据,值为对应数组下标,-1表示运行所有。(通常这个功能是给OJ使用的)

Clone this wiki locally