-
Используя код из differential_evolution.py, напишите собственный логгер, который будет логировать каждый запуск и каждый логический этап работы алгоритма
-
Ваш логгер должен сохранять логи с 1, 2, 3 уровнями логирования в файл logging_de.log
-
Если результат отработки алгоритма больше 1e-3, то логируем результат с уровнем ERROR. Если результат больше 1e-1, то CRITICAL. Также лог должен в себе отражать параметры алгоритма, такие как начальная популяция, размер популяции, количество итераций и тд.
-
ERROR и CRITICAL должны сохранятся в файл errors.log
-
Напишите свой форматтер, который будет отражать:
a. Время логирования в формате datetime
б. Имя логгера
в. Уровень логирования
г. Действие, которое было выполнено
ВАЖНО! Весь код требуется писать в данном файле (logging_de.py), не трогая исходный differential_evolution.py
Ваша задача добиться 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 балла.