Skip to content

Commit 87772ad

Browse files
committed
formating
1 parent 6c61ac6 commit 87772ad

File tree

1 file changed

+62
-55
lines changed

1 file changed

+62
-55
lines changed

test/sciml_problem_inputs.jl

Lines changed: 62 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
### Prepares Tests ###
22

33
# Fetch packages
4-
using ModelingToolkit, JumpProcesses, NonlinearSolve, OrdinaryDiffEq, SteadyStateDiffEq, StochasticDiffEq, Test
4+
using ModelingToolkit, JumpProcesses, NonlinearSolve, OrdinaryDiffEq, SteadyStateDiffEq,
5+
StochasticDiffEq, Test
56
using ModelingToolkit: t_nounits as t, D_nounits as D
67

78
# Sets rnd number.
@@ -12,19 +13,19 @@ seed = rand(rng, 1:100)
1213
### Basic Tests ###
1314

1415
# Prepares a models and initial conditions/parameters (of different forms) to be used as problem inputs.
15-
begin
16+
begin
1617
# Prepare system components.
1718
@parameters kp kd k1 k2=0.5 Z0
18-
@variables X(t) Y(t) Z(t) = Z0
19+
@variables X(t) Y(t) Z(t)=Z0
1920
alg_eqs = [
20-
0 ~ kp - k1*X + k2*Y - kd*X,
21-
0 ~ -k1*Y + k1*X - k2*Y + k2*Z,
22-
0 ~ k1*Y - k2*Z
21+
0 ~ kp - k1 * X + k2 * Y - kd * X,
22+
0 ~ -k1 * Y + k1 * X - k2 * Y + k2 * Z,
23+
0 ~ k1 * Y - k2 * Z
2324
]
2425
diff_eqs = [
25-
D(X) ~ kp - k1*X + k2*Y - kd*X,
26-
D(Y) ~ -k1*Y + k1*X - k2*Y + k2*Z,
27-
D(Z) ~ k1*Y - k2*Z
26+
D(X) ~ kp - k1 * X + k2 * Y - kd * X,
27+
D(Y) ~ -k1 * Y + k1 * X - k2 * Y + k2 * Z,
28+
D(Z) ~ k1 * Y - k2 * Z
2829
]
2930
noise_eqs = fill(0.01, 3, 6)
3031
jumps = [
@@ -38,7 +39,8 @@ begin
3839

3940
# Create systems (without structural_simplify, since that might modify systems to affect intended tests).
4041
osys = complete(ODESystem(diff_eqs, t; name = :osys))
41-
ssys = complete(SDESystem(diff_eqs, noise_eqs, t, [X, Y, Z], [kp, kd, k1, k2]; name = :ssys))
42+
ssys = complete(SDESystem(
43+
diff_eqs, noise_eqs, t, [X, Y, Z], [kp, kd, k1, k2]; name = :ssys))
4244
jsys = complete(JumpSystem(jumps, t, [X, Y, Z], [kp, kd, k1, k2]; name = :jsys))
4345
nsys = complete(NonlinearSystem(alg_eqs; name = :nsys))
4446

@@ -60,7 +62,7 @@ begin
6062
(osys.X => 4, osys.Y => 5),
6163
# Tuples providing default values.
6264
(X => 4, Y => 5, Z => 10),
63-
(osys.X => 4, osys.Y => 5, osys.Z => 10),
65+
(osys.X => 4, osys.Y => 5, osys.Z => 10)
6466
]
6567
tspan = (0.0, 10.0)
6668
p_alts = [
@@ -75,18 +77,19 @@ begin
7577
Dict([osys.kp => 1.0, osys.kd => 0.1, osys.k1 => 0.25, osys.Z0 => 10]),
7678
# Dicts providing default values.
7779
Dict([kp => 1.0, kd => 0.1, k1 => 0.25, k2 => 0.5, Z0 => 10]),
78-
Dict([osys.kp => 1.0, osys.kd => 0.1, osys.k1 => 0.25, osys.k2 => 0.5, osys.Z0 => 10]),
80+
Dict([osys.kp => 1.0, osys.kd => 0.1, osys.k1 => 0.25,
81+
osys.k2 => 0.5, osys.Z0 => 10]),
7982
# Tuples not providing default values.
8083
(kp => 1.0, kd => 0.1, k1 => 0.25, Z0 => 10),
8184
(osys.kp => 1.0, osys.kd => 0.1, osys.k1 => 0.25, osys.Z0 => 10),
8285
# Tuples providing default values.
8386
(kp => 1.0, kd => 0.1, k1 => 0.25, k2 => 0.5, Z0 => 10),
84-
(osys.kp => 1.0, osys.kd => 0.1, osys.k1 => 0.25, osys.k2 => 0.5, osys.Z0 => 10),
87+
(osys.kp => 1.0, osys.kd => 0.1, osys.k1 => 0.25, osys.k2 => 0.5, osys.Z0 => 10)
8588
]
8689
end
8790

