Ë
    âQ(hZw  ã                   óÚ  — 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€                  jƒ                  d;eeeg«      d<„ «       ZBy)=é    )Ú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                  j                  | |z
  «      |t        j                  j                  | «      z  |«       y )Nzsize: z  rdt: )r   ÚnpÚlinalgÚnorm)ÚxÚyÚrtolÚsizeÚrdtÚerr_msgs         ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/fftpack/tests/test_basic.pyÚ_assert_close_in_normr+   #   sC   € à�t�f˜G C 5Ð)€GÜ”b—i‘i—n‘n Q¨¡UÓ+¨T´"·)±)·.±.ÀÓ2CÑ-CÀWÕ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<   -   sh   € Ü�‹
€AÜˆA‹€AÜˆa”wÔ€AÜ	�‹ˆ
�B”r‘E˜!‘GÑ€AÜ�1‹Xò  ˆÜ”3�q˜‘s“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   sk   € Ü�‹
€AÜˆA‹€AÜˆa”wÔ€AÜˆq‹	�2”b‘5˜‘7Ñ€AÜ�1‹Xò "ˆÜ”3�q˜‘s“8˜QÓ Ñ!ˆˆ!Šð"à€Hr,   c                 ó|   — t        | «      } t        t        | j                  «      «      D ]  }t	        | |¬«      } Œ | S ©N)Úaxis)r   r7   r6   Úshaper
   ©r$   rA   s     r*   Údirect_dftnrD   A   s8   € Ü�‹
€AÜ”c˜!Ÿ'™'“lÓ#ò ˆÜ�˜Ô‰ðà€Hr,   c                 ó|   — t        | «      } t        t        | j                  «      «      D ]  }t	        | |¬«      } Œ | S r@   )r   r7   r6   rB   r	   rC   s     r*   Údirect_idftnrF   H   s8   € Ü�‹
€AÜ”c˜!Ÿ'™'“lÓ#ò ˆÜ�˜Ô‰ðà€Hr,   c                 óf  — t        | «      } t        | «      }t        |«       dt        z  |z  z  }t	        |t
        ¬«      }t        |dz  dz   «      D ]\  }t        t        ||z  «      | «      }|r1|j                  |d|z  dz
  <   d|z  |k  sŒ;|j                  |d|z  <   ŒN|j                  |d<   Œ^ |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‘vˆAˆa�‰c�!‰e‰HØ�‰s�Q‹wØŸ™��!�A‘#’à—6‘6ˆAˆaŠDðð €Hr,   c                 óX  — t        | «      } t        | «      }t        |t        ¬«      }t	        |dz  dz   «      D ][  }|rOd|z  |k  r8| d|z  dz
     d| d|z     z  z   ||<   | d|z  dz
     d| d|z     z  z
  |||z
  <   ŒE| d|z  dz
     ||<   ŒT| d   |d<   Œ] t        |«      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Ø˜!˜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ðô �r‹?×ÑÐr,   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestFFTBasec                 ó^   — d | _         d | _        t        j                  j	                  d«       y ©NéÒ  )Úcdtr(   r!   r/   Úseed©Úselfs    r*   Úsetup_methodz_TestFFTBase.setup_methodp   s    € ØˆŒØˆŒÜ
�	‰	�‰�tÕr,   c                 óP  — t        j                  g d¢| j                  ¬«      }t        |«      }t	        |j
                  | j                  «       t        |«      }t        ||«       t        j                  g d¢| j                  ¬«      }t        t        |«      t        |«      «       y )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   sk   € Ü�H‰HÒ,°D·H±HÔ=ˆÜ�‹FˆÜ�Q—W‘W˜dŸh™hÔ'Ü˜‹]ˆÜ! ! BÔ'Ü�H‰H’^¨4¯8©8Ô4ˆÜ!¤# a£&¬°A«Õ7r,   c                 óz  — 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        |«      «       y ©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‰X’i t§x¡xÔ0ˆÜ�X‰X’i t§x¡xÔ0ˆÜ��B�˜!ÔˆÜ�Q—W‘W˜dŸh™hÔ'Ü�Q—W‘W˜UÔ#Ü! ! A¡$¤z°"£~Ô6Ü! ! A¡$¤z°"£~Õ6r,   c                 óz  — 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        |«      «       y )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‰X’l¨$¯(©(Ô3ˆÜ�X‰X’l¨$¯(©(Ô3ˆÜ��B�˜!ÔˆÜ�Q—W‘W˜dŸh™hÔ'Ü�Q—W‘W˜UÔ#Ü! ! A¡$¤z°"£~Ô6Ü! ! A¡$¤z°"£~Õ6r,   c                 óf   — t        t        t        g «       t        t        t        ddgddggd«       y ©NrH   r   éûÿÿÿ)Úassert_raisesÚ
ValueErrorr
   rX   s    r*   Útest_invalid_sizesz_TestFFTBase.test_invalid_sizes�   s(   € Ü”j¤# rÔ*Ü”j¤#¨¨1¨¨q°¨e }°bÕ9r,   N)Ú__name__Ú
__module__Ú__qualname__rZ   rc   rl   rn   rt   © r,   r*   rR   rR   o   s   „ òò
8ò7ò7ó:r,   rR   c                   ó   — e Zd Zd„ Zy)ÚTestDoubleFFTc                 óX   — t         j                  | _        t         j                  | _        y 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                   ó\   — e Zd Zd„ ZdZej                  j                  de¬«      d„ «       Zy)ÚTestSingleFFTc                 óX   — t         j                  | _        t         j                  | _        y 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                  ó   — y 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ƒ   ›   s7   „ òðK€Fð ‡[�[×Ñ˜5¨ÐÓ0ñó 1ñr,   rƒ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestFloat16FFTc                 óD  — t        j                  g d¢t         j                  ¬«      }t        |d¬«      }t	        |j
                  t         j                  «       t	        |j                  d«       t        |t        |j                  t         j                  «      «      «       y )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‰X’l¬"¯*©*Ô5ˆÜ��aŒLˆÜ�Q—W‘WœbŸl™lÔ+Ü�Q—W‘W˜eÔ$Ü! !¤Z°·	±	¼"¿*¹*Ó0EÓ%FÕ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        |j                  t         j                  «      «      «       t        |d   t        |j                  t         j                  «      «      «       y re   r“   rj   s       r*   rl   z#TestFloat16FFT.test_n_argument_real±   sš   € Ü�X‰X’l¬"¯*©*Ô5ˆÜ�X‰X’l¬"¯*©*Ô5ˆÜ��R�˜AÔˆÜ�Q—W‘WœbŸl™lÔ+Ü�Q—W‘W˜fÔ%Ü! ! A¡$¬
