§
    ¢éUgcv  ã                   óX  — 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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 g d¢Z g d¢Z!d	gZ"d
gZ#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+ G d„ d¦  «        Z, G d„ de,¦  «        Z- G d„ de,¦  «        Z. G d„ d¦  «        Z/ G d„ d¦  «        Z0 G d„ de0¦  «        Z1 G d„ d e0¦  «        Z2 G d!„ d"¦  «        Z3 G d#„ d$e3¦  «        Z4 G d%„ d&e3¦  «        Z5 G d'„ d(¦  «        Z6 G d)„ d*e6¦  «        Z7 G d+„ d,e6¦  «        Z8 G d-„ d.¦  «        Z9 G d/„ d0¦  «        Z: G d1„ d2¦  «        Z; G d3„ d4¦  «        Z< G d5„ d6¦  «        Z= G d7„ d8¦  «        Z> G d9„ d:¦  «        Z?ej@         A                    d;eeeg¦  «        d<„ ¦   «         ZBdS )=é    )Úassert_Úassert_equalÚassert_array_almost_equalÚassert_array_almost_equal_nulpÚassert_array_lessN)Úraises)ÚifftÚfftÚfftnÚifftnÚrfftÚirfftÚfft2)
ÚarangeÚarrayÚasarrayÚzerosÚdotÚexpÚpiÚswapaxesÚdoubleÚcdouble©Úrand)i    i`  i  )é   é   é$   iÛ  é   c                 ó¸   — d|› d|› �}t          t          j                             | |z
  ¦  «        |t          j                             | ¦  «        z  |¦  «         d S )Nzsize: z  rdt: )r   ÚnpÚlinalgÚnorm)ÚxÚyÚrtolÚsizeÚrdtÚerr_msgs         ú]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/fftpack/tests/test_basic.pyÚ_assert_close_in_normr+   #   sT   € à)�tÐ)Ð) CÐ)Ð)€GÝ•b”i—n’n Q¨¡UÑ+Ô+¨Tµ"´)·.².ÀÑ2CÔ2CÑ-CÀWÑMÔMÐMÐMÐMó    c                 ó   — t          | Ž S ©Nr   )r'   s    r*   Úrandomr/   )   s   € Ý�ˆ;Ðr,   c                 ó  — t          | ¦  «        } t          | ¦  «        }t          |t          ¬¦  «        }t	          |¦  «         dt
          z  |z  z  }t          |¦  «        D ]%}t          t          ||z  ¦  «        | ¦  «        ||<   Œ&|S ©N©Údtypeù               @©	r   Úlenr   r   r   r   Úranger   r   ©r$   Únr%   ÚwÚis        r*   Ú
direct_dftr<   -   s}   € Ý�‰
Œ
€AÝˆA‰Œ€AÝˆa•wÐÑÔ€AÝ	�‰Œˆ
�B•r‘E˜!‘GÑ€AÝ�1‰XŒXð  ð  ˆÝ•3�q˜‘s‘8”8˜QÑÔˆˆ!‰ˆØ€Hr,   c                 ó  — t          | ¦  «        } t          | ¦  «        }t          |t          ¬¦  «        }t	          |¦  «        dt
          z  |z  z  }t          |¦  «        D ](}t          t          ||z  ¦  «        | ¦  «        |z  ||<   Œ)|S r1   r5   r8   s        r*   Údirect_idftr>   7   s€   € Ý�‰
Œ
€AÝˆA‰Œ€AÝˆa•wÐÑÔ€AÝˆq‰	Œ	�2•b‘5˜‘7Ñ€AÝ�1‰XŒXð "ð "ˆÝ•3�q˜‘s‘8”8˜QÑÔ Ñ!ˆˆ!‰ˆØ€Hr,   c                 óŽ   — t          | ¦  «        } t          t          | j        ¦  «        ¦  «        D ]}t	          | |¬¦  «        } Œ| S ©N)Úaxis)r   r7   r6   Úshaper
   ©r$   rA   s     r*   Údirect_dftnrD   A   sE   € Ý�‰
Œ
€AÝ•c˜!œ'‘l”lÑ#Ô#ð ð ˆÝ�˜ÐÑÔˆˆØ€Hr,   c                 óŽ   — t          | ¦  «        } t          t          | j        ¦  «        ¦  «        D ]}t	          | |¬¦  «        } Œ| S r@   )r   r7   r6   rB   r	   rC   s     r*   Údirect_idftnrF   H   sE   € Ý�‰
Œ
€AÝ•c˜!œ'‘l”lÑ#Ô#ð ð ˆÝ�˜ÐÑÔˆˆØ€Hr,   c                 ó€  — t          | ¦  «        } t          | ¦  «        }t          |¦  «         dt          z  |z  z  }t	          |t
          ¬¦  «        }t          |dz  dz   ¦  «        D ]U}t          t          ||z  ¦  «        | ¦  «        }|r'|j	        |d|z  dz
  <   d|z  |k     r|j
        |d|z  <   ŒK|j	        |d<   ŒV|S )Nr4   r2   r   é   r   )r   r6   r   r   r   r   r7   r   r   ÚrealÚimag)r$   r9   r:   Úrr;   r%   s         r*   Údirect_rdftrL   O   sÄ   € Ý�‰
Œ
€AÝˆA‰Œ€AÝ	�‰Œˆ
�B•r‘E˜!‘GÑ€AÝˆa•vÐÑÔ€AÝ�1�a‘4˜‘6‰]Œ]ð ð ˆÝ•�A�a‘C‘”˜!ÑÔˆØð 	Ø”vˆAˆa�‰c�!‰e‰HØ�‰s�QŠwˆwØœ��!�A‘#‘øà”6ˆAˆa‰DˆDØ€Hr,   c                 óš  — t          | ¦  «        } t          | ¦  «        }t          |t          ¬¦  «        }t	          |dz  dz   ¦  «        D ]n}|r_d|z  |k     rD| d|z  dz
           d| d|z           z  z   ||<   | d|z  dz
           d| d|z           z  z
  |||z
  <   ŒQ| d|z  dz
           ||<   Œc| d         |d<   Œot          |¦  «        j        S )Nr2   r   rH   ù              ð?r   )r   r6   r   r   r7   r>   rI   )r$   r9   Úx1r;   s       r*   Údirect_irdftrP   _   sã   € Ý�‰
Œ
€AÝˆA‰Œ€AÝ	ˆq�Ð	 Ñ	 Ô	 €BÝ�1�a‘4˜‘6‰]Œ]ð ð ˆØð 	Ø�‰s�QŠwˆwØ˜!˜A™#˜a™%œ 2 a¨¨!©¤f¡9Ñ,��1‘Ø˜A˜a™C ™Eœ( R¨¨!¨A©#¬¡YÑ.��1�Q‘3‘�à˜!˜A™#˜a™%œ��1‘�à�a”DˆBˆq‰EˆEÝ�r‰?Œ?ÔÐr,   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú_TestFFTBasec                 ó`   — d | _         d | _        t          j                             d¦  «         d S ©NéÒ  )Úcdtr(   r!   r/   Úseed©Úselfs    r*   Úsetup_methodz_TestFFTBase.setup_methodp   s*   € ØˆŒØˆŒÝ
Œ	�Š�tÑÔÐÐÐr,   c                 ó^  — t          j        g d¢| j        ¬¦  «        }t          |¦  «        }t	          |j        | j        ¦  «         t          |¦  «        }t          ||¦  «         t          j        g d¢| j        ¬¦  «        }t          t          |¦  «        t          |¦  «        ¦  «         d S )N©rH   r   é   ù      @      ð?rH   r   r]   y      @       @r2   ©rH   r   r]   y      @        é   )r!   r   rV   r
   r   r3   r<   r   ©rY   r$   r%   Úy1s       r*   Útest_definitionz_TestFFTBase.test_definitionu   s•   € ÝŒHÐ,Ð,Ð,°D´HÐ=Ñ=Ô=ˆÝ�‰FŒFˆÝ�Q”W˜dœhÑ'Ô'Ð'Ý˜‰]Œ]ˆÝ! ! BÑ'Ô'Ð'ÝŒH�^�^�^¨4¬8Ð4Ñ4Ô4ˆÝ!¥# a¡&¤&­°A©¬Ñ7Ô7Ð7Ð7Ð7r,   c                 óŠ  — t          j        g d¢| j        ¬¦  «        }t          j        g d¢| j        ¬¦  «        }t          ||gd¬¦  «        }t	          |j        | j        ¦  «         t	          |j        d¦  «         t          |d         t          |¦  «        ¦  «         t          |d         t          |¦  «        ¦  «         d S ©N©rH   r   r]   é   r2   rg   ©r9   ©r   rg   r   rH   )
