swh:1:snp:147c5a9160b26fead84b349fc25e0a0058a11de1
Tip revision: d52e52c51e3f7c5b0e12f95829b8cf4886bb3379 authored by Alexej Schatz on 26 October 2022, 14:36:09 UTC
test implementations for Autopilot, Bpod and pyControl moved to an own folder
test implementations for Autopilot, Bpod and pyControl moved to an own folder
Tip revision: d52e52c
stress_test_boxplot_labnet.py
import numpy as np
import pandas as pd
import shutil
def create_tex_file():
# float numbers f.write format
ff = "{:.2f}".format
# read all files
p4n = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt.csv', delimiter=';')
p4n_2 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_2.csv', delimiter=';')
p4n_3 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_3.csv', delimiter=';')
p4n_4 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_4.csv', delimiter=';')
p4n_5 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_5.csv', delimiter=';')
p4n_6 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_6.csv', delimiter=';')
p4n_7 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_7.csv', delimiter=';')
p4n_8 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_8.csv', delimiter=';')
p4n_9 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_9.csv', delimiter=';')
p4n_10 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_10.csv', delimiter=';')
p4n_11 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_11.csv', delimiter=';')
p4n_12 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_12.csv', delimiter=';')
p4n_13 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_13.csv', delimiter=';')
p4n_14 = pd.read_csv('data/read_and_set_test/LabNet/python_r4_no_opt_14.csv', delimiter=';')
cs4n = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt.csv', delimiter=';')
cs4n_2 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_2.csv', delimiter=';')
cs4n_3 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_3.csv', delimiter=';')
cs4n_4 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_4.csv', delimiter=';')
cs4n_5 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_5.csv', delimiter=';')
cs4n_6 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_6.csv', delimiter=';')
cs4n_7 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_7.csv', delimiter=';')
cs4n_8 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_8.csv', delimiter=';')
cs4n_9 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_9.csv', delimiter=';')
cs4n_10 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_10.csv', delimiter=';')
cs4n_11 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_11.csv', delimiter=';')
cs4n_12 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_12.csv', delimiter=';')
cs4n_13 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_13.csv', delimiter=';')
cs4n_14 = pd.read_csv('data/read_and_set_test/LabNet/c_sharp_r4_no_opt_14.csv', delimiter=';')
cp4n = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt.csv', delimiter=';')
cp4n_2 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_2.csv', delimiter=';')
cp4n_3 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_3.csv', delimiter=';')
cp4n_4 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_4.csv', delimiter=';')
cp4n_5 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_5.csv', delimiter=';')
cp4n_6 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_6.csv', delimiter=';')
cp4n_7 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_7.csv', delimiter=';')
cp4n_8 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_8.csv', delimiter=';')
cp4n_9 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_9.csv', delimiter=';')
cp4n_10 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_10.csv', delimiter=';')
cp4n_11 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_11.csv', delimiter=';')
cp4n_12 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_12.csv', delimiter=';')
cp4n_13 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_13.csv', delimiter=';')
cp4n_14 = pd.read_csv('data/read_and_set_test/LabNet/cpp_r4_no_opt_14.csv', delimiter=';')
shutil.copyfile("template.tex", "stress_test_boxplot_labnet.tex")
f = open("stress_test_boxplot_labnet.tex", "a")
f.write("\\begin{document}\n")
f.write("\\begin{tikzpicture}\n")
f.write(" \\pgfplotsset{\n")
f.write(" /pgfplots/boxplot legend/.style={\n")
f.write(" legend image code/.code={\n")
f.write(" \draw [|-|,##1] (0,2mm) --\n")
f.write(" node[rectangle,minimum size=2.5mm,draw,fill,##1]{}\n")
f.write(" (0,7mm);\n")
f.write(" }\n")
f.write(" }\n")
f.write(" }\n")
f.write(" \\begin{axis} [\n")
f.write(" boxplot/draw direction = y,\n")
f.write(" ylabel={latency, ms},\n")
f.write(" ymajorgrids=true,\n")
f.write(" enlarge y limits,\n")
f.write(" enlarge x limits=0.05,\n")
f.write(" major x tick style = transparent,\n")
f.write(" major y tick style = transparent,\n")
f.write(" cycle list={{col1},{col2},{col3}},\n")
f.write(" ymin=0.21,\n")
f.write(" ymax=2.0,\n")
f.write(" width=16cm,\n")
f.write(" height=7cm,\n")
f.write(" ytick={0,0.5,1,1.5,2},\n")
f.write(" xtick={0,1,2,...,14},\n")
f.write(" x tick label as interval,\n")
f.write(" xticklabels={%\n")
f.write(" {1},%\n")
f.write(" {2},%\n")
f.write(" {4},%\n")
f.write(" {6},%\n")
f.write(" {8},%\n")
f.write(" {10},%\n")
f.write(" {12},%\n")
f.write(" {14},%\n")
f.write(" },\n")
f.write(" x tick label style={\n")
f.write(" text width=2.5cm,\n")
f.write(" align=center\n")
f.write(" },\n")
f.write(" boxplot={\n")
f.write(" box extend=0.2\n")
f.write(" },\n")
f.write(" legend style={at={(0.85,0.95)}, anchor=north,legend columns=-1,draw=none},\n")
f.write(" boxplot legend\n")
f.write(" ]\n")
f.write(" \\legend{C\\#,C++,Python}\n")
lg = ["C#", "C++", "Python"]
r4n = [cs4n, cp4n, p4n]
pos = 0.25
for q in zip(lg, r4n):
f.write(" % Rv4, 1 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
r4n_2 = [cs4n_2, cp4n_2, p4n_2]
pos += 0.25
for q in zip(lg, r4n_2):
f.write(" % Rv4, 2 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
r4n_4 = [cs4n_4, cp4n_4, p4n_4]
pos += 0.25
for q in zip(lg, r4n_4):
f.write(" % Rv4, 4 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
r4n_6 = [cs4n_6, cp4n_6, p4n_6]
pos += 0.25
for q in zip(lg, r4n_6):
f.write(" % Rv4, 6 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
r4n_8 = [cs4n_8, cp4n_8, p4n_8]
pos += 0.25
for q in zip(lg, r4n_8):
f.write(" % Rv4, 8 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
r4n_10 = [cs4n_10, cp4n_10, p4n_10]
pos += 0.25
for q in zip(lg, r4n_10):
f.write(" % Rv4, 10 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
r4n_12 = [cs4n_12, cp4n_12, p4n_12]
pos += 0.25
for q in zip(lg, r4n_12):
f.write(" % Rv4, 12 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
r4n_14 = [cs4n_14, cp4n_14, p4n_14]
pos += 0.25
for q in zip(lg, r4n_14):
f.write(" % Rv4, 14 test " + q[0] + "\n")
f.write(" \\addplot+ [fill, draw=black,\n")
f.write(" boxplot prepared={\n")
f.write(" median=" + ff(q[1]["SetAndRead"].median()) + ",\n")
f.write(" lower quartile=" + ff(q[1]["SetAndRead"].quantile(0.25)) + ",\n")
f.write(" upper quartile=" + ff(q[1]["SetAndRead"].quantile(0.75)) + ",\n")
f.write(" lower whisker=" + ff(q[1]["SetAndRead"].quantile(0.025)) + ",\n")
f.write(" upper whisker=" + ff(q[1]["SetAndRead"].quantile(0.975)) + ",\n")
f.write(" draw position=" + str(pos) + "\n")
f.write(" },\n")
f.write(" ] coordinates {};\n")
f.write("\n")
pos += 0.25
f.write("\\end{axis}\n")
f.write("\\end{tikzpicture}\n")
f.write("\\end{document}\n")