10个版本 (5个重大更新)
0.6.0 | 2023年12月12日 |
---|---|
0.5.1 | 2023年12月7日 |
0.5.0 | 2023年11月21日 |
0.4.0 | 2023年8月31日 |
0.1.0 | 2023年3月23日 |
#197 在 Cargo插件 中
每月 55 次下载
30KB
685 代码行
Cargo-BOJ
测试和提交BOJ(Baekjoon在线评委)问题的解决方案。
默认设置适用于Rust解决方案,但也支持非Rust使用。
先决条件
稳定的Rust工具链。
安装
cargo install cargo-boj
您可以使用相同的命令更新到最新版本。
使用方法
test
和 submit
命令的默认用法假定在crate根目录下运行了 cargo boj
,并且解决方案文件是 src/main.rs
或 src/bin/main.rs
。如果两者都存在,则 src/main.rs
优先。
登录
由于reCaptcha的保护,使用ID和密码登录BOJ无法自动化。因此,用户需要首先在自己的浏览器上登录,然后将相关的cookie复制到 cargo-boj
中。
$ cargo boj login
First log in to www.acmicpc.net on your browser with auto-login enabled.
Then copy and paste two cookies for www.acmicpc.net from your browser.
bojautologin: 3b1adXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OnlineJudge: n00lXXXXXXXXXXXXXXXXXXXXXX
Cookies set.
或
$ cargo boj login --bojautologin=3b1adXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --onlinejudge=n00lXXXXXXXXXXXXXXXXXXXXXX
测试
使用给定问题的示例测试用例测试您的代码。
- 测试用例一次性获取并缓存。可以使用
-r, --refresh
标志刷新缓存。 - 如果测试失败(错误答案),将提供彩色差异。
- 如果以下条件之一成立,退出状态为1:
- 问题不是“特殊评委”、“得分”、“两步”或“交互式”,并且
- 输出与预期输出不匹配,或者程序以运行时错误结束。
- 提供了
-p, --spj-prompt
标志,这样您可以在链式test
和submit
命令的同时,仍然避免提交显然不正确的SPJ问题的解决方案。
# Test main.rs against example test cases of problem 1000
$ cargo boj test 1000
# Test src/bin/sol_1000.rs
$ cargo boj test 1000 --bin=sol_1000
# Test 1000.py
$ cargo boj test 1000 --cmd='python 1000.py'
# Test and submit problem 1008, but with user confirmation
$ cargo boj test 1008 --spj-prompt && cargo boj submit 1008
提交
使用提供的凭据,通过 cargo boj login
将您的代码提交到 BOJ。
默认语言为 Rust 2021
(语言 ID 113)。要提交其他语言的解决方案,请参阅BOJ 帮助:语言信息。
# Submit main.rs as Rust 2021 solution to problem 1000. Code open setting follows account preference
$ cargo boj submit 1000
# Submit sol_1000.rs as Rust 2018 solution, with code closed
$ cargo boj submit 1000 --path=src/bin/sol_1000.rs --lang=94 --code-open=n
在 BOJ 竞赛中使用
当您在竞赛中打开一个问题时,地址将类似于 https://www.acmicpc.net/contest/problem/963/1
。然后这个问题的问题 ID 是 963/1
。您可以在使用 cargo boj test
和 cargo boj submit
时使用此 ID 替换 "问题 ID"。
更新日志
- 0.6.0
- 将 "两步" 和 "交互式" 问题的处理方式更改为根本不运行示例测试
- 向
cargo boj test
添加-r, --refresh
选项
- 0.5.1
- 修复有关
-p
参数不遵循 bpaf 规则的问题
- 修复有关
- 0.5.0
- 将 "得分" 问题视为与特别评判相同
- 向
cargo boj test
添加-p, --spj-prompt
选项
- 0.4.0
- 修复当
cargo boj
退出时,某些错误消息不显示的问题
- 修复当
- 0.3.3
- 修复当要运行的文件是
src/main.rs
时,cargo boj test
尝试运行不正确的可执行文件名的问题
- 修复当要运行的文件是
- 0.3.1
- 修复在 Windows 上无法找到构建的可执行文件时
cargo boj test
失败的问题
- 修复在 Windows 上无法找到构建的可执行文件时
- 0.3.0
- 添加对 BOJ 竞赛的支持
依赖关系
~9–24MB
~350K SLoC