8891
# Perform ODE simulations (singular and ensemble).
89-
let
92+
let
9093
# Creates normal and ensemble problems.
9194
base_oprob = ODEProblem(osys, u0_alts[1], tspan, p_alts[1])
9295
base_sol = solve(base_oprob, Tsit5(); saveat = 1.0)
@@ -97,14 +100,14 @@ let
97100
# test failure.
98101
for u0 in u0_alts, p in p_alts
99102
oprob = remake(base_oprob; u0, p)
100-
# @test base_sol == solve(oprob, Tsit5(); saveat = 1.0)
103+
# @test base_sol == solve(oprob, Tsit5(); saveat = 1.0)
101104
eprob = remake(base_eprob; u0, p)
102-
# @test base_esol == solve(eprob, Tsit5(); trajectories = 2, saveat = 1.0)
105+
# @test base_esol == solve(eprob, Tsit5(); trajectories = 2, saveat = 1.0)
103106
end
104107
end
105108

106109
# Perform SDE simulations (singular and ensemble).
107-
let
110+
let
108111
# Creates normal and ensemble problems.
109112
base_sprob = SDEProblem(ssys, u0_alts[1], tspan, p_alts[1])
110113
base_sol = solve(base_sprob, ImplicitEM(); seed, saveat = 1.0)
@@ -114,15 +117,15 @@ let
114117
# Simulates problems for all input types, checking that identical solutions are found.
115118
@test_broken false # first remake in subsequent test yields a `ERROR: type Nothing has no field portion`.
116119
for u0 in u0_alts, p in p_alts
117-
# sprob = remake(base_sprob; u0, p)
118-
# @test base_sol == solve(sprob, ImplicitEM(); seed, saveat = 1.0)
119-
# eprob = remake(base_eprob; u0, p)
120-
# @test base_esol == solve(eprob, ImplicitEM(); seed, trajectories = 2, saveat = 1.0)
120+
# sprob = remake(base_sprob; u0, p)
121+
# @test base_sol == solve(sprob, ImplicitEM(); seed, saveat = 1.0)
122+
# eprob = remake(base_eprob; u0, p)
123+
# @test base_esol == solve(eprob, ImplicitEM(); seed, trajectories = 2, saveat = 1.0)
121124
end
122125
end
123126

124127
# Perform jump simulations (singular and ensemble).
125-
let
128+
let
126129
# Creates normal and ensemble problems.
127130
base_dprob = DiscreteProblem(jsys, u0_alts[1], tspan, p_alts[1])
128131
base_jprob = JumpProblem(jsys, base_dprob, Direct(); rng)
@@ -133,10 +136,10 @@ let
133136
# Simulates problems for all input types, checking that identical solutions are found.
134137
@test_broken false # first remake in subsequent test yields a `ERROR: type Nothing has no field portion`.
135138
for u0 in u0_alts, p in p_alts
136-
# jprob = remake(base_jprob; u0, p)
137-
# @test base_sol == solve(base_jprob, SSAStepper(); seed, saveat = 1.0)
138-
# eprob = remake(base_eprob; u0, p)
139-
# @test base_esol == solve(eprob, SSAStepper(); seed, trajectories = 2, saveat = 1.0)
139+
# jprob = remake(base_jprob; u0, p)
140+
# @test base_sol == solve(base_jprob, SSAStepper(); seed, saveat = 1.0)
141+
# eprob = remake(base_eprob; u0, p)
142+
# @test base_esol == solve(eprob, SSAStepper(); seed, trajectories = 2, saveat = 1.0)
140143
end
141144
end
142145

