
&]\c           @` s  d  d l  m Z m Z m Z d  d l Z d  d l m Z d  d l m Z d  d l	 Z	 d  d l
 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 d  d l m Z d  d l m Z m Z d  d l Z d  d	 l 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/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 d  d l: m; Z; d  d l< m= Z= e j> j? d k oe j> j@ d k rd  d lA mB ZB n d  d lC mB ZB d eD f d     YZE d eE f d     YZF d eD f d     YZG d eG f d     YZH d eD f d     YZI d eD f d     YZJ d eD f d     YZK d  eD f d!     YZL d" eD f d#     YZM d$ eD f d%     YZN d& eD f d'     YZO d( eO f d)     YZP d* eO f d+     YZQ d, eO f d-     YZR d. eO f d/     YZS d0 eO f d1     YZT d2 eO f d3     YZU d4 eO f d5     YZV d6 eO f d7     YZW d8   ZX d9   ZY e
 jZ j[ d: e j\ e j] e j^ e j_ e j` ea e jb e jb e jc e jd e je e g  d; eD f d<     Y Zf d= eD f d>     YZg e
 jZ j[ d: e jh e ji e jj g  d? eD f d@     Y Zk dA eD f dB     YZl dC eD f dD     YZm dE eD f dF     YZn dG en f dH     YZo dI   Zp eq dJ  Zr dK   Zs dL   Zt dM eD f dN     YZu dO eD f dP     YZv dQ eD f dR     YZw dS eD f dT     YZx dU eD f dV     YZy dW eD f dX     YZz dY eD f dZ     YZ{ d S([   i    (   t   divisiont   print_functiont   absolute_importN(   t   Decimal(   t   product(   t   raises(   t   assert_equalt   assert_almost_equalt   assert_array_equalt   assert_array_almost_equalt   assert_allcloset   assert_t   assert_warnst   assert_array_less(   t   suppress_warnings(   t   arrayt   arange(   t   correlate1d(   t   fmin(   t   signal(   t	   correlatet   convolvet
   convolve2dt   fftconvolvet   choose_conv_methodt   hilbertt   hilbert2t   lfiltert
   lfilter_zit   filtfiltt   buttert   zpk2tft   zpk2sost   invrest   invreszt   vectorstrengtht   lfiltict   tf2sost   sosfiltt   sosfiltfiltt
   sosfilt_zit   tf2zpkt   BadCoefficients(   t   hann(   t   _filtfilt_gusti   i   (   t   gcdt   _TestConvolvec           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` se   d d d d d d g } d d d g } t  | |  } t | t d d d d	 d
 d
 d d g   d  S(   Ni   i   i   i   i   i   i
   i   i   i    i   i   (   R   R   R   (   t   selft   at   bt   c(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt
   test_basic(   s    c         C` sV   d d d g } d d d d g } t  | | d d } t | t d d	 d
 g   d  S(   Ni   i   i   i   i   t   modet   samei
   i   i"   (   R   R   R   (   R/   R0   R1   R2   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt	   test_same.   s    c         C` sS   d d d g } d d d g } t  | | d d } t | t d d	 d	 g   d  S(
   Ni   i   i   i   i   R4   R5   i
   i   (   R   R   R   (   R/   R0   R1   R2   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_same_eq4   s    c         C` sY   t  d
 d d g  } t  d d g  } t | |  } t | t  d d d d g   d  S(   Ni   y              ?i   i   y               @y              @i   y               @y              @y      ?      ?y       @      ?y      @      ?y      ?      ?y       @      ?y       @      @y      @       @y      @      @(   R   R   R   (   R/   t   xt   yt   z(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_complex:   s    c         C` s0   d } d } t  | |  } t | | |  d  S(   Ni	  i  (   R   R   (   R/   R0   R1   R2   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_zero_rank@   s    c         C` sB   t  d g  } t  d g  } t | |  } t | | |  d  S(   Nig  iP  (   R   R   R   (   R/   R0   R1   R2   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_single_elementF   s    c         C` s   d d d g d d d g g } d d d g d d d g g } t  | |  } t d d d d	 d
 g d d d d d g d
 d d d d g g  } t | |  d  S(   Ni   i   i   i   i   i   i   i   i   i   i
   i   i>   i:   i&   i   i1   (   R   R   R   (   R/   R0   R1   R2   t   d(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_2d_arraysL   s    c         C` s  t  d  j d d d  } d t  d  j d d d  } | t  d  d  d  d  j d d d  7} t dy dz d{ d| g d} d~ d d g d d d d g d d d d g g d d d d g d d d d g d d d d g d d d d g g d d d d g d d d d g d d d d g d d d d g g d d d d g d d d d g d d d d g d d d d g g g  } t t | | du  |  t t | | du  |  t t | | dv  | dw d  dw d  dw d  f  t t | | dv  | d d  d d  d d  f  t t | | dx  | dw d  dw d  dw d  f  t t | | dx  | dw d  dw d  dw d  f  d  S(   Ni   i   y              ?i   i   ii    y                i   i   i   y               @i4   i   y              @i   y              &@i]   i.   y              @i   y              7@i   y              =@iQ   i(   y              (@ib   y              @@y             B@i6   y              8@ih   i   y              *@i   i   y              5@i  y              >@ix  y              X@i\  y              _@iJ  y             U@i   y             P@i$  y             f@i  y              j@y             `@i   i3  y              d@i!  y             `f@i   y             Z@iD   y              B@i   y             Y@i   y             @\@y             R@i   y             @a@i|  y             u@i`  y             w@i   y             l@i   y             e@i(  y              {@i  y             |@y             `q@iF   y             0t@y             Pu@i?   y             h@i    y              R@y             d@i;   y             e@i   y              Y@y              h@i   y             {@iu   y             p|@i9   y             o@i&   y             k@iI   y             0@i3   y             H@i   y             0r@i   y              b@i   y             s@i   y             t@y             f@t   fullR5   i   t   validy                y      :@        y      9@      ?y      8@       @y      J@        y     b@      @y      b@      &@y     @W@      &@y      G@      @y     `@      7@y     _@      =@y     @T@      7@y      D@      (@y     X@      @@y     @W@     B@y      K@      8@y      Z@        y     n@      *@y     m@      7@y     `@      5@y     q@      >@y     @      X@y     @      _@y     t@     U@y     n@     P@y      @     f@y     @@      j@y     q@     `@y     a@     P@y     0s@      d@y     r@     `f@y      c@     Z@y      Q@      B@y     c@     Y@y     `b@     @\@y     @T@     R@y     e@     @a@y     w@     u@y      v@     w@y     @g@     l@y     @a@     e@y     r@      {@y     p@     |@y     @a@     `q@y     Q@     @a@y      b@     0t@y     _@     Pu@y     O@     h@y      @@      R@y      Q@     d@y     M@     e@y      >@      Y@y      Q@      h@y     `a@     {@y     @]@     p|@y     L@     o@y      C@     k@y     @R@     0@y     I@     H@y      5@     0r@y      (@      b@y      4@     s@y      @     t@y             f@(   R   t   reshapeR   R   R   (   R/   t   smallt   bigt	   out_array(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_input_swappingU   s<    ,&&&c      	   C` s   d d d g } d d d g } t  t t | | d d t  t t | | d d d	 d
 t  t t | | d d d	 d t  t t | | d d d	 d t  t t | | d d d	 d d  S(   Ni   i   i   i   i   R4   t   spamt   eggst   methodt   fftt   hamt   directR@   t   baconR5   (   t   assert_raisest
   ValueErrorR   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invalid_paramsz   s    (   t   __name__t
   __module__R3   R6   R7   R;   R<   R=   R?   RF   RP   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR.   &   s   									%t   TestConvolvec           B` sA   e  Z d    Z d   Z d   Z d d  Z d   Z d   Z RS(   c      	   C` s   d d d d d d g } d d d d d d d d d g	 } d d d	 d
 g } t  | | d  } t | |  t  | | d  } t | |  d d d g } d d g } d d g } t  | | d  } t | |  t  | | d  } t | |  d  S(   Ni   i   i   i   i   i   iF   iN   iI   iA   RA   y              @y              ?y                y              @i   y              $@y      ?      @y       @      y      @        y       @      y      ?        y       @      y       @      $(   R   R   (   R/   R0   R1   t   expectedt   out(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_valid_mode2   s    !c         C` s   d d d d d d g } d d d d d d d d d d d d d g } t  | | d  } t d	 d
 d d	 d d g  } t | |  d  S(   Ni   i   i   i   i   i   i   R5   i9   i=   i?   i-   i$   (   R   R   R   (   R/   R0   R1   R2   R>   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_same_mode   s
    -c         C` sz   t  j d d  j d	  } t  j d d  j d
  } t t t | | f i d d 6 t t t | | f i d d 6 d  S(   Ni   i   i   i   ii    RA   R4   (   i   i   (   i   i   (   t   npR   RB   RN   RO   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invalid_shapes   s     id   c      
   ` s  t  g  t j j   D] \ } } | ^ q g   } d   | D } xH d d d d d d d d	 d
 d g
 D]" } | | k rf | j |  qf qf Wg  | D]8 } | D]+ } d d d g D]   | |   f ^ q q q } t j j d  i t j j d d g d | d 6t j j |  d 6}	 |	 d |	 d <|	 d <|	 d d |	 d |	 d <xc| D][\ } }   |	 t j	 |  j
 j |   |	 t j	 |  j
 j |       f d   d d g D }
 t |
 d j	 |
 d j	  d | k rd | k rt t    d  qPn  t g  | | g D] } | d d h k ^ q rVi d d  6d! d" 6} n= d# | | g k ri d$ d  6d% d" 6} n i d& d  6d% d" 6} t |
 d |
 d |  qPWd  S('   Nc         S` s"   h  |  ] } t  j |  j  q S(    (   RX   t   dtypet   name(   t   .0t   t(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pys	   <setcomp>   s   	 t
   complex256t
   complex192t   float128t   float96t   strt   voidt   bytest   objectt   unicodet   stringRA   R@   R5   i*   i    i   t   sizet   it   fR1   t   uy              ?R2   c      	   ` s.   i  |  ]$ } t    d  | d   |  q S(   RI   R4   (   R   (   R\   t   key(   R4   t   x1t   x2(    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pys
   <dictcomp>   s   	RJ   RL   t   boolt	   complex64t   float32g-C6?t   rtolgư>t   atolt   float16gMbP?g:0yE>gh㈵>(   t   sumRX   t   sctypest   itemst   removet   randomt   seedt   choicet   randnRZ   t   kindt   astypeR   R   t   anyR
   (   R/   t   nt   _R]   t   typesRZ   t   t1t   t2t   argst   array_typest   resultst   kwargs(    (   R4   Rm   Rn   sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_convolve_method   s8    1."1c      	   C` s   x d d d d d d d d d	 g	 D] } t  j d
 | g d t  j } t | | d d } t | | d d } | d k  r" t | |  t | d
 d
 |  t | d
 d
 |  q" q" Wd  S(   Ni
   i   i2   i3   i4   i5   i6   i<   i>   i   RZ   RI   RJ   RL   (   RX   R   t   int64R   R   (   R/   R   R:   RJ   RL   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt    test_convolve_method_large_input   s    (c         C` s   t  t t d g d d d t  t t d d g d d t  t t d g d d d t  t t d d g d d t  t t d g d g g  t  t t d g d  d  S(   Ni   i   RI   RL   RJ   i   (   RN   RO   R   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_mismatched_dims   s    (   RQ   RR   RV   RW   RY   R   R   R   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRS      s   			0	t   _TestConvolve2dc           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` s   d d d g d d d g g } d d d g d d d g g } t  d d d d	 d
 g d d d d d g d
 d d d d g g  } t | |  } t | |  d  S(   Ni   i   i   i   i   i   i   i   i   i   i
   i   i>   i:   i&   i   i1   (   R   R   R   (   R/   R0   R1   R>   t   e(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR?      s    c         C` s   d d d d d d d g d d d d d d d	 g g } d
 d d g d d d g g } t  d d d d d g g  } t | | d  } t | |  t | | d  } t | |  d  S(   Ni   i   i   i   i   i   i   i	   i
   i   i>   iP   ib   it   i   RA   (   R   R   R   (   R/   R   Rj   t   ht   g(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_valid_mode  s    6c         C` s   d d d d d d d g d d d d d d d	 g g } t  j d
 d d g d d d g g d t d } t d d d d d g g  } t | | d  } t | |  t | | d  } t | |  d  S(   Ni   i   i   i   i   i   i   i	   i
   i   RZ   y              ?g      O@y              8@g      T@y              >@g     X@y              B@g      ]@y              E@g     `@y              H@RA   y      O@      8@y      T@      >@y     X@      B@y      ]@      E@y     `@      H@(   RX   R   t   complexR   R	   R   (   R/   R   Rj   R   R   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_valid_mode_complx  s    61c         C` s   d d d g d d d g g } d d d g d d d g g } d } t  | | d d |  } t d	 d
 d d d g d d d d d g d d d d d g g  } t | |  d  S(   Ni   i   i   i   i   i   R@   t   filli   i   i   i"   i    i   i(   i>   i@   i4   i.   iC   i0   (   R   R   R   (   R/   R0   R1   t   fillvalR2   R>   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_fillvalue  s    c         C` sR  t     } | j t j d  | j t d  } t d g g d d g g d d t t |  d k  t	 j
 d d d d	 t t t t d g g d d g g d d Wd  QXt     t	 j
 d
 d d d	 t t t t d g g d d g g d d d g t	 j
 d d d d	 t t t t d g g d d g g d d d g Wd  QXd  S(   Ns   Casting complex values to reals   could not cast `fillvalue`i   i   t	   fillvaluey              ?t   errort   messaget   categoryt   alwayss'   `fillvalue` must be scalar or an array (   R   t   filterRX   t   ComplexWarningt   recordt   DeprecationWarningR   R   t   lent   warningst   filterwarningsRN   R   (   R/   t   supt   r(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_fillvalue_deprecations%  s*    "!
!!c         C` s,   t  t t d g g d d g g d g  d  S(   Ni   i   R   (   RN   RO   R   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_fillvalue_empty>  s    !c         C` s   d d d g d d d g g } d d d g d d d g g } t  | | d d  } t d	 d	 d
 d	 d	 g d d d d d g d	 d	 d
 d	 d	 g g  } t | |  d  S(   Ni   i   i   i   i   i   R@   t   wrapiP   iJ   iD   i>   (   R   R   R   (   R/   R0   R1   R2   R>   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_wrap_boundaryC  s    c         C` s   d d d g d d d g g } d d d g d d d g g } t  | | d d  } t d	 d
 d d d g d d d d d g d d d d d g g  } t | |  d  S(   Ni   i   i   i   i   i   R@   t   symmi"   i   i,   i>   iB   i4   i0   iP   iT   iR   iN   i\   in   ir   (   R   R   R   (   R/   R0   R1   R2   R>   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_sym_boundaryL  s    c         C` sz   t  j d d  j d	  } t  j d d  j d
  } t t t | | f i d d 6 t t t | | f i d d 6 d  S(   Ni   i   i   i   ii    RA   R4   (   i   i   (   i   i   (   RX   R   RB   RN   RO   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRY   U  s     (   RQ   RR   R?   R   R   R   R   R   R   R   RY   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR      s   					
						t   TestConvolve2dc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s   d d d g d d d g g } d d d d d d d g d d d d d d	 d
 g g } t  | | d  } t d d d g d d d g g  } t | |  d  S(   Ni   i   i   i   i   i   i   i   i	   i
   R5   i   i   i"   iP   ib   it   (   R   R   R   (   R/   R   Rj   R   R   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRW   d  s    6c         C` s1  d d d g d d d g g } d d d d d d d g d d d d d d	 d
 g g } d d d d d g g } t  | | d  } t | |  t  | | d  } t | |  d d g d d g g } d d d g d d d  g g } d! d" g g } t  | | d  } t | |  t  | | d  } t | |  d  S(#   Ni   i   i   i   i   i   i   i   i	   i
   i>   iP   ib   it   i   RA   y              ?y              @y                y               @i   g      G@y      ?      ?y       @      y      @      ?y      @        y       @      y      @       @y      @        y      @        y      @      ?y      @      y      ;@      y      G@       @(   R   R   (   R/   R   Rj   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRV   l  s    6c         C` s   t  j d  } t  j d d d g  } x d d d g D]w } t t  j | | d | t j | | d |  t t  j t j | g | g d |  t j | | d |  q7 Wd  S(	   Ni   g	@gffffff?i   R@   RA   R5   R4   (   RX   R   R   R   R   R   t   squeezeR   (   R/   R0   R1   R4   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_consistency_convolve_funcs  s    	c         C` sU   t  t t d d  t  t t d g d g  t  t t d g g g d g g g  d  S(   Ni   i   (   RN   RO   R   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invalid_dims  s    (   RQ   RR   RW   RV   R   R   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR   b  s   			t   TestFFTConvolvec           B` s\  e  Z e j j d  d d, d d g d d g g  d    Z e j j d  d d g d d g g  d    Z e j j d  d d, d d g d d g g  d    Z e j j d  d d g d d g g  d    Z	 e j j d  d d, d d g d d g d d g d d g d	 d g d d	 g d	 d g d d	 g g
  d
    Z
 e j j d  d d g d d g d d g d d g d	 d g d d	 g d	 d g d d	 g g  d    Z e j j d  d d, d d g d d g d d g d d g d	 d g d d	 g d	 d g d d	 g g
  d    Z e j j d  d d g d d g d d g d d g d	 d g d d	 g d	 d g d d	 g g  d    Z e j j d  d d, d d g d d g g  d    Z e j j d  d d d g d g g  d    Z e j j d  d d, d d g d d g g  d    Z e j j d  d d g g  d    Z e j j d  d d, d d g d d g g  d    Z e j j d  d d g d d g g  d    Z d   Z d   Z d   Z e j j d  d d, d d g d d g g  d    Z e j j d  d d g d d g g  d    Z e j j d  d d g d d g d d g d d g d d g d d g d d g d d g g  d    Z e j j e j j d e e d d   e e d d    e j j d!  j  d" d# d$  j!    d%     Z" d&   Z# d'   Z$ e j j d( d g d f d d g f d) g d g g f g  d*    Z% d+   Z& RS(-   t   axest    i    ic         C` st   t  d d d g  } t  d d d d d g  } | d k rN t | |  } n t | | d	 | } t | |  d  S(
   Ni   i   i   i   i
   i   g      "@R   R   (   R   R   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt	   test_real  s    i   c         C` s   t  d d d g  } t  d d d d d g  } t j | d d g  } t j | d d g  } t | | d | } t | |  d  S(	   Ni   i   i   i   i
   i   g      "@R   (   R   RX   t   tileR   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_real_axes  s    c         C` st   t  d d d g  } t  d d d d d g  } | d k rN t | |  } n t | | d | } t | |  d  S(   Ni   y              ?i   y               @i   y              @i    y               @y              4@y              8@y              2@R   R   y      ?      ?y       @       @y      @      @y               @y               @y              4@y              8@y              2@(   R   R   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR;     s    c         C` s   t  d d d g  } t  d d d d d g  } t j | d d g  } t j | d d g  } t | | d | } t | |  d  S(   Ni   y              ?i   y               @i   y              @i    y               @y              4@y              8@y              2@R   y      ?      ?y       @       @y      @      @y               @y               @y              4@y              8@y              2@(   R   RX   R   R   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_complex_axes  s    ic         C` s   t  d d d g d d d g g  } t  d d d d d	 g d
 d d d d g d d d d d g g  } | d k r t | |  } n t | | d | } t | |  d  S(   Ni   i   i   i   i   i   i
   i   i	   i   i   i8   i6   i$   i   i(   iI   i<   R   R   (   R   R   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_2d_real_same  s    i   c         C` s   t  d d d g d d d g g  } t  d d d d d	 g d
 d d d d g d d d d d g g  } t j | d d d g  } t j | d d d g  } t | | d | } t | |  d  S(   Ni   i   i   i   i   i   i
   i   i	   i   i   i8   i6   i$   i   i(   iI   i<   R   (   R   RX   R   R   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_2d_real_same_axes  s    	c      	   C` s   t  d! d" d# g d$ d% d& g g  } t  d' d( d) d* d+ g d d d d d g d, d- d. d/ d0 g g  } | d k r t | |  } n t | | d  | } t | |  d  S(1   Ni   y               @i   y              @i   y              @i   y              ?i   y              @i   y              @iiy              4@iy              L@iy              S@iy              N@y              $@y              F@y             ]@y             c@y             ^@i
   i   i   i   R   R   y      ?       @y      @      @y      @      @y       @      ?y      @      @y      @      @y            @y      $      4@y      5      L@y      2      S@y      &      N@y      @      @y      $@      4@y      5@      L@y      2@      S@y      &@      N@(   R   R   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_2d_complex_same  s    c      	   C` s   t  d  d! d" g d# d$ d% g g  } t  d& d' d( d) d* g d d d d d g d+ d, d- d. d/ g g  } t j | d d d g  } t j | d d d g  } t | | d | } t | |  d  S(0   Ni   y               @i   y              @i   y              @i   y              ?i   y              @i   y              @iiy              4@iy              L@iy              S@iy              N@y              $@y              F@y             ]@y             c@y             ^@i
   i   i   i   R   y      ?       @y      @      @y      @      @y       @      ?y      @      @y      @      @y            @y      $      4@y      5      L@y      2      S@y      &      N@y      @      @y      $@      4@y      5@      L@y      2@      S@y      &@      N@(   R   RX   R   R   R	   (   R/   R   R0   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_2d_complex_same_axes	  s    	c      
   C` s  t  d d d g  } t  d d d d d d d d	 d g	  } t  d
 d d g  } t  d d d d
 d d d d d g	  } | d k r t | | d  } n t | | d d | } t | |  | d k r t | | d  } n t | | d d | } t | |  d  S(   Ni   i   i   i   i   i   i   i	   i    g     A@g     D@g     G@g      "@g      4@g      9@g     C@g      <@g       @R   R5   R   (   R   R   R	   (   R/   R   R0   R1   t
   expected_1t
   expected_2RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_real_same_mode   s    ''c      
   C` s&  t  d d d g  } t  d d d d d d d d	 d g	  } t  d
 d d g  } t  d d d d
 d d d d d g	  } t j | d d g  } t j | d d g  } t j | d d g  } t j | d d g  } t | | d d | } t | |  t | | d d | } t | |  d  S(   Ni   i   i   i   i   i   i   i	   i    g     A@g     D@g     G@g      "@g      4@g      9@g     C@g      <@g       @R5   R   (   R   RX   R   R   R	   (   R/   R   R0   R1   R   R   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_real_same_mode_axes3  s    ''c      
   C` s   t  d d d g  } t  d d d d d d d d	 d g	  } t  d
 d d d d d d g  } | d k r~ t | | d  } n t | | d d | } t | |  | d k r t | | d  } n t | | d d | } t | |  d  S(   Ni   i   i   i   i   i   i   i	   i    g      8@g      ?@g     D@g     E@g     H@g      9@g      (@R   RA   R   (   R   R   R	   (   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_valid_mode_realE  s    '!c      
   C` s   t  d d d g  } t  d d d d d d d d	 d g	  } t  d
 d d d d d d g  } t j | d d g  } t j | d d g  } t j | d d g  } t | | d d | } t | |  d  S(   Ni   i   i   i   i   i   i   i	   i    g      8@g      ?@g     D@g     E@g     H@g      9@g      (@RA   R   (   R   RX   R   R   R	   (   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_valid_mode_real_axesX  s    '!c         C` s   t  d d d g  } t  d d d d d g  } t  d d d g  } | d k rf t | | d  } n t | | d d | } t | |  | d k r t | | d  } n t | | d d | } t | |  d  S(    Ni   y              ?i   y              @i   y                y               @y              @i   i   i   g     F@y              (@g      >@y              7@i0   y              @@R   RA   R   y      @      y       @      @y      ?        y      @       @y      @      y      @        y      @      y       @        y     F@      (@y      >@      7@y      H@      @@(   R   R   R	   (   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_valid_mode_complexf  s    c         C` s   t  d d d g  } t  d d d d d g  } t  d d d g  } t j | d d g  } t j | d d g  } t j | d d g  } t | | d d | } t | |  t | | d d | } t | |  d  S(   Ni   y              ?i   y              @i   y                y               @y              @i   i   i   g     F@y              (@g      >@y              7@i0   y              @@RA   R   y      @      y       @      @y      ?        y      @       @y      @      y      @        y      @      y       @        y     F@      (@y      >@      7@y      H@      @@(   R   RX   R   R   R	   (   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_valid_mode_complex_axesx  s    c         C` sa   t  t g  g   j d k  t  t d d g g   j d k  t  t g  d g  j d k  d  S(   Ni    i   i   i   (   R   R   Rh   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt
   test_empty  s    "c         C` s<   t  d  } t  d  } t | |  } t | | |  d  S(   Nig  iP  (   R   R   R   (   R/   R0   R1   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR<     s    c         C` sB   t  d g  } t  d g  } t | |  } t | | |  d  S(   Nig  iP  (   R   R   R   (   R/   R0   R1   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR=     s    c         C` s   t  j j d  t  j j d  d t  j j d  } t  j j d  d t  j j d  } t  j | | d  } | d k r t | | d  } n t | | d d | } t t  j | | d d	  d  S(
   Ni  i  y              ?i)  R@   R   R   Rr   g|=(   RX   Ry   Rz   t   randR   R   R   t   allclose(   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_random_data  s    &&c         C` s   t  j j d  t  j j d  d t  j j d  } t  j j d  d t  j j d  } t  j | | d  } t  j | d d g  } t  j | d d g  } t  j | d d g  } t | | d d | } t t  j | | d	 d
  d  S(   Ni  i  y              ?i)  R@   i   i   R   Rr   g|=(	   RX   Ry   Rz   R   R   R   R   R   R   (   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_random_data_axes  s    &&i   ic         C` s  t  j j d  t  j j d d  d t  j j d d  } t  j j d d  d t  j j d d  } t | | d  } | d  d   d  d   d  d  d  f } | d  d   d  d   d  d  d  f } | d  d   d  d   d  d  d  f } t  j | j d d	  d
 d  } t  j | j d d	  d
 d  } t  j | j d d	  d
 d  } t  j | d	 d
 d d
 d
 g  } t  j | d	 d
 d
 d d
 g  } t  j | d	 d
 d d d
 g  } t	 | | d d | } t
 t  j | | d d  d  S(   Ni  i{   i   y              ?i   io   R@   i    i   i   i   i   i   R   Rr   g|=(   RX   Ry   Rz   R   R   t   Nonet   rollaxist   swapaxesR   R   R   R   (   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_random_data_multidim_axes  s    	,,%%%!!!!!!R   id   i  i  i  i  i'  i   c         C` s   t  j j |  d t  j j |  } t  j j |  d t  j j |  } t  j | | d  } t | | d  } t | | d d t | | d d d g } t | | d d d  S(   Ny              ?R@   Rs   g|=R   i    (   RX   Ry   R   R   R   R
   (   R/   R   R0   R1   RT   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_many_sizes  s    &&c      	   C` sf   t  j d d  j d  } t  j d d  j d  } t t d d  t | | d	 d
 Wd  QXd  S(   Ni   i   i   i   ii    t   matchsO   For 'valid' mode, one must be at least as large as the other in every dimensionR4   RA   (   i   i   (   i   i   (   RX   R   RB   RN   RO   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRY     s
    	
c      
   C` sl   t  j d d d d g  } t  j d d d d g  } t t d d  t | | d d	 d g Wd  QXd  S(
   Ni   i   i   i   i   R   sV   incompatible shapes for in1 and in2: \(5L?, 6L?, 2L?, 1L?\) and \(5L?, 6L?, 3L?, 1L?\)R   i    (   RX   t   zerosRN   RO   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invalid_shapes_axes  s
    	
s   a,bi   c         C` s*   t  t d d  t | |  Wd  QXd  S(   NR   s/   in1 and in2 should have the same dimensionality(   RN   RO   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR     s    	
c         C` s  t  t d d  t d g d g d d Wd  QXt  t d d  t d g d g d g  Wd  QXt  t d d	 0 t d g d g d d d g d
 d g g Wd  QXt  t d d * t d g d g d d d d d g Wd  QXt  t d d ! t d g d g d d g Wd  QXt  t d d ! t d g d g d d g Wd  QXt  t d d $ t d g d g d d d g Wd  QXd  S(   NR   s4   acceptable mode flags are 'valid', 'same', or 'full'i   i   R4   t   chipss#   when provided, axes cannot be emptyR   s2   when given, axes values must be a scalar or vectori   i   s(   when given, axes values must be integersg      ?g       @g      @g      @s$   axes exceeds dimensionality of inputis   all axes must be uniquei    (   RN   RO   R   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invalid_flags  s*    	
	
	
1	
+	
"	
"	
N('   RQ   RR   t   pytestt   markt   parametrizeR   R   R   R;   R   R   R   R   R   R   R   R   R   R   R   R   R<   R=   R   R   R   t   slowt   listt   rangeRX   Ry   t   RandomStatet   randintt   tolistR   RY   R   R   R   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR     s   6060																										606'60			60								%7			$t   TestMedFiltc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s  d d d d d d d d d d g
 d d d d d d d d	 d
 d g
 d d d d d d d d d d	 g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d
 d d	 d d d d g
 d d d d d
 d  d d
 d! d" g
 d# d$ d d% d& d d' d( d) d* g
 d+ d, d d d- d d! d. d d/ g
 d  d d0 d+ d1 d2 d d d3 d g
 g
 } t  j | d+ d# g  } t  j t j | t  d+ d# g  } t | d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d( d d g
 d$ d d d d d d d. d( d/ g
 d  d d d d d d d3 d( d/ g
 d+ d d d d d d d. d3 d g
 d d  d$ d1 d  d  d. d. d. d g
 d d+ d, d+ d2 d2 d d d! d g
 g
  t | |  d  S(4   Ni2   i\   i   i   iA   i.   i    iH   iM   iD   iB   i/   i   i@   i*   i   i   i_   i#   i"   i	   i   iF   ia   i   iN   i=   i:   iG   i5   i,   i    i   iT   i   i!   iC   i   iJ   i7   i   iS   i   i   i<   i+   i   iX   i'   i   i-   (   R   t   medfiltt	   medfilt2dRX   R   t   floatR   (   R/   Rj   R>   R   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3   !  s.    !!!!!!!!!'$'!!!!!!!!(c         C` s[   t  j d   t j d d t j } | d d !} d | _ t t  j | d  d k  d  S(   Ni
   RZ   i   i   i   i   g      @(   R   R   R   RX   R   t   float64t   stridesR   (   R/   t   dummyR0   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt	   test_none;  s
    	c         C` s   t  d  } t j | | g d t } t t d  rL d t j |  } n d } x! t |  D] } t j	 |  q_ Wt t d  r t
 t j |  | k   n  t | | | g  d  S(   Ni{   RZ   t   getrefcounti   i
   (   R   RX   R   Re   t   hasattrt   sysR   R   R   R   R   R   (   R/   R0   R8   R   t   j(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_refcountingF  s    (   RQ   RR   R3   R   R   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR     s   		t
   TestWienerc           B` s   e  Z d    Z RS(   c         C` s   t  d d d d g d d d d g d d d d g d d d d g g d	  } t  d
 d d d g d d d d g d d d d g d d d d g g  } t t j |  | d d t t j | d d | d d d  S(   Ni   i   i   i   i   i   i	   i   R>   gSXO@gXq	@gq@g?g]`UUU@gFUUUU@gq@gcq@gyq@gXq@gXq@gUJ4@gUUUU?g2k6k@gҷWH@g@_)@t   decimalt   mysize(   R   R	   R   t   wiener(   R/   R   R   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3   X  s    (   RQ   RR   R3   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR   V  s   t   TestResamplec           B` s\   e  Z d    Z d   Z d   Z d   Z d   Z d   Z e d  Z	 d   Z
 d   Z RS(	   c         C` s   t  j d  } d } t j d d  } t t t j | | d | t t t j | d d  t t t j | d d	  t  j t  j d  d  } t j | | d d d | t	 | j
 d k  d  S(   Ni   i   t   kaiserg       @i   t   windowt   yoi   i    i   t   axisi(   R   g       @(   i   i   (   i   (   RX   R   R   t
   get_windowRN   RO   t   resamplet   resample_polyR   R   t   shape(   R/   t   sigt   numt   wint   sig2(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3   g  s    c         C` s   |  j  d d  d  S(   NRI   RJ   (   t
   _test_data(   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_fftz  s    c         C` s   |  j  d d  d  S(   NRI   t	   polyphase(   R   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_polyphase~  s    c         C` s   |  j  d d d t  d  S(   NRI   R   t   ext(   R   t   True(   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_polyphase_extfilter  s    c         C` s`   t  j d  } t  j j d  j d  } | j   } t j | d d d | t | |  d  S(   Ni   i    i   i   i   R   (	   RX   R   Ry   R   R|   t   copyR   R   R   (   R/   t   impulseR   t   window_orig(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_mutable_window  s
    c         C` sn   t  j d d t  j } t  j d d d g d t  j } t j | d d d | } t | j t  j k  d  S(   Ni
   RZ   i   i   R   (   RX   R   Rq   R   R   R   R   RZ   (   R/   R8   R   R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_output_float32  s    !c      	   C` s  d } d d d d d d d d d	 g	 } t  j |  t |  } t  j d   d  d   t  j f } t  j d t  j | |  t |  } x| D]} t  j |  t |  }	 t  j d t  j | |	  t |  }
 | d k r t j	 | | d d } n | r| | k rt
 | |  } | | } | | } t | |  } d
 | } d | } t j d | d | d d! } i | d 6} n i  } t j | | | d d | } x t |
 | |  D] \ } } } | d | k r | j d  t | | d d qt | j | j  t  j | |  d" } t | d k d | | | f qWq Wt  j j d  } t |  t  j | j |   } x | D] } t  j |  t |  }	 t  j |	 | |  } | d k rt j	 | |  } n t j | | |  } t | j | j  t  j | |  d# } t | d k d | qW| d k rt  j d$ d% g  } t j	 | d  } t  j d& d' d( d) g  } t | | d d t  j d
 d d d g  } t j	 | d  } t  j d
 d g  } t | | d d n  d  S(*   Nid   i1   i2   i3   ic   ie   i   i   i   g      ?g      $@g      D@i   RJ   R   ii
   i   R   R   g      @g      ?g        Rs   gMbP?i    gGz?t   msgy                i   g-q=(   g      ?g      $@g      D@(   R   g      @(   i    i   (   i    i   y      ?        y                y      ?        y      ?        y                y      ?        (   RX   R   R   R   t   newaxist   sint   piR+   R   R   R-   t   maxt   firwinR   t   zipR   R
   R   R   t   corrcoefR   Ry   R   t   cumsumR|   t   interp(   R/   RI   R   t   ratet   rates_toR]   t   freqsR8   t   rate_tot   t_tot   y_tost	   y_resampsR   t   upt   downt   max_ratet   f_ct   half_lenR   t   polyargst   y_tot   y_resampt   freqt   corrt   rngRm   t   y1_testt   y1_trueRn   t   y2_testt   y2_true(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR     sd    !"((



		"'"c      	   C` sW  t  j j d  } t t  j t  j t t f } d } d d d g } x| D]} | j |  j	 |  } | t  j t  j
 f k r | d | j |  7} n  d | d <d | d <x | D] } t j d	 d
 | d d } t | d
 | d d d  d  |  }	 t | | d  d  d   }
 t j | d | d |
 } t |	 | d d d d q WqI Wd  S(   Ni   i'  i   i   iO   y              ?i    ii   g      ?R   t   hammingt   padtypet   constanti   Rs   gHz>Rr   (   RX   Ry   R   t   intRq   Rp   R   R   R|   R~   t
   complex128R   R	  R   R   R   R
   (   R/   t   random_statet	   try_typesRh   t   down_factorsRZ   R8   R  R   t   yft   hcR9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_poly_vs_filtfilt  s     

%c         C` s   x d d g D] } x t  d d |  D] } x d D] } t j j | f  } t j j | f  } t | | d  d  d  d d	 } t j | d
 d d | d | } t | d  d  |  |  q3 Wq& Wq Wd  S(   Ni   i   i   i(   i    i!   iR4   R&  R  R  R   (   i    i!   (   R   RX   Ry   R   R   R   R
   (   R/   R  t   nxt   nweightsR8   t   weightst   y_gt   y_s(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_correlate1d  s    "!(   RQ   RR   R3   R   R   R   R  R  t   FalseR   R.  R4  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR   e  s   						D	t   TestCSpline1DEvalc           B` s   e  Z d    Z d   Z RS(   c      
   C` s   t  d d d d d d d d d g	  } t t |   } | d | d } t j |  } t t |  d  d } t j | | d | d	 | d } t | d  d  d
  | d d d  S(   Ni   i   i   i   g      @i    g      $@t   dxt   x0i
   R   i   (   R   R   R   R   t	   cspline1dt   cspline1d_evalR	   (   R/   R9   R8   R7  t   cjRn   t   y2(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3     s    '"c         C` s   t  j d  } t  j | j d t  j } d } d | } t  j d t  j | |  } t j |  } t  j	 d g  } t j
 | |  } t | j | j  d  S(   Ni   RZ   g      $@g      ?y               @g      ?(   RX   R   R   R   Rp   t   expR  R   R9  R   R:  R   RZ   (   R/   R8   R9   t   TRj   t   cyt   xnewt   ynew(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR;     s    
(   RQ   RR   R3   R;   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR6     s   	t   TestOrderFiltc           B` s   e  Z d    Z RS(   c         C` s;   t  t j d d d g d d d g d  d d d g  d  S(   Ni   i   i   i    (   R   R   t   order_filter(   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3   !  s    '(   RQ   RR   R3   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRB    s   t   _TestLinearFilterc           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 d   Z d   Z d   Z RS(   c         C` sA   t  j d t  j |  d t  j |   j |  } |  j |  S(   Ni    i   (   RX   t   linspacet   prodRB   t   convert_dtype(   R/   R   R8   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   generate'  s    4c         C` s   |  j  t j  d  k r t j |  } t j | j |  j   } t j | | g d d g d g d g g  } x+ | D]# \ } } |  j | d  | d <qs W| St j | |  j  d t Sd  S(	   Nt   Ot   refs_okt   zerosize_okt   readonlyt	   writeonly.R   (    (	   RZ   RX   t   asarrayt   emptyR   t   nditert   typeR   R5  (   R/   t   arrRU   t   iterR8   R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRG  +  s    c         C` sw   |  j  d  } |  j d d g  } |  j d d g  } |  j d d d d d	 d
 g  } t t | | |  |  d  S(   Ni   i   ig      ?g      i    i   i   i   g      $@(   i   (   RH  RG  R	   R   (   R/   R8   R1   R0   t   y_r(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_1_IIR7  s
    !c         C` st   |  j  d  } |  j d d g  } |  j d g  } |  j d d d d d d g  } t t | | |  |  d  S(	   Ni   i   i    i   i   i   g      "@(   i   (   RH  RG  R	   R   (   R/   R8   R1   R0   RT  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_1_FIR>  s
    !c   	      C` s   |  j  d  } |  j d d d g  } |  j d d g  } |  j d d g  } |  j d d d	 d
 d d g  } |  j d
 d g  } t | | | d | \ } } t | |  t | |  d  S(   Ni   i   i    ig      ?g      i   i   i	   i   i   i   it   zi(   i   (   RH  RG  R   R	   (	   R/   R8   R1   R0   RW  RT  t   zf_rR9   t   zf(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_1_IIR_init_condE  s    !c   	      C` s   |  j  d	  } |  j d d d g  } |  j d g  } |  j d d g  } |  j d d d d d d g  } |  j d d g  } t | | | d | \ } } t | |  t | |  d  S(
   Ni   i   i   i   i	   g      (@i   RW  (   i   (   RH  RG  R   R	   (	   R/   R8   R1   R0   RW  RT  RX  R9   RY  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_1_FIR_init_condP  s    !c         C` s   |  j  d
  } |  j d d g  } |  j d d g  } |  j d d d g d d d g d d d g d d d g g  } t | | | d	 d } t | |  d  S(   Ni   i   i   ig      ?i    i   i   R   (   i   i   (   RH  RG  R   R	   (   R/   R8   R1   R0   t   y_r2_a0R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_2_IIR_axis_0[  s    *c         C` s   |  j  d  } |  j d d g  } |  j d d g  } |  j d d d g d d	 d g d
 d d
 g d d d g g  } t | | | d d } t | |  d  S(   Ni   i   i   ig      ?i    i   i   ii   ii   iR   (   i   i   (   RH  RG  R   R	   (   R/   R8   R1   R0   t   y_r2_a1R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_2_IIR_axis_1d  s    *c   	      C` s   |  j  d  } |  j d d g  } |  j d d g  } |  j t j d   } |  j d d d g d d d g d d	 d g d
 d d
 g g  } |  j d d d d g  d  d   t j f } t | | | d d d | \ } } t | |  t | |  d  S(   Ni   i   i   ig      ?i   ii   ii   iiiR   RW  (   i   i   (   i   i   (   RH  RG  RX   t   onesR  R   R	   (	   R/   R8   R1   R0   RW  t	   y_r2_a0_1RX  R9   RY  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt    test_rank_2_IIR_axis_0_init_condm  s    *.$c   	      C` s   |  j  d  } |  j d d g  } |  j d d g  } |  j t j d   } |  j d d d g d d d g d d d g d d d g g  } |  j d d d g g  } t | | | d d	 d
 | \ } } t | |  t | |  d  S(   Ni   i   i   ig      ?i   iR   i    RW  (   i   i   (   i   i   (   RH  RG  RX   R`  R   R	   (	   R/   R8   R1   R0   RW  t	   y_r2_a0_0RX  R9   RY  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt    test_rank_2_IIR_axis_1_init_condz  s    !$c         ` s   |  j  d  } |  j d d g   |  j d d g    xZ t | j  D]I } t    | |  } t j    f d   | |  } t | |  qI Wd  S(	   Ni   i   i   i   ig      ?c         ` s   t     |   S(   N(   R   (   t   w(   R0   R1   (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   <lambda>  s    (   i   i   i   (   RH  RG  R   t   ndimR   RX   t   apply_along_axisR	   (   R/   R8   R   R9   RT  (    (   R0   R1   sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_3_IIR  s    !c         ` s&  |  j  d	  } |  j d d g   |  j d d g    x t | j  D] } t | j  } d | | <|  j t j |   } |  j d g   t    | | |  \ } }     f d   }     f d   } t j	 | | |  }	 t j	 | | |  }
 t
 | |	  t
 | |
  qI Wd  S(
   Ni   i   i   i   ig      ?c         ` s   t     |  d  d S(   NRW  i    (   R   (   Re  (   R0   R1   t   zi1(    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRf    s    c         ` s   t     |  d  d S(   NRW  i   (   R   (   Re  (   R0   R1   Rj  (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRf    s    (   i   i   i   (   RH  RG  R   Rg  R   R   RX   R`  R   Rh  R	   (   R/   R8   R   t   zi_shapeRW  R9   RY  t   lf0t   lf1RT  RX  (    (   R0   R1   Rj  sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_3_IIR_init_cond  s    
c         ` s   |  j  d  } |  j d d d g   |  j d g    xZ t | j  D]I } t    | |  } t j    f d   | |  } t | |  qI Wd  S(	   Ni   i   i   i   i    ic         ` s   t     |   S(   N(   R   (   Re  (   R0   R1   (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRf    s    (   i   i   i   (   RH  RG  R   Rg  R   RX   Rh  R	   (   R/   R8   R   R9   RT  (    (   R0   R1   sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_3_FIR  s    !c         ` s)  |  j  d	  } |  j d d d g   |  j d g    x t | j  D] } t | j  } d | | <|  j t j |   } |  j d d g   t    | | |  \ } }     f d   }     f d   } t j	 | | |  }	 t j	 | | |  }
 t
 | |	  t
 | |
  qI Wd  S(
   Ni   i   i   i   i    ic         ` s   t     |  d  d S(   NRW  i    (   R   (   Re  (   R0   R1   Rj  (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRf    s    c         ` s   t     |  d  d S(   NRW  i   (   R   (   Re  (   R0   R1   Rj  (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRf    s    (   i   i   i   (   RH  RG  R   Rg  R   R   RX   R`  R   Rh  R	   (   R/   R8   R   Rk  RW  R9   RY  Rl  Rm  RT  RX  (    (   R0   R1   Rj  sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank_3_FIR_init_cond  s    
c      	   C` s  |  j  d  } t j d d d d \ } } |  j |  } |  j |  } | j d d	 } |  j t j d d | f   } |  j t j d	 d	 | f   } t | | | d
 | \ } } t | | | d
 | \ }	 }
 t |	 |  t | |
  t	 t
 t | | | d t j |   d  S(   Ni   i   i   i   g?t   outputt   bai    i   RW  i(   i   i   i   (   RH  R   R   RG  R   RX   R`  R   R	   RN   RO   (   R/   R8   R1   R0   t   zi_sizet   zi_fullt   zi_singt   y_fullt   zf_fullt   y_singt   zf_sing(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_zi_pseudobroadcast  s    !!c         C` s   |  j  d  } |  j d d d g  } |  j d g  } |  j d d d d d d g  } t | | d |  } t | |  d  S(   Ni   i   i    ii   (   RH  RG  R   R	   (   R/   R8   R1   R0   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_scalar_a  s    !c         C` s  |  j  t j d	 d   } |  j  t j d d   } |  j  t j d d d g   } t j d
 d  } | d d  d   d  d   f c d 9<| d d  d   d  d   f c d 9<|  j  |  } |  j  t j d d   } t j d d  } d g g d g g d g g g | d  d   d  d   d  d  f <|  j  |  } t | | | d |  \ } } t | |  t | |  t | | d | d |  \ }	 }
 t |	 |  t |
 |  d  S(   Ni   i   i   t   li   i    i   i(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   RG  RX   R   R`  R   R   R	   (   R/   R8   R1   R0   RW  t   zf_expectedt
   y_expectedt   y_iirt   zf_iirt   y_firt   zf_fir(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_zi_some_singleton_dims  s"    !%%@"c         C` s\   |  j  |  } |  j  |  } |  j  |  } |  j  |  } t t t | | | | |  d  S(   N(   RG  RN   RO   R   (   R/   R1   R0   R8   R   RW  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   base_bad_size_zi  s
    c         C` s+  t  j d  } |  j d g d g | d d g  |  j d d g d g | d d d g  |  j d d g d g | d d g g  |  j d d g d g | d d d d g  |  j d d d g d g | d d g g  |  j d d d g d g | d d d d g  |  j d g d d g | d d d g  |  j d g d d g | d d g g  |  j d g d d g | d d d d g  |  j d d d g d d g | d d g  |  j d d d g d d g | d d g d g g  |  j d d d g d d g | d d d d g  |  j d d d g d d g | d d d d d g  |  j d d g d d d g | d d g  |  j d d g d d d g | d d g d g g  |  j d d g d d d g | d d d d g  |  j d d g d d d g | d d d d d g  t  j d  j d  } |  j d g d g | d d g  |  j d d g d g | d d d d g  |  j d d g d g | d d d d g g g  |  j d d g d g | d d g d g d g g  |  j d d g d g | d d d g g  |  j d d g d g | d d d d d g g  |  j d d d g d g | d d d d d d d	 g  |  j d d d g d g | d d d d g d d d	 g g g  |  j d d d g d g | d d d g d d g d d	 g g  |  j d d d g d g | d d d g d d g g  |  j d d d g d g | d d d d d g d d	 d d
 g g  |  j d g d d g | d d d d g  |  j d g d d g | d d d d g g g  |  j d g d d g | d d g d g d g g  |  j d g d d g | d d d g g  |  j d g d d g | d d d d d g g  |  j d g d d d g | d d d d d d d	 g  |  j d g d d d g | d d d d g d d d	 g g g  |  j d g d d d g | d d d g d d g d d	 g g  |  j d g d d d g | d d d g d d g g  |  j d g d d d g | d d d d d g d d	 d d
 g g  |  j d d d g d d g | d d d d d d d	 g  |  j d d d g d d g | d d d d g d d d	 g g g  |  j d d d g d d g | d d d g d d g d d	 g g  |  j d d d g d d g | d d d g d d g g  |  j d d d g d d g | d d d d d g d d	 d d
 g g  |  j d g d g | d d g  |  j d d g d g | d d d d d g  |  j d d g d g | d d g d g d g d g g g  |  j d d g d g | d d d d d g g  |  j d d g d g | d d g d g d g g  |  j d d g d g | d d g d g d g d g d g g  |  j d d d g d g | d d d d d d d	 d d
 g  |  j d d d g d g | d d d g d d g d d	 g d d
 g g g  |  j d d d g d g | d d d d d g d d	 d d
 g g  |  j d d d g d g | d d d g d d g d d	 g g  |  j d d d g d g | d d d g d d g d d	 g d d
 g d d g g  |  j d g d d g | d d d d d g  |  j d g d d g | d d g d g d g d g g g  |  j d g d d g | d d d d d g g  |  j d g d d g | d d g d g d g g  |  j d g d d g | d d g d g d g d g d g g  |  j d g d d d g | d d d d d d d	 d d
 g  |  j d g d d d g | d d d g d d g d d	 g d d
 g g g  |  j d g d d d g | d d d d d g d d	 d d
 g g  |  j d g d d d g | d d d g d d g d d	 g g  |  j d g d d d g | d d d g d d g d d	 g d d
 g d d g g  |  j d d d g d d g | d d d d d d d	 d d
 g  |  j d d d g d d g | d d d g d d g d d	 g d d
 g g g  |  j d d d g d d g | d d d d d g d d	 d d
 g g  |  j d d d g d d g | d d d g d d g d d	 g g  |  j d d d g d d g | d d d g d d g d d	 g d d
 g d d g g  d  S(   Ni   i   ii    i   i   i   i   i   i   i   i	   (   i   i   (   RX   R   R  RB   (   R/   Rm   Rn   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_bad_size_zi   s    "((++.((++414+414"	+14+17@@7C+14+17@@7C:CC:F".=14@=LC@R.=14@=LC@R@OFCc         C` s   |  j  d  } |  j d g  } |  j d g  } |  j g   } t | | | d | \ } } t | |  t | j |  j  t | j d  d  S(   Ni   i   RW  i    (   i   (   RH  RG  R   R	   R   RZ   Rh   (   R/   R8   R0   R1   RW  R9   RY  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_empty_zi`  s    c         C` s   |  j  d g  } |  j  d g  } t | | d d g  } t | | d d g  } t | | t t g  } t | |  t | |  d  S(   Ni   g      ?i    (   RG  R$   R   R5  R   (   R/   R0   R1   RW  t   zi_1t   zi_2(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_lfiltic_bad_zik  s    c   	      C` s   |  j  d g  } |  j  d d d g  } |  j  d d g  } |  j  d g  } |  j  d g  } |  j  d d g  } t | | | d	 | \ } } t | |  t | |  d  S(
   Ni   i    ii   i   iH   iJ   iRW  (   RG  R   R	   (	   R/   R0   R1   RW  R8   t   yet   zfeR9   RY  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_short_x_FIRv  s    c   	      C` s   |  j  d d g  } |  j  d d d g  } |  j  d d g  } |  j  d g  } |  j  d g  } |  j  d d	 g  } t | | | d
 | \ } } t | |  t | |  d  S(   Ni   i    ii   i   iH   iJ   iiRW  (   RG  R   R	   (	   R/   R0   R1   RW  R8   R  R  R9   RY  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_short_x_IIR  s    c         C` s   |  j  d  } |  j d d g  } | j   } |  j d d g  } | j   } |  j d d d d d	 d
 g  } t | | |  } t | |  t | |  t | |  d  S(   Ni   i   ig      ?g      i    i   i   i   g      $@(   i   (   RH  RG  R   R   R	   R   (   R/   R8   R1   t   b0R0   t   a0RT  t   y_f(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_do_not_modify_a_b_IIR  s    !c         C` s   |  j  d  } |  j d d d g  } | j   } |  j d g  } | j   } |  j d d d d d d g  } t | | |  } t | |  t | |  t | |  d  S(	   Ni   i   i    i   g      ?i   g      @(   i   (   RH  RG  R   R   R	   R   (   R/   R8   R1   R  R0   R  RT  R  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_do_not_modify_a_b_FIR  s    !(   RQ   RR   RH  RG  RU  RV  RZ  R[  R]  R_  Rb  Rd  Ri  Rn  Ro  Rp  Rz  R{  R  R  R  R  R  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRD  &  s2   													
		
			
			`					t   TestLinearFilterFloat32c           B` s   e  Z e j d   Z RS(   Rj   (   RQ   RR   RX   RZ   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   t   TestLinearFilterFloat64c           B` s   e  Z e j d   Z RS(   R>   (   RQ   RR   RX   RZ   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   t   TestLinearFilterFloatExtendedc           B` s   e  Z e j d   Z RS(   R   (   RQ   RR   RX   RZ   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   t   TestLinearFilterComplex64c           B` s   e  Z e j d   Z RS(   t   F(   RQ   RR   RX   RZ   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   t   TestLinearFilterComplex128c           B` s   e  Z e j d   Z RS(   t   D(   RQ   RR   RX   RZ   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   t   TestLinearFilterComplexExtendedc           B` s   e  Z e j d   Z RS(   t   G(   RQ   RR   RX   RZ   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   t   TestLinearFilterDecimalc           B` s    e  Z e j d   Z d   Z RS(   RI  c         C` s   t  t |   S(   N(   R   Rb   (   R/   R8   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRQ    s    (   RQ   RR   RX   RZ   RQ  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   t   TestLinearFilterObjectc           B` s   e  Z e j d   Z e Z RS(   RI  (   RQ   RR   RX   RZ   R   RQ  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   c           C` ss   t  t t d g d g d d  d g  t  t t d g d  g d d d g  t  t t d  g d g d d d g  d  S(   Ng      ?g       @g      @(   RN   t	   TypeErrorR   R   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_lfilter_bad_object  s    %%c        
   C` s5   t  t t d d g d d g d d d d d g  d  S(   Ni   i   i   i   i   (   RN   t   NotImplementedErrorR   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt!   test_lfilter_notimplemented_input  s    t   dtt   TestCorrelateRealc           B` sk   e  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` sp   t  j d d d  j |  } t  j d d d  j |  } t  j d d d d d g  j |  } | | | f S(   Ni    i   i   i   i   i   i   (   RX   RE  R~   R   (   R/   R  R0   R1   RT  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   _setup_rank1  s    'c         C` s_   d } yA t  j |  } t | d  rF t d t  j | j   } n  Wn t k
 rZ n X| S(   Ni   t
   resolutiong      (   RX   t   finfoR   R'  t   log10R  t	   Exception(   R/   t   res_dtR   t   dt_info(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   equal_tolerance  s    #c         C` s0   | t  j k r |  j t  j  S|  j |  Sd  S(   N(   RX   t
   longdoubleR  t   double(   R/   R  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   equal_tolerance_fft  s    c         C` s   | t  k r= t t  d  g t  d  g  } t | d  n |  j |  \ } } } t | | d d } t | | d d } t | | d |  j | j  t | | d |  j | j  t | j |  t | j |  d  S(   Ni   i   RL   RI   RJ   R   (	   R   R   R   t   _setup_rank3R   R	   R  RZ   R  (   R/   R  RI   R0   R1   RT  t   y_fftt   y_direct(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_method  s    !c         C` s   |  j  |  \ } } } t | | d  } t | | d d ! t | j |  t | | d  } t | | d d !d  d  d   t | j |  d  S(   NRA   i   i   i(   R  R   R	   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank1_valid  s    !c         C` sO   |  j  |  \ } } } t | | d  } t | | d   t | j |  d  S(   NR5   i(   R  R   R	   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank1_same  s    c         C` sK   |  j  |  \ } } } t | | d  } t | |  t | j |  d  S(   NR@   (   R  R   R	   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank1_full  s    c         C` sh  t  j d d d  j d d d j |  } t  j d d	 d
  j d d d j |  } t d d d d d d d d g d d d d d d d d g d d d d d  d! d" d# g d$ d% d& d' d( d) d* d+ g d, d- d. d/ d0 d1 d2 d3 g d4 d5 d6 d7 d8 d9 d: d; g g d< d= d> d? d@ dA dB dC g d dD dE dF dG dH dI dJ g dK dL dM dN dO dP dQ dR g dS dT dU dV dW dX dY dZ g d[ d d\ d  d] d^ d_ d` g da db dc dd de df dg dh g g di dj dk dl dm dn do dp g dq dr ds d? dt du dv dw g dx dy d dz d{ d| d} d~ g d d d d d d d d` g d` d d. d d d d d g d d d d d d d d g g g d | } | | | f S(   Ni    i'   i(   i   i   i   t   orderR  i   i   i   g        g      g@g     @g     @g     @@g     @g     }@g      d@g      G@g      {@g     @g     @g     @g     @g      @g     p@g     `@g      @g     @g     @g     @g     @g     @@g     s@g     @p@g     @g     0@g     @g     p@g     (@g     `@g     t@g     @i@g     @g     (@g      @g      @g     ؘ@g     @@g     b@g     \@g     u@g     @g      @g      @g     @g     r@g      C@g      7@g      y@g     ,@g     @g     @g     $@g     @@g     Pr@g     @g     @g     @g     @g     ԩ@g     @g     }@g     Pt@g      @g     R@g     @g     (@g     K@g      @g     @g     ؁@g     @g     f@g     @g     (@g     }@g     (@g     @g      {@g     4@g     @g     ܧ@g     @g     l@g      n@g     @g     @g     @g     @g     @g     @g     C@g      6@g     j@g     @g     @g     Д@g     p@g     z@g     `@g     U@g     @~@g     (@g     P@g     @g      @g     i@g     g@g     @g     X@g     @g     @g     Џ@g     @k@g     @s@g     p@g     x@g     h@g     @g     @g     ؐ@g     @g      @g     @g     Ȗ@g     @g     S@g     _@g      v@g     @g     @g     @g     p@g     @m@RZ   (   i   i   i   (   i   i   i   (   RX   RE  RB   R~   R   (   R/   R  R0   R1   RT  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s0    $	$	$	c         C` s   |  j  |  \ } } } t | | d  } t | | d d  d d  d d  f  t | j |  t | | d  } t | | d d  d d  d d  f d  d  d  d  d  d  d  d  d  f  t | j |  d  S(   NRA   i   i   i   i   i   i(   R  R   R	   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank3_valid;  s    ,Tc         C` sj   |  j  |  \ } } } t | | d  } t | | d d  d d  d d  f  t | j |  d  S(   NR5   i    ii   i(   R  R   R	   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank3_sameF  s    ,c         C` sH   |  j  |  \ } } } t | |  } t | |  t | j |  d  S(   N(   R  R   R	   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_rank3_allL  s    (   RQ   RR   R  R  R  R  R  R  R  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   										t   TestCorrelatec           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` sz   t  j d d  j d	  } t  j d d  j d
  } t t t | | f i d d 6 t t t | | f i d d 6 d  S(   Ni   i   i   i   ii    RA   R4   (   i   i   (   i   i   (   RX   R   RB   RN   RO   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRY   V  s     c      	   C` s   d d d g } d d d g } t  t t | | d d t  t t | | d d d	 d
 t  t t | | d d d	 d t  t t | | d d d	 d t  t t | | d d d	 d d  S(   Ni   i   i   i   i   R4   RG   RH   RI   RJ   RK   RL   R@   RM   R5   (   RN   RO   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRP   b  s    c         C` s   t  t t d g d d d t  t t d d g d d t  t t d g d d d t  t t d d g d d t  t t d g d g g  t  t t d g d  d  S(   Ni   i   RI   RL   RJ   i   (   RN   RO   R   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR   k  s    c         C` s   d d d g } d d g } t  t | | d d d d d	 g  d d d g } d d d
 g } t  t | | d d d d d	 g  t  t | | d d d
 d d d	 d g  t  t | | d d d g  d  S(   Ni   i   i   i   i   R4   R5   i   i   i   i   i    R@   i   RA   (   R
   R   (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_numpy_fastpatht  s    %%+(   RQ   RR   RY   RP   R   R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR  S  s   					t   TestCorrelateComplexc           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` s9   | t  j k r t  j } n  t d t  j |  j d  S(   Ni   i   (   RX   t   clongdoublet   cdoubleR'  R  t	   precision(   R/   R  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR     s    c         C` s  t  j j d  t  j j d  j |  } | d t  j j d  j |  7} t  j j d  j |  } | d t  j j d  j |  7} t | j | j d | t | j | j d | j |  } | d t | j | j d | t | j | j d | 7} | | | f S(   Ni	   i
   y              ?i   R4   (   RX   Ry   Rz   R|   R~   R   t   realt   imag(   R/   R  R4   R0   R1   RT  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s    ##%c         C` s   |  j  | d  \ } } } t | | d  } t | | d |  j |  t | j |  t | | d  } t | | d  d  d  j   d |  j |  t | j |  d  S(   NRA   R   i(   R  R   R	   R   R   RZ   t   conj(   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s    /c         C` s]   |  j  | d  \ } } } t | | d  } t | | d |  j |  t | j |  d  S(   NR5   R   (   R  R   R	   R   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s    c         C` s]   |  j  | d  \ } } } t | | d  } t | | d |  j |  t | j |  d  S(   NR@   R   (   R  R   R	   R   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s    c      	   C` sq   t  j d d d g d | } t  j d d d d g d | } t | |  } t | d d d d d d g  d  S(    Ng        y                g      ?y              ?g       @y               @RZ   y              @y              @g      @y              @g      @y              @g      $@g      <@g      6@g      0@g       @y                y      ?      ?y       @       @y      ?      @y       @      @y      @      @y      @      @y                y      $@       y      <@      y      6@      y      0@      y       @      (   RX   R   R   R   (   R/   R  R>   t   kR9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_swap_full  s    !c         C` sP   d d d g } d d d d g } t  | | d d } t | d d d g  d  S(   Ng        y                g      ?y              ?g       @y               @y              @y              @g      @y              @g      @y              @R4   R5   g      $@g      <@g      6@y                y      ?      ?y       @       @y      ?      @y       @      @y      @      @y      @      @y      $@       y      <@      y      6@      (   R   R   (   R/   R  R>   R  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_swap_same  s    c         C` s<  t  j j d d d  j |  } | d t  j j d d d  j |  7} t  j j d d d  j |  } | d t  j j d d d  j |  7} t | j | j  t | j | j  j |  } | d t | j | j  t | j | j  7} t | | d  } t | | d |  j |  d t	 | j
 |  d  S(	   Ni
   i   i   y              ?i   R@   R   i   (   RX   Ry   R|   R~   R   R  R  R	   R   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt
   test_rank3  s    !)!)1 c         C` s  t  j t  j j    j |  } | d t  j t  j j    j |  7} t  j t  j j    j |  } | d t  j t  j j    j |  7} t | j | j  t | j | j  j |  } | d t | j | j  t | j | j  7} t | | d  } t | | d |  j	 |  d t
 | j |  t
 t d g d g  t d d   t
 t d g d g  t d d   t
 t d g d g  t d d   d  S(   Ny              ?R@   R   i   y               @y              @i   (   RX   R   Ry   R|   R~   R   R  R  R	   R   R   RZ   (   R/   R  R0   R1   RT  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt
   test_rank0  s    !)!)1 %%(   RQ   RR   R   R  R  R  R  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   									t   TestCorrelate2dc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s6  t  j d  } t  j d d d g  } xd d d g D] } t t  j | | d | t j | | d |  t t  j t j | g | g d |  t j | | d |  | d k r7 t t  j | | d | t j | | d |  t t  j t j | g | g d |  t j | | d |  q7 q7 Wd  S(	   Ni   g	@gffffff?i   R@   RA   R5   R4   (   RX   R   R   R   R   R   R   t   correlate2d(   R/   R0   R1   R4   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt    test_consistency_correlate_funcs  s    		c         C` s   t  j d d  j d	  } t  j d d  j d
  } t t t j | | f i d d 6 t t t j | | f i d d 6 d  S(   Ni   i   i   i   ii    RA   R4   (   i   i   (   i   i   (   RX   R   RB   RN   RO   R   R  (   R/   R0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRY     s    #c         C` ss   t  t j d g g d g g  d  t  t j d g g d g g  d  t  t j d g g d g g  d  d  S(   Ni   y               @y               y              @i   i   y              (@(   R   R   R  (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_complex_input   s    %%(   RQ   RR   R  RY   R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   		t   TestLFilterZIc           B` s   e  Z d    Z d   Z RS(   c         C` se   t  j d d d g  } t  j d d d g  } t  j d d g  } t | |  } t | |  d  S(   Ng      ?g      g      ?g        g       @g      @(   RX   R   R   R	   (   R/   R0   R1   t   zi_expectedRW  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3     s
    c         C` sm   t  j d d d g  } t  j d d d g  } t | |  } t d | d |  } t | | d d d  S(   Ni   i   i   i   Rr   g-q=(   RX   R   R   R
   (   R/   R1   R0   Rj  t   zi2(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_scale_invariance  s
    (   RQ   RR   R3   R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   	t   TestFiltFiltc           B` s\   e  Z d  Z d d d d d d  Z d   Z d   Z d   Z d   Z d	   Z	 d
   Z
 RS(   t   tfit   oddt   padc      	   C` su   |  j  d k r@ t |   \ } }	 t | |	 | | | | | |  S|  j  d k rq t |   }
 t |
 | | | |  Sd  S(   NR  t   sos(   t   filtfilt_kindR   R   R    R'   (   R/   t   zpkR8   R   R%  t   padlenRI   t   irlenR1   R0   R  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR     s    c         C` sY   t  d d d g d d d g  } |  j | t j d   } t | t d  d d d  S(   Ni   i   i   i   Rs   gdy=(   R)   R   RX   R   R
   (   R/   R  RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3   %  s    !c         C` s  d } t  j d d | d  } t  j d t  j |  } t  j d t  j |  } | | } t d d	 d
 d } t  j | d  j   } d } t t  j t  j	 |  t  j	 |    }	 |  j
 | | d |	 }
 t  j |
 |  j   } t | d k   t  j | | | g  } |  j
 | | d |	 d d } t | j | j  t  j | |  j   } t | d k   |  j
 | | j d |	 d d } t | | j  d  S(   Ni  i    g      ?i   i   i   i   i   g      ?Rq  R  gh㈵>R  g-C6?R   i
   i  (   RX   RE  R  R  R   t   absR  R'  t   ceilt   logR   R   t   vstackR   R   R>  (   R/   R  R]   t   xlowt   xhighR8   R  R   t   epsR   R9   t   errt   x2dt   y2dt   y2dt(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt	   test_sine*  s&    
+!c         C` s   t  j d  j d d d  } t d d d	 d
 } |  j | | d d d d } |  j | t  j | d d  d d d d } t | t  j | d d   |  j | t  j | d d  d d d d } t | t  j | d d   d  S(   Ng      $@g      &@g      (@i
   i   i   i   g      ?Rq  R  R  i    R   i   i   g     [@g     @(   RX   R   RB   R   R   R   R   (   R/   R8   R  t   y0t   y1R<  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt	   test_axisL  s    --c         C` s]   |  j  d k r d  St j d d g d t j d   } t | t j d  d d d d d  S(   NR  g      ?i   i
   Rr   g+=Rs   (   R  R   R   RX   R   R
   (   R/   RU   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_acoeffV  s    $c         C` s&  |  j  d k r t j d  n  t j d d g  } t j d g  } t j d d g  } t | | |  \ } } } t | d | d g d | d d	 | d
 d	 | d d | d
 g  t | | d d | d d | d d | d
 d | d | d d | d d | d
 g  d  S(   NR  s$   gust only implemented for TF systemsg      ?g       @g      ?g      i    g333333?g?i   g      ?g      ?(   R  R   t   skipRX   R   R,   R
   (   R/   R8   R1   R0   R9   t   z1t   z2(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_gust_simple]  s    51c         C` su   |  j  d k r t j d  n  t j d  } d } d } t | | | d d } | | d | } t | |  d  S(	   NR  s$   gust only implemented for TF systemsi   g      @g       @RI   t   gusti   (   R  R   R  RX   R   R   R
   (   R/   R8   R1   R0   R9   RT   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_gust_scalarsk  s    N(   RQ   RR   R  R   R   R3   R  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR    s   			"	
		t   TestSOSFiltFiltc           B` s   e  Z d  Z d   Z RS(   R  c   	   	   C` s   t  j j d  j d  } x t d d  D]z } t j | d d d } t |   \ } } t |   } t	 | | |  } t
 | |  } t | | d d	 d
 d | q+ Wd S(   s1   Test equivalence between sosfiltfilt and filtfilti    i  i   i   gffffff?Rq  R  Rs   g-q=t   err_msgs   order=%sN(   RX   Ry   R   R|   R   R   R   R   R    R   R'   R
   (	   R/   R8   R  R  R1   R0   R  R9   t   y_sos(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_equivalence|  s    (   RQ   RR   R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR  y  s   c         C` sR  d   } t  t |  t |    d } t |  |  } t j | |  j   | | | j   | f  } t | | d |  | | f d d d d d d	 d
 d	 d t d t } | \ } }	 }
 } } | d k r t	 d |   n  | |  } | | } t
 |  | | d d d  d | d d d d  } t
 |  | | d | d } | | | f S(   sO  
    An alternative implementation of filtfilt with Gustafsson edges.

    This function computes the same result as
    `scipy.signal.signaltools._filtfilt_gust`, but only 1-d arrays
    are accepted.  The problem is solved using `fmin` from `scipy.optimize`.
    `_filtfilt_gust` is significanly faster than this implementation.
    c         S` s   t  t |  t |   d } |  |  } |  | } t | | | d | d } t | | | d d d  d | d d d d  } t | | | d d d  d | d d d d  }	 t | | |	 d | d }
 t j | |
 d  } | S(   s-   Objective function used in filtfilt_gust_opt.i   RW  i    Nii   (   R  R   R   RX   Ru   (   t   icsR1   R0   R8   t   mt   z0ft   z0bR  t   y_fbt   y_bt   y_bft   value(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   filtfilt_gust_opt_func  s    

66i   R   t   xtolg|=t   ftolg-q=t   maxfuni'  t   maxitert   full_outputt   dispi    s5   minimization failed in filtfilt_gust_opt: warnflag=%dNiRW  (   R  R   R   RX   t   concatenatet   meanR   R   R5  t   RuntimeErrorR   (   R1   R0   R8   R  R  RW  R  t   resultt   optt   foptt   nitert   funcallst   warnflagR  R  R  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   filtfilt_gust_opt  s"    		2

6c      
   C` s  t  j j d  t  j j |   } t |  | | d | d d d | } t |  | | d | d | \ } } }	 t  j | | d  }
 |
 j d  } t  j |
  } t	 t
 |  t
 |    d } t  j | | f  } t  j | | f  } xX t g  | D] } t |  ^ q   D]1 } t |  | |
 |  \ | | <| | <| | <qWt  j | d |  } t  j | d |  } t  j | d |  } t | | d d	 d
 d t | | d d	 d
 d t | | d d	 d
 d t |	 | d d	 d
 d d  S(   Ni{   R   RI   R  R  ii   Rr   g&.>Rs   g|=(   RX   Ry   Rz   R|   R   R,   R   R   t
   empty_likeR  R   RO  R   R   R  R
   (   R1   R0   R   R   R  R8   R9   t   ygt   zg1t   zg2t   xxt	   out_shapeR   R  t   zo1t   zo2R>   t   indx(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   check_filtfilt_gust  s&    $',/c       	   C` s  xd d d g D]}  x d d g D] } d \ } } } t  j j | f |   } t  j j | f |   } t | | d	 |  } t | |  t | | d	 |  d
 t \ } }	 t | d d h k  t t |	  t k  t d |	 j	   k o d |	 j	   k  q# Wd } xc d d g D]U }
 t
 t  |
  rt  j | d |
 } | j   } t t | | d	 |  d  qqWt  j d g d t  j } | j   } t t | | d	 |  d  t d  t d  g } t d  t d  g } t t | | d	 |  d  q Wd  S(   NRA   R5   R@   i   i   i   i   RL   R4   t   measureRJ   i
   R^   R_   RZ   i3   i   i   (   i   i   RL   I       (   RX   Ry   R|   R   R   R   R   RQ  t   dictt   keysR   R`  R   R   R   R   (   R4   t   ndimsR   R  t   true_methodR8   R   RI   t
   method_tryt   timest   not_fft_conv_supp(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_choose_conv_method  s.    !,#c          C` sC  t  j d d d d d d \ }  } } d } t j t j |   } t t j t j |  t j |    } t j j	 d  t
 |  | |  \ } } x} d  | g D]o } d	 | }	 t | | |	 f d
 |  xC t d  D]5 }
 d d d g } |	 | |
 <t | | | |
 |  q Wq Wd | d } t | | | f d
 |  d  S(   Ni   g{Gz?ix   gffffff?Rq  R  g|=i{   i   i    i   i2   (   R   t   ellipRX   R  R  R'  R  R  Ry   Rz   R   R   R  R   (   R:   t   pR  R  R   t   approx_impulse_lenR1   R0   R  t
   signal_lenR   R   t   length(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_filtfilt_gust  s    '+

t   TestDecimatec           B` sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C` sQ   t  j d  } t t t j | d d d d t t t j | d d d d d  S(   Ni   t   qg      ?R   i   i   (   RX   R   RN   R  R   t   decimate(   R/   R8   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_bad_args  s    c      	   C` sW   t  j d  } t j | d d d d d d t j   } t | | d  d  d   d  S(   Ni   i   R   i   t   ftypet   iirt
   zero_phase(   RX   R   R   R'  R5  t   roundR   (   R/   R8   R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_basic_IIR  s    *c      	   C` sW   t  j d  } t j | d d d d d d t j   } t | | d  d  d   d  S(   Ni   i   R   i   R)  t   firR+  (   RX   R   R   R'  R5  R,  R   (   R/   R8   R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_basic_FIR  s    *c         C` so   t  j d  } t j | d d d d t } t | j d	  t j | d d d d t } t | j d
  d  S(   Ni   i   R   i    R+  i   i   (   i   i   (   i   i   (   i   i   (   RX   R   R   R'  R5  R   R   (   R/   R:   t   d0t   d1(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt
   test_shape"  s
    c      	   C` s<   t    - } | j t d  |  j d d d t  Wd  QXd  S(   Ns   Badly conditioned filterRI   R.  R+  (   R   R   R*   t   _test_phaseshiftR5  (   R/   R   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_phaseshift_FIR*  s    c      	   C` s<   t    - } | j t d  |  j d d d t  Wd  QXd  S(   Ns   Badly conditioned filterRI   R.  R+  (   R   R   R*   R3  R   (   R/   R   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_zero_phase_FIR/  s    c         C` s   |  j  d d d t  d  S(   NRI   R*  R+  (   R3  R5  (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_phaseshift_IIR4  s    c         C` s   |  j  d d d t  d  S(   NRI   R*  R+  (   R3  R   (   R/   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_zero_phase_IIR7  s    c      	   C` s  d } d d d d g } t  d  } t j | | d  t |  } t j |  d d	 } t j d t j | d  d   t j f |  t j	 j
 | j d  } x| D]}	 | |	 }
 t j |	 | d  t |	  } t j d t j | d  d   t j f |  t j	 j
 | j d  } | d k rcd } t j t j | d d |
 d d d  } nK | d k rd } d t j |
 } t j t j | d | t j    } n  | t k r t j | j | j | | d	 t j  \ } } | t j |  } n t j |  } t j | j |
 | d | d | } t j | j   | d d } | t j |  } | d |	 k  } t t j | j   |  | d d d d d q Wd  S(   Nix   i   i   i   i(   id   i   g?i   y              ?g?R.  g      ?R   R$  R*  i   g?R)  R+  R   ig      ?i    Rs   gMbP?Rr   y               @y               @(   R'  RX   R   R   R   R=  R  R  R   t   windowst   tukeyRh   t   dltiR	  t   cheby1R5  t   freqzR   t   denR  t	   ones_likeR'  R  Ru   R  R
   t   angle(   R/   RI   R+  R  R  t   t_totR]   R  R>   R  R&  R  t   d_tosR   t   systemt   wcR   t   h_respsR  t	   h_resampst   subnyq(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3  :  s@    !.
!.(	#c         C` s   d } d } t  j |  | } t  j d |  t  j d t  j | d |  } t t  j j |  d d d t j	 | d	 d
 d } t
 t  j j |  d  d  S(   Ng      Y@i  g       @i   g      >@g      ?Rr   gMbP?i   R)  R.  g{Gz?(   RX   R   t   sqrtR  R  R
   t   linalgt   normR   R'  R   (   R/   t   sfreqR   R]   R8   t   x_out(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_auto_nj  s    3(   RQ   RR   R(  R-  R/  R2  R4  R5  R6  R7  R3  RL  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR%    s   									0t   TestHilbertc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` sK   t  j d g  } t t t |  t  j d  } t t t | d d d  S(   Ng      ?y                g       @t   Ni    y      ?        (   RX   R   RN   RO   R   R   (   R/   R8   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR(  y  s    c         C` s  d } t  j } t  j d d | | d  } t  j |  } t  j |  } t  j d |  } t  j d |  } t  j | | | | g  } t |  }	 t  j |	  }
 t  j |	  } t  j	 |	  } t
 | | |  t
 |
 t  j | j  |  t
 | d d  d  f t  j | d | d | d  |  t
 | d d  d  f t  j d | | d  |  t
 | d d  d  f t  j | d | d | d  |  t
 | d d  d  f t  j d | | d  |  t
 |	 d j | |  d  S(   Ni   i    i   i   i   i   i   (   RX   R  R   R  t   cosR  R   R  R?  R  R   R`  R   R  (   R/   R   R  R]   R  t   a1t   a2t   a3R0   R   t   h_abst   h_anglet   h_real(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_hilbert_theoretical  s2    	00c         C` s)  t  j d  j d d  } t | d d } t t | j d d | j  t t | d  | d d  t | d d	 d d } t | j d d	 g  t t | j d d	 d d j d	 d g  t  j d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB g  } t | d | d d.  d  S(C   Ni   i   i   R   ii    i   RN  i   g        y        Bm}ą?g      ?y        a @g?y        0f@g      @y        Wa94?g      @y        "nW?g      @y        hIX@g<y        nm@gF8y        O2k{?gy        ډoP?g̼y        YC?g433333<y        c4Qe?gȒ40y        p$?y        ESU?gffffff<y        ?7?y        wEo?g!5Py        {3'?y        _N@?g<y        }?y        -c?gF8<y        2OW\?s   N regressiony        Bm}ąy      ?a y?0fy      @Wa94y      @"nWy      @hIX@y<nm@yF8O2k{?yډoP?y̼YC?y433333<c4Qe?yȒ40p$?yESU?yffffff<?7?y433333<wEoy!5P{3'ſy        _N@տy<}ٿy<-cyF8<2OW\(	   RX   R   RB   R   R   R>  R   R   R   (   R/   R0   t   aat   aant   a0hilb(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_hilbert_axisN  s8    +	(   RQ   RR   R(  RV  RZ  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRM  w  s   		)t   TestHilbert2c           B` s   e  Z d    Z RS(   c         C` s   t  j d
 g g  } t t t |  t  j d  j d d d  } t t t |  t  j d  j d d  } t t t | d d	 t t t | d d t t t | d d d  S(   Ng      ?y                i   i   i   i   i   RN  i    y      ?        (   i   i    (   i   (   RX   R   RN   RO   R   R   RB   (   R/   R8   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR(    s    (   RQ   RR   R(  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR[    s   t   TestPartialFractionExpansionc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` si   d g } d g } d g } d d g } d d g } t  | | |  \ } } t | |  t | |  d  S(   Ni   i   i    g      ?g        g       (   R"   R
   (   R/   R   R   R  t
   a_expectedt
   b_expectedt
   a_observedt
   b_observed(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt    test_invresz_one_coefficient_bug  s    			c      	   C` s  d d d g } d d d g } g  } d	 d g } d	 d
 d d g } t  | | |  \ } } t | |  t | |  d } xF | D]> }	 t  | | | d |	 \ } } t | |  t | |  q Wd }
 x2 | D]* }	 t  | | | d |
 d |	 \ } } q Wd  S(   Ni   i
   ii   ii   i    ii   i   t   avgR  t   mint   minimumR  t   maximumt   rtypeg    _Bt   tolg333333?gUUUUUUſg(   Rb  R  Rc  Rd  R  Re  (   R!   R
   (   R/   R   R   R  R]  R^  R_  R`  t   rtypesRf  t   ridiculous_toleranceR0   R1   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invres_distinct_roots  s     c   
      C` s   d d d d g } d	 d
 d
 d g } g  } d d g } d d d d d	 g } d } xF | D]> } t  | | | d | \ } }	 t | |  t |	 |  qX Wd  S(   Ni   i   ii$   ii   i   i-   i    iii   i	   i   Rb  R  Rc  Rd  R  Re  Rf  g333333?g98ȿgUUUUUUſgll?(   Rb  R  Rc  Rd  R  Re  (   R!   R
   (
   R/   R   R   R  R]  R^  Rh  Rf  R_  R`  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invres_repeated_roots	  s    c         C` sJ   d d d d g } d	 d
 d
 d g } g  } t  t t | | | d d d  S(   Ni   i   ii$   ii   i   i-   i    iiRf  t   mediang333333?g98ȿgUUUUUUſgll?(   RN   RO   R!   (   R/   R   R   R  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_invres_bad_rtype	  s    (   RQ   RR   Ra  Rj  Rk  Rm  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR\    s   			t   TestVectorstrengthc           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 RS(   c         C` s   t  j d g  } d } d } d } t | |  \ } } t | j d  t | j d  t | |  t | d t  j |  d  S(   Ng      ?g      @g      ?g?i    i   (   RX   R   R#   R   Rg  R   R  (   R/   t   eventst   periodt   targ_strengtht
   targ_phaset   strengtht   phase(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_single_1dperiod	  s    c         C` s   t  j d g  } d d d g } d g d } t  j d d d g  } t | |  \ } } t | j d  t | j d  t | |  t | d t  j |  d  S(	   Ng      ?i   i   g      @g      ?i   g      ?g?(   RX   R   R#   R   Rg  R	   R   R  (   R/   Ro  Rp  Rq  Rr  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_single_2dperiod(	  s    c         C` s   t  j d d d d d d g  } d } d } d } t | |  \ } } t | j d  t | j d  t | |  t | d t  j |  d  S(   Ng      ?i   g      ?g      ?i    (   RX   R   R#   R   Rg  R   R  (   R/   Ro  Rp  Rq  Rr  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_equal_1dperiod5	  s    !c         C` s   t  j d d d d d d g  } d d g } d g d } t  j d d g  } t | |  \ } } t | j d  t | j d  t | |  t | d t  j |  d  S(   Ng      ?i   i   g      ?g      ?(   RX   R   R#   R   Rg  R   R  (   R/   Ro  Rp  Rq  Rr  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_equal_2dperiodB	  s    !c         C` s   t  j d d d d d g  } d } d } d } t | |  \ } } t | j d  t | j d  t | |  t | d	 t  j |  d  S(
   Ng?g?g @gffffff@g333333$@i   g      ?i    i   (   RX   R   R#   R   Rg  R   R  (   R/   Ro  Rp  Rq  Rr  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_spaced_1dperiodO	  s    c         C` s   t  j d d d d d g  } d d g } d g d	 } t  j d d
 g  } t | |  \ } } t | j d  t | j d  t | |  t | d	 t  j |  d  S(   Ng?g?g @gffffff@g333333$@i   g      ?g      ?i   g?(   RX   R   R#   R   Rg  R   R  (   R/   Ro  Rp  Rq  Rr  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_spaced_2dperiod\	  s    c         C` s   t  j d d d g  } d } d	 } d } t | |  \ } } t | j d  t | j d  t | |  t | d t  j |  d  S(
   Ng      ?g      ?g      ?i   g      ?g      @i    i   gUUUUUU?(   RX   R   R#   R   Rg  R   R  (   R/   Ro  Rp  Rq  Rr  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_partial_1dperiodi	  s    c         C` s   t  j d d d g  } d d d d g } d	 g d } t  j d d d d g  } t | |  \ } } t | j d  t | j d  t | |  t | d t  j |  d  S(
   Ng      ?g      ?g      ?g      ?g      @i   i   i   gUUUUUU?(   RX   R   R#   R   Rg  R   R  (   R/   Ro  Rp  Rq  Rr  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_partial_2dperiodv	  s    c         C` sm   t  j d d d d g  } d } d } t | |  \ } } t | j d  t | j d  t | |  d  S(   Ni    g      ?g      ?g      ?g      ?(   RX   R   R#   R   Rg  R   (   R/   Ro  Rp  Rq  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_opposite_1dperiod	  s    c         C` s{   t  j d d d d g  } d g d } d g d } t | |  \ } } t | j d  t | j d  t | |  d  S(	   Ni    g      ?g      ?g      ?g      ?i
   g        i   (   RX   R   R#   R   Rg  R   (   R/   Ro  Rp  Rq  Rs  Rt  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_opposite_2dperiod	  s    c         C` s5   t  j d d g g  } d } t t t | |  d  S(   Ni   i   g      ?(   RX   R   RN   RO   R#   (   R/   Ro  Rp  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_2d_events_ValueError	  s    c         C` s2   d } t  j d g g  } t t t | |  d  S(   Ng      ?i   (   RX   R   RN   RO   R#   (   R/   Ro  Rp  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_2d_period_ValueError	  s    c         C` s#   d } d } t  t t | |  d  S(   Ng      ?i    (   RN   RO   R#   (   R/   Ro  Rp  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_zero_period_ValueError	  s    c         C` s#   d } d } t  t t | |  d  S(   Ng      ?i(   RN   RO   R#   (   R/   Ro  Rp  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_negative_period_ValueError	  s    (   RQ   RR   Ru  Rv  Rw  Rx  Ry  Rz  R{  R|  R}  R~  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyRn  	  s   													t   TestSOSFiltc           B` sP   e  Z e j Z d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(   c      
   C` s  t  j d d d  j |  j  } t  j d d g  j |  j  } t  j d d g  j |  j  } t  j d d d	 d d
 d g  j |  j  } t t t | |  |  |  t  j d d g  j |  j  } t  j d d g  j |  j  } t  j d d d d d d g  j |  j  } t t t | |  |  |  d d d g } d d d g } t  j d
  } t  j	 | | f  } d | _
 t | |  } t | d d d d d d d d g  d  S(   Ni    i   i   i   ig      ?g      i   i   i   g      $@i   i   g      "@(   i   i   (   RX   RE  R~   R  R   R	   R&   R%   R`  R  R   R
   (   R/   R8   R1   R0   RT  R  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt
   test_rank1	  s     !!!-!!-	c         C` sx  d } t  j d t  j |  d t  j |   j |  } | j |  j  } t  j d d g  j |  j  } t  j d d g  j |  j  } t  j d d d g d d d g d d d g d d d g g d	 |  j } t  j d d d g d d
 d g d d d g d d d g g d	 |  j } t t | |  | d d } t	 | |  t t | |  | d d } t	 | |  d  S(   Ni   i   i    i   ig      ?i   i   RZ   ii   ii   iR   (   i   i   (
   RX   RE  RF  RB   R~   R  R   R&   R%   R	   (   R/   R   R8   R1   R0   R\  R^  R9   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt
   test_rank2	  s    4!!<*c      
   C` s  d } t  j d t  j |  d t  j |   j |  } t  j d d g  j |  j  } t  j d d g  j |  j  } t t | |  |  } xf t	 | j
 d  D]Q } xH t	 | j
 d  D]3 } t | | | f t | | | | | f   q Wq Wd  S(	   Ni   i   i   i    i   ig      ?(   i   i   i   (   RX   RE  RF  RB   R   R~   R  R&   R%   R   R   R	   R   (   R/   R   R8   R1   R0   R9   Ri   R   (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR  	  s    4!!c         C` s  t  j d d d  \ } } t  j d d d  \ } } t  j d d d  \ } } t j t j | |  |  } t j t j | |  |  } t j t j | | f t j | | f t j | | f f  }	 t j j d  }
 t | | |
 d  d t j	 d  \ } } t j | t | | |
 d d | d	 f } t
 | t | | |
   t |	 |
 d  d t j	 d  \ } } t j | t |	 |
 d d | d	 f } t
 | |  t |	  } t j d  }
 t |	 |
 d | \ } } t
 | t j d   t
 | |  d |
 j |
 _ t t t |	 |
 d | | j   } | j d	 d d | j d f | _ t t t |	 |
 d | d  d   d  d   d  d   d	 d d g f t |	 |
 d | \ } } t
 | d t j d   t
 | d  d   d	 d	 d  d   f |  d  S(   Ni   g      ?t   lowg      ?i2   i   RW  i   i    i   i   i   i(   i   i   (   i   i   (   i    i    (   R   R   RX   R   R   t   r_Ry   R   R   R   R
   R&   R(   R`  R   RN   RO   R   (   R/   t   b1RP  t   b2RQ  t   b3RR  R1   R0   R  R8   t   y_trueRW  R  R9   RY  t   zi_nd(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_initial_conditions	  s6    ?+-(*#2c         C` s  t  j j d  j d d d d } t j d d	 d
 d } t |   } | j d } d } t | j  } d | | <| g | } t  j	 |  } t
 | | d | d | \ } }	 t
 | | d  d   d  d  d  d   f d | d | \ }
 } t
 | | d  d   d d   d  d   f d | d | \ } } t  j |
 | f d | } t | | d d d d t | |	 d d d d t |  } | d d d g | _ | | d  d   d d  d  d   f } t
 | | d | d | d } t |   \ } } t | |  } d | j d g | _ | | d  d   d d  d  d   f } t | | | d | d | d } t | | d d d d d  S(   Ni   i    i   Rh   i   i   i   i   gffffff?Rq  R  i   R   RW  Rr   g|=Rs   gvIh%<=(   i   i   i   (   RX   Ry   R   R   R   R   R    R   R   R   R&   R  R
   R(   R   R   Rh   R   (   R/   R8   R  R  t	   nsectionsR   t   shpt   z0R,  RY  R  R  R<  R  R9   RW  R1   R0   t   y_tf(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt    test_initial_conditions_3d_axis1
  s2    $
!@@))"c      	   C` sP   t  j d	  } t  j d
  } t  j d  } t t t | | d | d d d  S(   Ni   i   i   i   i   RW  R   i   (   i   i   i   (   i   i   (   i   i   i   i   (   RX   RO  RN   RO   R&   (   R/   R8   R  RW  (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_bad_zi_shapeB
  s    c         C` s   t  j d d d d } t |  } t | t j d  d | \ } } t | | d d t j | d  d   d  d	  f j d
 d  | d  d   d	 d   f j d
 d   } t | | d d d  S(   Ni   g?Rq  R  i(   RW  Rr   gvIh%<=i   R   i(	   R   R   R(   R&   RX   R`  R
   RF  Ru   (   R/   R  RW  R9   RY  t   ss(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   test_sosfilt_ziJ
  s    $W(   RQ   RR   RX   R   R  R  R  R  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR  	  s   					&	-	t   TestDeconvolvec           B` s   e  Z d    Z RS(   c      	   C` st   d d d d d d d d g } d d g } d d d d d d d d d g	 } t  j | |  \ } } t | |  d  S(   Ni    i   i   i   (   R   t
   deconvolveR
   (   R/   t   originalt   impulse_responset   recordedt	   recoveredt	   remainder(    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR3   X
  s
    !(   RQ   RR   R3   (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyR  V
  s   (|   t
   __future__R    R   R   R   R   R   t	   itertoolsR   R   R   R   RN   t   numpy.testingR   R   R   R	   R
   R   R   R   t   scipy._lib._numpy_compatR   t   numpyR   R   RX   t   scipy.ndimage.filtersR   t   scipy.optimizeR   t   scipyR   t   scipy.signalR   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   t   scipy.signal.windowsR+   t   scipy.signal.signaltoolsR,   t   version_infot   majort   minort   mathR-   t	   fractionsRe   R.   RS   R   R   R   R   R   R   R6  RB  RD  R  R  R  R  R  R  R  R  R  R  R   R   t   ubytet   bytet   ushortt   shortt   uintR'  t	   ulonglongRq   R   R  R  R  t   csingleR  R  R  R  R  R  R  R  R   R  R  R$  R%  RM  R[  R\  Rn  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/signal/tests/test_signaltools.pyt   <module>   s   :$^tj2 7 		$v-'^'`	, 		eW9