@@ -69,16 +69,21 @@ parammap = [β => 0.1 / 1000, γ => 0.01]
69
69
dprob = DiscreteProblem (js2, u₀map, tspan, parammap)
70
70
jprob = JumpProblem (js2, dprob, Direct (), save_positions = (false , false ), rng = rng)
71
71
Nsims = 30000
72
- function getmean (jprob, Nsims)
72
+ function getmean (jprob, Nsims; use_stepper = true )
73
73
m = 0.0
74
74
for i in 1 : Nsims
75
- sol = solve (jprob, SSAStepper ())
75
+ sol = use_stepper ? solve (jprob, SSAStepper ()) : solve (jprob )
76
76
m += sol[end , end ]
77
77
end
78
78
m / Nsims
79
79
end
80
80
m = getmean (jprob, Nsims)
81
81
82
+ # test auto-alg selection works
83
+ jprobb = JumpProblem (js2, dprob; save_positions = (false , false ), rng)
84
+ mb = getmean (jprobb, Nsims; use_stepper = false )
85
+ @test abs (m - mb) / m < 0.01
86
+
82
87
@variables S2 (t)
83
88
obs = [S2 ~ 2 * S]
84
89
@named js2b = JumpSystem ([j₁, j₃], t, [S, I, R], [β, γ], observed = obs)
@@ -89,7 +94,6 @@ sol = solve(jprob, SSAStepper(), saveat = tspan[2] / 10)
89
94
@test all (2 .* sol[S] .== sol[S2])
90
95
91
96
# test save_positions is working
92
-
93
97
jprob = JumpProblem (js2, dprob, Direct (), save_positions = (false , false ), rng = rng)
94
98
sol = solve (jprob, SSAStepper (), saveat = 1.0 )
95
99
@test all ((sol. t) .== collect (0.0 : tspan[2 ]))
@@ -270,3 +274,22 @@ affect = [X ~ X - 1]
270
274
271
275
j1 = ConstantRateJump (k, [X ~ X - 1 ])
272
276
@test_nowarn @mtkbuild js1 = JumpSystem ([j1], t, [X], [k])
277
+
278
+ # test correct autosolver is selected, which implies appropriate dep graphs are available
279
+ let
280
+ @parameters k
281
+ @variables X (t)
282
+ rate = k
283
+ affect = [X ~ X - 1 ]
284
+ j1 = ConstantRateJump (k, [X ~ X - 1 ])
285
+
286
+ Nv = [1 , JumpProcesses. USE_DIRECT_THRESHOLD + 1 , JumpProcesses. USE_RSSA_THRESHOLD + 1 ]
287
+ algtypes = [Direct, RSSA, RSSACR]
288
+ for (N, algtype) in zip (Nv, algtypes)
289
+ @named jsys = JumpSystem ([deepcopy (j1) for _ in 1 : N], t, [X], [k])
290
+ jsys = complete (jsys)
291
+ dprob = DiscreteProblem (jsys, [X => 10 ], (0.0 , 10.0 ), [k => 1 ])
292
+ jprob = JumpProblem (jsys, dprob)
293
+ @test jprob. aggregator isa algtype
294
+ end
295
+ end
0 commit comments