hnc-eduard/HNS/Excercises/07082023 Найти простые числ.../main.py

70 lines
2.0 KiB
Python
Raw Normal View History

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), "Successful:", summa_success, "Failed:", 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 []
dataset = [ # Проверочные тесты, что вообще что-то работает
("prime_generator0", ([]), prime_generator(2)),
("prime_generator1", ([2, 3, 5]), prime_generator(7)),
("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("fgfg")),
("prime_generator8", ([]), prime_generator(True)),
# Тесты на редкие случаи
("prime_generator9", ([]), prime_generator(1.5)),
("prime_generator10", ([]), prime_generator([23])),
("prime_generator11", ([]), prime_generator(' ..,..,,2')),
]
verify_all(dataset)