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