Здравствуйте. Есть задание - покрыть тестами минимум 80% кода (coverage)
def anagram(word: str) -> str:
resoult_list = []
for char in word:
if char.isalpha():
resoult_list.append(char)
resoult_list.reverse()
for index, char in enumerate(word):
if not char.isalpha():
resoult_list.insert(index, char)
return ''.join(resoult_list)
def reverse_string(s: str) -> str:
tasks_list = s.split(' ')
answer = []
for task in tasks_list:
answer.append(anagram(task))
return ' '.join(answer)
Проблема состоит вот в чем... Когда я написал тесты (код будет ниже), то функция reverse_string у меня получилась не покрыта. Когда я написал тесты только под эту функцию, она все-равно не покрыта, а anagram покрыта, хотя я ее не вызывал в тестах (я понимаю, что reverse_string ее использует). Перебрав кучу вариантов, я остановился на том, что мне как-то нужно проверить методы split и join. Вопрос... Как это сделать? Заранее спасибо, ниже код тестов
from unittest import TestCase, main
import anagrams
class AnagramTests(TestCase):
def test_anagram_word(self):
self.assertEqual(anagrams.anagram('abcde'), 'edcba')
def test_anagram_number(self):
self.assertEqual(anagrams.anagram('12345'), '12345')
def test_with_symbol(self):
self.assertEqual(anagrams.anagram('t!ext'), 't!xet')
def test_multiple_symbol(self):
self.assertEqual(anagrams.anagram('as@q!#we'), 'ew@q!#sa')
def test_multiple_space(self):
self.assertEqual(anagrams.anagram(' '), ' ')
def test_reverse_string_empty_string(self):
self.assertEqual(anagrams.reverse_string(''), '')
def test_multiple_words(self):
self.assertEqual(anagrams.reverse_string('abcd efgh xyz'), 'dcba hgfe zyx')
def test_many_words_whith_symbol(self):
self.assertEqual(anagrams.reverse_string('a1bcd efg!h'), 'd1cba hgf!e')