|
110 | 110 | @test OffsetVector(v, -2:2) == OffsetArray(v, -2:2)
|
111 | 111 | @test typeof(OffsetVector{Float64}(undef, -2:2)) == typeof(OffsetArray{Float64}(undef, -2:2))
|
112 | 112 |
|
| 113 | + # Issue #71 |
| 114 | + ov = OffsetVector(v, -2:2) |
| 115 | + for T in [OffsetVector, OffsetArray] |
| 116 | + if VERSION >= v"1.1" |
| 117 | + @test ov == T(v, CartesianIndex(-2):CartesianIndex(2)) |
| 118 | + end |
| 119 | + @test ov == T(v, CartesianIndices((-2:2,))) |
| 120 | + end |
| 121 | + |
113 | 122 | @test OffsetVector(v, :) == OffsetArray(v, (:,)) == OffsetArray(v, :) == OffsetArray(v, axes(v))
|
114 | 123 | @test axes(OffsetVector(v, :)) == axes(v)
|
115 | 124 |
|
|
124 | 133 | @test OffsetMatrix(v, -2:2, -1:1) == OffsetArray(v, -2:2, -1:1)
|
125 | 134 | @test typeof(OffsetMatrix{Float64}(undef, -2:2, -1:1)) == typeof(OffsetArray{Float64}(undef, -2:2, -1:1))
|
126 | 135 |
|
| 136 | + # Issue #71 |
| 137 | + m = OffsetMatrix(v, -2:2, -1:1) |
| 138 | + for T in [OffsetMatrix, OffsetArray] |
| 139 | + if VERSION >= v"1.1" |
| 140 | + @test m == T(v, CartesianIndex(-2, -1):CartesianIndex(2, 1)) |
| 141 | + @test m == T(v, CartesianIndex(-2):CartesianIndex(2), CartesianIndex(-1):CartesianIndex(1)) |
| 142 | + @test m == T(v, -2:2, CartesianIndex(-1):CartesianIndex(1)) |
| 143 | + @test m == T(v, CartesianIndex(-2):CartesianIndex(2), -1:1) |
| 144 | + end |
| 145 | + @test m == T(v, CartesianIndices((-2:2, -1:1))) |
| 146 | + end |
| 147 | + |
127 | 148 | @test OffsetMatrix(v, :, :) == OffsetArray(v, (:, :)) == OffsetArray(v, :, :) == OffsetArray(v, axes(v))
|
128 | 149 | @test OffsetMatrix(v, :, 2:4) == OffsetArray(v, axes(v,1), 2:4)
|
129 | 150 | @test OffsetMatrix(v, 3:7, :) == OffsetArray(v, 3:7, axes(v,2))
|
|
134 | 155 | @test OffsetMatrix(w, :, 2:3) == OffsetArray(w, axes(w,1), 2:3)
|
135 | 156 | @test OffsetMatrix(w, 0:1, :) == OffsetArray(w, 0:1, axes(w,2))
|
136 | 157 | @test axes(OffsetArray(w, :, :)) == axes(w)
|
| 158 | + |
| 159 | + @test axes(OffsetMatrix(w, :, CartesianIndices((0:1,)))) == (3:4, 0:1) |
| 160 | + @test axes(OffsetMatrix(w, CartesianIndices((0:1,)), :)) == (0:1, 5:6) |
| 161 | +end |
| 162 | + |
| 163 | +@testset "construct OffsetArray with CartesianIndices" begin |
| 164 | + a = rand(2, 2, 2) |
| 165 | + oa = OffsetArray(a, 0:1, 3:4, 2:3) |
| 166 | + @test OffsetArray(a, CartesianIndices(axes(oa))) == oa |
| 167 | + @test axes(OffsetArray(a, :, CartesianIndices((3:4, 2:3)))) == (1:2, 3:4, 2:3) |
| 168 | + @test axes(OffsetArray(a, 10:11, CartesianIndices((3:4, 2:3)) )) == (10:11, 3:4, 2:3) |
| 169 | + @test axes(OffsetArray(a, CartesianIndices((3:4, 2:3)), :)) == (3:4, 2:3, 1:2) |
| 170 | + @test axes(OffsetArray(a, CartesianIndices((3:4, 2:3)), 10:11)) == (3:4, 2:3, 10:11) |
| 171 | + @test axes(OffsetArray(a, :, :, CartesianIndices((3:4,)) )) == (1:2, 1:2, 3:4) |
| 172 | + @test axes(OffsetArray(a, 10:11, :, CartesianIndices((3:4,)) )) == (10:11, 1:2, 3:4) |
| 173 | + @test axes(OffsetArray(a, 10:11, 2:3, CartesianIndices((3:4,)) )) == (10:11, 2:3, 3:4) |
| 174 | + |
| 175 | + # ignore empty CartesianIndices |
| 176 | + @test OffsetArray(a, CartesianIndices(()), 0:1, :, 2:3) == OffsetArray(a, 0:1, :, 2:3) |
| 177 | + @test OffsetArray(a, 0:1, CartesianIndices(()), :, 2:3) == OffsetArray(a, 0:1, :, 2:3) |
| 178 | + @test OffsetArray(a, 0:1, :, CartesianIndices(()), 2:3) == OffsetArray(a, 0:1, :, 2:3) |
| 179 | + @test OffsetArray(a, 0:1, :, 2:3, CartesianIndices(())) == OffsetArray(a, 0:1, :, 2:3) |
137 | 180 | end
|
138 | 181 |
|
139 | 182 | @testset "undef, missing, and nothing constructors" begin
|
|
151 | 194 | @test !isassigned(OffsetVector{Union{T,Vector{Int}}}(undef, -1:1), -1)
|
152 | 195 | @test OffsetVector{Union{T,Vector{Int}}}(t, -1:1)[-1] === t
|
153 | 196 | end
|
| 197 | + |
| 198 | + oa = OffsetArray{Float64,2}(undef, CartesianIndices((1:2, 3:4))) |
| 199 | + @test axes(oa) == (1:2, 3:4) |
| 200 | + @test eltype(oa) == Float64 |
| 201 | + oa = OffsetArray{Float64,2}(undef, 1:2, CartesianIndices((3:4,))) |
| 202 | + @test axes(oa) == (1:2, 3:4) |
| 203 | + @test eltype(oa) == Float64 |
| 204 | + oa = OffsetArray{Float64,2}(undef, (1:2, CartesianIndices((3:4,)))) |
| 205 | + @test axes(oa) == (1:2, 3:4) |
| 206 | + @test eltype(oa) == Float64 |
| 207 | + oa = OffsetArray{Float64}(undef, CartesianIndices((1:2, 3:4))) |
| 208 | + @test axes(oa) == (1:2, 3:4) |
| 209 | + @test eltype(oa) == Float64 |
| 210 | + oa = OffsetArray{Float64}(undef, 1:2, CartesianIndices((3:4,))) |
| 211 | + @test axes(oa) == (1:2, 3:4) |
| 212 | + @test eltype(oa) == Float64 |
| 213 | + oa = OffsetArray{Float64}(undef, (1:2, CartesianIndices((3:4,)))) |
| 214 | + @test axes(oa) == (1:2, 3:4) |
| 215 | + @test eltype(oa) == Float64 |
154 | 216 | end
|
155 | 217 |
|
156 | 218 | @testset "Offset range construction" begin
|
|
0 commit comments