We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 6519ecf commit 7632937Copy full SHA for 7632937
2 files changed
src/vector_of_array.jl
@@ -562,6 +562,12 @@ end
562
function Base.:(:)(start::Integer, step::Integer, stop::RaggedEnd)
563
return RaggedRange(stop.dim, Int(start), Int(step), stop.offset)
564
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
571
Base.broadcastable(x::RaggedRange) = Ref(x)
572
573
@inline function _is_ragged_dim(VA::AbstractVectorOfArray, d::Integer)
test/basic_indexing.jl
@@ -179,6 +179,7 @@ ragged = VectorOfArray([[1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0, 9.0]])
179
@test ragged[1:end, 3] == [6.0, 7.0, 8.0, 9.0]
180
@test ragged[:, end] == [6.0, 7.0, 8.0, 9.0]
181
@test ragged[:, 2:end] == VectorOfArray(ragged.u[2:end])
182
+@test ragged[:, end - 1:end] == VectorOfArray(ragged.u[end - 1:end])
183
184
ragged2 = VectorOfArray([[1.0, 2.0, 3.0, 4.0], [5.0, 6.0], [7.0, 8.0, 9.0]])
185
@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]])
199
200
@test ragged2[1:(end - 1), 1] == [1.0, 2.0, 3.0]
201
@test ragged2[1:(end - 1), 2] == [5.0]
202
@test ragged2[1:(end - 1), 3] == [7.0, 8.0]
203
+@test ragged2[:, end - 1:end] == VectorOfArray(ragged2.u[end - 1:end])
204
205
# Test that RaggedEnd and RaggedRange broadcast as scalars
206
# (fixes issue with SymbolicIndexingInterface where broadcasting over RaggedEnd would fail)
0 commit comments