Skip to content

Commit dab080e

Browse files
authored
TST: Add test for CoW in pop (#50569)
1 parent e16569a commit dab080e

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

pandas/tests/copy_view/test_methods.py

+21
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,27 @@ def test_select_dtypes(using_copy_on_write):
174174
tm.assert_frame_equal(df, df_orig)
175175

176176

177+
def test_pop(using_copy_on_write):
178+
df = DataFrame({"a": [1, 2, 3], "b": [4, 5, 6], "c": [0.1, 0.2, 0.3]})
179+
df_orig = df.copy()
180+
view_original = df[:]
181+
result = df.pop("a")
182+
183+
assert np.shares_memory(result.values, get_array(view_original, "a"))
184+
assert np.shares_memory(get_array(df, "b"), get_array(view_original, "b"))
185+
186+
if using_copy_on_write:
187+
result.iloc[0] = 0
188+
assert not np.shares_memory(result.values, get_array(view_original, "a"))
189+
df.iloc[0, 0] = 0
190+
if using_copy_on_write:
191+
assert not np.shares_memory(get_array(df, "b"), get_array(view_original, "b"))
192+
tm.assert_frame_equal(view_original, df_orig)
193+
else:
194+
expected = DataFrame({"a": [1, 2, 3], "b": [0, 5, 6], "c": [0.1, 0.2, 0.3]})
195+
tm.assert_frame_equal(view_original, expected)
196+
197+
177198
@pytest.mark.parametrize(
178199
"func",
179200
[

0 commit comments

Comments
 (0)