From 67e5d6d577676ee5139cb13b9e8dacd9071e5578 Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Wed, 9 Apr 2014 16:05:14 -0700 Subject: [PATCH] Adding tests for hedonic.apply_filter_query. --- urbansim/models/tests/__init__.py | 0 urbansim/models/tests/test_hedonic.py | 43 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 urbansim/models/tests/__init__.py create mode 100644 urbansim/models/tests/test_hedonic.py diff --git a/urbansim/models/tests/__init__.py b/urbansim/models/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/urbansim/models/tests/test_hedonic.py b/urbansim/models/tests/test_hedonic.py new file mode 100644 index 00000000..9330627b --- /dev/null +++ b/urbansim/models/tests/test_hedonic.py @@ -0,0 +1,43 @@ +import pandas as pd +import pytest +from pandas.util import testing as pdt + +from .. import hedonic + + +@pytest.fixture +def test_df(): + return pd.DataFrame( + {'col1': range(5), + 'col2': range(5, 10)}, + index=['a', 'b', 'c', 'd', 'e']) + + +def test_apply_filter_query(test_df): + filters = ['col1 < 3', 'col2 > 6'] + filtered = hedonic.apply_filter_query(test_df, filters) + expected = pd.DataFrame( + {'col1': [2], 'col2': [7]}, + index=['c']) + pdt.assert_frame_equal(filtered, expected) + + +def test_apply_filter_query_empty(test_df): + filters = ['col1 < 1', 'col2 > 8'] + filtered = hedonic.apply_filter_query(test_df, filters) + expected = pd.DataFrame( + {'col1': [], 'col2': []}, + index=[]) + pdt.assert_frame_equal(filtered, expected) + + +def test_apply_filter_query_or(test_df): + filters = ['col1 < 1 or col2 > 8'] + filtered = hedonic.apply_filter_query(test_df, filters) + expected = pd.DataFrame( + {'col1': [0, 4], 'col2': [5, 9]}, + index=['a', 'e']) + pdt.assert_frame_equal(filtered, expected) + + +