What is ineffable?
Simple grader for local grading of solutions for problems of competitive programming contests. It is written in Python and it uses timeout Perl library to limit resources (time and memory limits) of program being tested.
See it at work (sample session)
Let's solve problem Cow Steeplechase of USACO 2011 November Contest.
$ # Create folder `steeple` in your desktop and another folder `steeple_tests` inside it.
$ mkdir Desktop/steeple
$ cd Desktop/steeple
$ mkdir steeple_tests
$ cd steeple_tests
$
$ # Download and extract test data into `steeple/steeple_tests/`.
$ wget -q http://usaco.org/current/data/steeple.zip
$ unzip -q steeple.zip
$ rm steeple.zip
$ cd ..
$
$ # Create file `ineff.json` and configure.
$ touch ineff.json
$ echo '{
"pkdesc": "Cow Steeplechase (USACO Gold November 2011 Contest)",
"pbcode": "steeple",
"tl": 3000,
"ml": 65536,
"warmup": "g++ -std=c++11 -O2 -o {PROBLEM} {PROBLEM}.cpp",
"execute": "./{PROBLEM}",
"tstdir": "{PROBLEM}_tests/",
"inp": "I.*",
"out": "O.*"
}' >ineff.json
$
$ # Create `steeple.cpp` and open it with your favorite editor to code your solution.
$ touch steeple.cpp
$ vim steeple.cpp
$ # ...
$
$ # Test your solution
$ ineffable
Screenshots
Installation
$ mkdir ~/.ineffable $ cd ~/.ineffable $ wget https://bitbucket.org/silap/ineffable/get/89f43e61ffb8.zip $ unzip 89f43e61ffb8.zip $ rm 89f43e61ffb8.zip $ mv silap-ineffable-89f43e61ffb8/* . $ rm -r silap-ineffable-89f43e61ffb8/ $ ln -s ineffable /usr/local/bin/ineffable