Skip to content

Instantly share code, notes, and snippets.

@victornicolet
Created October 26, 2021 13:12
Show Gist options
  • Save victornicolet/a19df20eda6599ab4e912cb6d664d631 to your computer and use it in GitHub Desktop.
Save victornicolet/a19df20eda6599ab4e912cb6d664d631 to your computer and use it in GitHub Desktop.
Report results nicely
#!/usr/bin/env python3
# command,mean,stddev,median,user,system,min,max,nalarm
# 0 1 2 3 4 5 6 7 8
def parseline(line):
parts = line.strip().split(',')
name = parts[0].split('>')[0].strip().split(' ')[1]
time = parts[1]
nalarm = parts[8]
nameparts = name.split('-')
nofocus = False
if nameparts[-1] == "nofocus":
name = "-".join(nameparts[:-1])
nofocus = True
if nameparts[0] == "nofocus":
name = "-".join(nameparts[1:])
nofocus = True
option = "C"
nameparts = name.split('-')
if nameparts[-1] == "O0" or nameparts[-1] == "O1" or nameparts[-1] == "O2" or nameparts[-1] == "O3":
option = nameparts[-1]
name = "-".join(nameparts[:-1])
return (name, option, time, nalarm, nofocus)
def addline(data, name, option, time, nalarm, nofocus):
if name not in data:
data[name] = {}
if option not in data[name]:
data[name][option] = {}
data[name][option][nofocus] = [time, nalarm]
def extract(bvals, key):
ctime = str(int(1000*float(bvals[key][True][0])))
cnalarms = bvals[key][False][1]
cnalarms2 = bvals[key][True][1]
return f"{ctime : >5s} {cnalarms : >4s} {cnalarms2 : >4s}"
def verified(bvals, key, analysis, verified_counts, i):
cnalarms = int(bvals[key][analysis][1])
if cnalarms == 0:
verified_counts[i] = verified_counts[i] + 1
def main():
bench_c = open('bench_c.csv', 'r')
bench_bin = open('bench_bin.csv', 'r')
data = {}
for line in bench_c.readlines():
name, option, time, nalarm, nofocus = parseline(line)
addline(data, name, option, time, nalarm, nofocus)
for line in bench_bin.readlines():
name, option, time, nalarm, nofocus = parseline(line)
addline(data, name, option, time, nalarm, nofocus)
verified_counts = [0] * 10
for bname, bvals in data.items():
c = extract(bvals, "C")
verified(bvals, "C", False, verified_counts, 0)
verified(bvals, "C", True, verified_counts, 1)
o0 = extract(bvals, "O0")
verified(bvals, "O0", False, verified_counts, 2)
verified(bvals, "O0", True, verified_counts, 3)
o1 = extract(bvals, "O1")
verified(bvals, "O1", False, verified_counts, 4)
verified(bvals, "O1", True, verified_counts, 5)
o2 = extract(bvals, "O2")
verified(bvals, "O2", False, verified_counts, 6)
verified(bvals, "O2", True, verified_counts, 7)
o3 = extract(bvals, "O3")
verified(bvals, "O3", False, verified_counts, 8)
verified(bvals, "O3", True, verified_counts, 9)
print(
f"{bname : <20s} {c : <20s} {o0 : <20s} {o1 : <20s} {o2 : <20s} {o3 : <20s}")
sp = " "
print(f"Verified : {verified_counts}")
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment