ó
Ë½÷Xc           @` s  d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z d  d l j j Z d „  Z e d „ Z d „  Z d „  Z d „  Z 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   TestCaset   assert_almost_equalt   assert_equalt   assert_t   assert_raisest   run_module_suitet   assert_allcloset   assert_array_equalc         C` s   | | | |  | } | S(   N(    (   t   tt   f0t   f1t   t1t   f(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   chirp_linear   s    c         C` sM   | r' | | | |  d | d } n" | | | | |  d | d } | S(   Ni   (    (   R   R   R   R   t   vertex_zeroR   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   chirp_quadratic   s    !"c         C` s   | | | |  | } | S(   N(    (   R   R   R   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   chirp_geometric   s    c         C` s&   | | | | | |  | | } | S(   N(    (   R   R   R   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   chirp_hyperbolic    s    "c         C` sP   |  d |  d } t  j | ƒ d t  j | } d |  d |  d  } | | f S(   sR   
    Compute theta'(t)/(2*pi), where theta'(t) is the derivative of theta(t).
    i   i    i   g      à?iÿÿÿÿ(   t   npt   difft   pi(   R   t   thetat   dtR   t   tf(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   compute_frequency%   s    t	   TestChirpc           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 RS(   c         C` s;   t  j d d d d d d d d d d	 ƒ } t | d ƒ d  S(
   NR   i    R   g      ð?R   g       @R   t   methodt   linear(   t	   waveformst   chirpR   (   t   selft   w(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_linear_at_zero3   s    *c   
      C` sœ   d } d } d } d } t  j d | d ƒ } t j | | | | | ƒ } t | | ƒ \ } } t  j t  j | t | | | | ƒ ƒ ƒ }	 t |	 d k  ƒ d  S(   NR   g      ð?g       @i    id   gíµ ÷Æ°>(	   R   t   linspaceR   t   _chirp_phaseR   t   maxt   absR   R   (
   R!   R   R   R   R   R   t   phaseR   R   t   abserr(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_linear_freq_017   s    +c   
      C` sœ   d } d } d } d } t  j d | d ƒ } t j | | | | | ƒ } t | | ƒ \ } } t  j t  j | t | | | | ƒ ƒ ƒ }	 t |	 d k  ƒ d  S(   NR   g      i@g      Y@g      $@i    id   gíµ ÷Æ°>(	   R   R$   R   R%   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_waveforms.pyt   test_linear_freq_02B   s    +c         C` s;   t  j d d d d d d d d d d	 ƒ } t | d ƒ d  S(
   NR   i    R   g      ð?R   g       @R   R   t	   quadratic(   R   R    R   (   R!   R"   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_quadratic_at_zeroM   s    *c         C` sA   t  j d d d d d d d d d d	 d
 t ƒ } t | d ƒ d  S(   NR   i    R   g      ð?R   g       @R   R   R,   R   (   R   R    t   FalseR   (   R!   R"   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_quadratic_at_zero2Q   s    '	c   
      C` sœ   d } d } d } d } t  j d | d ƒ } t j | | | | | ƒ } t | | ƒ \ } } t  j t  j | t | | | | ƒ ƒ ƒ }	 t |	 d k  ƒ d  S(   NR,   g      ð?g       @i    iÐ  gíµ ÷Æ°>(	   R   R$   R   R%   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_waveforms.pyt   test_quadratic_freq_01V   s    +c   
      C` sœ   d } d } d } d } t  j d | d ƒ } t j | | | | | ƒ } t | | ƒ \ } } t  j t  j | t | | | | ƒ ƒ ƒ }	 t |	 d k  ƒ d  S(   NR,   g      4@g      $@i    iÐ  gíµ ÷Æ°>(	   R   R$   R   R%   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_waveforms.pyt   test_quadratic_freq_02a   s    +c         C` s;   t  j d d d d d d d d d d	 ƒ } t | d ƒ d  S(
   NR   i    R   g      ð?R   g       @R   R   t   logarithmic(   R   R    R   (   R!   R"   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_logarithmic_at_zerol   s    *c   
      C` sœ   d } d } d } d } t  j d | d ƒ } t j | | | | | ƒ } t | | ƒ \ } } t  j t  j | t | | | | ƒ ƒ ƒ }	 t |	 d k  ƒ d  S(   NR2   g      ð?g       @i    i'  gíµ ÷Æ°>(	   R   R$   R   R%   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_waveforms.pyt   test_logarithmic_freq_01p   s    +c   
      C` sœ   d } d } d } d } t  j d | d ƒ } t j | | | | | ƒ } t | | ƒ \ } } t  j t  j | t | | | | ƒ ƒ ƒ }	 t |	 d k  ƒ d  S(   NR2   g      i@g      Y@g      $@i    i'  gíµ ÷Æ°>(	   R   R$   R   R%   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_waveforms.pyt   test_logarithmic_freq_02{   s    +c   
      C` sœ   d } d } d } d } t  j d | d ƒ } t j | | | | | ƒ } t | | ƒ \ } } t  j t  j | t | | | | ƒ ƒ ƒ }	 t |	 d k  ƒ d  S(   NR2   g      Y@g      $@i    i'  gíµ ÷Æ°>(	   R   R$   R   R%   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_waveforms.pyt   test_logarithmic_freq_03†   s    +c         C` s;   t  j d d d d d d d d d d	 ƒ } t | d ƒ d  S(
   NR   i    R   g      $@R   g      ð?R   R   t
   hyperbolic(   R   R    R   (   R!   R"   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_hyperbolic_at_zero‘   s    *c         C` s¸   d } d } t  j d | d ƒ } d d g d d g d d g d d g g } xf | D]^ \ } } t j | | | | | ƒ } t | | ƒ \ } }	 t | | | | ƒ }
 t |	 |
 ƒ qR Wd  S(   NR7   g      ð?i    i'  g      $@g      $Àg      ð¿(   R   R$   R   R%   R   R   R	   (   R!   R   R   R   t   casesR   R   R(   R   R   t   expected(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_hyperbolic_freq_01•   s    			c         C` sc   d } d } t  j d | d ƒ } t t t j | d | d | ƒ t t t j | d | d | ƒ d  S(   NR7   g      ð?i    i   i   (   R   R$   R   t
   ValueErrorR   R    (   R!   R   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_hyperbolic_zero_freq¤   s
    c         C` sP   d } d } d } d } t  j d | d ƒ } t t t j | | | | | ƒ d  S(   Nt   foog      $@g      4@g      ð?i    i
   (   R   R$   R   R<   R   R    (   R!   R   R   R   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_unknown_method¬   s    c         C` sz   d } d } t  j d d d ƒ } d } t j | | | | ƒ } d } t j | | | | ƒ } d } t | | d	 | ƒd  S(
   Ng      $@g      4@iÿÿÿÿi   i   g      @i   s'   Integer input 't1=3' gives wrong resultt   err_msg(   R   R$   R   R    R   (   R!   R   R   R   R   t   float_resultt
   int_resultR@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_t1´   s    c         C` sz   d } d } t  j d d d ƒ } d } t j | | | | ƒ } d } t j | | | | ƒ } d } t | | d	 | ƒd  S(
   Ng      4@g      @iÿÿÿÿi   i   g      $@i
   s(   Integer input 'f0=10' gives wrong resultR@   (   R   R$   R   R    R   (   R!   R   R   R   R   RA   RB   R@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_f0¿   s    c         C` sz   d } d } t  j d d d ƒ } d } t j | | | | ƒ } d } t j | | | | ƒ } d } t | | d	 | ƒd  S(
   Ng      $@g      @iÿÿÿÿi   i   g      4@i   s(   Integer input 'f1=20' gives wrong resultR@   (   R   R$   R   R    R   (   R!   R   R   R   R   RA   RB   R@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_f1Ê   s    c         C` s†   d } d } d } t  j d d d ƒ } t j | t | ƒ t | ƒ t | ƒ ƒ } t j | | | | ƒ } d } t | | d | ƒd  S(	   Ni
   i   i   iÿÿÿÿi   i   s5   Integer input 'f0=10, t1=3, f1=20' gives wrong resultR@   (   R   R$   R   R    t   floatR   (   R!   R   R   R   R   RA   RB   R@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_allÕ   s    *(   t   __name__t
   __module__R#   R*   R+   R-   R/   R0   R1   R3   R4   R5   R6   R8   R;   R=   R?   RC   RD   RE   RG   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyR   1   s&   																		t   TestSweepPolyc           B` sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` s   t  j d d d g ƒ } t  j d d d ƒ } t j | | ƒ } t | | ƒ \ } } | | ƒ } t  j t  j | | ƒ ƒ } t | d k  ƒ d  S(   Ng      ð?g        i    g      @i'  gíµ ÷Æ°>(	   R   t   poly1dR$   R   t   _sweep_poly_phaseR   R&   R'   R   (   R!   t   pR   R(   R   R   R:   R)   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_sweep_poly_quad1â   s    c         C` s‡   t  j d ƒ } t  j d d d ƒ } t j | | ƒ } t | | ƒ \ } } | | ƒ } t  j t  j | | ƒ ƒ } t | d k  ƒ d  S(   Ng       @i    g      @i'  gíµ ÷Æ°>(	   R   RK   R$   R   RL   R   R&   R'   R   (   R!   RM   R   R(   R   R   R:   R)   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_sweep_poly_constë   s    c         C` s   t  j d d g ƒ } t  j d d d ƒ } t j | | ƒ } t | | ƒ \ } } | | ƒ } t  j t  j | | ƒ ƒ } t | d k  ƒ d  S(   Ng      ð¿g      $@i    g      @i'  gíµ ÷Æ°>(	   R   RK   R$   R   RL   R   R&   R'   R   (   R!   RM   R   R(   R   R   R:   R)   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_sweep_poly_linearô   s    c         C` s   t  j d d d g ƒ } t  j d d d ƒ } t j | | ƒ } t | | ƒ \ } } | | ƒ } t  j t  j | | ƒ ƒ } t | d k  ƒ d  S(   Ng      ð?g        g       Ài    g      @i'  gíµ ÷Æ°>(	   R   RK   R$   R   RL   R   R&   R'   R   (   R!   RM   R   R(   R   R   R:   R)   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_sweep_poly_quad2ý   s    c         C` s“   t  j d d d d g ƒ } t  j d d d ƒ } t j | | ƒ } t | | ƒ \ } } | | ƒ } t  j t  j | | ƒ ƒ } t | d k  ƒ d  S(   Ng       @g      ð?g        g       Ài    i'  gíµ ÷Æ°>(	   R   RK   R$   R   RL   R   R&   R'   R   (   R!   RM   R   R(   R   R   R:   R)   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_sweep_poly_cubic  s    c         C` sœ   t  j d d d d g ƒ } t  j d d d ƒ } t j | | ƒ } t | | ƒ \ } } t  j | ƒ | ƒ } t  j t  j | | ƒ ƒ } t	 | d k  ƒ d S(	   s1   Use an array of coefficients instead of a poly1d.g       @g      ð?g        g       Ài    i'  gíµ ÷Æ°>N(
   R   t   arrayR$   R   RL   R   RK   R&   R'   R   (   R!   RM   R   R(   R   R   R:   R)   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_sweep_poly_cubic2  s    c         C` s“   d d d d g } t  j d d d ƒ } t j | | ƒ } t | | ƒ \ } } t  j | ƒ | ƒ } t  j t  j | | ƒ ƒ } t | d k  ƒ d S(	   s/   Use a list of coefficients instead of a poly1d.g       @g      ð?g        g       Ài    i'  gíµ ÷Æ°>N(	   R   R$   R   RL   R   RK   R&   R'   R   (   R!   RM   R   R(   R   R   R:   R)   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_sweep_poly_cubic3  s    (	   RH   RI   RN   RO   RP   RQ   RR   RT   RU   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyRJ   à   s   											
t   TestGaussPulsec           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` sG   t  j d d d ƒ} t  j d d d ƒ} d } t | | d | ƒd  S(   Nt   cutofft   fcg     @@iè  s*   Integer input 'fc=1000' gives wrong resultR@   (   R   t
   gausspulseR   (   R!   RA   RB   R@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_fc&  s    c         C` sG   t  j d d d ƒ} t  j d d d ƒ} d } t | | d | ƒd  S(   NRW   t   bwg      ð?i   s'   Integer input 'bw=1' gives wrong resultR@   (   R   RY   R   (   R!   RA   RB   R@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_bw,  s    c         C` sG   t  j d d d ƒ} t  j d d d ƒ} d } t | | d | ƒd  S(   NRW   t   bwrg      Àiúÿÿÿs)   Integer input 'bwr=-6' gives wrong resultR@   (   R   RY   R   (   R!   RA   RB   R@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_bwr2  s    c         C` sG   t  j d d d ƒ} t  j d d d ƒ} d } t | | d | ƒd  S(   NRW   t   tprg      NÀiÄÿÿÿs*   Integer input 'tpr=-60' gives wrong resultR@   (   R   RY   R   (   R!   RA   RB   R@   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_integer_tpr8  s    (   RH   RI   RZ   R\   R^   R`   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyRV   $  s   			t   TestUnitImpulsec           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c      	   C` si   t  t j d ƒ d d d d d d d g ƒ t  t j d ƒ d d d g d d d g d d d g g ƒ d  S(   Ni   i   i    i   (   i   i   (   R
   R   t   unit_impulse(   R!   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_no_indexA  s    +c         C` sÜ   t  t j d d ƒ d d d d d d d d d d g
 ƒ t  t j d d ƒ d d d g d d d g d d d g g ƒ t j d	 d ƒ } t  | t j d d d d g d d d d g d d d d g d d d d g g ƒ ƒ d  S(
   Ni
   i   i    i   i   i   (   i   i   (   i   i   (   i   i   (   R
   R   Rb   R   RS   (   R!   t   imp(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt
   test_indexF  s    %+c         C` su   t  t j d d ƒ d d d g d d d g d d d g g ƒ t  t j d d ƒ d d d d d d d d d g	 ƒ d  S(   Ni   t   midi    i   i	   (   i   i   (   R
   R   Rb   (   R!   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   test_midS  s    +c         C` s—   t  j d ƒ } t t j | j t j ƒ ƒ t  j d d d t ƒ} t t j | j t j ƒ ƒ t  j d d d t	 ƒ} t t j | j t j	 ƒ ƒ d  S(	   Ni   i   i   t   dtypei   i   (   i   i   (   i   i   (
   R   Rb   R   R   t
   issubdtypeRh   RF   t   intt   integert   complex(   R!   Rd   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt
   test_dtypeY  s    (   RH   RI   Rc   Re   Rg   Rm   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyRa   ?  s   			t   __main__(   t
   __future__R    R   R   t   numpyR   t   numpy.testingR   R   R   R   R   R   R	   R
   t   scipy.signal.waveformst   signalR   R   t   TrueR   R   R   R   R   RJ   RV   Ra   RH   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/signal/tests/test_waveforms.pyt   <module>   s   :				¯D$