6 个版本
0.4.0 | 2021 年 5 月 6 日 |
---|---|
0.3.2 | 2021 年 3 月 16 日 |
0.3.1 | 2020 年 8 月 18 日 |
0.3.0 | 2020 年 7 月 21 日 |
0.2.2 | 2020 年 5 月 19 日 |
#4 in #judge
每月 21 次下载
34KB
896 行
ojcmp
在线评测比较器
状态
Maintaining 0.4.0
安装
cargo install ojcmp
构建
cargo build --release
通过 cargo 安装
cargo install --path .
手动安装
cp target/release/ojcmp /usr/bin
用法
ojcmp 0.4.0
Nugine <nugine@foxmail.com>
USAGE:
ojcmp <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
float Float compare
help Prints this message or the help of the given subcommand(s)
normal Normal compare
strict Strict compare
ojcmp-normal 0.4.0
Normal compare
USAGE:
ojcmp normal [FLAGS] [OPTIONS] <--std <path>|--std-fd <fd>> <--user <path>|--user-fd <fd>>
FLAGS:
-h, --help Prints help information
-q, --quiet No output printed to stdout or stderr
-a, --read-all Reads all bytes of user file even if it's already WA
-V, --version Prints version information
OPTIONS:
-b, --buffer-size <bytes> Buffer size (in bytes) for both std and user file [default: 65536]
-s, --std <path> Std file path
--std-fd <fd> Std file descriptor
-u, --user <path> User file path
--user-fd <fd> User file descriptor
返回值
类型 | 值 |
---|---|
退出代码 (AC) | 0 |
退出代码 (WA) | 1 |
退出代码 (PE) | 2 |
退出代码 (错误) | 101 |
stdout | "AC" / "WA" / "PE" |
stderr | 错误信息 |
当前实现
模式:正常
trim_end(file)
judge!(AC, b"1\r\n\r\n\r\n", b"1 ");
对于每一行,trim_end(line)
judge!(AC, b"1 \n", b"1");
对于每一行,检查非空格字符之间的空格
judge!(PE, b"1 3\n", b"1 3\n");
模式:严格
用户文件必须与 std 文件具有相同的字节。
两个字节流必须完全相同。
此模式中没有 "PE"。
模式:浮点数
比较由 ascii 空白符 分隔的浮点数流。
将任何浮点数解析为 f64(即 C 语言中的 double
)。
两个浮点数之间的 ascii 空白符被视为单个分隔符。
使用 CLI 选项 --eps
指定 eps 值,例如 --eps 1e-3
。
此模式中没有 "PE"。
变更日志
- v0.4.0 允许传递文件 fd。将返回值更改为指示比较结果。
- v0.3.2 修复 ByteReader 中的不稳定性。
- v0.3.1 修复自 v0.2.0 以来出现的性能下降。允许使用不安全代码。
- v0.3.0 禁止使用不安全代码。使用子命令进行不同的模式。
- v0.2.2 修复处理 nan 的错误。 (yank v0.2.1)
- v0.2.1 添加 spj_float 模式。 (yanked)
- v0.2.0 添加严格模式。没有重大更改。
- v0.1.3 没有功能更改
- v0.1.2 修复算法错误
- v0.1.1 使用不安全静态缓冲区
依赖项
~3MB
~55K SLoC