Example #1
0
 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
Example #2
0
    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)
Example #4
0
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]
Example #5
0
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
Example #6
0
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
Example #7
0
def set_mydefaults():
    ct.set_defaults('bode', dB=True, deg=True, Hz=False, grid=True)
Example #8
0
 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