Skip to content

Commit a5b7471

Browse files
committed
Add inference tests to indexing
1 parent 97db7c3 commit a5b7471

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

test/indexing.jl

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ end
5252

5353
@testset "1-dimensional" begin
5454
for i = 1:3
55-
@test ArrayInterface.getindex(LinearIndices((3,)), i) == i
56-
@test ArrayInterface.getindex(CartesianIndices((3,)), i) == CartesianIndex(i,)
55+
@test @inferred(ArrayInterface.getindex(LinearIndices((3,)), i)) == i
56+
@test @inferred(ArrayInterface.getindex(CartesianIndices((3,)), i)) == CartesianIndex(i,)
5757
end
58-
@test ArrayInterface.getindex(LinearIndices((3,)), 2,1) == 2
59-
@test ArrayInterface.getindex(LinearIndices((3,)), [1]) == [1]
58+
@test @inferred(ArrayInterface.getindex(LinearIndices((3,)), 2,1)) == 2
59+
@test @inferred(ArrayInterface.getindex(LinearIndices((3,)), [1])) == [1]
6060
# !!NOTE!! this is different than Base.getindex(::LinearIndices, ::AbstractUnitRange)
6161
# which returns a UnitRange. Instead we try to preserve axes if at all possible so the
6262
# values are the same but it's still wrapped in LinearIndices struct
63-
@test ArrayInterface.getindex(LinearIndices((3,)), 1:2) == 1:2
64-
@test ArrayInterface.getindex(LinearIndices((3,)), 1:2:3) === 1:2:3
63+
@test @inferred(ArrayInterface.getindex(LinearIndices((3,)), 1:2)) == 1:2
64+
@test @inferred(ArrayInterface.getindex(LinearIndices((3,)), 1:2:3)) === 1:2:3
6565
@test_throws BoundsError ArrayInterface.getindex(LinearIndices((3,)), 2:4)
6666
@test_throws BoundsError ArrayInterface.getindex(CartesianIndices((3,)), 2, 2)
6767
# ambiguity btw cartesian indexing and linear indexing in 1d when
@@ -76,54 +76,54 @@ end
7676
linear = LinearIndices(cartesian)
7777
for j = 1:3, i = 1:4
7878
k += 1
79-
@test ArrayInterface.getindex(linear, i, j) == ArrayInterface.getindex(linear, k) == k
80-
@test ArrayInterface.getindex(cartesian, k) == CartesianIndex(i,j)
81-
@test ArrayInterface.getindex(LinearIndices(map(Base.Slice, (0:3,3:5))), i-1, j+2) == k
82-
@test ArrayInterface.getindex(CartesianIndices(map(Base.Slice, (0:3,3:5))), k) == CartesianIndex(i-1,j+2)
79+
@test @inferred(ArrayInterface.getindex(linear, i, j)) == ArrayInterface.getindex(linear, k) == k
80+
@test @inferred(ArrayInterface.getindex(cartesian, k)) == CartesianIndex(i,j)
81+
@test @inferred(ArrayInterface.getindex(LinearIndices(map(Base.Slice, (0:3,3:5))), i-1, j+2)) == k
82+
@test @inferred(ArrayInterface.getindex(CartesianIndices(map(Base.Slice, (0:3,3:5))), k)) == CartesianIndex(i-1,j+2)
8383
end
84-
@test linear[linear] == linear
85-
@test linear[vec(linear)] == vec(linear)
86-
@test linear[cartesian] == linear
87-
@test linear[vec(cartesian)] == vec(linear)
88-
@test cartesian[linear] == cartesian
89-
@test cartesian[vec(linear)] == vec(cartesian)
90-
@test cartesian[cartesian] == cartesian
91-
@test cartesian[vec(cartesian)] == vec(cartesian)
92-
@test linear[2:3] === 2:3
93-
@test linear[3:-1:1] === 3:-1:1
84+
@test @inferred(getindex(linear, linear)) == linear
85+
@test @inferred(getindex(linear, vec(linear))) == vec(linear)
86+
@test @inferred(getindex(linear, cartesian)) == linear
87+
@test @inferred(getindex(linear, vec(cartesian))) == vec(linear)
88+
@test @inferred(getindex(cartesian, linear)) == cartesian
89+
@test @inferred(getindex(cartesian, vec(linear))) == vec(cartesian)
90+
@test @inferred(getindex(cartesian, cartesian)) == cartesian
91+
@test @inferred(getindex(cartesian, vec(cartesian))) == vec(cartesian)
92+
@test @inferred(getindex(linear, 2:3)) === 2:3
93+
@test @inferred(getindex(linear, 3:-1:1)) === 3:-1:1
9494
@test_throws BoundsError linear[4:13]
9595
end
9696

