
˽Xc           @` s  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z d  d l m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d l m  Z  d e
 f d     YZ! d	 e
 f d
     YZ" d f  d     YZ# d e
 f d     YZ$ d e
 f d     YZ% d e
 f d     YZ& d e
 f d     YZ' e( d k re	   n  d S(   i    (   t   divisiont   print_functiont   absolute_importN(
   t   assert_t   run_module_suitet   TestCaset   dect   assert_allcloset   assert_array_equalt   assert_equalt   assert_array_almost_equal_nulpt   assert_raisest   assert_approx_equal(   t   signalt   fftpack(	   t   periodogramt   welcht   lombscarglet   csdt	   coherencet   spectrogramt   stftt   istftt
   check_COLA(   t   _spectral_helpert   TestPeriodogramc           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 RS(   c         C` s   t  j d  } d | d <t |  \ } } t | t  j d d d   t  j d  } d | d <| d c d <| d } t | |  d  S(	   Ni   i   i    g      ?i	   ig       @i   (   t   npt   zerosR   R   t   linspacet   ones(   t   selft   xt   ft   pt   q(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_real_onesided_even   s    


c         C` s   t  j d  } d | d <t |  \ } } t | t  j d  d  t  j d  } d | d <| d
 9} t | | d d	 d  S(   Ni   i   i    g       @g      .@i   g       @t   atolgV瞯<g?(   R   R   R   R   t   arangeR   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_real_onesided_odd   s    


c         C` sx   t  j d  } d | d <t | d t \ } } t | t j d d   t  j d  d } d | d <t | |  d  S(   Ni   i   i    t   return_onesidedg      ?g      0@(   R   R   R   t   FalseR   R   t   fftfreqR   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_real_twosided%   s    

c         C` sz   t  j d  } d | d <t | d d \ } } t | d d \ } } t | t  j d d d   t | | d	  d  S(
   Ni   i   i    t   scalingt   spectrumt   densityg      ?i	   g      0@(   R   R   R   R   R   (   R   R   R    R!   t   gR"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_real_spectrum.   s    
c         C` s   t  j d d t } d | d <t |  \ } } t | t  j d d d   t  j d  } d | d <| d c d <| d	 } t | |  d  S(
   Ni   t   dtypei   i    g      ?i	   ig       @i   (   R   R   t   intR   R   R   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_integer_even6   s    


c         C` s   t  j d d t } d | d <t |  \ } } t | t  j d  d  t  j d  } d | d <| d 9} t | | d	 d
 d  S(   Ni   R0   i   i    g       @g      .@i   g       @R$   gV瞯<g?(   R   R   R1   R   R   R%   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_integer_oddA   s    


c         C` s~   t  j d d t } d | d <t | d t \ } } t | t j d d   t  j d  d } d | d <t | |  d  S(   Ni   R0   i   i    R'   g      ?g      0@(	   R   R   R1   R   R(   R   R   R)   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_integer_twosidedK   s    

c         C` s   t  j d t  j  } d | d <t | d t \ } } t | t j d d   d t  j d  d } d | d <t | |  d  S(	   Ni   g      ?y               @i    R'   g      @g      0@y      ?       @(	   R   R   t
   complex128R   R(   R   R   R)   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_complexT   s    

c         C` s)   t  t t t j d t j  d d d  S(   Ni   R+   t   foo(   R   t
   ValueErrorR   R   R   R5   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_unk_scaling]   s    c         C` s   t  j d d t  j } | j d
  } d | d  d   d  d   d f <t |  \ } } t | j d  t | d d d  d   f | d d d  d   f d	  t | d d d  d   f  \ } } t | t  j d  d   f | d d  d   f d	  d  S(   Ni   R0   i   i   i
   g      ?i    i   i<   (   i   i   i
   (   i   i   i   (	   R   R   t   float64t   reshapeR   R   t   shapeR
   t   newaxis(   R   R   R    R!   t   f0t   p0(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_nd_axis_m1a   s    6%c         C` s   t  j d d t  j } | j d  } d | d d  d   d  d   f <t | d d \ } } t | j d  t | d  d   d d f | d  d   d d f d
  t | d  d   d d f  \ } } t | | d  d   d d f  d  S(   Ni   R0   i
   i   i   g      ?i    t   axisi   i<   (   i
   i   i   (   i   i   i   (   R   R   R:   R;   R   R   R<   R
   (   R   R   R    R!   R>   R?   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_nd_axis_0k   s    6%c         C` s   t  j d  } d | d <t | d d  \ } } t j d d  } t | d |  \ } } t | |  t | |  t j d d  } t t t | d |  d  S(   Ni   i   i    i
   t   hanni    (   R   R   R   R   t
   get_windowR
   R   R8   (   R   R   R    R!   t   wint   fet   pet   win_err(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_window_externalu   s    
c         C` s   t  j d  } d | d <t |  \ } } t | d d \ } } t | | d  d  d   t | | d  d  d   t | j d  d  S(	   Ni   i   i    t   nffti    i   i   (   i   (   R   R   R   R   R   R<   (   R   R   R    R!   t   fpt   pp(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_padded_fft   s    
c         C` s   t  g   \ } } t | j d  t | j d  xR d d d	 g D]A } t  t j |   \ } } t | j |  t | j |  qB Wd  S(
   Ni    i   i   i   (   i    (   i    (   i    (   i   i    (   i    i   i   (   R   R   R<   R   t   empty(   R   R    R!   R<   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_empty_input   s    c         C` s\   xU d d g D]G } t  t j |  d d \ } } t | j |  t | j |  q Wd  S(	   Ni   i    i   i   RA   i   (   i   i    (   i    i   i   (   R   R   RN   R   R<   (   R   R<   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_empty_input_other_axis   s    !c         C` s   t  j d  } d | d <t | d d \ } } t | t  j d d d   t  j d  } d | d <| d c d	 <| d
 } t | |  d  S(   Ni   i   i    RJ   i   g      ?i	   ig       @i   (   R   R   R   R   R   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_short_nfft   s    


c         C` s   t  j d  } d | d <t | d d \ } } t | t  j d d d   t  j d  } d | d <| d c d <| d	 } t | |  d  S(
   Ni   i   i    RJ   g      ?i	   ig       @i   (   R   R   R   R   R   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_nfft_is_xshape   s    


c         C` s   t  j d d  } d | d <t |  \ } } t | t  j d d d   t  j d d  } d | d <| d c d <| d	 } t | |  t | j | j k  d  S(
   Ni   R    i   i    g      ?i	   ig       @i   (   R   R   R   R   R   R   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_real_onesided_even_32   s    


c         C` s   t  j d d  } d | d <t |  \ } } t | t  j d  d  t  j d d  } d | d <| d 9} t | | d	 d
 t | j | j k  d  S(   Ni   R    i   i    g       @g      .@i   g       @R$   gHz>g?(   R   R   R   R   R%   R   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_real_onesided_odd_32   s    


c         C` s   t  j d d  } d | d <t | d t \ } } t | t j d d   t  j d d  d } d | d <t | |  t | j	 | j	 k  d  S(   Ni   R    i   i    R'   g      ?g      0@(
   R   R   R   R(   R   R   R)   R   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_real_twosided_32   s    

c         C` s   t  j d d  } d
 | d <t | d t \ } } t | t j d d   d t  j d d  d	 } d | d <t | |  t | j	 | j	 k  d  S(   Ni   t   Fg      ?y               @i    R'   g      @R    g      0@y      ?       @(
   R   R   R   R(   R   R   R)   R   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_complex_32   s    

(   t   __name__t
   __module__R#   R&   R*   R/   R2   R3   R4   R6   R9   R@   RB   RI   RM   RO   RP   RQ   RR   RS   RT   RU   RW   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR      s*   		
					
						
	
											
t	   TestWelchc           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 d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j d  } d | d <d | d <t | d d \ } } t | t  j d d d   t  j d d	 d
 d
 d g  } t | | d d d d d  S(   Ni   i   i    i   t   npersegg      ?i   giKGUU?gS8?g#q?g#q?R$   gHz>t   rtol(   R   R   R   R   R   t   array(   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR#      s    

c         C` s   t  j d  } d | d <d | d <t | d d \ } } t | t  j d  d  t  j d	 d
 d d d g  } t | | d d d d d  S(   Ni   i   i    i   R[   i	   g      @g      "@g9?g?gp0?R$   gHz>R\   (   R   R   R   R   R%   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR&      s    

c      	   C` s   t  j d  } d | d <d | d <t | d d d t \ } } t | t j d d   t  j d d	 d
 d
 d
 d
 d
 d	 g  } t | | d d d d d  S(   Ni   i   i    i   R[   R'   g      ?giKGUU?gS8?g#q?R$   gHz>R\   (   R   R   R   R(   R   R   R)   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR*      s    

c         C` s   t  j d  } d | d <d | d <t | d d d d \ } } t | t  j d d d	   t  j d
 d d d d g  } t | | d d d d d  S(   Ni   i   i    i   R[   R+   R,   g      ?i   g      ?g-UU?g.iqUU?g-UU?R$   gHz>R\   (   R   R   R   R   R   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR/      s    

c         C` s   t  j d d t } d | d <d | d <t | d d \ } } t | t  j d d d   t  j d	 d
 d d d g  } t | | d d d d d  S(   Ni   R0   i   i    i   R[   g      ?i   giKGUU?gS8?g#q?g#q?R$   gHz>R\   (   R   R   R1   R   R   R   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_integer_onesided_even  s    

c         C` s   t  j d d t } d | d <d | d <t | d d \ } } t | t  j d  d	  t  j d
 d d d d g  } t | | d d d d d  S(   Ni   R0   i   i    i   R[   i	   g      @g      "@g9?g?gp0?R$   gHz>R\   (   R   R   R1   R   R   R%   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_integer_onesided_odd  s    

c      	   C` s   t  j d d t } d | d <d | d <t | d d d t \ } } t | t j d d   t  j d	 d
 d d d d d d
 g  } t | | d d d d d  S(   Ni   R0   i   i    i   R[   R'   g      ?giKGUU?gS8?g#q?R$   gHz>R\   (	   R   R   R1   R   R(   R   R   R)   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR4     s    

c      	   C` s   t  j d t  j  } d | d <d | d <t | d d d t \ } } t | t j d d   t  j d d	 d
 d
 d
 d
 d
 d	 g  } t | | d d d d d  S(   Ni   g      ?y               @i    i   R[   R'   g&>?g#q?gn)t?R$   gHz>R\   y      ?       @y      ?       @(	   R   R   R5   R   R(   R   R   R)   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR6   "  s    

c         C` s/   t  t t t j d t j  d d d d d  S(   Ni   R+   R7   R[   (   R   R8   R   R   R   R5   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR9   ,  s    c         C` sZ   t  j d d t  j d } t | d d d d \ } } t | t  j |  d d d  S(	   Ni
   R0   g{Gz?R[   t   detrendt   linearR$   gV瞯<(   R   R%   R:   R   R   t
   zeros_like(   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_detrend_linear0  s    c         C` s   t  j d d t  j d } t | d d d t \ } } t | d d d d   \ } } t | | d d t | | d d d  S(	   Ni
   R0   g{Gz?R[   R`   c         S` s   |  S(   N(    (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   <lambda>8  s    R$   gV瞯<(   R   R%   R:   R   R(   R   (   R   R   t   f1t   p1t   f2t   p2(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_no_detrending5  s
    !c         C` s]   t  j d d t  j d } t | d d d d   \ } } t | t  j |  d d d  S(	   Ni
   R0   g{Gz?R[   R`   c         S` s   t  j |  d d S(   Nt   typet   l(   R   R`   (   t   seg(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRd   ?  s    R$   gV瞯<(   R   R%   R:   R   R   Rb   (   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_detrend_external<  s    c         C` sl   t  j d d t  j d } | j d  } t | d d d d   \ } } t | t  j |  d	 d
 d  S(   Ni(   R0   g{Gz?i   i
   R[   R`   c         S` s   t  j |  d d S(   NRj   Rk   (   R   R`   (   Rl   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRd   F  s    R$   gV瞯<(   i   i   i
   (   R   R%   R:   R;   R   R   Rb   (   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_detrend_external_nd_m1B  s
    c         C` s   t  j d d t  j d } | j d  } t  j | d d  } t | d d d	 d d
 d   \ } } t | t  j |  d d d  S(   Ni   R0   g{Gz?i   i   i
   i    R[   RA   R`   c         S` s   t  j |  d d d d S(   NRA   i    Rj   Rk   (   R   R`   (   Rl   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRd   N  s    R$   gV瞯<(   i   i   i
   (   R   R%   R:   R;   t   rollaxisR   R   Rb   (   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_detrend_external_nd_0I  s    c         C` s   t  j d d t  j d } | j d  } t | d d \ } } t | j d  t | d	 d	 d  d   f | d d	 d  d   f d
 d d d t | d	 d	 d  d   f d d \ } } t | t  j d  d   f | d d  d   f d
 d d d d  S(   Ni   R0   g{Gz?i   i   i
   R[   i   i    R$   gvIh%<=R\   (   i   i   i
   (   i   i   i   (	   R   R%   R:   R;   R   R   R<   R   R=   (   R   R   R    R!   R>   R?   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR@   Q  s    ?+c         C` s   t  j d d t  j d } | j d  } t | d d d d	 \ } } t | j d  t | d  d   d	 d	 f | d  d   d d	 f d d d d t | d  d   d	 d	 f d d \ } } t | | d  d   d d	 f d d d d d  S(   Ni   R0   g{Gz?i
   i   i   R[   RA   i    i   R$   gvIh%<=R\   (   i
   i   i   (   i   i   i   (   R   R%   R:   R;   R   R   R<   R   (   R   R   R    R!   R>   R?   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRB   Z  s    ?+c         C` s   t  j d  } d | d <d | d <t | d d d d \ } } t j d d  } t | d | d d  \ } } t | |  t | |  t | j d  t | j d  t	 t
 t | d | d d	 t j d d
  } t	 t
 t | d | d d  d  S(   Ni   i   i    i   i
   RC   R[   i   i   i    (   i   (   i   (   R   R   R   R   RD   t   NoneR
   R   R<   R   R8   (   R   R   R    R!   RE   RF   RG   RH   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRI   c  s    

c         C` s   t  g   \ } } t | j d  t | j d  xR d d d	 g D]A } t  t j |   \ } } t | j |  t | j |  qB Wd  S(
   Ni    i   i   i   (   i    (   i    (   i    (   i   i    (   i    i   i   (   R   R   R<   R   RN   (   R   R    R!   R<   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRO   t  s    c         C` s\   xU d d g D]G } t  t j |  d d \ } } t | j |  t | j |  q Wd  S(	   Ni   i    i   i   RA   i   (   i   i    (   i    i   i   (   R   R   RN   R   R<   (   R   R<   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRP   }  s    !c      
   C` s   t  j d  } d | d <t j   K t j d t  t | d d \ } } t | d d d d \ } } Wd  QXt | d d \ } } t | |  t | |  t | |  t | |  d  S(	   Ni   i   i    t   ignoret   windowRC   R[   i   (   R   R   t   warningst   catch_warningst   simplefiltert   UserWarningR   R   (   R   R   R    R!   Re   Rf   Rg   Rh   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_short_data  s    
c         C` s   t  j   } t  j d t  t t t t j d  d t j	 d d d d d g   t t t t j d  d t j
 d  j d   Wd  QXd  S(   NRr   i   i   i   i   i   (   i   i   (   Rt   Ru   Rv   Rw   R   R8   R   R   R   R]   R%   R;   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_window_long_or_nd  s    c         C` s   t  j d  } d | d  d  d  <t | d d d d \ } } t  j d d d d d d d d d g	  } t | | d d d  S(   Ni@   i   i   R[   i   t   noverlapi   i    g      ?g      (@g      @g      @g      @R$   g-q=gUUUUUU?gUUUUUU?g?gUUUUUU?g?gUUUUUU?g?gUUUUUU?(   R   R   R   R]   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_nondefault_noverlap  s    c         C` s)   t  t t t j d  d d d d  d  S(   Ni   i   RC   i   i   (   R   R8   R   R   R   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_bad_noverlap  s    c         C` s)   t  t t t j d  d d d d d  S(   Ni   RJ   i   R[   i   (   R   R8   R   R   R   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_nfft_too_short  s    c         C` s   t  j d d  } d | d <d | d <t | d d \ } } t | t  j d d d   t  j d	 d
 d d d g d  } t | | d d d d t | j | j k  d  S(   Ni   R    i   i    i   R[   g      ?i   giKGUU?gS8?g#q?g#q?R$   gHz>R\   (   R   R   R   R   R   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRS     s    

c         C` s   t  j d d  } d | d <d | d <t | d d \ } } t | t  j d  d	  t  j d
 d d d d g d  } t | | d d d d t | j | j k  d  S(   Ni   R    i   i    i   R[   i	   g      @g      "@gx:?gyѲI?gp0?gw0?R$   gHz>R\   (   R   R   R   R   R%   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRT     s    

c      	   C` s   t  j d d  } d | d <d | d <t | d d d t \ } } t | t j d d   t  j d	 d
 d d d d d d
 g d  } t | | d d d d t | j	 | j	 k  d  S(   Ni   R    i   i    i   R[   R'   g      ?giKGUU?gS8?g#q?R$   gHz>R\   (
   R   R   R   R(   R   R   R)   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRU     s    

c      	   C` s   t  j d d  } d | d <d | d <t | d d d t \ } } t | t j d d   t  j d	 d
 d d d d d d
 g d  } t | | d d d d t | j	 | j	 k d | j	 | j	 f  d  S(   Ni   RV   g      ?y               @i    i   R[   R'   g%?gA2q?gd^?g~?R    R$   gHz>R\   s   dtype mismatch, %s, %sy      ?       @y      ?       @(
   R   R   R   R(   R   R   R)   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRW     s    

c         C` s  t  j d  } d } t j | d  | d d  } | d c d 9<t | d d d	 | \ } } t | d d
 d	 | \ } } t | |  t | |  d } t j | d  | d d  } t | d d d	 | \ } } t | d d
 d	 | \ } } t | |  t | |  d  S(   Ni   i   g      ?i   i   iR[   i   RJ   i   i   (   R   R   R   R)   R   R   (   R   R   RJ   R    t   foddt   _t   feven(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_padded_freqs  s    c         C` s2  d } d } t  | d  } d } t  | | |  } t j |  | } | t j d t j | |  } x d d d d
 g D] } t | d | d | d | d d \ }	 }
 t | d | d | d | d d \ } } t |
 | | d d  t t j t j | |   | t j d  d d d q~ Wd  S(   Ni   g     @i
   i,  i   RC   t   bartlettt   tukeyg?t   flattopt   fsR[   Rs   R+   R,   R-   g       @R\   gMbP?(   R   g?(	   R1   R   R%   t   sint   piR   R   t   sqrtt   trapz(   R   t   AR   R[   t   fsigt   iit   ttR   Rs   R   t   p_spect   freqt   p_dens(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_window_correction  s    "2(    RX   RY   R#   R&   R*   R/   R^   R_   R4   R6   R9   Rc   Ri   Rm   Rn   Rp   R@   RB   RI   RO   RP   Rx   Ry   R{   R|   R}   RS   RT   RU   RW   R   R   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRZ      s<   	
	
	
	
	
	
	
	
																								t   TestCSDc           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 d   Z d   Z d   Z d   Z d   Z d   Z  RS(   c         C` s   t  j d  } t  j d  } t  j d d d  } t  j d d t  j } t | | d d \ } } t | |  t | |  d  S(   Ni   i   i    g      ?i   R0   R[   (   R   R   R   R5   R   R   (   R   R   t   yR    t   cRe   t   c1(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_pad_shorter_x  s    c         C` s   t  j d  } t  j d  } t  j d d d  } t  j d d t  j } t | | d d \ } } t | |  t | |  d  S(   Ni   i   i    g      ?i   R0   R[   (   R   R   R   R5   R   R   (   R   R   R   R    R   Re   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_pad_shorter_y  s    c         C` s   t  j d  } d | d <d | d <t | | d d \ } } t | t  j d d d   t  j d d	 d
 d
 d g  } t | | d d d d d  S(   Ni   i   i    i   R[   g      ?i   giKGUU?gS8?g#q?g#q?R$   gHz>R\   (   R   R   R   R   R   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR#     s    

c         C` s   t  j d  } d | d <d | d <t | | d d \ } } t | t  j d  d  t  j d	 d
 d d d g  } t | | d d d d d  S(   Ni   i   i    i   R[   i	   g      @g      "@g9?g?gp0?R$   gHz>R\   (   R   R   R   R   R%   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR&   !  s    

c      	   C` s   t  j d  } d | d <d | d <t | | d d d t \ } } t | t j d d   t  j d d	 d
 d
 d
 d
 d
 d	 g  } t | | d d d d d  S(   Ni   i   i    i   R[   R'   g      ?giKGUU?gS8?g#q?R$   gHz>R\   (   R   R   R   R(   R   R   R)   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR*   +  s    

!c         C` s   t  j d  } d | d <d | d <t | | d d d d \ } } t | t  j d d d	   t  j d
 d d d d g  } t | | d d d d d  S(   Ni   i   i    i   R[   R+   R,   g      ?i   g      ?g-UU?g.iqUU?g-UU?R$   gHz>R\   (   R   R   R   R   R   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR/   5  s    

!c         C` s   t  j d d t } d | d <d | d <t | | d d \ } } t | t  j d d d   t  j d	 d
 d d d g  } t | | d d d d d  S(   Ni   R0   i   i    i   R[   g      ?i   giKGUU?gS8?g#q?g#q?R$   gHz>R\   (   R   R   R1   R   R   R   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR^   ?  s    

c         C` s   t  j d d t } d | d <d | d <t | | d d \ } } t | t  j d  d	  t  j d
 d d d d g  } t | | d d d d d  S(   Ni   R0   i   i    i   R[   i	   g      @g      "@g9?g?gp0?R$   gHz>R\   (   R   R   R1   R   R   R%   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR_   I  s    

c      	   C` s   t  j d d t } d | d <d | d <t | | d d d t \ } } t | t j d d   t  j d	 d
 d d d d d d
 g  } t | | d d d d d  S(   Ni   R0   i   i    i   R[   R'   g      ?giKGUU?gS8?g#q?R$   gHz>R\   (	   R   R   R1   R   R(   R   R   R)   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR4   S  s    

!c      	   C` s   t  j d t  j  } d | d <d | d <t | | d d d t \ } } t | t j d d   t  j d d	 d
 d
 d
 d
 d
 d	 g  } t | | d d d d d  S(   Ni   g      ?y               @i    i   R[   R'   g&>?g#q?gn)t?R$   gHz>R\   y      ?       @y      ?       @(	   R   R   R5   R   R(   R   R   R)   R]   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR6   ]  s    

!c      	   C` sA   t  t t t j d t j  t j d t j  d d d d d  S(   Ni   R+   R7   R[   (   R   R8   R   R   R   R5   R   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR9   g  s    c         C` s]   t  j d d t  j d } t | | d d d d \ } } t | t  j |  d d d  S(	   Ni
   R0   g{Gz?R[   R`   Ra   R$   gV瞯<(   R   R%   R:   R   R   Rb   (   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRc   k  s    !c         C` s   t  j d d t  j d } t | | d d d t \ } } t | | d d d d   \ } } t | | d d t | | d d d  S(	   Ni
   R0   g{Gz?R[   R`   c         S` s   |  S(   N(    (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRd   s  s    R$   gV瞯<(   R   R%   R:   R   R(   R   (   R   R   Re   Rf   Rg   Rh   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRi   p  s
    !$c         C` s`   t  j d d t  j d } t | | d d d d   \ } } t | t  j |  d d d  S(	   Ni
   R0   g{Gz?R[   R`   c         S` s   t  j |  d d S(   NRj   Rk   (   R   R`   (   Rl   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRd   z  s    R$   gV瞯<(   R   R%   R:   R   R   Rb   (   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRm   w  s    c         C` so   t  j d d t  j d } | j d  } t | | d d d d   \ } } t | t  j |  d	 d
 d  S(   Ni(   R0   g{Gz?i   i
   R[   R`   c         S` s   t  j |  d d S(   NRj   Rk   (   R   R`   (   Rl   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRd     s    R$   gV瞯<(   i   i   i
   (   R   R%   R:   R;   R   R   Rb   (   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRn   }  s
    c      	   C` s   t  j d d t  j d } | j d  } t  j | d d  } t | | d d d	 d d
 d   \ } } t | t  j |  d d d  S(   Ni   R0   g{Gz?i   i   i
   i    R[   RA   R`   c         S` s   t  j |  d d d d S(   NRA   i    Rj   Rk   (   R   R`   (   Rl   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRd     s    R$   gV瞯<(   i   i   i
   (   R   R%   R:   R;   Ro   R   R   Rb   (   R   R   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRp     s    c         C` s  t  j d d t  j d } | j d  } t | | d d \ } } t | j d  t | d	 d	 d  d   f | d d	 d  d   f d
 d d d t | d	 d	 d  d   f | d	 d	 d  d   f d d \ } } t | t  j d  d   f | d d  d   f d
 d d d d  S(   Ni   R0   g{Gz?i   i   i
   R[   i   i    R$   gvIh%<=R\   (   i   i   i
   (   i   i   i   (	   R   R%   R:   R;   R   R   R<   R   R=   (   R   R   R    R!   R>   R?   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR@     s    ?Ac         C` s  t  j d d t  j d } | j d  } t | | d d d d	 \ } } t | j d  t | d  d   d	 d	 f | d  d   d d	 f d d d d t | d  d   d	 d	 f | d  d   d	 d	 f d d \ } } t | | d  d   d d	 f d d d d d  S(   Ni   R0   g{Gz?i
   i   i   R[   RA   i    i   R$   gvIh%<=R\   (   i
   i   i   (   i   i   i   (   R   R%   R:   R;   R   R   R<   R   (   R   R   R    R!   R>   R?   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRB     s    !?Ac      	   C` s  t  j d  } d | d <d | d <t | | d d d  \ } } t j d d  } t | | d | d d  \ } } t | |  t | |  t | j d  t | j d  t	 t
 t | | d | d d	 t j d d
  } t	 t
 t | | d | d d  d  S(   Ni   i   i    i   i
   RC   R[   i   i   i    (   i   (   i   (   R   R   R   R   RD   Rq   R
   R   R<   R   R8   (   R   R   R    R!   RE   RF   RG   RH   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRI     s    

!c         C` so  t  g  t j d   \ } } t | j d  t | j d  t  t j d  g   \ } } t | j d  t | j d	  x^ d
 d d g D]M } t  t j |  t j |   \ } } t | j |  t | j |  q Wt  t j d  t j d   \ } } t | j d  t | j d  t  t j d  t j d   \ } } t | j d  t | j d  d  S(   Ni
   i    i   i   i   (   i    (   i    (   i    (   i    (   i    (   i   i    (   i    i   i   (   i   i    (   i   i    (   i   i    (   i   i    (   i   i    (   i   i    (   R   R   R   R   R<   RN   R   (   R   R    R!   R<   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRO     s     '''c         C` s  xa d d	 g D]S } t  t j |  t j |  d d \ } } t | j |  t | j |  q Wt  t j d
  t j d  d d \ } } t | j d  t | j d  t  t j d  t j d  d d \ } } t | j d  t | j d  d  S(   Ni   i    i   i   RA   i   i
   (   i   i    (   i    i   i   (   i
   i
   i   (   i
   i    i   (   i
   i    i   (   i
   i    i   (   i
   i    i   (   i
   i
   i   (   i
   i    i   (   i
   i    i   (   R   R   RN   R   R<   R   (   R   R<   R    R!   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRP     s    ---c         C` s   t  j d  } d | d <t j   Q t j d t  t | | d d \ } } t | | d d d d \ } } Wd  QXt | | d d \ } } t | |  t | |  t | |  t | |  d  S(	   Ni   i   i    Rr   Rs   RC   R[   i   (   R   R   Rt   Ru   Rv   Rw   R   R   (   R   R   R    R!   Re   Rf   Rg   Rh   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRx     s    
c         C` s   t  j    t  j d t  t t t t j d  t j	 d  d t j
 d d d d d g   t t t t j d  t j	 d  d t j d  j d   Wd  QXd  S(   NRr   i   i   i   i   i   (   i   i   (   Rt   Ru   Rv   Rw   R   R8   R   R   R   R   R]   R%   R;   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRy     s    $$c         C` s   t  j d  } d | d  d  d  <t | | d d d d \ } } t  j d d d d d d d d d g	  } t | | d d d  S(   Ni@   i   i   R[   i   Rz   i   i    g      ?g      (@g      @g      @g      @R$   g-q=gUUUUUU?gUUUUUU?g?gUUUUUU?g?gUUUUUU?g?gUUUUUU?(   R   R   R   R]   R   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR{     s    !c      	   C` s5   t  t t t j d  t j d  d d d d  d  S(   Ni   i   RC   i   i   (   R   R8   R   R   R   R   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR|     s    'c      	   C` s5   t  t t t j d  t j d  d d d d d  S(   Ni   RJ   i   R[   i   (   R   R8   R   R   R   R   (   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR}     s    *c         C` s   t  j d d  } d | d <d | d <t | | d d \ } } t | t  j d d d   t  j d	 d
 d d d g d  } t | | d d d d t | j | j k  d  S(   Ni   R    i   i    i   R[   g      ?i   giKGUU?gS8?g#q?g#q?R$   gHz>R\   (   R   R   R   R   R   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRS     s    

c         C` s   t  j d d  } d | d <d | d <t | | d d \ } } t | t  j d  d	  t  j d
 d d d d g d  } t | | d d d d t | j | j k  d  S(   Ni   R    i   i    i   R[   i	   g      @g      "@gx:?gyѲI?gp0?gw0?R$   gHz>R\   (   R   R   R   R   R%   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRT     s    

c      	   C` s   t  j d d  } d | d <d | d <t | | d d d t \ } } t | t j d d   t  j d	 d
 d d d d d d
 g d  } t | | d d d d t | j	 | j	 k  d  S(   Ni   R    i   i    i   R[   R'   g      ?giKGUU?gS8?g#q?R$   gHz>R\   (
   R   R   R   R(   R   R   R)   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRU     s    

!c      	   C` s   t  j d d  } d | d <d | d <t | | d d d t \ } } t | t j d d   t  j d	 d
 d d d d d d
 g d  } t | | d d d d t | j	 | j	 k d | j	 | j	 f  d  S(   Ni   RV   g      ?y               @i    i   R[   R'   g%?gA2q?gd^?g~?R    R$   gHz>R\   s   dtype mismatch, %s, %sy      ?       @y      ?       @(
   R   R   R   R(   R   R   R)   R]   R   R0   (   R   R   R    R!   R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRW     s    

!c         C` s2  t  j d  } t  j d  } d } t j | d  | d d  } | d c d 9<t | | d d d	 | \ } } t | | d d
 d	 | \ } } t | |  t | |  d } t j | d  | d d  } t | | d d d	 | \ } } t | | d d
 d	 | \ } } t | |  t | |  d  S(   Ni   i   g      ?i   i   iR[   i   RJ   i   i   (   R   R   R   R   R)   R   R   (   R   R   R   RJ   R    R~   R   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR   *  s    !!!!(!   RX   RY   R   R   R#   R&   R*   R/   R^   R_   R4   R6   R9   Rc   Ri   Rm   Rn   Rp   R@   RB   RI   RO   RP   Rx   Ry   R{   R|   R}   RS   RT   RU   RW   R   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR      s>   			
	
	
	
	
	
	
	
																						t   TestCoherencec           B` s   e  Z d    Z d   Z RS(   c         C` s~   t  j j d  } t  j |  } t  j d d d  } t  j d  } t | | d d \ } } t | |  t | |  d  S(   Ni   i    g      ?i   R[   i
   (   R   t   randomt   randnt   copyR   R   R   R   (   R   R   R   R    t   CRe   t   C1(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_identical_input>  s    c         C` sv   t  j j d  } | } t  j d d d  } t  j d  } t | | d d \ } } t | |  t | |  d  S(   Ni   i    g      ?i   R[   i
   (   R   R   R   R   R   R   R   (   R   R   R   R    R   Re   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_phase_shifted_inputI  s    (   RX   RY   R   R   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR   =  s   	t   TestSpectrogramc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s   t  j j d  } d } d	 } d } d } t | | | | |  \ } } } t | | | | |  \ }	 }
 t | |	  t t  j | d d |
  d  S(
   Ni   g      ?R   g      ?i   i   RA   i(   s   tukeyg      ?(   R   R   R   R   R   R   t   mean(   R   R   R   Rs   R[   Rz   R    R   t   Pt   fwt   Pw(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_average_all_segmentsV  s    !c         C` s   t  j j d  } d } d } d } d } t | | | | |  \ } } } t j d d  }	 t | | |	 d d  d d \ }
 } } t |
 j d  t | j d  t	 t
 t | | |	 d d t j d d  } t	 t
 t | | | d d  d  S(   Ni   g      ?R   g      ?i   i   R[   Rz   i	   iI   i   i   (   s   tukeyg      ?(   s   tukeyg      ?(   i	   (   i	   iI   (   s   tukeyg      ?(   R   R   R   R   R   RD   Rq   R   R<   R   R8   (   R   R   R   Rs   R[   Rz   R    R   R   RE   RF   t   PeRH   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRI   c  s    !'c         C` s   t  j j d  } d } t j   W t j d t  t | | d d
 \ } } } t | | d d d d \ } } } Wd  QXt | | d d	 \ } } }	 t | | d d \ }
 } } t | |  t | |	  t | |
  t | |  d  S(   Ni   g      ?Rr   Rs   R   g      ?R[   i  i   (   s   tukeyg      ?(   s   tukeyg      ?(	   R   R   R   Rt   Ru   Rv   Rw   R   R   (   R   R   R   R    R   R!   Re   Rf   Rg   Rh   t   f3t   p3(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyRx   v  s    (   RX   RY   R   RI   Rx   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR   U  s   		t   TestLombscarglec           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s   d } d } d t  j } d } d } d } t  j j d  t  j j |  } t  j d t  j d	 t  j |  | | k } | t  j | | |  }	 t  j d d	 |  }
 t | |	 |
  } |
 d
 |
 d } t | |
 t  j	 |  | d k   d S(   sg   Test if frequency location of peak corresponds to frequency of
        generated input signal.
        g       @g      ?g      ?id   i  gffffff?i# g{Gz?g      $@i   i    N(
   R   R   R   t   seedt   randR   R   R   R   t   argmax(   R   t   amplt   wt   phit   nint   noutR!   t   rt   tR   R    R   t   delta(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_frequency  s    -c         C` s   d } d } d t  j } d } d } d } t  j j d  t  j j |  } t  j d t  j d	 t  j |  | | k } | t  j | | |  }	 t  j d d	 |  }
 t | |	 |
  } t  j d
 | | j	 d  } t
 t  j |  | d d d S(   s   Test if height of peak in normalized Lomb-Scargle periodogram
        corresponds to amplitude of the generated input signal.
        g       @g      ?g      ?id   i  gffffff?i# g{Gz?g      $@i   i    t   significanti   N(   R   R   R   R   R   R   R   R   R   R<   R   t   max(   R   R   R   R   R   R   R!   R   R   R   R    t   pgram(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_amplitude  s    -c         C` sY   t  j d d d  } t  j d d d  } t  j d d d  } t t t | | |  d  S(   Ni    i   i   i   (   R   R   R   R8   R   (   R   R   R   R    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_wrong_shape  s    c         C` sG   t  j d  } t  j d  } t  j d  } t t t | | |  d  S(   Ni   (   R   R   R   t   ZeroDivisionErrorR   (   R   R   R   R    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_zero_division  s    c         C` sn   t  j d d d d t } t  j d |  } t  j d d d d t d } t | | | d	 t  j  } d  S(
   Ni    i
   i  t   endpointi   i2   i  g?i   (   R   R   R(   R   R   R   (   R   R   R   R    R"   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_lombscargle_atan_vs_atan2  s    (   RX   RY   R   R   R   R   R   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR     s
   	 	"		t   TestSTFTc           B` sq   e  Z d    Z d   Z d   Z d   Z d   Z e j e	  d    Z
 d   Z d   Z d   Z d	   Z RS(
   c      
   C` sN  t  t t d d d  t  t t d d d  t  t t t j d  d d  t  t t t j d  d d  t j d  } t |  } t  t t | d t j d  t  t t | d t j d  d	 d
 t  t t | d	 d t  t t | d	 d
 d d t  t t | d	 d
 d d t  t t |  t  t t | d t j d  t  t t | d t j d  d	 d
 t  t t | d	 d t  t t | d	 d
 d d t  t t | d	 d
 d d t  t t | d	 d
 d d d d t  t t | d d d d t  t t | | d d t  t t | d  | d d d t  t t | | d d d  S(   NRC   ii    i
   i   i   i   Rs   R[   i   i Rz   RJ   i   t	   time_axist	   freq_axist   modeR7   i   R   t   boundary(   i   i   (   i   i   (   i   i   (	   R   R8   R   R   R   RN   R   R   R   (   R   R   t   z(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_input_validation  s0    %%c      
   C` s[   d d d d d d d d g } x6 | D]. } d j  |   } t t t |   d | q% Wd  S(   Nt   boxcari
   i    i	   R   i3   i   RC   i   i   i   t   blackmani,  i   R   g      ?i@   i   s   {0}, {1}, {2}t   err_msg(   R   i
   i    (   R   i
   i	   (   s   bartletti3   i   (   s   hanni   i   (   s   hanni   i   (   R   i,  i   (   s   tukeyg      ?(   (   s   tukeyg      ?i   i@   (   s   hanni   i   (   t   formatR	   t   TrueR   (   R   t   settingst   sett   msg(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_check_COLA   s    	c         C` s   t  j j d  t  j j d  } d } d } d } d } t | | | | | d t d t d	 d  \ } } } t | | | | | d t d
 d d t \ }	 }
 t | |	  t t  j	 t  j
 |  d d d |
  d  S(   Ni  i   g      ?RC   i   i   t   paddedR'   R   R+   R,   R`   i   RA   i(   R   R   R   R   R   R(   Rq   R   R   R   t   abs(   R   R   R   Rs   R[   Rz   R    R   t   ZR   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR     s    c      
   C` sJ  t  j j d  t  j j d  } d } d } d } d } t | | | | |  \ } } } t | j d  | | | | d	 d
 \ }	 }
 } t | | | | |  \ } } t | j | | | | d d
 d d \ } } t | |	  t | |
  t | |  t | | d  d   d
 d
 d  d   f  t | | d  d   d
 d
 f  d  S(   Ni  i   g      ?RC   i   i   ii   RA   i    R   R   (   ii   i   (	   R   R   R   R   R   R;   R   t   TR   (   R   R   R   Rs   R[   Rz   Re   t   t1t   Z1Rg   t   t2t   Z2t   t3t   x1t   t4t   x2(    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_permute_axes$  s"    !)c         C` s   t  j j d  d d d d d  d! g } x | D] \ } } } } t  j |  } d t  j j | j  } t | d | d | d | d d  d t \ } } }	 t	 |	 d | d | d | \ }
 } d j
 | |  } t | |
 d | t | | d | q/ Wd  S("   Ni  R   id   i
   i    i	   R   ie   i3   i   RC   i   i   i   R   g      ?i  i@   i   R[   Rz   Rs   R`   R   s   {0}, {1}R   (   s   boxcarid   i
   i    (   s   boxcarid   i
   i	   (   s   bartlettie   i3   i   (   s   hanni   i   i   (   s   tukeyg      ?(   (   s   tukeyg      ?i  i   i@   (   s   hanni   i   i   (   R   R   R   R%   R   t   sizeR   Rq   R(   R   R   R   (   R   R   Rs   t   NR[   Rz   R   R   R   t   zzt   trt   xrR   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_roundtrip_real;  s"    	c         C` s  t  j j d  d g } x | D] \ } } } } t  j |  } d t  j j | j  } | j t  j  } t | d | d | d	 | d
 d  d t
 \ } } }	 t |	 d | d | d	 | \ }
 } d j | |  } t | | d | t | | d | d d t | j | j k  q  Wd  S(   Ni  RC   i   i   i   i
   R[   Rz   Rs   R`   R   s   {0}, {1}R   R\   g-C6?(   s   hanni   i   i   (   R   R   R   R%   R   R   t   astypet   float32R   Rq   R(   R   R   R   R   R0   (   R   R   Rs   R   R[   Rz   R   R   R   R   R   R   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_roundtrip_float32V  s    	c         C` s  t  j j d  d d  d! d" d$ d% g } x | D] \ } } } } t  j |  } d t  j j | j  d t  j j | j  } t | d | d | d | d d  d t d t \ } } }	 t	 |	 d | d | d | d t \ }
 } d j
 | | |  } t | |
 d | t | | d | q/ Wt j   N t j d t  t | d | d | d | d d  d t d t \ } } }	 Wd  QXt	 |	 d | d | d | d t \ }
 } d j
 | | |  } t | |
 d | t | | d | d  S(&   Ni  R   id   i
   i    i	   R   ie   i3   i   RC   i   i   i   R   g      ?i  i@   i   y              $@R[   Rz   Rs   R`   R   R'   t   input_onesideds   {0}, {1}, {2}R   Rr   (   s   boxcarid   i
   i    (   s   boxcarid   i
   i	   (   s   bartlettie   i3   i   (   s   hanni   i   i   (   s   tukeyg      ?(   (   s   tukeyg      ?i  i   i@   (   s   hanni   i   i   (   R   R   R   R%   R   R   R   Rq   R(   R   R   R   Rt   Ru   Rv   Rw   R   (   R   R   Rs   R   R[   Rz   R   R   R   R   R   R   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_roundtrip_complexl  s8    	0c         C` sw  t  j j d  d d g } xT| D]L\ } } } } t  j |  } d t  j j | j  } t | d | d | d	 | d
 d  d t d d  \ } } }	 t	 |	 d | d	 | d t
 \ } }
 x d d d d g D] } t | d | d | d	 | d
 d  d t d | \ } } } t	 | d | d	 | d t \ } } d j | | |  } t | |
 d | t | | d | q Wq# Wd  S(   Ni  R   id   i
   i    i	   R[   Rz   Rs   R`   R   R   t   event   oddt   constantR   s   {0}, {1}, {2}R   (   s   boxcarid   i
   i    (   s   boxcarid   i
   i	   (   R   R   R   R%   R   R   R   Rq   R   R   R(   R   R   (   R   R   Rs   R   R[   Rz   R   R   R   R   R   R   t   zz_extt   xr_extR   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt!   test_roundtrip_boundary_extension  s&    	$c         C` s   t  j j d  d d g } x | D] \ } } } } t  j |  } d t  j j | j  } t | d
 | d | d | d d  d t \ } } }	 t	 |	 d | d | \ }
 } d j
 | |  } t | |
 | j  d | t | | | j  d | q# Wd  S(   Ni  R   ie   i
   i    RC   i  i   i   R[   Rz   Rs   R`   R   s   {0}, {1}R   (   s   boxcarie   i
   i    (   s   hanni  i   i   (   R   R   R   R%   R   R   R   Rq   R   R   R   R   (   R   R   Rs   R   R[   Rz   R   R   R   R   R   R   R   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_roundtrip_padded_signal  s    	c         C` s  t  j j d  d d d d! g } x| D]x\ } } } } } t  j |  } d
 t  j j | j  } | t  j d t  j d  }	 t | d | d | d | d | d d  d t
 \ }
 }
 } t |	 d | d | d | d | d d  d t
 d t \ }
 }
 } t | d | d | d | d | \ } } t | d | d | d | d | d t \ } } d j | |  } t | | d | t | | d | t |	 | d | q) Wd  S("   Ni  RC   i   i   i   i   i  R   id   i
   i    i!   R   g      ?i  i@   y              ?i   R[   Rz   RJ   Rs   R`   R   R'   R   s   {0}, {1}R   (   s   hanni   i   i   i   (   s   hanni   i   i   i  (   s   boxcarid   i
   i    i!   (   s   tukeyg      ?(   (   s   tukeyg      ?i  i   i@   i   (   R   R   R   R%   R   R   t   expR   R   Rq   R   R(   R   R   R   (   R   R   Rs   R   R[   Rz   RJ   R   R   t   xcR   R   t   zcR   R   t   xcrR   (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   test_roundtrip_padded_FFT  s,    	(   RX   RY   R   R   R   R   R   R   t   knownfailureifR   R   R   R   R   R   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyR     s   						)	!	t   __main__()   t
   __future__R    R   R   Rt   t   numpyR   t   numpy.testingR   R   R   R   R   R   R	   R
   R   R   t   scipyR   R   t   scipy.signalR   R   R   R   R   R   R   R   R   t   scipy.signal.spectralR   R   RZ   R   R   R   R   R   RX   (    (    (    s?   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_spectral.pyt   <module>   s$   F@ & >4X 