°2·9±9¼R¿Z¹ZÓ3HÓ(IÔJÜ! ! A¡$¬
°2·9±9¼R¿Z¹ZÓ3HÓ(IÕJr,   N)ru   rv   rw   r–   rl   rx   r,   r*   r‘   r‘   ¨   s   „ òHóKr,   r‘   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú_TestIFFTBasec                 óB   — t         j                  j                  d«       y rT   ©r!   r/   rW   rX   s    r*   rZ   z_TestIFFTBase.setup_method¼   ó   € Ü
�	‰	�‰�tÕr,   c                 óL  — t        j                  g d¢| j                  «      }t        |«      }t	        |«      }t        |j                  | j                  «       t        ||«       t        j                  g d¢| j                  «      }t        t        |«      t	        |«      «       y )Nr\   r_   )r!   r   rV   r	   r>   r   r3   r   ra   s       r*   rc   z_TestIFFTBase.test_definition¿   sk   € Ü�H‰HÒ,¨d¯h©hÓ7ˆÜ�‹GˆÜ˜‹^ˆÜ�Q—W‘W˜dŸh™hÔ'Ü! ! BÔ'ä�H‰H’^ T§X¡XÓ.ˆÜ!¤$ q£'¬+°a«.Õ9r,   c                 óŽ  — t        j                  g d¢| j                  «      }t        |«      }t	        |j
                  | j                  «       t        |«      }t        ||«       t        j                  g d¢| j                  ¬«      }t	        |j
                  | j                  «       t        t        |«      t        |«      «       y )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‰HÒ&¨¯©Ó1ˆÜ�‹GˆÜ�Q—W‘W˜dŸh™hÔ'Ü˜‹^ˆÜ! ! BÔ'ä�H‰H’[¨¯©Ô1ˆÜ�Q—W‘W˜dŸh™hÔ'Ü!¤$ q£'¬+°a«.Õ9r,   c                 ó²  — dD ]Ò  }t        |g«      j                  | j                  «      }t        |g«      j                  | j                  «      d|z  z   }t        t	        |«      «      }t	        t        |«      «      }t        |j                  | j                  «       t        |j                  | j                  «       t        ||«       t        ||«       ŒÔ y )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¡hÓ/ˆAÜ˜�v“×%Ñ% d§h¡hÓ/°"°Q±$Ñ6ˆAÜ”c˜!“f“ˆBÜ”T˜!“W“ˆBÜ˜Ÿ™ 4§8¡8Ô,Ü˜Ÿ™ 4§8¡8Ô,Ü% b¨!Ô,Ü% b¨!Õ,ñ	-r,   c                 ó\  — dD ]§  }t        |g«      j                  | j                  «      }t        t	        |«      «      }t	        t        |«      «      }t        |j                  | j                  «       t        |j                  | j                  «       t        ||«       t        ||«       Œ© y )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¡hÓ/ˆAÜ”c˜!“f“ˆBÜ”T˜!“W“ˆBÜ˜Ÿ™ 4§8¡8Ô,Ü˜Ÿ™ 4§8¡8Ô,Ü% b¨!Ô,Ü% b¨!Õ,ñ	-r,   c                 ó<  — | j                   t        j                  k(  rd}n| j                   t        j                  k(  rd}t        t
        z   D �]L  }t        j                  j                  d«       t        j                  j                  |«      j                  | j                   «      }t        t        |«      «      }t        |||| j                   «       t        t        |«      «      }t        ||||| j                   «       |dt        j                  j                  |«      z  z   j                  | j                  «      }t        t        |«      «      }t        ||||| j                   «       t        t        |«      «      }t        ||||| j                   «       �ŒO y )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é   s!  € à�8‰8”r—z‘zÒ!Ø‰DØ�X‰XœŸ™Ò#ØˆDä)Ô,=Ñ=ó 	>ˆDÜ�I‰I�N‰N˜4Ô Ü—	‘	—‘˜tÓ$×+Ñ+¨D¯H©HÓ5ˆAÜ”S˜“V“ˆAÜ! ! Q¨¨d°D·H±HÔ=Ü”D˜“G“ˆAÜ! ! Q¨¨d°D·H±HÔ=à�RœŸ	™	Ÿ™ tÓ,Ñ,Ñ,×4Ñ4°T·X±XÓ>ˆAÜ”S˜“V“ˆAÜ! ! Q¨¨d°D·H±HÔ=Ü”D˜“G“ˆAÜ! ! Q¨¨d°D·H±HÖ=ñ	>r,   c                 óf   — t        t        t        g «       t        t        t        ddgddggd«       y 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y)ÚTestDoubleIFFTc                 óX   — t         j                  | _        t         j                  | _        y 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y)ÚTestSingleIFFTc                 óX   — t         j                  | _        t         j                  | _        y r.   r…   rX   s    r*   rZ   zTestSingleIFFT.setup_method
  rˆ   r,   Nr€   rx   r,   r*   r½   r½   	  r�   r,   r½   c                   ó>   — e Zd Zd„ Zd„ Zd„ Z G d„ d«      Zd„ Zd„ Zy)	Ú_TestRFFTBasec                 óB   — t         j                  j                  d«       y 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                  «       Œg y )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  sY   € Ú*Ò,GÐHò 	,ˆAÜ—‘˜ $§(¡(Ô+ˆAÜ�Q“ˆAÜ˜Q“ˆBÜ% a¨Ô+Ü˜Ÿ™ $§(¡(Õ+ñ	,r,   c                 óf   — t        t        t        g «       t        t        t        ddgddggd«       y rp   )rr   rs   r   rX   s    r*   rt   z _TestRFFTBase.test_invalid_sizes  r¸   r,   c                   ó   — e Zd Zd„ Zd„ Zy)ú_TestRFFTBase.MockSeriesc                 ó8   — t        j                  |«      | _        y r.   )r!   r   Údata©rY   rÉ   s     r*   Ú__init__z!_TestRFFTBase.MockSeries.__init__!  s   € ÜŸ
™
 4Ó(ˆD�Ir,   c                 ór   — 	 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__$  sO   € ðKÜ˜tŸy™y¨$Ó/Ð/øÜ!ò KÜ$ð &;Ø;?¸&Àð&Có DØIJðKûðKús   ‚ ˜	6¡1±6N)ru   rv   rw   rË   rÒ   rx   r,   r*   Ú
MockSeriesrÇ      s   „ ò	)ó	Kr,   rÓ   c                 ó¾   — t        j                  g d¢«      }t        j                  |«      }g d¢}t	        |«       t        ||«       t        |j                  |«       y )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+  sG   € Ü�H‰HÒ)Ó*ˆÜ×%Ñ% aÓ(ˆâ"ˆÜˆRŒô 	�Q˜Ô!Ü�R—W‘W˜hÕ'r,   c                 ót   — t        t        t        t        j                  dt        j
                  ¬«      «       y ©Nrg   r2   )rr   Ú	TypeErrorr   r!   r   r†   rX   s    r*   Útest_complex_inputz _TestRFFTBase.test_complex_input6  s   € Ü”i¤¤r§y¡y°¼"¿,¹,Ô'GÕHr,   N)	ru   rv   rw   rZ   rc   rt   rÓ   r×   rÛ   rx   r,   r*   rÀ   rÀ     s(   „ òò,ò;÷
	Kñ 	Kò	(óIr,   rÀ   c                   ó   — e Zd Zd„ Zy)ÚTestRFFTDoublec                 óX   — t         j                  | _        t         j                  | _        y 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y)ÚTestRFFTSinglec                 óX   — t         j                  | _        t         j                  | _        y r.   r…   rX   s    r*   rZ   zTestRFFTSingle.setup_methodA  rˆ   r,   Nr€   rx   r,   r*   rà   rà   @  r�   r,   rà   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestIRFFTBasec                 óB   — t         j                  j                  d«       y rT   r›   rX   s    r*   rZ   z_TestIRFFTBase.setup_methodG  rœ   r,   c                 óT   ‡ — g d¢}g d¢}g d¢}g d¢}ˆ fd„} |||«        |||«       y )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                  ¬«       y )Nr2   )Údecimal)
