Skip to content

Commit 4ed3a25

Browse files
committed
add tests
1 parent 8b1bdb1 commit 4ed3a25

File tree

1 file changed

+54
-1
lines changed

1 file changed

+54
-1
lines changed

test/model_simulation/simulate_SDEs.jl

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ end
121121

122122
### Noise Scaling ###
123123

124-
# Tests with a single noise scaling parameter.
124+
# Tests where a single noise scaling parameter is given directly to the SDEProblem.
125125
let
126126
noise_scaling_network = @reaction_network begin (k1, k2), X1 X2 end
127127
for repeat in 1:5
@@ -144,6 +144,59 @@ let
144144
end
145145
end
146146

147+
# Tests with multiple noise scaling parameters directly in the macro.
148+
let
149+
noise_scaling_network_1 = @reaction_network begin
150+
@noise_scaling_parameters η1 η2
151+
(k1, k2), X1 X2
152+
end
153+
u0 = [:X1 => 1000.0, :X2 => 3000.0]
154+
sol_1_1 = solve(SDEProblem(noise_scaling_network_1, u0, (0.0, 1000.0), [:k1 => 2.0, :k2 => 0.66, :η1 => 2.0, :η2 => 2.0]), ImplicitEM(); saveat=1.0)
155+
sol_1_2 = solve(SDEProblem(noise_scaling_network_1, u0, (0.0, 1000.0), [:k1 => 2.0, :k2 => 0.66, :η1 => 2.0, :η2 => 0.2]), ImplicitEM(); saveat=1.0)
156+
sol_1_3 = solve(SDEProblem(noise_scaling_network_1, u0, (0.0, 1000.0), [:k1 => 2.0, :k2 => 0.66, :η1 => 0.2, :η2 => 0.2]), ImplicitEM(); saveat=1.0)
157+
@test var(sol_1_1[1,:]) > var(sol_1_2[1,:]) > var(sol_1_3[1,:])
158+
159+
noise_scaling_network_2 = @reaction_network begin
160+
@noise_scaling_parameters η[1:2]
161+
(k1, k2), X1 X2
162+
end
163+
@unpack η = noise_scaling_network_2
164+
sol_2_1 = solve(SDEProblem(noise_scaling_network_2, u0, (0.0, 1000.0), [:k1 => 2.0, :k2 => 0.66, η[1] => 2.0, η[2] => 2.0]), ImplicitEM(); saveat=1.0)
165+
sol_2_2 = solve(SDEProblem(noise_scaling_network_2, u0, (0.0, 1000.0), [:k1 => 2.0, :k2 => 0.66, η[1] => 2.0, η[2] => 0.2]), ImplicitEM(); saveat=1.0)
166+
sol_2_3 = solve(SDEProblem(noise_scaling_network_2, u0, (0.0, 1000.0), [:k1 => 2.0, :k2 => 0.66, η[1] => 0.2, η[2] => 0.2]), ImplicitEM(); saveat=1.0)
167+
@test var(sol_2_1[1,:]) > var(sol_2_2[1,:]) > var(sol_2_3[1,:])
168+
end
169+
170+
# Tests using default values for nosie scaling.
171+
let
172+
noise_scaling_network = @reaction_network begin
173+
@noise_scaling_parameters η=0.0
174+
(k1, k2), X1 X2
175+
end
176+
u0 = [:X1 => 1100.0, :X2 => 2900.0]
177+
p = [:k1 => 2.0, :k2 => 0.66]
178+
ss = solve(SDEProblem(noise_scaling_network, u0, (0.0, 1000.0), p), ImplicitEM())[end]
179+
@test ss [1000.0, 3000.0]
180+
end
181+
182+
# Complicated test with many combinations of options.
183+
let
184+
noise_scaling_network = @reaction_network begin
185+
@parameters k1 par1 [description="Parameter par1"] par2 η1 [noisescalingparameter=true]
186+
@noise_scaling_parameters η2=0.0 [description="Parameter η2"] η3=1.0 η4 [description="Parameter η4"]
187+
(p, d), 0 X1
188+
(k1, k2), X1 X2
189+
end
190+
@unpack X1, η4 = noise_scaling_network
191+
u0 = [X1 => 500.0, :X2 => 500.0]
192+
p = [p => 20.0, :d => 0.1, :η1 => 0.0, :η3 => 0.0, η4 => 0.0, :k1 => 2.0, :k2 => 2.0, :par1 => 1000.0, :par2 => 1000.0]
193+
194+
ss = solve(SDEProblem(noise_scaling_network, u0, (0.0, 1000.0), p), ImplicitEM())[end]
195+
ss [200.0, 200.0]
196+
end
197+
198+
# Tests that nosie scaling wor
199+
147200
### Checks Simulations Don't Error ###
148201

149202
#Tries to create a large number of problem, ensuring there are no errors (cannot solve as solution likely to go into negatives).

0 commit comments

Comments
 (0)