@@ -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 ]))
0 commit comments