# Include the source file 
using Test
using DynamicalNetworks
using Graphs

# Construction 
net = ODENetwork()
net = ODENetwork(Lorenz[])
net = ODENetwork([Lorenz() for i = 1:10])
net = ODENetwork(Lorenz)
net = ODENetwork(Rossler)
mat = rand(3, 3)
net = ODENetwork(Lorenz, mat + mat')
net = ODENetwork(Lorenz, star_graph(10))
net = ODENetwork(Lorenz, cycle_graph(10))
net = ODENetwork(Lorenz, barabasi_albert(10, 3, 2))

# Add nodes  
net = ODENetwork(Lorenz)
addnode!(net, Lorenz())
addnode!(net)
addnode!(net, Lorenz(σ = 5.0))

# Remove nodes 
mat = rand(3, 3)
net = ODENetwork(Lorenz, mat + mat')
remnode!(net)

# Add edges 
net = ODENetwork()
foreach(i -> addnode!(net), 1:5)
addedge!(net, 1, 2, 10.0)

# Solve network 
net = ODENetwork(Lorenz, path_graph(3))
prob = netproblem(net, (0.0, 100.0), collectstates(net), ones(10))
sol = solvenet!(prob)
