Ejemplo n.º 1
0
def test_mc01td_D():
    """ test_mc01td_D: test discrete option """
    (dp, stable, nz) = mc01td('D', 3, [1, 2, 3, 4])
    assert dp == 3
    assert stable == 1
    assert nz == 0
    (dp, stable, nz) = mc01td('D', 3, [4, 3, 2, 1])
    assert dp == 3
    assert stable == 0
    assert nz == 3
Ejemplo n.º 2
0
 def test_mc01td_D(self):
     """ test_mc01td_D: test discrete option """
     (dp, stable, nz) = mc01td('D', 3, [1, 2, 3, 4])
     self.assertEqual(dp, 3)
     self.assertEqual(stable, 1)
     self.assertEqual(nz, 0)
     (dp, stable, nz) = mc01td('D', 3, [4, 3, 2, 1])
     self.assertEqual(dp, 3)
     self.assertEqual(stable, 0)
     self.assertEqual(nz, 3)
Ejemplo n.º 3
0
def mc01td_example():
    p = array([2, 0, 1, -1, 1])
    out = slycot.mc01td('C',4,p)
    print('--- Example for mc01td ...')
    if out[1]:
        print('The polynomial is stable')
    else:
        print('The polynomial has', out[2], 'unstable zeros')
Ejemplo n.º 4
0
def mc01td_example():
    p = array([2, 0, 1, -1, 1])
    out = slycot.mc01td('C',4,p)
    print('--- Example for mc01td ...')
    if out[1]:
        print('The polynomial is stable')
    else:
        print('The polynomial has', out[2], 'unstable zeros')
Ejemplo n.º 5
0
def test_mc01td():
    """ test_mc01td: doc example
    data from http://slicot.org/objects/software/shared/doc/MC01TD.html
    """
    (dp, stable, nz) = mc01td('C', 4, [2, 0, 1, -1, 1])
    assert dp == 4
    assert stable == 0
    assert nz == 2
Ejemplo n.º 6
0
 def test_mc01td(self):
     """ test_mc01td: doc example
     data from http://slicot.org/objects/software/shared/doc/MC01TD.html
     """
     (dp, stable, nz) = mc01td('C', 4, [2, 0, 1, -1, 1])
     self.assertEqual(dp, 4)
     self.assertEqual(stable, 0)
     self.assertEqual(nz, 2)
Ejemplo n.º 7
0
 def test_mc01td_warnings(self):
     """ test_mc01td_warnings: Test warnings """
     T = [([0, 0], "entry P(x) is the zero polynomial."),
          ([0, 1], "P(x) may have zeros very close to stability boundary."),
          ([1, 0], "The degree of P(x) has been reduced to 0")]
     for P, m in T:
         with warnings.catch_warnings(record=True) as w:
             (dp, stable, nz) = mc01td('C', len(P) - 1, P)
             self.assertEqual(str(w[0].message), m)
Ejemplo n.º 8
0
def test_mc01td_warnings():
    """ test_mc01td_warnings: Test warnings """
    T = [([0, 0], "Entry ``P(x)`` is the zero polynomial."),
         ([0, 1], "The polynomial ``P(x)`` is most probably unstable,\n"
          "although it may be stable with one or more zeros\n"
          "very close to the imaginary axis.\n"
          "The number of unstable zeros (NZ) is not determined."),
         ([1, 0], "The degree of the polynomial ``P(x)`` has been\n"
          "reduced to ``(DB - 1)`` because\n"
          "``P(DB+1-j) = 0.0`` on entry\n"
          "for ``j = 0, 1,..., k-1`` and ``P(DB+1-k) <> 0.0``.")]
    for P, m in T:
        with pytest.warns(SlycotResultWarning, match=re.escape(m)):
            (dp, stable, nz) = mc01td('C', len(P) - 1, P)