@@ -148,12 +151,12 @@ let
148151
# test failure.
149152
for u0 in u0_alts, p in p_alts
150153
nlprob = remake(base_nlprob; u0, p)
151-
# @test base_sol == solve(nlprob, NewtonRaphson())
154+
# @test base_sol == solve(nlprob, NewtonRaphson())
152155
end
153156
end
154157

155158
# Perform steady state simulations (singular and ensemble).
156-
let
159+
let
157160
# Creates normal and ensemble problems.
158161
base_ssprob = SteadyStateProblem(osys, u0_alts[1], p_alts[1])
159162
base_sol = solve(base_ssprob, DynamicSS(Tsit5()))
@@ -170,7 +173,6 @@ let
170173
end
171174
end
172175

173-
174176
### Checks Errors On Faulty Inputs ###
175177

176178
# Checks various erroneous problem inputs, ensuring that these throw errors.
@@ -179,12 +181,12 @@ let
179181
@parameters k1 k2 k3
180182
@variables X1(t) X2(t) X3(t)
181183
alg_eqs = [
182-
0 ~ -k1*X1 + k2*X2,
183-
0 ~ k1*X1 - k2*X2
184+
0 ~ -k1 * X1 + k2 * X2,
185+
0 ~ k1 * X1 - k2 * X2
184186
]
185187
diff_eqs = [
186-
D(X1) ~ -k1*X1 + k2*X2,
187-
D(X2) ~ k1*X1 - k2*X2
188+
D(X1) ~ -k1 * X1 + k2 * X2,
189+
D(X2) ~ k1 * X1 - k2 * X2
188190
]
189191
noise_eqs = fill(0.01, 2, 2)
190192
jumps = [
@@ -215,7 +217,7 @@ let
215217
# Contain an additional value.
216218
[X1 => 1, X2 => 2, X3 => 3],
217219
Dict([X1 => 1, X2 => 2, X3 => 3]),
218-
(X1 => 1, X2 => 2, X3 => 3),
220+
(X1 => 1, X2 => 2, X3 => 3)
219221
]
220222
ps_invalid = [
221223
# Missing a value.
@@ -228,16 +230,18 @@ let
228230
# Contain an additional value.
229231
[k1 => 1.0, k2 => 2.0, k3 => 3.0],
230232
Dict([k1 => 1.0, k2 => 2.0, k3 => 3.0]),
231-
(k1 => 1.0, k2 => 2.0, k3 => 3.0),
233+
(k1 => 1.0, k2 => 2.0, k3 => 3.0)
232234
]
233235

234236
# Loops through all potential parameter sets, checking their inputs yield errors.
235237
# Broken tests are due to this issue: https://github.com/SciML/ModelingToolkit.jl/issues/2779
236238
for ps in [ps_valid; ps_invalid], u0 in [u0_valid; u0s_invalid]
237239
# Handles problems with/without tspan separately. Special check ensuring that valid inputs passes.
238-
for (xsys, XProblem) in zip([osys, ssys, jsys], [ODEProblem, SDEProblem, DiscreteProblem])
240+
for (xsys, XProblem) in zip(
241+
[osys, ssys, jsys], [ODEProblem, SDEProblem, DiscreteProblem])
239242
if (ps == ps_valid) && (u0 == u0_valid)
240-
XProblem(xsys, u0, (0.0, 1.0), ps); @test true;
243+
XProblem(xsys, u0, (0.0, 1.0), ps)
244+
@test true
241245
else
242246
@test_broken false
243247
continue
@@ -246,7 +250,8 @@ let
246250
end
247251
for (xsys, XProblem) in zip([nsys, osys], [NonlinearProblem, SteadyStateProblem])
248252
if (ps == ps_valid) && (u0 == u0_valid)
249-
XProblem(xsys, u0, ps); @test true;
253+
XProblem(xsys, u0, ps)
254+
@test true
250255
else
251256
@test_broken false
252257
continue
@@ -258,21 +263,21 @@ end
258263

259264
### Vector Parameter/Variable Inputs ###
260265

