Skip to content

Commit 65b9912

Browse files
committed
init
1 parent c27e1d8 commit 65b9912

File tree

4 files changed

+58
-2
lines changed

4 files changed

+58
-2
lines changed

src/systems/diffeqs/odesystem.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,8 @@ function Base.:(==)(sys1::ODESystem, sys2::ODESystem)
373373
_eq_unordered(get_eqs(sys1), get_eqs(sys2)) &&
374374
_eq_unordered(get_unknowns(sys1), get_unknowns(sys2)) &&
375375
_eq_unordered(get_ps(sys1), get_ps(sys2)) &&
376+
_eq_unordered(continuous_events(sys1), continuous_events(sys2)) &&
377+
_eq_unordered(discrete_events(sys1), discrete_events(sys2)) &&
376378
all(s1 == s2 for (s1, s2) in zip(get_systems(sys1), get_systems(sys2)))
377379
end
378380

src/systems/diffeqs/sdesystem.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,11 +279,13 @@ function Base.:(==)(sys1::SDESystem, sys2::SDESystem)
279279
iv2 = get_iv(sys2)
280280
isequal(iv1, iv2) &&
281281
isequal(nameof(sys1), nameof(sys2)) &&
282-
isequal(get_eqs(sys1), get_eqs(sys2)) &&
283-
isequal(get_noiseeqs(sys1), get_noiseeqs(sys2)) &&
282+
_eq_unordered(get_eqs(sys1), get_eqs(sys2)) &&
283+
_eq_unordered(get_noiseeqs(sys1), get_noiseeqs(sys2)) &&
284284
isequal(get_is_scalar_noise(sys1), get_is_scalar_noise(sys2)) &&
285285
_eq_unordered(get_unknowns(sys1), get_unknowns(sys2)) &&
286286
_eq_unordered(get_ps(sys1), get_ps(sys2)) &&
287+
_eq_unordered(continuous_events(sys1), continuous_events(sys2)) &&
288+
_eq_unordered(discrete_events(sys1), discrete_events(sys2)) &&
287289
all(s1 == s2 for (s1, s2) in zip(get_systems(sys1), get_systems(sys2)))
288290
end
289291

test/odesystem.jl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,3 +1552,29 @@ end
15521552
expected_tstops = unique!(sort!(vcat(0.0:0.075:10.0, 0.1, 0.2, 0.65, 0.35, 0.45)))
15531553
@test all(x -> any(isapprox(x, atol = 1e-6), sol2.t), expected_tstops)
15541554
end
1555+
1556+
# Test `isequal`
1557+
let
1558+
@variables X(t)
1559+
@parameters p d
1560+
eq = D(X) ~ p - d*X
1561+
1562+
osys1 = complete(ODESystem([eq], t; name = :osys))
1563+
osys2 = complete(ODESystem([eq], t; name = :osys))
1564+
@test osys1 == osys2 # true
1565+
1566+
continuous_events = [[X ~ 1.0] => [X ~ X + 5.0]]
1567+
discrete_events = [5.0 => [d ~ d / 2.0]]
1568+
1569+
osys1 = complete(ODESystem([eq], t; name = :osys, continuous_events))
1570+
osys2 = complete(ODESystem([eq], t; name = :osys))
1571+
@test osys1 !== osys2
1572+
1573+
osys1 = complete(ODESystem([eq], t; name = :osys, discrete_events))
1574+
osys2 = complete(ODESystem([eq], t; name = :osys))
1575+
@test osys1 !== osys2
1576+
1577+
osys1 = complete(ODESystem([eq], t; name = :osys, continuous_events))
1578+
osys2 = complete(ODESystem([eq], t; name = :osys, discrete_events))
1579+
@test osys1 !== osys2
1580+
end

test/sdesystem.jl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,3 +868,29 @@ end
868868
@test length(ModelingToolkit.get_noiseeqs(sys)) == 1
869869
@test length(observed(sys)) == 1
870870
end
871+
872+
# Test `isequal` handles events
873+
let
874+
@variables X(t)
875+
@parameters p d
876+
@brownian a
877+
seq = D(X) ~ p - d*X + a
878+
@mtkbuild ssys1 = System([eq], t; name = :ssys)
879+
@mtkbuild ssys2 = System([eq], t; name = :ssys)
880+
@test ssys1 == ssys2 # true
881+
882+
continuous_events = [[X ~ 1.0] => [X ~ X + 5.0]]
883+
discrete_events = [5.0 => [d ~ d / 2.0]]
884+
885+
@mtkbuild ssys1 = System([eq], t; name = :ssys, continuous_events)
886+
@mtkbuild ssys2 = System([eq], t; name = :ssys)
887+
@test ssys1 !== ssys2
888+
889+
@mtkbuild ssys1 = System([eq], t; name = :ssys, discrete_events)
890+
@mtkbuild ssys2 = System([eq], t; name = :ssys)
891+
@test ssys1 !== ssys2
892+
893+
@mtkbuild ssys1 = System([eq], t; name = :ssys, continuous_events)
894+
@mtkbuild ssys2 = System([eq], t; name = :ssys, discrete_events)
895+
@test ssys1 !== ssys2
896+
end

0 commit comments

Comments
 (0)