@@ -51,6 +51,8 @@ prob2 = DDEProblem(sys,
5151    constant_lags =  [tau])
5252sol2_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
5557using  StochasticDelayDiffEq
5658function  hayes_modelf (du, u, h, p, t)
102104eqs =  [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,14 @@ for coupledOsc in [coupledOsc, coupledOsc2]
112113    @test  length (equations (sys)) ==  4 
113114    @test  length (unknowns (sys)) ==  4 
114115end 
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+ obsval =  @test_nowarn  obsfn (sol. u[1 ], (_, t) ->  sol (t), prob. p, sol. t[1 ])
122+ @test  obsval ≈  sol (sol. t[1 ] -  0.01 ; idxs =  [sys. osc1. x, sys. osc2. x])
123+ #=  TODO : Uncomment when implemented
124+ @test_nowarn sol[[sys.osc1.delx, sys.osc2.delx]] 
125+ @test sol[sys.osc1.delx] ≈ sol(sol.t .- 0.01; idxs = sys.osc1.x) 
126+ =# 
0 commit comments