Skip to content

Commit b91e0b7

Browse files
committed
using fixtures for tests in indexes/test_base.py. Introducing unique_nulls_fixture, because otherwise it is just too troublesome to filter out all types of nans
1 parent 5d7dde2 commit b91e0b7

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

pandas/conftest.py

+12
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,18 @@ def nulls_fixture(request):
278278
nulls_fixture2 = nulls_fixture # Generate cartesian product of nulls_fixture
279279

280280

281+
@pytest.fixture(params=[None, np.nan, pd.NaT])
282+
def unique_nulls_fixture(request):
283+
"""
284+
Fixture for each null type in pandas, each null type exactly once
285+
"""
286+
return request.param
287+
288+
289+
# Generate cartesian product of unique_nulls_fixture:
290+
unique_nulls_fixture2 = unique_nulls_fixture
291+
292+
281293
TIMEZONES = [None, 'UTC', 'US/Eastern', 'Asia/Tokyo', 'dateutil/US/Pacific',
282294
'dateutil/Asia/Singapore']
283295

pandas/tests/indexes/test_base.py

+11-10
Original file line numberDiff line numberDiff line change
@@ -1245,19 +1245,20 @@ def test_get_indexer(self):
12451245
e1 = np.array([1, 3, -1], dtype=np.intp)
12461246
assert_almost_equal(r1, e1)
12471247

1248-
def test_get_indexer_with_NA_values(self):
1248+
def test_get_indexer_with_NA_values(self, unique_nulls_fixture,
1249+
unique_nulls_fixture2):
12491250
# GH 22332
12501251
# check pairwise, that no pair of na values
12511252
# is mangled
1252-
na_values = [None, np.nan, pd.NaT]
1253-
for f in na_values:
1254-
for s in na_values:
1255-
if f is not s: # otherwise not unique
1256-
arr = np.array([f, s], dtype=np.object)
1257-
index = pd.Index(arr, dtype=np.object)
1258-
result = index.get_indexer([f, s, 'Unknown'])
1259-
expected = np.array([0, 1, -1], dtype=np.int64)
1260-
tm.assert_numpy_array_equal(result, expected)
1253+
if unique_nulls_fixture is unique_nulls_fixture2:
1254+
return # skip it, values are not unique
1255+
arr = np.array([unique_nulls_fixture,
1256+
unique_nulls_fixture2], dtype=np.object)
1257+
index = pd.Index(arr, dtype=np.object)
1258+
result = index.get_indexer([unique_nulls_fixture,
1259+
unique_nulls_fixture2, 'Unknown'])
1260+
expected = np.array([0, 1, -1], dtype=np.int64)
1261+
tm.assert_numpy_array_equal(result, expected)
12611262

12621263
@pytest.mark.parametrize("reverse", [True, False])
12631264
@pytest.mark.parametrize("expected,method", [

0 commit comments

Comments
 (0)