Releases: qryxip/cargo-compete
v0.8.8
Added
-
Added
SplitWhitespace
variant toMatch
. (qryxip/snowchains#136) -
cargo-compete now warns when the expected output and the actual one are not matched and whitespace-separated words do. (qryxip/snowchains#137)
2/2 ("sample2") Wrong Answer (0 ms) stdin: 3 3 3 3 3 expected: EMPTY actual: note: whitespace-separated words matched. try setting `match` to `SplitWhitespace` error: 1/2 tests failed
v0.8.7
Changed
-
Made
Extend::SystemTestCases.problem
optional. (#qryxip/snowchains#133, #141)extend: - type: SystemTestCases - problem: https://atcoder.jp/contests/agc001/tasks/agc001_a
Fixed
- Fixed around Ctrl-c. (#qryxip/snowchains#135)
v0.8.6
Added
-
Added
SystemTestCases
variant toextend
in test suite files. (qryxip/snowchains#131, #138)System test cases are stored under
{ cache directory }/cargo-compete/system-test-cases
.
They are automatically downloaded if missing whentest
ing code.extend: - type: SystemTestCases problem: "https://atcoder.jp/contests/abc191/tasks/abc191_a"
Changed
-
cargo compete test
command without--full
option will append{ type: Text, ... }
toextend
and will create emptyin
andout
directories. (#138)❯ cargo compete n arc110 --problems a Created `arc110` package at /home/ryo/src/competitive/atcoder/./arc110 Saved 2 test cases to /home/ryo/src/competitive/atcoder/./arc110/testcases/{a.yml, a/} ❯ tree ./arc110/testcases ./arc110/testcases ├── a │ ├── in │ └── out └── a.yml 3 directories, 1 file
--- type: Batch timelimit: 2s match: Lines cases: - name: sample1 in: | 3 out: | 7 - name: sample2 in: | 10 out: | 39916801 extend: - type: Text path: "./a" in: /in/*.txt out: /out/*.txt
-
SystemTestCases
will be used for--full
option. (#138)
Fixed
- Fixed a problem where
cargo compete download
command saves nothing. (#139)
v0.8.5
v0.8.4
Added
-
Added
template
field tocompete.toml
.[template] src = ''' fn main() { todo!(); } ''' [template.new] profile = ''' [dev] opt-level = 3 ''' dependencies = ''' proconio = { version = "=0.3.6", features = ["derive"] } # ... ''' [template.new.copy-files] "./template-cargo-lock.toml" = "Cargo.lock"
-
Made
new
andnew.template
optional.
Deprecated
-
Deprecated the
new.template
config.Use
template
instead.
Fixed
v0.8.3
Added
-
cargo-compete now reads these environment variables if they exist, and use them. (#129)
$DROPBOX_ACCESS_TOKEN
$YUKICODER_API_KEY
$CODEFORCES_API_KEY
$CODEFORCES_API_SECRET
Fixed
-
Added
#[serde(default)]
toPartialBatchTestCase::out: Option<Arc<str>>
. (qryxip/snowchains/#128)Previously, explicit
out: ~
had been allowed but the field itself was required.
v0.8.2
Added
-
Added
Checker
variant toMatch
. (qryxip/snowchains#124)match: Checker: cmd: cat "$ACTUAL_OUTPUT" | cargo run --bin check-a shell: Bash
match: Checker: cmd: ~/.cache/online-judge-tools/library-checker-problems/math/sqrt_mod/checker "$INPUT" "$ACTUAL_OUTPUT" "$EXPECTED_OUTPUT" shell: Bash
v0.8.1
Fixed
-
Added a workaround for large process input/output. (qryxip/snowchains#121)
-
Fixed a problem where string values in YAMLs are unnecessarily quoted. (qryxip/snowchains#121)
This problem was caused by a change in
serde-yaml v0.8.16
, which was released in February 2, 2021.
v0.8.0
Added
-
Added
add
command. (#114)# for Library-Checker [add] url = "https://judge.yosupo.jp/problem/{{ args[0] }}" #is-contest = ["false"] # optional bin-name = '{{ args[0] }}' #bin-alias = '{{ args[0] }}' # optional #bin-src-path = './src/bin/{{ bin_alias }}.rs' # optional
❯ cargo compete a --full many_aplusb Running `/home/ryo/tools/python/3.8.6/oj/bin/oj-api get-problem 'https://judge.yosupo.jp/problem/many_aplusb' --system` in /home/ryo/src/competitive/library-checker
︙
Added `many_aplusb` (bin) for https://judge.yosupo.jp/problem/many_aplusb Saved 7 test cases to /home/ryo/src/competitive/library-checker/testcases/{many_aplusb.yml, many_aplusb/}
# for yukicoder [add] url = '{% case args[0] %}{% when "contest" %}https://yukicoder.me/contests/{{ args[1] }}{% when "problem" %}https://yukicoder.me/problems/no/{{ args[1] }}{% endcase %}' is-contest = ["bash", "-c", '[[ $(cut -d / -f 4) == "contests" ]]'] # optional bin-name = '{% assign segments = url | split: "/" %}{{ segments[5] }}' #bin-alias = '{% assign segments = url | split: "/" %}{{ segments[5] }}' # optional #bin-src-path = './src/bin/{{ bin_alias }}.rs' # optional
❯ cargo compete a contest 296 Added `1358` (bin) for https://yukicoder.me/problems/no/1358 Added `1359` (bin) for https://yukicoder.me/problems/no/1359 Added `1360` (bin) for https://yukicoder.me/problems/no/1360 Added `1361` (bin) for https://yukicoder.me/problems/no/1361 Added `1362` (bin) for https://yukicoder.me/problems/no/1362 Added `1363` (bin) for https://yukicoder.me/problems/no/1363 Added `1364` (bin) for https://yukicoder.me/problems/no/1364 Added `1365` (bin) for https://yukicoder.me/problems/no/1365 Saved 1 test case to /home/ryo/src/competitive/yukicoder/testcases/1358.yml Saved 3 test cases to /home/ryo/src/competitive/yukicoder/testcases/1359.yml Saved 3 test cases to /home/ryo/src/competitive/yukicoder/testcases/1360.yml Saved 3 test cases to /home/ryo/src/competitive/yukicoder/testcases/1361.yml Saved 3 test cases to /home/ryo/src/competitive/yukicoder/testcases/1362.yml Saved 1 test case to /home/ryo/src/competitive/yukicoder/testcases/1363.yml Saved 3 test cases to /home/ryo/src/competitive/yukicoder/testcases/1364.yml Saved 3 test cases to /home/ryo/src/competitive/yukicoder/testcases/1365.yml ❯ cargo compete a problem 9001 Added `9001` (bin) for https://yukicoder.me/problems/no/9001 Saved 1 test case to /home/ryo/src/competitive/yukicoder/testcases/9001.yml
Changed
-
Made
package.metadata.cargo-compete.config
optional. (#112)[package.metadata.cargo-compete] -config = "../compete.toml"
-
Added new formats for
package.metadata.cargo-compete.bin
. (#113)[package.metadata.cargo-compete.bin] practice-a = { alias = "a", problem = "https://atcoder.jp/contests/practice/tasks/practice_1" } practice-b = { alias = "b", problem = "https://atcoder.jp/contests/practice/tasks/practice_2" }
[package.metadata.cargo-compete.bin] practice-a = { problem = "https://atcoder.jp/contests/practice/tasks/practice_1" } practice-b = { problem = "https://atcoder.jp/contests/practice/tasks/practice_2" }
The old format is still valid.
Fixed
- Fixed a problem about hyphen-separated contest IDs. (#114)
v0.7.1
Release v0.7.1