/
eb
/
python_learn
Обзор
Документация
Войти
/
eb
/
python_learn
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
test/yandex_test/test_invertor.py
53 строки
2 KB
EvgeniyBudaev
TDD
26 май 2021, 07:52
26 май 2021, 07:52
7584e3a
Код
Авторство
О чём код?
def test_invert(invertaser): """Тест алгоритма инвертирования строки.""" print(f'{test_invert.__doc__}') print(f'Тестирование алгоритма {invertaser.__name__}') source = 'Попугай' inversed = 'йагупоП' assert invertaser(source) == inversed, ( f'Алгоритм в {invertaser.__name__} работает неправильно со строкой "{source}" ') source = '' inversed = '' assert invertaser(source) == inversed, ( f'Алгоритм {invertaser.__name__} работает неправильно с пустой строкой') print(f'Тест для {invertaser.__name__} пройден успешно') # Ниже - несколько функций, инвертирующих строку. # Их и будем тестировать. def recursion_invertor(text): """Инвертирует строчку рекурсивно""" if len(text) == 0: return text else: return recursion_invertor(text[1:]) + text[0] def slice_invertor(text): """Инвертирует строчку срезом""" return text[::-1] def iterator_invertor(text): """Инвертирует строчку обратной итерацией""" return ''.join(reversed(text)) def reverselist_invertor(text): """Инвертирует строчку переворотом списка""" inversed_list = list(text) inversed_list.reverse() return ''.join(inversed_list) # Вызов тестирующей функции для каждой функции-инвертора test_invert(recursion_invertor) test_invert(slice_invertor) test_invert(iterator_invertor) test_invert(reverselist_invertor)