Online Judge Verify Helper
What is this?
This is a tool to easily automate the verify process of your code library for competitive programming.
How to use
Set up the repository for the library
Please read this: https://kmyk.github.io/online-judge-verify-helper/installer.en.html
Running the program
$ pip3 install online-judge-verify-helper
Automating the verification
First, add the problem URL to be used to verify the library in the file ending with
.test.cpp as follows (
#define PROBLEM "https://judge.yosupo.jp/problem/unionfind"). Then, run the following command to check if the verification can be performed.
$ oj-verify run
Other judging platforms do not currently publish the test cases in usable forms, and so are not currently supported.
include statements in your files in the form of
#include "foo.hpp" can be expanded,
The function can be used by running the following command:
$ oj-verify bundle main.cpp
If your competitive programming library resides outside the current directory, please specify the flag in the form of
Include guards like
#pragma once are partially supported. If you have files that will be included multiple times but you only want them to appear once in the generated code, add
#pragma once to the first line of the files.
Run the following command to generate documentation in
.verify-helper/markdown/. Example: https://kmyk.github.io/online-judge-verify-helper/
$ oj-verify docs
If documentation generators like Doxygen are found when generating documentation, they will be automatically used.
TeX expressions like
$(N \sum_i A_i)$ are also supported by the MathJax library.
(TODO: document what commands are recognized)
- If you cannot find problems to verify your library, you can refer to other users' libraries. You can find all users of
- If you cannot find problems to verify your library anywhere, we suggest that you add a problem to Library Checker.
- If you want to accelerate the verify process, you can accelerate by about 100 times: https://kmyk.github.io/online-judge-verify-helper/speedup.html (Japanese)
- You do not need to display the MIT License if you call
online-judge-verify-helperfrom GitHub Actions (Details, in Japanese).
- This is tool to efficiently verify your library, not to check or prettify your code. If you need such functions, you can try formatters like clang-format or linters like cppcheck.
- Languages other than C++ are also supported (Example: examples/circle.test.awk). You need a file like
.verify-helper/config.tomlthat specifies the commands for compiling and running the program (Example: .verify-helper/config.toml).