Skip to content

Commit

Permalink
additional_tests
Browse files Browse the repository at this point in the history
  • Loading branch information
TorkelE committed Apr 23, 2021
1 parent b7b78b2 commit 1a84043
Showing 1 changed file with 92 additions and 1 deletion.
93 changes: 92 additions & 1 deletion test/custom_functions.jl
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,95 @@ for factor in [1e-2, 1e-1, 1e0, 1e1, 1e2]
@test all(abs.(f1(u0,p,t) .- f2(u0,p,t)) .< 10e-10)
@test all(abs.(f1.jac(u0,p,t) .- f2.jac(u0,p,t)) .< 10e-10)
@test all(abs.(g1(u0,p,t) .- g2(u0,p,t)) .< 10e-10)
end
end

### Tests that the various notations gives identical results ###

# Michaelis-Menten function.
mm_network = @reaction_network begin
(1.,1.), 0 X
mm(X,v,K), 0 --> X1
Mm(X,v,K), 0 --> X2
MM(X,v,K), 0 --> X3
end v K
f_mm = ODEFunction(convert(ODESystem,mm_network),jac=true)

u0 = 10*rand(rng,length(get_states(mm_network)))
p = 10*rand(rng,length(get_ps(mm_network)))
t = 10*rand(rng)

f_mm_output = f_mm(u0,p,t)[2:end]
f_mm_jac_output = f_mm.jac(u0,p,t)[2:end,1]
@test (maximum(f_mm_output) - minimum(f_mm_output)) .< 100*eps()
@test (maximum(f_mm_jac_output) - minimum(f_mm_jac_output)) .< 100*eps()

# Repressing Michaelis-Menten function.
mmR_network = @reaction_network begin
(1.,1.), 0 X
mmR(X,v,K), 0 --> X1
MmR(X,v,K), 0 --> X2
MMR(X,v,K), 0 --> X3
end v K
f_mmR = ODEFunction(convert(ODESystem,mmR_network),jac=true)

u0 = 10*rand(rng,length(get_states(mmR_network)))
p = 10*rand(rng,length(get_ps(mmR_network)))
t = 10*rand(rng)

f_mmR_output = f_mmR(u0,p,t)[2:end]
f_mmR_jac_output = f_mmR.jac(u0,p,t)[2:end,1]
@test (maximum(f_mmR_output) - minimum(f_mmR_output)) .< 100*eps()
@test (maximum(f_mmR_jac_output) - minimum(f_mmR_jac_output)) .< 100*eps()

# Hill function.
hill_network = @reaction_network begin
(1.,1.), 0 X
hill(X,v,K,2), 0 --> X1
Hill(X,v,K,2), 0 --> X2
end v K
f_hill = ODEFunction(convert(ODESystem,hill_network),jac=true)

u0 = 10*rand(rng,length(get_states(hill_network)))
p = 10*rand(rng,length(get_ps(hill_network)))
t = 10*rand(rng)

f_hill_output = f_hill(u0,p,t)[2:end]
f_hill_jac_output = f_hill.jac(u0,p,t)[2:end,1]
@test (maximum(f_hill_output) - minimum(f_hill_output)) .< 100*eps()
@test (maximum(f_hill_jac_output) - minimum(f_hill_jac_output)) .< 100*eps()

# Repressing Hill function.
hillR_network = @reaction_network begin
(1.,1.), 0 X
hillR(X,v,K,2), 0 --> X1
HillR(X,v,K,2), 0 --> X2
end v K
f_hillR = ODEFunction(convert(ODESystem,hillR_network),jac=true)

u0 = 10*rand(rng,length(get_states(hillR_network)))
p = 10*rand(rng,length(get_ps(hillR_network)))
t = 10*rand(rng)

f_hillR_output = f_hillR(u0,p,t)[2:end]
f_hillR_jac_output = f_hillR.jac(u0,p,t)[2:end,1]
@test (maximum(f_hillR_output) - minimum(f_hillR_output)) .< 100*eps()
@test (maximum(f_hillR_jac_output) - minimum(f_hillR_jac_output)) .< 100*eps()

# Activation/repressing Hill function.
hillAR_network = @reaction_network begin
(1.,1.), 0 (X,Y)
hillC(X,Y,v,K,2), 0 --> X1
HillC(X,Y,v,K,2), 0 --> X2
hillAR(X,Y,v,K,2), 0 --> X3
HillAR(X,Y,v,K,2), 0 --> X4
end v K
f_hillAR = ODEFunction(convert(ODESystem,hillAR_network),jac=true)

u0 = 10*rand(rng,length(get_states(hillAR_network)))
p = 10*rand(rng,length(get_ps(hillAR_network)))
t = 10*rand(rng)

f_hillAR_output = f_hillAR(u0,p,t)[3:end]
f_hillAR_jac_output = f_hillAR.jac(u0,p,t)[3:end,1]
@test (maximum(f_hillAR_output) - minimum(f_hillAR_output)) .< 100*eps()
@test (maximum(f_hillAR_jac_output) - minimum(f_hillAR_jac_output)) .< 100*eps()

0 comments on commit 1a84043

Please sign in to comment.