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)