CSIT-1504: Soak tests - box plots
[csit.git] / resources / tools / presentation / generator_plots.py
index 0fab894..97f813d 100644 (file)
@@ -99,6 +99,9 @@ def plot_performance_box(plot, input_data):
                                 append(test["throughput"]["NDR"]["LOWER"])
                         else:
                             continue
+                    elif test["type"] in ("SOAK", ):
+                        y_vals[test["parent"]].\
+                            append(test["throughput"]["LOWER"])
                     else:
                         continue
                 except (KeyError, TypeError):
@@ -1431,10 +1434,10 @@ def plot_service_density_heatmap_compare(plot, input_data):
                         if groups and len(groups.groups()) == 3:
                             if str(groups.group(3)) == \
                                     plot["reference"]["include"]:
-                                vals[c][n]["vals_c"].append(result)
+                                vals[c][n]["vals_r"].append(result)
                             elif str(groups.group(3)) == \
                                     plot["compare"]["include"]:
-                                vals[c][n]["vals_r"].append(result)
+                                vals[c][n]["vals_c"].append(result)
                             break
     if not vals:
         logging.error("No data.")
@@ -1447,13 +1450,13 @@ def plot_service_density_heatmap_compare(plot, input_data):
             if vals[key_c][key_n]["vals_r"]:
                 vals[key_c][key_n]["nr_r"] = len(vals[key_c][key_n]["vals_r"])
                 vals[key_c][key_n]["mean_r"] = \
-                    round(mean(vals[key_c][key_n]["vals_r"]) / 1000000, 1)
+                    mean(vals[key_c][key_n]["vals_r"])
                 vals[key_c][key_n]["stdev_r"] = \
                     round(stdev(vals[key_c][key_n]["vals_r"]) / 1000000, 1)
             if vals[key_c][key_n]["vals_c"]:
                 vals[key_c][key_n]["nr_c"] = len(vals[key_c][key_n]["vals_c"])
                 vals[key_c][key_n]["mean_c"] = \
-                    round(mean(vals[key_c][key_n]["vals_c"]) / 1000000, 1)
+                    mean(vals[key_c][key_n]["vals_c"])
                 vals[key_c][key_n]["stdev_c"] = \
                     round(stdev(vals[key_c][key_n]["vals_c"]) / 1000000, 1)
 
@@ -1474,17 +1477,24 @@ def plot_service_density_heatmap_compare(plot, input_data):
                 val_r = vals[txt_chains[c - 1]][txt_nodes[n - 1]]["mean_r"]
             except (KeyError, IndexError):
                 val_r = None
-            data_r[c - 1].append(val_r)
             try:
                 val_c = vals[txt_chains[c - 1]][txt_nodes[n - 1]]["mean_c"]
             except (KeyError, IndexError):
                 val_c = None
-            data_c[c - 1].append(val_c)
-
             if val_c is not None and val_r:
-                diff[c - 1].append(round((val_c - val_r) * 100 / val_r, 1))
+                val_d = (val_c - val_r) * 100 / val_r
             else:
-                diff[c - 1].append(None)
+                val_d = None
+
+            if val_r is not None:
+                val_r = round(val_r / 1000000, 1)
+            data_r[c - 1].append(val_r)
+            if val_c is not None:
+                val_c = round(val_c / 1000000, 1)
+            data_c[c - 1].append(val_c)
+            if val_d is not None:
+                val_d = int(round(val_d, 0))
+            diff[c - 1].append(val_d)
 
     # Colorscales:
     my_green = [[0.0, 'rgb(235, 249, 242)'],
@@ -1513,49 +1523,73 @@ def plot_service_density_heatmap_compare(plot, input_data):
     for c in range(len(txt_chains)):
         hover_line = list()
         for n in range(len(txt_nodes)):
-            if data_r[c][n] is not None:
-                data_point = dict(
-                    x=n+1,
-                    y=c+1,
-                    xref="x",
-                    yref="y",
-                    xanchor="center",
-                    yanchor="middle",
-                    text=str(data_r[c][n]) if data_r[c][n] is not None else "",
-                    font=dict(
-                        size=14,
-                    ),
-                    align="center",
-                    showarrow=False
-                )
-                annotations_r.append(deepcopy(data_point))
-                data_point["text"] = str(data_c[c][n]) \
-                    if data_c[c][n] is not None else ""
-                annotations_c.append(deepcopy(data_point))
-                data_point["text"] = str(diff[c][n]) \
-                    if diff[c][n] is not None else ""
-                annotations_diff.append(deepcopy(data_point))
+            point = dict(
+                x=n + 1,
+                y=c + 1,
+                xref="x",
+                yref="y",
+                xanchor="center",
+                yanchor="middle",
+                text="",
+                font=dict(
+                    size=14,
+                ),
+                align="center",
+                showarrow=False
+            )
 
-                hover_line.append(text.format(
-                    name=vals[txt_chains[c]][txt_nodes[n]]["name"],
-                    title_r=plot["reference"]["name"],
-                    text_r=text_r.format(
-                        val_r=data_r[c][n],
+            point_text_r = "Not present"
+            point_text_c = "Not present"
+            point_text_diff = ""
+            try:
+                point_r = data_r[c][n]
+                if point_r is not None:
+                    point_text_r = text_r.format(
+                        val_r=point_r,
                         stdev_r=vals[txt_chains[c]][txt_nodes[n]]["stdev_r"],
-                        nr_r=vals[txt_chains[c]][txt_nodes[n]]["nr_r"]
-                    ) if data_r[c][n] is not None else "Test Failed",
-                    title_c=plot["compare"]["name"],
-                    text_c=text_c.format(
-                        val_c=data_c[c][n],
-                        stdev_c = vals[txt_chains[c]][txt_nodes[n]]["stdev_c"],
-                        nr_c=vals[txt_chains[c]][txt_nodes[n]]["nr_c"]
-                    ) if data_c[c][n] is not None else "Test Failed",
-                    text_diff=text_diff.format(
+                        nr_r=vals[txt_chains[c]][txt_nodes[n]]["nr_r"])
+            except KeyError:
+                point_r = None
+            point["text"] = "" if point_r is None else point_r
+            annotations_r.append(deepcopy(point))
+
+            try:
+                point_c = data_c[c][n]
+                if point_c is not None:
+                    point_text_c = text_c.format(
+                        val_c=point_c,
+                        stdev_c=vals[txt_chains[c]][txt_nodes[n]]["stdev_c"],
+                        nr_c=vals[txt_chains[c]][txt_nodes[n]]["nr_c"])
+            except KeyError:
+                point_c = None
+            point["text"] = "" if point_c is None else point_c
+            annotations_c.append(deepcopy(point))
+
+            try:
+                point_d = diff[c][n]
+                if point_d is not None:
+                    point_text_diff = text_diff.format(
                         title_r=plot["reference"]["name"],
                         title_c=plot["compare"]["name"],
-                        diff=diff[c][n]
-                    ) if diff[c][n] is not None else ""
-                ))
+                        diff=point_d)
+            except KeyError:
+                point_d = None
+            point["text"] = "" if point_d is None else point_d
+            annotations_diff.append(deepcopy(point))
+
+            try:
+                name = vals[txt_chains[c]][txt_nodes[n]]["name"]
+            except KeyError:
+                continue
+
+            hover_line.append(text.format(
+                name=name,
+                title_r=plot["reference"]["name"],
+                text_r=point_text_r,
+                title_c=plot["compare"]["name"],
+                text_c=point_text_c,
+                text_diff=point_text_diff
+            ))
 
         hovertext.append(hover_line)