Skip to content

Commit 705a8ff

Browse files
committed
add unittest test_variable_filter()
1 parent 89cca8d commit 705a8ff

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

tests/test_ModelicaSystemOMC.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,55 @@ 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.setWorkDirectory(pathlib.Path(__file__).parent.parent / 'xyz')
212+
mod.model(
213+
model_file=model_firstorder,
214+
model_name="M",
215+
)
216+
217+
x0 = 1
218+
a = -1
219+
tau = -1 / a
220+
stopTime = 5 * tau
221+
222+
simOptions = {"stopTime": stopTime, "stepSize": 0.1, "tolerance": 1e-8}
223+
mod.setSimulationOptions(**simOptions)
224+
mod.simulate()
225+
sol_names1 = mod.getSolutions()
226+
assert isinstance(sol_names1, tuple)
227+
assert sol_names1 == ('a', 'der(x)', 'time', 'x')
228+
229+
mod.set_variable_filter(variable_filter='x')
230+
mod.setSimulationOptions(stopTime=2.0)
231+
mod.simulate()
232+
sol_names2 = mod.getSolutions()
233+
assert isinstance(sol_names2, tuple)
234+
assert sol_names2 == ('a', 'time', 'x')
235+
236+
mod.set_variable_filter(variable_filter='der(x)')
237+
mod.setSimulationOptions(stopTime=3.0)
238+
mod.simulate()
239+
sol_names3 = mod.getSolutions()
240+
assert isinstance(sol_names3, tuple)
241+
assert sol_names3 == ('a', 'time')
242+
243+
mod.set_variable_filter(variable_filter='der(x)', escape=True)
244+
mod.setSimulationOptions(stopTime=3.0)
245+
mod.simulate()
246+
sol_names4 = mod.getSolutions()
247+
assert isinstance(sol_names4, tuple)
248+
assert sol_names4 == ('a', 'der(x)', 'time')
249+
250+
mod.set_variable_filter(variable_filter='a')
251+
mod.setSimulationOptions(stopTime=2.0)
252+
mod.simulate()
253+
sol_names5 = mod.getSolutions()
254+
assert isinstance(sol_names5, tuple)
255+
assert sol_names5 == ('a', 'time')
256+
257+
209258
def test_getters(tmp_path):
210259
model_file = tmp_path / "M_getters.mo"
211260
model_file.write_text("""

0 commit comments

Comments
 (0)