--- /dev/null
+import os
+import sys
+import random
+import re
+
+import os
+
+path = './output/'
+def getFilesList():
+ files = []
+ for r, d, f in os.walk(path):
+ for file in f:
+ if '.log' in file:
+ files.append(os.path.join(r, file))
+ return files
+
+def analyzeExecution():
+ endtoend = [0, 0, 0, 0]
+ serial = [0, 0, 0, 0]
+ solver = [0, 0, 0, 0]
+ petri = [0, 0, 0, 0]
+ testcases = ['math', 'geometry', 'joda', 'xml']
+ index = 100;
+ counter = 0;
+ for myfile in getFilesList():
+ print(myfile)
+ for i, bench in enumerate(testcases):
+ if bench in myfile:
+ index = i;
+ break;
+ with open(myfile, "r") as f:
+ line = f.readline()
+ crashed = True;
+ while line:
+ if 'Original Encoding Solving Time' in line:
+ time =re.findall("\d+\.\d+", line)
+ solver[index] = solver[index] + float(time[0]);
+ if float(time[0]) > 10:
+ print(line);
+ elif 'Satune Serialization Time' in line:
+ time =re.findall("\d+\.\d+", line);
+ serial[index] = serial[index] + float(time[0]);
+ elif 'ENDTOEND TIME' in line:
+ crashed = False;
+ time =re.findall("\d+\.\d+", line);
+ if not time:
+ time = re.findall("\d+", line);
+ endtoend[index] = endtoend[index] + float(time[0]);
+ elif 'Path Solving Time' in line:
+ time =re.findall("\d+\.\d+", line);
+ if float(time[0]) > 5000:
+ print(line);
+ petri[index] = petri[index] + float(time[0]);
+ counter += 1;
+
+ line = f.readline()
+ if crashed:
+ endtoend[index] += 600000;
+
+ for i, testcase in enumerate(testcases):
+ print(testcase);
+ print('End-to-End time (s): ' + str(endtoend[i]/1000));
+ print('Baseline Solver time (s): ' + str(solver[i]/1000));
+ print('Satune Serialization time (s): ' + str(serial[i]/1000));
+ print('Petri time (s) : ' + str(petri[i]/1000) );
+
+ print("Counter: " + str(counter));
+
+def main():
+ analyzeExecution()
+
+if __name__ == "__main__":
+ main()
+