Skip to content

Latest commit

 

History

History
35 lines (21 loc) · 2.12 KB

File metadata and controls

35 lines (21 loc) · 2.12 KB

Домашняя работа №5

Задание 1 (50 баллов)

  1. Используя код из differential_evolution.py, напишите собственный логгер, который будет логировать каждый запуск и каждый логический этап работы алгоритма

  2. Ваш логгер должен сохранять логи с 1, 2, 3 уровнями логирования в файл logging_de.log

  3. Если результат отработки алгоритма больше 1e-3, то логируем результат с уровнем ERROR. Если результат больше 1e-1, то CRITICAL. Также лог должен в себе отражать параметры алгоритма, такие как начальная популяция, размер популяции, количество итераций и тд.

  4. ERROR и CRITICAL должны сохранятся в файл errors.log

  5. Напишите свой форматтер, который будет отражать:

    a. Время логирования в формате datetime

    б. Имя логгера

    в. Уровень логирования

    г. Действие, которое было выполнено

ВАЖНО! Весь код требуется писать в данном файле (logging_de.py), не трогая исходный differential_evolution.py

Задание 2 (50 баллов)

Ваша задача добиться 100% покрытия тестами DifferentialEvolution (что такое покрытие тестами: https://www.atlassian.com/ru/continuous-delivery/software-testing/code-coverage)

Различные этапы тестирования логики разделяйте на различные функции (тесты пишутся в файл test_de.py)

Запуск команды тестирования:

pytest -s test_de.py --cov-report=json --cov

Удачи!

P.S. Не забываем добавлять .gitignore, иначе минус 2 балла.