Skip to content

Commit 67d4cae

Browse files
authored
TST: add missing iloc label indexing tests (#38967)
1 parent c386fbb commit 67d4cae

File tree

1 file changed

+57
-8
lines changed

1 file changed

+57
-8
lines changed

pandas/tests/indexing/test_iloc.py

+57-8
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ def test_iloc_getitem_list_int(self):
6161
# the correct type
6262

6363

64-
class TestiLoc2:
65-
# TODO: better name, just separating out things that dont rely on base class
64+
class TestiLocBaseIndependent:
65+
"""Tests Independent Of Base Class"""
6666

6767
def test_is_scalar_access(self):
6868
# GH#32085 index with duplicates doesnt matter for _is_scalar_access
@@ -262,12 +262,42 @@ def test_iloc_getitem_dups(self):
262262
tm.assert_series_equal(result, expected)
263263

264264
def test_iloc_getitem_array(self):
265-
# TODO: test something here?
266-
pass
265+
df = DataFrame(
266+
[
267+
{"A": 1, "B": 2, "C": 3},
268+
{"A": 100, "B": 200, "C": 300},
269+
{"A": 1000, "B": 2000, "C": 3000},
270+
]
271+
)
272+
273+
expected = DataFrame([{"A": 1, "B": 2, "C": 3}])
274+
tm.assert_frame_equal(df.iloc[[0]], expected)
275+
276+
expected = DataFrame([{"A": 1, "B": 2, "C": 3}, {"A": 100, "B": 200, "C": 300}])
277+
tm.assert_frame_equal(df.iloc[[0, 1]], expected)
278+
279+
expected = DataFrame([{"B": 2, "C": 3}, {"B": 2000, "C": 3000}], index=[0, 2])
280+
result = df.iloc[[0, 2], [1, 2]]
281+
tm.assert_frame_equal(result, expected)
267282

268283
def test_iloc_getitem_bool(self):
269-
# TODO: test something here?
270-
pass
284+
df = DataFrame(
285+
[
286+
{"A": 1, "B": 2, "C": 3},
287+
{"A": 100, "B": 200, "C": 300},
288+
{"A": 1000, "B": 2000, "C": 3000},
289+
]
290+
)
291+
292+
expected = DataFrame([{"A": 1, "B": 2, "C": 3}, {"A": 100, "B": 200, "C": 300}])
293+
result = df.iloc[[True, True, False]]
294+
tm.assert_frame_equal(result, expected)
295+
296+
expected = DataFrame(
297+
[{"A": 1, "B": 2, "C": 3}, {"A": 1000, "B": 2000, "C": 3000}], index=[0, 2]
298+
)
299+
result = df.iloc[lambda x: x.index % 2 == 0]
300+
tm.assert_frame_equal(result, expected)
271301

272302
@pytest.mark.parametrize("index", [[True, False], [True, False, True, False]])
273303
def test_iloc_getitem_bool_diff_len(self, index):
@@ -278,8 +308,27 @@ def test_iloc_getitem_bool_diff_len(self, index):
278308
_ = s.iloc[index]
279309

280310
def test_iloc_getitem_slice(self):
281-
# TODO: test something here?
282-
pass
311+
df = DataFrame(
312+
[
313+
{"A": 1, "B": 2, "C": 3},
314+
{"A": 100, "B": 200, "C": 300},
315+
{"A": 1000, "B": 2000, "C": 3000},
316+
]
317+
)
318+
319+
expected = DataFrame([{"A": 1, "B": 2, "C": 3}, {"A": 100, "B": 200, "C": 300}])
320+
result = df.iloc[:2]
321+
tm.assert_frame_equal(result, expected)
322+
323+
expected = DataFrame([{"A": 100, "B": 200}], index=[1])
324+
result = df.iloc[1:2, 0:2]
325+
tm.assert_frame_equal(result, expected)
326+
327+
expected = DataFrame(
328+
[{"A": 1, "C": 3}, {"A": 100, "C": 300}, {"A": 1000, "C": 3000}]
329+
)
330+
result = df.iloc[:, lambda df: [0, 2]]
331+
tm.assert_frame_equal(result, expected)
283332

284333
def test_iloc_getitem_slice_dups(self):
285334

0 commit comments

Comments
 (0)