@@ -124,32 +124,48 @@ let
124
124
125
125
for networks in identical_networks_1
126
126
for factor in [1e-2 , 1e-1 , 1e0 , 1e1 , 1e2 , 1e3 ]
127
- u0_1 = rnd_u0 (networks[1 ], rng; factor)
128
- p_1 = rnd_ps (networks[1 ], rng; factor)
129
- u0_2 = Pair .(unknowns (networks[2 ]), last .(u0_1))
130
- p_2 = Pair .(parameters (networks[2 ]), last .(p_1))
127
+ u0 = rnd_u0 (networks[1 ], rng; factor)
128
+ p = rnd_ps (networks[1 ], rng; factor)
131
129
t = rand (rng)
132
130
133
- @test f_eval (networks[1 ], u0_1, p_1 , t) ≈ f_eval (networks[2 ], u0_2, p_2 , t)
134
- @test jac_eval (networks[1 ], u0_1, p_1 , t) ≈ jac_eval (networks[2 ], u0_2, p_2 , t)
135
- @test g_eval (networks[1 ], u0_1, p_1 , t) ≈ g_eval (networks[2 ], u0_2, p_2 , t)
131
+ @test f_eval (networks[1 ], u0, p , t) ≈ f_eval (networks[2 ], u0, p , t)
132
+ @test jac_eval (networks[1 ], u0, p , t) ≈ jac_eval (networks[2 ], u0, p , t)
133
+ @test g_eval (networks[1 ], u0, p , t) ≈ g_eval (networks[2 ], u0, p , t)
136
134
end
137
135
end
138
136
end
139
137
140
- # Compares networks to networks written in different ways.
138
+ # Compares simulations for network with different species and parameter names
141
139
let
142
- identical_networks_2 = Vector {Pair} ()
143
-
144
- # Different parameter and variable names.
140
+ # Fetches the original network, and also declares it using alternative notation.
141
+ network = reaction_networks_standard[5 ]
145
142
differently_written_5 = @reaction_network begin
146
143
q, ∅ → Y1
147
144
(l1, l2), Y1 ⟷ Y2
148
145
(l3, l4), Y2 ⟷ Y3
149
146
(l5, l6), Y3 ⟷ Y4
150
147
c, Y4 → ∅
148
+ end
149
+
150
+ # Checks that the networks' functions evaluates equally for various randomised inputs.
151
+ @unpack X1, X2, X3, X4, p, d, k1, k2, k3, k4, k5, k6 = network
152
+ for factor in [1e-2 , 1e-1 , 1e0 , 1e1 , 1e2 , 1e3 ]
153
+ u0_1 = Dict (rnd_u0 (network, rng; factor))
154
+ p_1 = Dict (rnd_ps (network, rng; factor))
155
+ u0_2 = [:Y1 => u0_1[X1], :Y2 => u0_1[X2], :Y3 => u0_1[X3], :Y4 => u0_1[X4]]
156
+ p_2 = [:q => p_1[p], :c => p_1[d], :l1 => p_1[k1], :l2 => p_1[k2], :l3 => p_1[k3],
157
+ :l4 => p_1[k4], :l5 => p_1[k5], :l6 => p_1[k6]]
158
+ t = rand (rng)
159
+
160
+ @test f_eval (network, u0_1, p_1, t) ≈ f_eval (differently_written_5, u0_2, p_2, t)
161
+ @test jac_eval (network, u0_1, p_1, t) ≈ jac_eval (differently_written_5, u0_2, p_2, t)
162
+ @test g_eval (network, u0_1, p_1, t) ≈ g_eval (differently_written_5, u0_2, p_2, t)
151
163
end
152
- push! (identical_networks_2, reaction_networks_standard[5 ] => differently_written_5)
164
+ end
165
+
166
+ # Compares networks to networks written in different ways.
167
+ let
168
+ identical_networks_2 = Vector {Pair} ()
153
169
154
170
# Unfold reactions.
155
171
differently_written_6 = @reaction_network begin
@@ -190,15 +206,13 @@ let
190
206
191
207
for networks in identical_networks_2
192
208
for factor in [1e-2 , 1e-1 , 1e0 , 1e1 , 1e2 , 1e3 ]
193
- u0_1 = rnd_u0 (networks[1 ], rng; factor)
194
- p_1 = rnd_ps (networks[1 ], rng; factor)
195
- u0_2 = Pair .(unknowns (networks[2 ]), last .(u0_1))
196
- p_2 = Pair .(parameters (networks[2 ]), last .(p_1))
209
+ u0 = rnd_u0 (networks[1 ], rng; factor)
210
+ p = rnd_ps (networks[1 ], rng; factor)
197
211
t = rand (rng)
198
212
199
- @test f_eval (networks[1 ], u0_1, p_1 , t) ≈ f_eval (networks[2 ], u0_2, p_2 , t)
200
- @test jac_eval (networks[1 ], u0_1, p_1 , t) ≈ jac_eval (networks[2 ], u0_2, p_2 , t)
201
- @test g_eval (networks[1 ], u0_1, p_1 , t) ≈ g_eval (networks[2 ], u0_2, p_2 , t)
213
+ @test f_eval (networks[1 ], u0, p , t) ≈ f_eval (networks[2 ], u0, p , t)
214
+ @test jac_eval (networks[1 ], u0, p , t) ≈ jac_eval (networks[2 ], u0, p , t)
215
+ @test g_eval (networks[1 ], u0, p , t) ≈ g_eval (networks[2 ], u0, p , t)
202
216
end
203
217
end
204
218
end
0 commit comments