Minijudge — a lightweight batch testing utility

Revision en1, by xen, 2016-04-22 23:38:24

Hello, Codeforces!

Two months ago, I created a certain utility that I'd like to share with you. As noted in the title of the topic, its main purpose is to evaluate your solution on a set of tests. It is likely (and I'm really sure of it) that there exist similar utilities that are capable of doing the same thing or even more, but my primary intent was to implement a lightweight and cross-platform solution that can be easily integrated into somewhere.

Here is the utility (Github link).  

Some kind of a backstory:

One day, I was getting rid of unnecessary files that had been accumulating on my hard drive. I stumbled upon an archive of an old contest that I seemingly had missed and hadn't had an opportunity to participate in. I thought that the tasks from this contest were interesting enough, so I went to Codeforces and tried to find it in “Gyms” section. To my dismay, there was no such contest there.

Так как желание написать контест почему-то было неожиданно сильным, а перспектива писать задачи без возможности оперативно их проверить меня не привлекала, было решено написать маленькую утилиту, которая помогла бы мне прогнать задачи по системным тестам из архива. Через несколько часов была готова рабочая версия утилиты.

В другой прекрасный день, через пару недель спустя, появилась другая идея: расширить утилиту до полноценной (но в то же время небольшой) тестирующей системы, которую бы было можно легко поднять в локальной сети для написания контестов с друзьями. В качестве proof of concept даже было написано простенькое веб-приложение, но, к сожалению, до большего руки так и не дошли. Зато скрипт оказался вполне себе полезной штукой в повседневной, так сказать, жизни.

Замечания:

The source code is work in progress, but the utility itself is usable. The script was primarily designed for use in conjunction with checkers that utilize testlib, but I think that every other checker that confines to the same input and output requirements would suffice.

The utility requires Python 3 to run (you can learn more about the dependencies in the readme).

The script have been tested on OS X and Linux, so I'd like you to report if something is the case. Please also note the compilers.json file that describes compilers and interpreters: it's very likely that the default provided commands may not work for you.

Tags utility, testing

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en4 English xen 2016-04-23 14:38:01 51 Added demo
ru5 Russian xen 2016-04-23 14:37:26 66 Добавил демо работы
ru4 Russian xen 2016-04-23 00:45:26 0 (опубликовано)
ru3 Russian xen 2016-04-22 23:57:09 0 Русские теги
en3 English xen 2016-04-22 23:56:34 1 English tags
en2 English xen 2016-04-22 23:53:05 1262 Full English translation
ru2 Russian xen 2016-04-22 23:39:35 50 Небольшие правки
en1 English xen 2016-04-22 23:38:24 2563 Initial revision for English translation (unfinished)
ru1 Russian xen 2016-04-22 23:08:02 2561 Первая редакция (сохранено в черновиках)