Тесты к курсу «Язык программирования C++»
Условия лабораторных работ вы можете найти в таблице курса.
Порядок запуска локального тестирования:
-
Склонировать этот репозиторий
git clone https://gitea.mkorn.me/ai360-cpp/public-tests-2026.git -
Инициализировать виртуальную среду Python
-
Скомпилировать разработанную программу
-
Выполнить команду:
python main.py --executable-path <путь к исполняемому файлу> --suite <набор тестов>Примечание. В *nix-подобных системах команда
pythonможет быть недоступна, вместо неё используйте командуpython3. -
Для ускорения отладки рекомендуется создать скрипт, выполняющий шаги 3-4.
-
Для обновления тестов выполнить команду:
git pull
Лабораторные работы
Ниже представлена таблица доступных для тестирования (как локально, так и автоматически в репозиториях) лабораторных работ с названием набора тестов для тестера (suite).
| № | Лабораторная работа | Набор тестов |
|---|---|---|
| 0 | Интро | intro |
| 1 | Представление чисел | fixed_floating |
Скрипт запуска
Note
Вы можете запустить команду
python main.py --helpдля получения справочной информации.
Тестер выполняет тестирование программы методом "чёрного ящика", то есть на вход input программа выдаёт какой-то выход output, который должен быть правильным с точки зрения текущего теста. Необходимыми и достаточными параметрами main.py являются:
--executable-path <path/to/executable>- путь к исполняемому файлу;--suite <name>- выбор задания (набор тестов).
Поскольку отсутствие оптимизации при сборке и санитайзеры могут замедлить вашу программу, то имеет смысл установить множитель максимального времени исполнения процесса на все тесты:
--timeout-factor <float>- множитель максимального времени исполнения порождённого процесса программы (по умолчанию:1.0).
Для генерации полного отчёта (общая информация и информация по каждому тесту) в формате JSON:
--report-output-path <filename>- генерация JSON отчёта с заданным названием файла (по умолчанию: нет генерации).
Имеется возможность проверить программу с поддержанными динамическими анализаторами и дебаггерами:
-
--dynamic-wrapper <choice>- запуск приложения в обёртке динамического анализатора или дебаггера (по умолчанию: нет обёртки).Примечание. Требуемая операционная система: Linux. Обёртки: дебаггер
gdb, динамический анализаторvalgrind.
Виртуальная среда Python
Для тестирования рекомендуется создать виртуальную среду venv и тестироваться через неё. Таким образом, можно поднять уровень изоляции от всей системы и избежать установки конфликтующих библиотек:
-
создание новой среды:
python -m venv venv -
активация текущей командной строки как
venv:source ./venv/bin/activate # на Linux/MacOS (Bash).\venv\Scripts\Activate.ps1 # на Windows (Powershell).\venv\Scripts\activate.bat REM на Windows (CMD) -
установка всех необходимых для тестирования библиотек:
pip install -r requirements.txt