U
    »mœd   ã                    @   s*  d dl mZ d dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZmZ d dlZdZejjejjejjejjejjejjejjejjejjejjejjejjejjejejejjej ej!ej"ej#ej$ej%ej&ej'ej(ej)eej*ddd	�eej+ddd	�fZ,ejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejj ejj!ejj"ejj#ejj$ejj%ejj&ejj'ejj(ejj)eejj*ddd	�eejj+ddd	�fZ-e
je
je
je
je
je
je
je
je
je
je
je
je
je
je
je
je
j e
j!e
j"e
j#e
j$e
j%e
j&e
j'e
j(e
j)e
j*e
j+fZ.ej/ 0d
e1e-e,e.ƒ¡dd„ ƒZ2ejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejjejj ejj!fZ3e
je
je
je
je
je
je
je
je
je
je
je
je
je
je
je
je
j e
j!fZ4ej/ 0de1e3e4ƒ¡dd„ ƒZ5dS )é    )ÚpartialN)Ú_fftlogÚ
_pocketfftÚset_backend)Úmock_backend)Úassert_allcloseÚassert_equal)ÚfftÚfft2ÚfftnÚifftÚifft2ÚifftnÚrfftÚrfft2ÚrfftnÚirfftÚirfft2ÚirfftnÚdctÚidctÚdctnÚidctnÚdstÚidstÚdstnÚidstnÚfhtÚifhté   g      à?)ZdlnÚmuzfunc, np_func, mockc              	   C   s~   t  d¡ d¡}||ƒ}t| |ƒ|dd� ttdd��, d|_| |ƒ}t||jƒ t|jdƒ W 5 Q R X t| |ƒ|dd� d S )	Né   ©é
   r   g»½×Ùß|Û=)ZatolT©Úonlyr   é   )	ÚnpÚarangeÚreshaper   r   r   Únumber_callsr   Úreturn_value)ÚfuncZnp_funcÚmockÚxZanswerÚy© r0   úU/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/fft/tests/test_backend.pyÚtest_backend_call8   s    r2   z
func, mockc              	   C   s�   t  d¡ d¡}tjtdd�� | |dd� W 5 Q R X ttdd��D d	|_| |dd�}t	||j
ƒ t	|jd
ƒ t	|jd
 d dƒ W 5 Q R X d S )Nr!   r"   zprecomputed plan)ÚmatchZfoo)ÚplanTr$   r   r&   r4   )r'   r(   r)   ÚpytestZraisesÚNotImplementedErrorr   r   r*   r   r+   Z	last_args)r,   r-   r.   r/   r0   r0   r1   Útest_backend_planV   s    r7   )6Ú	functoolsr   Únumpyr'   Z	scipy.fftZscipyr   r   r   Zscipy.fft.testsr   Znumpy.testingr   r   r5   Úfnamesr	   r
   r   r   r   r   r   r   r   r   r   r   ZhfftZhfft2ZhfftnZihfftZihfft2Zihfftnr   r   r   r   r   r   r   r   r   r   Znp_funcsÚfuncsZmocksÚmarkZparametrizeÚzipr2   Z
plan_funcsZ
plan_mocksr7   r0   r0   r0   r1   Ú<module>   sü                   ö                ö               ö
          û          û