Skip to content

Commit 3f0a5e9

Browse files
committed
add length interface
1 parent 5dda575 commit 3f0a5e9

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/ArrayInterface.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ end
5858

5959
Base.firstindex(ind::MatrixIndex)=1
6060
Base.lastindex(ind::MatrixIndex)=ind.count
61+
Base.length(ind::MatrixIndex)=ind.count
6162
function Base.getindex(ind::BidiagonalIndex,i::Int)
6263
1 <= i <= ind.count || throw(BoundsError(ind, i))
6364
if ind.isup

test/runtests.jl

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,29 @@ using LinearAlgebra, SparseArrays
1010
D=Diagonal([1,2,3,4])
1111
@test has_sparsestruct(D)
1212
rowind,colind=findstructralnz(D)
13-
@test [D[rowind[i],colind[i]] for i in 1:4]==[1,2,3,4]
13+
@test [D[rowind[i],colind[i]] for i in 1:length(rowind)]==[1,2,3,4]
14+
@test length(rowind)==4
15+
@test length(rowind)==length(colind)
1416

1517
Bu = Bidiagonal([1,2,3,4], [7,8,9], :U)
1618
@test has_sparsestruct(Bu)
1719
rowind,colind=findstructralnz(Bu)
18-
@test [Bu[rowind[i],colind[i]] for i in 1:7]==[1,7,2,8,3,9,4]
20+
@test [Bu[rowind[i],colind[i]] for i in 1:length(rowind)]==[1,7,2,8,3,9,4]
1921
Bl = Bidiagonal([1,2,3,4], [7,8,9], :L)
2022
@test has_sparsestruct(Bl)
2123
rowind,colind=findstructralnz(Bl)
22-
@test [Bl[rowind[i],colind[i]] for i in 1:7]==[1,7,2,8,3,9,4]
24+
@test [Bl[rowind[i],colind[i]] for i in 1:length(rowind)]==[1,7,2,8,3,9,4]
2325

2426
Tri=Tridiagonal([1,2,3],[1,2,3,4],[4,5,6])
2527
@test has_sparsestruct(Tri)
2628
rowind,colind=findstructralnz(Tri)
27-
@test [Tri[rowind[i],colind[i]] for i in 1:10]==[1,2,3,4,4,5,6,1,2,3]
29+
@test [Tri[rowind[i],colind[i]] for i in 1:length(rowind)]==[1,2,3,4,4,5,6,1,2,3]
2830
STri=SymTridiagonal([1,2,3,4],[5,6,7])
2931
@test has_sparsestruct(STri)
3032
rowind,colind=findstructralnz(STri)
31-
@test [STri[rowind[i],colind[i]] for i in 1:10]==[1,2,3,4,5,6,7,5,6,7]
33+
@test [STri[rowind[i],colind[i]] for i in 1:length(rowind)]==[1,2,3,4,5,6,7,5,6,7]
3234

3335
Sp=sparse([1,2,3],[1,2,3],[1,2,3])
3436
@test has_sparsestruct(Sp)
3537
rowind,colind=findstructralnz(Sp)
36-
@test [Tri[rowind[i],colind[i]] for i in 1:3]==[1,2,3]
38+
@test [Tri[rowind[i],colind[i]] for i in 1:length(rowind)]==[1,2,3]

0 commit comments

Comments
 (0)