Skip to content

Public tests for C/C++ programming course

se-c-cpp-prog/public-tests-2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тесты к курсу «Основы программирования»

Условия лабораторных работ вы можете найти в таблице курса.

Порядок запуска локального тестирования:

  1. Склонировать этот репозиторий

  2. Инициализировать виртуальную среду Python

  3. Скомпилировать разработанную программу

  4. Проверить, что создался исполняемый файл (в Windows по умолчанию это a.exe, в Linux - a.out)

  5. В каталоге, в котором находится этот файл, выполнить команду:

    python <путь к main.py> --program <путь к исполняемому файлу> --suite <набор тестов>
  6. Для ускорения отладки рекомендуется создать скрипт, выполняющий шаги 3-5.

  7. Для обновления тестов, находясь в директории репозитория, выполнить команду:

    git pull

Лабораторные работы

Ниже представлена таблица доступных для тестирования (как локально, так и автоматически в репозиториях) лабораторных работ с названием набора тестов для тестера (suite).

Лабораторная работа Набор тестов
0 Сумма чисел sum
1 Матричный калькулятор math

Скрипт запуска

Note

Вы можете запустить команду python main.py --help для получения справочной информации.

Тестер выполняет тестирование программы методом "чёрного ящика", то есть на вход input программа выдаёт какой-то выход output, который должен быть правильным с точки зрения текущего теста. Необходимыми и достаточными параметрами main.py являются:

  • --program <path/to/executable> - путь к исполняемому файлу;
  • --suite <name> - выбор задания (набор тестов).

Поскольку отсутствие оптимизации при сборке (например, с ключом -O0 -g для дебага программы) и санитайзеры могут замедлить вашу программу, то имеет смысл установить множитель максимального времени исполнения процесса на все тесты:

  • --timeout-factor <float> - множитель максимального времени исполнения порождённого процесса программы (по умолчанию - 1.0).

Для генерации полного отчёта (общая информация и информация по каждому тесту) в формате JSON:

  • --json-output-name <filename> - генерация JSON отчёта с заданным названием файла (по умолчанию нет генерации).

Виртуальная среда Python

Для тестирования рекомендуется создать виртуальную среду venv и тестироваться через неё. Таким образом, можно поднять уровень изоляции от всей системы и избежать установки конфликтующих библиотек:

  1. создание новой среды:

    python -m venv venv
    # или: python3 -m venv venv
  2. активация текущей командной строки как venv:

    source ./venv/bin/activate
    # на Linux/MacOS (Bash)
    .\venv\Scripts\Activate.ps1
    # на Windows (Powershell)
    .\venv\Scripts\activate.bat
    REM на Windows (CMD)
  3. установка всех необходимых для тестирования библиотек:

    pip install -r requirements.txt