def main(): try: os.remove('output.txt') print('removed output file!') except Exception as e: print(f'Error: {e}') if sys.argv[1] == "--sequence": start = time.time() processes = [] video = cv2.VideoCapture('video_sample.mp4') w, h = int(video.get(3)), int(video.get(4)) for i in range(int(sys.argv[4])): video.set(cv2.CAP_PROP_POS_FRAMES, time.time() * 1000 % video.get(cv2.CAP_PROP_FRAME_COUNT)) res, frame = video.read() p = multiprocessing.Process(target=worker, args=( frame, w, h, int(sys.argv[2]), int(sys.argv[3]), int(sys.argv[4]), )) processes.append(p) p.start() for process in processes: process.join() end = time.time() with open('output.txt') as f: print( f'{sys.argv[2]} random numbers sequence generated in {end - start}\nentropy: {entropy_handler([int(line.strip()) for line in f if line.strip()], base=2)}' ) f.close() elif sys.argv[1] == "--single": primes = Primes.Primes() rng = RNGutils.RNGutils() print("Single mode\n") video = cv2.VideoCapture('video_sample.mp4') seed = get_seed_from_pixel() video.release() with open("output.txt", "w+") as file: string = f'{rng.single(primes=primes, pixel_seed=seed, rnd_range=int(sys.argv[2]))}\n' if "-" not in string: file.write(string) print(string) file.close()
def worker(seed, length, threads, rnd_range): primes = Primes.Primes() rng = RNGutils.RNGutils() with open("output.txt", "a+") as file: [ file.write(f'{number}\n') for number in rng.sequence(primes=primes, pixel_seed=seed, length=int(length / threads), rnd_range=rnd_range) ] file.close() return
def worker(frame, w, h, length, rnd_range, threads): primes = Primes.Primes() rng = RNGutils.RNGutils() with open("output.txt", "a+") as file: seed = get_seed_from_pixel(frame=frame, w=w, h=h) [ file.write(f'{number}\n') for number in rng.sequence(primes=primes, pixel_seed=seed, length=int(length / threads), rnd_range=rnd_range) ] file.close() return
def main(): check_sysargs(sys.argv) # check if user defined all required parameters primes = Primes.Primes() rng = RNGutils.RNGutils() seed = get_seed_from_pixel() random_array = [] if sys.argv[1] == "--sequence": start = time.time() with open("output.txt", "w+") as file: [(file.write(f'{number}\n'), random_array.append(number)) for number in rng.sequence(primes=primes, pixel_seed=seed, length=sys.argv[2], rnd_range=int(sys.argv[3]))] file.close() end = time.time() plotter.hist(random_array, int(sys.argv[3])) plotter.show() print( f'{sys.argv[2]} random numbers sequence generated in {end - start}\nentropy: {rng.entropy}' ) elif sys.argv[1] == "--single": print("Single mode\n") with open("output.txt", "w+") as file: string = f'{rng.single(primes=primes, pixel_seed=seed, rnd_range=int(sys.argv[2]))}\n' if "-" not in string: file.write(string) print(string) file.close()
def LargestPrimeFactor(n): if isPrime(n): return n p = Primes(int(n**(0.5)) + 2) p.reverse() for i in p: if n % i == 0: return i
def test_ExpectedOutput(self): ''' Checks if returned output is as expected. ''' output = Primes.Primes(19) self.assertEqual(output, "true")