Skip to content

Commit 3c639bc

Browse files
committed
bugfix in constructors
1 parent 9f26eb1 commit 3c639bc

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/OffsetArrays.jl

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,10 @@ for FT in (:OffsetArray, :OffsetVector, :OffsetMatrix)
165165
# In general, indices get converted to AbstractUnitRanges.
166166
# CartesianIndices{N} get converted to N ranges
167167
@eval function $FT(A::AbstractArray, inds::Tuple)
168-
inds2 = to_indices(A, axes(A), inds)
169-
OffsetArray(A, _toAbstractUnitRanges(inds2))
168+
$FT(A, _toAbstractUnitRanges(to_indices(A, axes(A), inds)))
170169
end
171170

172-
@eval $FT(A::AbstractArray, inds::Vararg) = OffsetArray(A, inds)
171+
@eval $FT(A::AbstractArray, inds::Vararg) = $FT(A, inds)
173172

174173
# convert ranges to offsets
175174
@eval function $FT(A::AbstractArray{<:Any,N}, inds::Indices{N}) where {N}
@@ -180,7 +179,7 @@ for FT in (:OffsetArray, :OffsetVector, :OffsetMatrix)
180179
$FT(A, map(_offset, axparent, inds))
181180
end
182181

183-
@eval $FT(A::AbstractArray, origin::Origin) = OffsetArray(A, origin(A))
182+
@eval $FT(A::AbstractArray, origin::Origin) = $FT(A, origin(A))
184183
end
185184

186185
# Ambiguity resolution

test/runtests.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,10 @@ end
251251
@test_throws ArgumentError OffsetArray(ao, (-2, )) # convinient constructor accumulate offsets
252252

253253
# disallow OffsetVector(::Array{<:Any, N}, offsets) where N != 1
254-
@test_throws ArgumentError OffsetVector(zeros(2,2), (2,2))
254+
@test_throws ArgumentError OffsetVector(zeros(2,2), (2, 2))
255+
@test_throws ArgumentError OffsetVector(zeros(2,2), 2, 2)
256+
@test_throws ArgumentError OffsetVector(zeros(2,2), (1:2, 1:2))
257+
@test_throws ArgumentError OffsetVector(zeros(2,2), 1:2, 1:2)
255258
@test_throws ArgumentError OffsetVector(zeros(), ())
256259
end
257260

@@ -372,6 +375,9 @@ end
372375

373376
# disallow OffsetMatrix(::Array{<:Any, N}, offsets) where N != 2
374377
@test_throws ArgumentError OffsetMatrix(zeros(2), (2,))
378+
@test_throws ArgumentError OffsetMatrix(zeros(2), 2)
379+
@test_throws ArgumentError OffsetMatrix(zeros(2), (1:2,))
380+
@test_throws ArgumentError OffsetMatrix(zeros(2), 1:2)
375381
@test_throws ArgumentError OffsetMatrix(zeros(), ())
376382
end
377383

0 commit comments

Comments
 (0)