CSIT-1041: Trending dashboard
[csit.git] / resources / tools / presentation / generator_CPTA.py
index 066bfbd..9ec196c 100644 (file)
@@ -165,13 +165,15 @@ def _evaluate_results(in_data, trimmed_data, window=10):
     if len(in_data) > 2:
         win_size = in_data.size if in_data.size < window else window
         results = [0.0, ]
-        median = in_data.rolling(window=win_size).median()
+        median = in_data.rolling(window=win_size, min_periods=2).median()
         stdev_t = trimmed_data.rolling(window=win_size, min_periods=2).std()
         m_vals = median.values
         s_vals = stdev_t.values
         d_vals = in_data.values
+        t_vals = trimmed_data.values
         for day in range(1, in_data.size):
-            if np.isnan(m_vals[day]) \
+            if np.isnan(t_vals[day]) \
+                    or np.isnan(m_vals[day]) \
                     or np.isnan(s_vals[day]) \
                     or np.isnan(d_vals[day]):
                 results.append(0.0)
@@ -389,7 +391,7 @@ def _generate_all_charts(spec, input_data):
             builds_lst.append(str(build["build"]))
 
     # Get "build ID": "date" dict:
-    build_info = dict()
+    build_info = OrderedDict()
     for build in builds_lst:
         try:
             build_info[build] = (
@@ -398,6 +400,9 @@ def _generate_all_charts(spec, input_data):
             )
         except KeyError:
             build_info[build] = ("", "")
+        logging.info("{}: {}, {}".format(build,
+                                         build_info[build][0],
+                                         build_info[build][1]))
 
     # Create the header:
     csv_table = list()
@@ -444,7 +449,7 @@ def _generate_all_charts(spec, input_data):
         for period in chart["periods"]:
             # Generate traces:
             traces = list()
-            win_size = 10 if period == 1 else 5 if period < 20 else 3
+            win_size = 14 if period == 1 else 5 if period < 20 else 3
             idx = 0
             for test_name, test_data in chart_data.items():
                 if not test_data: