Документация для проекта taker
This project is maintained by taker-project
Конфигурация стресс тестов задается в файлах в папке stress. Их формат основан на описанном в configs.md, но имеет несколько расширений:
int<> и float<>, которые могут иметь следующие варианты значений:
<x>— случайное число в диапазоне [0; x)<a; b>— случайное число в диапазоне [a; b]string<>, который может иметь следующие варианты значений:
r"<regex>"— равновероятная строка, соответствующая регулярному выражению (как в функции rnd.next() из testlib).Файл состоит из нескольких секций. В секции [stress/body] содержится основная информация:
generators: string[] содержит список генераторов, каждый выбирается равновероятно.solutions: string[] содержит список решений, которые необходимо стресс-тестировать.stress-time: int содержит время на стресс-тест в миллисекундах или -1, если необходимо продолжать до бесконечности.time-limit: int содержит лимит времени на один тест в миллисекундах (если отсутствует, то значение равно ограничению по времени на задачу)memory-limit: int содержит лимит памяти на один тест в килобайтах (если отстутствует, то значение равно ограничению по памяти на задачу)На каждый из генераторов должно быть по одной секции с таким же названием, как у генератора. Внутри секции в качестве полей должны присутствовать аргументы генератора, кроме seed: seed выбирается случайно. В этих секциях можно использовать описанные выше расширения.
Пример конфига:
[stress/body]
generators: string[] = ["gen1", "gen2"]
solutions: string[] = ["author", badSolution"]
stress-time: int = 120000
time-limit: int = 250
[gen1]
n: int<> = <1; 10>
m: int<> = <100>
chance: int = 42
[gen2]
str: string<> = r"[0-9]{1,3}"
maxQ: int = 20