r   r!   r   r(   rP   r   r3   r   Úndecr	   )r$   Úxrr%   rb   rY   s       €r*   Ú_testz-_TestIRFFTBase.test_definition.<locals>._testP  s[   ø€ Ü”b—h‘h˜q¨¯©Ô1Ó2ˆAÜ˜a“ˆBÜ˜Ÿ™ $§(¡(Ô+Ü% a¨°D·I±IÕ>Ü% a¬¨R«¸$¿)¹)ÖDr,   rx   )rY   rO   Úx1_1rk   Úx2_1rí   s   `     r*   rc   z_TestIRFFTBase.test_definitionJ  s1   ø€ ÚˆÚ2ˆÚ ˆÚ:ˆô	Eñ 	ˆb�$ŒÙˆb�$�r,   c                 óœ  — dD ]Ç  }t        |g«      j                  | j                  «      }t        t	        |«      «      }t	        t        |«      «      }t        |j                  | j                  «       t        |j                  | j                  «       t        ||| j                  d|z  ¬«       t        ||| j                  d|z  ¬«       ŒÉ y )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ˆDÜ˜�v“×%Ñ% d§h¡hÓ/ˆAÜ”t˜A“w“ˆBÜ”e˜A“h“ˆBÜ˜Ÿ™ 4§8¡8Ô,Ü˜Ÿ™ 4§8¡8Ô,Ü% b¨!°T·Y±YØ/8¸4Ñ/?õAä% b¨!°T·Y±YØ/8¸4Ñ/?öAñ		Ar,   c                 ó  — | j                   t        j                  k(  rd}n| j                   t        j                  k(  rd}t        t
        z   D ]³  }t        j                  j                  d«       t        j                  j                  |«      j                  | j                   «      }t        t        |«      «      }t        |||| j                   «       t        t        |«      «      }t        ||||| j                   «       Œµ y )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‰8”r—z‘zÒ!Ø‰DØ�X‰XœŸ™Ò#ØˆDä)Ô,=Ñ=ò 	>ˆDÜ�I‰I�N‰N˜4Ô Ü—	‘	—‘˜tÓ$×+Ñ+¨D¯H©HÓ5ˆAÜ”d˜1“g“ˆAÜ! ! Q¨¨d°D·H±HÔ=Ü”U˜1“X“ˆAÜ! ! Q¨¨d°D·H±HÕ=ñ	>r,   c                 óf   — t        t        t        g «       t        t        t        ddgddggd«       y rp   )rr   rs   r   rX   s    r*   rt   z!_TestIRFFTBase.test_invalid_sizesu  s(   € Ü”j¤%¨Ô,Ü”j¤%¨1¨Q¨%°°1°¨¸Õ;r,   c                 ót   — t        t        t        t        j                  dt        j
                  ¬«      «       y rÙ   )rr   rÚ   r   r!   r   r†   rX   s    r*   rÛ   z!_TestIRFFTBase.test_complex_inputy  s   € Ü”i¤¬¯	©	°!¼2¿<¹<Ô(HÕIr,   N)	ru   rv   rw   rZ   rc   r¯   r¶   rt   rÛ   rx   r,   r*   rã   rã   F  s"   „ òòò 
Aò>ò<óJr,   rã   c                   ó   — e Zd Zd„ Zy)ÚTestIRFFTDoublec                 óf   — t         j                  | _        t         j                  | _        d| _        y )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y)ÚTestIRFFTSinglec                 óf   — t         j                  | _        t         j                  | _        d| _        y )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y)ÚTestfft2c                 óB   — t         j                  j                  d«       y rT   r›   rX   s    r*   rZ   zTestfft2.setup_method�  rœ   r,   c                 ó¦   — t        j                  d«      }t        |dd¬«      }t         j                  j	                  |dd¬«      }t        ||«       y)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’  sB   € ô �J‰J�yÓ!ˆÜ�˜& xÔ0ˆÜ�i‰i�n‰n˜Q &¨xˆnÓ8ˆÜ! ! SÕ)r,   c                 óh   — t        t        t        g g«       t        t        t        ddgddggd«       y )NrH   r   ©rg   r  )rr   rs   r   rX   s    r*   rt   zTestfft2.test_invalid_sizes›  s+   € Ü”j¤$¨¨Ô-Ü”j¤$¨!¨Q¨°!°Q°Ð(8¸'ÕBr,   N)ru   rv   rw   rZ   r  rt   rx   r,   r*   rü   rü   Ž  s   „ òò*óCr,   rü   c                   óF  — e Zd Zd„ Zd„ Zej                  j                  dee	z   «      d„ «       Z
ej                  j                  deez   «      d„ «       Zd„ Zej                  j                  dee	z   «      d„ «       Zej                  j                  deez   «      d„ «       Zy	)
ÚTestFftnSinglec                 óB   — t         j                  j                  d«       y rT   r›   rX   s    r*   rZ   zTestFftnSingle.setup_method¡  rœ   r,   c                 ó6  — g d¢g d¢g d¢g}t        t        j                  |t        j                  «      «      }t	        |j
                  t        j                  k(  d¬«       t        j                  t        |«      t        j                  «      }t        ||«       y )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¤  sl   € ÚÚÚðˆô ”—‘˜!œRŸZ™ZÓ(Ó)ˆÜ�—‘œ2Ÿ<™<Ñ'ØCõ	Eô �h‰h”t˜A“w¤§¡Ó-ˆÜ& q¨#Õ.r,   r'   c                 óú  — t         j                  j                  d«      }|j                  ||f«      d|j                  ||f«      z  z   }t        |j                  j                  t         j                  «      «      }t        |j                  j                  t         j                  «      «      j                  t         j                  «      }t        |j                  t         j                  «       t        ||d«       y )NrU   rN   éÐ  ©r!   r/   Údefault_rngr   rI   r•   r‡   r~   r†   r   r3   r   ©rY   r'   Úrngr$   rb   r¬   s         r*   Útest_size_accuracy_smallz'TestFftnSingle.test_size_accuracy_small¯  s¢   € ä�i‰i×#Ñ# DÓ)ˆØ�J‰J˜˜d�|Ó$ r¨#¯*©*°d¸D°\Ó*BÑ'BÑBˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,ˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,×3Ñ3´B·L±LÓAˆä�R—X‘XœrŸ|™|Ô,Ü& r¨2¨tÕ4r,   c                 óþ  — t         j                  j                  d«      } |j                  |df«      d |j                  |df«      z  z   }t        |j                  j                  t         j                  «      «      }t        |j                  j                  t         j                  «      «      j                  t         j                  «      }t        |j                  t         j                  «       t        ||d«       y )NrU   r]   rN   r  r  )rY   r'   r   r$   rb   r¬   s         r*   Útest_size_accuracy_largez'TestFftnSingle.test_size_accuracy_large¹  s¦   € ä�y‰y×$Ñ$ TÓ*ˆØˆD�K‰K˜˜q˜	Ó" R¨¨¯©°T¸1°IÓ(>Ñ%>Ñ>ˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,ˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,×3Ñ3´B·L±LÓAˆä�R—X‘XœrŸ|™|Ô,Ü& r¨2¨tÕ4r,   c                 ó.  — g d¢g d¢g d¢g}t        t        j                  |t        j                  «      «      }t	        |j
                  t        j                  «       t        j                  t        |«      t        j                  «      }t        ||«       y )Nr  r  r  )r   r!   r   r”   r   r3   r†   r   r
  s       r*   Útest_definition_float16z&TestFftnSingle.test_definition_float16Ã  sa   € ÚÚÚðˆô ”—‘˜!œRŸZ™ZÓ(Ó)ˆÜ�Q—W‘WœbŸl™lÔ+Ü�h‰h”t˜A“w¤§¡Ó-ˆÜ& q¨#Õ.r,   c                 óú  — t         j                  j                  d«      }|j                  ||f«      d|j                  ||f«      z  z   }t        |j                  j                  t         j                  «      «      }t        |j                  j                  t         j                  «      «      j                  t         j                  «      }t        |j                  t         j                  «       t        ||d«       y )NrU   rN   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‰i×#Ñ# DÓ)ˆØ�J‰J˜˜d�|Ó$ r¨C¯J©J¸¸d°|Ó,DÑ'DÑDˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,ˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,×3Ñ3´B·L±LÓAˆä�R—X‘XœrŸ|™|Ô,Ü& r¨2¨sÕ3r,   c                 óú  — t         j                  j                  d«      }|j                  |df«      d|j                  |df«      z  z   }t        |j                  j                  t         j                  «      «      }t        |j                  j                  t         j                  «      «      j                  t         j                  «      }t        |j                  t         j                  «       t        ||d«       y )NrU   r]   rN   g    €„>Ar&  r  s         r*   Útest_float16_input_largez'TestFftnSingle.test_float16_input_largeÖ  s¢   € ä�i‰i×#Ñ# DÓ)ˆØ�J‰J˜˜a�yÓ! B s§z¡z°4¸°)Ó'<Ñ$<Ñ<ˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,ˆÜ�!—&‘&—-‘-¤§
¡
Ó+Ó,×3Ñ3´B·L±LÓAˆä�R—X‘XœrŸ|™|Ô,Ü& r¨2¨sÕ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ñ5ó Pð5ð ‡[�[×Ñ˜VÐ%:Ð=NÑ%NÓOñ5ó Pð5ò/ð ‡[�[×Ñ˜VÐ%:Ð=NÑ%NÓOñ4ó Pð4ð ‡[�[×Ñ˜VÐ%:Ð=NÑ%NÓOñ4ó Pñ4r,   r  c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestFftnc                 óB   — t         j                  j                  d«       y rT   r›   rX   s    r*   rZ   zTestFftn.setup_methodâ  rœ   r,   c                 óþ   — g d¢g d¢g d¢g}t        |«      }t        |t        |«      «       t        d«      }t        t        |«      t        |«      «       t        d«      }t        t        |«      t        |«      «       y )Nr  r  r  ©é   é   ©r`   rg   r]   r2  )r   r   rD   r/   ©rY   r$   r%   s      r*   rc   zTestFftn.test_definitionå  sc   € ÚÚÚðˆô �‹GˆÜ! !¤[°£^Ô4ä�8ÓˆÜ!¤$ q£'¬;°q«>Ô:ä�=Ó!ˆÜ!¤$ q£'¬;°q«>Õ:r,   c                 ó:  — 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 ]7  }t	        d4«      D ]'  }t        t        |||d d …f   «      |||d d …f   «       Œ) Œ9 t        |d5¬«      }t	        d4«      D ]7  }t	        d4«      D ]'  }t        t        ||d d …|f   «      ||d d …|f   «       Œ) Œ9 t        |d6¬«      }t	        d4«      D ]7  }t	        d4«      D ]'  }t        t        |d d …||f   «      |d d …||f   «       Œ) Œ9 t        |d7¬«      }t        ||«       y )8Nr  r  r  )é
   é   é   )é   r÷   é   )é   é   é   )é   r2  é   )é   é   é   )é   r3  é   )rH   r7  r?  )rg   r:  rA  )r  r<  rD  )r   r8  r2  )r`   r÷   rB  )r  r=  r3  )r]   r9  r@  )r  r;  rC  )r  r>  rE  )rH   rg   r  )r7  r:  r<  )r?  rA  rD  )r   r`   r  )r8  r÷   r=  )r2  rB  r3  )r]   r  r  )r9  r;  r>  )r@  rC  rE  )r  r  éÿÿÿÿ©r  ©r   rH   r   )r   r   )r   rF  )r   rH   r   rF  r  )r   r   rH   r  )rH   r   r   )rH   r   r   )r   r   rH   ©r  rF  r   rH   r   ©rH   r   r  )r  rF  ©rF  r  )rF  r  )r  r  ©rF  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  € âÚÚðˆò ÚÚð ˆò ÚÚð ˆò Ú!Ú!ð#ˆ	ò Ú!Ú!ð#ˆ	ò Ú!Ú!ð#ˆ	ò !Ú Ú ð"ˆ	ò !Ú Ú ð"ˆ	ò !Ú Ú ð"ˆ	ò Ú!¢<ð1ˆ	âÚ!¢<ð1ˆ	âÚ!¢<ð1ˆ	âÚÚð ˆ	ò "Ú!Ú!ð#ˆ	ò "Ú!Ú!ð#ˆ	ò !Ú Ú ð"ˆ	ò !Ú Ú ð"ˆ	ò !Ú Ú ð"ˆ	ð  	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ø 	¨9Ð5ˆ	Ü�6˜6 6Ð*Ó+ˆä!¤$ q£'Ü"& q¨|Ô"<ô	>ä!¤$ q£'¬4°¸	Ô+BÔCÜ!¤$ q¨vÔ"6¼¸QÀWÔ8MÔNÜ�˜Ô#ˆÜ!¤(¨1¨b°"Ó"5´t¸I³ÔGÜ�˜Ô#ˆÜ!¤(¬8°A°r¸2Ó+>ÀÀBÓ"GÜ"& y£/ô	3ä�˜Ô#ˆÜ!¤(¬8°A°r¸2Ó+>ÀÀBÓ"GÜ"& y£/ô	3ä�˜Ô#ˆÜ!¤(¨1¨b°"Ó"5´t¸I³ÔGÜ�˜Ô#ˆÜ!¤(¨1¨b°"Ó"5´t¸I³ÔGä�˜Ô"ˆÜ!¤$ v£,°°!±Ô5Ü!¤$ v£,°°!±Ô5Ü!¤$ v£,°°!±Ô5ä�˜Ô ˆÜ!¤$ v£,°°!±Ô5Ü!¤$ v£,°°!±Ô5Ü!¤$ v£,°°!±Ô5ä�˜Ô"ˆÜ!¤$ qªªA¨q¨¡zÓ"2°A²aº¸A°g±JÔ?Ü!¤$ qªªA¨q¨¡zÓ"2°A²aº¸A°g±JÔ?Ü!¤$ qªªA¨q¨¡zÓ"2°A²aº¸A°g±JÔ?ä�˜Ô"ˆÜ!¤$ qª¨Aªq¨¡zÓ"2°A²a¸ºA°g±JÔ?Ü!¤$ qª¨Aªq¨¡zÓ"2°A²a¸ºA°g±JÔ?Ü!¤$ qª¨Aªq¨¡zÓ"2°A²a¸ºA°g±JÔ?ä�˜Ô"ˆÜ!¤$ y£/´8¸A¸a¹DÀ"ÀbÓ3IÔJÜ!¤$ y£/´8¸A¸a¹DÀ"ÀbÓ3IÔJÜ!¤$ y£/´8¸A¸a¹DÀ"ÀbÓ3IÔJä�˜Ô"ˆÜ!¤$ y£/Ü"*¨1ªQ°²1¨W©:°r¸2Ó">ô	@ä!¤$ y£/Ü"*¨1ªQ°²1¨W©:°r¸2Ó">ô	@ä!¤$ y£/Ü"*¨1ªQ°²1¨W©:°r¸2Ó">ô	@ô �˜Ô"ˆÜ!¤$ y£/Ü"*¨1ªQ²°1¨W©:°r¸2Ó">ô	@ä!¤$ y£/Ü"*¨1ªQ²°1¨W©:°r¸2Ó">ô	@ä!¤$ y£/Ü"*¨1ªQ²°1¨W©:°r¸2Ó">ô	@ô �˜ÔˆÜ�q“ò 	GˆAÜ˜1“Xò G�Ü)¬#¨a°°1²a°©j«/¸1¸QÀÂ1¸W¹:ÕFñGð	Gô �˜ÔˆÜ�q“ò 	GˆAÜ˜1“Xò G�Ü)¬#¨a°²1°a°©j«/¸1¸QÂÀ1¸W¹:ÕFñGð	Gô �˜ÔˆÜ�q“ò 	GˆAÜ˜1“Xò G�Ü)¬#¨a²°1°a°©j«/¸1ºQÀÀ1¸W¹:ÕFñGð	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	 «      «       y )
