Напишите функцию find_extreme_words(), которая принимает на вход строку, представляющую предложение, и возвращает кортеж из наибольшего и наименьшего по длине слова в этом предложении. Предполагается, что слова разделены пробелами.
Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.
Пишите ваши варианты в комментариях.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
# find_extreme_words.py
def find_extreme_words(sentence):
words = sentence.split()
if not words:
return None, None
return max(words, key=len), min(words, key=len)
# test_find_extreme_words.py
import pytest
from find_extreme_words import find_extreme_words
def test_regular_sentence():
assert find_extreme_words("This is a test sentence.") == ("sentence.", "a")
def test_empty_sentence():
assert find_extreme_words("") == (None, None)
def test_sentence_with_whitespace():
assert find_extreme_words(" ") == (None, None)
assert find_extreme_words(" Word spacing test ") == ("spacing", "test")
def test_sentence_with_numbers():
assert find_extreme_words("There are 123 numbers.") == ("There", "123")
assert find_extreme_words("This sentence has 7 words.") == ("sentence", "7")
В данном примере функция find_extreme_words() принимает на вход строку и преобразует ее в список, разбивая по пробелам. Далее, при помощи встроенных функция max() и min(), возвращается кортеж, состоящий из максимального и минимального по длине слова. Тесты проверяют правильность работы функции для различных входных данных.