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)