made for stress testing programs for when you can't find that goddamned test case which WAs your program
the others aren't here, it's just me, KS writing this
so far releases only contain executables for windows & linux
specifically, binaries built with x86_64-pc-windows-msvc
and x86_64-unknown-linux-musl
,
whatever that means
mac users are gonna have to build this on their own, frick you tim cook
much of the arguments should be documented here, but i'll put some general usage here again
the simplest call goes something like this:
aargh prog.cpp --fin input.txt --fout ans.txt
this will compile run the program with input.txt
redirected into standard input
(console input, whatever you like to call it)
the first argument is always going to be a code file
rn 4 formats for runnable files are supported:
- python
- java
- cpp
- executables
but there's a whole buncha options, i'll go over them
--gen
or-g
- the generator script that should print random test cases to stdout--ans
or-a
- the checker program that outputs the actual answer for each test case--gen-amt
ort
- how many times do you want to run the generator? (default is 50)--gen-forever
orf
- keeps on generating test cases until the end of time (well it actually just generates 2^32 test cases, but if that doesn't work idk what will)
--fin
- file (or directory) to use for input--fout
- file (or directory) to use for actual output (must be same type asfin
)
--checker
or-c
- a checker script (compatible withgen
andfin
) for those problems where you have to construct a graph which follows some forsaken condition- the script is supposed to output
ok
(case-insensitive) if the output is valid, and anything else if it isn't
- the script is supposed to output
--fin-fmt
&--fout-fmt
- iffin
andfout
are directories, i'm gonna need a format for what the files in each directory are like- the program starts from
1
and stops when it can't find input or output files that match the criteria - you define where the number goes with
{}
- for example,
test{}.in
would have the program trytest1.in
,test2.out
, etc.
- for example,
- program dies if you don't give at least one
{}
- the program starts from
--prog-fin
&--prog-fout
- these arguments don't depend on each other, but they're grouped really close together--prog-fin
determines what file your own program reads from-aargh
will create the file, dump the input in, then execute the program (if unfilled, standard input will be used)--prog-fout
has you give what file the program will put its output in (if unfilled, standard output will be used)
--whitespace-fmt
- some graders just care about the numbers, not the spacing between them. if your grader isn't one of these, put this option here--str-case
- when comparing strings, should case matter? i.e. shouldabc
count as being different fromAbC
?--one-abort
- as soon as a discrepancy is detected, should the grader stop? useful for long output files--silence
- doesn't produce any output like "TEST CASE x" or whatever, just tells you if you fricked smth up however, if you still give other output things like--prog-stdout
, it'll still give you that stuff--prog-stdout
&--prog-stderr
- yeah, it should be obvious what these two things do
and sometimes you wanna pass in special commands to the compiler as well
that's completely fine, just put a --
at the end of your command, then type in your arguments like so:
aaargh -- test/test.cpp --fin test/input.txt --fout test/ans.txt --prog-stdout --prog-stderr -- -std=c++17
so now -std=c++17
will get passed to g++