/RLJ

_Rqy's Local Judge for OIers and ACMers.

Primary LanguagePythonMIT LicenseMIT

RLJ

Build Status

一个便捷的本地评测器,具有实验性跨平台功能。By _rqy & Margatroid.

若您遇到问题,请提出issue.

屏幕截图

安装

可以通过 pip3 安装。

不要忘记sudo!!!

 $ sudo pip3 install --upgrade rlj

或者通过 gitNote: 如果您以此方式安装,请自行安装依赖 (docopt, colorama, psutil, pyyaml).

 $ git clone git@github.com:rqy1458814497/RLJ.git
 $ cd RLJ
 $ sudo python3 setup.py install

Windows用户

如果您是Windows用户,请您安装git-bash

使用

Config文件

创建 config.yml 文件,该文件应包含以下几项:

Source (可选), Input DataOutput DataTime LimitMemory Limit

例如:

Source: example.cpp
Input Data: example(\d*)\.in
Output Data: example(\d*)\.ans
Time Limit: 1000
Memory Limit: 128

其中 Input Data/Output Data 项使用正则表达式匹配,要求两项中group(即用圆括号括起来的)个数相同。若某个输入与某个输出数据中每个group对应相同,则其会被匹配。注意:(?:开头的组不会被考虑在内。

如果您不知道什么叫正则表达式,没关系,您只需要

Input Data: xxx(\d*)\.in
Output Data: xxx(\d*)\.out

就可以做到评测所有xxx1.in/xxx1.outxxx123.in/xxx123.out项。

更简单的方法是输入

 $ rlj --genConfig [FILE]

生成 config.yml (或指定FILE参数以更改文件名)。

数据

请将所需的输入输出数据文件置于 data 文件夹下。

如,上面的测试文件的例子中, data 下应有: example1.in, example1.ans, example2.in 等文件。

也可在 config.yml 内制定 Data Dir 项更改数据存放位置。如

Data Dir: ./

表示数据文件存放于当前文件夹下。

评测

 $ rlj [-s|--slient] [-j Source | --judge Source] [-c ConfigFile] [--O2]

只调用 rlj 即可评测。

若要简化其输出,请调用 rlj --silentrlj -s

具体用法请参照 rlj -h

编译选项

默认无任何编译选项。

可通过在 config.ymp 中加入 Compiling Parameter 项添加编译选项。

--O2 可以在运行时制定,参照上文。

TODO

  • Make a todo list.
  • Special Judge Supporting.
  • Input/Answer file name auto matching.
  • Press ^C to exit directly (instead of get one RE).
  • Find more TODO.