Для удобства можно пользоваться папкой lib, все файлы из этой папки будут подключаться к любой задаче
Можно получить дополнительные баллы, если добавить интересные текстовые задачи. Необходимы текст задачи, решение и тесты. Каждая задача отдельный ПР, полчуть дополнительные баллы можно только если пулл реквест замержен в основную ветку.
Можно получить дополнительные баллы, если добавить теорию в папку doc. Делается в отдельном ПР, полчуть дополнительные баллы можно только если пулл реквест замержен в основную ветку.
- doc - теория, которую добавляет преподаватель или студенты
- lib - папка для ваших структур, которые вы используете во множестве задач
- additional tasks - сюда обычно оформляются особые задания от преподавателя (как дополнительная теория, или личные задания)
Каждое задание выглядит так:
- task_N
- src
- main.cpp - нужен для вашего личного тестирования результата. Для проверки он не используется
- test.cpp - здесь в должны написать тестирование вашего алгоритма с помощью <gtest/gtest.h>
- CMakeLists.txt
- README.md - тут описано задание и требования к используемому алгоритму
- src
- Создайте fork этого репозитория
- Перейдите в него, и найдите зеленую кнопку Code
- В открывающемся списке выберите левую вкладку Codespaces
- Создайте новое окружение (метка "+") или откройте старое
Готово!
- При работе с заданиями желательно создавать файлы .hpp и .cpp с заданием, причем .hpp - именно заголовочный файл, который будет импортироваться вами в test.cpp для тестирования
- Если вы работаете через VS Code, то чтобы поменять цель сборки, нажмите Ctrl+p, и введите >CMake: Set Launch/Debug Target
- Если при запуске тестов консоль остается пустой, проверьте что int main() внутри main.cpp соответствующего задания пуст
- Если вся среда неожиданно зависла и очень долго пытается соединиться с сервером - попробуйте выключить интернет на 10 секунд и включить снова. Если не помогает - ищите более надежную сеть(
- При ошибке ./googletest/src/gtest-internal-inl.h:685:: Condition !original_working_dir_.IsEmpty() failed проверьте что структура задания не нарушена: main.cpp, test.cpp
Шаблон теста:
#include <gtest/gtest.h>
Test(test_name, test_number) {
/* code */
ASSERT_EQ(expected_value, real_value); // лучше сравнивать что то простое, например bool и int
}