Skip to content

a testing framework for snippet libraries used in competitive programming

License

Notifications You must be signed in to change notification settings

southball/online-judge-verify-helper

 
 

Repository files navigation

Online Judge Verify Helper

Actions Status GitHub Pages PyPI LICENSE

README 日本語バージョン

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

Installation

$ 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

Currently, problems on Library Checker and Aizu Online Judge are supported. It is probable that problems on HackerRank can also be used, but it is not guaranteed at the moment.

Other judging platforms do not currently publish the test cases in usable forms, and so are not currently supported.

Autoexpansion of #includes

The include statements in your files in the form of #include "foo.hpp" can be expanded, similar to the functionality provided by webpack for JavaScript. This is to solve the problems that most online judges do not support submitting multiple files. 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 -I path/to/your/library.

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.

Generating Documentation

Run the following command to generate documentation in .verify-helper/markdown/. Example: https://kmyk.github.io/online-judge-verify-helper/ GitHub Pages

$ 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)

Tips

Authors

About

a testing framework for snippet libraries used in competitive programming

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 96.2%
  • JavaScript 2.6%
  • Other 1.2%