Skip to content

Commit

Permalink
Merge branch 'tpoisot/issue6' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
tpoisot committed Jun 30, 2023
2 parents 3997281 + bc35d8d commit 28b076b
Showing 1 changed file with 31 additions and 2 deletions.
33 changes: 31 additions & 2 deletions src/data/mangal.jl
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ function mangalnetwork(MN::Mangal.MangalNetwork, query::Pair...; taxonlevel::Boo
nodelist = convert(Vector{Mangal.MangalReferenceTaxon}, nodelist)
end
nodes = Unipartite(nodelist)
T = typeof(edgelist[1].strength)
int_str = [edge.strength for edge in edgelist]
T = eltype(promote(int_str...))
edges = Quantitative(zeros(T, size(nodes)))
N = SpeciesInteractionNetwork(nodes, edges)
for edge in edgelist
Expand All @@ -61,4 +62,32 @@ function mangalnetwork(MN::Mangal.MangalNetwork, query::Pair...; taxonlevel::Boo
end

mangalnetwork(id::Integer, args...; kwargs...) = mangalnetwork(Mangal.network(id), args...; kwargs...)
mangalnetwork(name::String, args...; kwargs...) = mangalnetwork(Mangal.network(name), args...; kwargs...)
mangalnetwork(name::String, args...; kwargs...) = mangalnetwork(Mangal.network(name), args...; kwargs...)

@testitem "The type promotion works as expected" begin
import SpeciesInteractionNetworks.Mangal
dataset = only(Mangal.datasets("q" => "ponisio"))
problematic_network = Mangal.networks(dataset)[3]
@test eltype(mangalnetwork(problematic_network).edges) <: AbstractFloat
end

@testitem "We can get a network to return reference taxon nodes" begin
import SpeciesInteractionNetworks.Mangal
network = first(Mangal.networks())
N = mangalnetwork(network; taxonlevel=true)
@test eltype(N.nodes) == Mangal.MangalReferenceTaxon
end

@testitem "We can get a network by name" begin
import SpeciesInteractionNetworks.Mangal
network = first(Mangal.networks())
N = mangalnetwork(network.name; taxonlevel=true)
@test eltype(N.nodes) == Mangal.MangalReferenceTaxon
end

@testitem "We can get a network by ID" begin
import SpeciesInteractionNetworks.Mangal
network = first(Mangal.networks())
N = mangalnetwork(network.id; taxonlevel=true)
@test eltype(N.nodes) == Mangal.MangalReferenceTaxon
end

0 comments on commit 28b076b

Please sign in to comment.