Skip to content

Commit 04d8dda

Browse files
committed
update for new tests
1 parent 3e07adf commit 04d8dda

File tree

1 file changed

+35
-62
lines changed

1 file changed

+35
-62
lines changed

test/accessor_functions.jl

Lines changed: 35 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ using ModelingToolkit, Test
55
using ModelingToolkit: t_nounits as t, D_nounits as D
66
import ModelingToolkit: get_ps, get_unknowns, get_observed, get_eqs, get_continuous_events,
77
get_discrete_events, namespace_equations
8+
import ModelingToolkit: parameters_toplevel, unknowns_toplevel, equations_toplevel,
9+
continuous_events_toplevel, discrete_events_toplevel
810

911
# Creates helper functions.
1012
function all_sets_equal(args...)
@@ -23,8 +25,9 @@ end
2325
### Basic Tests ###
2426

2527
# Checks `toplevel = false` argument for various accessors (currently only for `ODESystem`s).
26-
# Compares to `toplevel = true` version, and `get_` functions.
28+
# Compares to `` version, and `get_` functions.
2729
# Checks accessors for parameters, unknowns, equations, observables, and events.
30+
# Some tests looks funny (caused by the formatter).
2831
let
2932
# Prepares model components.
3033
@parameters p_top p_mid1 p_mid2 p_bot d
@@ -70,7 +73,7 @@ let
7073
sys_mid1_ss = structural_simplify(sys_mid1)
7174
sys_top_ss = structural_simplify(sys_top)
7275

73-
# Checks `parameters` for `toplevel = false`.
76+
# Checks `parameters1.
7477
@test all_sets_equal(parameters.([sys_bot, sys_bot_comp, sys_bot_ss])..., [d, p_bot])
7578
@test all_sets_equal(parameters.([sys_mid1, sys_mid1_comp, sys_mid1_ss])...,
7679
[d, p_mid1, sys_bot.d, sys_bot.p_bot])
@@ -80,22 +83,22 @@ let
8083
[d, p_top, sys_mid1.d, sys_mid1.p_mid1, sys_mid1.sys_bot.d,
8184
sys_mid1.sys_bot.p_bot, sys_mid2.d, sys_mid2.p_mid2])
8285

83-
# Checks `parameters`` for `toplevel = true`. Compares to known parameters and also checks that
86+
# Checks `parameters_toplevel`. Compares to known parameters and also checks that
8487
# these are subset of what `get_ps` returns.
8588
@test all_sets_equal(
86-
parameters.([sys_bot, sys_bot_comp, sys_bot_ss]; toplevel = true)..., [d, p_bot])
89+
parameters_toplevel.([sys_bot, sys_bot_comp, sys_bot_ss])..., [d, p_bot])
8790
@test_broken all_sets_equal(
88-
parameters.([sys_mid1, sys_mid1_comp, sys_mid1_ss]; toplevel = true)...,
91+
parameters_toplevel.([sys_mid1, sys_mid1_comp, sys_mid1_ss])...,
8992
[d, p_mid1])
9093
@test all_sets_equal(
91-
parameters.([sys_mid2, sys_mid2_comp, sys_mid2_ss]; toplevel = true)...,
94+
parameters_toplevel.([sys_mid2, sys_mid2_comp, sys_mid2_ss])...,
9295
[d, p_mid2])
9396
@test_broken all_sets_equal(
94-
parameters.([sys_top, sys_top_comp, sys_top_ss]; toplevel = true)..., [d, p_top])
95-
@test all(sym_issubset(parameters(sys; toplevel = true), get_ps(sys))
97+
parameters_toplevel.([sys_top, sys_top_comp, sys_top_ss])..., [d, p_top])
98+
@test all(sym_issubset(parameters_toplevel(sys), get_ps(sys))
9699
for sys in [sys_bot, sys_mid2, sys_mid1, sys_top])
97100

98-
# Checks `unknowns` for `toplevel = false`. O(t) is eliminated by `structural_simplify` and
101+
# Checks `unknowns`. O(t) is eliminated by `structural_simplify` and
99102
# must be considered separately.
100103
@test all_sets_equal(unknowns.([sys_bot, sys_bot_comp])..., [O, Y, X_bot])
101104
@test all_sets_equal(unknowns.([sys_bot_ss])..., [Y, X_bot])
@@ -112,20 +115,20 @@ let
112115
[Y, X_top, sys_mid1.Y, sys_mid1.X_mid1, sys_mid1.sys_bot.Y,
113116
sys_mid1.sys_bot.X_bot, sys_mid2.Y, sys_mid2.X_mid2])
114117

