@@ -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