Skip to content

Commit eae0c2c

Browse files
gfyoungtm9k1
authored andcommitted
TST/CLN: Parameterize test in sparse/test_indexing (pandas-dev#23213)
1 parent 798e855 commit eae0c2c

File tree

1 file changed

+29
-32
lines changed

1 file changed

+29
-32
lines changed

pandas/tests/sparse/test_indexing.py

+29-32
Original file line numberDiff line numberDiff line change
@@ -424,38 +424,35 @@ def test_reindex_nearest(self):
424424
expected = pd.Series([0, np.nan, np.nan, 2], target).to_sparse()
425425
tm.assert_sp_series_equal(expected, actual)
426426

427-
def tests_indexing_with_sparse(self):
428-
# GH 13985
429-
430-
for kind in ['integer', 'block']:
431-
for fill in [True, False, np.nan]:
432-
arr = pd.SparseArray([1, 2, 3], kind=kind)
433-
indexer = pd.SparseArray([True, False, True], fill_value=fill,
434-
dtype=bool)
435-
436-
tm.assert_sp_array_equal(pd.SparseArray([1, 3], kind=kind),
437-
arr[indexer],)
438-
439-
s = pd.SparseSeries(arr, index=['a', 'b', 'c'],
440-
dtype=np.float64)
441-
442-
exp = pd.SparseSeries(
443-
[1, 3], index=['a', 'c'],
444-
dtype=SparseDtype(np.float64, s.fill_value),
445-
kind=kind
446-
)
447-
tm.assert_sp_series_equal(s[indexer], exp)
448-
tm.assert_sp_series_equal(s.loc[indexer], exp)
449-
tm.assert_sp_series_equal(s.iloc[indexer], exp)
450-
451-
indexer = pd.SparseSeries(indexer, index=['a', 'b', 'c'])
452-
tm.assert_sp_series_equal(s[indexer], exp)
453-
tm.assert_sp_series_equal(s.loc[indexer], exp)
454-
455-
msg = ("iLocation based boolean indexing cannot use an "
456-
"indexable as a mask")
457-
with tm.assert_raises_regex(ValueError, msg):
458-
s.iloc[indexer]
427+
@pytest.mark.parametrize("kind", ["integer", "block"])
428+
@pytest.mark.parametrize("fill", [True, False, np.nan])
429+
def tests_indexing_with_sparse(self, kind, fill):
430+
# see gh-13985
431+
arr = pd.SparseArray([1, 2, 3], kind=kind)
432+
indexer = pd.SparseArray([True, False, True],
433+
fill_value=fill,
434+
dtype=bool)
435+
436+
expected = arr[indexer]
437+
result = pd.SparseArray([1, 3], kind=kind)
438+
tm.assert_sp_array_equal(result, expected)
439+
440+
s = pd.SparseSeries(arr, index=["a", "b", "c"], dtype=np.float64)
441+
expected = pd.SparseSeries([1, 3], index=["a", "c"], kind=kind,
442+
dtype=SparseDtype(np.float64, s.fill_value))
443+
444+
tm.assert_sp_series_equal(s[indexer], expected)
445+
tm.assert_sp_series_equal(s.loc[indexer], expected)
446+
tm.assert_sp_series_equal(s.iloc[indexer], expected)
447+
448+
indexer = pd.SparseSeries(indexer, index=["a", "b", "c"])
449+
tm.assert_sp_series_equal(s[indexer], expected)
450+
tm.assert_sp_series_equal(s.loc[indexer], expected)
451+
452+
msg = ("iLocation based boolean indexing cannot "
453+
"use an indexable as a mask")
454+
with tm.assert_raises_regex(ValueError, msg):
455+
s.iloc[indexer]
459456

460457

461458
class TestSparseSeriesMultiIndexing(TestSparseSeriesIndexing):

0 commit comments

Comments
 (0)