From 551fc07456429d3f239073da25798ce70f040d6a Mon Sep 17 00:00:00 2001 From: Parthi Date: Thu, 21 Jul 2022 19:28:37 +0530 Subject: [PATCH 1/4] TST: Addition test for get_indexer for interval index --- pandas/tests/indexes/datetimes/test_indexing.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pandas/tests/indexes/datetimes/test_indexing.py b/pandas/tests/indexes/datetimes/test_indexing.py index a203fee5b3a61..b53e57883777b 100644 --- a/pandas/tests/indexes/datetimes/test_indexing.py +++ b/pandas/tests/indexes/datetimes/test_indexing.py @@ -14,10 +14,14 @@ from pandas import ( DatetimeIndex, Index, + IntervalIndex, Timestamp, + array, bdate_range, date_range, + interval_range, notna, + period_range, ) import pandas._testing as tm @@ -669,6 +673,17 @@ def test_get_indexer_pad_requires_monotonicity(self): with pytest.raises(ValueError, match=msg): rng2.get_indexer(rng, method="pad") + @pytest.mark.parametrize("box", [IntervalIndex, array, list]) + def test_get_indexer_interval_index(self, box): + # GH#30178 + rng = period_range("2022-07-01", freq="D", periods=3) + idx = box(interval_range(pd.Timestamp("2022-07-01"), freq="3D", periods=3)) + + actual = rng.get_indexer(idx) + expected = np.array([-1, -1, -1], dtype=np.int64) + + tm.assert_equal(actual, expected) + class TestMaybeCastSliceBound: def test_maybe_cast_slice_bounds_empty(self): From b09626962c8be73b58c3775c27dca48a722ec0ae Mon Sep 17 00:00:00 2001 From: Parthi Date: Sun, 24 Jul 2022 20:19:13 +0530 Subject: [PATCH 2/4] TST: Moved tests to interval and fixed pre-commit issue --- pandas/tests/indexes/datetimes/test_indexing.py | 15 --------------- pandas/tests/indexes/interval/test_interval.py | 13 +++++++++++++ 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/pandas/tests/indexes/datetimes/test_indexing.py b/pandas/tests/indexes/datetimes/test_indexing.py index b53e57883777b..a203fee5b3a61 100644 --- a/pandas/tests/indexes/datetimes/test_indexing.py +++ b/pandas/tests/indexes/datetimes/test_indexing.py @@ -14,14 +14,10 @@ from pandas import ( DatetimeIndex, Index, - IntervalIndex, Timestamp, - array, bdate_range, date_range, - interval_range, notna, - period_range, ) import pandas._testing as tm @@ -673,17 +669,6 @@ def test_get_indexer_pad_requires_monotonicity(self): with pytest.raises(ValueError, match=msg): rng2.get_indexer(rng, method="pad") - @pytest.mark.parametrize("box", [IntervalIndex, array, list]) - def test_get_indexer_interval_index(self, box): - # GH#30178 - rng = period_range("2022-07-01", freq="D", periods=3) - idx = box(interval_range(pd.Timestamp("2022-07-01"), freq="3D", periods=3)) - - actual = rng.get_indexer(idx) - expected = np.array([-1, -1, -1], dtype=np.int64) - - tm.assert_equal(actual, expected) - class TestMaybeCastSliceBound: def test_maybe_cast_slice_bounds_empty(self): diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index 5bf29093152d8..e9945203741f6 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -11,10 +11,12 @@ IntervalIndex, Timedelta, Timestamp, + array, date_range, interval_range, isna, notna, + period_range, timedelta_range, ) import pandas._testing as tm @@ -924,6 +926,17 @@ def test_interval_index_error_and_warning(self): with tm.assert_produces_warning(FutureWarning, match=msg_warn): IntervalIndex.from_tuples([(0, 1), (0.5, 1.5)], closed="both") + @pytest.mark.parametrize("box", [IntervalIndex, array, list]) + def test_get_indexer_interval_index(self, box): + # GH#30178 + rng = period_range("2022-07-01", freq="D", periods=3) + idx = box(interval_range(Timestamp("2022-07-01"), freq="3D", periods=3)) + + actual = rng.get_indexer(idx) + expected = np.array([-1, -1, -1], dtype=np.int64) + + tm.assert_equal(actual, expected) + def test_dir(): # GH#27571 dir(interval_index) should not raise From b146a8a38fade3f0314dd087349f1a267a0a1624 Mon Sep 17 00:00:00 2001 From: Parthi Date: Sun, 24 Jul 2022 21:37:12 +0530 Subject: [PATCH 3/4] TST: Changed to assert numpy array equals --- pandas/tests/indexes/interval/test_interval.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index e9945203741f6..ab042cf5dacbd 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -933,9 +933,8 @@ def test_get_indexer_interval_index(self, box): idx = box(interval_range(Timestamp("2022-07-01"), freq="3D", periods=3)) actual = rng.get_indexer(idx) - expected = np.array([-1, -1, -1], dtype=np.int64) - - tm.assert_equal(actual, expected) + expected = np.array([-1, -1, -1], dtype="intp") + tm.assert_numpy_array_equal(actual, expected) def test_dir(): From f29507a898a3b530040260089deab9250f67966f Mon Sep 17 00:00:00 2001 From: Parthi Date: Tue, 26 Jul 2022 09:09:18 +0530 Subject: [PATCH 4/4] TST: Moved test to test_indexing --- pandas/tests/indexes/interval/test_indexing.py | 14 ++++++++++++++ pandas/tests/indexes/interval/test_interval.py | 12 ------------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/pandas/tests/indexes/interval/test_indexing.py b/pandas/tests/indexes/interval/test_indexing.py index e05cb73cfe446..74d17b31aff27 100644 --- a/pandas/tests/indexes/interval/test_indexing.py +++ b/pandas/tests/indexes/interval/test_indexing.py @@ -15,7 +15,11 @@ NaT, Series, Timedelta, + Timestamp, + array, date_range, + interval_range, + period_range, timedelta_range, ) import pandas._testing as tm @@ -415,6 +419,16 @@ def test_get_indexer_multiindex_with_intervals(self): expected = np.array([1, 4, 7], dtype=np.intp) tm.assert_numpy_array_equal(result, expected) + @pytest.mark.parametrize("box", [IntervalIndex, array, list]) + def test_get_indexer_interval_index(self, box): + # GH#30178 + rng = period_range("2022-07-01", freq="D", periods=3) + idx = box(interval_range(Timestamp("2022-07-01"), freq="3D", periods=3)) + + actual = rng.get_indexer(idx) + expected = np.array([-1, -1, -1], dtype=np.intp) + tm.assert_numpy_array_equal(actual, expected) + class TestSliceLocs: def test_slice_locs_with_interval(self): diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index ab042cf5dacbd..5bf29093152d8 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -11,12 +11,10 @@ IntervalIndex, Timedelta, Timestamp, - array, date_range, interval_range, isna, notna, - period_range, timedelta_range, ) import pandas._testing as tm @@ -926,16 +924,6 @@ def test_interval_index_error_and_warning(self): with tm.assert_produces_warning(FutureWarning, match=msg_warn): IntervalIndex.from_tuples([(0, 1), (0.5, 1.5)], closed="both") - @pytest.mark.parametrize("box", [IntervalIndex, array, list]) - def test_get_indexer_interval_index(self, box): - # GH#30178 - rng = period_range("2022-07-01", freq="D", periods=3) - idx = box(interval_range(Timestamp("2022-07-01"), freq="3D", periods=3)) - - actual = rng.get_indexer(idx) - expected = np.array([-1, -1, -1], dtype="intp") - tm.assert_numpy_array_equal(actual, expected) - def test_dir(): # GH#27571 dir(interval_index) should not raise