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

170 lines
5.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import re
import numpy as np
def sum_dataset(dataset_number):
if dataset_number is None:
return -1, -1
if not isinstance(dataset_number, str):
return -1, -1
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):
if dataset_sentence is None:
return -1, -1
if not isinstance(dataset_sentence, str):
return -1, -1
lower = 0
for count in dataset_sentence:
if count.islower():
lower += 1
return lower
def sum_letters_in_sentence(dataset_sentence):
if dataset_sentence is None:
return -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
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
########################################################################################################################
def verify(message, expected, actual):
a = "========================="
print(a)
print(message)
if type(actual) != type(expected) or actual != expected:
print("FAILED!")
print(f"Expected value: {expected}")
print(f"Actual value: {actual}")
print(a)
return False
else:
print("SUCCESS!")
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
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]
########################################################################################################################
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)
########################################################################################################################