From 6a5d9f8b393d8dc95db898b4bdba3ed26746bf93 Mon Sep 17 00:00:00 2001
From: Sascha Herzinger <sascha.herzinger@uni.lu>
Date: Thu, 21 Sep 2017 13:25:42 +0200
Subject: [PATCH] Fixed a bug where stats where not ordered

---
 fractalis/analytics/tasks/heatmap/main.py | 10 ++++++----
 tests/unit/analytics/heatmap/test_main.py |  2 ++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/fractalis/analytics/tasks/heatmap/main.py b/fractalis/analytics/tasks/heatmap/main.py
index 8c523a8..3845074 100644
--- a/fractalis/analytics/tasks/heatmap/main.py
+++ b/fractalis/analytics/tasks/heatmap/main.py
@@ -65,13 +65,15 @@ class HeatmapTask(AnalyticTask):
         # sort by ranking_value
         df = pd.merge(df, stats[['feature', ranking_method]], how='left',
                       left_index=True, right_on='feature')
-        df = df.sort_values(ranking_method, ascending=False) \
-            .drop(ranking_method, axis=1)
+        df.sort_values(ranking_method, ascending=False, inplace=True)
+        df.drop(ranking_method, axis=1, inplace=True)
 
         z_df = pd.merge(z_df, stats[['feature', ranking_method]], how='left',
                         left_index=True, right_on='feature')
-        z_df = z_df.sort_values(ranking_method, ascending=False) \
-            .drop(ranking_method, axis=1)
+        z_df.sort_values(ranking_method, ascending=False, inplace=True)
+        z_df.drop(ranking_method, axis=1, inplace=True)
+
+        stats.sort_values(ranking_method, ascending=False, inplace=True)
 
         # discard rows according to max_rows
         df = df[:max_rows]
diff --git a/tests/unit/analytics/heatmap/test_main.py b/tests/unit/analytics/heatmap/test_main.py
index 815c24d..040f577 100644
--- a/tests/unit/analytics/heatmap/test_main.py
+++ b/tests/unit/analytics/heatmap/test_main.py
@@ -161,6 +161,7 @@ class TestHeatmap:
         data = pd.DataFrame(data)
         feature_col = data['feature'].tolist()
         assert ['D', 'C', 'A', 'B', 'D', 'C', 'A', 'B'] == feature_col
+        assert ['D', 'C', 'A', 'B'] == result['stats']['feature']
 
     def test_max_rows_works(self):
         numerical_arrays = [
@@ -182,3 +183,4 @@ class TestHeatmap:
         data = pd.DataFrame(data)
         feature_col = data['feature'].tolist()
         assert ['D', 'C', 'D', 'C'] == feature_col
+        assert result['stats']['feature'] == ['D', 'C']
-- 
GitLab