Skip to content

Commit c638d29

Browse files
committed
sparse masking
1 parent 31d16bf commit c638d29

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

pandas/tests/extension/test_sparse.py

+26
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,32 @@ def test_reindex(self, data, na_value):
154154
self._check_unsupported(data)
155155
super().test_reindex(data, na_value)
156156

157+
def test_getitem_mask(self, data):
158+
# Empty mask, raw array
159+
mask = np.zeros(len(data), dtype=bool)
160+
result = data[mask]
161+
assert len(result) == 0
162+
assert isinstance(result, type(data))
163+
164+
# Empty mask, in series
165+
mask = np.zeros(len(data), dtype=bool)
166+
result = pd.Series(data)[mask]
167+
assert len(result) == 0
168+
169+
# we change int -> float because of the masking
170+
assert result.dtype == SparseDtype('float64', data.dtype.fill_value)
171+
172+
# non-empty mask, raw array
173+
mask[0] = True
174+
result = data[mask]
175+
assert len(result) == 1
176+
assert isinstance(result, type(data))
177+
178+
# non-empty mask, in series
179+
result = pd.Series(data)[mask]
180+
assert len(result) == 1
181+
assert result.dtype == data.dtype
182+
157183

158184
# Skipping TestSetitem, since we don't implement it.
159185

0 commit comments

Comments
 (0)