def testbench():
plaintext_iter = xrange(plaintext_len_min, plaintext_len_max+plaintext_len_step, plaintext_len_step)
key_len_iter = xrange(key_len_min, key_len_max+key_len_step, key_len_step)
result = [[]]
total_progress = len(plaintext_iter)*len(key_len_iter)*iterations
progress = 0
average_time = 0
time_file = open('testbench_times.txt', 'w')
print "Running Testbench"
start_time = datetime.now()
result.append([0] + list(key_len_iter))
for plaintext_len in plaintext_iter:
same_plaintext_len_results = [plaintext_len]
for key_len in key_len_iter:
single_result = 0
for iteration in xrange(iterations):
start_run_time = time.time()
score = test_run(plaintext_len, key_len)
single_result += score
end_run_time = time.time()
time_file.write(str(end_run_time-start_run_time) + '\n')
average_time += end_run_time - start_run_time
progress += 1
update_progress(progress/float(total_progress+1), status="keylength: %d, textlength: %d " % (key_len, plaintext_len))
same_plaintext_len_results.append(float(single_result)/iterations)
result.append(same_plaintext_len_results)
end_time = datetime.now()
update_progress(1, done='Completed in %s hours ' % str(end_time-start_time).rsplit('.')[0])
print 'average time per break run: %.1f' % (average_time/total_progress)
time_file.close()
with open('testbench.txt', 'w') as file:
file.writelines('\t'.join(str(j) for j in i) + '\n' for i in result)
file.close()
评论列表
文章目录