r!   r   r(   r
   r   r3   rV   rB   r   r<   ©rY   rO   Úx2r%   s       r*   Útest_n_argument_realz!_TestFFTBase.test_n_argument_real~   s¬   € ÝŒX�i�i�i t¤xÐ0Ñ0Ô0ˆÝŒX�i�i�i t¤xÐ0Ñ0Ô0ˆÝ��B�˜!ÐÑÔˆÝ�Q”W˜dœhÑ'Ô'Ð'Ý�Q”W˜UÑ#Ô#Ð#Ý! ! A¤$¥z°"¡~¤~Ñ6Ô6Ð6Ý! ! A¤$¥z°"¡~¤~Ñ6Ô6Ð6Ð6Ð6r,   c                 óŠ  — t          j        g d¢| j        ¬¦  «        }t          j        g d¢| j        ¬¦  «        }t          ||gd¬¦  «        }t	          |j        | j        ¦  «         t	          |j        d¦  «         t          |d         t          |¦  «        ¦  «         t          |d         t          |¦  «        ¦  «         d S )N)rH   r   r]   r^   r2   rg   rh   ri   r   rH   )	r!   r   rV   r
   r   r3   rB   r   r<   rj   s       r*   Ú_test_n_argument_complexz%_TestFFTBase._test_n_argument_complex‡   s¬   € ÝŒX�l�l�l¨$¬(Ð3Ñ3Ô3ˆÝŒX�l�l�l¨$¬(Ð3Ñ3Ô3ˆÝ��B�˜!ÐÑÔˆÝ�Q”W˜dœhÑ'Ô'Ð'Ý�Q”W˜UÑ#Ô#Ð#Ý! ! A¤$¥z°"¡~¤~Ñ6Ô6Ð6Ý! ! A¤$¥z°"¡~¤~Ñ6Ô6Ð6Ð6Ð6r,   c                 ó€   — t          t          t          g ¦  «         t          t          t          ddgddggd¦  «         d S ©NrH   r   éûÿÿÿ)Úassert_raisesÚ
ValueErrorr
   rX   s    r*   Útest_invalid_sizesz_TestFFTBase.test_invalid_sizes�   s:   € Ý•j¥# rÑ*Ô*Ð*Ý•j¥#¨¨1¨¨q°¨e }°bÑ9Ô9Ð9Ð9Ð9r,   N)Ú__name__Ú
__module__Ú__qualname__rZ   rc   rl   rn   rt   © r,   r*   rR   rR   o   s_   € € € € € ðð ð ð
8ð 8ð 8ð7ð 7ð 7ð7ð 7ð 7ð:ð :ð :ð :ð :r,   rR   c                   ó   — e Zd Zd„ ZdS )ÚTestDoubleFFTc                 óJ   — t           j        | _        t           j        | _        d S r.   ©r!   Ú
complex128rV   Úfloat64r(   rX   s    r*   rZ   zTestDoubleFFT.setup_method–   ó   € Ý”=ˆŒÝ”:ˆŒˆˆr,   N©ru   rv   rw   rZ   rx   r,   r*   rz   rz   •   ó#   € € € € € ðð ð ð ð r,   rz   c                   ób   — e Zd Zd„ ZdZej                             de¬¦  «        d„ ¦   «         ZdS )ÚTestSingleFFTc                 óJ   — t           j        | _        t           j        | _        d S r.   ©r!   Ú	complex64rV   Úfloat32r(   rX   s    r*   rZ   zTestSingleFFT.setup_methodœ   ó   € Ý”<ˆŒÝ”:ˆŒˆˆr,   zusingle-precision FFT implementation is partially disabled, until accuracy issues with large prime powers are resolvedF)ÚrunÚreasonc                 ó   — d S r.   rx   rX   s    r*   Útest_noticezTestSingleFFT.test_notice£   s   € àˆr,   N)	ru   rv   rw   rZ   rŠ   ÚpytestÚmarkÚxfailrŒ   rx   r,   r*   rƒ   rƒ   ›   s\   € € € € € ðð ð ðK€Fð „[×Ò˜5¨ÐÑ0Ô0ðð ñ 1Ô0ðð ð r,   rƒ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestFloat16FFTc                 óH  — t          j        g d¢t           j        ¬¦  «        }t          |d¬¦  «        }t	          |j        t           j        ¦  «         t	          |j        d¦  «         t          |t          | 
                    t           j        ¦  «        ¦  «        ¦  «         d S )Nrf   r2   rg   rh   )rg   ©r!   r   Úfloat16r
   r   r3   r†   rB   r   r<   Úastyper‡   )rY   rO   r%   s      r*   Útest_1_argument_realz#TestFloat16FFT.test_1_argument_realª   s}   € ÝŒX�l�l�l­"¬*Ð5Ñ5Ô5ˆÝ��aˆL‰LŒLˆÝ�Q”W�bœlÑ+Ô+Ð+Ý�Q”W˜eÑ$Ô$Ð$Ý! !¥Z°·	²	½"¼*Ñ0EÔ0EÑ%FÔ%FÑGÔGÐGÐGÐGr,   c                 ó  — t          j        g d¢t           j        ¬¦  «        }t          j        g d¢t           j        ¬¦  «        }t          ||gd¬¦  «        }t	          |j        t           j        ¦  «         t	          |j        d¦  «         t          |d         t          | 
                    t           j        ¦  «        ¦  «        ¦  «         t          |d         t          | 
                    t           j        ¦  «        ¦  «        ¦  «         d S re   r“   rj   s       r*   rl   z#TestFloat16FFT.test_n_argument_real±   sÌ   € ÝŒX�l�l�l­"¬*Ð5Ñ5Ô5ˆÝŒX�l�l�l­"¬*Ð5Ñ5Ô5ˆÝ��R�˜AÐÑÔˆÝ�Q”W�bœlÑ+Ô+Ð+Ý�Q”W˜fÑ%Ô%Ð%Ý! ! A¤$­
