From 97087d51eef7e1ba81b4a88444b69046335fdfc0 Mon Sep 17 00:00:00 2001 From: jishnub Date: Thu, 19 Aug 2021 14:09:12 +0400 Subject: [PATCH 1/2] propagate iteration to parent --- src/OffsetArrays.jl | 2 ++ test/runtests.jl | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/OffsetArrays.jl b/src/OffsetArrays.jl index 979f2de2..de513d17 100644 --- a/src/OffsetArrays.jl +++ b/src/OffsetArrays.jl @@ -441,6 +441,8 @@ end A end +@inline Base.iterate(a::OffsetArray, i...) = iterate(parent(a), i...) + Base.in(x, A::OffsetArray) = in(x, parent(A)) Base.copy(A::OffsetArray) = parent_call(copy, A) diff --git a/test/runtests.jl b/test/runtests.jl index f09cdfef..64a6ddb1 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1492,6 +1492,12 @@ end @test a == d end end + + for r in Any[1:1:10, 1:10], s in Any[r, collect(r)] + ro = OffsetArray(r) + v = ones(10) + @test Float64[v[i] for i in r] == Float64[v[i] for i in ro] + end end @testset "show/summary" begin From ee59667df9ae7683529e905e1f39b604a0b2c11c Mon Sep 17 00:00:00 2001 From: jishnub Date: Thu, 19 Aug 2021 14:30:56 +0400 Subject: [PATCH 2/2] Fix tests --- test/runtests.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 64a6ddb1..54384fcb 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1493,10 +1493,10 @@ end end end + v = ones(10) for r in Any[1:1:10, 1:10], s in Any[r, collect(r)] - ro = OffsetArray(r) - v = ones(10) - @test Float64[v[i] for i in r] == Float64[v[i] for i in ro] + so = OffsetArray(s) + @test Float64[v[i] for i in s] == Float64[v[i] for i in so] end end