hnc-daniil/HNC/Exercises/Prime_Generator/testing_prime_numbers.py

93 lines
2.8 KiB
Python
Raw Permalink Normal View History

2023-08-08 09:55:32 +02:00
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)