°2·9²9½R¼ZÑ3HÔ3HÑ(IÔ(IÑJÔJÐJÝ! ! A¤$­
°2·9²9½R¼ZÑ3HÔ3HÑ(IÔ(IÑJÔJÐJÐJÐJr,   N)ru   rv   rw   r–   rl   rx   r,   r*   r‘   r‘   ¨   s:   € € € € € ðHð Hð HðKð Kð Kð Kð Kr,   r‘   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú_TestIFFTBasec                 óD   — t           j                             d¦  «         d S rT   ©r!   r/   rW   rX   s    r*   rZ   z_TestIFFTBase.setup_method¼   ó   € Ý
Œ	�Š�tÑÔÐÐÐr,   c                 óZ  — t          j        g d¢| j        ¦  «        }t          |¦  «        }t	          |¦  «        }t          |j        | j        ¦  «         t          ||¦  «         t          j        g d¢| j        ¦  «        }t          t          |¦  «        t	          |¦  «        ¦  «         d S )Nr\   r_   )r!   r   rV   r	   r>   r   r3   r   ra   s       r*   rc   z_TestIFFTBase.test_definition¿   s�   € ÝŒHÐ,Ð,Ð,¨d¬hÑ7Ô7ˆÝ�‰GŒGˆÝ˜‰^Œ^ˆÝ�Q”W˜dœhÑ'Ô'Ð'Ý! ! BÑ'Ô'Ð'åŒH�^�^�^ T¤XÑ.Ô.ˆÝ!¥$ q¡'¤'­+°a©.¬.Ñ9Ô9Ð9Ð9Ð9r,   c                 ó�  — t          j        g d¢| j        ¦  «        }t          |¦  «        }t	          |j        | j        ¦  «         t          |¦  «        }t          ||¦  «         t          j        g d¢| j        ¬¦  «        }t	          |j        | j        ¦  «         t          t          |¦  «        t          |¦  «        ¦  «         d S )N©rH   r   r]   rg   rH   r   r]   rg   ©rH   r   r]   rg   r`   r2   )	r!   r   r(   r	   r   r3   rV   r>   r   ra   s       r*   Útest_definition_realz"_TestIFFTBase.test_definition_realÉ   s¦   € ÝŒHÐ&Ð&Ð&¨¬Ñ1Ô1ˆÝ�‰GŒGˆÝ�Q”W˜dœhÑ'Ô'Ð'Ý˜‰^Œ^ˆÝ! ! BÑ'Ô'Ð'åŒH�[�[�[¨¬Ð1Ñ1Ô1ˆÝ�Q”W˜dœhÑ'Ô'Ð'Ý!¥$ q¡'¤'­+°a©.¬.Ñ9Ô9Ð9Ð9Ð9r,   c                 óÔ  — dD ]ä}t          |g¦  «                             | j        ¦  «        }t          |g¦  «                             | j        ¦  «        d|z  z   }t          t	          |¦  «        ¦  «        }t	          t          |¦  «        ¦  «        }t          |j        | j        ¦  «         t          |j        | j        ¦  «         t          ||¦  «         t          ||¦  «         Œåd S )N©	rH   é3   éo   éd   éÈ   é@   é€   é   i   rN   )r/   r•   rV   r	   r
   r   r3   r   ©rY   r'   r$   rb   Úy2s        r*   Útest_random_complexz!_TestIFFTBase.test_random_complexÔ   sË   € Ø6ð 	-ð 	-ˆDÝ˜�v‘”×%Ò% d¤hÑ/Ô/ˆAÝ˜�v‘”×%Ò% d¤hÑ/Ô/°"°Q±$Ñ6ˆAÝ•c˜!‘f”f‘”ˆBÝ•T˜!‘W”W‘”ˆBÝ˜œ 4¤8Ñ,Ô,Ð,Ý˜œ 4¤8Ñ,Ô,Ð,Ý% b¨!Ñ,Ô,Ð,Ý% b¨!Ñ,Ô,Ð,Ð,ð	-ð 	-r,   c                 óx  — dD ]¶}t          |g¦  «                             | j        ¦  «        }t          t	          |¦  «        ¦  «        }t	          t          |¦  «        ¦  «        }t          |j        | j        ¦  «         t          |j        | j        ¦  «         t          ||¦  «         t          ||¦  «         Œ·d S )Nr£   )	r/   r•   r(   r	   r
   r   r3   rV   r   r«   s        r*   Útest_random_realz_TestIFFTBase.test_random_realß   s¥   € Ø6ð 	-ð 	-ˆDÝ˜�v‘”×%Ò% d¤hÑ/Ô/ˆAÝ•c˜!‘f”f‘”ˆBÝ•T˜!‘W”W‘”ˆBÝ˜œ 4¤8Ñ,Ô,Ð,Ý˜œ 4¤8Ñ,Ô,Ð,Ý% b¨!Ñ,Ô,Ð,Ý% b¨!Ñ,Ô,Ð,Ð,ð	-ð 	-r,   c                 óR  — | j         t          j        k    rd}n| j         t          j        k    rd}t          t
          z   D �]f}t          j                             d¦  «         t          j                             |¦  «         	                    | j         ¦  «        }t          t          |¦  «        ¦  «        }t          ||||| j         ¦  «         t          t          |¦  «        ¦  «        }t          ||||| j         ¦  «         |dt          j                             |¦  «        z  z    	                    | j        ¦  «        }t          t          |¦  «        ¦  «        }t          ||||| j         ¦  «         t          t          |¦  «        ¦  «        }t          ||||| j         ¦  «         �Œhd S )Nçñhãˆµøä>ç»½×Ùß|Û=rU   rN   )r(   r!   r‡   r~   ÚLARGE_COMPOSITE_SIZESÚLARGE_PRIME_SIZESr/   rW   r   r•   r	   r
   r+   rV   ©rY   r&   r'   r$   r%   s        r*   Útest_size_accuracyz _TestIFFTBase.test_size_accuracyé   sV  € àŒ8•r”zÒ!Ð!ØˆDˆDØŒX�œÒ#Ð#ØˆDå)Õ,=Ñ=ð 	>ñ 	>ˆDÝŒI�NŠN˜4Ñ Ô Ð Ý”	—’˜tÑ$Ô$×+Ò+¨D¬HÑ5Ô5ˆAÝ•S˜‘V”V‘”ˆAÝ! ! Q¨¨d°D´HÑ=Ô=Ð=Ý•D˜‘G”G‘”ˆAÝ! ! Q¨¨d°D´HÑ=Ô=Ð=à�R�œ	Ÿš tÑ,Ô,Ñ,Ñ,×4Ò4°T´XÑ>Ô>ˆAÝ•S˜‘V”V‘”ˆAÝ! ! Q¨¨d°D´HÑ=Ô=Ð=Ý•D˜‘G”G‘”ˆAÝ! ! Q¨¨d°D´HÑ=Ô=Ð=Ñ=ð	>ð 	>r,   c                 ó€   — t          t          t          g ¦  «         t          t          t          ddgddggd¦  «         d S rp   )rr   rs   r	   rX   s    r*   rt   z _TestIFFTBase.test_invalid_sizesþ   ó:   € Ý•j¥$¨Ñ+Ô+Ð+Ý•j¥$¨!¨A¨°°!¨u¨°rÑ:Ô:Ð:Ð:Ð:r,   N)
ru   rv   rw   rZ   rc   r¡   r­   r¯   r¶   rt   rx   r,   r*   r™   r™   »   s}   € € € € € ðð ð ð:ð :ð :ð	:ð 	:ð 	:ð	-ð 	-ð 	-ð-ð -ð -ð>ð >ð >ð*;ð ;ð ;ð ;ð ;r,   r™   c                   ó   — e Zd Zd„ ZdS )ÚTestDoubleIFFTc                 óJ   — t           j        | _        t           j        | _        d S r.   r|   rX   s    r*   rZ   zTestDoubleIFFT.setup_method  r   r,   Nr€   rx   r,   r*   rº   rº     r�   r,   rº   c                   ó   — e Zd Zd„ ZdS )ÚTestSingleIFFTc                 óJ   — t           j        | _        t           j        | _        d S r.   r…   rX   s    r*   rZ   zTestSingleIFFT.setup_method
  rˆ   r,   Nr€   rx   r,   r*   r½   r½   	  r�   r,   r½   c                   óF   — e Zd Zd„ Zd„ Zd„ Z G d„ d¦  «        Zd„ Zd„ ZdS )	Ú_TestRFFTBasec                 óD   — t           j                             d¦  «         d S rT   r›   rX   s    r*   rZ   z_TestRFFTBase.setup_method  rœ   r,   c                 óâ   — g d¢g d¢fD ]e}t          j        || j        ¬¦  «        }t          |¦  «        }t	          |¦  «        }t          ||¦  «         t          |j        | j        ¦  «         Œfd S )NrŸ   ©	rH   r   r]   rg   rH   r   r]   rg   r`   r2   )r!   r   r(   r   rL   r   r   r3   )rY   Útr$   r%   rb   s        r*   rc   z_TestRFFTBase.test_definition  s€   € Ø*Ð*Ð*Ð,GÐ,GÐ,GÐHð 	,ð 	,ˆAÝ”˜ $¤(Ð+Ñ+Ô+ˆAÝ�Q‘”ˆAÝ˜Q‘”ˆBÝ% a¨Ñ+Ô+Ð+Ý˜œ $¤(Ñ+Ô+Ð+Ð+ð	,ð 	,r,   c                 ó€   — t          t          t          g ¦  «         t          t          t          ddgddggd¦  «         d S rp   )rr   rs   r   rX   s    r*   rt   z _TestRFFTBase.test_invalid_sizes  r¸   r,   c                   ó   — e Zd Zd„ Zd„ ZdS )ú_TestRFFTBase.MockSeriesc                 ó8   — t          j        |¦  «        | _        d S r.   )r!   r   Údata©rY   rÉ   s     r*   Ú__init__z!_TestRFFTBase.MockSeries.__init__!  s   € Ýœ
 4Ñ(Ô(ˆDŒIˆIˆIr,   c                 óz   — 	 t          | j        |¦  «        S # t          $ r}t          d|› d�¦  «        |‚d }~ww xY w)Nz&'MockSeries' object has no attribute 'ú')ÚgetattrrÉ   ÚAttributeError)rY   ÚitemÚes      r*   Ú__getattr__z$_TestRFFTBase.MockSeries.__getattr__$  sp   € ðKÝ˜tœy¨$Ñ/Ô/Ð/øÝ!ð Kð Kð KÝ$ð &CØ;?ð&Cð &Cð &Cñ Dô DØIJðKøøøøðKøøøs   ‚ —
:¡5µ:N)ru   rv   rw   rË   rÒ   rx   r,   r*   Ú
MockSeriesrÇ      s7   € € € € € ð	)ð 	)ð 	)ð	Kð 	Kð 	Kð 	Kð 	Kr,   rÓ   c                 óÖ   — t          j        g d¢¦  «        }t                               |¦  «        }g d¢}t	          |¦  «         t          ||¦  «         t          |j        |¦  «         d S )N)g      ð?g       @g      @g      @g      @r    )r!   r   rÀ   rÓ   r   r   rÉ   )rY   r$   ÚxsÚexpecteds       r*   Útest_non_ndarray_with_dtypez)_TestRFFTBase.test_non_ndarray_with_dtype+  si   € ÝŒHÐ)Ð)Ð)Ñ*Ô*ˆÝ×%Ò% aÑ(Ô(ˆà"�?�?ˆÝˆR‰Œˆõ 	�Q˜Ñ!Ô!Ð!Ý�R”W˜hÑ'Ô'Ð'Ð'Ð'r,   c                 óx   — t          t          t          t          j        dt          j        ¬¦  «        ¦  «         d S ©Nrg   r2   )rr   Ú	TypeErrorr   r!   r   r†   rX   s    r*   Útest_complex_inputz _TestRFFTBase.test_complex_input6  s+   € Ý•i¥¥r¤y°½"¼,Ð'GÑ'GÔ'GÑHÔHÐHÐHÐHr,   N)	ru   rv   rw   rZ   rc   rt   rÓ   r×   rÛ   rx   r,   r*   rÀ   rÀ     s”   € € € € € ðð ð ð,ð ,ð ,ð;ð ;ð ;ð
	Kð 	Kð 	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð	(ð 	(ð 	(ðIð Ið Ið Ið Ir,   rÀ   c                   ó   — e Zd Zd„ ZdS )ÚTestRFFTDoublec                 óJ   — t           j        | _        t           j        | _        d S r.   r|   rX   s    r*   rZ   zTestRFFTDouble.setup_method;  r   r,   Nr€   rx   r,   r*   rÝ   rÝ   :  r�   r,   rÝ   c                   ó   — e Zd Zd„ ZdS )ÚTestRFFTSinglec                 óJ   — t           j        | _        t           j        | _        d S r.   r…   rX   s    r*   rZ   zTestRFFTSingle.setup_methodA  rˆ   r,   Nr€   rx   r,   r*   rà   rà   @  r�   r,   rà   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú_TestIRFFTBasec                 óD   — t           j                             d¦  «         d S rT   r›   rX   s    r*   rZ   z_TestIRFFTBase.setup_methodG  rœ   r,   c                 ób   ‡ — g d¢}g d¢}g d¢}g d¢}ˆ fd„} |||¦  «          |||¦  «         d S )NrŸ   )rH   ù       @      @r^   ræ   rg   ù       @      Àù      @      ð¿rç   rÃ   )	rH   ræ   r^   ræ   y      @      @y      @      Àrç   rè   rç   c                 ó   •— t          t          j        | ‰j        ¬¦  «        ¦  «        }t	          | ¦  «        }t          |j        ‰j        ¦  «         t          ||‰j        ¬¦  «         t          |t          |¦  «        ‰j        ¬¦  «         d S )Nr2   )Údecimal)
