Exemple #1
0
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()
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #6
0
 def test_ExpectedOutput(self):
     '''
     Checks if returned output is as expected.
     '''
     output = Primes.Primes(19)
     self.assertEqual(output, "true")