115-
# Checks `unknowns` for `toplevel = true`. Note that O is not eliminated here (as we go back
116-
# to original parent system). Also checks that outputs are subsets of what `get_ps` returns..
118+
# Checks `unknowns_toplevel`. Note that O is not eliminated here (as we go back
119+
# to original parent system). Also checks that outputs are subsets of what `get_unknowns` returns.
117120
@test all_sets_equal(
118-
unknowns.([sys_bot, sys_bot_comp, sys_bot_ss]; toplevel = true)..., [O, Y, X_bot])
121+
unknowns_toplevel.([sys_bot, sys_bot_comp, sys_bot_ss])..., [O, Y, X_bot])
119122
@test all_sets_equal(
120-
unknowns.([sys_mid1, sys_mid1_comp]; toplevel = true)..., [O, Y, X_mid1])
123+
unknowns_toplevel.([sys_mid1, sys_mid1_comp])..., [O, Y, X_mid1])
121124
@test all_sets_equal(
122-
unknowns.([sys_mid2, sys_mid2_comp]; toplevel = true)..., [O, Y, X_mid2])
125+
unknowns_toplevel.([sys_mid2, sys_mid2_comp])..., [O, Y, X_mid2])
123126
@test all_sets_equal(
124-
unknowns.([sys_top, sys_top_comp]; toplevel = true)..., [O, Y, X_top])
125-
@test all(sym_issubset(unknowns(sys; toplevel = true), get_unknowns(sys))
127+
unknowns_toplevel.([sys_top, sys_top_comp])..., [O, Y, X_top])
128+
@test all(sym_issubset(unknowns_toplevel(sys), get_unknowns(sys))
126129
for sys in [sys_bot, sys_mid1, sys_mid2, sys_top])
127130

128-
# Checks `equations` for `toplevel = false`. Do not check ss equations as these might potentially
131+
# Checks `equations`. Do not check ss equations as these might potentially
129132
# be structurally simplified to new equations.
130133
@test all_sets_equal(equations.([sys_bot, sys_bot_comp])..., eqs_bot)
131134
@test all_sets_equal(
@@ -134,65 +137,35 @@ let
134137
@test all_sets_equal(equations.([sys_top, sys_top_comp])...,
135138
[eqs_top; namespace_equations(sys_mid1); namespace_equations(sys_mid2)])
136139

137-
# Checks `equations` for `toplevel = true`. Do not check ss equations directly as these
138-
# might potentially be structurally simplified to new equations.
139-
@test all_sets_equal(equations.([sys_bot, sys_bot_comp]; toplevel = true)..., eqs_bot)
140+
# Checks `equations_toplevel`. Do not check ss equations directly as these
141+
# might potentially be structurally simplified to new equations. Do not check
142+
@test all_sets_equal(equations_toplevel.([sys_bot])..., eqs_bot)
140143
@test all_sets_equal(
141-
equations.([sys_mid1, sys_mid1_comp]; toplevel = true)..., eqs_mid1)
144+
equations_toplevel.([sys_mid1])..., eqs_mid1)
142145
@test all_sets_equal(
143-
equations.([sys_mid2, sys_mid2_comp]; toplevel = true)..., eqs_mid2)
144-
@test all_sets_equal(equations.([sys_top, sys_top_comp]; toplevel = true)..., eqs_top)
145-
@test all(sym_issubset(equations(sys; toplevel = true), get_eqs(sys))
146+
equations_toplevel.([sys_mid2])..., eqs_mid2)
147+
@test all_sets_equal(equations_toplevel.([sys_top])..., eqs_top)
148+
@test all(sym_issubset(equations_toplevel(sys), get_eqs(sys))
146149
for sys in [sys_bot, sys_mid2, sys_mid1, sys_top])
147150

