ó
    �œ‘hËa  ã                   ó*  • S SK r S SKrS SKrS SKrS SKJr  S SKJrJ	r	J
r
Jr  S r " S S5      r " S S5      r\R                  R!                  S	\R"                  \R$                  \R&                  \R(                  /5      \R                  R!                  S
SS/5      \R                  R!                  S\R*                  R*                  \R*                  R,                  \R*                  R.                  \R*                  R0                  \R*                  R2                  \R*                  R4                  /5      S 5       5       5       r\R                  R!                  S
SS/5      \R                  R!                  S/ SQ5      S 5       5       r\R                  R;                  \SS9 " S S5      5       rS rS r \R                  R!                  S\R*                  R*                  \R*                  R0                  \R*                  RB                  \R*                  RD                  /5      \R                  R!                  S\RF                  " / SQ5      \RH                  " S\RJ                  S9\RH                  " S\RL                  S9/5      S 5       5       r'g)é    N)Úrandom)ÚIS_WASMÚassert_allcloseÚassert_array_equalÚassert_raisesc                 ó  • [        U 5      nS[        R                  -  [        R                  " U5      U-  -  n[        R                  " U5      R	                  SS5      U-  n[        R
                  " U [        R                  " U5      -  SS9$ )Ny       €       Àéÿÿÿÿé   ©Úaxis)ÚlenÚnpÚpiÚarangeÚreshapeÚsumÚexp)ÚxÚLÚphases      ÚbC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/fft/tests/test_pocketfft.pyÚfft1r      sg   € ÜˆA‹€AØ”"—%‘%‰Kœ2Ÿ9š9 Q›<¨!Ñ+Ñ,€EÜ�IŠI�a‹L× Ñ   QÓ'¨%Ñ/€EÜ�6Š6�!”b—f’f˜U“mÑ#¨!Ñ,Ð,ó    c                   ó   • \ rS rSrS rSrg)ÚTestFFTShifté   c                 ó\   • [        [        [        R                  R                  / SQS5        g )N)r
   é   é   r   )r   Ú
