Skip to content

Commit 65777da

Browse files
test: test symbolic indexing of DDE solutions
1 parent ea26d58 commit 65777da

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

test/dde.jl

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ prob2 = DDEProblem(sys,
5151
constant_lags = [tau])
5252
sol2_mtk = solve(prob2, alg, reltol = 1e-7, abstol = 1e-10)
5353
@test sol2_mtk.u[end] sol2.u[end]
54+
@test_nowarn sol2_mtk[[x₀, x₁, x₂(t)]]
55+
@test_nowarn sol2_mtk[[x₀, x₁, x₂(t - 0.1)]]
5456

5557
using StochasticDelayDiffEq
5658
function hayes_modelf(du, u, h, p, t)
@@ -102,7 +104,6 @@ end
102104
eqs = [osc1.jcn ~ osc2.delx,
103105
osc2.jcn ~ osc1.delx]
104106
@named coupledOsc = System(eqs, t)
105-
@test ModelingToolkit.is_dde(coupledOsc)
106107
@named coupledOsc = compose(coupledOsc, systems)
107108
@test ModelingToolkit.is_dde(coupledOsc)
108109
@named coupledOsc2 = System(eqs, t; systems)
@@ -112,3 +113,10 @@ for coupledOsc in [coupledOsc, coupledOsc2]
112113
@test length(equations(sys)) == 4
113114
@test length(unknowns(sys)) == 4
114115
end
116+
sys = structural_simplify(coupledOsc)
117+
prob = DDEProblem(sys, [], (0.0, 10.0); constant_lags = [sys.osc1.τ, sys.osc2.τ])
118+
sol = solve(prob, MethodOfSteps(Tsit5()))
119+
obsfn = ModelingToolkit.build_explicit_observed_function(
120+
sys, [sys.osc1.delx, sys.osc2.delx])
121+
@test_nowarn sol[[sys.osc1.delx, sys.osc2.delx]]
122+
@test sol[sys.osc1.delx] sol(sol.t .- 0.01; idxs = sys.osc1.x)

0 commit comments

Comments
 (0)