hnc-daniil/HNC/Exercises/Selfmade_Testing/testing.py

170 lines
5.7 KiB
Python
Raw Normal View History

2023-08-08 09:55:32 +02:00
import re
import numpy as np
2023-07-19 23:33:55 +02:00
def sum_dataset(dataset_number):
2023-08-08 09:55:32 +02:00
if dataset_number is None:
return -1, -1
if not isinstance(dataset_number, str):
return -1, -1
2023-07-19 23:33:55 +02:00
sum = 0
for a in dataset_number:
sum += a
return sum
def upper_letter_count(dataset_sentence):
upper = 0
for count in dataset_sentence:
if count.isupper():
upper += 1
return upper
def lower_letter_count(dataset_sentence):
2023-08-08 09:55:32 +02:00
if dataset_sentence is None:
return -1, -1
if not isinstance(dataset_sentence, str):
return -1, -1
2023-07-19 23:33:55 +02:00
lower = 0
2023-08-08 09:55:32 +02:00
2023-07-19 23:33:55 +02:00
for count in dataset_sentence:
if count.islower():
lower += 1
2023-08-08 09:55:32 +02:00
2023-07-19 23:33:55 +02:00
return lower
def sum_letters_in_sentence(dataset_sentence):
2023-08-08 09:55:32 +02:00
if dataset_sentence is None:
return -1, -1
if not isinstance(dataset_sentence, str):
return -1, -1
lower = 0
upper = 0
2023-07-19 23:33:55 +02:00
for count in dataset_sentence:
2023-08-08 09:55:32 +02:00
if count.isalpha():
if count.islower():
lower += 1
else:
upper += 1
return upper, lower
def word_count(text):
if text is None:
return []
if not isinstance(text, str):
return []
c = []
final = {}
a = re.sub("[^А-Яа-я-A-Z-a-z ]", " ", text).lower()
b = str(a).split()
c = list(b)
unique_array, count_array = np.unique(c, return_counts=True)
final = zip(unique_array, count_array)
final2 = list(final)
return final2
2023-07-19 23:33:55 +02:00
########################################################################################################################
2023-08-08 09:55:32 +02:00
def verify(message, expected, actual):
a = "========================="
print(a)
2023-07-19 23:33:55 +02:00
print(message)
2023-08-08 09:55:32 +02:00
if type(actual) != type(expected) or actual != expected:
print("FAILED!")
print(f"Expected value: {expected}")
print(f"Actual value: {actual}")
print(a)
return False
2023-07-19 23:33:55 +02:00
else:
print("SUCCESS!")
2023-08-08 09:55:32 +02:00
print(a)
return True
def verify_all(dataset):
summa_success = int()
summa_failed = int()
for result in dataset:
if verify(result[0], result[1], result[2]):
summa_success += 1
else:
summa_failed += 1
print("Total:", len(dataset), "\nSuccessful:", summa_success, "\nFailed:", summa_failed)
return True
2023-07-19 23:33:55 +02:00
dataset_sentence1 = ["My Year was so Great, but it was hard!"]
dataset_sentence2 = ["HeakfhZUWmvbhfPEHFHT123"]
dataset_sentence3 = ["Madame, I demand, I am a maid named Angelo"]
dataset_sentence4 = ["bAgahaJemanbDneorIJahdhrEa4"]
dataset_sentence5 = ["The World is not enough"]
dataset_sentence6 = ["SaipPuakivIkAuPpias"]
dataset_sentence7 = ["i lOve tO reAd bOoKs, esPecIaLly mysTerY nOvels"]
dataset_sentence8 = ["i aM eNjoyiNg thiS coOl weatHer, It's so rEfReshing"]
dataset_sentence9 = ["i HaVe a dOg namEd bUddy, hE iS a fRienDlY aNd fUn cOmPanion"]
dataset_number1 = [23, 34, 89, 12, -12, 92, 123, 9, 204, -34, -100, 34, 19, 67, -1]
dataset_number2 = [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
dataset_number3 = [927, 142, -816, 682, -6599, 1000, -8, 334, 0, 6654, -8361, 555, 121, 680]
########################################################################################################################
2023-08-08 09:55:32 +02:00
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)
2023-07-19 23:33:55 +02:00
########################################################################################################################