Nr  r  ©rH   r   r]   r   ©rg   r`   r  r   ©r   r   r   r   ©rg   rg   ©rB   )r]   rg   rF  )r   r   ©rY   Úsmall_xÚlarge_x1r%   s       r*   Útest_shape_argumentzTestFftn.test_shape_argumentx  s_   € ÚÚðˆâ Ú Ú Ú ð"ˆô
 � Ô'ˆÜ! !¤T¨(£^Ô4ä� Ô'ˆÜ! !¤T¨(°3°B¨-Ó%8Õ9r,   c                 ó   — 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«      «       y )Nr  r  r  ri  rj  )r  r  r  r   rk  rl  rI  r  rK  rF  r  )r   r   r   r   rn  s       r*   Útest_shape_axes_argumentz!TestFftn.test_shape_axes_argument†  s€   € ÚÚÚðˆô š,Ú&Ú&Ú&ð(ó )ˆô � ¨XÔ6ˆÜ! !¤T¨(£^Ô4Ü� ¨XÔ6ˆä! !¤XÜ”˜( B¨Ó+Ó,¨b°"ó&6õ 	7r,   c                 óÊ  — t         j                  j                  d«      }t        |dd¬«      }t        |t	        |dd¬«      «       t         j                  j                  d«      }t        |dd¬«      }t        |t	        |d	d¬«      «       t         j                  j                  d
«      }t        |dd¬«      }t        |t         j                  j                  |dd¬«      «       y )N)r7  r`   r]   r  rL  )r  )r  rB   rF  r  )rA   r9   rM  r  rÿ   r  r   )r  r  )r  r/   r   r   r
   r5  s      r*   Útest_shape_axes_argument2z"TestFftn.test_shape_axes_argument2•  s³   € ä�L‰L×Ñ Ó.ˆÜ�˜ dÔ+ˆÜ! !¤S¨°°qÔ%9Ô:ô �L‰L×Ñ Ó.ˆÜ�˜ dÔ+ˆÜ! !¤S¨°°qÔ%9Ô:ô �L‰L×Ñ 	Ó*ˆÜ�˜¨Ô0ˆÜ! !Ü"'§)¡)§.¡.°¸ÀV .Ó"Lõ	Nr,   c                 ó€   — t        d«      }t        t        d¬«      5  t        |d¬«       d d d «       y # 1 sw Y   y xY w)Nrÿ   zBwhen given, axes and shape arguments have to be of the same length©Úmatch)r  r  r   rH   rm  )r   rr   rs   r   )rY   r$   s     r*   Útest_shape_argument_morez!TestFftn.test_shape_argument_more¦  s<   € Ü�)ÓˆÜœ:ð"<ô=ñ 	(ô �˜,Õ'÷	(÷ 	(ñ 	(ús   �4´=c                 óØ   — t        t        d¬«      5  t        g g«       d d d «       t        t        d¬«      5  t        ddgddggd«       d d d «       y # 1 sw Y   Œ6xY w# 1 sw Y   y xY w©Nz4invalid number of data points \(\[1, 0\]\) specifiedrw  z5invalid number of data points \(\[4, -3\]\) specifiedrH   r   r  )rr   rs   r   rX   s    r*   rt   zTestFftn.test_invalid_sizes­  su   € Üœ:ð"6ô7ñ 	ô �"�ŒJ÷	ô
 œ:ð"7ô8ñ 	,ô �1�a�&˜1˜a˜&Ð! 7Ô+÷	,ð 	,÷	ð 	ú÷
	,ð 	,úó   ’A¸A ÁAÁ A)N)ru   rv   rw   rZ   rc   rg  rq  rs  ru  ry  rt   rx   r,   r*   r.  r.  á  s-   „ òò;òD(òL:ò7òNò"(ó	,r,   r.  c                   óN  — e Zd 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g d	¢«      d
„ «       «       Zd„ Zy)Ú	TestIfftnNc                 óB   — t         j                  j                  d«       y rT   r›   rX   s    r*   rZ   zTestIfftn.setup_method½  rœ   r,   zdtype,cdtype,maxnlpr  i¬  c                 ó°  — t         j                  j                  d«      }t        j                  g d¢g d¢g d¢g|¬«      }t	        |«      }t        |j                  |«       t        |t        |«      |«       |j                  d«      }t        t	        |«      t        |«      |«       |j                  d«      }t        t	        |«      t        |«      |«       y )NrU   r  r  r  r2   r1  r4  )	r!   r/   r  r   r   r   r3   r   rF   )rY   r3   ÚcdtypeÚmaxnlpr  r$   r%   s          r*   rc   zTestIfftn.test_definitionÀ  s£   € ô �i‰i×#Ñ# DÓ)ˆÜ�H‰H’iÚÚð!à(-ô/ˆô �!‹HˆÜ�Q—W‘W˜fÔ%Ü& q¬,°q«/¸6ÔBà�J‰J�xÓ ˆÜ&¤u¨Q£x´¸a³À&ÔIà�J‰J�}Ó%ˆÜ&¤u¨Q£x´¸a³À&ÕIr,   r‚  r'   )rH   r   r¤   é    r¨   é\   c                 ó  — t         j                  j                  d«      }|j                  ||g«      d|j                  ||g«      z  z   }t        t	        t        |«      «      ||«       t        t        t	        |«      «      ||«       y )NrU   rN   )r!   r/   r  r   r   r   )rY   r‚  r'   r  r$   s        r*   r­   zTestIfftn.test_random_complexÒ  si   € ô �i‰i×#Ñ# DÓ)ˆØ�J‰J˜˜d�|Ó$ r¨C¯J©J¸¸d°|Ó,DÑ'DÑDˆÜ&¤u¬T°!«W£~°q¸&ÔAÜ&¤t¬E°!«H£~°q¸&ÕAr,   c                 óØ   — t        t        d¬«      5  t        g g«       d d d «       t        t        d¬«      5  t        ddgddggd«       d d d «       y # 1 sw Y   Œ6xY w# 1 sw Y   y xY wr{  )rr   rs   r   rX   s    r*   rt   zTestIfftn.test_invalid_sizesÚ  su   € Üœ:ð"6ô7ñ 	ô �2�$ŒK÷	ô
 œ:ð"7ô8ñ 	-ô �A�q�6˜A˜q˜6Ð" GÔ,÷	-ð 	-÷	ð 	ú÷
	-ð 	-úr|  )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™z¨2¯=©=¸$Ð?Ø!Ÿz™z¨2¯<©<¸Ð>ð@óAñJóAðJð ‡[�[×Ñ˜X¨¨d |Ó4Ø‡[�[×Ñ˜VÒ%;Ó<ñBó =ó 5ðBó	-r,   r~  c                   ó   — e Zd Zd„ Zy)Ú	FakeArrayc                 ó4   — || _         |j                  | _        y 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y)Ú
FakeArray2c                 ó   — || _         y 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‰zÐr,   )NN)ru   rv   rw   rË   r’  rx   r,   r*   r�  r�  ì  s   „ òôr,   r�  c                   ód  — 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                  j!                  de
«      ej                  j!                  de«      ej                  j!                  ddd	g«      ej                  j!                  d
g d¢«      d„ «       «       «       «       Zej                  j!                  de«      ej                  j!                  de«      ej                  j!                  ddd	g«      ej                  j!                  d
g d¢«      d„ «       «       «       «       Zd„ Zej                  j!                  de
«      ej                  j!                  ddd	g«      ej                  j!                  d
g d¢«      d„ «       «       «       Zy)ÚTestOverwritez4Check input overwrite behavior of the FFT functions.)r  r<  rƒ  c                 óø   — |j                  «       }d„ t        t        fD ]Y  } | ||«      |||¬«       |j                  › d|j                  › |j
                  ›d|›d|›d|›d�}|rŒIt        ||d|› �¬	«       Œ[ y )
