Загружаю ДЗ с доработанной функцией verify
This commit is contained in:
parent
b2dea68c89
commit
811b478b1c
|
@ -1,12 +1,17 @@
|
||||||
import re
|
import re
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
def verify(message, expected, actual):
|
def verify(message, expected, actual):
|
||||||
a = "========================="
|
a = "========================="
|
||||||
print(a)
|
print(a)
|
||||||
print(message)
|
print(message)
|
||||||
if actual != expected:
|
if type(actual) != type(expected) or actual != expected:
|
||||||
print("FAILED!")
|
print("FAILED!")
|
||||||
|
|
||||||
|
print(f"Expected value: {expected}")
|
||||||
|
print(f"Actual value: {actual}")
|
||||||
|
|
||||||
print(a)
|
print(a)
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
@ -15,7 +20,6 @@ def verify(message, expected, actual):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def verify_all(dataset):
|
def verify_all(dataset):
|
||||||
summa_success = int()
|
summa_success = int()
|
||||||
summa_failed = int()
|
summa_failed = int()
|
||||||
|
@ -28,29 +32,17 @@ def verify_all(dataset):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def min_array(array):
|
|
||||||
min = array[0]
|
|
||||||
for i in array:
|
|
||||||
if i < min:
|
|
||||||
min = i
|
|
||||||
return min
|
|
||||||
|
|
||||||
|
|
||||||
def max_array(array):
|
|
||||||
max = array[0]
|
|
||||||
for i in array:
|
|
||||||
if i > max:
|
|
||||||
max = i
|
|
||||||
return max
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def word_count(text):
|
def word_count(text):
|
||||||
|
|
||||||
|
if text is None:
|
||||||
|
return []
|
||||||
|
|
||||||
|
if not isinstance(text, str):
|
||||||
|
return []
|
||||||
|
|
||||||
c = []
|
c = []
|
||||||
final = {}
|
final = {}
|
||||||
a = re.sub("[^А-Яа-я-A-Z-a-z ]", "", text).lower()
|
a = re.sub("[^А-Яа-я-A-Z-a-z ]", " ", text).lower()
|
||||||
b = str(a).split()
|
b = str(a).split()
|
||||||
c = list(b)
|
c = list(b)
|
||||||
unique_array, count_array = np.unique(c, return_counts=True)
|
unique_array, count_array = np.unique(c, return_counts=True)
|
||||||
|
@ -59,14 +51,72 @@ def word_count(text):
|
||||||
return final2
|
return final2
|
||||||
|
|
||||||
|
|
||||||
|
def sum_letters_in_sentence(dataset_sentence):
|
||||||
|
|
||||||
f = 'Я пришел, я ушел, я нашел'
|
if dataset_sentence is None:
|
||||||
|
return -1, -1
|
||||||
|
|
||||||
array = [2, 3, 5, 8, 89, 65, 75, 7895, 2, 1, 1]
|
if not isinstance(dataset_sentence, str):
|
||||||
|
return -1, -1
|
||||||
|
|
||||||
|
lower = 0
|
||||||
|
upper = 0
|
||||||
|
|
||||||
|
for count in dataset_sentence:
|
||||||
|
if count.isalpha():
|
||||||
|
if count.islower():
|
||||||
|
lower += 1
|
||||||
|
else:
|
||||||
|
upper += 1
|
||||||
|
|
||||||
|
return upper, lower
|
||||||
|
# Функция, которая считает кол-во больших и маленьких букв в строке.
|
||||||
|
# Тип возвращаемого значения - двуразрядный кортеж,
|
||||||
|
# где первый элемент - кол-во больших букв,
|
||||||
|
# а второй элемент - кол-во маленьких букв.
|
||||||
|
|
||||||
|
|
||||||
dataset = [("Test1", 3, min_array(array)), ("Test2", 7895, max_array(array)),
|
|
||||||
("Test3", [('нашел', 1), ('пришел', 1), ('ушел', 1), ('я', 3)], word_count(f))]
|
|
||||||
|
|
||||||
|
dataset = [# Проверочные тесты, что вообще что-то работает
|
||||||
|
("slis0", (4, 6), sum_letters_in_sentence("АаБбВвГгдд")),
|
||||||
|
("slis1", (6, 4), sum_letters_in_sentence("AaBbCcDdEE")),
|
||||||
|
("slis2", (10, 10), sum_letters_in_sentence("AaBbCcDdEEАаБбВвГгдд")),
|
||||||
|
("slis3", (10, 10), sum_letters_in_sentence("A aBbC cDdEE АаБб ВвГг дд")),
|
||||||
|
("slis4", (10, 10), sum_letters_in_sentence("Aa,.BbCc%&§DdEEА&/(аБбВвГгдд")),
|
||||||
|
|
||||||
|
# Тесты на пустые значения
|
||||||
|
("slis5", (0, 0), sum_letters_in_sentence('')),
|
||||||
|
("slis6", (-1, -1), sum_letters_in_sentence(None)),
|
||||||
|
|
||||||
|
# Тесты на неверный тип
|
||||||
|
("slis7", (-1, -1), sum_letters_in_sentence(123)),
|
||||||
|
("slis8", (-1, -1), sum_letters_in_sentence(True)),
|
||||||
|
|
||||||
|
# Тесты на редкие случаи
|
||||||
|
("slis9", (0, 0), sum_letters_in_sentence('123')),
|
||||||
|
("slis10", (0, 1), sum_letters_in_sentence('a')),
|
||||||
|
("slis11", (1, 0), sum_letters_in_sentence('B')),
|
||||||
|
("slis12", (0, 0), sum_letters_in_sentence(' ')),
|
||||||
|
]
|
||||||
|
|
||||||
|
dataset2 = [# Проверочные тесты, что вообще что-то работает
|
||||||
|
("word_count0", [('нашел', 1), ('пришел', 1), ('ушел', 1), ('я', 3)], word_count('Я пришел, я ушел, я нашел')),
|
||||||
|
("word_count1", [('слово', 4), ('точно', 1)], word_count("Слово: Слово! Точно слово? Слово...")),
|
||||||
|
|
||||||
|
# Тесты на пустые значения
|
||||||
|
("word_count2", [], word_count('')),
|
||||||
|
("word_count3", [], word_count(None)),
|
||||||
|
|
||||||
|
# Тесты на неверный тип
|
||||||
|
("word_count4", [], word_count(123)),
|
||||||
|
("word_count5", [], word_count(True)),
|
||||||
|
|
||||||
|
# Тесты на редкие случаи
|
||||||
|
("word_count6", [('слово', 1)], word_count("Слово")),
|
||||||
|
("word_count7", [('слово', 1)], word_count("Слово ")),
|
||||||
|
("word_count8", [('слово', 1)], word_count(" Слово")),
|
||||||
|
("word_count9", [('слово', 2)], word_count("Слово.Слово")),
|
||||||
|
]
|
||||||
|
|
||||||
verify_all(dataset)
|
verify_all(dataset)
|
||||||
|
verify_all(dataset2)
|
||||||
|
|
Loading…
Reference in New Issue