70 lines
2.0 KiB
Python
70 lines
2.0 KiB
Python
|
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)
|