Skip to content

Commit 7632937

Browse files
committed
Fix RaggedEnd in range
1 parent 6519ecf commit 7632937

2 files changed

Lines changed: 8 additions & 0 deletions

File tree

src/vector_of_array.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,12 @@ end
562562
function Base.:(:)(start::Integer, step::Integer, stop::RaggedEnd)
563563
return RaggedRange(stop.dim, Int(start), Int(step), stop.offset)
564564
end
565+
function Base.:(:)(start::RaggedEnd, stop::RaggedEnd)
566+
return RaggedRange(stop.dim, start.offset, 1, stop.offset)
567+
end
568+
function Base.:(:)(start::RaggedEnd, step::Integer, stop::RaggedEnd)
569+
return RaggedRange(stop.dim, start.offset, Int(step), stop.offset)
570+
end
565571
Base.broadcastable(x::RaggedRange) = Ref(x)
566572

567573
@inline function _is_ragged_dim(VA::AbstractVectorOfArray, d::Integer)

test/basic_indexing.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ ragged = VectorOfArray([[1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0, 9.0]])
179179
@test ragged[1:end, 3] == [6.0, 7.0, 8.0, 9.0]
180180
@test ragged[:, end] == [6.0, 7.0, 8.0, 9.0]
181181
@test ragged[:, 2:end] == VectorOfArray(ragged.u[2:end])
182+
@test ragged[:, end - 1:end] == VectorOfArray(ragged.u[end - 1:end])
182183

183184
ragged2 = VectorOfArray([[1.0, 2.0, 3.0, 4.0], [5.0, 6.0], [7.0, 8.0, 9.0]])
184185
@test ragged2[end, 1] == 4.0
@@ -199,6 +200,7 @@ ragged2 = VectorOfArray([[1.0, 2.0, 3.0, 4.0], [5.0, 6.0], [7.0, 8.0, 9.0]])
199200
@test ragged2[1:(end - 1), 1] == [1.0, 2.0, 3.0]
200201
@test ragged2[1:(end - 1), 2] == [5.0]
201202
@test ragged2[1:(end - 1), 3] == [7.0, 8.0]
203+
@test ragged2[:, end - 1:end] == VectorOfArray(ragged2.u[end - 1:end])
202204

203205
# Test that RaggedEnd and RaggedRange broadcast as scalars
204206
# (fixes issue with SymbolicIndexingInterface where broadcasting over RaggedEnd would fail)

0 commit comments

Comments
 (0)