r   r!   r   r(   rP   r   r3   r   Úndecr	   )r$   Úxrr%   rb   rY   s       €r*   Ú_testz-_TestIRFFTBase.test_definition.<locals>._testP  sz   ø€ Ý•b”h˜q¨¬Ð1Ñ1Ô1Ñ2Ô2ˆAÝ˜a‘”ˆBÝ˜œ $¤(Ñ+Ô+Ð+Ý% a¨°D´IÐ>Ñ>Ô>Ð>Ý% a­¨R©¬¸$¼)ÐDÑDÔDÐDÐDÐDr,   rx   )rY   rO   Úx1_1rk   Úx2_1rí   s   `     r*   rc   z_TestIRFFTBase.test_definitionJ  sq   ø€ ØÐÐˆØ2Ð2Ð2ˆØ Ð Ð ˆØ:Ð:Ð:ˆð	Eð 	Eð 	Eð 	Eð 	Eð 	ˆˆb�$‰ŒˆØˆˆb�$‰Œˆˆˆr,   c                 ó¤  — dD ]Ì}t          |g¦  «                             | j        ¦  «        }t          t	          |¦  «        ¦  «        }t	          t          |¦  «        ¦  «        }t          |j        | j        ¦  «         t          |j        | j        ¦  «         t          ||| j        d|z  ¬¦  «         t          ||| j        d|z  ¬¦  «         ŒÍd S )Nr£   zsize=%d)rê   r)   )	r/   r•   r(   r   r   r   r3   r   rë   r«   s        r*   r¯   z_TestIRFFTBase.test_random_realZ  sâ   € Ø6ð 		Að 		AˆDÝ˜�v‘”×%Ò% d¤hÑ/Ô/ˆAÝ•t˜A‘w”w‘”ˆBÝ•e˜A‘h”h‘”ˆBÝ˜œ 4¤8Ñ,Ô,Ð,Ý˜œ 4¤8Ñ,Ô,Ð,Ý% b¨!°T´YØ/8¸4Ñ/?ðAñ Aô Að Aå% b¨!°T´YØ/8¸4Ñ/?ðAñ Aô Að Að Að		Að 		Ar,   c                 ó  — | j         t          j        k    rd}n| j         t          j        k    rd}t          t
          z   D ]À}t          j                             d¦  «         t          j                             |¦  «         	                    | j         ¦  «        }t          t          |¦  «        ¦  «        }t          ||||| j         ¦  «         t          t          |¦  «        ¦  «        }t          ||||| j         ¦  «         ŒÁd S )Nr±   r²   rU   )r(   r!   r‡   r~   r³   r´   r/   rW   r   r•   r   r   r+   rµ   s        r*   r¶   z!_TestIRFFTBase.test_size_accuracyf  s×   € àŒ8•r”zÒ!Ð!ØˆDˆDØŒX�œÒ#Ð#ØˆDå)Õ,=Ñ=ð 	>ð 	>ˆDÝŒI�NŠN˜4Ñ Ô Ð Ý”	—’˜tÑ$Ô$×+Ò+¨D¬HÑ5Ô5ˆAÝ•d˜1‘g”g‘”ˆAÝ! ! Q¨¨d°D´HÑ=Ô=Ð=Ý•U˜1‘X”X‘”ˆAÝ! ! Q¨¨d°D´HÑ=Ô=Ð=Ð=ð	>ð 	>r,   c                 ó€   — t          t          t          g ¦  «         t          t          t          ddgddggd¦  «         d S rp   )rr   rs   r   rX   s    r*   rt   z!_TestIRFFTBase.test_invalid_sizesu  s:   € Ý•j¥%¨Ñ,Ô,Ð,Ý•j¥%¨1¨Q¨%°°1°¨¸Ñ;Ô;Ð;Ð;Ð;r,   c                 óx   — t          t          t          t          j        dt          j        ¬¦  «        ¦  «         d S rÙ   )rr   rÚ   r   r!   r   r†   rX   s    r*   rÛ   z!_TestIRFFTBase.test_complex_inputy  s+   € Ý•i¥­¬	°!½2¼<Ð(HÑ(HÔ(HÑIÔIÐIÐIÐIr,   N)	ru   rv   rw   rZ   rc   r¯   r¶   rt   rÛ   rx   r,   r*   rã   rã   F  sv   € € € € € ðð ð ðð ð ð 
Að 
Að 
Að>ð >ð >ð<ð <ð <ðJð Jð Jð Jð Jr,   rã   c                   ó   — e Zd Zd„ ZdS )ÚTestIRFFTDoublec                 óX   — t           j        | _        t           j        | _        d| _        d S )Né   )r!   r}   rV   r~   r(   rë   rX   s    r*   rZ   zTestIRFFTDouble.setup_method�  s   € Ý”=ˆŒÝ”:ˆŒØˆŒ	ˆ	ˆ	r,   Nr€   rx   r,   r*   rõ   rõ   €  s#   € € € € € ðð ð ð ð r,   rõ   c                   ó   — e Zd Zd„ ZdS )ÚTestIRFFTSinglec                 óX   — t           j        | _        t           j        | _        d| _        d S )Nr`   )r!   r†   rV   r‡   r(   rë   rX   s    r*   rZ   zTestIRFFTSingle.setup_methodˆ  s   € Ý”<ˆŒÝ”:ˆŒØˆŒ	ˆ	ˆ	r,   Nr€   rx   r,   r*   rù   rù   ‡  s#   € € € € € ðð ð ð ð r,   rù   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestfft2c                 óD   — t           j                             d¦  «         d S rT   r›   rX   s    r*   rZ   zTestfft2.setup_method�  rœ   r,   c                 ó¶   — t          j        d¦  «        }t          |dd¬¦  «        }t           j                             |dd¬¦  «        }t          ||¦  «         dS )z-FFT returns wrong result with axes parameter.©rg   rg   r   ©é   r  ©éýÿÿÿéþÿÿÿ©rB   Úaxes)Úsr  N)ÚnumpyÚonesr   r
   r   r   ©rY   r$   r%   Úy_rs       r*   Útest_regression_244zTestfft2.test_regression_244’  sV   € õ ŒJ�yÑ!Ô!ˆÝ�˜& xÐ0Ñ0Ô0ˆÝŒi�nŠn˜Q &¨xˆnÑ8Ô8ˆÝ! ! SÑ)Ô)Ð)Ð)Ð)r,   c                 ó‚   — t          t          t          g g¦  «         t          t          t          ddgddggd¦  «         d S )NrH   r   ©rg   r  )rr   rs   r   rX   s    r*   rt   zTestfft2.test_invalid_sizes›  s=   € Ý•j¥$¨¨Ñ-Ô-Ð-Ý•j¥$¨!¨Q¨°!°Q°Ð(8¸'ÑBÔBÐBÐBÐBr,   N)ru   rv   rw   rZ   r  rt   rx   r,   r*   rü   rü   Ž  sF   € € € € € ðð ð ð*ð *ð *ðCð Cð Cð Cð Cr,   rü   c                   óX  — e Zd Zd„ Zd„ Zej                             dee	z   ¦  «        d„ ¦   «         Z
ej                             deez   ¦  «        d„ ¦   «         Zd„ Zej                             dee	z   ¦  «        d„ ¦   «         Zej                             deez   ¦  «        d„ ¦   «         Zd	S )
ÚTestFftnSinglec                 óD   — t           j                             d¦  «         d S rT   r›   rX   s    r*   rZ   zTestFftnSingle.setup_method¡  rœ   r,   c                 ó4  — g d¢g d¢g d¢g}t          t          j        |t          j        ¦  «        ¦  «        }t	          |j        t          j        k    d¬¦  «         t          j        t          |¦  «        t          j        ¦  «        }t          ||¦  «         d S )N©rH   r   r]   ©rg   r`   é   ©é   r  é	   z-double precision output with single precision)Úmsg)r   r!   r   r‡   r   r3   r†   r   r
  s       r*   rc   zTestFftnSingle.test_definition¤  s•   € ØˆYˆYØˆYˆYØˆYˆYðˆõ •”˜!�RœZÑ(Ô(Ñ)Ô)ˆÝ�”�2œ<Ò'ØCð	Eñ 	Eô 	Eð 	Eõ Œh•t˜A‘w”w¥¤Ñ-Ô-ˆÝ& q¨#Ñ.Ô.Ð.Ð.Ð.r,   r'   c                 óì  — t           j                             ||¦  «        dt           j                             ||¦  «        z  z   }t          |j                             t           j        ¦  «        ¦  «        }t          |j                             t           j        ¦  «        ¦  «                             t           j        ¦  «        }t          |j
        t           j        ¦  «         t          ||d¦  «         d S )NrN   éÐ  ©r!   r/   r   r   rI   r•   r‡   r~   r†   r   r3   r   r«   s        r*   Útest_size_accuracy_smallz'TestFftnSingle.test_size_accuracy_small¯  s§   € åŒI�NŠN˜4 Ñ&Ô&¨­B¬I¯NªN¸4ÀÑ,FÔ,FÑ)FÑFˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,ˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,×3Ò3µB´LÑAÔAˆå�R”X�rœ|Ñ,Ô,Ð,Ý& r¨2¨tÑ4Ô4Ð4Ð4Ð4r,   c                 óì  — t           j                             |d¦  «        dt           j                             |d¦  «        z  z   }t          |j                             t           j        ¦  «        ¦  «        }t          |j                             t           j        ¦  «        ¦  «                             t           j        ¦  «        }t          |j
        t           j        ¦  «         t          ||d¦  «         d S )Nr]   rN   r  r  r«   s        r*   Útest_size_accuracy_largez'TestFftnSingle.test_size_accuracy_large¸  s§   € åŒI�NŠN˜4 Ñ#Ô# b­¬¯ª¸¸aÑ)@Ô)@Ñ&@Ñ@ˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,ˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,×3Ò3µB´LÑAÔAˆå�R”X�rœ|Ñ,Ô,Ð,Ý& r¨2¨tÑ4Ô4Ð4Ð4Ð4r,   c                 ó*  — g d¢g d¢g d¢g}t          t          j        |t          j        ¦  «        ¦  «        }t	          |j        t          j        ¦  «         t          j        t          |¦  «        t          j        ¦  «        }t          ||¦  «         d S )Nr  r  r  )r   r!   r   r”   r   r3   r†   r   r
  s       r*   Útest_definition_float16z&TestFftnSingle.test_definition_float16Á  s~   € ØˆYˆYØˆYˆYØˆYˆYðˆõ •”˜!�RœZÑ(Ô(Ñ)Ô)ˆÝ�Q”W�bœlÑ+Ô+Ð+ÝŒh•t˜A‘w”w¥¤Ñ-Ô-ˆÝ& q¨#Ñ.Ô.Ð.Ð.Ð.r,   c                 óì  — t           j                             ||¦  «        dt           j                             ||¦  «        z  z   }t          |j                             t           j        ¦  «        ¦  «        }t          |j                             t           j        ¦  «        ¦  «                             t           j        ¦  «        }t          |j
        t           j        ¦  «         t          ||d¦  «         d S )NrN   g    €„A©r!   r/   r   r   rI   r•   r”   r~   r†   r   r3   r   r«   s        r*   Útest_float16_input_smallz'TestFftnSingle.test_float16_input_smallÊ  s§   € åŒI�NŠN˜4 Ñ&Ô&¨­B¬I¯NªN¸4ÀÑ,FÔ,FÑ)FÑFˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,ˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,×3Ò3µB´LÑAÔAˆå�R”X�rœ|Ñ,Ô,Ð,Ý& r¨2¨sÑ3Ô3Ð3Ð3Ð3r,   c                 óì  — t           j                             |d¦  «        dt           j                             |d¦  «        z  z   }t          |j                             t           j        ¦  «        ¦  «        }t          |j                             t           j        ¦  «        ¦  «                             t           j        ¦  «        }t          |j
        t           j        ¦  «         t          ||d¦  «         d S )Nr]   rN   g    €„>Ar#  r«   s        r*   Útest_float16_input_largez'TestFftnSingle.test_float16_input_largeÓ  s§   € åŒI�NŠN˜4 Ñ#Ô# b­¬¯ª¸¸aÑ)@Ô)@Ñ&@Ñ@ˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,ˆÝ�!”&—-’-¥¤
Ñ+Ô+Ñ,Ô,×3Ò3µB´LÑAÔAˆå�R”X�rœ|Ñ,Ô,Ð,Ý& r¨2¨sÑ3Ô3Ð3Ð3Ð3r,   N)ru   rv   rw   rZ   rc   r�   rŽ   ÚparametrizeÚSMALL_COMPOSITE_SIZESÚSMALL_PRIME_SIZESr  r³   r´   r  r!  r$  r&  rx   r,   r*   r  r     s  € € € € € ðð ð ð	/ð 	/ð 	/ð „[×Ò˜VÐ%:Ð=NÑ%NÑOÔOð5ð 5ñ PÔOð5ð „[×Ò˜VÐ%:Ð=NÑ%NÑOÔOð5ð 5ñ PÔOð5ð/ð /ð /ð „[×Ò˜VÐ%:Ð=NÑ%NÑOÔOð4ð 4ñ PÔOð4ð „[×Ò˜VÐ%:Ð=NÑ%NÑOÔOð4ð 4ñ PÔOð4ð 4ð 4r,   r  c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestFftnc                 óD   — t           j                             d¦  «         d S rT   r›   rX   s    r*   rZ   zTestFftn.setup_methodÞ  rœ   r,   c                 óX  — g d¢g d¢g d¢g}t          |¦  «        }t          |t          |¦  «        ¦  «         t          d¦  «        }t          t          |¦  «        t          |¦  «        ¦  «         t          d¦  «        }t          t          |¦  «        t          |¦  «        ¦  «         d S )Nr  r  r  ©é   é   ©r`   rg   r]   r/  )r   r   rD   r/   ©rY   r$   r%   s      r*   rc   zTestFftn.test_definitioná  s™   € ØˆYˆYØˆYˆYØˆYˆYðˆõ �‰GŒGˆÝ! !¥[°¡^¤^Ñ4Ô4Ð4å�8ÑÔˆÝ!¥$ q¡'¤'­;°q©>¬>Ñ:Ô:Ð:å�=Ñ!Ô!ˆÝ!¥$ q¡'¤'­;°q©>¬>Ñ:Ô:Ð:Ð:Ð:r,   c                 óB  — g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d	¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d	¢g}g d
¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g}	g d¢g d¢g d¢g}
g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d
¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g}|||	g}|
||g}|||g}|||g}|||g}t          |||g¦  «        }t          t          |¦  «        t          |d¬¦  «        ¦  «         t          t          |¦  «        t          |d¬¦  «        ¦  «         t          t          |d¬¦  «        t          |d ¬¦  «        ¦  «         t          |d!¬¦  «        }t          t          |d"d#¦  «        t          |¦  «        ¦  «         t          |d$¬¦  «        }t          t          t          |d"d#¦  «        d"d%¦  «        t          |¦  «        ¦  «         t          |d&¬¦  «        }t          t          t          |d"d#¦  «        d#d%¦  «        t          |¦  «        ¦  «         t          |d'¬¦  «        }t          t          |d%d#¦  «        t          |¦  «        ¦  «         t          |d(¬¦  «        }t          t          |d%d"¦  «        t          |¦  «        ¦  «         t          |d)¬¦  «        }t          t          |¦  «        |d*         ¦  «         t          t          |¦  «        |d+         ¦  «         t          t          |¦  «        |d,         ¦  «         t          |d-¬¦  «        }t          t          |¦  «        |d*         ¦  «         t          t          |¦  «        |d+         ¦  «         t          t          |¦  «        |d,         ¦  «         t          |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/¬¦  «        }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          |d0¬¦  «        }t          t          |¦  «        t          |d*         d%d"¦  «        ¦  «         t          t          |¦  «        t          |d+         d%d"¦  «        ¦  «         t          t          |¦  «        t          |d,         d%d"¦  «        ¦  «         t          |d1¬¦  «        }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          |d2¬¦  «        }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          |d3¬¦  «        }t	          d4¦  «        D ]G}t	          d4¦  «        D ]5}t          t          |||d d …f         ¦  «        |||d d …f         ¦  «         Œ6ŒHt          |d5¬¦  «        }t	          d4¦  «        D ]G}t	          d4¦  «        D ]5}t          t          ||d d …|f         ¦  «        ||d d …|f         ¦  «         Œ6ŒHt          |d6¬¦  «        }t	          d4¦  «        D ]G}t	          d4¦  «        D ]5}t          t          |d d …||f         ¦  «        |d d …||f         ¦  «         Œ6ŒHt          |d7¬¦  «        }t          ||¦  «         d S )8Nr  r  r  )é
   é   é   )é   r÷   é   )é   é   é   )é   r/  é   )é   é   é   )é   r0  é   )rH   r4  r<  )rg   r7  r>  )r  r9  rA  )r   r5  r/  )r`   r÷   r?  )r  r:  r0  )r]   r6  r=  )r  r8  r@  )r  r;  rB  )rH   rg   r  )r4  r7  r9  )r<  r>  rA  )r   r`   r  )r5  r÷   r:  )r/  r?  r0  )r]   r  r  )r6  r8  r;  )r=  r@  rB  )r  r  éÿÿÿÿ©r  ©r   rH   r   )r   r   )r   rC  )r   rH   r   rC  r  )r   r   rH   r  )rH   r   r   )rH   r   r   )r   r   rH   ©r  rC  r   rH   r   ©rH   r   r  )r  rC  ©rC  r  )rC  r  )r  r  ©rC  r]   ©r  ©r   rx   )r   r   r   r   r7   r
   )rY   Úplane1Úplane2Úplane3Ú	ki_plane1Ú	ki_plane2Ú	ki_plane3Ú	jk_plane1Ú	jk_plane2Ú	jk_plane3Ú	kj_plane1Ú	kj_plane2Ú	kj_plane3Ú	ij_plane1Ú	ij_plane2Ú	ij_plane3Ú	ik_plane1Ú	ik_plane2Ú	ik_plane3Ú	ijk_spaceÚ	ikj_spaceÚ	jik_spaceÚ	jki_spaceÚ	kij_spacer$   r%   r;   Újs                               r*   Útest_axes_argumentzTestFftn.test_axes_argumentî  s
  € à�)�)Ø�)�)Ø�)�)ðˆð �,�,Ø�,�,Ø�,�,ð ˆð �,�,Ø�,�,Ø�,�,ð ˆð �Y�YØ!�\�\Ø!�\�\ð#ˆ	ð �Y�YØ!�\�\Ø!�\�\ð#ˆ	ð �Y�YØ!�\�\Ø!�\�\ð#ˆ	ð !�[�[Ø �[�[Ø �[�[ð"ˆ	ð !�[�[Ø �[�[Ø �[�[ð"ˆ	ð !�[�[Ø �[�[Ø �[�[ð"ˆ	ð �Y�YØ!�\�\ < < <ð1ˆ	à�Y�YØ!�\�\ < < <ð1ˆ	à�Y�YØ!�\�\ < < <ð1ˆ	à�Y�YØ�Y�YØ�Y�Yð ˆ	ð "�\�\Ø!�\�\Ø!�\�\ð#ˆ	ð "�\�\Ø!�\�\Ø!�\�\ð#ˆ	ð !�[�[Ø �[�[Ø �[�[ð"ˆ	ð !�[�[Ø �[�[Ø �[�[ð"ˆ	ð !�[�[Ø �[�[Ø �[�[ð"ˆ	ð  	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ý�6˜6 6Ð*Ñ+Ô+ˆå!¥$ q¡'¤'Ý"& q¨|Ð"<Ñ"<Ô"<ñ	>ô 	>ð 	>å!¥$ q¡'¤'­4°¸	Ð+BÑ+BÔ+BÑCÔCÐCÝ!¥$ q¨vÐ"6Ñ"6Ô"6½¸QÀWÐ8MÑ8MÔ8MÑNÔNÐNÝ�˜Ð#Ñ#Ô#ˆÝ!¥(¨1¨b°"Ñ"5Ô"5µt¸I±´ÑGÔGÐGÝ�˜Ð#Ñ#Ô#ˆÝ!¥(­8°A°r¸2Ñ+>Ô+>ÀÀBÑ"GÔ"GÝ"& y¡/¤/ñ	3ô 	3ð 	3å�˜Ð#Ñ#Ô#ˆÝ!¥(­8°A°r¸2Ñ+>Ô+>ÀÀBÑ"GÔ"GÝ"& y¡/¤/ñ	3ô 	3ð 	3å�˜Ð#Ñ#Ô#ˆÝ!¥(¨1¨b°"Ñ"5Ô"5µt¸I±´ÑGÔGÐGÝ�˜Ð#Ñ#Ô#ˆÝ!¥(¨1¨b°"Ñ"5Ô"5µt¸I±´ÑGÔGÐGå�˜Ð"Ñ"Ô"ˆÝ!¥$ v¡,¤,°°!´Ñ5Ô5Ð5Ý!¥$ v¡,¤,°°!´Ñ5Ô5Ð5Ý!¥$ v¡,¤,°°!´Ñ5Ô5Ð5å�˜Ð Ñ Ô ˆÝ!¥$ v¡,¤,°°!´Ñ5Ô5Ð5Ý!¥$ v¡,¤,°°!´Ñ5Ô5Ð5Ý!¥$ v¡,¤,°°!´Ñ5Ô5Ð5å�˜Ð"Ñ"Ô"ˆÝ!¥$ q¨¨¨¨A¨A¨A¨q¨¤zÑ"2Ô"2°A°a°a°a¸¸¸¸A°g´JÑ?Ô?Ð?Ý!¥$ q¨¨¨¨A¨A¨A¨q¨¤zÑ"2Ô"2°A°a°a°a¸¸¸¸A°g´JÑ?Ô?Ð?Ý!¥$ q¨¨¨¨A¨A¨A¨q¨¤zÑ"2Ô"2°A°a°a°a¸¸¸¸A°g´JÑ?Ô?Ð?å�˜Ð"Ñ"Ô"ˆÝ!¥$ q¨¨¨¨A¨q¨q¨q¨¤zÑ"2Ô"2°A°a°a°a¸¸A¸A¸A°g´JÑ?Ô?Ð?Ý!¥$ q¨¨¨¨A¨q¨q¨q¨¤zÑ"2Ô"2°A°a°a°a¸¸A¸A¸A°g´JÑ?Ô?Ð?Ý!¥$ q¨¨¨¨A¨q¨q¨q¨¤zÑ"2Ô"2°A°a°a°a¸¸A¸A¸A°g´JÑ?Ô?Ð?å�˜Ð"Ñ"Ô"ˆÝ!¥$ y¡/¤/µ8¸A¸a¼DÀ"ÀbÑ3IÔ3IÑJÔJÐJÝ!¥$ y¡/¤/µ8¸A¸a¼DÀ"ÀbÑ3IÔ3IÑJÔJÐJÝ!¥$ y¡/¤/µ8¸A¸a¼DÀ"ÀbÑ3IÔ3IÑJÔJÐJå�˜Ð"Ñ"Ô"ˆÝ!¥$ y¡/¤/Ý"*¨1¨Q¨Q¨Q°°1°1°1¨W¬:°r¸2Ñ">Ô">ñ	@ô 	@ð 	@å!¥$ y¡/¤/Ý"*¨1¨Q¨Q¨Q°°1°1°1¨W¬:°r¸2Ñ">Ô">ñ	@ô 	@ð 	@å!¥$ y¡/¤/Ý"*¨1¨Q¨Q¨Q°°1°1°1¨W¬:°r¸2Ñ">Ô">ñ	@ô 	@ð 	@õ �˜Ð"Ñ"Ô"ˆÝ!¥$ y¡/¤/Ý"*¨1¨Q¨Q¨Q°°°°1¨W¬:°r¸2Ñ">Ô">ñ	@ô 	@ð 	@å!¥$ y¡/¤/Ý"*¨1¨Q¨Q¨Q°°°°1¨W¬:°r¸2Ñ">Ô">ñ	@ô 	@ð 	@å!¥$ y¡/¤/Ý"*¨1¨Q¨Q¨Q°°°°1¨W¬:°r¸2Ñ">Ô">ñ	@ô 	@ð 	@õ �˜ÐÑÔˆÝ�q‘”ð 	Gð 	GˆAÝ˜1‘X”Xð Gð G�Ý)­#¨a°°1°a°a°a°¬j©/¬/¸1¸QÀÀ1À1À1¸W¼:ÑFÔFÐFÐFðGå�˜ÐÑÔˆÝ�q‘”ð 	Gð 	GˆAÝ˜1‘X”Xð Gð G�Ý)­#¨a°°1°1°1°a°¬j©/¬/¸1¸QÀÀÀÀ1¸W¼:ÑFÔFÐFÐFðGå�˜ÐÑÔˆÝ�q‘”ð 	Gð 	GˆAÝ˜1‘X”Xð Gð G�Ý)­#¨a°°°°1°a°¬j©/¬/¸1¸Q¸Q¸QÀÀ1¸W¼:ÑFÔFÐFÐFðGõ �˜ÐÑÔˆÝ! ! QÑ'Ô'Ð'Ð'Ð'r,   c                 óú   — g d¢g d¢g}g d¢g d¢g d¢g d¢g}t          |d¬¦  «        }t          |t          |¦  «        ¦  «         t          |d¬¦  «        }t          |t          |d d	…         ¦  «        ¦  «         d S )
