ó
î&]\c           @` s  d  d l  m Z m Z m Z d Z d  d l m Z m Z m Z m	 Z	 m
 Z
 d  d l Z d  d l m Z d  d l m Z m Z m Z m Z m Z m Z m Z 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% d  d l Z& d  d l' Z d  d
 l( m) Z) dD dE dF dG dH dI g Z* d dK dN g Z+ d g Z, d g Z- d   Z. d   Z/ d   Z0 d   Z1 d   Z2 d   Z3 d   Z4 d   Z5 d   Z6 d e7 f d     YZ8 d e8 f d     YZ9 d e8 f d     YZ: d  e7 f d!     YZ; d" e7 f d#     YZ< d$ e< f d%     YZ= d& e< f d'     YZ> d( e7 f d)     YZ? d* e? f d+     YZ@ d, e? f d-     YZA d. e7 f d/     YZB d0 eB f d1     YZC d2 eB f d3     YZD d4 e7 f d5     YZE d6 e7 f d7     YZF d8 e7 f d9     YZG d: e7 f d;     YZH d< e7 f d=     YZI d> e7 f d?     YZJ d@ e7 f dA     YZK dB e7 f dC     YZL d S(O   i    (   t   divisiont   print_functiont   absolute_importsĹ   
Build fftpack:
  python setup_fftpack.py build
Run tests if scipy is installed:
  python -c 'import scipy;scipy.fftpack.test()'
Run tests if fftpack is not installed:
  python tests/test_basic.py
(   t   assert_t   assert_equalt   assert_array_almost_equalt   assert_array_almost_equal_nulpt   assert_array_lessN(   t   raises(   t   ifftt   fftt   fftnt   ifftnt   rfftt   irfftt   fft2(   t   _fftpack(   t   _is_safe_size(   t   aranget   addt   arrayt   asarrayt   zerost   dott   expt   pit   swapaxest   doublet   cdouble(   t   randi   i   i   i   iŰ  i   c         C` sD   d | | f } t  t j j |  |  | t j j |   |  d  S(   Ns   size: %s  rdt: %s(   R   t   npt   linalgt   norm(   t   xt   yt   rtolt   sizet   rdtt   err_msg(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   _assert_close_in_norm0   s    c         C` s
   t  |    S(   N(   R   (   R$   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   random6   s    c         C` s"   t  |   } t j | |  } | S(   N(   R   R   t   outer(   t   nt   data(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   get_mat:   s    c         C` s{   t  |   }  t |   } t | d t } t |  d t | } x1 t |  D]# } t t | |  |   | | <qP W| S(   Nt   dtypey               @(	   R   t   lenR   R   R   R   t   rangeR   R   (   R!   R*   R"   t   wt   i(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt
   direct_dft@   s    !c         C` s~   t  |   }  t |   } t | d t } t |  d t | } x5 t |  D]' } t t | |  |   | | | <qO W| S(   NR-   y               @(	   R   R.   R   R   R   R   R/   R   R   (   R!   R*   R"   R0   R1   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   direct_idftJ   s    %c         C` sB   t  |   }  x/ t t |  j   D] } t |  d | }  q" W|  S(   Nt   axis(   R   R/   R.   t   shapeR
   (   R!   R4   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   direct_dftnT   s    c         C` sB   t  |   }  x/ t t |  j   D] } t |  d | }  q" W|  S(   NR4   (   R   R/   R.   R5   R	   (   R!   R4   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   direct_idftn[   s    c         C` sÎ   t  |   }  t |   } t |  d t | } t | d t } x t | d d  D]n } t t | |  |   } | rš | j	 | d | d <d | | k  rĆ | j
 | d | <qĆ qX | j	 | d <qX W| S(   Ny               @R-   i   i   i    (   R   R.   R   R   R   R   R/   R   R   t   realt   imag(   R!   R*   R0   t   rR1   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   direct_rdftb   s    c         C` sć   t  |   }  t |   } t | d t } xŹ t | d d  D] } | rÇ d | | k  rŽ |  d | d d |  d | | | <|  d | d d |  d | | | | <qŐ |  d | d | | <q? |  d | d <q? Wt |  j S(   NR-   i   i   y              đ?i    (   R   R.   R   R   R/   R3   R8   (   R!   R*   t   x1R1   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   direct_irdftr   s    &-t   _TestFFTBasec           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s&   d  |  _ d  |  _ t j j d  d  S(   NiŇ  (   t   Nonet   cdtR%   R   R(   t   seed(   t   self(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   setup_method   s    		c      
   C` sŹ   t  j d d d d
 d d d d g d |  j } t |  } t | j |  j  t |  } t | |  t  j d d d d d	 g d |  j } t t |  t |   d  S(   Ni   i   i   i   y              đ?y               @R-   y                i   y      @      đ?y      @       @y      @        (   R   R   R@   R
   R   R-   R2   R   (   RB   R!   R"   t   y1(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_definition   s    0'c         C` sľ   t  j d d d d g d |  j } t  j d d d d g d |  j } t | | g d d } t | j |  j  t | j d  t | d t	 |   t | d t	 |   d  S(	   Ni   i   i   i   R-   R*   i    (   i   i   (
   R   R   R%   R
   R   R-   R@   R5   R   R2   (   RB   R<   t   x2R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_n_argument_real   s    $$c         C` sľ   t  j d d d d	 g d |  j } t  j d d d d
 g d |  j } t | | g d d } t | j |  j  t | j d  t | d t |   t | d t |   d  S(   Ni   i   i   i   y              đ?R-   R*   i    y      @      đ?y      @      đ?(   i   i   (	   R   R   R@   R
   R   R-   R5   R   R2   (   RB   R<   RF   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   _test_n_argument_complex   s    $$c         C` s   x} t  d d  D]l } d | } t t  |   } t j |  } t j j |  } t | |  t j |  } t | |  q Wd  S(   Ni   i   (   R/   t   listt   fftpackt   zfftt   numpyR
   R   t   zrfft(   RB   R1   R*   R!   R"   t   y2(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_djbfftŁ   s    
c         C` s9   t  t t g   t  t t d d g d d g g d  d  S(   Ni   i   iű˙˙˙(   t   assert_raisest
   ValueErrorR
   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_invalid_sizes­   s    c         C` sÍ   d t  f d t  f d t  f d t  f d t  f d t  f d t  f d t f d	 t  f d
 t  f d t f d t  f d t f d t  f d t  f d t  f d t f g } x' | D] \ } } t t |  |  qŚ Wd  S(   Ni    i   i   i   i   i   i   i   i   i   i   i   i   i   i2   ix   iŇ   (   t   Truet   FalseR   R   (   RB   t   valsR*   t   is_safe(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test__is_safe_sizeą   s
    H?(	   t   __name__t
   __module__RC   RE   RG   RH   RO   RR   RW   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR>      s   								
	t   TestDoubleFFTc           B` s   e  Z d    Z RS(   c         C` s   t  j |  _ t  j |  _ d  S(   N(   R   R   R@   R   R%   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   ş   s    (   RX   RY   RC   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRZ   š   s   t   TestSingleFFTc           B` s5   e  Z d    Z e j j d e d d  d    Z RS(   c         C` s   t  j |  _ t  j |  _ d  S(   N(   R   t	   complex64R@   t   float32R%   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   Ŕ   s    t   runt   reasonsu   single-precision FFT implementation is partially disabled, until accuracy issues with large prime powers are resolvedc         C` s   d  S(   N(    (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_noticeÄ   s    (   RX   RY   RC   t   pytestt   markt   xfailRT   R`   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR[   ż   s   	t   TestFloat16FFTc           B` s   e  Z d    Z d   Z RS(   c         C` s|   t  j d d d d g d t  j } t | d d } t | j t  j  t | j d  t | t	 | j
 t  j    d  S(   Ni   i   i   i   R-   R*   (   i   (   R   R   t   float16R
   R   R-   R\   R5   R   R2   t   astypeR]   (   RB   R<   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_1_argument_realË   s
    $c         C` sÍ   t  j d d d d g d t  j } t  j d d d d g d t  j } t | | g d d } t | j t  j  t | j d  t | d t	 | j
 t  j    t | d t	 | j
 t  j    d  S(	   Ni   i   i   i   R-   R*   i    (   i   i   (   R   R   Re   R
   R   R-   R\   R5   R   R2   Rf   R]   (   RB   R<   RF   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRG   Ň   s    $$#(   RX   RY   Rg   RG   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRd   É   s   	t   _TestIFFTBasec           B` sP   e  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  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   Ý   s    c      
   C` sŚ   t  j d d d d	 d d d d
 g |  j  } t |  } t |  } t | j |  j  t | |  t  j d d d d d g |  j  } t t |  t |   d  S(   Ni   i   i   i   y              đ?y               @y                i   y      @      đ?y      @       @y      @        (   R   R   R@   R	   R3   R   R-   R   (   RB   R!   R"   RD   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRE   ŕ   s    -$c      	   C` sź   t  j d d d d d d d d g |  j  } t |  } t | j |  j  t |  } t | |  t  j d d d d d g d |  j } t | j |  j  t t |  t |   d  S(   Ni   i   i   i   i   R-   (	   R   R   R%   R	   R   R-   R@   R3   R   (   RB   R!   R"   RD   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_definition_realę   s    -'c         C` s   x t  d d  D]x } d | } t t  |   } t j | d d } t j j |  } t | |  t j | d d } t | |  q Wd  S(   Ni   i   t	   directioni˙˙˙˙(	   R/   RI   RJ   RK   RL   R
   R	   R   RM   (   RB   R1   R*   R!   R"   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRO   ő   s    
c      	   C` sŇ   xË d d d d d d d d d	 g	 D]¨ } t  | g  j |  j  } t  | g  j |  j  d
 | } t t |   } t t |   } t | j |  j  t | j |  j  t | |  t | |  q" Wd  S(   Ni   i3   io   id   iČ   i@   i   i   i   y              đ?(   R(   Rf   R@   R	   R
   R   R-   R   (   RB   R$   R!   RD   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_random_complex˙   s    (#c      	   C` sŻ   x¨ d d d d d d d d d	 g	 D] } t  | g  j |  j  } t t |   } t t |   } t | j |  j  t | j |  j  t | |  t | |  q" Wd  S(
   Ni   i3   io   id   iČ   i@   i   i   i   (	   R(   Rf   R%   R	   R
   R   R-   R@   R   (   RB   R$   R!   RD   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_random_real
  s    (c         C` sO  |  j  t j k r d } n |  j  t j k r6 d } n  xt t D]} t j j d  t j j |  j	 |  j   } t
 t |   } t | | | | |  j   t t
 |   } t | | | | |  j   | d t j j |  j	 |  j  } t
 t |   } t | | | | |  j   t t
 |   } t | | | | |  j   qA Wd  S(   Ngńhăľřä>gť˝×Ůß|Ű=iŇ  y              đ?(   R%   R   R]   t   float64t   LARGE_COMPOSITE_SIZESt   LARGE_PRIME_SIZESR(   RA   R   Rf   R	   R
   R'   R@   (   RB   R#   R$   R!   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_size_accuracy  s     		&c         C` s9   t  t t g   t  t t d d g d d g g d  d  S(   Ni   i   iű˙˙˙(   RP   RQ   R	   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRR   )  s    (
   RX   RY   RC   RE   Ri   RO   Rk   Rl   Rp   RR   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRh   Ü   s   		
		
		
	t   TestDoubleIFFTc           B` s   e  Z d    Z RS(   c         C` s   t  j |  _ t  j |  _ d  S(   N(   R   R   R@   R   R%   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   /  s    (   RX   RY   RC   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRq   .  s   t   TestSingleIFFTc           B` s   e  Z d    Z RS(   c         C` s   t  j |  _ t  j |  _ d  S(   N(   R   R\   R@   R]   R%   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   5  s    (   RX   RY   RC   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRr   4  s   t   _TestRFFTBasec           B` sK   e  Z d    Z d   Z d   Z d   Z d e f d     YZ d   Z RS(   c         C` s   t  j j d  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   ;  s    c      
   C` s   x d d d d d d d d g d d d d d d d d d g	 g D]V } t  j | d |  j } t |  } t |  } t | |  t | j |  j  q@ Wd  S(   Ni   i   i   i   i   R-   (   R   R   R%   R   R;   R   R   R-   (   RB   t   tR!   R"   RD   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRE   >  s    Fc   	      C` sů   d d l  m } xâ t d d  D]Ń } d | } t t |   } | |  } t | f d t } | d j | d <| | d j | d <xI t d | d  D]4 } | | j | d | d <| | j | d | <q Wt j	 |  } t
 | |  q  Wd  S(   Ni    (   R
   i   i   R-   i˙˙˙˙i   (   t	   numpy.fftR
   R/   RI   R   R   R8   R9   RJ   t   drfftR   (	   RB   t	   numpy_fftR1   R*   R!   RN   RD   t   kR"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRO   F  s    
c         C` s9   t  t t g   t  t t d d g d d g g d  d  S(   Ni   i   iű˙˙˙(   RP   RQ   R   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRR   U  s    t
   MockSeriesc           B` s   e  Z d    Z d   Z RS(   c         C` s   t  j |  |  _ d  S(   N(   R   R   R+   (   RB   R+   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   __init__[  s    c         C` sD   y t  |  j |  SWn) t k
 r? t d j d |    n Xd  S(   Ns-   'MockSeries' object has no attribute '{attr}'t   attr(   t   getattrR+   t   AttributeErrort   format(   RB   t   item(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   __getattr__^  s
    (   RX   RY   Rz   R   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRy   Z  s   	c         C` so   t  j d d d d d g  } t j |  } d d d d	 d
 g } t |  } t | |  t | j |  d  S(   Ng      đ?g       @g      @g      @g      @i   i   i   i   i   (   R   R   Rs   Ry   R   R   R+   (   RB   R!   t   xst   expectedt   out(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_non_ndarray_with_dtypef  s    (	   RX   RY   RC   RE   RO   RR   t   objectRy   R   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRs   :  s   				t   TestRFFTDoublec           B` s   e  Z d    Z RS(   c         C` s   t  j |  _ t  j |  _ d  S(   N(   R   R   R@   R   R%   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   r  s    (   RX   RY   RC   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR   q  s   t   TestRFFTSinglec           B` s   e  Z d    Z RS(   c         C` s   t  j |  _ t  j |  _ d  S(   N(   R   R\   R@   R]   R%   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   x  s    (   RX   RY   RC   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR   w  s   t   _TestIRFFTBasec           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j j d  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   ~  s    c      
   ` sŤ   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 d g	 } d d d d d d d d d g	 }   f d	   } | | |  | | |  d  S(   Ni   i   i   i   y              @y              đ?i   y              @c         ` ss   t  t j |  d   j  } t |   } t | j   j  t | | d   j t | t	 |  d   j d  S(   NR-   t   decimal(
   R   R   R   R%   R=   R   R-   R   t   ndecR	   (   R!   t   xrR"   RD   (   RB   (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   _test  s
    y       @      @y      @      đ?y       @      @y       @      Ŕy      @      đży       @      Ŕy       @      @y      @      đ?y       @      @y      @      @y      @      Ŕy       @      Ŕy      @      đży       @      Ŕ(    (   RB   R<   t   x1_1RF   t   x2_1R   (    (   RB   s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRE     s    !!c   	      C` s  d d l  m } xt d d  D]ó } d | } t t |   } t | f d t } | d | d <xk t d | d  D]V } | d | d d | d | | | <| d | d d | d | | | | <qy W| d | | d <| |  } t j | d	 d } t | |  q  Wd  S(
   Ni    (   R	   i   i   R-   i   y              đ?i˙˙˙˙Rj   (	   Ru   R	   R/   RI   R   R   RJ   Rv   R   (	   RB   t
   numpy_ifftR1   R*   R!   R<   Rx   RD   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRO     s    
&.c      	   C` sŐ   xÎ d d d d d d d d d	 g	 D]Ť } t  | g  j |  j  } t t |   } t t |   } t | j |  j  t | j |  j  t | | d
 |  j d d | t | | d
 |  j d d | q" Wd  S(   Ni   i3   io   id   iČ   i@   i   i   i   R   R&   s   size=%d(	   R(   Rf   R%   R   R   R   R-   R   R   (   RB   R$   R!   RD   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRl      s    (c         C` sÓ   |  j  t j k r d } n |  j  t j k r6 d } n  x t t D] } t j j d  t j j |  j	 |  j   } t
 t |   } t | | | | |  j   t t
 |   } t | | | | |  j   qA Wd  S(   Ngńhăľřä>gť˝×Ůß|Ű=iŇ  (   R%   R   R]   Rm   Rn   Ro   R(   RA   R   Rf   R   R   R'   (   RB   R#   R$   R!   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRp   Ź  s    		c         C` s9   t  t t g   t  t t d d g d d g g d  d  S(   Ni   i   iű˙˙˙(   RP   RQ   R   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRR   ť  s    (   RX   RY   RC   RE   RO   Rl   Rp   RR   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR   }  s   					t   TestIRFFTDoublec           B` s   e  Z d    Z RS(   c         C` s%   t  j |  _ t  j |  _ d |  _ d  S(   Ni   (   R   R   R@   R   R%   R   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   Ä  s    (   RX   RY   RC   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR   Ă  s   t   TestIRFFTSinglec           B` s   e  Z d    Z RS(   c         C` s%   t  j |  _ t  j |  _ d |  _ d  S(   Ni   (   R   R\   R@   R]   R%   R   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   Ë  s    (   RX   RY   RC   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR   Ę  s   t   Testfft2c           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s   t  j j d  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   Ň  s    c         C` sV   t  j d
  } t | d d d d } t  j j | d d d d } t | |  d	 S(   s-   FFT returns wrong result with axes parameter.i   i   R5   i   t   axesiý˙˙˙iţ˙˙˙t   sN(   i   i   i   (   i   i   (   iý˙˙˙iţ˙˙˙(   i   i   (   iý˙˙˙iţ˙˙˙(   RL   t   onesR   R
   R   R   (   RB   R!   R"   t   y_r(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_regression_244Ő  s    c         C` s<   t  t t g  g  t  t t d d g d d g g d  d  S(   Ni   i   i   iý˙˙˙(   i   iý˙˙˙(   RP   RQ   R   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRR   Ţ  s    (   RX   RY   RC   R   RR   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR   Ń  s   			t   TestFftnSinglec           B` sŤ   e  Z d    Z d   Z e j j d e e  d    Z	 e j j d e
 e  d    Z d   Z e j j d e e  d    Z e j j d e
 e  d    Z RS(   c         C` s   t  j j d  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   ä  s    c         C` s   d d d g d d d g d d d	 g g } t  t j | t j   } t | j t j k d
 d t j t  |  t j  } t | |  d  S(   Ni   i   i   i   i   i   i   i   i	   t   msgs-   double precision output with single precision(   R   R   R   R]   R   R-   R\   R   (   RB   R!   R"   R   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRE   ç  s    R$   c         C` s   t  j j | |  d t  j j | |  } t | j j t  j   } t | j j t  j   j t  j  } t	 | j
 t  j  t | | d  d  S(   Ny              đ?iĐ  (   R   R(   R   R   R8   Rf   R]   Rm   R\   R   R-   R   (   RB   R$   R!   RD   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_size_accuracy_smallň  s
    ,'c         C` s   t  j j | d  d t  j j | d  } t | j j t  j   } t | j j t  j   j t  j  } t	 | j
 t  j  t | | d  d  S(   Ni   y              đ?iĐ  (   R   R(   R   R   R8   Rf   R]   Rm   R\   R   R-   R   (   RB   R$   R!   RD   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_size_accuracy_largeű  s
    ,'c         C` s   d d d g d d d g d d d	 g g } t  t j | t j   } t | j t j  t j t  |  t j  } t | |  d  S(
   Ni   i   i   i   i   i   i   i   i	   (   R   R   R   Re   R   R-   R\   R   (   RB   R!   R"   R   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_definition_float16  s    c         C` s   t  j j | |  d t  j j | |  } t | j j t  j   } t | j j t  j   j t  j  } t	 | j
 t  j  t | | d  d  S(   Ny              đ?g    A(   R   R(   R   R   R8   Rf   Re   Rm   R\   R   R-   R   (   RB   R$   R!   RD   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_float16_input_small  s
    ,'c         C` s   t  j j | d  d t  j j | d  } t | j j t  j   } t | j j t  j   j t  j  } t	 | j
 t  j  t | | d  d  S(   Ni   y              đ?g    >A(   R   R(   R   R   R8   Rf   Re   Rm   R\   R   R-   R   (   RB   R$   R!   RD   RN   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_float16_input_large  s
    ,'(   RX   RY   RC   RE   Ra   Rb   t   parametrizet   SMALL_COMPOSITE_SIZESt   SMALL_PRIME_SIZESR   Rn   Ro   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR   ă  s   		"	"			"	t   TestFftnc           B` sP   e  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  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   !  s    c         C` s   d d d g d d d g d d d	 g g } t  |  } t | t |   t d  } t t  |  t |   t d  } t t  |  t |   d  S(   Ni   i   i   i   i   i   i   i   i	   i   i   (   i   i   (   i   i   i   i   (   R   R   R6   R(   (   RB   R!   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRE   $  s    c      	   C` są
  d d d g d d d g d d d	 g g } d
 d d g d d d g d d d g g } d d d g d d d g d d d g g } d d d g d
 d d g d d d g g } d d d g d d d g d d d g g } d d d	 g d d d g d d d g g } d d
 d g d d d g d d d g g } d d d g d d d g d d d g g } d d d g d d d g d	 d d g g }	 d d d g d
 d d g d d d g g }
 d d d g d d d g d d d g g } d d d	 g d d d g d d d g g } d d d g d d d g d d d	 g g } d
 d d g d d d g d d d g g } d d d g d d d g d d d g g } d d
 d g d d d g d d d g g } d d d g d d d g d d d g g } d d d g d d d g d	 d d g g } | | |	 g } |
 | | g } | | | g } | | | g } | | | g } t  | | | g  } t t |  t | d d!  t t |  t | d d"  t t | d d# t | d d$  t | d d% } t t | d d  t |   t | d d& } t t t | d d  d d  t |   t | d d' } t t t | d d  d d  t |   t | d d( } t t | d d  t |   t | d d) } t t | d d  t |   t | d d* } t t |  | d   t t |  | d  t t |  | d  t | d d+ } t t |  | d   t t |  | d  t t |  | d  t | d d, } t t | d  d   d  d   d  f  | d  d   d  d   d  f  t t | d  d   d  d   d f  | d  d   d  d   d f  t t | d  d   d  d   d f  | d  d   d  d   d f  t | d d- } t t | d  d   d  d  d   f  | d  d   d  d  d   f  t t | d  d   d d  d   f  | d  d   d d  d   f  t t | d  d   d d  d   f  | d  d   d d  d   f  t | d d. } t t |  t | d  d d   t t |  t | d d d   t t |  t | d d d   t | d d/ } t t |  t | d  d   d  d  d   f d d   t t |  t | d  d   d d  d   f d d   t t |  t | d  d   d d  d   f d d   t | d d0 } t t |  t | d  d   d  d   d  f d d   t t |  t | d  d   d  d   d f d d   t t |	  t | d  d   d  d   d f d d   t | d d1 } xd t d  D]V } xM t d  D]? } t t | | | d  d   f  | | | d  d   f  qU	WqB	Wt | d d2 } xd t d  D]V } xM t d  D]? } t t | | d  d   | f  | | d  d   | f  qÎ	Wqť	Wt | d d3 } xd t d  D]V } xM t d  D]? } t t | d  d   | | f  | d  d   | | f  qG
Wq4
Wt | d d4 } t | |  d  S(5   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   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˙˙˙˙(   i   i   (   iý˙˙˙iţ˙˙˙(   iý˙˙˙i˙˙˙˙(   i˙˙˙˙iţ˙˙˙(   i˙˙˙˙iý˙˙˙(   iţ˙˙˙iý˙˙˙(   i˙˙˙˙(   iţ˙˙˙(   i    (    (   R   R   R   R   R/   R
   (   RB   t   plane1t   plane2t   plane3t	   ki_plane1t	   ki_plane2t	   ki_plane3t	   jk_plane1t	   jk_plane2t	   jk_plane3t	   kj_plane1t	   kj_plane2t	   kj_plane3t	   ij_plane1t	   ij_plane2t	   ij_plane3t	   ik_plane1t	   ik_plane2t	   ik_plane3t	   ijk_spacet	   ikj_spacet	   jik_spacet	   jki_spacet	   kij_spaceR!   R"   R1   t   j(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_axes_argument1  sň    %EEEEEE###,,,,,,AAAc         C` s˛   d d d g 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 } t  | d d
 } t | t  |   t  | d d } t | t  | d	    d  S(   Ni   i   i   i   i   i   i    R5   i˙˙˙˙(   i   i   (   i   i   (   R   R   (   RB   t   small_xt   large_x1R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_shape_argumentˇ  s    c         C` sä   d d d g d d d g d d d	 g g } t  d d d d
 g d d d d
 g d d d	 d
 g d
 d
 d
 d
 g g  } t | d d d d } t | t |   t | d d d d } t | t t t | d d   d d   d  S(   Ni   i   i   i   i   i   i   i   i	   i    R5   R   iţ˙˙˙i˙˙˙˙(   i   i   (   iţ˙˙˙i˙˙˙˙(   i   i   (   i˙˙˙˙iţ˙˙˙(   R   R   R   R   (   RB   Rź   R˝   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_shape_axes_argumentĹ  s    	c      	   C` sĺ   t  j j d  } t | d d d d } t | t | d	 d d
 d  t  j j d  } t | d d d d } t | t | d	 d d
 d  t  j j d  } t | d d d d } t | t  j j | d d d d  d  S(   Ni
   i   i   i   R   i˙˙˙˙R5   i   R4   R*   iţ˙˙˙i   i   iý˙˙˙R   (   i
   i   i   i   (   i˙˙˙˙(   i   (   i
   i   i   i   (   iţ˙˙˙(   i   (   i   i   i   (   iý˙˙˙iţ˙˙˙(   i   i   (   iý˙˙˙iţ˙˙˙(   i   i   (   RL   R(   R   R   R
   (   RB   R!   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_shape_axes_argument2Ô  s    c         C` s9   t  d  } t t d d  t | d d	 Wd  QXd  S(
   Ni   i   t   matchsB   when given, axes and shape arguments have to be of the same lengthR5   i   i   (   i   i   i   (   i   i   i   i   (   R   RP   RQ   R   (   RB   R!   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_shape_argument_moreĺ  s    	
c      	   C` sb   t  t d d  t g  g  Wd  QXt  t d d $ t d d g d d g g d  Wd  QXd  S(	   NRÁ   s3   invalid number of data points \(\[1 0\]\) specifieds5   invalid number of data points \(\[ 4 -3\]\) specifiedi   i   i   iý˙˙˙(   i   iý˙˙˙(   RP   RQ   R   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRR   ě  s    	
	
(
   RX   RY   RC   RE   Rť   Rž   Rż   RŔ   RÂ   RR   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyR˘      s   							t	   TestIfftnc        	   B` sł   e  Z d Z d Z d    Z e j j d e	 j
 e	 j d f e	 j e	 j d f g  d    Z e j j d d d g  e j j d d d d	 d
 d d g  d     Z d   Z RS(   c         C` s   t  j j d  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   ü  s    s   dtype,cdtype,maxnlpiĐ  iŹ  c         C` sż   t  j d d d g d d d g d d d	 g g d
 | } t |  } t | j |  t | t |  |  t d  } t t |  t |  |  t d  } t t |  t |  |  d  S(   Ni   i   i   i   i   i   i   i   i	   R-   i   i   (   i   i   (   i   i   i   i   (   R   R   R   R   R-   R   R7   R(   (   RB   R-   t   cdtypet   maxnlpR!   R"   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRE   ˙  s    RĹ   R$   i   i   i3   i    i@   i\   c         C` sb   t  | | g  d t  | | g  } t t t |   | |  t t t |   | |  d  S(   Ny              đ?(   R(   R   R   R   (   RB   RĹ   R$   R!   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRk     s    &c      	   C` sb   t  t d d  t g  g  Wd  QXt  t d d $ t d d g d d g g d  Wd  QXd  S(	   NRÁ   s3   invalid number of data points \(\[1 0\]\) specifieds5   invalid number of data points \(\[ 4 -3\]\) specifiedi   i   i   iý˙˙˙(   i   iý˙˙˙(   RP   RQ   R   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRR     s    	
	
N(   RX   RY   R?   R-   RÄ   RC   Ra   Rb   R   R   Rm   t
   complex128R]   R\   RE   Rk   RR   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRĂ   ř  s   	$3t   TestLongDoubleFailurec           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s   t  j j d  d  S(   NiŇ  (   R   R(   RA   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRC   $  s    c         C` sš   t  j t  j  j t  j t  j k r+ d  St  j j d  j t  j  d t  j j d  j t  j  } xI t	 t
 g D]; } y! | |  t d t  j   Wqv t k
 r° qv Xqv Wd  S(   Ni
   y              đ?s(   Type {0} not supported but does not fail(   R   R-   t   longcomplext   itemsizet   complexR(   t   randnRf   t
   longdoubleR
   R	   t   AssertionErrorRQ   (   RB   R!   t   f(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_complex'  s    '#
c         C` s   t  j t  j  j t  j t  j  j k r. d  St  j j d  j t  j  } xI t	 t
 g D]; } y! | |  t d t  j   WqY t k
 r qY XqY Wd  S(   Ni
   s'   Type %r not supported but does not fail(   R   R-   RĚ   RÉ   R   R(   RË   Rf   RČ   R
   R	   RÍ   RQ   (   RB   R!   RÎ   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt	   test_real7  s    *
(   RX   RY   RC   RĎ   RĐ   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRÇ   #  s   		t	   FakeArrayc           B` s   e  Z d    Z RS(   c         C` s   | |  _  | j |  _ d  S(   N(   t   _datat   __array_interface__(   RB   R+   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRz   H  s    	(   RX   RY   Rz   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRŃ   G  s   t
   FakeArray2c           B` s   e  Z d    Z d   Z RS(   c         C` s   | |  _  d  S(   N(   RŇ   (   RB   R+   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRz   N  s    c         C` s   |  j  S(   N(   RŇ   (   RB   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt	   __array__Q  s    (   RX   RY   Rz   RŐ   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRÔ   M  s   	t   TestOverwritec           B` sé  e  Z d  Z e j e j g Z e e j e j g Z	 d d d g Z
 d   Z d   Z e j j d e	  e j j d e
  e j j d e e g  e j j d	 d d d g  d       Z e j j d e  e j j d e
  e j j d e e g  e j j d	 d d d g  d       Z d   Z e j j d e	  e j j d e e g  e j j d	 d  d! d" f d# d$ f d% d& f d( d) d* f d+ d, f d- d. f d/ d0 f d1 d2 f d3 d4 f d6 d7 d8 f g  d      Z RS(9   s4   Check input overwrite behavior of the FFT functions.i   i   i    c   
      C` s   | j    } x{ d   t t g D]g } | | |  | | d | d | j | j | j | | | f }	 | s t | | d d |	 q q Wd  S(   Nc         S` s   |  S(   N(    (   R!   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   <lambda>^  s    t   overwrite_xs%   %s(%s%r, %r, axis=%r, overwrite_x=%r)R&   s   spurious overwrite in %s(   t   copyRŃ   RÔ   RX   R-   R5   R   (
   RB   R!   t   routinet   fftsizeR4   RŘ   t   should_overwriteRF   t   faket   sig(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   _check\  s    "c   
   	   C` sů   t  j j d  t  j | t  j  rN t  j j |   d t  j j |   } n t  j j |   } | j |  } | oĐ | | k oĐ | | | k oĐ t |  d k pĐ | t |  t |  d k oĐ | | | k }	 |  j | | | | d | d |	 d  S(   NiŇ  y              đ?i   RŘ   RÜ   (	   R   R(   RA   t
   issubdtypet   complexfloatingRË   Rf   R.   Rß   (
   RB   RÚ   R-   R5   R4   t   overwritable_dtypesRŰ   RŘ   R+   RÜ   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt	   _check_1df  s    ) R-   RŰ   RŘ   s
   shape,axesi˙˙˙˙i   i    i   c         C` sT   t  j t  j f } |  j t | | | | | |  |  j t | | | | | |  d  S(   N(   R   RĆ   R\   Ră   R
   R	   (   RB   R-   RŰ   RŘ   R5   R   t   overwritable(    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_fft_iffty  s
    
c         C` sK   |  j  } |  j t | | | | | |  |  j t | | | | | |  d  S(   N(   t   real_dtypesRă   R   R   (   RB   R-   RŰ   RŘ   R5   R   Rä   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_rfft_irfft  s
    	
c      
   ` sw  t  j j d  t  j | t  j  rN t  j j |   d t  j j |   } n t  j j |   } | j |  }   f d     | d  k r | } n t t  j	 | |   } xĹ   |  D]ˇ }	 | o| j
 d k ot  j g  t |	 |  D] \ }
 } |
 | k  ^ qé  o| | k } |  j | | |	 | d | d | | j
 d k r¸ |  j | j | |	 | d | d t q¸ q¸ Wd  S(   NiŇ  y              đ?c         3` ss   t  |   d k r d VnU xR |  d d |  d |  d d f D]- } x$   |  d  D] } | f | VqU Wq> Wd  S(   Ni    i   i   (    (   R.   (   t   shpRş   t   rest(   t   fftshape_iter(    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRę     s
    *i   RŘ   RÜ   (   R   R(   RA   Rŕ   Rá   RË   Rf   R?   t   tuplet   taket   ndimt   allt   zipRß   t   TRT   (   RB   RÚ   R-   R5   R   Râ   RŘ   R+   t
   part_shapet   fftshapeR!   R"   RÜ   (    (   Rę   s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   _check_nd_one  s,    )	(c         C` sN   t  j t  j f } |  j t | | | | |  |  j t | | | | |  d  S(   N(   R   RĆ   R\   Ró   R   R   (   RB   R-   RŘ   R5   R   Rä   (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   test_fftn_ifftn¸  s
    (   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   N(   (   i   N(   i   (   i    (   i   i   (   i    (   i   i   (   i   (   i   i   (   (   i   i   N(   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   i   N(   i   i   i   (   i    i   i   (   RX   RY   t   __doc__R   R]   Rm   Rć   R\   RĆ   t   dtypest   fftsizesRß   Ră   Ra   Rb   R   RS   RT   Rĺ   Rç   Ró   R?   Rô   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyRÖ   U  sD   	
		%									i    i    ió   i   i   i   i   i   i   i   i$   (M   t
   __future__R    R   R   t	   __usage__t   numpy.testingR   R   R   R   R   Ra   R   RP   t   scipy.fftpackR	   R
   R   R   R   R   R   R   RJ   t   scipy.fftpack.basicR   RL   R   R   R   R   R   R   R   R   R   R   R   R   Ru   t   numpy.randomR   Rn   R    Ro   RĄ   R'   R(   R,   R2   R3   R6   R7   R;   R=   R   R>   RZ   R[   Rd   Rh   Rq   Rr   Rs   R   R   R   R   R   R   R   R˘   RĂ   RÇ   RŃ   RÔ   RÖ   (    (    (    s=   lib/python2.7/site-packages/scipy/fftpack/tests/test_basic.pyt   <module>   sb   	(4L							
	
				7
R7F=Ř+$