
˽Xc           @` 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	 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 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 m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 d  d l6 m7 Z7 e j8 j9 d k oe j8 j: d k rd  d l; m< Z< n d  d l= m< Z< d e f d     YZ> d e> f d     YZ? d e f d     YZ@ d e@ f d     YZA d e f d     YZB d e f d     YZC d e f d     YZD d e f d     YZE d e f d      YZF d! e f d"     YZG d# e f d$     YZH d% eH f d&     YZI d' eH f d(     YZJ d) eH f d*     YZK d+ eH f d,     YZL d- eH f d.     YZM d/ eH f d0     YZN d1 eH f d2     YZO d3 eH f d4     YZP d5   ZQ d6 e f d7     YZR d8   ZS xo e jT e jU e jV e jW e jX eY e jZ e jZ e j[ e j\ e j] e g D]% Z^ eS e^ eR  Z_ e_ e`   e_ ja <qWd9 e f d:     YZb d; e f d<     YZc xb e jd e je e jf g D]H Z^ eS e^ eb  Z_ eY d= e jg e^  jh d  e_ _ e_ e`   e_ ja <qLWd> e f d?     YZi d@ e f dA     YZj dB ej f dC     YZk dD   Zl em dE  Zn dF   Zo dG   Zp dH e f dI     YZq dJ er f dK     YZs dL er f dM     YZt dN e f dO     YZu dP e f dQ     YZv dR e f dS     YZw ea dT k re   n  d S(U   i    (   t   divisiont   print_functiont   absolute_importN(   t   Decimal(   t   product(   t   SkipTest(
   t   TestCaset   run_module_suitet   assert_equalt   assert_almost_equalt   assert_array_equalt   assert_array_almost_equalt   assert_raisest   assert_allcloset   assert_t   dec(   t   arrayt   arange(   t   fmin(   t   signal(   t	   correlatet   convolvet
   convolve2dt   fftconvolvet   hannt   choose_conv_methodt   hilbertt   hilbert2t   lfiltert
   lfilter_zit   filtfiltt   buttert   zpk2tft   zpk2sost   invrest   invreszt   vectorstrengtht   lfiltict   tf2sost   sosfiltt   sosfiltfiltt
   sosfilt_zit   tf2zpk(   t   _filtfilt_gusti   i   (   t   gcdt   _TestConvolvec           B` sP   e  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   /tmp/pip-build-7oUkmx/scipy/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.   R/   R0   R1   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   R3   R4   i
   i   (   R   R
   R   (   R.   R/   R0   R1   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_same_eq.   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   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_complex4   s    c         C` s0   d } d } t  | |  } t | | |  d  S(   Ni	  i  (   R   R   (   R.   R/   R0   R1   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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.   R/   R0   R1   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_single_element@   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.   R/   R0   R1   t   d(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_2d_arraysF   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   fullR4   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   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_input_swappingO   s<    ,&&&(
   t   __name__t
   __module__R2   R5   R6   R:   R;   R<   R>   RE   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR-       s   								t   TestConvolvec           B` s,   e  Z d    Z 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   R@   y              @y              ?y                y              @i   y              $@y      ?      @y       @      y      @        y       @      y      ?        y       @      y       @      $(   R   R
   (   R.   R/   R0   t   expectedt   out(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_valid_mode2v   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   R4   i9   i=   i?   i-   i$   (   R   R   R
   (   R.   R/   R0   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_same_mode   s
    -c         C` s   t  j d d  j d	  } t  j d d  j d
  } |  j t t | | f i d d 6 |  j t t | | f i d d 6 d  S(   Ni   i   i   i   ii    R@   R3   (   i   i   (   i   i   (   t   npR   RA   t   assertRaisest
   ValueErrorR   (   R.   R/   R0   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_invalid_shapes   s    #c         C` s\  xHd d d g D]7} x.t  j j   D]\ } } x| D]} | t  j k s9 | t k r` q9 n  t  j j d  d t  j j d  j |  } d t  j j d  j |  } | j	 j
 d k s t  j	 |  j d	 d
 h k r t t | | d | d  q9 n  | j	 j
 d k r)| d 7} | d 7} n  | j	 j
 d k r| d t  j j | j   j |  7} | d t  j j | j   j |  7} n  i t | | d | d d d 6t | | d | d d d 6} | t  j t  j h k ri d d 6n i  } t | d t  j  r9 t | d | d |  t | d j	 | d j	  q9 q9 Wq& Wq Wx 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  rmt | |  t | d d |	  t | d d |	  qmqmWt t d g d  g d d  d  t d t d t d!  g d t d  g   d  S("   NR?   R@   R4   i*   g      ?id   i2   t   buifct
   complex256t
   complex192R3   t   directR0   i   R1   y              ?t   methodt   fftgMb`?t   rtoli
   i   i3   i4   i5   i6   i<   i>   i   t   dtypei   i   i   (   RM   t   sctypest   itemst   voidt   strt   randomt   seedt   randt   astypeRX   t   kindt   nameR   R   t   shapeR   t	   complex64t   float32t
   isinstancet   ndarrayR   R   t   int64R   (   R.   R3   t   _t
   dtype_listRX   R7   t   ht   resultsRW   t   nR9   RV   RT   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_convolve_method   sH    
&)
	"*("(   RF   RG   RK   RL   RP   Rn   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRH   t   s   			t   _TestConvolve2dc           B` sG   e  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.   R/   R0   R=   t   e(    (    sB   /tmp/pip-build-7oUkmx/scipy/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   R@   (   R   R   R
   (   R.   Rp   t   fRk   t   g(    (    sB   /tmp/pip-build-7oUkmx/scipy/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   RX   y              ?g      O@y              8@g      T@y              >@g     X@y              B@g      ]@y              E@g     `@y              H@R@   y      O@      8@y      T@      >@y     X@      B@y      ]@      E@y     `@      H@(   RM   R   t   complexR   R   R
   (   R.   Rp   Rq   Rk   Rr   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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.   R/   R0   t   fillvalR1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_fillvalue   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.   R/   R0   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_wrap_boundary   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.   R/   R0   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_sym_boundary	  s    c         C` s   t  j d d  j d	  } t  j d d  j d
  } |  j t t | | f i d d 6 |  j t t | | f i d d 6 d  S(   Ni   i   i   i   ii    R@   R3   (   i   i   (   i   i   (   RM   R   RA   RN   RO   R   (   R.   R/   R0   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRP     s    #(	   RF   RG   R>   Rs   Ru   Rx   Rz   R|   RP   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRo      s   					
				t   TestConvolve2dc           B` s#   e  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
   R4   i   i   i"   iP   ib   it   (   R   R   R
   (   R.   Rp   Rq   Rr   Rk   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRL   !  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   R@   y              ?y              @y                y               @i   g      G@y      ?      ?y       @      y      @      ?y      @        y       @      y      @       @y      @        y      @        y      @      ?y      @      y      ;@      y      G@       @(   R   R
   (   R.   Rp   Rq   RI   RJ   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRK   )  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?   R@   R4   R3   (   RM   R   R   R	   R   R   t   squeezeR   (   R.   R/   R0   R3   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_consistency_convolve_funcs@  s    	(   RF   RG   RL   RK   R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR}     s   		t   TestFFTConvolvec           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 e j d    Z d   Z RS(   c         C` sA   t  d d d g  } t t j | |  d d d d d g  d  S(   Ni   i   i   i   i
   i   g      "@(   R   R   R   R   (   R.   R7   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt	   test_realN  s    c         C` sA   t  d d d g  } t t j | |  d d d d d g  d  S(   Ni   y              ?i   y               @i   y              @i    y               @y              4@y              8@y              2@y      ?      ?y       @       @y      @      @y               @y               @y              4@y              8@y              2@(   R   R   R   R   (   R.   R7   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR:   R  s    c      
   C` s}   t  d d d g d d d g g  } t t j | |  t  d d d d d	 g d
 d d d d g d d d d d g g   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/   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_2d_real_sameW  s
    $c      	   C` s   t  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   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   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/   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_2d_complex_same^  s    $c      
   C` st   t  d d d g  } t  d d d d d d d d	 d g	  } t | | d
  } t  d d d g  } t | |  d  S(   Ni   i   i   i   i   i   i   i	   i    R4   g     A@g     D@g     G@(   R   R   R   (   R.   R/   R0   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_real_same_modef  s
    'c      
   C` s   t  d d d d d d d d d g	  } t  d d	 d g  } t | | d
  } t  d d d d d d d d d g	  } t | |  d  S(   Ni   i   i   i   i   i	   i    i   i   R4   g      "@g      4@g      9@g     A@g     D@g     G@g     C@g      <@g       @(   R   R   R   (   R.   R/   R0   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_real_same_mode2m  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 | | d  } t | |  t | | d  } t | |  t  d d d g  } t  d  d! d" d# d$ g  } t  d% d& d' g  } t | | d  } t | |  t | | 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@   y              ?y              @y                y               @y              @g     F@y              (@g      >@y              7@i0   y              @@y      @      y       @      @y      ?        y      @       @y      @      y      @        y      @      y       @        y     F@      (@y      >@      7@y      H@      @@(   R   R   R   (   R.   R/   R0   RI   RJ   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRs   t  s    '!c      
   C` s   t  d d d d d d d d d g	  } t  d d	 d g  } t  d
 d d d d d d g  } t | | d  } t | |  t | | 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@   (   R   R   R   (   R.   R/   R0   R=   R1   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_real_valid_mode  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   t   size(   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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.   R/   R0   R1   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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.   R/   R0   R1   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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 | | d  } t  j | | d  } t t  j | | d d  d  S(   Ni  i  y              ?i)  R?   RW   g|=(   RM   R]   R^   R_   R   R   R   t   allclose(   R.   R/   R0   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_random_data  s    &&c         C` s   t  j j d  d   } x |   D] } d | f } t  j j |  d t  j j |  } t  j j |  d t  j j |  } t | | d  } t  j | | d  } t | | d d d | q# Wd  S(	   Ni  c          s` sm   x t  d d  D] }  |  Vq Wx t  d d  D] }  |  Vq/ Wx( t  d  D] } t j j d d  VqK Wd  S(   Ni   id   i  i  i2   i  i'  (   t   rangeRM   R]   t   randint(   t   jt   k(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   ns  s    		s   n=%dy              ?R?   t   atolg|=t   err_msg(   RM   R]   R^   R_   R   R   R   (   R.   R   Rm   t   msgR/   R0   R1   R=   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_many_sizes  s    	&&c         C` s   t  j d d  j d	  } t  j d d  j d
  } |  j t t | | f i d d 6 |  j t t | | f i d d 6 d  S(   Ni   i   i   i   ii    R@   R3   (   i   i   (   i   i   (   RM   R   RA   RN   RO   R   (   R.   R/   R0   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRP     s    #(   RF   RG   R   R:   R   R   R   R   Rs   R   R   R;   R<   R   R   t   slowR   RP   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR   L  s   												t   TestMedFiltc           B` s   e  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	   medfilt2dRM   R   t   floatR
   (   R.   Rq   R=   Rp   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR2     s.    !!!!!!!!!'$'!!!!!!!!(c         C` si   y t  j d   Wn n Xt j d d t j } | d d !} d | _ t t  j | d  d k  d  S(   Ni
   RX   i   i   i   i   g      @(   R   R   t   NoneRM   R   t   float64t   stridesR   (   R.   t   dummyR/   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt	   test_none  s    	(   RF   RG   R2   R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/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.   Rr   Rk   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR2     s    (   RF   RG   R2   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR     s   t   TestResamplec           B` sA   e  Z d    Z d   Z d   Z d   Z e 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   (   RM   R   R   t
   get_windowR   RO   t   resamplet   resample_polyt   tileR   Rc   (   R.   t   sigt   numt   wint   sig2(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR2     s    c         C` s   |  j  d d  d  S(   NRU   RV   (   t
   _test_data(   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_fft   s    c         C` s   |  j  d d  d  S(   NRU   t	   polyphase(   R   (   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_polyphase$  s    c         C` s   |  j  d d d t  d  S(   NRU   R   t   ext(   R   t   True(   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_polyphase_extfilter(  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Wd  S(!   Nid   i1   i2   i3   ic   ie   i   i   i   g      ?g      $@g      D@i   RV   R   ii
   i   R   R   g      @g      ?g        R   gMbP?i    gGz?R   (   g      ?g      $@g      D@(   s   kaiserg      @(   i    i   (   i    i   (   RM   R   R   R   t   newaxist   sint   piR   R   R   R,   t   maxt   firwinR   t   zipRv   R   R
   Rc   t   corrcoefR   R]   t   RandomStatet   cumsumt   randnt   interp(   R.   RU   R   t   ratet   rates_tot   tt   freqsR7   t   rate_tot   t_tot   y_tost	   y_resampsRr   t   upt   downt   max_ratet   f_ct   half_lenR   t   polyargst   y_tot   y_resampt   freqt   corrt   rng(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR   ,  sR    !"((



		"'"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   R   gHz>RW   (   RM   R]   R   t   intRe   Rd   R   Rt   R   R`   t
   complex128R   R   R   R   R   R   (   R.   t   random_statet	   try_typesR   t   down_factorsRX   R7   R   Rk   t   yft   hcR8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_poly_vs_filtfilte  s     

%(	   RF   RG   R2   R   R   R   t   FalseR   R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR     s   				9t   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   t   lenR   t	   cspline1dt   cspline1d_evalR   (   R.   R8   R7   R   t   cjt   x2t   y2(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR2     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   RX   g      $@g      ?y               @g      ?(   RM   R   t   zerosRc   Rd   t   expR   R   R   R   R   R   RX   (   R.   R7   R8   t   TRq   t   cyt   xnewt   ynew(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR:     s    
(   RF   RG   R2   R:   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR     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   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR2     s    '(   RF   RG   R2   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR     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   (   RM   t   linspacet   prodRA   t   convert_dtype(   R.   Rc   R7   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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.t   copy(    (	   RX   RM   t   asarrayt   emptyRc   t   nditert   typeR   R   (   R.   t   arrRJ   t   iterR7   R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR     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   (   R   R   R   R   (   R.   R7   R0   R/   t   y_r(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank_1_IIR  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   (   R   R   R   R   (   R.   R7   R0   R/   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   R   R   R   R   (	   R.   R7   R0   R/   R  R  t   zf_rR8   t   zf(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank_1_IIR_init_cond  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   R  (   i   (   R   R   R   R   (	   R.   R7   R0   R/   R  R  R  R8   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank_1_FIR_init_cond  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   (   R   R   R   R   (   R.   R7   R0   R/   t   y_r2_a0R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   R   R   R   R   (   R.   R7   R0   R/   t   y_r2_a1R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank_2_IIR_axis_1  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   R  (   i   i   (   i   i   (   R   R   RM   t   onesR   R   R   (	   R.   R7   R0   R/   R  t	   y_r2_a0_1R  R8   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt    test_rank_2_IIR_axis_0_init_cond  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    R  (   i   i   (   i   i   (   R   R   RM   R  R   R   (	   R.   R7   R0   R/   R  t	   y_r2_a0_0R  R8   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt    test_rank_2_IIR_axis_1_init_cond  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(   R/   R0   (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   <lambda>  s    (   i   i   i   (   R   R   R   t   ndimR   RM   t   apply_along_axisR   (   R.   R7   R   R8   R  (    (   R/   R0   sB   /tmp/pip-build-7oUkmx/scipy/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(   NR  i    (   R   (   R  (   R/   R0   t   zi1(    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR    s    c         ` s   t     |  d  d S(   NR  i   (   R   (   R  (   R/   R0   R  (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR    s    (   i   i   i   (   R   R   R   R  t   listRc   RM   R  R   R  R   (   R.   R7   R   t   zi_shapeR  R8   R  t   lf0t   lf1R  R  (    (   R/   R0   R  sB   /tmp/pip-build-7oUkmx/scipy/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   (   R  (   R/   R0   (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR  ,  s    (   i   i   i   (   R   R   R   R  R   RM   R  R   (   R.   R7   R   R8   R  (    (   R/   R0   sB   /tmp/pip-build-7oUkmx/scipy/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(   NR  i    (   R   (   R  (   R/   R0   R  (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR  :  s    c         ` s   t     |  d  d S(   NR  i   (   R   (   R  (   R/   R0   R  (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR  ;  s    (   i   i   i   (   R   R   R   R  R  Rc   RM   R  R   R  R   (   R.   R7   R   R  R  R8   R  R  R  R  R  (    (   R/   R0   R  sB   /tmp/pip-build-7oUkmx/scipy/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   R  i(   i   i   i   (   R   R   R   R   Rc   RM   R  R   R   R   RO   (   R.   R7   R0   R/   t   zi_sizet   zi_fullt   zi_singt   y_fullt   zf_fullt   y_singt   zf_sing(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_zi_pseudobroadcastA  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   (   R   R   R   R   (   R.   R7   R0   R/   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_scalar_aV  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   (   R   RM   R   R  R   R   R   (   R.   R7   R0   R/   R  t   zf_expectedt
   y_expectedt   y_iirt   zf_iirt   y_firt   zf_fir(    (    sB   /tmp/pip-build-7oUkmx/scipy/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(   R   R   RO   R   (   R.   R0   R/   R7   R   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   RM   R   R3  RA   (   R.   t   x1R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   R  i    (   i   (   R   R   R   R   R   RX   R   (   R.   R7   R/   R0   R  R8   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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    (   R   R%   R   R   R
   (   R.   R/   R0   R  t   zi_1t   zi_2(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_lfiltic_bad_zi  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   iR  (   R   R   R   (	   R.   R/   R0   R  R7   t   yet   zfeR8   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_short_x_FIR  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   iiR  (   R   R   R   (	   R.   R/   R0   R  R7   R:  R;  R8   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   R   R   R   R   R   R   (   R.   R7   R0   t   b0R/   t   a0R  t   y_f(    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   R   R   R   R   R   R   (   R.   R7   R0   R>  R/   R?  R  R@  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_do_not_modify_a_b_FIR  s    !(   RF   RG   R   R   R  R  R  R	  R  R  R  R  R  R  R  R  R)  R*  R2  R3  R5  R6  R9  R<  R=  RA  RB  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR     s2   													
		
			
			`					t   TestLinearFilterFloat32c           B` s   e  Z e j d   Z RS(   Rq   (   RF   RG   RM   RX   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRC  +  s   t   TestLinearFilterFloat64c           B` s   e  Z e j d   Z RS(   R=   (   RF   RG   RM   RX   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRD  /  s   t   TestLinearFilterFloatExtendedc           B` s   e  Z e j d   Z RS(   Rr   (   RF   RG   RM   RX   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRE  3  s   t   TestLinearFilterComplex64c           B` s   e  Z e j d   Z RS(   t   F(   RF   RG   RM   RX   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRF  7  s   t   TestLinearFilterComplex128c           B` s   e  Z e j d   Z RS(   t   D(   RF   RG   RM   RX   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRH  ;  s   t   TestLinearFilterComplexExtendedc           B` s   e  Z e j d   Z RS(   t   G(   RF   RG   RM   RX   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRJ  ?  s   t   TestLinearFilterDecimalc           B` s    e  Z e j d   Z d   Z RS(   R   c         C` s   t  t |   S(   N(   R   R\   (   R.   R7   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR   E  s    (   RF   RG   RM   RX   R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRL  B  s   t   TestLinearFilterObjectc           B` s   e  Z e j d   Z e Z RS(   R   (   RF   RG   RM   RX   R   R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRM  I  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      @(   R   t	   TypeErrorR   R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_lfilter_bad_objectN  s    %%t   _TestCorrelateRealc           B` sh   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` sy   t  j d d d  j |  j  } t  j d d d  j |  j  } t  j d d d d d g  j |  j  } | | | f S(   Ni    i   i   i   i   i   i   (   RM   R   R`   t   dtR   (   R.   R/   R0   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   _setup_rank1Y  s    !!*c         C` s   |  j  t k r@ t t d  g t d  g  } t | d  n |  j   \ } } } t | | d d } t | | d d } t | |  t | |  t | j |  j   t | j |  j   d  S(   Ni   i   RT   RU   RV   (   RQ  R   R   R   t   _setup_rank3R   R   RX   (   R.   RU   R/   R0   R  t   y_fftt   y_direct(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_method`  s    !c         C` s   |  j    \ } } } t | | d  } t | | d d ! t | j |  j  t | | d  } t | | d d !d  d  d   t | j |  j  d  S(   NR@   i   i   i(   RR  R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank1_validn  s    !c         C` sO   |  j    \ } } } t | | d  } t | | d   t | j |  j  d  S(   NR4   i(   RR  R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank1_samey  s    c         C` sK   |  j    \ } } } t | | d  } t | |  t | j |  j  d  S(   NR?   (   RR  R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank1_full  s    c         C` sq  t  j d d d  j d d d j |  j  } t  j d d	 d
  j d d d j |  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 |  j } | | | f S(   Ni    i'   i(   i   i   i   t   orderRG  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@RX   (   i   i   i   (   i   i   i   (   RM   R   RA   R`   RQ  R   (   R.   R/   R0   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRS    s0    $$$c         C` s   |  j    \ } } } t | | d  } t | | d d  d d  d d  f  t | j |  j  t | | d  } t | | d d  d d  d d  f d  d  d  d  d  d  d  d  d  f  t | j |  j  d  S(   NR@   i   i   i   i   i   i(   RS  R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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 |  j  d  S(   NR4   i    ii   i(   RS  R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank3_same  s    ,c         C` sH   |  j    \ } } } t | |  } t | |  t | j |  j  d  S(   N(   RS  R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_rank3_all  s    c         C` s   t  j d d  j d	  } t  j d d  j d
  } |  j t t | | f i d d 6 |  j t t | | f i d d 6 d  S(   Ni   i   i   i   ii    R@   R3   (   i   i   (   i   i   (   RM   R   RA   RN   RO   R   (   R.   R/   R0   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRP     s    #N(   RF   RG   R   RQ  RR  RV  RW  RX  RY  RS  R[  R\  R]  RP   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRP  V  s   									c         ` s6   d | f   f d     Y} d   j  j   | _  | S(   Nt   TestCorrelateXc           ` s   e  Z   Z RS(    (   RF   RG   RQ  (    (   t   datatype(    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR^    s   s   TestCorrelate%s(   RF   t   title(   R_  t   baseR^  (    (   R_  sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   _get_testcorrelate_class  s    t   _TestCorrelateComplexc           B` sS   e  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 j d  t  j j d  j |  j  } | d t  j j d  j |  j  7} t  j j d  j |  j  } | d t  j j d  j |  j  7} t | j | j d | t | j | j d | j |  j  } | d t | j | j d | t | j | j d | 7} | | | f S(   Ni	   i
   y              ?i   R3   (	   RM   R]   R^   R   R`   RQ  R   t   realt   imag(   R.   R3   R/   R0   R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRR    s    &&(c         C` s   |  j  d  \ } } } t | | d  } t | | d |  j t | j |  j  t | | d  } t | | d  d  d  j   d |  j t | j |  j  d  S(   NR@   R   i(   RR  R   R   R   R   RX   RQ  t   conj(   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRW    s    )c         C` sW   |  j  d  \ } } } t | | d  } t | | d |  j t | j |  j  d  S(   NR4   R   (   RR  R   R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRX    s    c         C` sW   |  j  d  \ } } } t | | d  } t | | d |  j t | j |  j  d  S(   NR?   R   (   RR  R   R   R   R   RX   RQ  (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRY    s    c      	   C` sw   t  j d d d g d |  j } t  j d d d d g d |  j } t | |  } t | d d d d d d g  d  S(    Ng        y                g      ?y              ?g       @y               @RX   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       @      (   RM   R   RQ  R   R   (   R.   R=   R   R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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              @R3   R4   g      $@g      <@g      6@y                y      ?      ?y       @       @y      ?      @y       @      @y      @      @y      @      @y      $@       y      <@      y      6@      (   R   R   (   R.   R=   R   R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_swap_same  s    c         C` sH  t  j j d d d  j |  j  } | d t  j j d d d  j |  j  7} t  j j d d d  j |  j  } | d t  j j d d d  j |  j  7} t | j | j  t | j | j  j |  j  } | d t | j | j  t | j | j  7} t | | d  } t | | d |  j	 d t
 | j |  j  d  S(	   Ni
   i   i   y              ?i   R?   R   i   (   RM   R]   R   R`   RQ  R   Rd  Re  R   R   R   RX   (   R.   R/   R0   R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt
   test_rank3  s    $,$,"1N(   RF   RG   R   RQ  R   RR  RW  RX  RY  Rg  Rh  Ri  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRc    s   						t   TestCorrelate2dc           B` s   e  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?   R@   R4   R3   (   RM   R   R   R	   R   R   R~   t   correlate2d(   R.   R/   R0   R3   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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
  } |  j t t j | | f i d d 6 |  j t t j | | f i d d 6 d  S(   Ni   i   i   i   ii    R@   R3   (   i   i   (   i   i   (   RM   R   RA   RN   RO   R   Rk  (   R.   R/   R0   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRP   2  s    &(   RF   RG   Rl  RP   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRj    s   	i   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      @(   RM   R   R   R   (   R.   R/   R0   t   zi_expectedR  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR2   I  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   RW   g-q=(   RM   R   R   R   (   R.   R0   R/   R  t   zi2(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_scale_invarianceP  s
    (   RF   RG   R2   Rp  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRm  G  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(   NRr  t   sos(   t   filtfilt_kindR    R   R!   R(   (   R.   t   zpkR7   R   R   t   padlenRU   t   irlenR0   R/   Ru  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   R   g+=(   R*   R   RM   R   R   (   R.   Rw  RJ   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR2   f  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      ?R   Rw  gh㈵>Rx  g-C6?R   i
   i  (   RM   R   R   R   R   t   absR   R   t   ceilt   logR   R   t   vstackR   Rc   R   (   R.   R   R   t   xlowt   xhighR7   Rw  t   rt   epsRm   R8   t   errt   x2dt   y2dt   y2dt(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt	   test_sinek  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      ?R   Rw  Rx  i    R   i   i   g     [@g     @(   RM   R   RA   R   R   t   swapaxesR
   (   R.   R7   Rw  t   y0t   y1R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt	   test_axis  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(   NRr  g      ?i   i
   RW   g+=R   (   Rv  R   R   RM   R   R   (   R.   RJ   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_acoeff  s    $c         C` s%  |  j  d k r t 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(   NRr  s$   gust only implemented for TF systemsg      ?g       @g      ?g      i    g333333?g?i   g      ?g      ?(   Rv  R   RM   R   R+   R   (   R.   R7   R0   R/   R8   t   z1t   z2(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_gust_simple  s    51c         C` st   |  j  d k r t d   n  t j d  } d } d } t | | | d d } | | d | } t | |  d  S(	   NRr  s$   gust only implemented for TF systemsi   g      @g       @RU   t   gusti   (   Rv  R   RM   R   R   R   (   R.   R7   R0   R/   R8   RI   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_gust_scalars  s    N(   RF   RG   Rv  R   R   R2   R  R  R  R  R  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRq  Z  s   			"	
		t   TestSOSFiltFiltc           B` s   e  Z d  Z d   Z RS(   Ru  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?R   Rw  R   g-q=R   s   order=%sN(   RM   R]   R   R   R   R   R   R    R!   R   R(   R   (	   R.   R7   RZ  Rw  R0   R/   Ru  R8   t   y_sos(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_equivalence  s    (   RF   RG   Rv  R  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR    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   R  i    Nii   (   R   R   R   RM   t   sum(   t   icsR0   R/   R7   t   mt   z0ft   z0bR@  t   y_fbt   y_bt   y_bft   value(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   filtfilt_gust_opt_func  s    

66i   t   argst   xtolg|=t   ftolg-q=t   maxfuni'  t   maxitert   full_outputt   dispi    s5   minimization failed in filtfilt_gust_opt: warnflag=%dNiR  (   R   R   R   RM   t   concatenatet   meanR   R   R   t   RuntimeErrorR   (   R0   R/   R7   R  R  R  R  t   resultt   optt   foptt   nitert   funcallst   warnflagR  R  R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   RU   R  Ry  ii   RW   g&.>R   g|=(   RM   R]   R^   R   R   R+   R  Rc   t
   empty_likeR   R   R   R   R   R  R   (   R0   R/   Rc   R   Ry  R7   R8   t   ygt   zg1t   zg2t   xxt	   out_shapeR   R  t   zo1t   zo2R=   t   indx(    (    sB   /tmp/pip-build-7oUkmx/scipy/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(   NR@   R4   R?   i   i   i   i   RT   R3   t   measureRV   i
   RR   RS   RX   i3   i   i   (   i   i   s   directI       (   RM   R]   R   R   R   R   R   R   t   dictt   keyst   hasattrR  R   R   Rh   R   (   R3   t   ndimsRm   R   t   true_methodR7   Rk   RU   t
   method_tryt   timest   not_fft_conv_supp(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_choose_conv_method  s.    !,#c          c` sF  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]q } d	 | }	 t | | |	 f d
 | f VxD t d  D]6 }
 d d d g } |	 | |
 <t | | | |
 | f Vq Wq Wd | d } t | | | f d
 | f Vd  S(   Ni   g{Gz?ix   gffffff?R   Rw  g|=i{   i   i    i   i2   (   R   t   ellipRM   R   Rz  R   R{  R|  R]   R^   R    R   R  R   (   R9   t   pR   R  R  t   approx_impulse_lenR0   R/   Ry  t
   signal_lenR   Rc   t   length(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_filtfilt_gust4  s    '+

t   TestDecimatec           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` 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      ?Rm   i   i   (   RM   R   R   RN  R   t   decimate(   R.   R7   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_bad_argsT  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   Rm   i   t   ftypet   iirt
   zero_phase(   RM   R   R   R  R   t   roundR
   (   R.   R7   R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_basic_IIRY  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   Rm   i   R  t   firR  (   RM   R   R   R  R   R  R
   (   R.   R7   R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   RM   R   R   R  R   R   Rc   (   R.   R9   t   d0t   d1(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt
   test_shapec  s
    c         C` s   |  j  d d d t  d  S(   NRU   R  R  (   t   _test_phaseshiftR   (   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_phaseshift_FIRk  s    c         C` s   |  j  d d d t  d  S(   NRU   R  R  (   R  R   (   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_zero_phase_FIRn  s    c         C` s   |  j  d d d t  d  S(   NRU   R  R  (   R  R   (   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_phaseshift_IIRq  s    c         C` s   |  j  d d d t  d  S(   NRU   R  R  (   R  R   (   R.   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_zero_phase_IIRt  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
 d  } x | D]}	 | |	 }
 t j |	 | d  t |	  } t j d t j | d  d   t j f |  t j	 | j
 d  } | d k r]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    R   gMbP?RW   y               @y               @(   R   RM   R   R   R   R   R   R   R   t   tukeyR   t   dltiR   t   cheby1R   t   freqzR   t   denRz  t	   ones_likeR  Rd  R  Rf  R   t   angle(   R.   RU   R  R   R   t   t_totR   R   R=   R   R  R   t   d_tosRm   t   systemt   wcRi   t   h_respsR   t	   h_resampst   subnyq(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR  w  s@    !.
!.(	#(   RF   RG   R  R  R  R  R  R  R  R  R  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR  S  s   								t   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      ?        (   RM   R   R   RO   R   R   (   R.   R7   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR    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   (   RM   R   R   R   t   cosR}  R   Rz  R  Rd  R	   R  Rc   Re  (   R.   R   R   R   R?  t   a1t   a2t   a3R/   Rk   t   h_abst   h_anglet   h_real(    (    sB   /tmp/pip-build-7oUkmx/scipy/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 f Vt t | d  | d f Vt | d d d d } t | j d d g f Vt t | j d d d d j d d g f V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. f Vd  S(C   Ni   i   i   R   ii    R  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\?i   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\(	   RM   R   RA   R   R   R   Rc   R   R	   (   R.   R/   t   aat   aant   a0hilb(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_hilbert_axisN  s8     ,	(   RF   RG   R  R  R  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR    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   R  i    y      ?        (   i   i    (   i   (   RM   R   R   RO   R   R   RA   (   R.   R7   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR    s    (   RF   RG   R  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/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(   s   avgs   means   minR  s   maxs   maximum(   R"   R   (   R.   R  R  R   R  R  R  R  t   rtypesR  t   ridiculous_toleranceR/   R0   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   R  R  R   R  R   R  R  g333333?g98ȿgUUUUUUſgll?(   s   avgs   means   mins   minimums   maxs   maximum(   R"   R   (
   R.   R  R  R   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_invres_repeated_roots7  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    iiR  t   mediang333333?g98ȿgUUUUUUſgll?(   R   RO   R"   (   R.   R  R  R   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_invres_bad_rtypeC  s    (   RF   RG   R  R  R  R
  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   RM   R   R$   R   R  R	   R   (   R.   t   eventst   periodt   targ_strengtht
   targ_phaset   strengtht   phase(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_single_1dperiodL  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?(   RM   R   R$   R   R  R   R	   R   (   R.   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_single_2dperiodY  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    (   RM   R   R$   R   R  R	   R   (   R.   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_equal_1dperiodf  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      ?(   RM   R   R$   R   R  R	   R   (   R.   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_equal_2dperiods  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   (   RM   R   R$   R   R  R	   R   (   R.   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_spaced_1dperiod  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?(   RM   R   R$   R   R  R	   R   (   R.   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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?(   RM   R   R$   R   R  R	   R   (   R.   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_partial_1dperiod  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?(   RM   R   R$   R   R  R	   R   (   R.   R  R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_partial_2dperiod  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      ?(   RM   R   R$   R   R  R	   (   R.   R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   RM   R   R$   R   R  R	   (   R.   R  R  R  R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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      ?(   RM   R   R   RO   R$   (   R.   R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   RM   R   R   RO   R$   (   R.   R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_2d_period_ValueError  s    c         C` s#   d } d } t  t t | |  d  S(   Ng      ?i    (   R   RO   R$   (   R.   R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_zero_period_ValueError  s    c         C` s#   d } d } t  t t | |  d  S(   Ng      ?i(   R   RO   R$   (   R.   R  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_negative_period_ValueError  s    (   RF   RG   R  R  R  R  R  R  R  R  R  R  R  R  R  R  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR  J  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   (   RM   R   R`   RQ  R   R   R'   R&   R  R  Rc   R   (   R.   R7   R0   R/   R  Ru  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   RX   ii   ii   iR   (   i   i   (
   RM   R   R   RA   R`   RQ  R   R'   R&   R   (   R.   Rc   R7   R0   R/   R
  R  R8   (    (    sB   /tmp/pip-build-7oUkmx/scipy/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   (   RM   R   R   RA   R   R`   RQ  R'   R&   R   Rc   R   R   (   R.   Rc   R7   R0   R/   R8   t   iR   (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyRi    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   R  i   i    i   i   i   i(   i   i   (   i   i   (   i    i    (   R   R   RM   R   R   t   r_R]   R_   R   R   R   R'   R)   R  Rc   R   RO   R   (   R.   t   b1R  t   b2R  t   b3R  R0   R/   Ru  R7   t   y_trueR  R  R8   R  t   zi_nd(    (    sB   /tmp/pip-build-7oUkmx/scipy/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   R   i   i   i   i   gffffff?R   Rw  i   R   R  RW   g|=R   gvIh%<=(   i   i   i   (   RM   R]   R   R   R   R   R!   Rc   R  R   R'   R  R   R)   R    R   R   R   (   R.   R7   Rw  Ru  t	   nsectionsR   t   shpt   z0R   R  R  R  R   R  R8   R  R0   R/   t   y_tf(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt    test_initial_conditions_3d_axis1F  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   R  R   i   (   i   i   i   (   i   i   (   i   i   i   i   (   RM   R   R   RO   R'   (   R.   R7   Ru  R  (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_bad_zi_shapes  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?R   Ru  i(   R  RW   gvIh%<=i   R   i(	   R   R   R)   R'   RM   R  R   R   R  (   R.   Ru  R  R8   R  t   ss(    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   test_sosfilt_zi{  s    $W(   RF   RG   RM   R   RQ  R!  R"  Ri  R+  R0  R1  R3  (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyR     s   					&	-	t   __main__(x   t
   __future__R    R   R   t   sysR   R   t	   itertoolsR   t   noseR   t   numpy.testingR   R   R   R	   R
   R   R   R   R   R   t   numpyR   R   RM   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.signaltoolsR+   t   version_infot   majort   minort   mathR,   t	   fractionsR-   RH   Ro   R}   R   R   R   R   R   R   R   RC  RD  RE  RF  RH  RJ  RL  RM  RO  RP  Rb  t   ubytet   bytet   ushortt   shortt   uintR   t	   ulonglongRe   R   t
   longdoubleR_  t   clst   globalsRF   Rc  Rj  t   csinglet   cdoublet   clongdoublet   finfot	   precisionRm  Rq  R  R  R   R  R  R  R  t   objectR  R  R  R  R   (    (    (    sB   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_signaltools.pyt   <module>   s~   F$T_L-+w 	q	$H$#`	, 		UW9