9797
@testset "3-dimensional" begin
9898
l = 0
9999
for k = 1:2, j = 1:3, i = 1:4
100100
l += 1
101-
@test ArrayInterface.getindex(LinearIndices((4,3,2)),i,j,k) == l
102-
@test ArrayInterface.getindex(LinearIndices((4,3,2)),l) == l
103-
@test ArrayInterface.getindex(CartesianIndices((4,3,2)),i,j,k) == CartesianIndex(i,j,k)
104-
@test ArrayInterface.getindex(CartesianIndices((4,3,2)),l) == CartesianIndex(i,j,k)
105-
@test ArrayInterface.getindex(LinearIndices((1:4,1:3,1:2)),i,j,k) == l
106-
@test ArrayInterface.getindex(LinearIndices((1:4,1:3,1:2)),l) == l
107-
@test ArrayInterface.getindex(CartesianIndices((1:4,1:3,1:2)),i,j,k) == CartesianIndex(i,j,k)
108-
@test ArrayInterface.getindex(CartesianIndices((1:4,1:3,1:2)),l) == CartesianIndex(i,j,k)
101+
@test @inferred(ArrayInterface.getindex(LinearIndices((4,3,2)),i,j,k)) == l
102+
@test @inferred(ArrayInterface.getindex(LinearIndices((4,3,2)),l)) == l
103+
@test @inferred(ArrayInterface.getindex(CartesianIndices((4,3,2)),i,j,k)) == CartesianIndex(i,j,k)
104+
@test @inferred(ArrayInterface.getindex(CartesianIndices((4,3,2)),l)) == CartesianIndex(i,j,k)
105+
@test @inferred(ArrayInterface.getindex(LinearIndices((1:4,1:3,1:2)),i,j,k)) == l
106+
@test @inferred(ArrayInterface.getindex(LinearIndices((1:4,1:3,1:2)),l)) == l
107+
@test @inferred(ArrayInterface.getindex(CartesianIndices((1:4,1:3,1:2)),i,j,k)) == CartesianIndex(i,j,k)
108+
@test @inferred(ArrayInterface.getindex(CartesianIndices((1:4,1:3,1:2)),l)) == CartesianIndex(i,j,k)
109109
end
110110

111111
l = 0
112112
for k = -101:-100, j = 3:5, i = 0:3
113113
l += 1
114-
@test ArrayInterface.getindex(LinearIndices(map(Base.Slice, (0:3,3:5,-101:-100))),i,j,k) == l
115-
@test ArrayInterface.getindex(LinearIndices(map(Base.Slice, (0:3,3:5,-101:-100))),l) == l
116-
@test ArrayInterface.getindex(CartesianIndices(map(Base.Slice, (0:3,3:5,-101:-100))),i,j,k) == CartesianIndex(i,j,k)
117-
@test ArrayInterface.getindex(CartesianIndices(map(Base.Slice, (0:3,3:5,-101:-100))),l) == CartesianIndex(i,j,k)
114+
@test @inferred(ArrayInterface.getindex(LinearIndices(map(Base.Slice, (0:3,3:5,-101:-100))),i,j,k)) == l
115+
@test @inferred(ArrayInterface.getindex(LinearIndices(map(Base.Slice, (0:3,3:5,-101:-100))),l)) == l
116+
@test @inferred(ArrayInterface.getindex(CartesianIndices(map(Base.Slice, (0:3,3:5,-101:-100))),i,j,k)) == CartesianIndex(i,j,k)
117+
@test @inferred(ArrayInterface.getindex(CartesianIndices(map(Base.Slice, (0:3,3:5,-101:-100))),l)) == CartesianIndex(i,j,k)
118118
end
119119

120120
local A = reshape(Vector(1:9), (3,3))
121-
@test ArrayInterface.getindex(CartesianIndices(size(A)),6) == CartesianIndex(3,2)
122-
@test ArrayInterface.getindex(LinearIndices(size(A)),3, 2) == 6
123-
@test ArrayInterface.getindex(CartesianIndices(A),6) == CartesianIndex(3,2)
124-
@test ArrayInterface.getindex(LinearIndices(A),3, 2) == 6
121+
@test @inferred(ArrayInterface.getindex(CartesianIndices(size(A)),6)) == CartesianIndex(3,2)
122+
@test @inferred(ArrayInterface.getindex(LinearIndices(size(A)),3, 2)) == 6
123+
@test @inferred(ArrayInterface.getindex(CartesianIndices(A),6)) == CartesianIndex(3,2)
124+
@test @inferred(ArrayInterface.getindex(LinearIndices(A),3, 2)) == 6
125125
for i in 1:length(A)
126-
@test ArrayInterface.getindex(LinearIndices(A),ArrayInterface.getindex(CartesianIndices(A),i)) == i
126+
@test @inferred(ArrayInterface.getindex(LinearIndices(A),ArrayInterface.getindex(CartesianIndices(A),i))) == i
127127
end
128128
end
129129

0 commit comments

Comments
 (0)