148-
# Checks `observed for `toplevel = false`. For non-ss systems, there are no observables.
149-
@test all_sets_equal(
150-
observed.([sys_bot, sys_bot_comp, sys_mid1, sys_mid1_comp,
151-
sys_mid2, sys_mid2_comp, sys_top, sys_top_comp])...,
152-
[])
153-
@test issetequal(observed(sys_bot_ss), eqs_bot[3:3])
154-
@test issetequal(
155-
observed(sys_mid1_ss), [eqs_mid1[3:3]; namespace_equations(sys_bot)[3:3]])
156-
@test issetequal(observed(sys_mid2_ss), eqs_mid2[3:3])
157-
@test issetequal(observed(sys_top_ss),
158-
[eqs_top[3:3]; namespace_equations(sys_mid1)[3:3:6];
159-
namespace_equations(sys_mid2)[3:3]])
160-
161-
# Checks `observed` for `toplevel = true`. Again, for non-ss systems, there are no observables.
162-
# Also checks that `toplevel = true` yields subset of `get_observed`.
163-
@test all_sets_equal(
164-
observed.(
165-
[sys_bot, sys_bot_comp, sys_mid1, sys_mid1_comp,
166-
sys_mid2, sys_mid2_comp, sys_top, sys_top_comp];
167-
toplevel = true)...,
168-
[])
169-
@test_broken issetequal(observed(sys_bot_ss; toplevel = true), eqs_bot[3:3])
170-
@test_broken issetequal(observed(sys_mid1_ss; toplevel = true), eqs_mid1[3:3])
171-
@test_broken issetequal(observed(sys_mid2_ss; toplevel = true), eqs_mid2[3:3])
172-
@test_broken issetequal(observed(sys_top_ss; toplevel = true), eqs_top[3:3])
173-
@test all(sym_issubset(observed(sys; toplevel = true), get_observed(sys))
174-
for sys in [sys_bot, sys_mid2, sys_mid1, sys_top])
175-
176-
# Checks `continuous_events` and `discrete_events` for `toplevel = true` (more straightforward
177-
# as I stored the same singe event in all systems). Don't check for `toplevel = false` as
151+
# Checks `continuous_events_toplevel` and `discrete_events_toplevel` (straightforward
152+
# as I stored the same singe event in all systems). Don't check for non-toplevel cases as
178153
# technically not needed for these tests and name spacing the events is a mess.
179154
mtk_cev = ModelingToolkit.SymbolicContinuousCallback.(cevs)[1]
180155
mtk_dev = ModelingToolkit.SymbolicDiscreteCallback.(devs)[1]
181156
@test all_sets_equal(
182-
continuous_events.(
157+
continuous_events_toplevel.(
183158
[sys_bot, sys_bot_comp, sys_bot_ss, sys_mid1, sys_mid1_comp, sys_mid1_ss,
184-
sys_mid2, sys_mid2_comp, sys_mid2_ss, sys_top, sys_top_comp, sys_top_ss];
185-
toplevel = true)...,
159+
sys_mid2, sys_mid2_comp, sys_mid2_ss, sys_top, sys_top_comp, sys_top_ss])...,
186160
[mtk_cev])
187161
@test all_sets_equal(
188-
discrete_events.(
162+
discrete_events_toplevel.(
189163
[sys_bot, sys_bot_comp, sys_bot_ss, sys_mid1, sys_mid1_comp, sys_mid1_ss,
190-
sys_mid2, sys_mid2_comp, sys_mid2_ss, sys_top, sys_top_comp, sys_top_ss];
191-
toplevel = true)...,
164+
sys_mid2, sys_mid2_comp, sys_mid2_ss, sys_top, sys_top_comp, sys_top_ss])...,
192165
[mtk_dev])
193166
@test all(sym_issubset(
194-
continuous_events(sys; toplevel = true), get_continuous_events(sys))
167+
continuous_events_toplevel(sys), get_continuous_events(sys))
195168
for sys in [sys_bot, sys_mid2, sys_mid1, sys_top])
196-
@test all(sym_issubset(discrete_events(sys; toplevel = true), get_discrete_events(sys))
169+
@test all(sym_issubset(discrete_events_toplevel(sys), get_discrete_events(sys))
197170
for sys in [sys_bot, sys_mid2, sys_mid1, sys_top])
198171
end

0 commit comments

Comments
 (0)