Skip to content

Commit 6bc2e86

Browse files
committed
TST: tests for setitem with generator indexer
1 parent bafec32 commit 6bc2e86

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

pandas/tests/series/test_indexing.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,38 @@ def test_getitem_generator(self):
275275
assert_series_equal(result, expected)
276276
assert_series_equal(result2, expected)
277277

278+
def test_setitem_generator(self):
279+
bool_idx = self.series > 0
280+
idces = self.series[bool_idx].index
281+
282+
values = range(bool_idx.sum())
283+
284+
expected = self.series.copy()
285+
expected[bool_idx] = values
286+
287+
# list of labels:
288+
s1 = self.series.copy()
289+
s1[iter(idces)] = values
290+
assert_series_equal(s1, expected)
291+
292+
# list of labels with .loc:
293+
s2 = self.series.copy()
294+
s2.loc[iter(idces)] = values
295+
assert_series_equal(s2, expected)
296+
297+
import pytest
298+
pytest.xfail("Setitem with generators of booleans is not supported")
299+
300+
# boolean generator (fails)
301+
s3 = self.series.copy()
302+
s3[iter(bool_idx)] = values
303+
assert_series_equal(s3, expected)
304+
305+
# boolean generator with .loc (fails)
306+
s4 = self.series.copy()
307+
s4.loc[iter(bool_idx)] = values
308+
assert_series_equal(s4, expected)
309+
278310
def test_type_promotion(self):
279311
# GH12599
280312
s = pd.Series()

0 commit comments

Comments
 (0)