добавлены тесты и реализация. Задача 8.