Юнит тесты - gogafefe/StAlGoLM GitHub Wiki

Юнит-тесты

В проекте реализованы два набора QtTest для генераторов Task2 и Task3. Они проверяют функции без запуска TCP-сервера и SQLite. Исходники соответствуют локальной версии проекта на 7 октября 2026 года, базовый коммит 358822193604e5969754c130955a27813a897d49.

Покрытие

Набор Метод теста Проверка
Task2 invalid_task_number_returns_error Номера 0 и 11 возвращают текст error и correctAnswer = -1
Task2 valid_task_number_generates_problem Все шаблоны 1–10: непустое условие, название метода, четыре варианта, правильный индекс 1–4
Task2 correct_option_matches_newton_formula 200 генераций: отмеченный ответ совпадает с x0 - f(x0)/f'(x0) с отклонением менее 0.01
Task2 options_are_pairwise_distinct 200 генераций: разница каждой пары вариантов больше 0.009
Task3 invalidNumberReturnsError Номера 0 и 11 возвращают ошибку и индекс −1
Task3 validTemplatesHaveFourOptions Все шаблоны 1–10 разбираются, содержат четыре варианта и индекс 1–4
Task3 markedOptionHasRequiredAccuracy 300 генераций: смена знака на границах, ошибка относительно независимого расчёта корня не более epsilon + 0.0002
Task3 optionsArePairwiseDistinct 200 генераций: разница каждой пары вариантов не менее 0.009

Случайная генерация означает, что повторные запуски используют разные данные. Эти тесты не покрывают интерфейс, права доступа, TCP и сохранение статистики; для них предусмотрены Тест-кейсы.

Исходники

Копии в Wiki предназначены для просмотра. Собирать нужно из основного репозитория: проекты тестов используют ../task2.cpp и ../task3.cpp.

Запуск в Windows

Откройте терминал комплекта Qt с MinGW, перейдите в папку основного проекта и выполните:

New-Item -ItemType Directory -Force build-tests/task2 | Out-Null
Set-Location build-tests/task2
qmake ../../tests/task2tests.pro
mingw32-make
./release/tst_task2_test.exe
Set-Location ../..

New-Item -ItemType Directory -Force build-tests/task3 | Out-Null
Set-Location build-tests/task3
qmake ../../tests/task3tests.pro
mingw32-make
./release/tst_task3_test.exe

При сборке Debug исполняемые файлы находятся в debug, а не release. Успешный запуск должен завершиться без FAIL и с кодом возврата 0.

Проверка при обновлении Wiki

7 октября 2026 года предпринята сборка обоих наборов в Qt 6.12.0 / MinGW 13.1.0. Оба остановились на этапе qmake: QMAKE_CXX.COMPILER_MACROS is not defined, failed to parse default include paths from compiler output. Тесты не выполнялись; успешное прохождение не подтверждено.