Skip to content

Commit 48f6157

Browse files
authored
Support converting Fills to StepRangeLen (#290)
1 parent a718e2f commit 48f6157

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "FillArrays"
22
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
3-
version = "1.5.0"
3+
version = "1.6.0"
44

55
[deps]
66
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

src/FillArrays.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,9 @@ function convert(::Type{T}, A::AbstractFillMatrix) where T<:Diagonal
530530
isdiag(A) ? T(A) : throw(InexactError(:convert, T, A))
531531
end
532532

533+
Base.StepRangeLen(F::AbstractFillVector{T}) where T = StepRangeLen(getindex_value(F), zero(T), length(F))
534+
convert(::Type{SL}, F::AbstractFillVector) where SL<:AbstractRange = convert(SL, StepRangeLen(F))
535+
533536
#################
534537
# Structured matrix types
535538
#################

test/runtests.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,13 @@ end
301301
@test A[1,:,1] A[1,1:6,1] Fill(2.0,6)
302302
@test A[:,:,:] A[1:5,1:6,1:7] A[1:5,:,1:7] A[:,1:6,1:7] A
303303
end
304+
305+
@testset "StepRangeLen convert" begin
306+
for (z,s) in ((Zeros{Int}(5), StepRangeLen(0, 0, 5)), (Ones{Int}(5), StepRangeLen(1, 0, 5)), (Fill(2,5), StepRangeLen(2, 0, 5)))
307+
@test s == z
308+
@test StepRangeLen(z) convert(StepRangeLen, z) convert(StepRangeLen{Int}, z) convert(typeof(s), z) convert(AbstractRange, z) s
309+
end
310+
end
304311
end
305312

306313
@testset "RectDiagonal" begin

0 commit comments

Comments
 (0)