Nc                 ó   — | S r.   rx   )r$   s    r*   ú<lambda>z&TestOverwrite._check.<locals>.<lambda>ý  s   € ˜q€ r,   ©Úoverwrite_xú(z, z, axis=z, overwrite_x=ú)zspurious overwrite in )r)   )r‘  rˆ  r�  ru   r3   rB   r   )	rY   r$   ÚroutineÚfftsizerA   r™  rk   ÚfakeÚsigs	            r*   Ú_checkzTestOverwrite._checkû  s�   € Ø�V‰V‹XˆÙ ¤)¬ZÐ8ò 	LˆDÙ‘D˜“H˜g t¸ÕEà×&Ñ&Ð' q¨¯©¨	°!·'±'°¸B¸w¸kð JØ˜( .°°¸qðBˆCâÜ˜R Ð.DÀSÀEÐ,JÖKñ	Lr,   c                 óŠ  — t         j                  j                  d«       t        j                  |t         j                  «      r=t        j                  j
                  |Ž dt        j                  j
                  |Ž z  z   }nt        j                  j
                  |Ž }|j                  |«      }| j                  |||||¬«       y )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Ñ 2Ô3Ü—9‘9—?‘? EÐ*¨R´·	±	·±ÀÐ0GÑ-GÑG‰Dä—9‘9—?‘? EÐ*ˆDØ�{‰{˜5Ó!ˆà�‰�D˜' 7¨DØ +ð 	õ 	-r,   r3   r�  r™  TFz
shape,axes))©r<  rF  )©r<  r   r   )©r   r<  rH   c           	      ó°   — t         j                  t         j                  f}| j                  t        ||||||«       | j                  t
        ||||||«       y r.   )r!   r}   r†   r¦  r
   r	   ©rY   r3   r�  r™  rB   r  Úoverwritables          r*   Útest_fft_ifftzTestOverwrite.test_fft_ifft  sL   € ô Ÿ™¤r§|¡|Ð4ˆØ�‰”s˜E 5¨$°Ø ô	-à�‰”t˜U E¨4°Ø õ	-r,   c           	      óˆ   — | j                   }| j                  t        ||||||«       | j                  t        ||||||«       y r.   )Úreal_dtypesr¦  r   r   r«  s          r*   Útest_rfft_irfftzTestOverwrite.test_rfft_irfft  sE   € ð ×'Ñ'ˆØ�‰”u˜e U¨D°,Ø ô	-à�‰”t˜U E¨4°Ø õ	-r,   c                 óX  ‡
