2 releases
0.1.1 | Apr 11, 2024 |
---|---|
0.1.0 | Apr 11, 2024 |
#5 in #submission
28KB
570 lines
ahc-evaluation
Evaluates the submission code for AHC (AtCoder Heuristic Contest).
This program automates:
- Builds the submission code and the local tester.
- Executes the submission code and the local tester for each seed, and collects scores and execution times.
- Communication between program and input/output files.
- Retrieve scores from the output of the local tester.
Installation
Install from crates.io using the following command.
cargo install ahc-evaluation
Usage
Evaluates the submission code for AHC (AtCoder Heuristic Contest).
Usage: ahc-evaluation [OPTIONS]
Options:
-c, --config <CONFIG> Path of the configuration file [default: evaluation/config.toml]
-h, --help Print help
-V, --version Print version
Configuration
Place the configuration file evaluation/config.toml
under the current directory. You can also specify the path to the configuration file with the option --config
.
An example of a configuration file is as follows. Keys cannot be changed, but value must be changed as necessary.
[thread]
# Number of threads used for evaluation.
# If not specified, it is automatically determined by Rayon.
thread_num = 8
[path]
# Path of the seed list file.
seed_file = "tools/seeds.txt"
# Path of the directory of input files.
input_dir = "tools/in"
# Path of the directory of output files.
output_dir = "evaluation/out"
# Path of the file that outputs a list summarizing the score and execution time for each seed.
evaluation_record = "evaluation/summary.csv"
[command]
# Build command for submission code.
# Specify an empty array if build execution is not required.
build.submission = ["cargo", "build", "--release"]
# Build command for local tester.
# Specify an empty array if build execution is not required.
build.tester = []
# Execution command for submission code.
execute.submission = ["submission/target/release/submission"]
# Execution command for local tester.
# The following placeholders can be used (Placeholders must be quoted independently).
# - `{input}`: The path of the input file corresponding to the seed.
# - `{output}`: The path of the output file corresponding to the seed.
# - `{cmd}`: Execution command of the submission code.
execute.tester = ["tools/tester", "{input}", "{output}"]
# Set this flag to `true` if the submission code is to be executed via the local tester rather than independently.
execute.integrated = false
Dependencies
~9–17MB
~223K SLoC