From 8f31c04c07ba2e898142e559ceab8ba4c9e018ab Mon Sep 17 00:00:00 2001 From: Stephen Dodson Date: Tue, 19 Nov 2019 13:49:34 +0000 Subject: [PATCH] Extending metrics tests based on comments on https://github.com/elastic/eland/pull/51 --- eland/operations.py | 2 - eland/tests/dataframe/test_metrics_pytest.py | 58 +++++++------------- 2 files changed, 19 insertions(+), 41 deletions(-) diff --git a/eland/operations.py b/eland/operations.py index 0fd3617..aa1aea5 100644 --- a/eland/operations.py +++ b/eland/operations.py @@ -151,8 +151,6 @@ class Operations: for field in numeric_source_fields: body.metric_aggs(field, func, field) - #print(body.to_search_body(), columns, numeric_source_fields) - response = query_compiler._client.search( index=query_compiler._index_pattern, size=0, diff --git a/eland/tests/dataframe/test_metrics_pytest.py b/eland/tests/dataframe/test_metrics_pytest.py index c43edea..8b07743 100644 --- a/eland/tests/dataframe/test_metrics_pytest.py +++ b/eland/tests/dataframe/test_metrics_pytest.py @@ -9,52 +9,30 @@ import eland as ed class TestDataFrameMetrics(TestData): - def test_mean(self): + funcs = ['max', 'min', 'mean', 'sum'] + + def test_flights_metrics(self): pd_flights = self.pd_flights() ed_flights = self.ed_flights() - pd_mean = pd_flights.mean(numeric_only=True) - ed_mean = ed_flights.mean(numeric_only=True) + for func in self.funcs: + pd_metric = getattr(pd_flights, func)(numeric_only=True) + ed_metric = getattr(ed_flights, func)(numeric_only=True) - assert_series_equal(pd_mean, ed_mean) + assert_series_equal(pd_metric, ed_metric) - def test_sum(self): - pd_flights = self.pd_flights() - ed_flights = self.ed_flights() - - pd_sum = pd_flights.sum(numeric_only=True) - ed_sum = ed_flights.sum(numeric_only=True) - - assert_series_equal(pd_sum, ed_sum) - - def test_min(self): - pd_flights = self.pd_flights() - ed_flights = self.ed_flights() - - pd_min = pd_flights.min(numeric_only=True) - ed_min = ed_flights.min(numeric_only=True) - - assert_series_equal(pd_min, ed_min) - - def test_max(self): - pd_flights = self.pd_flights() - ed_flights = self.ed_flights() - - pd_max = pd_flights.max(numeric_only=True) - ed_max = ed_flights.max(numeric_only=True) - - assert_series_equal(pd_max, ed_max) - - def test_ecommerce_selected_non_numeric_source_fields_max(self): + def test_ecommerce_selected_non_numeric_source_fields(self): # None of these are numeric columns = ['category', 'currency', 'customer_birth_date', 'customer_first_name', 'user'] pd_ecommerce = self.pd_ecommerce()[columns] ed_ecommerce = self.ed_ecommerce()[columns] - assert_series_equal(pd_ecommerce.max(numeric_only=True), ed_ecommerce.max(numeric_only=True)) + for func in self.funcs: + assert_series_equal(getattr(pd_ecommerce, func)(numeric_only=True), getattr(ed_ecommerce, func)(numeric_only=True), + check_less_precise=True) - def test_ecommerce_selected_mixed_numeric_source_fields_max(self): + def test_ecommerce_selected_mixed_numeric_source_fields(self): # Some of these are numeric columns = ['category', 'currency', 'taxless_total_price', 'customer_birth_date', 'total_quantity', 'customer_first_name', 'user'] @@ -62,16 +40,18 @@ class TestDataFrameMetrics(TestData): pd_ecommerce = self.pd_ecommerce()[columns] ed_ecommerce = self.ed_ecommerce()[columns] - assert_series_equal(pd_ecommerce.max(numeric_only=True), ed_ecommerce.max(numeric_only=True), - check_less_precise=True) + for func in self.funcs: + assert_series_equal(getattr(pd_ecommerce, func)(numeric_only=True), getattr(ed_ecommerce, func)(numeric_only=True), + check_less_precise=True) - def test_ecommerce_selected_all_numeric_source_fields_max(self): + def test_ecommerce_selected_all_numeric_source_fields(self): # All of these are numeric columns = ['total_quantity', 'taxful_total_price', 'taxless_total_price'] pd_ecommerce = self.pd_ecommerce()[columns] ed_ecommerce = self.ed_ecommerce()[columns] - assert_series_equal(pd_ecommerce.max(numeric_only=True), ed_ecommerce.max(numeric_only=True), - check_less_precise=True) + for func in self.funcs: + assert_series_equal(getattr(pd_ecommerce, func)(numeric_only=True), getattr(ed_ecommerce, func)(numeric_only=True), + check_less_precise=True)