Hi Codeforces!
I want to share with the entire competitive programming community my latest project: Quick Test CLI, which is a multiplatform open source tool to perform stress testing in competitive programming and that was inspired after watching the following screencasts: 1v1 Coding | 2020 Lockout Championship and How to test your solution in Competitive Programming, on Linux? Made by Errichto some time ago.
✍ Source Code: https://github.com/LuchoBazz/quicktest
❑ Docs: https://luchobazz.github.io/quicktest
⚡ Installation: https://luchobazz.github.io/quicktest/docs/getting-started/installation
What Quick Test CLI provides vs. the traditional way of performing stress testing?
- Multi-platform
- Supports several languages (C++, Java, Python, Rust Lang, Go Lang, C, Kotlin)
- Friendly user interface
- You don't have to create or use tedious bash scripts
- It can be a standard for the community
- It is a collaborative project that can continue to grow for the benefit of the competitive programming community.
Quick Test CLI supports several types of tests:
quicktest cmp | qt cmp
It checks the correctness of the algorithm we want to verify by comparing it with a brute force solution which is usually very slow, but is 100% sure to provide the correct solution.
quicktest cmp --target-file=main.cpp --correct-file=correct.cpp --gen-file=gen.cpp
# Or shorter:
qt cmp -t main.cpp -c correct.cpp -g gen.cpp
quicktest check | qt check
In some problems more than one answer is accepted, so the quicktest cmp command would not work correctly, in this case a script checker is used to verify the correctness of the algorithm.
quicktest check --target-file=main.cpp --checker-file=correct.cpp --gen-file=gen.cpp
# Or shorter:
qt check -t main.cpp -c check.cpp -g gen.cpp
quicktest stress | qt stress
Verify that the code execution time does not exceed what is allowed, using a random generator for multiple test cases.
Note: In this scenario there is no slower solution with which to compare the correction.
quicktest stress --target-file=main.cpp --gen-file=gen.cpp
# Or shorter:
qt stress -t main.cpp -g gen.cpp
Future Updates
Feature for testing interactive problems is planned to be implemented in future versions
I will be grateful to receive feedback, requests for new features and requests for improvements
Don't forget to give it ⭐in the Github repository
Thanks!