@@ -6,17 +6,22 @@ using Test
6
6
@variables x (t) y (t) z (t)
7
7
@derivatives D' ~ t
8
8
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)
10
15
@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) )
14
19
end
15
20
end
16
- function test_nlsys_inference (name, de , vs, ps)
21
+ function test_nlsys_inference (name, sys , vs, ps)
17
22
@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) )
20
25
end
21
26
end
22
27
@@ -25,7 +30,7 @@ eqs = [D(x) ~ σ*(y-x),
25
30
D (y) ~ x* (ρ- z)- y,
26
31
D (z) ~ x* y - β* z]
27
32
de = ODESystem (eqs)
28
- test_diffeq_inference (" standard" , de, : t , (: x , : y , : z ), (: σ , : ρ , : β ))
33
+ test_diffeq_inference (" standard" , de, t, (x, y, z), (σ, ρ, β))
29
34
generate_function (de, [x,y,z], [σ,ρ,β])
30
35
generate_function (de, [x,y,z], [σ,ρ,β]; version= ModelingToolkit. SArrayFunction)
31
36
jac_expr = generate_jacobian (de)
@@ -41,7 +46,7 @@ ModelingToolkit.generate_ode_iW(de)
41
46
D (y) ~ x* (ρ- z)- y,
42
47
D (z) ~ x* y - β* z]
43
48
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), (σ′, ρ, β))
45
50
@test begin
46
51
f = eval (generate_function (de, [x,y,z], [σ′,ρ,β]))
47
52
du = [0.0 ,0.0 ,0.0 ]
@@ -54,7 +59,7 @@ ModelingToolkit.generate_ode_iW(de)
54
59
D (y) ~ x* (ρ- z)- y,
55
60
D (z) ~ x* y - β* z]
56
61
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), (σ, ρ, β))
58
63
@test begin
59
64
f = eval (generate_function (de, [x,y,z], [σ,ρ,β]))
60
65
du = [0.0 ,0.0 ,0.0 ]
@@ -64,7 +69,7 @@ ModelingToolkit.generate_ode_iW(de)
64
69
65
70
eqs = [D (x) ~ x + 10 σ (t- 1 ) + 100 σ (t- 2 ) + 1000 σ (t^ 2 )]
66
71
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,), (σ,))
68
73
@test begin
69
74
f = eval (generate_function (de, [x], [σ]))
70
75
du = [0.0 ]
@@ -105,7 +110,7 @@ eqs = [0 ~ σ*(y-x),
105
110
0 ~ x* (ρ- z)- y,
106
111
0 ~ x* y - β* z]
107
112
ns = NonlinearSystem (eqs, [x,y,z])
108
- test_nlsys_inference (" standard" , ns, (x, y, z), (: σ , : ρ , : β ))
113
+ test_nlsys_inference (" standard" , ns, (x, y, z), (σ, ρ, β))
109
114
110
115
generate_function (ns, [x,y,z], [σ,ρ,β])
111
116
0 commit comments