@@ -69,16 +69,21 @@ parammap = [β => 0.1 / 1000, γ => 0.01]
6969dprob = DiscreteProblem (js2, u₀map, tspan, parammap)
7070jprob = JumpProblem (js2, dprob, Direct (), save_positions = (false , false ), rng = rng)
7171Nsims = 30000
72- function getmean (jprob, Nsims)
72+ function getmean (jprob, Nsims; use_stepper = true )
7373 m = 0.0
7474 for i in 1 : Nsims
75- sol = solve (jprob, SSAStepper ())
75+ sol = use_stepper ? solve (jprob, SSAStepper ()) : solve (jprob )
7676 m += sol[end , end ]
7777 end
7878 m / Nsims
7979end
8080m = getmean (jprob, Nsims)
8181
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+
8287@variables S2 (t)
8388obs = [S2 ~ 2 * S]
8489@named js2b = JumpSystem ([j₁, j₃], t, [S, I, R], [β, γ], observed = obs)
@@ -89,7 +94,6 @@ sol = solve(jprob, SSAStepper(), saveat = tspan[2] / 10)
8994@test all (2 .* sol[S] .== sol[S2])
9095
9196# test save_positions is working
92-
9397jprob = JumpProblem (js2, dprob, Direct (), save_positions = (false , false ), rng = rng)
9498sol = solve (jprob, SSAStepper (), saveat = 1.0 )
9599@test all ((sol. t) .== collect (0.0 : tspan[2 ]))
@@ -270,3 +274,22 @@ affect = [X ~ X - 1]
270274
271275j1 = ConstantRateJump (k, [X ~ X - 1 ])
272276@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