Загружаю ДЗ с доработанной функцией verify

This commit is contained in:
ehermakov 2023-08-04 18:20:33 +03:00
parent b2dea68c89
commit 811b478b1c
1 changed files with 122 additions and 72 deletions

View File

@ -1,72 +1,122 @@
import re import re
import numpy as np import numpy as np
def verify(message, expected, actual):
a = "=========================" def verify(message, expected, actual):
print(a) a = "========================="
print(message) print(a)
if actual != expected: print(message)
print("FAILED!") if type(actual) != type(expected) or actual != expected:
print(a) print("FAILED!")
return False
else: print(f"Expected value: {expected}")
print("SUCCESS!") print(f"Actual value: {actual}")
print(a)
return True print(a)
return False
else:
print("SUCCESS!")
def verify_all(dataset): print(a)
summa_success = int() return True
summa_failed = int()
for result in dataset:
if verify(result[0], result[1], result[2]): def verify_all(dataset):
summa_success += 1 summa_success = int()
else: summa_failed = int()
summa_failed += 1 for result in dataset:
print("Total:", len(dataset), "Successful:", summa_success, "Failed:", summa_failed) if verify(result[0], result[1], result[2]):
return True summa_success += 1
else:
summa_failed += 1
print("Total:", len(dataset), "Successful:", summa_success, "Failed:", summa_failed)
return True
def min_array(array):
min = array[0]
for i in array: def word_count(text):
if i < min:
min = i if text is None:
return min return []
if not isinstance(text, str):
def max_array(array): return []
max = array[0]
for i in array: c = []
if i > max: final = {}
max = i a = re.sub("[^А-Яа-я-A-Z-a-z ]", " ", text).lower()
return max b = str(a).split()
c = list(b)
unique_array, count_array = np.unique(c, return_counts=True)
final = zip(unique_array, count_array)
def word_count(text): final2 = list(final)
c = [] return final2
final = {}
a = re.sub("[^А-Яа-я-A-Z-a-z ]", "", text).lower()
b = str(a).split() def sum_letters_in_sentence(dataset_sentence):
c = list(b)
unique_array, count_array = np.unique(c, return_counts=True) if dataset_sentence is None:
final = zip(unique_array, count_array) return -1, -1
final2 = list(final)
return final2 if not isinstance(dataset_sentence, str):
return -1, -1
lower = 0
f = 'Я пришел, я ушел, я нашел' upper = 0
array = [2, 3, 5, 8, 89, 65, 75, 7895, 2, 1, 1] for count in dataset_sentence:
if count.isalpha():
if count.islower():
dataset = [("Test1", 3, min_array(array)), ("Test2", 7895, max_array(array)), lower += 1
("Test3", [('нашел', 1), ('пришел', 1), ('ушел', 1), ('я', 3)], word_count(f))] else:
upper += 1
verify_all(dataset) return upper, lower
# Функция, которая считает кол-во больших и маленьких букв в строке.
# Тип возвращаемого значения - двуразрядный кортеж,
# где первый элемент - кол-во больших букв,
# а второй элемент - кол-во маленьких букв.
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(dataset2)