Nr  r  ©rH   r   r]   r   ©rg   r`   r  r   ©r   r   r   r   ©rg   rg   ©rB   )r]   rg   rC  )r   r   ©rY   Úsmall_xÚlarge_x1r%   s       r*   Útest_shape_argumentzTestFftn.test_shape_argumentt  sœ   € Ø�9�9Ø�9�9ðˆà �L�LØ �L�LØ �L�LØ �L�Lð"ˆõ
 � Ð'Ñ'Ô'ˆÝ! !¥T¨(¡^¤^Ñ4Ô4Ð4å� Ð'Ñ'Ô'ˆÝ! !¥T¨(°3°B°3¬-Ñ%8Ô%8Ñ9Ô9Ð9Ð9Ð9r,   c                 óJ  — g d¢g d¢g d¢g}t          g d¢g d¢g d¢g d¢g¦  «        }t          |dd	¬
¦  «        }t          |t          |¦  «        ¦  «         t          |dd¬
¦  «        }t          |t          t          t          |dd¦  «        ¦  «        dd¦  «        ¦  «         d S )Nr  r  r  rf  rg  )r  r  r  r   rh  ri  rF  r  rH  rC  r  )r   r   r   r   rk  s       r*   Útest_shape_axes_argumentz!TestFftn.test_shape_axes_argument‚  sÔ   € Ø�9�9Ø�9�9Ø�9�9ðˆõ ˜,˜,˜,Ø&˜,˜,Ø&˜,˜,Ø&˜,˜,ð(ñ )ô )ˆõ � ¨XÐ6Ñ6Ô6ˆÝ! !¥T¨(¡^¤^Ñ4Ô4Ð4Ý� ¨XÐ6Ñ6Ô6ˆå! !¥XÝ•˜( B¨Ñ+Ô+Ñ,Ô,¨b°"ñ&6ô &6ñ 	7ô 	7ð 	7ð 	7ð 	7r,   c                 ó  — t           j                             d¦  «        }t          |dd¬¦  «        }t          |t	          |dd¬¦  «        ¦  «         t           j                             d¦  «        }t          |dd¬¦  «        }t          |t	          |d	d¬¦  «        ¦  «         t           j                             d
¦  «        }t          |dd¬¦  «        }t          |t           j                             |dd¬¦  «        ¦  «         d S )N)r4  r`   r]   r  rI  )r  )r  rB   rC  r  )rA   r9   rJ  r  rÿ   r  r   )r  r  )r  r/   r   r   r
   r2  s      r*   Útest_shape_axes_argument2z"TestFftn.test_shape_axes_argument2‘  sù   € åŒL×Ò Ñ.Ô.ˆÝ�˜ dÐ+Ñ+Ô+ˆÝ! !¥S¨°°qÐ%9Ñ%9Ô%9Ñ:Ô:Ð:õ ŒL×Ò Ñ.Ô.ˆÝ�˜ dÐ+Ñ+Ô+ˆÝ! !¥S¨°°qÐ%9Ñ%9Ô%9Ñ:Ô:Ð:õ ŒL×Ò 	Ñ*Ô*ˆÝ�˜¨Ð0Ñ0Ô0ˆÝ! !Ý"'¤)§.¢.°¸ÀV .Ñ"LÔ"Lñ	Nô 	Nð 	Nð 	Nð 	Nr,   c                 ó¤   — t          d¦  «        }t          t          d¬¦  «        5  t          |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrÿ   zBwhen given, axes and shape arguments have to be of the same length©Úmatch)r  r  r   rH   rj  )r   rr   rs   r   )rY   r$   s     r*   Útest_shape_argument_morez!TestFftn.test_shape_argument_more¢  s¤   € Ý�)ÑÔˆÝ�:ð"<ð=ñ =ô =ð 	(ð 	(õ �˜,Ð'Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   ¦AÁA	ÁA	c                 ó  — t          t          d¬¦  «        5  t          g g¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          ddgddggd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nz4invalid number of data points \(\[1, 0\]\) specifiedrt  z5invalid number of data points \(\[4, -3\]\) specifiedrH   r   r  )rr   rs   r   rX   s    r*   rt   zTestFftn.test_invalid_sizes©  s#  € Ý�:ð"6ð7ñ 7ô 7ð 	ð 	õ �"�‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 �:ð"7ð8ñ 8ô 8ð 	,ð 	,õ �1�a�&˜1˜a˜&Ð! 7Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ó   —4´8»8ÁA9Á9A=Â A=N)ru   rv   rw   rZ   rc   rd  rn  rp  rr  rv  rt   rx   r,   r*   r+  r+  Ý  s“   € € € € € ðð ð ð;ð ;ð ;ðD(ð D(ð D(ðL:ð :ð :ð7ð 7ð 7ðNð Nð Nð"(ð (ð (ð	,ð 	,ð 	,ð 	,ð 	,r,   r+  c                   ó4  — e Zd ZdZdZd„ Zej                             de	j
        e	j        dfe	j        e	j        dfg¦  «        d„ ¦   «         Zej                             dddg¦  «        ej                             dg d	¢¦  «        d
