def test_change_default_dt(self, dt): """Test that system with dynamics uses correct default dt""" ct.set_defaults('control', default_dt=dt) assert ct.ss(1, 0, 0, 1).dt == dt assert ct.tf(1, [1, 1]).dt == dt nlsys = ct.iosys.NonlinearIOSystem( lambda t, x, u: u * x * x, lambda t, x, u: x, inputs=1, outputs=1) assert nlsys.dt == dt
def test_change_default_dt_static(self): """Test that static gain systems always have dt=None""" ct.set_defaults('control', default_dt=0) assert ct.tf(1, 1).dt is None assert ct.ss([], [], [], 1).dt is None # Make sure static gain is preserved for the I/O system sys = ct.ss([], [], [], 1) sys_io = ct.ss2io(sys) assert sys_io.dt is None
def test_change_default_dt(self): ct.set_defaults('statesp', default_dt=0) self.assertEqual(ct.ss(0, 0, 0, 1).dt, 0) ct.set_defaults('statesp', default_dt=None) self.assertEqual(ct.ss(0, 0, 0, 1).dt, None) ct.set_defaults('xferfcn', default_dt=0) self.assertEqual(ct.tf(1, 1).dt, 0) ct.set_defaults('xferfcn', default_dt=None) self.assertEqual(ct.tf(1, 1).dt, None)
def test_latex_repr(g, ref, repr_type, num_format, editsdefaults): """Test `._latex_repr_` with different config values This is a 'gold image' test, so if you change behaviour, you'll need to regenerate the reference results. Try something like: control.reset_defaults() print(f'p3_p : {g1._repr_latex_()!r}') """ from control import set_defaults if num_format is not None: set_defaults('statesp', latex_num_format=num_format) if repr_type is not None: set_defaults('statesp', latex_repr_type=repr_type) refkey = "{}_{}".format(refkey_n[num_format], refkey_r[repr_type]) assert g._repr_latex_() == ref[refkey]
def test_latex_repr(gmats, ref, dt, dtref, repr_type, num_format, editsdefaults): """Test `._latex_repr_` with different config values This is a 'gold image' test, so if you change behaviour, you'll need to regenerate the reference results. Try something like: control.reset_defaults() print(f'p3_p : {g1._repr_latex_()!r}') """ from control import set_defaults if num_format is not None: set_defaults('statesp', latex_num_format=num_format) if repr_type is not None: set_defaults('statesp', latex_repr_type=repr_type) g = StateSpace(*(gmats+(dt,))) refkey = "{}_{}".format(refkey_n[num_format], refkey_r[repr_type]) dt_latex = dtref.format(dt=dt, fmt=defaults['statesp.latex_num_format']) ref_latex = ref[refkey][:-3] + dt_latex + ref[refkey][-3:] assert g._repr_latex_() == ref_latex
def test_latex_repr_testsize(editsdefaults): # _repr_latex_ returns None when size > maxsize from control import set_defaults maxsize = defaults['statesp.latex_maxsize'] nstates = maxsize // 2 ninputs = maxsize - nstates noutputs = ninputs assert nstates > 0 assert ninputs > 0 g = rss(nstates, ninputs, noutputs) assert isinstance(g._repr_latex_(), str) set_defaults('statesp', latex_maxsize=maxsize - 1) assert g._repr_latex_() is None set_defaults('statesp', latex_maxsize=-1) assert g._repr_latex_() is None gstatic = ss([], [], [], 1) assert gstatic._repr_latex_() is None
def set_mydefaults(): ct.set_defaults('bode', dB=True, deg=True, Hz=False, grid=True)
def test_change_default_dt_static(self): """Test that static gain systems always have dt=None""" ct.set_defaults('control', default_dt=0) assert ct.tf(1, 1).dt is None assert ct.ss(0, 0, 0, 1).dt is None