Skip to content

Commit 7d70497

Browse files
committed
add unittest test_variable_filter()
1 parent 9cd5f34 commit 7d70497

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

tests/test_ModelicaSystemOMC.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,53 @@ def _run_getSolutions(mod):
206206
assert np.isclose(x, x_analytical, rtol=1e-4).all()
207207

208208

209+
def test_variable_filter(model_firstorder):
210+
mod = OMPython.ModelicaSystemOMC()
211+
mod.model(
212+
model_file=model_firstorder,
213+
model_name="M",
214+
)
215+
216+
a = -1
217+
tau = -1 / a
218+
stopTime = 5 * tau
219+
220+
simOptions = {"stopTime": stopTime, "stepSize": 0.1, "tolerance": 1e-8}
221+
mod.setSimulationOptions(**simOptions)
222+
mod.simulate()
223+
sol_names1 = mod.getSolutions()
224+
assert isinstance(sol_names1, tuple)
225+
assert sol_names1 == ('a', 'der(x)', 'time', 'x')
226+
227+
mod.set_variable_filter(variable_filter='x')
228+
mod.setSimulationOptions(stopTime=2.0)
229+
mod.simulate()
230+
sol_names2 = mod.getSolutions()
231+
assert isinstance(sol_names2, tuple)
232+
assert sol_names2 == ('a', 'time', 'x')
233+
234+
mod.set_variable_filter(variable_filter='der(x)')
235+
mod.setSimulationOptions(stopTime=3.0)
236+
mod.simulate()
237+
sol_names3 = mod.getSolutions()
238+
assert isinstance(sol_names3, tuple)
239+
assert sol_names3 == ('a', 'time')
240+
241+
mod.set_variable_filter(variable_filter='der(x)', escape=True)
242+
mod.setSimulationOptions(stopTime=3.0)
243+
mod.simulate()
244+
sol_names4 = mod.getSolutions()
245+
assert isinstance(sol_names4, tuple)
246+
assert sol_names4 == ('a', 'der(x)', 'time')
247+
248+
mod.set_variable_filter(variable_filter='a')
249+
mod.setSimulationOptions(stopTime=2.0)
250+
mod.simulate()
251+
sol_names5 = mod.getSolutions()
252+
assert isinstance(sol_names5, tuple)
253+
assert sol_names5 == ('a', 'time')
254+
255+
209256
def test_getters(tmp_path):
210257
model_file = tmp_path / "M_getters.mo"
211258
model_file.write_text("""

0 commit comments

Comments
 (0)