„ ¦   «         ¦   «         Zd„ ZdS )Ú	TestIfftnNc                 óD   — t           j                             d¦  «         d S rT   r›   rX   s    r*   rZ   zTestIfftn.setup_method¹  rœ   r,   zdtype,cdtype,maxnlpr  i¬  c                 ó°  — t          j        g d¢g d¢g d¢g|¬¦  «        }t          |¦  «        }t          |j        |¦  «         t          |t          |¦  «        |¦  «         t          d¦  «        }t          t          |¦  «        t          |¦  «        |¦  «         t          d¦  «        }t          t          |¦  «        t          |¦  «        |¦  «         d S )Nr  r  r  r2   r.  r1  )r!   r   r   r   r3   r   rF   r/   )rY   r3   ÚcdtypeÚmaxnlpr$   r%   s         r*   rc   zTestIfftn.test_definition¼  sÉ   € õ ŒH�i�i�iØ�i�iØ�i�ið!à(-ð/ñ /ô /ˆõ �!‰HŒHˆÝ�Q”W˜fÑ%Ô%Ð%Ý& q­,°q©/¬/¸6ÑBÔBÐBå�8ÑÔˆÝ&¥u¨Q¡x¤xµ¸a±´À&ÑIÔIÐIå�=Ñ!Ô!ˆÝ&¥u¨Q¡x¤xµ¸a±´À&ÑIÔIÐIÐIÐIr,   r  r'   )rH   r   r¤   é    r¨   é\   c                 óþ   — t          ||g¦  «        dt          ||g¦  «        z  z   }t          t          t          |¦  «        ¦  «        ||¦  «         t          t          t          |¦  «        ¦  «        ||¦  «         d S )NrN   )r/   r   r   r   )rY   r  r'   r$   s       r*   r­   zTestIfftn.test_random_complexÍ  sm   € õ �D˜$�<Ñ Ô  2¥f¨d°D¨\Ñ&:Ô&:Ñ#:Ñ:ˆÝ&¥u­T°!©W¬W¡~¤~°q¸&ÑAÔAÐAÝ&¥t­E°!©H¬H¡~¤~°q¸&ÑAÔAÐAÐAÐAr,   c                 ó  — t          t          d¬¦  «        5  t          g g¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          ddgddggd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rx  )rr   rs   r   rX   s    r*   rt   zTestIfftn.test_invalid_sizesÔ  s#  € Ý�:ð"6ð7ñ 7ô 7ð 	ð 	õ �2�$‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 �:ð"7ð8ñ 8ô 8ð 	-ð 	-õ �A�q�6˜A˜q˜6Ð" GÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ry  )ru   rv   rw   r3   r~  rZ   r�   rŽ   r'  r!   r~   r}   r‡   r†   rc   r­   rt   rx   r,   r*   r{  r{  µ  sñ   € € € € € Ø€EØ€Fðð ð ð „[×ÒÐ2Ø!œz¨2¬=¸$Ð?Ø!œz¨2¬<¸Ð>ð@ñAô AðJð JñAô AðJð „[×Ò˜X¨¨d |Ñ4Ô4Ø„[×Ò˜VÐ%;Ð%;Ð%;Ñ<Ô<ðBð Bñ =Ô<ñ 5Ô4ðBð
	-ð 	-ð 	-ð 	-ð 	-r,   r{  c                   ó   — e Zd Zd„ ZdS )Ú	FakeArrayc                 ó,   — || _         |j        | _        d S r.   )Ú_dataÚ__array_interface__rÊ   s     r*   rË   zFakeArray.__init__á  s   € ØˆŒ
