@@ -321,6 +321,33 @@ def test_slice_slice_by_array(self, old_slice, array, size):
321321 expected = np .arange (size )[old_slice ][array ]
322322 assert_array_equal (actual , expected )
323323
324+ @pytest .mark .parametrize (
325+ ["old_indexer" , "indexer" , "size" , "expected" ],
326+ (
327+ pytest .param (
328+ slice (None ), slice (None , 3 ), 5 , slice (0 , 3 , 1 ), id = "full_slice-slice"
329+ ),
330+ pytest .param (
331+ slice (2 , 12 , 3 ), slice (1 , 3 ), 16 , slice (5 , 11 , 3 ), id = "slice_step-slice"
332+ ),
333+ pytest .param (
334+ slice (None ), np .arange (2 , 4 ), 5 , np .arange (2 , 4 ), id = "full_slice-range"
335+ ),
336+ pytest .param (
337+ np .arange (5 ), slice (1 , 3 ), 7 , np .arange (1 , 3 ), id = "range-slice"
338+ ),
339+ pytest .param (slice (None ), 3 , 5 , 3 , id = "full_slice-int" ),
340+ pytest .param (slice (None ), - 2 , 6 , 4 , id = "full_slice-negative_int" ),
341+ ),
342+ )
343+ def test_index_indexer_1d (self , old_indexer , indexer , size , expected ):
344+ actual = indexing ._index_indexer_1d (old_indexer , indexer , size )
345+
346+ if isinstance (expected , np .ndarray ):
347+ np .testing .assert_equal (actual , expected )
348+ else :
349+ assert actual == expected
350+
324351 def test_lazily_indexed_array (self ) -> None :
325352 original = np .random .rand (10 , 20 , 30 )
326353 x = indexing .NumpyIndexingAdapter (original )
0 commit comments