Report: table_soak_vs_ndr
[csit.git] / resources / tools / presentation / generator_tables.py
index 887ee72..05a696c 100644 (file)
@@ -27,7 +27,7 @@ from datetime import datetime as dt
 from datetime import timedelta
 
 from utils import mean, stdev, relative_change, classify_anomalies, \
-    convert_csv_to_pretty_txt
+    convert_csv_to_pretty_txt, relative_change_stdev
 
 
 REGEX_NIC = re.compile(r'\d*ge\dp\d\D*\d*')
@@ -551,7 +551,7 @@ def table_soak_vs_ndr(table, input_data):
             "{0} Stdev [Mpps]".format(table["reference"]["title"]),
             "{0} Throughput [Mpps]".format(table["compare"]["title"]),
             "{0} Stdev [Mpps]".format(table["compare"]["title"]),
-            "Delta [%]"]
+            "Delta [%]", "Stdev of delta [%]"]
         header_str = ",".join(header) + "\n"
     except (AttributeError, KeyError) as err:
         logging.error("The model is invalid, missing parameter: {0}".
@@ -608,21 +608,31 @@ def table_soak_vs_ndr(table, input_data):
     tbl_lst = list()
     for tst_name in tbl_dict.keys():
         item = [tbl_dict[tst_name]["name"], ]
-        data_t = tbl_dict[tst_name]["ref-data"]
-        if data_t:
-            item.append(round(mean(data_t) / 1000000, 2))
-            item.append(round(stdev(data_t) / 1000000, 2))
+        data_r = tbl_dict[tst_name]["ref-data"]
+        if data_r:
+            data_r_mean = mean(data_r)
+            item.append(round(data_r_mean / 1000000, 2))
+            data_r_stdev = stdev(data_r)
+            item.append(round(data_r_stdev / 1000000, 2))
         else:
+            data_r_mean = None
+            data_r_stdev = None
             item.extend([None, None])
-        data_t = tbl_dict[tst_name]["cmp-data"]
-        if data_t:
-            item.append(round(mean(data_t) / 1000000, 2))
-            item.append(round(stdev(data_t) / 1000000, 2))
+        data_c = tbl_dict[tst_name]["cmp-data"]
+        if data_c:
+            data_c_mean = mean(data_c)
+            item.append(round(data_c_mean / 1000000, 2))
+            data_c_stdev = stdev(data_c)
+            item.append(round(data_c_stdev / 1000000, 2))
         else:
+            data_c_mean = None
+            data_c_stdev = None
             item.extend([None, None])
-        if item[-4] is not None and item[-2] is not None and item[-4] != 0:
-            item.append(int(relative_change(float(item[-4]), float(item[-2]))))
-        if len(item) == len(header):
+        if data_r_mean and data_c_mean:
+            delta, d_stdev = relative_change_stdev(
+                data_r_mean, data_c_mean, data_r_stdev, data_c_stdev)
+            item.append(round(delta, 2))
+            item.append(round(d_stdev, 2))
             tbl_lst.append(item)
 
     # Sort the table according to the relative change
@@ -808,6 +818,10 @@ def _generate_url(base, testbed, test_name):
             file_name = "vm_vhost_ip4"
             feature = "-base"
 
+    elif "ipsecbasetnlsw" in test_name:
+        file_name = "ipsecsw"
+        feature = "-base-scale"
+
     elif "ipsec" in test_name:
         file_name = "ipsec"
         feature = "-base-scale"