Ø#'Ô#;ˆÔ Ð Ð r,   N)ru   rv   rw   rË   rx   r,   r*   r…  r…  à  s#   € € € € € ð<ð <ð <ð <ð <r,   r…  c                   ó   — e Zd Zd„ Zdd„ZdS )Ú
FakeArray2c                 ó   — || _         d S r.   ©r‡  rÊ   s     r*   rË   zFakeArray2.__init__ç  s   € ØˆŒ
ˆ
ˆ
r,   Nc                 ó   — | j         S r.   rŒ  )rY   r3   Úcopys      r*   Ú	__array__zFakeArray2.__array__ê  s
   € ØŒzÐr,   )NN)ru   rv   rw   rË   r�  rx   r,   r*   rŠ  rŠ  æ  s7   € € € € € ðð ð ðð ð ð ð ð r,   rŠ  c                   ój  — e Zd ZdZej        ej        fZeej        ej	        fz   Z
g d¢Zd„ Zd„ Zej                             de
¦  «        ej                             de¦  «        ej                             ddd	g¦  «        ej                             d
g d¢¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Zej                             de¦  «        ej                             de¦  «        ej                             ddd	g¦  «        ej                             d
g d¢¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Zd„ Zej                             de
¦  «        ej                             ddd	g¦  «        ej                             d
g d¢¦  «        d„ ¦   «         ¦   «         ¦   «         ZdS )ÚTestOverwritez4Check input overwrite behavior of the FFT functions.)r  r9  r€  c           	      ó  — |                      ¦   «         }d„ t          t          fD ]Z} | ||¦  «        |||¬¦  «         d                     |j        |j        |j        |||¦  «        }|st          ||d|z  ¬¦  «         Œ[d S )Nc                 ó   — | S r.   rx   )r$   s    r*   ú<lambda>z&TestOverwrite._check.<locals>.<lambda>÷  s   € ˜q€ r,   ©Úoverwrite_xz-{}({}{!r}, {!r}, axis={!r}, overwrite_x={!r})zspurious overwrite in %s)r)   )rŽ  r…  rŠ  Úformatru   r3   rB   r   )	rY   r$   ÚroutineÚfftsizerA   r–  rk   ÚfakeÚsigs	            r*   Ú_checkzTestOverwrite._checkõ  s¦   € Ø�VŠV‰XŒXˆØ �[¥)­ZÐ8ð 	Nð 	NˆDØˆG�D�D˜‘H”H˜g t¸ÐEÑEÔEÐEàA×HÒHØÔ  !¤'¨1¬7°G¸TÀ;ñPô PˆCàð NÝ˜R Ð,FÈÑ,LÐMÑMÔMÐMøð	Nð 	Nr,   c                 ó\  — t           j                             d¦  «         t          j        |t           j        ¦  «        r+t          j        j        |Ž dt          j        j        |Ž z  z   }nt          j        j        |Ž }|                     |¦  «        }|                      |||||¬¦  «         d S )NrU   rN   r•  )r!   r/   rW   Ú
issubdtypeÚcomplexfloatingÚrandnr•   rœ  )	rY   r˜  r3   rB   rA   Úoverwritable_dtypesr™  r–  rÉ   s	            r*   Ú	_check_1dzTestOverwrite._check_1dÿ  sŸ   € å
Œ	�Š�tÑÔÐÝŒ=˜¥Ô 2Ñ3Ô3ð 	+Ý”9”? EÐ*¨Rµ´	´ÀÐ0GÑ-GÑGˆDˆDå”9”? EÐ*ˆDØ�{Š{˜5Ñ!Ô!ˆà�Š�D˜' 7¨DØ +ð 	ñ 	-ô 	-ð 	-ð 	-ð 	-r,   r3   r™  r–  TFz
shape,axes))©r9  rC  )©r9  r   r   )©r   r9  rH   c           	      ó¶   — t           j        t           j        f}|                      t          ||||||¦  «         |                      t
          ||||||¦  «         d S r.   )r!   r}   r†   r¢  r
   r	   ©rY   r3   r™  r–  rB   r  Úoverwritables          r*   Útest_fft_ifftzTestOverwrite.test_fft_ifft  sf   € õ œ¥r¤|Ð4ˆØ�Š•s˜E 5¨$°Ø ñ	-ô 	-ð 	-à�Š•t˜U E¨4°Ø ñ	-ô 	-ð 	-ð 	-ð 	-r,   c           	      ó”   — | j         }|                      t          ||||||¦  «         |                      t          ||||||¦  «         d S r.   )Úreal_dtypesr¢  r   r   r§  s          r*   Útest_rfft_irfftzTestOverwrite.test_rfft_irfft  s`   € ð Ô'ˆØ�Š•u˜e U¨D°,Ø ñ	-ô 	-ð 	-à�Š•t˜U E¨4°Ø ñ	-ô 	-ð 	-ð 	-ð 	-r,   c                 ó&  ‡
— t           j                             d¦  «         t          j        |t           j        ¦  «        r+t          j        j        |Ž dt          j        j        |Ž z  z   }nt          j        j        |Ž }|                     |¦  «        }ˆ
fd„Š
|€|}n"t          t          j        ||¦  «        ¦  «        } ‰
|¦  «        D ]F}	|  	                    |||	||¬¦  «         |j
        dk    r|  	                    |j        ||	||¬¦  «         ŒGd S )NrU   rN   c              3   óº   •K  — t          | ¦  «        dk    rdV — d S | d         dz  | d         | d         dz  fD ] } ‰| dd …         ¦  «        D ]
}|f|z   V — ŒŒ!d S )Nr   rx   r   rH   )r6   )Úshprc  ÚrestÚfftshape_iters      €r*   r±  z2TestOverwrite._check_nd_one.<locals>.fftshape_iter.  s’   øè è € Ý�3‰xŒx˜1Š}ˆ}Ø�����à˜aœ& !™) S¨¤V¨S°¬V°A©XÐ6ð *ð *�AØ - ¨c°!°"°"¬gÑ 6Ô 6ð *ð *˜Ø ˜d T™kÐ)Ð)Ð)Ð)ð*ð*ð *r,   r•  rH   )r!   r/   rW   rž  rŸ  r   r•   ÚtupleÚtakerœ  ÚndimÚT)rY   r˜  r3   rB   r  r¡  r–  rÉ   Ú
part_shapeÚfftshaper±  s             @r*   Ú_check_nd_onezTestOverwrite._check_nd_one%  s-  ø€ å
Œ	�Š�tÑÔÐÝŒ=˜¥Ô 2Ñ3Ô3ð 	+Ý”9”? EÐ*¨Rµ´	´ÀÐ0GÑ-GÑGˆDˆDå”9”? EÐ*ˆDØ�{Š{˜5Ñ!Ô!ˆð	*ð 	*ð 	*ð 	*ð 	*ð ˆ<ØˆJˆJå�rœw u¨dÑ3Ô3Ñ4Ô4ˆJà%˜ jÑ1Ô1ð 	5ð 	5ˆHØ�KŠK˜˜g x°Ø$/ð ñ 1ô 1ð 1àŒy˜1Š}ˆ}Ø—’˜DœF G¨X°tØ(3ð ñ 5ô 5ð 5øð		5ð 	5r,   ))r£  N)r£  rK  )r¤  rK  )r¥  ©rH   )©r  r9  N)rº  ©r   rH   )©r  r9  r   r»  )r¼  rG  )r¼  rK  )r¼  r¹  )r¼  )r   )r¼  N)r¼  rE  c                 ó²   — t           j        t           j        f}|                      t          |||||¦  «         |                      t
          |||||¦  «         d S r.   )r!   r}   r†   r¸  r   r   )rY   r3   r–  rB   r  r¨  s         r*   Útest_fftn_ifftnzTestOverwrite.test_fftn_ifftnB  sf   € õ  œ¥r¤|Ð4ˆØ×Ò�4 ¨¨t°\Ø&ñ	(ô 	(ð 	(à×Ò�5 %¨°°lØ&ñ	(ô 	(ð 	(ð 	(ð 	(r,   N)ru   rv   rw   Ú__doc__r!   r‡   r~   r«  r†   r}   ÚdtypesÚfftsizesrœ  r¢  r�   rŽ   r'  r©  r¬  r¸  r¾  rx   r,   r*   r‘  r‘  î  s2  € € € € € Ø>Ð>à”:˜rœzÐ*€KØ˜BœL¨"¬-Ð8Ñ8€FØˆ{ˆ{€HðNð Nð Nð
-ð 
-ð 
-ð „[×Ò˜W fÑ-Ô-Ø„[×Ò˜Y¨Ñ1Ô1Ø„[×Ò˜]¨T°5¨MÑ:Ô:Ø„[×Ò˜\ð ,:ð ,:ð ,:ñ ;ô ;ð-ð -ñ;ô ;ñ ;Ô:ñ 2Ô1ñ .Ô-ð-ð „[×Ò˜W kÑ2Ô2Ø„[×Ò˜Y¨Ñ1Ô1Ø„[×Ò˜]¨T°5¨MÑ:Ô:Ø„[×Ò˜\ð ,:ð ,:ð ,:ñ ;ô ;ð-ð -ñ;ô ;ñ ;Ô:ñ 2Ô1ñ 3Ô2ð-ð5ð 5ð 5ð: „[×Ò˜W fÑ-Ô-Ø„[×Ò˜]¨T°5¨MÑ:Ô:Ø„[×Ò˜\ð ,Eð ,Eð ,Eñ Fô Fð(ð (ñFô Fñ ;Ô:ñ .Ô-ð(ð (ð (r,   r‘  Úfuncc                 óä  — t           j                             dd¦  «        } | |d¬¦  «        } | |t          j        ddg¦  «        ¬¦  «        }t	          ||¦  «          | |d¬¦  «        } | |t          j        dg¦  «        ¬¦  «        }t	          ||¦  «          | |dd	¬
¦  «        } | |t          j        ddg¦  «        t          j        ddg¦  «        ¬
¦  «        }t	          ||¦  «         d S )Nr4  )r`   r`   rj  r`   rI  rD  rC  )rg   r  )rH   r   r  rg   r  rH   r   )r!   r/   r   r   r   )rÂ  ÚaÚexpectÚactuals       r*   Útest_shape_axes_ndarrayrÇ  Y  sÿ   € õ 	Œ	�Š�r˜2ÑÔ€AàˆT�!˜6Ð"Ñ"Ô"€FØˆT�!�2œ8 Q¨ FÑ+Ô+Ð,Ñ,Ô,€FÝ�˜Ñ Ô Ð àˆT�!˜%Ð Ñ Ô €FØˆT�!�"œ( B 5™/œ/Ð*Ñ*Ô*€FÝ�˜Ñ Ô Ð àˆT�!˜6¨Ð/Ñ/Ô/€FØˆT�!�2œ8 Q¨ FÑ+Ô+µ"´(¸A¸q¸6Ñ2BÔ2BÐCÑCÔC€FÝ�˜Ñ Ô Ð Ð Ð r,   )CÚnumpy.testingr   r   r   r   r   r�   r   rr   Úscipy.fftpackr	   r
   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r!   Ú	numpy.fftÚnumpy.randomr   r³   r(  r´   r)  r+   r/   r<   r>   rD   rF   rL   rP   rR   rz   rƒ   r‘   r™   rº   r½   rÀ   rÝ   rà   rã   rõ   rù   rü   r  r+  r{  r…  rŠ  r‘  rŽ   r'  rÇ  rx   r,   r*   ú<module>rÌ     s´  ððNð Nð Nð Nð Nð Nð Nð Nð Nð Nð Nð Nð Nð Nà €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cð.ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð Ð ð
ð ð Ð ð 	ðÐ ð ðÐ ð
Nð Nð Nðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð  ð  ð  ð #:ð #:ð #:ð #:ð #:ñ #:ô #:ð #:ðLð ð ð ð �Lñ ô ð ð
ð 
ð 
ð 
ð 
�Lñ 
ô 
ð 
ðKð Kð Kð Kð Kñ Kô Kð Kð&E;ð E;ð E;ð E;ð E;ñ E;ô E;ð E;ðPð ð ð ð �]ñ ô ð ðð ð ð ð �]ñ ô ð ð(Ið (Ið (Ið (Ið (Iñ (Iô (Ið (IðVð ð ð ð �]ñ ô ð ðð ð ð ð �]ñ ô ð ð4Jð 4Jð 4Jð 4Jð 4Jñ 4Jô 4Jð 4Jðtð ð ð ð �nñ ô ð ðð ð ð ð �nñ ô ð ðCð Cð Cð Cð Cñ Cô Cð Cð$:4ð :4ð :4ð :4ð :4ñ :4ô :4ð :4ðzU,ð U,ð U,ð U,ð U,ñ U,ô U,ð U,ðp(-ð (-ð (-ð (-ð (-ñ (-ô (-ð (-ðV<ð <ð <ð <ð <ñ <ô <ð <ðð ð ð ð ñ ô ð ðh(ð h(ð h(ð h(ð h(ñ h(ô h(ð h(ðV „×Ò˜ $¨¨tÐ!4Ñ5Ô5ð!ð !ñ 6Ô5ð!ð !ð !r,   