Skip to content

Commit 3aed484

Browse files
committed
Add tests
1 parent 7a4d004 commit 3aed484

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

src/systems/reduction.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,14 @@ julia> eqs = [
110110
y ~ 2z + k
111111
];
112112
113-
julia> ModelingToolkit.topsort_observed(eqs, [x, y, z, k])
113+
julia> ModelingToolkit.topsort_equations(eqs, [x, y, z, k])
114114
3-element Vector{Equation}:
115115
Equation(z(t), 2)
116116
Equation(y(t), k(t) + 2z(t))
117117
Equation(x(t), y(t) + z(t))
118118
```
119119
"""
120-
function topsort_observed(eqs, states)
120+
function topsort_equations(eqs, states)
121121
graph, assigns = observed2graph(eqs, states)
122122
neqs = length(eqs)
123123
degrees = zeros(Int, neqs)
@@ -146,7 +146,7 @@ function topsort_observed(eqs, states)
146146
end
147147
end
148148

149-
idx == neqs || throw(ArgumentError("The obversed equations have at least one cycle."))
149+
idx == neqs || throw(ArgumentError("The equations have at least one cycle."))
150150

151151
return ordered_eqs
152152
end

test/reduction.jl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,27 @@
11
using ModelingToolkit, OrdinaryDiffEq, Test
2+
using ModelingToolkit: topsort_equations
3+
4+
@variables t x(t) y(t) z(t) k(t)
5+
eqs = [
6+
x ~ y + z
7+
z ~ 2
8+
y ~ 2z + k
9+
]
10+
11+
sorted_eq = topsort_equations(eqs, [x, y, z, k])
12+
13+
ref_eq = [
14+
z ~ 2
15+
y ~ 2z + k
16+
x ~ y + z
17+
]
18+
@test ref_eq == sorted_eq
19+
20+
@test_throws ArgumentError topsort_equations([
21+
x ~ y + z
22+
z ~ 2
23+
y ~ 2z + x
24+
], [x, y, z, k])
225

326
@parameters t σ ρ β
427
@variables x(t) y(t) z(t) a(t) u(t) F(t)

0 commit comments

Comments
 (0)