diff --git a/parse_logic.py b/parse_logic.py index 2d1fc16..c37aa6c 100755 --- a/parse_logic.py +++ b/parse_logic.py @@ -2,12 +2,12 @@ import os import sys -import re +import statistics def parse_capture(filename): f = open('measurements/' + filename) - #counter = 0 - counter = 1 + # Skip the first two false positves (risky) + counter = -1 lets_use_a_flag = False six_ts = '' two_ts = '' @@ -17,17 +17,18 @@ def parse_capture(filename): l_array = l.split(" ") bit_field = l_array[-1][:-1] # l_array? That's the best you came up with? - if bit_field == '6': - six_ts = l_array[0][:-1] + if bit_field == '2': + two_ts = l_array[0][:-1] lets_use_a_flag = True continue if lets_use_a_flag: - if bit_field == '2': - #if counter == 0: - #counter = counter + 1 - #continue - two_ts = l_array[0][:-1] - delta = float(two_ts) - float(six_ts) + if bit_field == '6': + if counter <= 0: + counter = counter + 1 + lets_use_a_flag = False + continue + six_ts = l_array[0][:-1] + delta = float(six_ts) - float(two_ts) if counter % 2 == 1: enc_deltas[(counter+1)/2] = delta else: @@ -36,12 +37,23 @@ def parse_capture(filename): else: lets_use_a_flag = False f.close() - for key in enc_deltas: - print("Vector %d was encrypted in %f seconds" % (key, enc_deltas[key])) - for key in dec_deltas: - print("Vector %d was decrypted in %f seconds" % (key, dec_deltas[key])) - print(len(enc_deltas)) - print(len(dec_deltas)) + + print("Average enc time[s] = %f" % (statistics.mean(enc_deltas.values()))) + print("Average dec time[s] = %f" % (statistics.mean(dec_deltas.values()))) + print() + #for key in enc_deltas: + #print("Vector %d was encrypted in %f seconds" % (key, enc_deltas[key])) + #for key in dec_deltas: + #print("Vector %d was decrypted in %f seconds" % (key, dec_deltas[key])) + + enc_len = len(enc_deltas) + dec_len = len(dec_deltas) + + if dec_len != enc_len: + raise Exception("#Encryptions (%d) does not match #decryptions (%d)" % (enc_len, dec_len)) + + if dec_len != 1089 or enc_len != 1089: + raise Exception("#Number of encrypted test vectors (%d)/ decrypted test vectors (%d) does not match guidelines (1089)" % (enc_len, dec_len)) def read_log(d): # Soo readlines, much efficient @@ -60,14 +72,14 @@ def read_log(d): f. close() - print("Let's evaluate the test results of algorithm %s by using %s" % (algorithm, logic_file)) + print("Evaluating results for %s" % (algorithm)) parse_capture(logic_file) def main(): print('THE LWC BENCHMARK SPLITTER') print('powered by Deutsche Bahn') - build_dir = 'build/' + build_dir = 'build/new/' for d in os.listdir(build_dir): read_log(os.path.join(build_dir + d))