Trend dashboard table header fixes adjustments.
[csit.git] / resources / tools / presentation / generator_tables.py
index 46aa71c..9264dcd 100644 (file)
@@ -730,13 +730,13 @@ def table_performance_trending_dashboard(table, input_data):
     data = input_data.filter_data(table, continue_on_error=True)
 
     # Prepare the header of the tables
-    header = ["Test Case",
+    header = ["        Test Case",
               "Trend [Mpps]",
-              "Short-Term Change [%]",
-              "Long-Term Change [%]",
-              "Regressions [#]",
-              "Progressions [#]",
-              "Outliers [#]"
+              "  Short-Term   Change [%]",
+              "  Long-Term   Change [%]",
+              "  Regressions [#]",
+              "  Progressions [#]",
+              "  Outliers [#]"
               ]
     header_str = ",".join(header) + "\n"
 
@@ -775,8 +775,9 @@ def table_performance_trending_dashboard(table, input_data):
             stdev_t = data_t.rolling(window=win_size, min_periods=2).std()
             median_first_idx = pd_data.size - long_win_size
             try:
-                max_median = max([x for x in median_t.values[median_first_idx:]
-                                  if not isnan(x)])
+                max_median = max(
+                    [x for x in median_t.values[median_first_idx:-win_size]
+                     if not isnan(x)])
             except ValueError:
                 max_median = nan
             try:
@@ -791,14 +792,6 @@ def table_performance_trending_dashboard(table, input_data):
             # Test name:
             name = tbl_dict[tst_name]["name"]
 
-            logging.info("{}".format(name))
-            logging.info("pd_data : {}".format(pd_data))
-            logging.info("data_t : {}".format(data_t))
-            logging.info("median_t : {}".format(median_t))
-            logging.info("last_median_t : {}".format(last_median_t))
-            logging.info("median_t_14 : {}".format(median_t_14))
-            logging.info("max_median : {}".format(max_median))
-
             # Classification list:
             classification_lst = list()
             for build_nr, value in pd_data.iteritems():
@@ -808,9 +801,9 @@ def table_performance_trending_dashboard(table, input_data):
                         or isnan(stdev_t[build_nr]) \
                         or isnan(value):
                     classification_lst.append("outlier")
-                elif value < (median_t[build_nr] - 2 * stdev_t[build_nr]):
+                elif value < (median_t[build_nr] - 3 * stdev_t[build_nr]):
                     classification_lst.append("regression")
-                elif value > (median_t[build_nr] + 2 * stdev_t[build_nr]):
+                elif value > (median_t[build_nr] + 3 * stdev_t[build_nr]):
                     classification_lst.append("progression")
                 else:
                     classification_lst.append("normal")
@@ -912,8 +905,20 @@ def table_performance_trending_dashboard_html(table, input_data):
         th.text = item
 
     # Rows:
+    colors = {"regression": ("#ffcccc", "#ff9999"),
+              "progression": ("#c6ecc6", "#9fdf9f"),
+              "outlier": ("#e6e6e6", "#cccccc"),
+              "normal": ("#e9f1fb", "#d4e4f7")}
     for r_idx, row in enumerate(csv_lst[1:]):
-        background = "#D4E4F7" if r_idx % 2 else "white"
+        if int(row[4]):
+            color = "regression"
+        elif int(row[5]):
+            color = "progression"
+        elif int(row[6]):
+            color = "outlier"
+        else:
+            color = "normal"
+        background = colors[color][r_idx % 2]
         tr = ET.SubElement(dashboard, "tr", attrib=dict(bgcolor=background))
 
         # Columns: