
&]\c           @` s  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m	 Z	 m
 Z
 m Z d  d l m Z d  d l m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" d  d l# m$ Z$ d  d l% j& Z& d  d l' j( j) Z) d d d	  Z* d
 e+ f d     YZ, d d, d     YZ- d e+ f d     YZ. d e+ f d     YZ/ d e+ f d     YZ0 d e0 f d     YZ1 d e0 f d     YZ2 d e+ f d     YZ3 d e3 f d     YZ4 d e3 f d     YZ5 d e+ f d     YZ6 d  e+ f d!     YZ7 d" e+ f d#     YZ8 d$ e+ f d%     YZ9 d& e+ f d'     YZ: d( e+ f d)     YZ; d* e+ f d+     YZ< d S(-   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_almost_equalt   assert_equalt   assert_allcloset   assert_(   t   raises(   t   suppress_warnings(   t   ss2tft   tf2sst   lsim2t   impulse2t   step2t   ltit   dltit   bodet   freqrespt   lsimt   impulset   stept   abcd_normalizet   place_polest   TransferFunctiont
   StateSpacet   ZerosPolesGain(   t   BadCoefficientsg:0yE>c         C` s   | j    } x |  D] } t } x t | j d  D]p } t j t j |  t j |  g t j | |  t j | |  g | |  r3 t } t j	 | |  Pq3 q3 W| s t
 d t |  d t |    q q Wd S(   s  
    Check each pole in P1 is close to a pole in P2 with a 1e-8
    relative tolerance or 1e-8 absolute tolerance (useful for zero poles).
    These tolerances are very strict but the systems tested are known to
    accept these poles so we should not be far from what is requested.
    i    s   Can't find pole s    in N(   t   copyt   Falset   ranget   shapet   npt   allcloset   realt   imagt   Truet   deletet
   ValueErrort   str(   t   P1t   P2t   rtolt   atolt   p1t   foundt   p2_idx(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   _assert_poles_close   s    !#t   TestPlacePolesc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         K` st   t  | | | |  } t j j | t j | | j   \ } } t | | j  t | | j  t | | j  | S(   s   
        Perform the most common tests on the poles computed by place_poles
        and return the Bunch object for further specific tests
        (	   R   R   t   linalgt   eigt   dott   gain_matrixR.   t   requested_polest   computed_poles(   t   selft   At   Bt   Pt   kwargst   fsft   expectedt   _(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   _check,   s    +c         C` s   t  j d d d d d d d d d	 d
 d d d d
 d d g  j d d  } t  j d d d d d d d d g  j d d  } t  j d d d d g  } |  j | | | d d |  j | | | d d t  j d d   |  j | | d  Wd  QXd  S(    NgGz?gʿg\(@gNbX9g<,Ԛg)\(i    g?gOn?gd;O@gV-gOn@g~jt?grh|?gE i   gK@gV-?g^I+	i   gɿg      g}гY9gDT!t   methodt   KNV0t   YTt   invalidt   ignorei   (   i   i   i   i   (   R   t   arrayt   reshapeR>   t   errstate(   R6   R7   R8   R9   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt	   test_real8   s    3c      %   C` s  t  j d d d d d d d dq d d d d d d d d g  j d d  } t  j d d d d d d d d g  j d d  } t  j d d dr ds g  } |  j | | |  dt du d d g } |  j | | | d d t  j d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d d* d+ d, d- d. d/ d0 d1 d2 g$  j d3 d3  } t  j d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ g  j d3 dR  } dv dw dx dy dz d{ g } |  j | | |  t  j d|  t  j dY  } t  j d}  t  j d g d d  d  d   d d   f } | | d  d3  d  d3  f <| | d  d3  d  dR  f <d dZ d[ d\ d] d^ d_ d~ d d d g } |  j | | |  d dZ d[ db dc dd de df dg dh g
 } |  j | d  d  d  d  f | d  d  d  d  f |  d d d d d d d d d d g
 } |  j | d  d  d  d  f | d  d  d  d  f |  t  j d d d d d d d d d d d d d d d d d d d dR d d d d dn g  j dR dR  } t  j d d d d d d d d d do g
  j dR d  } t  j d	 d d d d g  } t | | |  t  j d	 d dp d d g  } |  j | | |  d  S(   Ni    i   g      @i   i   i   iiiy              ?y        ư>ii
   t   maxiteri  iii%iiFii[iiiYiiii\ii^iciii(i~iiiiiiSiiigiiipiii   iiiii0i_iLi`iiiii]ii#iii"iHiii<i^iUiiiciiiRi   g      9y              =@g      ?@y              E@g     @@y             D@i   iii(   i2   i<   iF   y              @y              @iiiiiiiy              $@y              4@y              >@y              D@y              I@i	   i   ig@y             y             ?y        ưy        ư>y      9      =y      9      =@y      ?@      Ey      ?@      E@y     @@     Dy     @@     D@(   i   i   (   i   i
   y      4      y      4      @y      @      @y      @      y      $      $@y      4      4@y      >      >@y      D      D@y      I      I@y      $      $y      4      4y      >      >y      D      Dy      I      Ig@y            ?y            y            ?y            y            ?y            (   R   RD   RE   R>   t   onest   eyet   diagR   (   R6   R7   R8   R9   t   big_At   big_B(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_complexN   sL    K3!<'$??609c         C` s  t  j d d d d d d d d d	 d
 d d d d
 d d g  j d d  } t  j d d d d d d d d d d d d d d d d g  j d d  } t  j d d d d g  } |  j | | |  } t | j t  j  t | j t  j  t  j d" d# d! d f  } |  j | | |  } t | j t  j  t | j t  j  | d  d   d f j d d  } t  j d$ d% d! d f  } |  j | | |  } t | j d  t | j d  d  S(&   NgGz?gʿg\(@gNbX9g<,Ԛg)\(i    g?gOn?gd;O@gV-gOn@g~jt?grh|?gE i   gK@gV-?g^I+	i   i   i   i   i   i   i   gɿg      g}гY9gDT!iy              ?iy             ?y             y             ?y             (   R   RD   RE   R>   R   R)   t   nant   nb_iter(   R6   R7   R8   R9   R;   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_tricky_B   s$    *!"c         C` s  t  j d d d d d d d d d d d d d d d d g  j d d  } t  j d d d d d d d d g  j d d  } t t t | | d d d t t t | | t  j d   j d d   t t t | d  d   d  d   t  j f | d!  t t t | | d  d   d  d   t  j f d"  t t t | | d#  t t t | | d$  t t t | | d% d d t t t | | d& d d t t t | | d'  t t t t  j d(  t  j d)  d*  t j	 d t
   } t j d  t | | d+ d d d d } t t |  d k  t t | d j t   t d t | d j  k  t | j d  Wd  QXt t t | | d, d- d. d f  t t t | d  d   d  d  f | d/  t t t | | d  d  d  d   f d0  t t t | | d1 d2 d3 d4 f d d d  S(5   Ni    i   g      @i   i   i   g ggffffffg333333R?   t   fooiR)   i*   RH   iii   t   recordt   alwaysiigؗҜ<s4   Convergence was not reached after maxiter iterationsy              ?y              @iR@   g@(   g ggffffffg333333(   g ggffffffg333333(   g ggffffffg333333(   g ggffffffg333333(   g ggffffffg333333i(   g ggffffff(   g ggffffffg333333(   g ggffffffg333333(   iiii(   i   i   (   i   i   (   i   i   i   i   (   iiiiy             ?y             y             @(   iiii(   iiiiy             ?y             y             @y             (   R   RD   RE   t   assert_raisesR%   R   t   newaxisRI   t   warningst   catch_warningsR#   t   simplefilterR   t   lent
   issubclasst   categoryt   UserWarningR&   t   messageR   RP   (   R6   R7   R8   t   wR;   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_errors   s@    K3++",,(   t   __name__t
   __module__R>   RG   RN   RQ   R`   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR/   *   s
   			C	"t	   TestSS2TFc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` sV   t  t j | | f  t j | | f  t j | | f  t j | | f  d  d  S(   Ni    (   R	   R   t   zeros(   R6   t   pt   qt   r(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   check_matrix_shapes   s    c         C` s:   x3 d d d g D]" \ } } } |  j  | | |  q Wd  S(   Ni   i   (   i   i   i   (   i   i   i   (   i   i   i   (   Rh   (   R6   Re   Rf   Rg   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_shapes   s    c   	      C` s  t  j d d d g  } t  j d d d g  } t | |  \ } } } } t | d d g d d g g d	 d
 t | d g d g g d	 d
 t | d d g g d	 d
 t | d g g d	 d t | | | |  \ } } t | d | d	 d
 t | | d	 d
 d  S(   Ng      ?g      @g      @g       @iii   i    R)   gvIh%<=i   g+=(   R   RD   R
   R   R	   (	   R6   t   bt   aR7   R8   t   Ct   Dt   bbt   aa(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt
   test_basic  s    %c         C` s  d } t  |   \ } } } } t | d g g d d t | d g g d d t | d g g d d t | d g g d d t | | | |  \ } } t | d d g g d d t | d d g d d d g d g g d f } t  |   \ } } } } t | d g g d d t | d g g d d t | d g d g g d d t | d g d g g d d t | | | |  \ } } t | d d g d d g g d d t | d d g d d d  S(   Ni   i   i    R)   gvIh%<=i   (   i   i   (   R
   R   R	   (   R6   t   tfR7   R8   Rl   Rm   t   numt   den(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_zero_order_round_trip  s$    %c         C` s  d d g d d g g d d g f } t  |   \ } } } } t | d g g d d t | d g g d d t | d g d g g d d t | d g d g g d d t | | | |  \ } } t | d d g d d g g d d t | d d g d d d d d g d d d g g d d d g f } t  |   \ } } } } t | d d g d d g g d d t | d g d g g d d t | d d g d d g g d d t | d g d g g d d t | | | |  \ } } t | d d d g d d d g g d d t | d d d g d d d d d g d d d g g d d d d	 g f } t  |   \ } } } } t | d d
 d g d d d g d d d g g d d t | d g d g d g g d d t | d d d g d d d g g d d t | d g d g g d d t | | | |  \ } } t | d d d d g d d d d g g d d t | d d d d	 g d d d d d g g d d g f } t  |   \ } } } } t | d g g d d t | d g g d d t | d g d g g d d t | d g d g g d d t | | | |  \ } } t | d d g d d g g d d t | d d g d d d d
 g d d d g g d d d g f } t  |   \ } } } } t | d d g d d g g d d t | d g d g g d d t | d d
 g d d g g d d t | d g d g g d d t | | | |  \ } } t | d d d
 g d d d g g d d t | d d d g d d d  S(   Ni   i   iR)   gvIh%<=i    ii   i   iii   ighe99ii   i(   R
   R   R	   (   R6   Rq   R7   R8   Rl   Rm   Rr   Rs   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_simo_round_trip+  sZ    $%-%%+07%+1%*%%+c         C` s  t  j d d d d g d d d d g d d d d g d d d d	 g g  } t  j d
 g d g d g d g g  } t  j d d d d g d d d d g d d d d g g  } t  j d g d g d g g  } t | | | |  \ } } t | | | d | d  \ } } t | | | d | d  \ }	 }
 t | | | d | d  \ } } t | | d d t |
 | d d t | | d d t | t  j | |	 | f  d d d d d  S(   Ng      g        g      ?g       @g      g      @g       g       @g      @g333333?g      @i    i   i   R)   gvIh%<=R*   g+=(   R   RD   R	   R   t   vstack(   R6   R7   R8   Rl   Rm   t   b_allRk   t   b0t   a0t   b1t   a1t   b2t   a2(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_multioutputd  s,    ###(   Ra   Rb   Rh   Ri   Rp   Rt   Ru   R~   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyRc      s   					9t   TestLsimc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         G` s/   t      } | j t  t |   } Wd  QX| S(   N(   R   t   filterR   R   (   R6   t   argst   supt   system(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt
   lti_nowarn  s    c         C` s   |  j  d d d d  } t j d d  } t j |  } t | | | d d g \ } } } t j |  } t | |  t | |  d  S(   Ng      g      ?g        i    i   t   X0(   R   R   t   linspacet
   zeros_likeR   t   expR   (   R6   R   t   tt   ut   toutt   yt   xt
   expected_x(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_first_order  s    $c         C` sw   |  j  d d d d  } t j d d  } | } t | | |  \ } } } d | d } t | |  t | |  d  S(   Ng        g      ?i    i   g      ?i   (   R   R   R   R   R   (   R6   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_integrator  s    c         C` s   t  j d  } t  j d  } t  j d  } |  j | | | d  } t  j d d  } t  j |  } t | | |  \ } } }	 t  j t  j d | d | g   }
 | d } t |	 |
  t | |  d  S(	   Ns   0. 1.; 0. 0.s   0.; 1.s   2. 0.g        i    i   g      ?i   (	   R   t   matR   R   t	   ones_likeR   t	   transposeRD   R   (   R6   R7   R8   Rl   R   R   R   R   R   R   R   t
   expected_y(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_double_integrator  s    &
c         C` s   t  j d  } t  j d  } t  j d  } |  j | | | d  } t  j d d  } t  j |  } t | | | d d d g \ } } }	 | t  j |  }
 t | |
  d  S(	   Ns   -1. 1.; 0. -1.s   0.; 1.s   1. 0.g        i    i   R   g      ?(   R   R   R   R   R   R   R   R   (   R6   R7   R8   Rl   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_jordan_block  s    'c         C` sG  t  j d d g d d g g  } t  j d d g d d g g  } t  j d d g  } t  j d  } |  j | | | |  } t  j d d d	  } t  j |  } t | | | d
 d d g \ } }	 }
 t  j |  } t  j |  } t  j d |  } t |	 |  t |
 d  d   d f |  t |
 d  d   d f |  d  S(   Ng      g        g       g      ?i   i   i    g      @ie   R   (   i   i   (	   R   RD   Rd   R   R   R   R   R   R   (   R6   R7   R8   Rl   Rm   R   R   R   R   R   R   R   t   expected_x0t   expected_x1(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt	   test_miso  s    !!'c         C` s~   |  j  d d d d  } t j d d  } t j |  } t | | | d d g \ } } } t j |  } t | |  d  S(   Ng      g      ?g        i   i   R   (   R   R   R   R   R   R   R   (   R6   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_nonzero_initial_time  s    $(	   Ra   Rb   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   			
			t
   Test_lsim2c           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j d d d  } t  j |  } d g d d g f } t | | | d d g \ } } } t  j |  } t | d  d   d f |  d  S(   Ni    i
   i  g      ?R   (   R   R   R   R   R   R   (   R6   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_01  s    $c         C` s   t  j d d d d g  } t  j d d d d g  } d g d d g f } t | | | d d g \ } } } t  j d |  } t | d  d   d f |  d  S(   Ng        g      ?g      @R   i    (   R   RD   R   t   maximumR   (   R6   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_02  s    $c         C` s   t  j d d d d d d g  } t  j d d d d d d g  } d g d d g f } t | | | d d \ } } } t  j d d d d d d g  } t | d  d   d f |  d  S(	   Ng        g      ?g?g       @t   hmaxg{Gz?g?i    (   R   RD   R   R   (   R6   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_03  s    !!!!c         C` s   t  j d d d  } t  j |  } d g d d d g f } t | | | d d d g \ } } } d | t  j |  } t | d  d   d f |  d  S(   Ni    i
   i  g      ?g       @R   g        (   R   R   R   R   R   R   (   R6   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_04  s    'c         C` sK  t  j d d g d d g g  } t  j d d g d d g g  } t  j d d g  } t  j d  } t  j d d d	  } t   G } | j t  t | | | | f d
 | d d d g \ } } }	 Wd  QXt  j |  }
 t  j |  } t  j d |  } t	 | |
  t	 |	 d  d   d f |  t	 |	 d  d   d f |  d  S(   Ng      g        g       g      ?i   i   i    g      $@ie   t   TR   (   i   i   (
   R   RD   Rd   R   R   R   R   R   R   R   (   R6   R7   R8   Rl   Rm   R   R   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_05	  s    !!9c         C` sr   d g d d d g f } t  | d d d g \ } } } d | t j |  } t | d  d   d f |  d  S(   Ng      ?g       @R   g        i    (   R   R   R   R   (   R6   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_06   s    !(   Ra   Rb   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   	
						t   _TestImpulseFuncsc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` sK   d g d d g f } |  j  |  \ } } t j |  } t | |  d  S(   Ng      ?(   t   funcR   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   .  s    c         C` s   d g d d g f } d } t  j d d |  } |  j | d | \ } } t | j | f  t | |  t  j |  } t | |  d  S(   Ng      ?i   i    g       @R   (   R   R   R   R   R   R   R   (   R6   R   t   nR   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   6  s    c         C` sU   d g d d g f } |  j  | d d \ } } d t j |  } t | |  d  S(   Ng      ?R   g      @g      @(   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   D  s    c         C` sX   d g d d g f } |  j  | d d g \ } } d t j |  } t | |  d  S(   Ng      ?R   g      @g      @(   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   N  s    c         C` sJ   d g d d g f } |  j  |  \ } } t j |  } t | |  d  S(   Ng      ?g        (   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   X  s    c         C` sR   d g d d d g f } |  j  |  \ } } | t j |  } t | |  d  S(   Ng      ?g       @(   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   _  s    c         C` sm   d g d d d g f } |  j  | d d g d d d g \ } } |  j  | d d g d d g \ } } d  S(   Ng      ?g       @R   i   R   i   i   (   R   (   R6   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_array_likeh  s    *c         C` s=   d g d d d g f } |  j  | d d d d \ } } d  S(   Ng      ?g       @R   i   R   i   (   R   (   R6   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_array_like2o  s    (
   Ra   Rb   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   +  s   			
	
				t   TestImpulse2c           B` s   e  Z d    Z RS(   c         C` s   t  |  _ d  S(   N(   R   R   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   setup_methodu  s    (   Ra   Rb   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   t  s   t   TestImpulsec           B` s   e  Z d    Z RS(   c         C` s   t  |  _ d  S(   N(   R   R   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   z  s    (   Ra   Rb   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   y  s   t   _TestStepFuncsc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` sO   d g d d g f } |  j  |  \ } } d t j |  } t | |  d  S(   Ng      ?(   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` s   d g d d g f } d } t  j d d |  } |  j | d | \ } } t | j | f  t | |  d t  j |  } t | |  d  S(   Ng      ?i   i    g       @R   i   (   R   R   R   R   R   R   R   (   R6   R   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` sY   d g d d g f } |  j  | d d \ } } d d t j |  } t | |  d  S(   Ng      ?R   g      @i   g       @(   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` s\   d g d d g f } |  j  | d d g \ } } d d t j |  } t | |  d  S(   Ng      ?R   g      @i   g       @(   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` sA   d g d d g f } |  j  |  \ } } | } t | |  d  S(   Ng      ?g        (   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` sZ   d g d d d g f } |  j  |  \ } } d d | t j |  } t | |  d  S(   Ng      ?g       @i   (   R   R   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` s=   d g d d d g f } |  j  | d d d g \ } } d  S(   Ng      ?g       @R   i   i   (   R   (   R6   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    (	   Ra   Rb   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   ~  s   			
	
			t	   TestStep2c           B` s   e  Z d    Z d   Z RS(   c         C` s   t  |  _ d  S(   N(   R   R   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` sM   d g d d g f } |  j  | d d d d \ } } | } t | |  d  S(   Ng      ?g        R*   g|=R)   g:0yE>(   R   R   (   R6   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    !(   Ra   Rb   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   	t   TestStepc           B` s   e  Z d    Z d   Z RS(   c         C` s   t  |  _ d  S(   N(   R   R   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` s   t  g  d g d f  d  S(   Nii   y                y      ?        (   R   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_complex_input  s    (   Ra   Rb   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   	t   TestLtic           B` s   e  Z d    Z RS(   c         C` sW  t  d g d g  } t t | t   t t | t    t t | t   t | j d  k  t  t j g   t j d g  d  } t t | t	   t t | t    t t | t   t | j d  k  t  g  d g d  } t  d g d g d d  } t t | t
   t t | t    t t | t   t | j d  k  d  S(   Ni   ii   (   R   R   t
   isinstanceR   R   t   dtt   NoneR   RD   R   R   (   R6   t   s(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_lti_instantiation  s     '(   Ra   Rb   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   t   TestStateSpacec           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s   t  d d d d  } t  d g d g d g d g  } t  t j d d g d d g g  t j d g d g g  t j d d g g  t j d g g   } d  S(   Ni   i   i   i   i    (   R   R   RD   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_initialization  s    !9c         C` s   t  d d d d  } t t | j   t    t t | j   t   t t | j   t   t t  |  | k	  t | j   | k	  d  S(   Ni   i   i   i   (   R   R   R   t   to_sst   to_tfR   t   to_zpkR   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_conversion  s    c         C` sR   t  d d d d  } t | j d g  t | j d g  t | j d  k  d  S(   Ni   i    (   R   R   t   polesRd   R   R   R   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_properties  s    c   	      C` s  d t  f d     Y} t t j d d g d d g g  t j d g d g g  t j d d g g  t j d g g   } t t j d	 d
 g d d
 g g  t j d g d g g  t j d d g g  t j d g g   } | j d  } | j d  } t j d d d  } t j |  } d | d <x5t j t	 t
 t j t j t j f D]} t t | d  | d | d | d | d  t | d | d | d  t t | | d  d | d | d t | d | d | d | d   t t | | d  d | d | d t | d | d | d | d   t t   | d  | Wd  QXqTWt t | d d | d | d t | d d | d | d  t t | | d | d | d t | d t | d | d | d d | d d d t t   | | Wd  QXt t   | | Wd  QXt t   | | Wd  QXt t   | |   Wd  QXt t   |   | Wd  QXt t   | |   Wd  QXt t   |   | Wd  QXt t | d d | d | d d | t | d | d | d  t t   | t j d d g  Wd  QXt t   t j d d g  | Wd  QXt t   | | Wd  QXt t  ( | t j d d g d d g g  Wd  QXt t   | | Wd  QXt t   | |   Wd  QXt t   |   | Wd  QXt t | | d | d | d t | d | d | d t | d | d | d  t t | d d | d | d d | t | d | d | d  t t d | d | d | d d | t | d | d | d  t t | | d | d | d t | d | d | d t | d | d | d  t t   | |   Wd  QXt t   |   | Wd  QXd  S(   Nt   BadTypec           B` s   e  Z RS(    (   Ra   Rb   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   g      gffffff?g333333?gi   i    gɿgg?g?g?id   i   t   UR   R*   gh㈵>i   i   i(   t   objectR   R   RD   t   to_discreteR   R   t   sixt   integer_typest   floatt   complext   float32t
   complex128R   R   RU   t	   TypeErrorR%   (	   R6   R   t   s1t   s2t
   s_discretet   s2_discreteR   R   t   typ(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_operators  s    !!
&'&'&' ! 2 %) 7 % & 7(   Ra   Rb   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   			
t   TestTransferFunctionc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` sO   t  d d  } t  d g d g  } t  t j d g  t j d g   } d  S(   Ni   i   (   R   R   RD   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` s   t  d d g d d g  } t t | j   t   t t | j   t    t t | j   t   t t  |  | k	  t | j   | k	  d  S(   Ni   i    i(   R   R   R   R   R   R   R   R   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` sE   t  d d g d d g  } t | j d g  t | j d g  d  S(   Ni   i    i(   R   R   R   Rd   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    (   Ra   Rb   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   		t   TestZerosPolesGainc           B` s   e  Z d    Z d   Z RS(   c         C` sX   t  d d d  } t  d g d g d  } t  t j d g  t j d g  d  } d  S(   Ni   i   (   R   R   RD   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    c         C` s   t  d d d  } t t | j   t   t t | j   t   t t | j   t    t t  |  | k	  t | j   | k	  d  S(   Ni   i   i   (   R   R   R   R   R   R   R   R   (   R6   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    (   Ra   Rb   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   	t   Test_abcd_normalizec           B` s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` sy   t  j d d g d d g g  |  _ t  j d g d g g  |  _ t  j d d g g  |  _ t  j d g g  |  _ d  S(   Ng      ?g       @g      @g      @g      g      @g      @(   R   RD   R7   R8   Rl   Rm   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    $c         C` s   t  t t  d  S(   N(   RU   R%   R   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_no_matrix_fails  s    c         C` s,   t  t t d d g |  j |  j |  j  d  S(   Ni   i(   RU   R%   R   R8   Rl   Rm   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_A_nosquare_fails  s    c         C` s,   t  t t |  j d d g |  j |  j  d  S(   Nii   (   RU   R%   R   R7   Rl   Rm   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_AB_mismatch_fails  s    c         C` s2   t  t t |  j |  j d g d g g |  j  d  S(   Ng      @g      @(   RU   R%   R   R7   R8   Rm   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_AC_mismatch_fails  s    c         C` s,   t  t t |  j |  j |  j d d g  d  S(   Ng      @i    (   RU   R%   R   R7   R8   Rl   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_CD_mismatch_fails  s    c         C` s,   t  t t |  j d d g |  j |  j  d  S(   Nii   (   RU   R%   R   R7   Rl   Rm   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_BD_mismatch_fails  s    c         C` sq   t  |  j |  j |  j |  j  \ } } } } t | |  j  t | |  j  t | |  j  t | |  j  d  S(   N(   R   R7   R8   Rl   Rm   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt"   test_normalized_matrices_unchanged  s
    -c         C` s   t  |  j |  j d d g d  \ } } } } t | j d | j d  t | j d | j d  t | j d | j d  t | j d | j d  t | j d | j d  d  S(   Ni   i    (   R   R7   R8   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyRi     s    -c         C` s   t  j d  } t  j d  } t d |  j d | d |  \ } } } } t | |  j  t | |  t | |  t | j d | j d  t | j d |  j j d  d  S(	   Ni   i    R7   R8   Rm   i   (   i   i    (   i    i    (   R   Rd   R   R7   R   R   (   R6   t   B_t   D_R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt    test_zero_dimension_is_not_none1  s    *c         C` s   t  j d  } t  j d  } t d |  j d | d |  \ } } } } t | |  j  t | |  t | |  t | j d | j d  t | j d | j d  d  S(	   Ni   i    R7   R8   Rl   i   (   i   i    (   i    i   (   R   Rd   R   R7   R   R   (   R6   R   t   C_R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt    test_zero_dimension_is_not_none2  s    *c         C` s   t  d |  j d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  d  S(   NR8   Rl   Rm   i    i   (   R   R8   Rl   Rm   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_A  s    0c         C` s   t  d |  j d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  d  S(   NR7   Rl   Rm   i    i   (   R   R7   Rl   Rm   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_B  s    0c         C` s   t  d |  j d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  d  S(   NR7   R8   Rm   i    i   (   R   R7   R8   Rm   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_C  s    0c         C` s   t  d |  j d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  d  S(   NR7   R8   Rl   i    i   (   R   R7   R8   Rl   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_D  s    0c         C` s   t  d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  t | j |  j j d |  j j d f  d  S(   NRl   Rm   i    i   (   R   Rl   Rm   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_AB  s    '*c         C` s   t  d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  t | j |  j j d |  j j d f  d  S(   NR8   Rm   i    i   (   R   R8   Rm   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_AC  s    '*c         C` s   t  d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  t | j |  j j d |  j j d f  d  S(   NR8   Rl   i    i   (   R   R8   Rl   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_AD$  s    '*c         C` s   t  d |  j d |  j  \ } } } } t | j d | j d  t | j d | j d  t | j d | j d  t | j d | j d  t | j |  j j d |  j j d f  t | j |  j j d |  j j d f  d  S(   NR7   Rm   i    i   (   R   R7   Rm   R   R   (   R6   R7   R8   Rl   Rm   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_BC-  s    '*c         C` s   t  t t d |  j d  S(   NRm   (   RU   R%   R   Rm   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_ABC_fails6  s    c         C` s#   t  t t d |  j d |  j d  S(   NR7   Rl   (   RU   R%   R   R7   Rl   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_BD_fails9  s    c         C` s#   t  t t d |  j d |  j d  S(   NR7   R8   (   RU   R%   R   R7   R8   (   R6   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_missing_CD_fails<  s    (   Ra   Rb   R   R   R   R   R   R   R   R   Ri   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s,   										
	
													t	   Test_bodec           B` sY   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   c         C` sn   t  d g d d g  } d d d d g } t | d | \ } } } d d d d	 g } t | | d
 d d  S(   Ni   g?i
   id   R_   i    iiit   decimal(   R   R   R   (   R6   R   R_   t   magt   phaset   expected_mag(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   B  s
    c         C` sh   t  d g d d g  } d d d g } t | d | \ } } } d d d g } t | | d d d  S(	   Ni   g?i
   R_   gig33333UR   (   R   R   R   (   R6   R   R_   R   R   t   expected_phase(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   P  s
    c         C` s   t  d g d d g  } d d d d g } t | d | \ } } } | d } t j | j |  t j | j |  } d t j t |   } t | |  d  S(   Ni   g?i
   id   R_   y              ?g      4@(	   R   R   R   t   polyvalRr   Rs   t   log10t   absR   (   R6   R   R_   R   R   t   jwR   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   \  s    
(c         C` s   t  d g d d g  } d d d d g } t | d | \ } } } | d } t j | j |  t j | j |  } t j | j | j  d t j	 } t
 | |  d  S(   Ni   g?i
   id   R_   y              ?g     f@(   R   R   R   R   Rr   Rs   t   arctan2R"   R!   t   piR   (   R6   R   R_   R   R   R   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   g  s    
(#c         C` s_   t  d g d d g  } d } t j d d |  } t | d | \ } } } t | |  d  S(   Ni   i
   iR   (   R   R   t   logspaceR   R   (   R6   R   R   t
   expected_wR_   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   r  s
    c         C` sH   t  d g d d g  } t | d d \ } } } t | d d  d  S(   Ni   i    R   i   g{Gz?(   R   R   R   (   R6   R   R_   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   |  s    c         C` s:   t  d g d d d g  } t | d d \ } } } d  S(   Ni   i    id   R   i   (   R   R   (   R6   R   R_   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_07  s    c         C` sh   t  g  d d d d d g d  } | j d t j d d	 d
   \ } } } t t |  d d d d  S(   Niiiiii   R_   ii(   id   i>R   i   (   R   R   R   R   R   t   min(   R6   R   R_   R   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_08  s    !*c      	   C` s  t  j d d d d g  } t j |  j } t  j d g d g d g g  } t  j d d d g g  } t  j d g g  } t   D } | j t  t | | | |  } t	 | d d \ } }	 }
 Wd  QXd t  j
 t  j d d | d   } t |	 |  d  S(   Ng      ?g       @g        R   id   i   i   (   R   RD   R0   t	   companionR   R   R   R   R   R   R   t   sqrtR   (   R6   Rk   R7   R8   Rl   Rm   R   R   R_   R   R   t   expected_magnitude(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_from_state_space  s    !!((   Ra   Rb   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR   @  s   					
			t   Test_freqrespc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  d g d d g  } d d d g } t | d | \ } } d d d g } d d	 d g } t | j | d
 d t | j | d
 d d  S(   Ni   g?i
   R_   gGz?g      ?gׁsF?gMbXg      R   (   R   R   R   R!   R"   (   R6   R   R_   t   Ht   expected_ret   expected_im(    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_output_manual  s    c         C` s   t  d g d d g  } d d d d g } t | d | \ } } | d } t j | j |  t j | j |  } t | j | j  t | j | j  d  S(   Ni   g?i
   id   R_   y              ?(	   R   R   R   R   Rr   Rs   R   R!   R"   (   R6   R   R_   R   R   R<   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_output  s    
(c         C` s\   t  d g d d g  } d } t j d d |  } t | d | \ } } t | |  d  S(   Ni   i
   iR   (   R   R   R   R   R   (   R6   R   R   R   R_   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_freq_range  s
    c         C` sE   t  d g d d g  } t | d d \ } } t | d d  d  S(   Ni   i    R   i   g{Gz?(   R   R   R   (   R6   R   R_   R   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_pole_zero  s    c      	   C` s$  t  j d d d d g  } t j |  j } t  j d g d g d g g  } t  j d d d g g  } t  j d g g  } t   A } | j t  t | | | |  } t	 | d d \ } }	 Wd  QX| d }
 d d d |
 d |
 d |
 d } t
 |	 j | j  t
 |	 j | j  d  S(	   Ng      ?g       @g        R   id   y              ?i   i   (   R   RD   R0   R   R   R   R   R   R   R   R   R!   R"   (   R6   Rk   R7   R8   Rl   Rm   R   R   R_   R   R   R<   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s    !
&c         C` s   t  g  d g d d g  } d d d d g } t | d | \ } } | d } d | d d } t | j | j  t | j | j  d  S(	   Nii   i   g?i
   id   R_   y              ?(   R   R   R   R!   R"   (   R6   R   R_   R   R   R<   (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   test_from_zpk  s    
(   Ra   Rb   R  R  R  R  R   R  (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyR     s   			
		(    (=   t
   __future__R    R   R   RW   t   numpyR   t   numpy.testingR   R   R   R   t   pytestR   RU   t   scipy._lib._numpy_compatR   t   scipy.signalR	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   scipy.signal.filter_designR   t   scipy.linalgR0   t   scipy._lib.sixt   _libR   R.   R   R/   Rc   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/signal/tests/test_ltisys.pyt   <module>   s6   "pUKICd