261-
begin
266+
begin
262267
# Declares the model (with vector species/parameters, with/without default values, and observables).
263-
@variables X(t)[1:2] Y(t)[1:2] = [10.0, 20.0] XY(t)[1:2]
264-
@parameters p[1:2] d[1:2] = [0.2, 0.5]
268+
@variables X(t)[1:2] Y(t)[1:2]=[10.0, 20.0] XY(t)[1:2]
269+
@parameters p[1:2] d[1:2]=[0.2, 0.5]
265270
alg_eqs = [
266-
0 ~ p[1] - d[1]*X[1],
267-
0 ~ p[2] - d[2]*X[2],
268-
0 ~ p[1] - d[1]*Y[1],
269-
0 ~ p[2] - d[2]*Y[2],
271+
0 ~ p[1] - d[1] * X[1],
272+
0 ~ p[2] - d[2] * X[2],
273+
0 ~ p[1] - d[1] * Y[1],
274+
0 ~ p[2] - d[2] * Y[2]
270275
]
271276
diff_eqs = [
272-
D(X[1]) ~ p[1] - d[1]*X[1],
273-
D(X[2]) ~ p[2] - d[2]*X[2],
274-
D(Y[1]) ~ p[1] - d[1]*Y[1],
275-
D(Y[2]) ~ p[2] - d[2]*Y[2],
277+
D(X[1]) ~ p[1] - d[1] * X[1],
278+
D(X[2]) ~ p[2] - d[2] * X[2],
279+
D(Y[1]) ~ p[1] - d[1] * Y[1],
280+
D(Y[2]) ~ p[2] - d[2] * Y[2]
276281
]
277282
noise_eqs = fill(0.01, 4, 8)
278283
jumps = [
@@ -289,8 +294,10 @@ begin
289294

290295
# Create systems (without structural_simplify, since that might modify systems to affect intended tests).
291296
osys = complete(ODESystem(diff_eqs, t; observed, name = :osys))
292-
ssys = complete(SDESystem(diff_eqs, noise_eqs, t, [X[1], X[2], Y[1], Y[2]], [p, d]; observed, name = :ssys))
293-
jsys = complete(JumpSystem(jumps, t, [X[1], X[2], Y[1], Y[2]], [p, d]; observed, name = :jsys))
297+
ssys = complete(SDESystem(
298+
diff_eqs, noise_eqs, t, [X[1], X[2], Y[1], Y[2]], [p, d]; observed, name = :ssys))
299+
jsys = complete(JumpSystem(
300+
jumps, t, [X[1], X[2], Y[1], Y[2]], [p, d]; observed, name = :jsys))
294301
nsys = complete(NonlinearSystem(alg_eqs; observed, name = :nsys))
295302

296303
# Declares various u0 versions (scalarised and vector forms).
@@ -354,7 +361,7 @@ begin
354361
end
355362

356363
# Perform ODE simulations (singular and ensemble).
357-
let
364+
let
358365
# Creates normal and ensemble problems.
359366
base_oprob = ODEProblem(osys, u0_alts_vec[1], tspan, p_alts_vec[1])
360367
base_sol = solve(base_oprob, Tsit5(); saveat = 1.0)
@@ -372,7 +379,7 @@ let
372379
end
373380

374381
# Perform SDE simulations (singular and ensemble).
375-
let
382+
let
376383
# Creates normal and ensemble problems.
377384
base_sprob = SDEProblem(ssys, u0_alts_vec[1], tspan, p_alts_vec[1])
378385
base_sol = solve(base_sprob, ImplicitEM(); seed, saveat = 1.0)
@@ -391,7 +398,7 @@ end
391398

392399
# Perform jump simulations (singular and ensemble).
393400
# Fails. At least partially related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
394-
@test_broken let
401+
@test_broken let
395402
# Creates normal and ensemble problems.
396403
base_dprob = DiscreteProblem(jsys, u0_alts_vec[1], tspan, p_alts_vec[1])
397404
base_jprob = JumpProblem(jsys, base_dprob, Direct(); rng)
@@ -422,7 +429,7 @@ end
422429

423430
# Perform steady state simulations (singular and ensemble).
424431
# Fails. At least partially related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
425-
let
432+
let
426433
# Creates normal and ensemble problems.
427434
base_ssprob = SteadyStateProblem(osys, u0_alts_vec[1], p_alts_vec[1])
428435
base_sol = solve(base_ssprob, DynamicSS(Tsit5()))

0 commit comments

Comments
 (0)