Загрузка данных


# Инструкция по запуску тестов

Помимо тестов на корректные выходные данные система автотестирования будет
проверять твою программу и ее исходный код по следующим пунктам:

* **Стилевые тесты.** При написании кода на _C_ и _C++_ необходимо придерживаться _Google C++ Style Guide_. Чтобы проверить, насколько красота твоего кода соответствует стандартам, ты можешь протестировать его с помощью утилиты _clang-format_. В папке ```materials/linters``` лежит файл ```.clang-format```, который содержит необходимые настройки для стилевого теста. Данный конфигурационный файл распространяет свое действие на все файлы, которые лежат с ним в директории или в директориях ниже. Поэтому чтобы данные настройки применились к твоим файлам с исходным кодом, скопируй ```.clang-format``` в папку src. \
  \
  Чтобы запустить проверку на стиль, выполни следующую команду: \
  ```clang-format -n src/sourcefile_name.c``` 

  Необходимая версия clang-format: \
  **Mac** 18.1.8 \
  **Linux** 18.1.8

* **Тест на корректную работу с памятью.** При написании C-программ очень важно следить за утечками памяти. Для этого в Unix-подобных операционных системах довольно часто используют утилиту _valgrind_. Однако на OS X имеются проблемы с поддержкой valgrind, поэтому вместо нее можно использовать утилиту _leaks_. Вдаваться в механизм работы этих утилит мы сейчас не будем — если интересно, можешь почитать в гугле.
  
 #### _LEAKS (для MacOS)_

  **Важно!** Если ты используешь Unix-подобную систему (например, Ubuntu / Linux Mint / Debian), перейди в пункт с [инструкцией по использованию VALGRIND](#valgrind-для-ubuntu--linux-mint--debian).

  Чтобы запустить свой исполняемый файл с помощью этой утилиты, набери в терминале: \
  ```leaks -atExit -- ./main.out | grep LEAK:```
  
  Обрати внимание на команду ```| grep LEAK:```. Мы используем ее для короткого вывода, чтобы видеть только линии с утечками, если они есть. Если ты хочешь увидеть весь вывод, просто удали эту команду. 

  При запуске исполняемого файла с помощью _leaks_ может появиться сообщение об ошибке:
  >dyld: could not load inserted library ‘/usr/local/lib/libLeaksAtExit.dylib’ because image not found
  
  Ошибка возникает из-за того, что _leaks_ не может найти библиотеку _libLeaksAtExit.dylib_. \
  В этом случае тебе необходимо ввести следующие команды:
  ```sh
  cd /usr/local/lib  
  ln -s /Applications/Xcode.app/Contents/Developer/usr/lib/libLeaksAtExit.dylib
  ```

  _Дополнительно:_ \
  Используй флаг ```-exclude``` утилиты _leaks_ для того, чтобы отфильтровать утечки в функциях, где известно об утечках памяти. Этот флаг позволяет уменьшить количество посторонней информации, сообщаемой _leaks_.

  ---

  #### _VALGRIND (для Ubuntu / Linux Mint / Debian)_
  
  Чтобы запустить свой исполняемый файл с помощью этой утилиты, набери в терминале: \
  ```valgrind --tool=memcheck --leak-check=yes  ./main.out```

  Не рекомендуется использовать _valgrind_ на OS X, вместо нее лучше использовать [_leaks_](#leaks-для-macos).