@@ -6,17 +6,22 @@ using Test
66@variables x (t) y (t) z (t)
77@derivatives D' ~ t
88
9- function test_diffeq_inference (name, de, iv, dvs, ps)
9+ function _clean (O:: Operation )
10+ @assert isa (O. op, Variable)
11+ return O. op
12+ end
13+ _clean (x:: Variable ) = x
14+ function test_diffeq_inference (name, sys, iv, dvs, ps)
1015 @testset " ODESystem construction: $name " begin
11- @test de . iv . name == :t
12- @test Set ([dv . name for dv ∈ de . dvs]) == Set (dvs)
13- @test Set ([p . name for p ∈ de . ps ]) == Set (ps )
16+ @test independent_variables (sys) == Set ([ _clean (iv)])
17+ @test dependent_variables (sys) == Set (_clean .( dvs) )
18+ @test parameters (sys) == Set (_clean .(ps) )
1419 end
1520end
16- function test_nlsys_inference (name, de , vs, ps)
21+ function test_nlsys_inference (name, sys , vs, ps)
1722 @testset " NonlinearSystem construction: $name " begin
18- @test Set (vs ) == Set (vs)
19- @test Set ([p . name for p ∈ de . ps]) == Set (ps )
23+ @test dependent_variables (sys ) == Set (vs)
24+ @test parameters (sys) == Set (_clean .(ps) )
2025 end
2126end
2227
@@ -25,7 +30,7 @@ eqs = [D(x) ~ σ*(y-x),
2530 D (y) ~ x* (ρ- z)- y,
2631 D (z) ~ x* y - β* z]
2732de = ODESystem (eqs)
28- test_diffeq_inference (" standard" , de, : t , (: x , : y , : z ), (: σ , : ρ , : β ))
33+ test_diffeq_inference (" standard" , de, t, (x, y, z), (σ, ρ, β))
2934generate_function (de, [x,y,z], [σ,ρ,β])
3035generate_function (de, [x,y,z], [σ,ρ,β]; version= ModelingToolkit. SArrayFunction)
3136jac_expr = generate_jacobian (de)
@@ -41,7 +46,7 @@ ModelingToolkit.generate_ode_iW(de)
4146 D (y) ~ x* (ρ- z)- y,
4247 D (z) ~ x* y - β* z]
4348 de = ODESystem (eqs)
44- test_diffeq_inference (" global iv-varying" , de, : t , (: x , : y , : z ), (: σ′ , : ρ , : β ))
49+ test_diffeq_inference (" global iv-varying" , de, t, (x, y, z), (σ′, ρ, β))
4550 @test begin
4651 f = eval (generate_function (de, [x,y,z], [σ′,ρ,β]))
4752 du = [0.0 ,0.0 ,0.0 ]
@@ -54,7 +59,7 @@ ModelingToolkit.generate_ode_iW(de)
5459 D (y) ~ x* (ρ- z)- y,
5560 D (z) ~ x* y - β* z]
5661 de = ODESystem (eqs)
57- test_diffeq_inference (" single internal iv-varying" , de, : t , (: x , : y , : z ), (: σ , : ρ , : β ))
62+ test_diffeq_inference (" single internal iv-varying" , de, t, (x, y, z), (σ, ρ, β))
5863 @test begin
5964 f = eval (generate_function (de, [x,y,z], [σ,ρ,β]))
6065 du = [0.0 ,0.0 ,0.0 ]
@@ -64,7 +69,7 @@ ModelingToolkit.generate_ode_iW(de)
6469
6570 eqs = [D (x) ~ x + 10 σ (t- 1 ) + 100 σ (t- 2 ) + 1000 σ (t^ 2 )]
6671 de = ODESystem (eqs)
67- test_diffeq_inference (" many internal iv-varying" , de, : t , (: x ,), (: σ ,))
72+ test_diffeq_inference (" many internal iv-varying" , de, t, (x,), (σ,))
6873 @test begin
6974 f = eval (generate_function (de, [x], [σ]))
7075 du = [0.0 ]
@@ -105,7 +110,7 @@ eqs = [0 ~ σ*(y-x),
105110 0 ~ x* (ρ- z)- y,
106111 0 ~ x* y - β* z]
107112ns = NonlinearSystem (eqs, [x,y,z])
108- test_nlsys_inference (" standard" , ns, (x, y, z), (: σ , : ρ , : β ))
113+ test_nlsys_inference (" standard" , ns, (x, y, z), (σ, ρ, β))
109114
110115generate_function (ns, [x,y,z], [σ,ρ,β])
111116
0 commit comments