Skip to content

Commit e191696

Browse files
committed
specialize for Base.OneTo
1 parent f5cd050 commit e191696

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

src/axes.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ offset_coerce(::Type{I}, r::AbstractUnitRange) where I<:AbstractUnitRange =
167167
@inline Base.axes1(r::IdOffsetRange) = IdOffsetRange(Base.axes1(r.parent), r.offset)
168168
@inline Base.unsafe_indices(r::IdOffsetRange) = (Base.axes1(r),)
169169
@inline Base.length(r::IdOffsetRange) = length(r.parent)
170+
@inline Base.isempty(r::IdOffsetRange) = isempty(r.parent)
170171
Base.reduced_index(i::IdOffsetRange) = typeof(i)(first(i):first(i))
171172
# Workaround for #92 on Julia < 1.4
172173
Base.reduced_index(i::IdentityUnitRange{<:IdOffsetRange}) = typeof(i)(first(i):first(i))

test/runtests.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ end
221221
@test OrdinalRange{BigInt,BigInt}(r2) === r2
222222
end
223223
end
224+
<<<<<<< HEAD
224225

225226
@testset "Bool IdOffsetRange (issue #223)" begin
226227
for b1 in [false, true], b2 in [false, true]
@@ -344,6 +345,25 @@ end
344345
@test_throws BoundsError r[true:true:false]
345346
@test_throws BoundsError r[false:true:false]
346347
end
348+
=======
349+
@testset "iteration" begin
350+
# parent has Base.OneTo axes
351+
A = ones(4:10)
352+
ax = axes(A, 1)
353+
ind, st = iterate(ax)
354+
@test A[ind] == A[4]
355+
ind, st = iterate(ax, st)
356+
@test A[ind] == A[5]
357+
358+
# parent doesn't have Base.OneTo axes
359+
B = @view A[:]
360+
C = OffsetArray(B, 0)
361+
ax = axes(C, 1)
362+
ind, st = iterate(ax)
363+
@test C[ind] == C[4]
364+
ind, st = iterate(ax, st)
365+
@test C[ind] == C[5]
366+
>>>>>>> df172e1... specialize for Base.OneTo
347367
end
348368
end
349369

0 commit comments

Comments
 (0)