From d69aaaaea8a2a69337b67797570a603dea9761bf Mon Sep 17 00:00:00 2001 From: Yingbo Ma Date: Thu, 4 Aug 2022 09:45:52 -0400 Subject: [PATCH] Handle empty matrix --- src/coloring/matrix2graph.jl | 2 +- test/test_specialmatrices.jl | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/coloring/matrix2graph.jl b/src/coloring/matrix2graph.jl index b8a491ef..b5a1f32d 100644 --- a/src/coloring/matrix2graph.jl +++ b/src/coloring/matrix2graph.jl @@ -5,7 +5,7 @@ Returns a vector of rows where each row contains a vector of its column indices. """ function _cols_by_rows(rows_index,cols_index) - nrows = maximum(rows_index) + nrows = isempty(rows_index) ? 0 : maximum(rows_index) cols_by_rows = [eltype(rows_index)[] for _ in 1:nrows] for (i,j) in zip(rows_index,cols_index) push!(cols_by_rows[i],j) diff --git a/test/test_specialmatrices.jl b/test/test_specialmatrices.jl index 10d288e0..213b095a 100644 --- a/test/test_specialmatrices.jl +++ b/test/test_specialmatrices.jl @@ -1,7 +1,9 @@ using SparseDiffTools +using SparseArrays using LinearAlgebra using BandedMatrices using BlockBandedMatrices +using Test n=10 dense=fill(1.,(n,n)) @@ -13,6 +15,7 @@ bidiagonalU=Bidiagonal(dense,:U) bidiagonalL=Bidiagonal(dense,:L) tridiagonal=Tridiagonal(dense) symtridiagonal=SymTridiagonal(dense) +emptymat=sparse(Int[], Int[], true, 1, 1) banded=BandedMatrix(dense,(1,2)) blockbanded1=BlockBandedMatrix(dense,[1,2,3,4],[4,3,2,1],(1,0)) @@ -60,3 +63,4 @@ _testvalidity(blockbanded1) _testvalidity(blockbanded2) _testvalidity(bandedblockbanded1) _testvalidity(bandedblockbanded2) +_testvalidity(emptymat)