— t         j                  j                  d«       t        j                  |t         j                  «      r=t        j                  j
                  |Ž dt        j                  j
                  |Ž z  z   }nt        j                  j
                  |Ž }|j                  |«      }ˆ
fd„Š
|€|}nt        t        j                  ||«      «      } ‰
|«      D ]H  }	| j                  |||	||¬«       |j                  dkD  sŒ)| j                  |j                  ||	||¬«       ŒJ y )NrU   rN   c              3   ó–   •K  — t        | «      dk  rd–— y | d   dz  | d   | d   dz  fD ]  } ‰| dd  «      D ]
  }|f|z   –— Œ Œ y ­w)Nr   rx   r   rH   )r6   )Úshprf  ÚrestÚfftshape_iters      €r*   rµ  z2TestOverwrite._check_nd_one.<locals>.fftshape_iter4  sg   øè ø€ Ü�3‹x˜1Š}Ø“à˜a™& !™) S¨¡V¨S°©V°A©XÐ6ò *�AÙ -¨c°!°"¨gÓ 6ò *˜Ø ˜d T™kÓ)ñ*ñ*ùs   ƒAA	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Ñ 2Ô3Ü—9‘9—?‘? EÐ*¨R´·	±	·±ÀÐ0GÑ-GÑG‰Dä—9‘9—?‘? EÐ*ˆDØ�{‰{˜5Ó!ˆô	*ð ˆ<Ø‰JäœrŸw™w u¨dÓ3Ó4ˆJá% jÓ1ò 	5ˆHØ�K‰K˜˜g x°Ø$/ð ô 1à�y‰y˜1‹}Ø—‘˜DŸF™F G¨X°tØ(3ð õ 5ñ		5r,   ))r§  N)r§  rN  )r¨  rN  )r©  ©rH   )©r  r<  N)r¾  ©r   rH   )©r  r<  r   r¿  )rÀ  rJ  )rÀ  rN  )rÀ  r½  )rÀ  )r   )rÀ  N)rÀ  rH  c                 ó¬   — t         j                  t         j                  f}| j                  t        |||||«       | j                  t
        |||||«       y r.   )r!   r}   r†   r¼  r   r   )rY   r3   r™  rB   r  r¬  s         r*   Útest_fftn_ifftnzTestOverwrite.test_fftn_ifftnH  sL   € ô  Ÿ™¤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”  ô  s˜  „ Ù>à—:‘:˜rŸz™zÐ*€KØ˜BŸL™L¨"¯-©-Ð8Ñ8€FÚ€HòLò
