@@ -33,7 +33,7 @@ def _check_slice(sliceobj):
33
33
34
34
35
35
def test_is_fancy ():
36
- slices = (2 , [2 ], [2 , 3 ], Ellipsis , np .array (2 ), np . array ( (2 , 3 )))
36
+ slices = (2 , [2 ], [2 , 3 ], Ellipsis , np .array ((2 , 3 )))
37
37
for slice0 in slices :
38
38
_check_slice (slice0 )
39
39
_check_slice ((slice0 ,)) # tuple is same
@@ -46,7 +46,7 @@ def test_is_fancy():
46
46
assert not is_fancy ((None ,))
47
47
assert not is_fancy ((None , 1 ))
48
48
assert not is_fancy ((1 , None ))
49
- # Chack that actual False returned (rather than falsey)
49
+ # Check that actual False returned (rather than falsey)
50
50
assert is_fancy (1 ) is False
51
51
52
52
@@ -57,7 +57,9 @@ def test_canonical_slicers():
57
57
slice (0 , 9 ),
58
58
slice (1 , 10 ),
59
59
slice (1 , 10 , 2 ),
60
- 2 )
60
+ 2 ,
61
+ np .array (2 ))
62
+
61
63
shape = (10 , 10 )
62
64
for slice0 in slicers :
63
65
assert canonical_slicers ((slice0 ,), shape ) == (slice0 , slice (None ))
@@ -93,9 +95,9 @@ def test_canonical_slicers():
93
95
assert canonical_slicers (slice (None ), shape ) == (slice (None ), slice (None ))
94
96
# Check fancy indexing raises error
95
97
with pytest .raises (ValueError ):
96
- canonical_slicers ((np .array (1 ), 1 ), shape )
98
+ canonical_slicers ((np .array ([ 1 ] ), 1 ), shape )
97
99
with pytest .raises (ValueError ):
98
- canonical_slicers ((1 , np .array (1 )), shape )
100
+ canonical_slicers ((1 , np .array ([ 1 ] )), shape )
99
101
# Check out of range integer raises error
100
102
with pytest .raises (ValueError ):
101
103
canonical_slicers ((10 ,), shape )
@@ -111,6 +113,11 @@ def test_canonical_slicers():
111
113
# Check negative -> positive
112
114
assert canonical_slicers (- 1 , shape ) == (9 , slice (None ))
113
115
assert canonical_slicers ((slice (None ), - 1 ), shape ) == (slice (None ), 9 )
116
+ # check numpy integer scalars behave the same as numpy integers
117
+ assert canonical_slicers (np .array (2 ), shape ) == canonical_slicers (2 , shape )
118
+ assert canonical_slicers ((np .array (2 ), np .array (1 )), shape ) == canonical_slicers ((2 , 1 ), shape )
119
+ assert canonical_slicers ((2 , np .array (1 )), shape ) == canonical_slicers ((2 , 1 ), shape )
120
+ assert canonical_slicers ((np .array (2 ), 1 ), shape ) == canonical_slicers ((2 , 1 ), shape )
114
121
115
122
116
123
def test_slice2outax ():
@@ -664,20 +671,29 @@ def slicer_samples(shape):
664
671
if ndim == 0 :
665
672
return
666
673
yield (None , 0 )
674
+ yield (None , np .array (0 ))
667
675
yield (0 , None )
676
+ yield (np .array (0 ), None )
668
677
yield (Ellipsis , - 1 )
678
+ yield (Ellipsis , np .array (- 1 ))
669
679
yield (- 1 , Ellipsis )
680
+ yield (np .array (- 1 ), Ellipsis )
670
681
yield (None , Ellipsis )
671
682
yield (Ellipsis , None )
672
683
yield (Ellipsis , None , None )
673
684
if ndim == 1 :
674
685
return
675
686
yield (0 , None , slice (None ))
687
+ yield (np .array (0 ), None , slice (None ))
676
688
yield (Ellipsis , - 1 , None )
689
+ yield (Ellipsis , np .array (- 1 ), None )
677
690
yield (0 , Ellipsis , None )
691
+ yield (np .array (0 ), Ellipsis , None )
678
692
if ndim == 2 :
679
693
return
680
694
yield (slice (None ), 0 , - 1 , None )
695
+ yield (slice (None ), np .array (0 ), np .array (- 1 ), None )
696
+ yield (np .array (0 ), slice (None ), np .array (- 1 ), None )
681
697
682
698
683
699
def test_fileslice ():
@@ -711,7 +727,7 @@ def test_fileslice_errors():
711
727
_check_slicer ((1 ,), arr , fobj , 0 , 'C' )
712
728
# Fancy indexing raises error
713
729
with pytest .raises (ValueError ):
714
- fileslice (fobj , (np .array (1 ),), (2 , 3 , 4 ), arr .dtype )
730
+ fileslice (fobj , (np .array ([ 1 ] ),), (2 , 3 , 4 ), arr .dtype )
715
731
716
732
717
733
def test_fileslice_heuristic ():
0 commit comments