#!/usr/bin/env fslpython
#
# Another FEEDS test which does some useless busy work.
#

from __future__ import print_function

import sys
import os.path as op
import time
import numpy.random as random
import string
import hashlib


def sha1(data):

    hasher = hashlib.sha512()
    hasher.update(data.encode('ascii'))
    return hasher.hexdigest()


outdir = sys.argv[1]

random.seed(123456)

inputs    = string.ascii_letters + string.digits
inputSize = len(inputs)
repeats   = random.randint(5000000, 10000000)
dataSize  = len(inputs)
data      = ''.join([inputs[random.randint(0, inputSize - 1)] for
                     i in range(dataSize)])

start = time.time()
digest = sha1(data)
for i in range(repeats - 1):
    digest = sha1(digest)

end = time.time()

print('Input:         {}'.format(data))
print('Repeats:       {}'.format(repeats))
print('SHA512:        {}'.format(digest))
print('Calculated in: {} seconds'.format(end - start))


with open(op.join(outdir, 'output.txt'), 'wt') as f:
    f.write('{}\n'.format(data))
    f.write('{}\n'.format(digest))
