Skip to content
This repository was archived by the owner on Oct 8, 2021. It is now read-only.

Commit 01ec237

Browse files
committed
fix #13
1 parent 7130819 commit 01ec237

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

src/simpleweighteddigraph.jl

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,20 @@ A type representing a directed graph with weights of type `U`.
55
"""
66
mutable struct SimpleWeightedDiGraph{T<:Integer, U<:Real} <: AbstractSimpleWeightedGraph{T, U}
77
weights::SparseMatrixCSC{U, T} # indexed by [dst, src]
8-
function SimpleWeightedDiGraph{T, U}(adjmx::SparseMatrixCSC{U,T}, permute=true) where T <: Integer where U <: Real
8+
function SimpleWeightedDiGraph{T, U}(adjmx::SparseMatrixCSC{U,T}; permute=true) where T <: Integer where U <: Real
99
dima,dimb = size(adjmx)
1010
isequal(dima,dimb) || error("Adjacency / distance matrices must be square")
1111
permute ? new{T, U}(permutedims(adjmx)) : new{T, U}(adjmx)
1212
end
1313

14-
SimpleWeightedDiGraph{T}(adjmx::SparseMatrixCSC{U, T}, permute=true) where T<:Integer where U<:Real =
15-
permute ? new{T, U}(permutedims(adjmx)) : new{T, U}(adjmx)
16-
17-
SimpleWeightedDiGraph(adjmx::SparseMatrixCSC{U, T}, permute=true) where T<:Integer where U<:Real =
18-
permute ? new{T, U}(permutedims(adjmx)) : new{T, U}(adjmx)
1914
end
2015

16+
SimpleWeightedDiGraph{T}(adjmx::SparseMatrixCSC{U, T}; permute=true) where T<:Integer where U<:Real =
17+
SimpleWeightedDiGraph{T, U}(adjmx; permute=permute)
18+
19+
SimpleWeightedDiGraph(adjmx::SparseMatrixCSC{U, T}; permute=true) where T<:Integer where U<:Real =
20+
SimpleWeightedDiGraph{T, U}(adjmx; permute=permute)
21+
2122
SimpleWeightedDiGraph(m::AbstractMatrix{U}) where U <: Real =
2223
SimpleWeightedDiGraph{Int, U}(SparseMatrixCSC{U, Int}(m))
2324
SimpleWeightedDiGraph{T}(m::AbstractMatrix{U}) where T<:Integer where U<:Real =
@@ -27,7 +28,7 @@ SimpleWeightedDiGraph{T, U}(m::AbstractMatrix) where T<:Integer where U<:Real =
2728

2829
SimpleWeightedDiGraph(g::SimpleWeightedDiGraph) = SimpleWeightedDiGraph(g.weights, false)
2930
SimpleWeightedDiGraph{T,U}(g::SimpleWeightedDiGraph) where T<:Integer where U<:Real =
30-
SimpleWeightedDiGraph(SparseMatrixCSC{U, T}(g.weights), false)
31+
SimpleWeightedDiGraph(SparseMatrixCSC{U, T}(g.weights); permute=false)
3132

3233

3334
ne(g::SimpleWeightedDiGraph) = nnz(g.weights)
@@ -64,7 +65,7 @@ end
6465
# DiGraph(srcs, dsts, weights)
6566
function SimpleWeightedDiGraph(i::AbstractVector{T}, j::AbstractVector{T}, v::AbstractVector{U}; combine = +) where T<:Integer where U<:Real
6667
m = max(maximum(j), maximum(i))
67-
SimpleWeightedDiGraph{T, U}(sparse(j, i, v, m, m, combine), false)
68+
SimpleWeightedDiGraph{T, U}(sparse(j, i, v, m, m, combine); permute=false)
6869
end
6970

7071
edgetype(::SimpleWeightedDiGraph{T, U}) where T<:Integer where U<:Real = SimpleWeightedGraphEdge{T,U}

src/simpleweightedgraph.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ mutable struct SimpleWeightedGraph{T<:Integer, U<:Real} <: AbstractSimpleWeighte
1414
new{T, U}(adjmx)
1515
end
1616

17-
SimpleWeightedGraph{T}(adjmx::SparseMatrixCSC{U, T}) where T<:Integer where U<:Real =
18-
new{T, U}(adjmx)
19-
20-
SimpleWeightedGraph(adjmx::SparseMatrixCSC{U, T}) where T<:Integer where U<:Real =
21-
new{T, U}(adjmx)
22-
2317
end
2418

2519
ne(g::SimpleWeightedGraph) = nnz(g.weights) ÷ 2
2620

21+
SimpleWeightedGraph{T}(adjmx::SparseMatrixCSC{U, T}) where T<:Integer where U<:Real =
22+
SimpleWeightedGraph{T, U}(adjmx)
23+
24+
SimpleWeightedGraph(adjmx::SparseMatrixCSC{U, T}) where T<:Integer where U<:Real =
25+
SimpleWeightedGraph{T, U}(adjmx)
26+
2727
SimpleWeightedGraph(m::AbstractMatrix{U}) where U <: Real =
2828
SimpleWeightedGraph{Int, U}(SparseMatrixCSC{U, Int}(m))
2929
SimpleWeightedGraph{T}(m::AbstractMatrix{U}) where T<:Integer where U<:Real =

test/simpleweightedgraph.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using SimpleWeightedGraphs
22

33
@testset "SimpleWeightedGraphs" begin
4+
@info("Ignore warnings relating to adding and removing vertices and edges")
45
adjmx1 = [0 1 0; 1 0 1; 0 1 0] # SimpleWeightedGraph
56
adjmx2 = [0 1 0; 1 0 1; 1 1 0] # SimpleWeightedDiGraph
67
# specific concrete generators - no need for loop

0 commit comments

Comments
 (0)