Skip to content

Commit 92d522c

Browse files
authored
add more block slice converts (#146)
* add more block slice converts * Update test_blockindices.jl
1 parent 72713d3 commit 92d522c

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/blockindices.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,5 +368,9 @@ intersect(a::BlockRange{1}, b::BlockRange{1}) = BlockRange(intersect(a.indices[1
368368

369369
# needed for scalar-like broadcasting
370370

371+
BlockSlice{Block{1,BT},RT}(a::Base.OneTo) where {BT,RT<:AbstractUnitRange} =
372+
BlockSlice(Block(convert(BT, 1)), convert(RT, a))::BlockSlice{Block{1,BT},RT}
371373
BlockSlice{BlockRange{1,Tuple{BT}},RT}(a::Base.OneTo) where {BT<:AbstractUnitRange,RT<:AbstractUnitRange} =
372-
BlockSlice(BlockRange(convert(BT, Base.OneTo(1))), convert(RT, a))::BlockSlice{BlockRange{1,Tuple{BT}},RT}
374+
BlockSlice(BlockRange(convert(BT, Base.OneTo(1))), convert(RT, a))::BlockSlice{BlockRange{1,Tuple{BT}},RT}
375+
BlockSlice{BlockIndexRange{1,Tuple{BT}},RT}(a::Base.OneTo) where {BT<:AbstractUnitRange,RT<:AbstractUnitRange} =
376+
BlockSlice(BlockIndexRange(Block(1), convert(BT, Base.OneTo(1))), convert(RT, a))::BlockSlice{BlockIndexRange{1,Tuple{BT}},RT}

test/test_blockindices.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,12 @@ end
300300
@test b[Base.Slice(1:3)] b
301301
@test b[1:2] b[1:2][1:2] BlockSlice(Block(5)[1:2],1:2)
302302
@test Block(b) Block(5)
303+
304+
@testset "OneTo converts" begin
305+
for b in (BlockSlice(Block(1), 1:1), BlockSlice(Block.(1:1), 1:1), BlockSlice(Block(1)[1:1], 1:1))
306+
@test convert(typeof(b), Base.OneTo(1)) b
307+
end
308+
end
303309
end
304310

305311
#=

0 commit comments

Comments
 (0)