-ð ‡[�[×Ñ˜W fÓ-Ø‡[�[×Ñ˜Y¨Ó1Ø‡[�[×Ñ˜]¨T°5¨MÓ:Ø‡[�[×Ñ˜\ò ,:ó ;ñ-ó;ó ;ó 2ó .ð-ð ‡[�[×Ñ˜W kÓ2Ø‡[�[×Ñ˜Y¨Ó1Ø‡[�[×Ñ˜]¨T°5¨MÓ:Ø‡[�[×Ñ˜\ò ,:ó ;ñ-ó;ó ;ó 2ó 3ð-ò5ð: ‡[�[×Ñ˜W fÓ-Ø‡[�[×Ñ˜]¨T°5¨MÓ:Ø‡[�[×Ñ˜\ò ,Eó Fñ(óFó ;ó .ñ(r,   r”  Úfuncc                 ó®  — t         j                  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	        ||«       y )Nr7  )r`   r`   rm  r`   rL  rG  rF  )rg   r  )rH   r   r  rg   r  rH   r   )r!   r/   r   r   r   )rÆ  ÚaÚexpectÚactuals       r*   Útest_shape_axes_ndarrayrË  _  s³   € ô 	�	‰	�‰�r˜2Ó€Aá�!˜6Ô"€FÙ�!œ2Ÿ8™8 Q¨ FÓ+Ô,€FÜ�˜Ô á�!˜%Ô €FÙ�!œ"Ÿ(™( B 5›/Ô*€FÜ�˜Ô á�!˜6¨Ô/€FÙ�!œ2Ÿ8™8 Q¨ FÓ+´"·(±(¸A¸q¸6Ó2BÔ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ã Ý *ß C× CÑ C÷.÷ .÷ .ã Û Ý òÐ ò
Ð ð 	ðÐ ð ðÐ ò
Nòòòòòòò  ÷ #:ñ #:ôL�Lô ô
�Lô 
÷Kñ K÷&E;ñ E;ôP�]ô ô�]ô ÷(Iñ (IôV�]ô ô�]ô ÷4Jñ 4Jôt�nô ô�nô ÷Cñ C÷$>4ñ >4÷BU,ñ U,÷p*-ñ *-÷Z<ñ <÷ñ ÷h(ñ h(ðV ‡�×Ñ˜ $¨¨tÐ!4Ó5ñ!ó 6ñ!r,   