11using SBMLToolkit
2- using Catalyst, SBML
2+ using Catalyst, ModelingToolkit, SBML
3+ import Symbolics
34using Test
45
56cd (@__DIR__ )
@@ -110,8 +111,15 @@ rs = ReactionSystem(MODEL2) # Contains reversible reaction
110111@test isequal (Catalyst. get_species (rs), [s1])
111112@test issetequal (Catalyst. get_ps (rs), [k1, c1])
112113
113- @test convert (ModelingToolkit. ODESystem, rs) isa ODESystem
114- @test structural_simplify (convert (ModelingToolkit. ODESystem, rs)) isa ODESystem
114+ if pkgversion (Catalyst) >= v " 16"
115+ odesys_from_rs = Catalyst. ode_model (rs)
116+ @test odesys_from_rs isa ODESystem
117+ @test mtkcompile (odesys_from_rs) isa ODESystem
118+ else
119+ odesys_from_rs = convert (ModelingToolkit. ODESystem, rs)
120+ @test odesys_from_rs isa ODESystem
121+ @test structural_simplify (odesys_from_rs) isa ODESystem
122+ end
115123
116124# Test ODESystem constructor
117125odesys = ODESystem (MODEL1)
@@ -123,7 +131,19 @@ trueeqs = Equation[default_time_deriv()(s1) ~ k1]
123131u0 = [s1 => 1.0 ]
124132par = [k1 => 1.0 , c1 => 2.0 ]
125133testdef = merge (Dict (u0), Dict (par))
126- @test issubset (testdef, defaults (odesys))
134+ if pkgversion (ModelingToolkit) >= v " 11"
135+ initial_conditions = ModelingToolkit. initial_conditions (odesys)
136+ bindings = ModelingToolkit. bindings (odesys)
137+ @test all (
138+ isequal (Symbolics. wrap (initial_conditions[Symbolics. unwrap (k)]), v)
139+ for (k, v) in u0
140+ )
141+ @test all (
142+ isequal (Symbolics. wrap (bindings[Symbolics. unwrap (k)]), v) for (k, v) in par
143+ )
144+ else
145+ @test issubset (testdef, ModelingToolkit. defaults (odesys))
146+ end
127147@named odesys = ODESystem (MODEL1)
128148isequal (nameof (odesys), :odesys )
129149@test structural_simplify (odesys) isa ODESystem
@@ -142,7 +162,19 @@ trueeqs = Equation[
142162u0 = [s1 => 2 * 1.0 , s2 => 2 * 1.0 , s1s2 => 2 * 1.0 ]
143163par = [k1 => 1.0 , c1 => 2.0 ]
144164testdef = merge (Dict (u0), Dict (par))
145- @test issubset (testdef, ModelingToolkit. defaults (odesys))
165+ if pkgversion (ModelingToolkit) >= v " 11"
166+ initial_conditions = ModelingToolkit. initial_conditions (odesys)
167+ bindings = ModelingToolkit. bindings (odesys)
168+ @test all (
169+ isequal (Symbolics. wrap (initial_conditions[Symbolics. unwrap (k)]), v)
170+ for (k, v) in u0
171+ )
172+ @test all (
173+ isequal (Symbolics. wrap (bindings[Symbolics. unwrap (k)]), v) for (k, v) in par
174+ )
175+ else
176+ @test issubset (testdef, ModelingToolkit. defaults (odesys))
177+ end
146178@named odesys = ODESystem (MODEL1)
147179isequal (nameof (odesys), :odesys )
148180
0 commit comments