Skip to content

Commit 627a7fd

Browse files
committed
Round-trip tests
1 parent 5490acc commit 627a7fd

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

src/systems/nonlinear/nonlinearsystem.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,3 +308,10 @@ function flatten(sys::NonlinearSystem)
308308
)
309309
end
310310
end
311+
312+
function Base.:(==)(sys1::NonlinearSystem, sys2::NonlinearSystem)
313+
_eq_unordered(get_eqs(sys1), get_eqs(sys2)) &&
314+
_eq_unordered(get_states(sys1), get_states(sys2)) &&
315+
_eq_unordered(get_ps(sys1), get_ps(sys2)) &&
316+
all(s1 == s2 for (s1, s2) in zip(get_systems(sys1), get_systems(sys2)))
317+
end

test/nonlinearsystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ end
2121
eqs = [0 ~ σ*(y-x),
2222
0 ~ x*-z)-y,
2323
0 ~ x*y - β*z]
24-
ns = NonlinearSystem(eqs, [x,y,z], [σ,ρ,β])
24+
ns = NonlinearSystem(eqs, [x,y,z], [σ,ρ,β], defaults = Dict(x => 2))
25+
@test eval(system2expr(ns)) == ns
2526
test_nlsys_inference("standard", ns, (x, y, z), (σ, ρ, β))
2627
@test begin
2728
f = eval(generate_function(ns, [x,y,z], [σ,ρ,β])[2])

test/odesystem.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ eqs = [D(x) ~ σ*(y-x),
1717
D(z) ~ x*y - β*z]
1818

1919
ModelingToolkit.toexpr.(eqs)[1]
20-
:(derivative(x(t), t) = σ * (y(t) - x(t))).args
21-
de = ODESystem(eqs)
20+
de = ODESystem(eqs; defaults=Dict(x => 1))
21+
@test eval(system2expr(sys)) == sys
2222

2323
generate_function(de)
2424

0 commit comments

Comments
 (0)