Задача 1E. Тесты

Максимальный балл:10   Ограничение времени:1 сек
  Ограничение памяти:512 Мб

Условие

Тесты к алгоритму должны находиться в репозитории, который отправляется на проверку в задачу A.

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

Тесты должны проверять как корректность, так и производительность алгоритма.

Тесты на корректность должны исчерпывающе проверять все граничные и стандартные режимы работы в режиме как чёрного, так и белого ящика. Желательно продемонстрировать покрытие кода и/или веток алгоритма тестами.

Тесты должны включать как созданные вручную, так и сгенерированные генератором.

Исходный код всех генераторов, как и код их запуска, должен быть в репозитории. Сами сгенерированные тесты, как и прочие артефакты, производимые в процессе компиляции и запуска, НЕ должны находиться в репозитории.

К исходному коду генераторов и тестирующей подсистемы предъявляются те же требования модульности и оформления, что и к коду алгоритма.

Тесты на производительность должны измерять время работы и, если необходимо, затраты памяти алгоритма.

Тесты должны включать защиту от эвристик, и, желательно, реализацию этих эвристик для демонстрации успешной защиты.

По результатам измерения должны быть составлены графики и/или таблицы, демонстрирующие, что алгоритм обладает заявленной алгоритмической сложностью и что константный множитель в оценке сложности реализации сопоставим с константой встроенного и/или тривиального алгоритма. Рекомендуется включить в явном виде аппроксимирующие формулы, полученные например с помощью электронных таблиц или статистических библиотек.

Если возможно, тесты должны сравнивать корректность и производительность со стандартными алгоритмами и структурами данных языка программирования. Если соответствующего стандартного алгоритма нет, следует привести сравнение с наивным/тривиальным алгоритмом.


0.063s 0.017s 15