ValueErrorr   Úfft)Úselfs    r   Ú
test_fft_nÚTestFFTShift.test_fft_n   s   € Ü”j¤"§&¡&§*¡*ªi¸Õ;r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r#   Ú__static_attributes__r%   r   r   r   r      s   † õ<r   r   c            	       óJ	  • \ rS rSrS r\R                  R                  S\R                  \R                  \R                  /5      S 5       r\R                  R                  S\R                  \R                  \R                  /5      S 5       rS r\R                  R                  SS5      \R                  R                  S\\45      \R                  R                  S	S
5      S 5       5       5       r\R                  R                  SSS/5      S 5       rS r\R                  R                  SS5      S 5       rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"\R                  R                  S!\RF                  RH                  \RF                  RJ                  \RF                  RL                  \RF                  RN                  /5      S" 5       r(\R                  R                  S!\RF                  RH                  \RF                  RJ                  \RF                  RR                  \RF                  RT                  /5      S# 5       r+\R                  R                  S!\RF                  RH                  \RF                  RJ                  \RF                  RL                  \RF                  RN                  /5      S$ 5       r,\R                  R                  S!\RF                  RR                  \RF                  RT                  /5      S% 5       r-\R                  R                  S!\RF                  RH                  \RF                  RJ                  \RF                  RL                  \RF                  RN                  \RF                  RR                  \RF                  RT                  /5      S& 5       r.S' r/\R                  R                  S(/ S)Q5      \R                  R                  S\\45      \R                  R                  S	S
5      S* 5       5       5       r0\R                  R                  S+\RF                  RH                  \RF                  RJ                  \RF                  RL                  /5      S, 5       r1\R                  R                  S-S.S//5      S0 5       r2S1r3g2)3Ú	TestFFT1Dé   c           
      ó¦  • Sn[        U5      S[        U5      -  -   n[        U5      n[        SU5       Hš  n[        [        R                  R                  [        R                  R	                  USU 5      5      USU SS9  [        [        R                  R                  [        R                  R                  USU 5      U5      USU SS9  Mœ     g )Ni   ù              ð?r
   r   gê-�™—q=©Úatol)r   Úranger   r   r!   ÚifftÚirfftÚrfft)r"   Úmaxlenr   ÚxrÚis        r   Útest_identityÚTestFFT1D.test_identity   s¤   € ØˆÜ�6‹N˜R¤&¨£.Ñ0Ñ0ˆÜ�F‹^ˆÜ�q˜&Ö!ˆAÜœBŸF™FŸK™K¬¯©¯
©
°1°Q°q°6Ó(:Ó;¸Q¸qÀ¸VØ!&ò(äœBŸF™FŸL™L¬¯©¯©°R¸¸!°WÓ)=¸qÓAØ˜q ˜G¨%ô1ò "r   Údtypec                 óX  • SnS[         R                  " [         R                  " SUS95      -  n[        U5      R	                  U5      S[        U5      R	                  U5      -  -   n[         R
                  " U[         R                  " U5      /5      n[        U5      R	                  U5      n[         R
                  " U[         R                  " U5      /5      n[        SUS-  5       H¿  n[         R                  R                  [         R                  R                  XHS9US9n	U	R                  R                  U:X  d   e[        X•S	U US	S
9  [         R                  R                  [         R                  R                  XhS9US9n
U
R                  U:X  d   e[        X§S	U US	S
9  MÁ     g ©Né   é   ç      ð?©r;   r/   r
   r   ©Únr   ©r1   Úrtol)r   ÚspacingÚarrayr   ÚastypeÚconcatenateÚ
zeros_liker2   r!   r3   Úrealr;   r   r4   r5   )r"   r;   r6   r1   r   Úxxr7   Úxxrr8   Úcheck_cÚcheck_rs              r   Útest_identity_long_shortÚ"TestFFT1D.test_identity_long_short$   sM  € ð ˆØ”2—:’:œbŸhšh r°Ñ7Ó8Ñ8ˆÜ�6‹N×!Ñ! %Ó(¨2´°v³×0EÑ0EÀeÓ0LÑ+LÑLˆÜ�^Š^˜Q¤§¢¨aÓ 0Ð1Ó2ˆÜ�F‹^×"Ñ" 5Ó)ˆÜ�nŠn˜b¤"§-¢-°Ó"3Ð4Ó5ˆÜ�q˜& 1™*Ö%ˆAÜ—f‘f—k‘k¤"§&¡&§*¡*¨Q *Ð"4¸�kÐ:ˆGØ—<‘<×%Ñ%¨Ó.Ð.Ð.Ü˜G¨¨! W°4¸aÒ@Ü—f‘f—l‘l¤2§6¡6§;¡;¨r ;Ð#7¸1�lÐ=ˆGØ—=‘= EÓ)Ð)Ð)Ü˜G¨¨1 X°D¸qÔAò &r   c                 óÀ  • SnS[         R                  " [         R                  " SUS95      -  n[        U5      R	                  U5      S[        U5      R	                  U5      -  -   n[         R
                  " U[         R                  " U5      /5      n[        SUS-  5       GH8  n[         R                  R                  [         R                  R                  XFS9US9nUR                  UR                  :X  d   e[        XuS	U US	S
9  UR                  5       nUS-  S-   n	S	UR                  S	'   US-  S	:X  a  S	UR                  U	S-
  S & [         R
                  " U[         R                  " U5      /5      n
[         R                  R                  [         R                  R                  XFS9US9nUR                  UR                  :X  d   e[        XºS	U	 US	S
9  GM;     g r=   )r   rF   rG   r   rH   rI   rJ   r2   r!   r3   r;   r   ÚcopyÚimagr5   r4   )r"   r;   r6   r1   r   rL   r8   Úcheck_via_cÚyrC   ÚyyÚcheck_via_rs               r   Ú!test_identity_long_short_reversedÚ+TestFFT1D.test_identity_long_short_reversed6   s„  € ð ˆØ”2—:’:œbŸhšh r°Ñ7Ó8Ñ8ˆÜ�6‹N×!Ñ! %Ó(¨2´°v³×0EÑ0EÀeÓ0LÑ+LÑLˆÜ�^Š^˜Q¤§¢¨aÓ 0Ð1Ó2ˆÜ�q˜& 1™*×%ˆAÜŸ&™&Ÿ*™*¤R§V¡V§[¡[° [Ð%8¸A˜*Ð>ˆKØ×$Ñ$¨¯©Ó/Ð/Ð/Ü˜K¨A¨a¨°tÀ!ÒDð —‘“ˆAØ�Q‘˜‘
ˆAØˆA�F‰F�1‰IØ�1‰u˜‹zØ!"�—‘�q˜1‘u�v�Ü—’ ¤B§M¢M°!Ó$4Ð 5Ó6ˆBÜŸ&™&Ÿ+™+¤b§f¡f§l¡l°1 lÐ&:¸a˜+Ð@ˆKØ×$Ñ$¨¯©Ó/Ð/Ð/Ü˜K¨A¨a¨°tÀ!ÕDò &r   c                 óî  • [        S5      S[        S5      -  -   n[        [        U5      [        R                  R	                  U5      SS9  [        [        U5      [        R                  R	                  USS9SS9  [        [        U5      [        R
                  " S5      -  [        R                  R	                  USS9SS9  [        [        U5      S-  [        R                  R	                  US	S9SS9  g )
Né   r/   ç�íµ ÷Æ°>r0   Úbackward©ÚnormÚorthoç      >@Úforward)r   r   r   r   r!   Úsqrt©r"   r   s     r   Útest_fftÚTestFFT1D.test_fftN   s°   € Ü�2‹J˜œf R›j™Ñ(ˆÜœ˜Q›¤§¡§¡¨A£°TÒ:Üœ˜Q›¤§¡§¡¨A°J Ð!?ÀdÒKÜœ˜Q›¤"§'¢'¨"£+Ñ-ÜŸ™Ÿ
™
 1¨7˜
Ð3¸$ò	@äœ˜Q› #™ÜŸ™Ÿ
™
 1¨9˜
Ð5¸Dó	Br   r   ©r   r
   Ú	transpose)TFc                 óê  ^• U4S jnU[         L aN  [        S5      S[        S5      -  -   n[        R                  R                  [        R                  R                  pvO>[        S5      n[        R                  R
                  [        R                  R                  pvU" XSS9nU" U5      n	U" XYUS9n
X©L d   e[        X¨5        U" XƒS9nU[         L a  U	OU" U5      nU" XœUS9nXÜL d   e[        XÛ5        g )Nc                 ó’   >• T(       a*  [         R                  " U R                  5      R                  $ [         R                  " U 5      $ ©N©r   rJ   ÚT©r   ri   s    €r   rJ   Ú3TestFFT1D.test_fft_out_argument.<locals>.zeros_like[   ó.   ø€ ÞÜ—}’} Q§S¡SÓ)×+Ñ+Ð+ä—}’} QÓ'Ð'r   )é
   é   r/   r   )Úoutr   )Úcomplexr   r   r!   r3   r5   r4   r   )r"   r;   ri   r   rJ   rV   r!   r3   Úexpectedrt   ÚresultÚ	expected2Úout2Úresult2s     `           r   Útest_fft_out_argumentÚTestFFT1D.test_fft_out_argumentW   sÐ   ø€ õ	(ð ”GÒÜ�xÓ  2¬¨xÓ(8Ñ#8Ñ8ˆAÜŸ™Ÿ
™
¤B§F¡F§K¡K‘ä�xÓ ˆAÜŸ™Ÿ™¤R§V¡V§\¡\�á�qÑ$ˆÙ˜Ó"ˆÙ�Q dÑ+ˆØŠ}Ðˆ}Ü˜6Ô,á˜Ñ-ˆ	ØœwÒ&‰s©J°yÓ,AˆÙ�s¨4Ñ0ˆØŠÐˆÜ˜7Õ.r   r   r
   c                 ó
  • [        S5      S[        S5      -  -   nUR                  5       n[        R                  R                  X1S9n[        R                  R                  X1US9nXSL d   e[	        XT5        UR                  5       nUS:X  a  US S O
US S 2S S24   n[        R                  R                  USUS9n[        R                  R                  USXS9n	X—L d   e[	        X˜5        US:X  a  [	        USS  USS  5        O[	        US S 2SS 24   US S 2SS 24   5        UR                  5       n
US:X  a  U
S	S  O
U
S S 2S	S 24   nUS:X  a  U
S	S
 O
U
S S 2S	S
24   n[        R                  R                  USUS9n[        R                  R                  USXS9nXìL d   e[	        Xí5        US:X  a%  [	        U
S S	 US S	 5        [	        U
S
S  US
S  5        O<[	        U
S S 2S S	24   US S 2S S	24   5        [	        U
S S 2S
S 24   US S 2S
S 24   5        UR                  5       nUS:X  a  US S O
US S 2S S24   nUS:X  a  US S
 O
US S 2S S
24   n[        R                  R                  US
US9n[        R                  R                  US
UUS9nUUL d   e[	        UU5        US:X  a  [	        US
S  US
S  5        O[	        US S 2S
S 24   US S 2S
S 24   5        UR                  5       nUR
                  n[        R                  R                  UUUS9nUUL d   e[	        UU5        UR                  5       nUS:X  a  US S S2   OUS S 2S S S24   n[        R                  R                  UUUS9nUUL d   e[	        UU5        g )N)rs   rs   r/   r   )r   rt   r   rr   )rC   r   )rC   r   rt   r?   é   r	   )r   rS   r   r!   r   rn   )r"   r   rV   Úy1Ú	expected1Úresult1Úy2ry   rx   rz   Úy3Úy3_selÚout3Ú	expected3Úresult3Úy4Úy4_selÚout4Ú	expected4Úresult4Úy5Úout5Úresult5Úy6Úout6Úresult6s                             r   Útest_fft_inplace_outÚTestFFT1D.test_fft_inplace_outu   so  € ô �8Ó˜r¤F¨8Ó$4Ñ4Ñ4ˆà�V‰V‹XˆÜ—F‘F—J‘J˜r�JÐ-ˆ	Ü—&‘&—*‘*˜R°�*Ð3ˆØŠ}Ðˆ}Ü˜7Ô.à�V‰V‹XˆØ !›)ˆr�#�2‰w¨ªA¨s°¨s¨F©ˆÜ—F‘F—J‘J˜r R¨d�JÐ3ˆ	Ü—&‘&—*‘*˜R 2¨D�*Ð;ˆØŠÐˆÜ˜7Ô.Ø�1‹9Ü˜r " #˜w¨¨"¨#¨Õ/ä˜r¢! R¡S &™z¨1ªQ°±¨V©9Ô5à�V‰V‹XˆØ 1›9��A�B‘¨"ªQ°±¨U©)ˆØ 1›9ˆr�!�B‰x¨"ªQ°°"°¨W©+ˆÜ—F‘F—J‘J˜v¨°$�JÐ7ˆ	Ü—&‘&—*‘*˜V r°�*Ð?ˆØŠÐˆÜ˜7Ô.Ø�1‹9Ü˜r " 1˜v q¨¨! uÔ-Ü˜r " #˜w¨¨"¨#¨Õ/ä˜r¢! R a R %™y¨!ªA¨r°¨r¨E©(Ô3Ü˜r¢! R¡S &™z¨1ªQ°±¨V©9Ô5à�V‰V‹XˆØ  A›I��C�R‘¨2ªa°°"°¨f©:ˆØ !›)ˆr�#�2‰w¨ªA¨s°¨s¨F©ˆÜ—F‘F—J‘J˜v¨°$�JÐ7ˆ	Ü—&‘&—*‘*˜V r°¸$�*Ð?ˆØ˜$ŠÐˆÜ˜7 IÔ.Ø�1‹9Ü˜r " #˜w¨¨"¨#¨Õ/ä˜r¢! R¡S &™z¨1ªQ°±¨V©9Ô5à�V‰V‹XˆØ�t‰tˆÜ—&‘&—*‘*˜R d°�*Ð5ˆØ˜$ŠÐˆÜ˜7 IÔ.à�V‰V‹XˆØ 1›9ˆr‘$�B�$Šx¨"ªQ±°"°¨W©+ˆÜ—&‘&—*‘*˜R d°�*Ð5ˆØ˜$ŠÐˆÜ˜7 IÕ.r   c           	      óŒ  • [         R                  " S5      n[        R                  " [        SS9   [         R
                  R                  USS9  S S S 5        [        R                  " [        SS9   [         R
                  R                  U[         R                  " U5      R                  SS5      S9  S S S 5        [        R                  " [        S	S9   [         R
                  R                  U[         R                  " U[        S
9S9  S S S 5        g ! , (       d  f       NÊ= f! , (       d  f       Nw= f! , (       d  f       g = f)Nrb   zmust be of ArrayType©ÚmatchÚ )rt   úhas wrong shaper?   r	   zCannot castrA   )
r   r   ÚpytestÚraisesÚ	TypeErrorr!   r    rJ   r   Úfloatre   s     r   Útest_fft_bad_outÚTestFFT1D.test_fft_bad_out±   sÄ   € Ü�IŠI�c‹NˆÜ�]Š]œ9Ð,BÓCÜ�F‰F�J‰J�q˜bˆJÑ!÷ Dä�]Š]œ:Ð->Ó?Ü�F‰F�J‰J�qœbŸmšm¨AÓ.×6Ñ6°q¸"Ó=ˆJÑ>÷ @ä�]Š]œ9¨MÓ:Ü�F‰F�J‰J�qœbŸmšm¨A´UÑ;ˆJÑ<÷ ;Ð:÷	 DÕCúç?Õ?úç:Õ:ús$   °DÁ0AD$Ã6D5Ä
D!Ä$
D2Ä5
Er`   ©Nr^   ra   rc   c           
      ó^  • [        S5      S[        S5      -  -   n[        U[        R                  R	                  [        R                  R                  X!S9US9SS9  [
        R                  " [        SS9   [        R                  R	                  / US9  S S S 5        g ! , (       d  f       g = f)Nr\   r/   r_   r]   r0   z!Invalid number of FFT data pointsr–   )r   r   r   r!   r3   rš   r›   r    )r"   r`   r   s      r   Ú	test_ifftÚTestFFT1D.test_ifftº   sƒ   € ä�2‹J˜œf R›j™Ñ(ˆÜØŒr�v‰v�{‰{œ2Ÿ6™6Ÿ:™: a˜:Ð3¸$ˆ{Ð?Øò	ô �]Š]œ:Ø!DóFä�F‰F�K‰K˜ ˆKÑ&÷F÷ Fö Fús   Á6BÂ
B,c           	      óÄ  • [        S5      S[        S5      -  -   n[        [        R                  R                  [        R                  R                  USS9SS9[        R                  R	                  U5      SS9  [        [        R                  R	                  U5      [        R                  R	                  USS	9SS9  [        [        R                  R	                  U5      [        R
                  " S
5      -  [        R                  R	                  USS	9SS9  [        [        R                  R	                  U5      S-  [        R                  R	                  USS	9SS9  g ©N©r\   rs   r/   r
   r   r   r]   r0   r^   r_   éX  ra   ç     À‚@rc   )r   r   r   r!   Úfft2rd   re   s     r   Ú	test_fft2ÚTestFFT1D.test_fft2Å   sò   € Ü�8Ó˜r¤F¨8Ó$4Ñ4Ñ4ˆÜœŸ™Ÿ
™
¤2§6¡6§:¡:¨a°a :Ð#8¸q˜
ÐAÜŸ™Ÿ™ A›¨Tò	3äœŸ™Ÿ™ A›ÜŸ™Ÿ™ A¨J˜Ð7¸dò	DäœŸ™Ÿ™ A›¬¯ª°Ó)9Ñ9ÜŸ™Ÿ™ A¨G˜Ð4¸4ò	AäœŸ™Ÿ™ A›¨)Ñ4ÜŸ™Ÿ™ A¨I˜Ð6¸Tó	Cr   c           	      óÄ  • [        S5      S[        S5      -  -   n[        [        R                  R	                  [        R                  R	                  USS9SS9[        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  USS	9SS9  [        [        R                  R                  U5      [        R                  " S
5      -  [        R                  R                  USS	9SS9  [        [        R                  R                  U5      S-  [        R                  R                  USS	9SS9  g r¥   )r   r   r   r!   r3   Úifft2rd   re   s     r   Ú
test_ifft2ÚTestFFT1D.test_ifft2Ð   sò   € Ü�8Ó˜r¤F¨8Ó$4Ñ4Ñ4ˆÜœŸ™Ÿ™¤B§F¡F§K¡K°¸ KÐ$:À˜ÐCÜŸ™Ÿ™ Q›¨dò	4äœŸ™Ÿ™ Q›ÜŸ™Ÿ™ Q¨Z˜Ð8¸tò	EäœŸ™Ÿ™ Q›¬"¯'ª'°'Ó*:Ñ:ÜŸ™Ÿ™ Q¨W˜Ð5¸Dò	BäœŸ™Ÿ™ Q›¨9Ñ5ÜŸ™Ÿ™ Q¨Y˜Ð7¸dó	Dr   c                 óü  • [        S5      S[        S5      -  -   n[        [        R                  R                  [        R                  R                  [        R                  R                  USS9SS9SS9[        R                  R	                  U5      SS9  [        [        R                  R	                  U5      [        R                  R	                  US	S
9SS9  [        [        R                  R	                  U5      [        R
                  " S5      -  [        R                  R	                  USS
9SS9  [        [        R                  R	                  U5      S-  [        R                  R	                  USS
9SS9  g ©N©r\   rs   rr   r/   r   r   r
   r   r]   r0   r^   r_   ép  ra   ç     p·@rc   )r   r   r   r!   Úfftnrd   re   s     r   Ú	test_fftnÚTestFFT1D.test_fftnÛ   s  € Ü�<Ó  2¬¨|Ó(<Ñ#<Ñ<ˆÜÜ�F‰F�J‰J”r—v‘v—z‘z¤"§&¡&§*¡*¨Q°Q *Ð"7¸a�zÐ@ÀqˆJÐIÜ�F‰F�K‰K˜‹N ò	'ô 	œŸ™Ÿ™ A›ÜŸ™Ÿ™ A¨J˜Ð7¸dò	DäœŸ™Ÿ™ A›¬¯ª°Ó)>Ñ>ÜŸ™Ÿ™ A¨G˜Ð4¸4ò	AäœŸ™Ÿ™ A›¨/Ñ:ÜŸ™Ÿ™ A¨I˜Ð6¸Tó	Cr   c                 óü  • [        S5      S[        S5      -  -   n[        [        R                  R	                  [        R                  R	                  [        R                  R	                  USS9SS9SS9[        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  US	S
9SS9  [        [        R                  R                  U5      [        R                  " S5      -  [        R                  R                  USS
9SS9  [        [        R                  R                  U5      S-  [        R                  R                  USS
9SS9  g r±   )r   r   r   r!   r3   Úifftnrd   re   s     r   Ú
test_ifftnÚTestFFT1D.test_ifftnç   s  € Ü�<Ó  2¬¨|Ó(<Ñ#<Ñ<ˆÜÜ�F‰F�K‰KœŸ™Ÿ™¤B§F¡F§K¡K°¸ KÐ$:À˜ÐCÈ!ˆKÐLÜ�F‰F�L‰L˜‹O $ò	(ô 	œŸ™Ÿ™ Q›ÜŸ™Ÿ™ Q¨Z˜Ð8¸tò	EäœŸ™Ÿ™ Q›¬"¯'ª'°,Ó*?Ñ?ÜŸ™Ÿ™ Q¨W˜Ð5¸Dò	BäœŸ™Ÿ™ Q›¨?Ñ;ÜŸ™Ÿ™ Q¨Y˜Ð7¸dó	Dr   c                 óÌ  • [        S5      nUR                  SUR                  -  4 GH9  nS HO  n[        [        R                  R	                  XUS9S US-  S-    [        R                  R                  XUS9SS9  MQ     [        [        R                  R                  XS9[        R                  R                  XS	S9SS9  [        [        R                  R                  XS9[        R                  " U5      -  [        R                  R                  XS
S9SS9  [        [        R                  R                  XS9U-  [        R                  R                  XSS9SS9  GM<     g )Nr\   r   r    ©rC   r`   r
   r]   r0   rB   r^   ra   rc   )r   Úsizer   r   r!   r5   rd   )r"   r   rC   r`   s       r   Ú	test_rfftÚTestFFT1D.test_rfftó   s  € Ü�2‹JˆØ—&‘&˜!˜aŸf™f™*Ô%ˆAÛ>�ÜÜ—F‘F—J‘J˜q¨D�JÐ1°-°A¸±F¸Q±JÐ@Ü—F‘F—K‘K ¨T�KÐ2¸ô?ñ ?ô Ü—‘—‘˜A�Ð#Ü—‘—‘˜A¨�Ð4¸4òAô Ü—‘—‘˜A�Ð#¤b§g¢g¨a£jÑ0Ü—‘—‘˜A¨�Ð1¸ò>ô Ü—‘—‘˜A�Ð# aÑ'Ü—‘—‘˜A¨�Ð3¸$õ@ò &r   c                 óÚ   • [         R                  " S5      nSn[         R                  R                  X5      n[	        U[         R                  R                  US U 5      S US-  S-    SS9  g )Né   é   r   r
   ç›+¡†›„=©rE   )r   r   r!   r5   r   )r"   r   rC   rV   s       r   Útest_rfft_evenÚTestFFT1D.test_rfft_even  sT   € Ü�IŠI�a‹LˆØˆÜ�F‰F�K‰K˜ÓˆÜ˜œ2Ÿ6™6Ÿ:™: a¨¨ eÓ,¨[¨a°1©f°q©jÐ9ÀÓFr   c                 óÈ   • [         R                  " / SQ5      n[         R                  R                  U5      n[	        U[         R                  R                  U5      S S SS9  g )N)r
   r   r   r   éýÿÿÿr   rÄ   rÅ   )r   rG   r!   r5   r   )r"   r   rV   s      r   Útest_rfft_oddÚTestFFT1D.test_rfft_odd
  sA   € Ü�HŠHÒ%Ó&ˆÜ�F‰F�K‰K˜‹NˆÜ˜œ2Ÿ6™6Ÿ:™: a›=¨¨!Ð,°5Ó9r   c           
      ó6  • [        S5      n[        U[        R                  R	                  [        R                  R                  U5      5      SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  g )Nr\   r]   r0   r^   r_   ra   rc   )r   r   r   r!   r4   r5   re   s     r   Ú
test_irfftÚTestFFT1D.test_irfft  sÕ   € Ü�2‹JˆÜ˜œ2Ÿ6™6Ÿ<™<¬¯©¯©°A«Ó7¸dÒCÜ˜œ2Ÿ6™6Ÿ<™<¬¯©¯©°A¸J¨Ð(GØ'ð (ð )Ø/3ò	5ä˜œ2Ÿ6™6Ÿ<™<¬¯©¯©°A¸G¨Ð(DØ$ð (ð &Ø,0ò	2ä˜œ2Ÿ6™6Ÿ<™<¬¯©¯©°A¸I¨Ð(FØ&ð (ð (Ø.2ó	4r   c                 ó‚  • [        S5      n[        [        R                  R	                  U5      S S 2S S24   [        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  USS9SS9  [        [        R                  R                  U5      [        R                  " S5      -  [        R                  R                  USS9SS9  [        [        R                  R                  U5      S	-  [        R                  R                  US
S9SS9  g )Nr¦   é   r]   r0   r^   r_   r§   ra   r¨   rc   )r   r   r   r!   r©   Úrfft2rd   re   s     r   Ú
test_rfft2ÚTestFFT1D.test_rfft2  s×   € Ü�8ÓˆÜœŸ™Ÿ™ A›¢q¨#¨2¨# vÑ.´·±·±¸Q³ÀdÒKÜœŸ™Ÿ™ Q›ÜŸ™Ÿ™ Q¨Z˜Ð8¸tò	EäœŸ™Ÿ™ Q›¬"¯'ª'°'Ó*:Ñ:ÜŸ™Ÿ™ Q¨W˜Ð5¸Dò	BäœŸ™Ÿ™ Q›¨9Ñ5ÜŸ™Ÿ™ Q¨Y˜Ð7¸dó	Dr   c           
      ó6  • [        S5      n[        U[        R                  R	                  [        R                  R                  U5      5      SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  g )Nr¦   r]   r0   r^   r_   ra   rc   )r   r   r   r!   Úirfft2rÑ   re   s     r   Útest_irfft2ÚTestFFT1D.test_irfft2#  sÖ   € Ü�8ÓˆÜ˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a«Ó9ÀÒEÜ˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a¸j¨Ð)IØ'ð )ð )Ø/3ò	5ä˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a¸g¨Ð)FØ$ð )ð &Ø,0ò	2ä˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a¸i¨Ð)HØ&ð )ð (Ø.2ó	4r   c           
      ó   • [        S5      n[        [        R                  R	                  U5      S S 2S S 2S S24   [        R                  R                  U5      SS9  [        [        R                  R                  U5      [        R                  R                  USS9SS9  [        [        R                  R                  U5      [        R                  " S5      -  [        R                  R                  USS9SS9  [        [        R                  R                  U5      S	-  [        R                  R                  US
S9SS9  [        R                  " S5      n[        R                  R                  USSS9nUR                  S:X  d   e[        R                  R                  [        R                  R                  [        R                  R                  USSS9SSS9SSS9nUR                  S:X  d   e[        X#SS9  g )Nr²   é   r]   r0   r^   r_   r³   ra   r´   rc   )r   r   )r   r   r
   )rr   rs   é(   )ÚaxesÚs)rr   é   r
   rÚ   )r   rC   r   rs   rr   )
r   r   r   r!   rµ   Úrfftnrd   ÚonesÚshaper5   )r"   r   rw   rv   s       r   Ú
test_rfftnÚTestFFT1D.test_rfftn-  sx  € Ü�<Ó ˆÜœŸ™Ÿ™ A›¢qª!¨R¨a¨R xÑ0´"·&±&·,±,¸q³/ÈÒMÜœŸ™Ÿ™ Q›ÜŸ™Ÿ™ Q¨Z˜Ð8¸tò	EäœŸ™Ÿ™ Q›¬"¯'ª'°,Ó*?Ñ?ÜŸ™Ÿ™ Q¨W˜Ð5¸Dò	BäœŸ™Ÿ™ Q›¨?Ñ;ÜŸ™Ÿ™ Q¨Y˜Ð7¸dò	Dô �GŠG�F‹OˆÜ—‘—‘˜a i°<�Ð@ˆØ�|‰|˜xÓ'Ð'Ð'Ü—6‘6—:‘:œbŸf™fŸj™j¬¯©¯©°Q¸QÀ"¨Ð)EØ!" bð )ð *Ø01°Rð ð 9ˆà�~‰~ Ó)Ð)Ð)Ü˜¨tÓ4r   c           
      ó6  • [        S5      n[        U[        R                  R	                  [        R                  R                  U5      5      SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  [        U[        R                  R	                  [        R                  R                  USS9SS9SS9  g )Nr²   r]   r0   r^   r_   ra   rc   )r   r   r   r!   ÚirfftnrÞ   re   s     r   Útest_irfftnÚTestFFT1D.test_irfftn?  sÖ   € Ü�<Ó ˆÜ˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a«Ó9ÀÒEÜ˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a¸j¨Ð)IØ'ð )ð )Ø/3ò	5ä˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a¸g¨Ð)FØ$ð )ð &Ø,0ò	2ä˜œ2Ÿ6™6Ÿ=™=¬¯©¯©°a¸i¨Ð)HØ&ð )ð (Ø.2ó	4r   c                 ó:  • [        S5      S[        S5      -  -   n[        R                  " [        S5      U[        S5      45      n[        R                  " X!S S S2   R                  5       45      n[	        [        R
                  R                  U5      [        R
                  R                  U5      SS9  [	        [        R
                  R                  U5      [        R
                  R                  USS9SS9  [	        [        R
                  R                  U5      [        R                  " S	5      -  [        R
                  R                  US
S9SS9  [	        [        R
                  R                  U5      S-  [        R
                  R                  USS9SS9  g )Né   r/   r
   r	   r]   r0   r^   r_   r\   ra   rb   rc   )r   r   rI   Úconjr   r!   Úhfftrd   ©r"   r   Úx_herms      r   Ú	test_hfftÚTestFFT1D.test_hfftI  s  € Ü�2‹J˜œf R›j™Ñ(ˆÜ—’¤¨£¨A¬v°a«yÐ 9Ó:ˆÜ�NŠN˜F¡d¨ d¡G§L¡L£NÐ3Ó4ˆÜœŸ™Ÿ
™
 1›¤r§v¡v§{¡{°6Ó':ÀÒFÜœŸ™Ÿ™ FÓ+ÜŸ™Ÿ™ F°˜Ð<À4ò	IäœŸ™Ÿ™ FÓ+¬b¯gªg°b«kÑ9ÜŸ™Ÿ™ F°˜Ð9Àò	FäœŸ™Ÿ™ FÓ+¨cÑ1ÜŸ™Ÿ™ F°˜Ð;À$ó	Hr   c           
      ó   • [        S5      S[        S5      -  -   n[        R                  " [        S5      U[        S5      45      n[        R                  " X!S S S2   R                  5       45      n[	        U[        R
                  R                  [        R
                  R                  U5      5      SS9  [	        U[        R
                  R                  [        R
                  R                  USS9SS9SS9  [	        U[        R
                  R                  [        R
                  R                  US	S9S	S9SS9  [	        U[        R
                  R                  [        R
                  R                  US
S9S
S9SS9  g )Nrè   r/   r
   r	   r]   r0   r^   r_   ra   rc   )r   r   rI   ré   r   r!   Úihfftrê   rë   s      r   Ú
test_ihfftÚTestFFT1D.test_ihfftU  s4  € Ü�2‹J˜œf R›j™Ñ(ˆÜ—’¤¨£¨A¬v°a«yÐ 9Ó:ˆÜ�NŠN˜F¡d¨ d¡G§L¡L£NÐ3Ó4ˆÜ˜¤§¡§¡¬R¯V©V¯[©[¸Ó-@Ó AÈÒMÜ˜¤§¡§¡¬R¯V©V¯[©[¸Ø'ð .9ð .)Ø/9ð !-ð !;ØAEò	Gä˜¤§¡§¡¬R¯V©V¯[©[¸Ø$ð .9ð .&Ø,3ð !-ð !5Ø;?ò	Aä˜¤§¡§¡¬R¯V©V¯[©[¸Ø&ð .9ð .(Ø.7ð !-ð !9Ø?Có	Er   Úopc                 ó¶   • [        S5      n/ SQnU HD  nU" [        R                  " X$5      5      n[        R                  " U" X$S9U5      n[        XVSS9  MF     g )Nr²   )©r   r
   r   )r   r   r
   )r
   r   r   )r
   r   r   )r   r   r
   )r   r
   r   ©rÛ   r]   r0   )r   r   ri   r   )r"   ró   r   rÛ   ÚaÚop_trÚtr_ops          r   Ú	test_axesÚTestFFT1D.test_axesa  sN   € ô �<Ó ˆÚQˆÛˆAÙ”r—|’| AÓ)Ó*ˆEÜ—L’L¡ A¡°Ó2ˆEÜ˜E¨tÔ4ò r   c                 ó€   • [         R                  " S5      R                  SS5      nU" USSS9R                  S:X  d   eg )Néd   rr   ©r	   r?   rh   ©rÜ   rÛ   )rr   r?   )r   r   r   rà   ©r"   ró   r   s      r   Útest_s_negative_1ÚTestFFT1D.test_s_negative_1k  s;   € ô �IŠI�c‹N×"Ñ" 2 rÓ*ˆá�!�w VÑ,×2Ñ2°gÓ=Ð=Ñ=r   c                 óº   • [         R                  " S5      R                  SS5      n[        R                  " SS9   U" USS9  S S S 5        g ! , (       d  f       g = f)Nrý   rr   ú"`axes` should not be `None` if `s`r–   rþ   )rÜ   ©r   r   r   rš   Úwarnsr   s      r   Útest_s_axes_noneÚTestFFT1D.test_s_axes_noner  sB   € ô �IŠI�c‹N×"Ñ" 2 rÓ*ˆÜ�\Š\Ð DÓEÙˆq�GÒ÷ F×EÖEús   »AÁ
Ac                 ó¼   • [         R                  " S5      R                  SS5      n[        R                  " SS9   U" USS S9  S S S 5        g ! , (       d  f       g = f)Nrý   rr   r  r–   rþ   rÿ   r  r   s      r   Útest_s_axes_none_2DÚTestFFT1D.test_s_axes_none_2Dy  sB   € ä�IŠI�c‹N×"Ñ" 2 rÓ*ˆÜ�\Š\Ð DÓEÙˆq�G $Ò'÷ F×EÖEús   »	AÁ
Ac                 ó†   • [        S5      n[        R                  " SS9   U" USSS9  S S S 5        g ! , (       d  f       g = f)Nr²   z%array containing `None` values to `s`r–   )rr   Nrr   rõ   rÿ   )r   rš   r  r   s      r   Útest_s_contains_noneÚTestFFT1D.test_s_contains_none  s4   € ô �<Ó ˆÜ�\Š\Ð GÓHÙˆq�N¨Ò3÷ I×HÖHús	    	2²
A c           	      ó„  • [        S5      n[        R                  R                  U5      nUR                  S-  n[        R
                  R
                  [        R
                  R                  4[        R
                  R                  [        R
                  R                  4[        R
                  R                  [        R
                  R                  4/nU Hf  u  pVUR                  SUR                  -  4 HB  nS H9  nU" XUS9nU" XƒUS9n[        U[        R                  R                  U5      SS9  M;     MD     Mh     g )Nr\   r   r    r½   r]   r0   )r   r   Úlinalgr`   r¾   r!   r3   r5   r4   rð   rê   r   )	r"   r   Úx_normrC   Ú
func_pairsÚforwÚbackr`   Útmps	            r   Útest_all_1d_norm_preservingÚ%TestFFT1D.test_all_1d_norm_preserving‡  sä   € ä�2‹JˆÜ—‘—‘ Ó"ˆØ�F‰F�Q‰JˆÜ—v‘v—z‘z¤2§6¡6§;¡;Ð/Ü—v‘v—{‘{¤B§F¡F§L¡LÐ1ô —v‘v—|‘|¤R§V¡V§[¡[Ð1ð	ˆ
ó %‰JˆDØ—f‘f˜a !§&¡&™jÓ)�ÛB�DÙ˜q¨DÑ1�CÙ˜s¨dÑ3�CÜ# FÜ$&§I¡I§N¡N°3Ó$7¸dôDó Có *ò %r   rÛ   )rh   ©r   r   Nc                 óê  ^• U4S jnU[         L aN  [        S5      S[        S5      -  -   n[        R                  R                  [        R                  R
                  pvO>[        S5      n[        R                  R                  [        R                  R                  pvU" XSS9nU" U5      n	U" XYUS9n
X©L d   e[        X¨5        U" XƒS9nU[         L a  U	OU" U5      nU" XœUS9nXÜL d   e[        XÛ5        g )Nc                 ó’   >• T(       a*  [         R                  " U R                  5      R                  $ [         R                  " U 5      $ rl   rm   ro   s    €r   rJ   Ú4TestFFT1D.test_fftn_out_argument.<locals>.zeros_likež  rq   r   ©rr   r?   rÙ   r/   rö   )rt   rÛ   )	ru   r   r   r!   rµ   r¹   rÞ   rä   r   )r"   r;   ri   rÛ   rJ   r   r!   r3   rv   rt   rw   rx   ry   rz   s     `           r   Útest_fftn_out_argumentÚ TestFFT1D.test_fftn_out_argumentš  sÐ   ø€ õ	(ð ”GÒÜ�zÓ" R¬&°Ó*<Ñ%<Ñ<ˆAÜŸ™Ÿ™¤R§V¡V§\¡\‘ä�zÓ"ˆAÜŸ™Ÿ™¤b§f¡f§m¡m�á�qÑ$ˆÙ˜Ó"ˆÙ�Q dÑ+ˆØŠ}Ðˆ}Ü˜6Ô,á˜Ñ-ˆ	ØœwÒ&‰s©J°yÓ,AˆÙ�s¨4Ñ0ˆØŠÐˆÜ˜7Õ.r   r!   c                 óš  • U[         R                  R                  L a  [        S5      nO[        S5      S[        S5      -  -   n[        R
                  " [        SS9   U" U[         R                  " U5      SSS9  S S S 5        SnU" X#SS	9n[         R                  " U5      nU" X#SUS
9nXeL d   e[        Xd5        g ! , (       d  f       NG= f)Nr  r/   r™   r–   ©r   r   r   rõ   )rt   rÜ   rÛ   )rr   r?   r?   rÿ   ©rÜ   rÛ   rt   )	r   r!   rÞ   r   rš   r›   r    rJ   r   )r"   r!   r   rÜ   rv   rt   rw   s          r   Útest_fftn_out_and_s_interactionÚ)TestFFT1D.test_fftn_out_and_s_interaction¸  s®   € ð ”"—&‘&—,‘,ÒÜ�zÓ"‰Aä�zÓ" R¬&°Ó*<Ñ%<Ñ<ˆAÜ�]Š]œ:Ð->Ó?Ù�”r—}’} QÓ'¨9¸9ÒE÷ @ð ˆÙ�q IÑ.ˆÜ�mŠm˜HÓ%ˆÙ�Q )°Ñ5ˆØŠ}Ðˆ}Ü˜6Õ,÷ @Õ?ús   ÁB<Â<
C
rÜ   )é	   r?   r?   r   c                 ó   • [        S5      S[        S5      -  -   n[        R                  R                  X!SS9n[        R                  " U5      n[        R                  R                  X!SUS9nXTL d   e[        XS5        g )N)r$  r?   rÙ   r   r/   rõ   rÿ   r!  )r   r   r!   rä   rJ   r   )r"   rÜ   r   rv   rt   rw   s         r   Ú!test_irfftn_out_and_s_interactionÚ+TestFFT1D.test_irfftn_out_and_s_interactionÉ  sk   € ô �<Ó  2¬¨|Ó(<Ñ#<Ñ<ˆÜ—6‘6—=‘= ¨i�=Ð8ˆÜ�mŠm˜HÓ%ˆÜ—‘—‘˜q¨I¸3�Ð?ˆØŠ}Ðˆ}Ü˜6Õ,r   r%   N)4r&   r'   r(   r)   r9   rš   ÚmarkÚparametrizer   ÚsingleÚdoubleÚ
longdoublerP   rY   rf   ru   r�   r{   r“   rž   r¢   rª   r®   r¶   rº   r¿   rÆ   rÊ   rÍ   rÒ   rÖ   rá   rå   rí   rñ   r!   rµ   r¹   rÞ   rä   rú   r©   r­   r  r  r
  r  r  r  r"  r&  r*   r%   r   r   r,   r,      sü  † ò1ð ‡[�[×Ñ˜W r§y¡y°"·)±)¸R¿]¹]Ð&KÓLñBó MðBð" ‡[�[×Ñ˜W r§y¡y°"·)±)¸R¿]¹]Ð&KÓLñEó MðEò.Bð ‡[�[×Ñ˜V VÓ,Ø‡[�[×Ñ˜W w°Ð&6Ó7Ø‡[�[×Ñ˜[¨-Ó8ñ/ó 9ó 8ó -ð/ð6 ‡[�[×Ñ˜V a¨ VÓ,ñ9/ó -ð9/òv=ð ‡[�[×Ñ˜VÐ%KÓLñ'ó Mð'ò	Cò	Dò
Cò
Dò@ò"Gò:ò
4òDò4ò5ò$4ò
Hò
Eð ‡[�[×Ñ˜T B§F¡F§K¡K°·±·±Ø$&§F¡F§L¡L°"·&±&·-±-ð$Aó Bñ5óBð5ð ‡[�[×Ñ˜T B§F¡F§K¡K°·±·±Ø$&§F¡F§K¡K°·±·±ð$?ó @ñ>ó@ð>ð
 ‡[�[×Ñ˜T B§F¡F§K¡K°·±·±Ø$&§F¡F§L¡L°"·&±&·-±-ð$Aó BñóBðð
 ‡[�[×Ñ˜T B§F¡F§K¡K°·±·±Ð#>Ó?ñ(ó @ð(ð
 ‡[�[×Ñ˜T B§F¡F§K¡K°·±·±Ø$&§F¡F§L¡L°"·&±&·-±-Ø$&§F¡F§K¡K°·±·±ð$?ó @ñ4ó@ð4ò
Dð& ‡[�[×Ñ˜VÒ%;Ó<Ø‡[�[×Ñ˜W w°Ð&6Ó7Ø‡[�[×Ñ˜[¨-Ó8ñ/ó 9ó 8ó =ð/ð6 ‡[�[×Ñ˜U R§V¡V§[¡[°"·&±&·,±,ÀÇÁÇÁÐ$MÓNñ-ó Oð-ð  ‡[�[×Ñ˜S 9¨iÐ"8Ó9ñ-ó :ó-r   r,   r;   ÚorderÚFznon-contiguousr!   c                 óT  • [         R                  R                  S5      nUR                  SSS5      R	                  U SS9nS[         R
                  " [         R                  " UR                  5      5      -  [         R                  " UR                  5      R                  -  nUS:X  a  [         R                  " U5      nO$US S S	2   n[         R                  " US S S	2   5      nUR                  R                  S
5      (       a)  [        S5       H  nU" XGS9nU" XgS9n	[!        X‰XUS9  M     g UR                  R                  S5      (       aW  / SQn
UR                  R                  S5      (       a  U
R#                  / SQ5        U
 H  nU" XKS9nU" XkS9n	[!        X‰XUS9  M     g [$        e)Né*   rÂ   é   é   F)rS   g       @r.  r	   r!   r   r   rD   )r©   rµ   )rh   )r
   r   r  rµ   ))r   )r
   )r   Nrö   )r   r   ÚRandomStateÚrandrH   rd   Úlog2r¾   Úfinfor;   ÚepsÚasfortranarrayÚascontiguousarrayr&   Úendswithr2   r   Úextendr    )r;   r-  r!   ÚrngÚXÚ_tolÚYr   ÚX_resÚY_resrÛ   Úaxs               r   Útest_fft_with_orderrC  Õ  s]  € ô �)‰)×
Ñ
 Ó
#€CØ�‰��A�rÓ×!Ñ! %¨eÐ!Ð4€Aà”—’œŸš §¡›Ó)Ñ)¬B¯HªH°Q·W±WÓ,=×,AÑ,AÑA€DØ�ƒ|Ü×Ò˜aÓ ‰ð ‰d�ˆd‰GˆÜ× Ò  ¡4 R 4¡Ó)ˆà
‡|�|×Ñ˜U×#Ñ#Ü˜!–HˆDÙ˜Ñ%ˆEÙ˜Ñ%ˆEÜ˜E¨tÔ?ò ð 
�‰×	Ñ	Ð/×	0Ñ	0Ú'ˆØ�<‰<× Ñ  ×(Ñ(Ø�K‰KÒ0Ô1ÛˆBÙ˜‘OˆEÙ˜‘OˆEÜ˜E¨tÔ?ò ô
 Ðr   ÚCrC   )Nr1  é   c                 ó¦  • [         R                  R                  S5      nUR                  S5      n[         R                  " U[         R
                  U S9n[         R                  R                  X1S9nUR                  R                  UR                  R                  :X  d   eUR                  R                  UR                  R                  :X  d   eg )Nr0  rr   )r;   r-  rB   )
r   r   r3  r4  ÚasarrayÚ	complex64r!   ÚflagsÚc_contiguousÚf_contiguous)r-  rC   r<  r   Úress        r   Útest_fft_output_orderrM  ü  s“   € ô �)‰)×
Ñ
 Ó
#€CØ�‰�‹€AÜ
�
Š
�1œBŸL™L°Ñ6€AÜ
�&‰&�*‰*�Qˆ*Ð
€CØ�9‰9×!Ñ! Q§W¡W×%9Ñ%9Ó9Ð9Ð9Ø�9‰9×!Ñ! Q§W¡W×%9Ñ%9Ó9Ð9Ñ9r   zCannot start thread)Úreasonc                   ó:   • \ rS rSrSrSrS rS rS rS r	S r
S	rg
)ÚTestFFTThreadSafei  r>   )i   éÈ   c                 ó¾  ^• U4S jn[         R                  " 5       nT" U6 n[        U R                  5       Vs/ s H  n[        R
                  " X2U4S9PM     nnU Vs/ s H  oˆR                  5       PM       nU Vs/ s H  oˆR                  5       PM       n[        U R                  5       H  n[        UR                  SS9US5        M     g s  snf s  snf s  snf )Nc                 ó.   >• UR                  T" U 6 5        g rl   )Úput)ÚargsÚqÚfuncs     €r   ÚworkerÚ.TestFFTThreadSafe._test_mtsame.<locals>.worker  s   ø€ Ø�E‰E‘$˜�+Õr   )ÚtargetrU  r?   )Útimeoutz6Function returned wrong value in multithreaded context)
ÚqueueÚQueuer2   ÚthreadsÚ	threadingÚThreadÚstartÚjoinr   Úget)	r"   rW  rU  rX  rV  rv   r8   Útr   s	    `       r   Ú_test_mtsameÚTestFFTThreadSafe._test_mtsame  s½   ø€ õ	ô �KŠK‹MˆÙ˜�;ˆô ˜DŸL™LÔ)ó+Ú)�ô ×Ò V¸°)Ô<Ù)ð 	
ð +áÓšA�q�‰Ž™AÑáÓš1�a�‰Ž™1Ñä�t—|‘|Ö$ˆAÜ˜qŸu™u¨Q˜uÐ/°ØHöJò %ùò+ùâùâs   ¹ CÁCÁ>Cc                 ó¤   • [         R                  " U R                  5      S-  S-   nU R                  [         R                  R                  U5        g ©Nr
   y                )r   rß   Úinput_shapere  r!   ©r"   r÷   s     r   rf   ÚTestFFTThreadSafe.test_fft  s8   € Ü�GŠG�D×$Ñ$Ó%¨Ñ)¨BÑ.ˆØ×Ñœ"Ÿ&™&Ÿ*™* aÕ(r   c                 ó¤   • [         R                  " U R                  5      S-  S-   nU R                  [         R                  R
                  U5        g rh  )r   rß   ri  re  r!   r3   rj  s     r   r¢   ÚTestFFTThreadSafe.test_ifft!  s8   € Ü�GŠG�D×$Ñ$Ó%¨Ñ)¨BÑ.ˆØ×Ñœ"Ÿ&™&Ÿ+™+ qÕ)r   c                 ó˜   • [         R                  " U R                  5      nU R                  [         R                  R
                  U5        g rl   )r   rß   ri  re  r!   r5   rj  s     r   r¿   ÚTestFFTThreadSafe.test_rfft%  s.   € Ü�GŠG�D×$Ñ$Ó%ˆØ×Ñœ"Ÿ&™&Ÿ+™+ qÕ)r   c                 ó¤   • [         R                  " U R                  5      S-  S-   nU R                  [         R                  R
                  U5        g rh  )r   rß   ri  re  r!   r4   rj  s     r   rÍ   ÚTestFFTThreadSafe.test_irfft)  s8   € Ü�GŠG�D×$Ñ$Ó%¨Ñ)¨BÑ.ˆØ×Ñœ"Ÿ&™&Ÿ,™,¨Õ*r   r%   N)r&   r'   r(   r)   r^  ri  re  rf   r¢   r¿   rÍ   r*   r%   r   r   rP  rP    s&   † à€GØ€KòJò$)ò*ò*õ+r   rP  c                  ó  • [         R                  " S5      n [         R                  R                  U SS9  [         R                  R	                  U SS9  [         R                  R                  [         R
                  " S/[        5      SS9  g )Nrr   r
   rB   r   )r   r   r!   r4   rê   rG   ru   )r   s    r   Útest_irfft_with_n_1_regressionrs  .  sX   € ä
�	Š	�"‹€AÜ‡F�F‡L�L��a€LÑÜ‡F�F‡K�K��Q€KÑÜ‡F�F‡L�L”—’˜1˜#œwÓ'¨2€LÒ.r   c                  ó¸   • [         R                  " S5      S-  n [         R                  R                  U SS9n[         R                  " / SQ5      n[        X5        g )Nr?   y      ð?      ð?rr   rB   )
g      4@gk‹ á"Õ#@g�´§‰Ã'Àg$ pn]k@gÝìr¾–Àg      @gG&ƒÒ ÀgdèÆ�Ä¿gt =Mþ?gö@L>MÜ4À)r   r   r!   rê   rG   r   )r   rw   rv   s      r   Ú"test_irfft_with_n_large_regressionru  6  sG   € ä
�	Š	�!‹˜Ñ€AÜ�V‰V�[‰[˜˜bˆ[Ð!€FÜ�xŠxò 2ó 3€Hô �FÕ%r   Údata)FTFrr   rA   r?   c                 ó†   • U" U 5      nU R                  [        R                  " U S5      5      nU" U5      n[        X$5        g )Nr@   )rH   r   Úresult_typer   )rv  r!   rw   Ú
float_datarv   s        r   Ú#test_fft_with_integer_or_bool_inputrz  @  s7   € ñ �‹Y€FØ—‘œRŸ^š^¨D°"Ó5Ó6€JÙ�:‹€HÜ�vÕ(r   )(r\  r_  rš   Únumpyr   Únumpy.randomr   Únumpy.testingr   r   r   r   r   r   r,   r(  r)  Úfloat32Úfloat64rH  Ú
complex128r!   r©   rµ   r3   r­   r¹   rC  rM  ÚskipifrP  rs  ru  r5   r4   rG   r   Úuint8Úint16rz  r%   r   r   Ú<module>r„     s  ðÛ Û ã ã Ý ß UÓ Uò-÷<ñ <÷z-ñ z-ðz ‡�×ÑØØ	�‰�R—Z‘Z §¡¨r¯}©}Ð=ó?ð ‡�×Ñ˜ 3Ð(8Ð"9Ó:Ø‡�×ÑØØ	�‰�‰�R—V‘V—[‘[ "§&¡&§+¡+Ø	�‰�‰�b—f‘f—l‘l B§F¡F§L¡Lð	2ó3ñó	3ó ;ó?ðð> ‡�×Ñ˜ 3¨ *Ó-Ø‡�×Ñ˜šmÓ,ñ:ó -ó .ð:ð ‡�×Ñ�GÐ$9ÐÐ:÷$+ð $+ó ;ð$+òN/ò&ð ‡�×Ñ˜Ø‡F�F‡J�J�—‘—‘˜RŸV™VŸ[™[¨"¯&©&¯,©,ð!ó ð ‡�×Ñ˜Ø‡H‚HÒ!Ó"Ø‡I‚Iˆb˜Ÿ™Ñ!Ø‡I‚Iˆa�r—x‘xÑ ð"ó ñ
)óóñ)r   