ó
·ˆz]c           @   s§   d  d l  Z  d  d l Z y d  d l m Z Wn d Z n Xd  d l m Z m Z m	 Z	 d „  Z
 d e f d „  ƒ  YZ d e f d „  ƒ  YZ e d	 k r£ e	 ƒ  n  d S(
   iÿÿÿÿN(   t   using_mklfft(   t   assert_array_almost_equalt   TestCaset   run_module_suitec         C   so   t  |  ƒ } d t j t j | ƒ t | ƒ } t j | ƒ j d d ƒ | } t j |  t j | ƒ d d ƒS(   Ny               Àiÿÿÿÿi   t   axis(   t   lent   npt   pit   aranget   floatt   reshapet   sumt   exp(   t   xt   Lt   phase(    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   fft1   s    $t	   TestFFT1Dc           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   sI   t  j j } | d ƒ d | d ƒ } t t | ƒ t  j j | ƒ ƒ d  S(   Ni   y              ð?(   R   t   randomR   R   t   fft(   t   selft   randR   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt
   test_basic   s    c         C   sp   t  j j } | d ƒ d | d ƒ } xC t d d ƒ D]2 } | j ƒ  } t  j j | | ƒ t | | ƒ q6 Wd  S(   Ni
   y              ð?i   i   (   R   R   t   ranget   copyR   R   (   R   R   R   t   nt   xx(    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   test_change_array   s    c         C   sØ   t  j j } | d ƒ d | d ƒ } x« t d d ƒ D]š } | t | ƒ k  r[ | |  } n! t | ƒ | t | ƒ d g } |  j | t | ƒ ƒ t  j j | | ƒ } |  j | t | ƒ ƒ t t | ƒ | ƒ q6 Wd  S(   Ni
   y              ð?i   i   i    (	   R   R   R   R   t   listt   assertEqualR   R   R   (   R   R   R   R   t   yt   z(    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt	   test_narg    s    !c         C   s¦   xŸ t  j d f t  j d f t  j d f t  j d f g D]g \ } } t  j d t  j t  j d ƒ d ƒ } | j | ƒ } t  j	 j	 | ƒ } t
 t | ƒ | ƒ q7 Wd  S(   Nt	   complex64t
   complex128y               @i   (   R   t   float32t   float64R!   R"   R   R   R   t   astypeR   R   R   (   R   t   t1t   t2t   at   b(    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt
   test_dtype-   s    'c         C   s   xz d d d d d d d d d	 d
 d d d g D]K } t  j j | ƒ d t  j j | ƒ } t t | ƒ t  j j | ƒ ƒ q. Wd  S(   Ni   i   i   i   i   i   i   i   i   i    i   i€   i   y              ð?(   R   R   R   R   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt
   test_sizes;   s    4&c         C   su   xn t  d d ƒ D]] } t j j | ƒ d t j j | ƒ } t j j | ƒ } t j j | ƒ } t | | ƒ q Wd  S(   Ni   i    y              ð?(   R   R   R   R   t   ifftR   (   R   R   R   R   R   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt	   test_ifft@   s
    &c         C   su   t  j j d d d d g ƒ } t  j d d d g ƒ } t | | ƒ t  j j d d d g d d ƒ} t | | ƒ d  S(   Ni    i   y              ð¿iÿÿÿÿR   i   (   R   R   t   rfftt   arrayR   (   R   R   R   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt	   test_rfftG   s
    !c      	   C   sz  x‡ d d g d d g f d d d g d d d d g f d d d d g d d d d d d g f g D]% \ } } t  t j j | ƒ | ƒ qa Wx† t d d ƒ D]u } d g d g | d } d | d } d | g | } t  t j j | ƒ | ƒ t  t j j | d	 | ƒ| ƒ qš Wx` t d d
 ƒ D]O } t j j | ƒ } t j j | ƒ } t j j | d	 | ƒ} t  | | ƒ q#Wd  S(   Ni   i    g      à?y              ð¿iÿÿÿÿi   i   g      ð?R   i    (   R   R   R   t   irfftR   R   R.   (   R   R   R   t   mR   R   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt
   test_irfftO   s    7#c         C   sè   d \ } } t  j j | | ƒ d t  j j | | ƒ } t  j g  t | ƒ D] } t  j j | | ƒ ^ qK ƒ } t t  j j | ƒ | ƒ t  j | d d ƒ } t  j j | ƒ } t  j | d d ƒ } t t  j j | d d ƒ| ƒ d  S(   Ni   i   y              ð?i    i   R   (   i   i   (   R   R   t   randnR/   R   R   R   t   swapaxes(   R   R2   R   R(   t   iR)   t   ct   d(    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   test_2d_arrayc   s    ,8(   t   __name__t
   __module__R   R   R    R*   R+   R-   R0   R3   R9   (    (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyR      s   								t	   TestFFTNDc           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 ƒ d t  j j d d ƒ } | j ƒ  } x5 t d ƒ D]' } t  j t  j j | d | ƒƒ } qE Wt t  j j | ƒ | ƒ d  S(   Ni   i   y              ð?i   R   (	   R   R   R4   R   R   R/   R   R   t   fftn(   R   R(   R)   R6   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   test_basic_2dp   s
    ,%c         C   s   t  j j d d d ƒ d t  j j d d d ƒ } xW t d ƒ D]I } t  j t  j j | d | ƒƒ } t t  j j | d | f ƒ| ƒ q? Wd  S(   Ni   i   i   y              ð?R   t   axes(   R   R   R4   R   R/   R   R   R=   (   R   R(   R   R)   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt
   test_3d_1dw   s    2!c         C   s™   t  j j d d d ƒ d t  j j d d d ƒ } | j ƒ  } d	 } x/ | D]' } t  j t  j j | d | ƒƒ } qK Wt t  j j | d | ƒ| ƒ d  S(
   Ni   i   i   y              ð?i   i   R   R?   (   i   i   (   R   R   R4   R   R/   R   R   R=   (   R   R(   R)   R?   R6   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt
   test_3d_2d}   s    2%c         C   så   xÞ t  d d ƒ D]Í } t | d g ƒ } t j j | Œ  d t j j | Œ  } x‹ t  d | d ƒ D]v } | j ƒ  } t  | | | ƒ } x/ | D]' } t j t j j | d | ƒƒ } q Wt t j j	 | d | ƒ| ƒ qc Wq Wd  S(   Ni   i	   i   y              ð?R   R?   (
   R   t   tupleR   R   R4   R   R/   R   R   R=   (   R   t   ndt   argsR(   t   dimR)   R?   R6   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   test_nd_dim…   s    &%c         C   sê   xã t  d d ƒ D]Ò } t | d g ƒ } t j j | Œ  d t j j | Œ  } x t  d | d ƒ D]{ } | j ƒ  } t j t  | ƒ | ƒ } x/ | D]' } t j t j j | d | ƒƒ } q” Wt	 t j j
 | d | ƒ| ƒ qc Wq Wd  S(   Ni   i	   i   y              ð?R   R?   (   R   RB   R   R   R4   R   t   sampleR/   R   R   R=   (   R   RC   RD   R(   RE   R)   R?   R6   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   test_nd_axes   s    &%c   
      C   s/  x(t  d d ƒ D]} t | d g ƒ } t j j | Œ  d t j j | Œ  } xÕ t  d | d ƒ D]À } | j ƒ  } t j t  | ƒ | ƒ } g  t  | ƒ D] } t j d d ƒ ^ qš } xC t  | ƒ D]5 }	 t j t j	 j	 | d | |	 d | |	 ƒƒ } qÅ Wt
 t j	 j | d	 | d
 | ƒ| ƒ qc Wq Wd  S(   Ni   i	   i   y              ð?i   i   R   R   t   sR?   (   R   RB   R   R   R4   R   RG   t   randintR/   R   R   R=   (
   R   RC   RD   R(   RE   R)   R?   t   dumt   shapeR6   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   test_nd_shape›   s    &+3c         C   s´   x­ t  d d ƒ D]œ } t | d g ƒ } t j j | Œ  d t j j | Œ  } | j ƒ  } x5 t  | ƒ D]' } t j t j j | d | ƒƒ } qh Wt t j j	 | ƒ | ƒ q Wd  S(   Ni   i	   i   y              ð?R   (
   R   RB   R   R   R4   R   R/   R   R   R=   (   R   RC   RD   R(   R)   R6   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   test_basic_nd§   s    &%c         C   sˆ   x t  d d ƒ D]p } t | d g ƒ } t j j | Œ  d t j j | Œ  } t j j | ƒ } t j j | ƒ } t | | ƒ q Wd  S(   Ni   i	   i   y              ð?(	   R   RB   R   R   R4   R   R=   t   ifftnR   (   R   RC   RD   R   R   R   (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt
   test_ifftn°   s    &(
   R:   R;   R>   R@   RA   RF   RH   RM   RN   RP   (    (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyR<   o   s   								t   __main__(   R   t   numpyR   t	   numpy.fftR    t   Nonet   numpy.testingR   R   R   R   R   R<   R:   (    (    (    s7   lib/python2.7/site-packages/numpy/fft/tests/test_fft.pyt   <module>   s   
	]J