Skip to content

Commit 4e12652

Browse files
charlesdong1991Pingviinituutti
authored andcommitted
TST: Add base test for extensionarray setitem pandas-dev#23300 (pandas-dev#23304)
1 parent 161d230 commit 4e12652

File tree

2 files changed

+33
-22
lines changed

2 files changed

+33
-22
lines changed

pandas/tests/extension/base/setitem.py

+27-22
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,20 @@
99

1010

1111
class BaseSetitemTests(BaseExtensionTests):
12-
def test_setitem_scalar_series(self, data):
13-
arr = pd.Series(data)
14-
arr[0] = data[1]
15-
assert arr[0] == data[1]
16-
17-
def test_setitem_sequence(self, data):
18-
arr = pd.Series(data)
12+
def test_setitem_scalar_series(self, data, box_in_series):
13+
if box_in_series:
14+
data = pd.Series(data)
15+
data[0] = data[1]
16+
assert data[0] == data[1]
17+
18+
def test_setitem_sequence(self, data, box_in_series):
19+
if box_in_series:
20+
data = pd.Series(data)
1921
original = data.copy()
2022

21-
arr[[0, 1]] = [data[1], data[0]]
22-
assert arr[0] == original[1]
23-
assert arr[1] == original[0]
23+
data[[0, 1]] = [data[1], data[0]]
24+
assert data[0] == original[1]
25+
assert data[1] == original[0]
2426

2527
@pytest.mark.parametrize('as_array', [True, False])
2628
def test_setitem_sequence_mismatched_length_raises(self, data, as_array):
@@ -32,22 +34,25 @@ def test_setitem_sequence_mismatched_length_raises(self, data, as_array):
3234
xpr = 'cannot set using a {} indexer with a different length'
3335
with tm.assert_raises_regex(ValueError, xpr.format('list-like')):
3436
ser[[0, 1]] = value
37+
assert ser._values[[0, 1]] == value
3538

3639
with tm.assert_raises_regex(ValueError, xpr.format('slice')):
3740
ser[slice(3)] = value
41+
assert ser._values[slice(3)] == value
3842

39-
def test_setitem_empty_indxer(self, data):
40-
ser = pd.Series(data)
41-
original = ser.copy()
42-
ser[[]] = []
43-
self.assert_series_equal(ser, original)
44-
45-
def test_setitem_sequence_broadcasts(self, data):
46-
arr = pd.Series(data)
47-
48-
arr[[0, 1]] = data[2]
49-
assert arr[0] == data[2]
50-
assert arr[1] == data[2]
43+
def test_setitem_empty_indxer(self, data, box_in_series):
44+
if box_in_series:
45+
data = pd.Series(data)
46+
original = data.copy()
47+
data[np.array([], dtype=int)] = []
48+
self.assert_equal(data, original)
49+
50+
def test_setitem_sequence_broadcasts(self, data, box_in_series):
51+
if box_in_series:
52+
data = pd.Series(data)
53+
data[[0, 1]] = data[2]
54+
assert data[0] == data[2]
55+
assert data[1] == data[2]
5156

5257
@pytest.mark.parametrize('setter', ['loc', 'iloc'])
5358
def test_setitem_scalar(self, data, setter):

pandas/tests/extension/conftest.py

+6
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,9 @@ def data_for_grouping():
9898
Where A < B < C and NA is missing
9999
"""
100100
raise NotImplementedError
101+
102+
103+
@pytest.fixture(params=[True, False])
104+
def box_in_series(request):
105+
"""Whether to box the data in a Series"""
106+
return request.param

0 commit comments

Comments
 (0)