New Homework
This commit is contained in:
parent
95bcfe15e1
commit
65b627e032
|
@ -0,0 +1,93 @@
|
|||
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
|
||||
|
||||
# def prime_generator(n):
|
||||
# primes = []
|
||||
# if type(n) is int and n >= 2:
|
||||
# sieve = [True] * n
|
||||
# for i in range(2, n-1):
|
||||
# if sieve:
|
||||
# for j in range(2*i, n, i):
|
||||
# sieve[j] = False
|
||||
# for p in range(2, n):
|
||||
# if sieve[p]:
|
||||
# primes.append(p)
|
||||
# return primes
|
||||
# else:
|
||||
# return False
|
||||
|
||||
# dataset3 = [
|
||||
# ("genarator1", [2, 3, 5, 7, 11, 13, 17, 19, 23, 29], prime_generator(30)),
|
||||
# ("genarator2", [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47], prime_generator(50)),
|
||||
# ("genarator3", [2, 3, 5, 7, 11, 13], prime_generator(15)),
|
||||
# ("genarator4", [2, 3, 5, 7], prime_generator(10)),
|
||||
# ]
|
||||
|
||||
# verify_all(dataset3)
|
||||
|
||||
def prime_generator(n):
|
||||
primes = []
|
||||
if type(n) is int and n >= 2:
|
||||
sieve = [True] * n
|
||||
for i in range(2, n + 1):
|
||||
if sieve:
|
||||
for j in range(2*i, n, i):
|
||||
sieve[j] = False
|
||||
for p in range(2, n):
|
||||
if sieve[p]:
|
||||
primes.append(p)
|
||||
return primes
|
||||
else:
|
||||
return []
|
||||
|
||||
|
||||
|
||||
dataset = [ # Проверочные тесты, что вообще что-то работает
|
||||
("prime_generator0", ([]), prime_generator(2)),
|
||||
("prime_generator1", ([2, 3, 5, 7, 11, 13]), prime_generator(15)),
|
||||
("prime_generator2", ([2]), prime_generator(3)),
|
||||
("prime_generator3", ([]), prime_generator(-2)),
|
||||
("prime_generator4", ([2, 3, 5, 7]), prime_generator(10)),
|
||||
|
||||
# Тесты на пустые значения
|
||||
("prime_generator5", ([]), prime_generator('')),
|
||||
("prime_generator6", ([]), prime_generator(None)),
|
||||
|
||||
# Тесты на неверный тип
|
||||
("prime_generator7", ([]), prime_generator("jvfenfrufrfur")),
|
||||
("prime_generator8", ([]), prime_generator(True)),
|
||||
|
||||
# Тесты на редкие случаи
|
||||
("prime_generator_with_float_number", ([]), prime_generator(1.5)),
|
||||
("prime_generator_with_numbers_in_array", ([]), prime_generator([23])),
|
||||
("prime_generator11", ([]), prime_generator(' ..,..,,2')),
|
||||
]
|
||||
|
||||
|
||||
verify_all(dataset)
|
|
@ -1,4 +1,13 @@
|
|||
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:
|
||||
|
@ -14,34 +23,89 @@ def upper_letter_count(dataset_sentence):
|
|||
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):
|
||||
lower=0
|
||||
upper=0
|
||||
result = lower + upper
|
||||
|
||||
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.islower()):
|
||||
lower+=1
|
||||
else:
|
||||
upper+=1
|
||||
return result
|
||||
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, actual, expected):
|
||||
def verify(message, expected, actual):
|
||||
a = "========================="
|
||||
print(a)
|
||||
print(message)
|
||||
if actual != expected:
|
||||
print("=======> FAILED! <=======")
|
||||
print(f"Got value <{actual}>")
|
||||
print(f"Expected value is <{expected}>")
|
||||
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()
|
||||
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"]
|
||||
|
@ -57,39 +121,50 @@ dataset_number1 = [23, 34, 89, 12, -12, 92, 123, 9, 204, -34, -100, 34, 19, 67,
|
|||
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]
|
||||
|
||||
sum_dataset_test = [dataset_number1, dataset_number2, dataset_number3, [], [0]]
|
||||
upper_letter_count_test = [dataset_sentence1, dataset_sentence2, dataset_sentence3, '']
|
||||
lower_letter_count_test = [dataset_sentence4, dataset_sentence5, dataset_sentence6, '']
|
||||
sum_letters_in_sentence_test = [dataset_sentence7, dataset_sentence8, dataset_sentence9, '']
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
for i in range(len(sum_dataset_test)):
|
||||
result = sum_dataset(sum_dataset_test[i])
|
||||
expected = sum(sum_dataset_test[i])
|
||||
verify(f"SUM_DATASET TEST {i+1}", result, expected)
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
for i in range(len(upper_letter_count_test)):
|
||||
sentence = upper_letter_count_test[i]
|
||||
expected_result = sum(1 for letter in sentence if letter.isupper()) if isinstance(sentence, str) else 0
|
||||
verify(f"UPPER_LETTER_COUNT TEST {i+1}", upper_letter_count(sentence), expected_result)
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
for i in range(len(lower_letter_count_test)):
|
||||
sentence = lower_letter_count_test[i]
|
||||
expected_result = sum(1 for letter in sentence if letter.islower()) if isinstance(sentence, str) else 0
|
||||
verify(f"LOWER_LETTER_COUNT TEST {i+1}", lower_letter_count(sentence), expected_result)
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
for i in range(len(sum_letters_in_sentence_test)):
|
||||
sentence = sum_letters_in_sentence_test[i]
|
||||
expected_upper = sum(1 for letter in sentence if letter.isupper()) if isinstance(sentence, str) else 0
|
||||
expected_lower = sum(1 for letter in sentence if letter.islower()) if isinstance(sentence, str) else 0
|
||||
expected_result = expected_upper + expected_lower
|
||||
verify(f"SUM_LETTERS_IN_SENTENCE TEST {i+1}", sum_letters_in_sentence(sentence), expected_result)
|
||||
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)
|
||||
|
||||
########################################################################################################################
|
Loading…
Reference in New Issue