diff --git a/models/SIR_tauleap.jl b/models/SIR_tauleap.jl index b5dfd5117a5d9d17ba0be830ec863e05fbc98e06..6dac452d92feb7e4f0478010da969f0d6787abf8 100644 --- a/models/SIR_tauleap.jl +++ b/models/SIR_tauleap.jl @@ -17,6 +17,10 @@ function SIR_tauleap_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector a2 = p[2] * xn[2] l_a = SVector(a1, a2) asum = sum(l_a) + if asum == 0.0 + copyto!(xnplus1, xn) + return nothing + end # column-major order nu_1 = SVector(-1, 1, 0) nu_2 = SVector(0, -1, 1) diff --git a/tests/run_simulation.jl b/tests/run_simulation.jl index 5dee590b9aac8eaa59aeece3c07fe264a79ec806..80d3cb37911918cf8028ba27d9f6414e73cdc390 100644 --- a/tests/run_simulation.jl +++ b/tests/run_simulation.jl @@ -14,5 +14,7 @@ if !isdir(str_dir_pics) mkdir(str_dir_pics) end @test include("simulation/sim_er_row_buffer_bounded.jl") @test include("simulation/sim_pm_er.jl") @test include("simulation/sim_pm_sync_er.jl") + @test include("simulation/sim_sir_tauleap.jl") + @test include("simulation/sim_poisson.jl") end diff --git a/tests/simulation/sim_poisson.jl b/tests/simulation/sim_poisson.jl new file mode 100644 index 0000000000000000000000000000000000000000..40aa61dc92be289aa9eb1e6bf52b03ea942d89f8 --- /dev/null +++ b/tests/simulation/sim_poisson.jl @@ -0,0 +1,10 @@ + +using MarkovProcesses +load_plots() + +load_model("poisson") +σ = simulate(poisson) +MarkovProcesses.plot(σ; filename = get_module_path() * "/tests/simulation/res_pics/sim_poisson.png") + +return true + diff --git a/tests/simulation/sim_sir_tauleap.jl b/tests/simulation/sim_sir_tauleap.jl new file mode 100644 index 0000000000000000000000000000000000000000..a1fa7cf4bf2a337d14d8d72a817f5b7974f9c53d --- /dev/null +++ b/tests/simulation/sim_sir_tauleap.jl @@ -0,0 +1,10 @@ + +using MarkovProcesses +load_plots() + +load_model("SIR_tauleap") +σ = simulate(SIR_tauleap) +MarkovProcesses.plot(σ; filename = get_module_path() * "/tests/simulation/res_pics/sim_sir_tauleap.png") + +return true +