Ë
    âQ(hïP  ã                   ó"  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZmZmZ eej,                  j/                  d«      gZej,                  j2                  Zd„ Zd	„ Z G d
„ d«      Z ed¬«      ej,                  j;                  dej<                  ej>                  ej@                  ejB                  ejD                  ejF                  g«      ej,                  j;                  dddg«      ej,                  j;                  dej                  ejH                  ejJ                  ejL                  ejN                  ejP                  g«      d„ «       «       «       «       Z) ed¬«       G d„ d«      «       Z* ed¬«      ej,                  j;                  dej                  ejL                  ejV                  ejX                  g«      d„ «       «       Z- G d„ d«      Z.ej,                  j;                  dej                  ejL                  ejV                  ejX                  ejJ                  ejP                  ej^                  ej`                  ejb                  ejd                  g
«      d„ «       Z3ej,                  j;                  dddg«      ej,                  j;                  dej                  ejL                  ejX                  ejJ                  ejP                  ej`                  ejb                  g«      d„ «       «       Z4y)é    N)Úrandom)Úassert_array_almost_equalÚassert_allclose)Úraises)Úarray_api_compatible)Úarray_namespaceÚxp_sizeÚxp_assert_closeÚxp_assert_equalÚskip_xp_backendsc                 ó‚  — | t         j                   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  fv r|j                  }|S | t         j                  t         j                  t         j                  t         j                   t         j"                  t         j$                  fv r|j&                  }|S t)        d| › �«      ‚)NzUnknown FFT function: )ÚfftÚfftnÚfft2ÚifftÚifftnÚifft2ÚhfftÚhfftnÚhfft2ÚirfftÚirfftnÚirfft2Ú
complex128ÚrfftÚrfftnÚrfft2ÚihfftÚihfftnÚihfft2Úfloat64Ú
ValueError)ÚfuncÚxpÚdtypes      úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/fft/tests/test_basic.pyÚget_expected_input_dtyper'      sÅ   € Ø”—‘œŸ™¤3§8¡8Ü—‘œ#Ÿ)™)¤S§Y¡YÜ—‘œ#Ÿ)™)¤S§Y¡YÜ—	‘	œ3Ÿ:™:¤s§z¡zð3ñ 3ð —‘ˆð €Lð 
”#—(‘(œCŸI™I¤s§y¡yÜ—)‘)œSŸZ™Z¬¯©ð5ñ 
5à—
‘
ˆð €Lô Ð1°$°Ð8Ó9Ð9ó    c                 ó,  — t        | «      }dt        j                  z  t        j                  |«      t	        |«      z  z  }t        j                  |«      j                  dd«      |z  }t        j                  | t        j                  |«      z  d¬«      S )Ny       €       Àéÿÿÿÿé   ©Úaxis)ÚlenÚnpÚpiÚarangeÚfloatÚreshapeÚsumÚexp)ÚxÚLÚphases      r&   Úfft1r9   %   sj   € ÜˆA‹€AØ”—‘‰I”r—y‘y “|¤E¨!£HÑ,Ñ-€EÜ�I‰I�a‹L× Ñ   QÓ'¨%Ñ/€EÜ�6‰6�!”B—F‘F˜5“M‘/¨Ô*Ð*r(   c                   óh  — e Zd Zd„ Z edd¬«      d„ «       Zd„ Z edd¬«      d„ «       Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej6                  j9                  dej<                  ej>                  ej@                  ejB                  g«      d„ «       Z"ej6                  j9                  dejF                  ejH                  g«      d„ «       Z%ej6                  j9                  dej<                  ej>                  ej@                  ejB                  g«      d„ «       Z&ej6                  j9                  dejN                  ejP                  ejR                  ejT                  ejV                  ejX                  ejF                  ejH                  g«      d„ «       Z-d „ Z. ed¬!«      ej6                  j9                  d"e/j`                  e/jb                  g«      d#„ «       «       Z2ej6                  j9                  d"d$d%g«      d&„ «       Z3ej6                  j9                  d"d'd(g«      d)„ «       Z4 edd*¬«      ej6                  j9                  dej:                  ejj                  ejN                  ejP                  ej<                  ej>                  ejl                  ejn                  ejR                  ejT                  ej@                  ejB                  ejp                  ejr                  ejV                  ejX                  ejF                  ejH                  g«      d+„ «       «       Z:y,)-ÚTestFFTc           
      ó~  — d}|j                  t        |«      dt        |«      z  z   «      }|j                  t        |«      «      }dD ]s  }t        t        j                  t        j                  |d| «      «      |d| «       t        t        j
                  t        j                  |d| «      |«      |d| «       Œu y )Né   ù              ð?)	r+   é   é   é€   r=   é5   é•   i  i�  r   )Úasarrayr   r
   r   r   r   r   ©Úselfr$   Úmaxlenr6   ÚxrÚis         r&   Útest_identityzTestFFT.test_identity-   s›   € ØˆØ�J‰J”v˜f“~¨¬6°&«>Ñ(9Ñ9Ó:ˆØ�Z‰Zœ˜v›Ó'ˆà8ò 	FˆAÜœCŸH™H¤S§W¡W¨Q¨q°¨V£_Ó5°q¸¸1°vÔ>ÜœCŸI™I¤c§h¡h¨r°!°A¨wÓ&7¸Ó;¸RÀÀ!¸WÕEñ	Fr(   Tz&significant overhead for some backends)Únp_onlyÚreasonc           
      ó’  — d}|j                  t        |«      dt        |«      z  z   «      }|j                  t        |«      «      }t        d|«      D ]s  }t        t	        j
                  t	        j                  |d| «      «      |d| «       t        t	        j                  t	        j                  |d| «      |«      |d| «       Œu y )Nr=   r>   r+   r   )rD   r   Úranger
   r   r   r   r   rE   s         r&   Útest_identity_extensivezTestFFT.test_identity_extensive6   s¢   € àˆØ�J‰J”v˜f“~¨¬6°&«>Ñ(9Ñ9Ó:ˆØ�Z‰Zœ˜v›Ó'ˆÜ�q˜&Ó!ò 	FˆAÜœCŸH™H¤S§W¡W¨Q¨q°¨V£_Ó5°q¸¸1°vÔ>ÜœCŸI™I¤c§h¡h¨r°!°A¨wÓ&7¸Ó;¸RÀÀ!¸WÕEñ	Fr(   c           
      óò  — t        d«      dt        d«      z  z   }|j                  t        |«      «      }|j                  |«      }t        t	        j                  |«      |«       t        t	        j                  |d¬«      |«       t        t	        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t	        j                  |d¬«      |dz  «       y )Né   r>   Úbackward©ÚnormÚortho©r%   Úforward)r   rD   r9   r
   r   Úsqrtr!   ©rF   r$   r6   Úexpects       r&   Útest_fftzTestFFT.test_fft?   s¯   € Ü�2‹J˜œF 2›J™Ñ&ˆØ—‘œD ›GÓ$ˆØ�J‰J�q‹MˆÜœŸ™ ›
 FÔ+ÜœŸ™ ¨
Ô3°VÔ<ÜœŸ™ ¨Ô0Ø §¡¨¯©°B¸b¿j¹j¨Ó)IÓ!JÑJô	MäœŸ™ ¨	Ô2°F¸R±KÕ@r(   zsome backends allow `n=0`c                 ó‚   — |j                  g d¢|j                  ¬«      }t        t        t        j                  |d«       y )N©r+   r?   é   rV   r   )rD   r   Úassert_raisesr"   r   )rF   r$   r6   s      r&   Ú
test_fft_nzTestFFT.test_fft_nI   s*   € à�J‰J’y¨¯©ˆJÓ6ˆÜ”j¤#§'¡'¨1¨aÕ0r(   c           	      ó4  — |j                  t        d«      dt        d«      z  z   «      }t        t        j                  t        j                  |«      «      |«       dD ]8  }t        t        j                  t        j                  ||¬«      |¬«      |«       Œ: y )NrQ   r>   ©rR   rU   rW   rS   )rD   r   r
   r   r   ©rF   r$   r6   rT   s       r&   Ú	test_ifftzTestFFT.test_ifftN   sm   € Ø�J‰J”v˜b“z B¤v¨b£z¡MÑ1Ó2ˆÜœŸ™¤§¡¨£Ó,¨aÔ0Ø4ò 	KˆDÜœCŸH™H¤S§W¡W¨Q°TÔ%:ÀÔFÈÕJñ	Kr(   c           
      ó  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  |d¬«      d¬«      }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d	|j                  ¬
«      «      z  «       t        t        j                  |d¬«      |d	z  «       y ©N©rQ   é   r>   r+   r,   r   rR   rS   rU   éX  rV   rW   )rD   r   r   r
   r   rX   r!   rY   s       r&   Ú	test_fft2zTestFFT.test_fft2T   s¸   € Ø�J‰J”v˜hÓ'¨"¬V°HÓ-=Ñ*=Ñ=Ó>ˆÜ—‘œŸ™ ¨Ô+°!Ô4ˆÜœŸ™ › VÔ,ÜœŸ™ ¨Ô4°fÔ=ÜœŸ™ ¨Ô1Ø §¡¨¯©°GÀ2Ç:Á:¨Ó)NÓ!OÑOô	QäœŸ™ ¨Ô3°V¸wÑ5GÕHr(   c           
      ó  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  |d¬«      d¬«      }t	        t        j
                  |«      |«       t	        t        j
                  |d¬«      |«       t	        t        j
                  |d¬«      ||j                  |j                  d	|j                  ¬
«      «      z  «       t	        t        j
                  |d¬«      |d	z  «       y rf   )rD   r   r   r   r
   r   rX   r!   rY   s       r&   Ú
test_ifft2zTestFFT.test_ifft2]   s¸   € Ø�J‰J”v˜hÓ'¨"¬V°HÓ-=Ñ*=Ñ=Ó>ˆÜ—‘œ#Ÿ(™( 1¨1Ô-°AÔ6ˆÜœŸ	™	 !› fÔ-ÜœŸ	™	 !¨*Ô5°vÔ>ÜœŸ	™	 !¨'Ô2Ø §¡¨¯©°GÀ2Ç:Á:¨Ó)NÓ!OÑOô	QäœŸ	™	 !¨)Ô4°fÀÑ6HÕIr(   c           
      ó<  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  t        j                  |d¬«      d¬«      d¬«      }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d	¬«      ||j                  |j                  d
|j                  ¬«      «      z  «       t        t        j                  |d¬«      |d
z  «       y )N©rQ   rh   é
   r>   r?   r,   r+   r   rR   rS   rU   ép  rV   rW   )rD   r   r   r
   r   rX   r!   rY   s       r&   Ú	test_fftnzTestFFT.test_fftnf   sÃ   € Ø�J‰J”v˜lÓ+¨b´¸Ó1EÑ.EÑEÓFˆÜ—‘œŸ™¤§¡¨°Ô!3¸!Ô<À1ÔEˆÜœŸ™ › VÔ,ÜœŸ™ ¨Ô4°fÔ=ÜœŸ™ ¨Ô1Ø §¡¨¯©°LÈÏ
É
¨Ó)SÓ!TÑTô	VäœŸ™ ¨Ô3°V¸|Ñ5LÕMr(   c           
      ón  — |j                  t        d«      dt        d«      z  z   «      }t        j                  t        j                  t        j                  |d¬«      d¬«      d¬«      }t	        t        j
                  |«      |d¬«       t	        t        j
                  |d	¬
«      |d¬«       t	        t        j
                  |d¬
«      t        j
                  |«      |j                  |j                  d|j                  ¬«      «      z  «       t	        t        j
                  |d¬
«      |dz  d¬«       y )Nrn   r>   r?   r,   r+   r   gH¯¼šò×z>)ÚrtolrR   rS   rU   rp   rV   rW   )rD   r   r   r   r
   r   rX   r!   rY   s       r&   Ú
test_ifftnzTestFFT.test_ifftno   s×   € Ø�J‰J”v˜lÓ+¨b´¸Ó1EÑ.EÑEÓFˆÜ—‘œ#Ÿ(™(¤3§8¡8¨A°AÔ#6¸QÔ?ÀaÔHˆÜœŸ	™	 !› f°4Õ8ÜœŸ	™	 !¨*Ô5°vÀDÕIÜÜ�I‰I�a˜gÔ&Ü�I‰I�a‹L˜2Ÿ7™7 2§:¡:¨lÀ"Ç*Á* :Ó#MÓNÑNô	
ô 	œŸ	™	 !¨)Ô4Ø ,Ñ/Ø!ö	#r(   c                 ó  — |j                  t        d«      |j                  ¬«      }t        |«      dt        |«      z  fD ]É  }dD ]^  }t	        t        j                  |||¬«      t        j
                  |j                  ||j                  ¬«      ||¬«      d |dz  dz    «       Œ` t	        t        j                  ||d¬«      t        j                  ||¬«      |j                  |j                  ||j                  ¬«      «      z  «       ŒË y )	Né   rV   r?   )NrR   rU   rW   ©ÚnrT   r+   rU   )rx   )	rD   r   r!   r	   r
   r   r   r   rX   )rF   r$   r6   rx   rT   s        r&   Ú	test_rfftzTestFFT.test_rfft|   sã   € Ø�J‰J”v˜b“z¨¯©ˆJÓ4ˆÜ˜!“*˜a¤¨£
™lÐ+ò 	ˆAØ>ò F�Ü¤§¡¨¨a°dÔ ;Ü #§¡¨¯
©
°1¸B¿M¹M¨
Ó(JØ*+°$ô!8Ø8C¸!¸Q¹$À¹(ð!EõFðFô Ü—‘˜˜a gÔ.Ü—‘˜˜aÔ  2§7¡7¨2¯:©:°a¸r¿z¹z¨:Ó+JÓ#KÑKõñ	r(   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y )NrQ   rb   rS   )rD   r   r
   r   r   r   rc   s       r&   Ú
test_irfftzTestFFT.test_irfftˆ   s`   € Ø�J‰J”v˜b“zÓ"ˆÜœŸ	™	¤#§(¡(¨1£+Ó.°Ô2Ø4ò 	MˆDÜœCŸI™I¤c§h¡h¨q°tÔ&<À4ÔHÈ!ÕLñ	Mr(   c           
      ó&  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d…f   }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y ©	Nrg   rV   é   rR   rS   rU   ri   rW   )	rD   r   r!   r   r   r   r
   r   rX   rY   s       r&   Ú
test_rfft2zTestFFT.test_rfft2Ž   sÂ   € Ø�J‰J”v˜hÓ'¨r¯z©zˆJÓ:ˆÜ—‘˜"Ÿ*™* Q¨b¯m©m˜*Ó<Ó=ºaÀÀ"À¸fÑEˆÜœŸ	™	 !› fÔ-ÜœŸ	™	 !¨*Ô5°vÔ>ÜœŸ	™	 !¨'Ô2Ø §¡¨¯©°GÀ2Ç:Á:¨Ó)NÓ!OÑOô	QäœŸ	™	 !¨)Ô4°fÀÑ6HÕIr(   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y ©Nrg   rb   rS   )rD   r   r
   r   r   r   rc   s       r&   Útest_irfft2zTestFFT.test_irfft2—   sa   € Ø�J‰J”v˜hÓ'Ó(ˆÜœŸ
™
¤3§9¡9¨Q£<Ó0°!Ô4Ø4ò 	OˆDÜœCŸJ™J¤s§y¡y°¸Ô'>ÀTÔJÈAÕNñ	Or(   c           
      ó,  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d …d d…f   }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y ©	Nrn   rV   é   rR   rS   rU   rp   rW   )	rD   r   r!   r   r   r   r
   r   rX   rY   s       r&   Ú
test_rfftnzTestFFT.test_rfftn�   sÄ   € Ø�J‰J”v˜lÓ+°2·:±:ˆJÓ>ˆÜ—‘˜"Ÿ*™* Q¨b¯m©m˜*Ó<Ó=ºaÂÀBÀQÀB¸hÑGˆÜœŸ	™	 !› fÔ-ÜœŸ	™	 !¨*Ô5°vÔ>ÜœŸ	™	 !¨'Ô2Ø §¡¨¯©°LÈÏ
É
¨Ó)SÓ!TÑTô	VäœŸ	™	 !¨)Ô4°fÀÑ6MÕNr(   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y ©Nrn   rb   rS   )rD   r   r
   r   r   r   rc   s       r&   Útest_irfftnzTestFFT.test_irfftn¦   sa   € Ø�J‰J”v˜lÓ+Ó,ˆÜœŸ
™
¤3§9¡9¨Q£<Ó0°!Ô4Ø4ò 	OˆDÜœCŸJ™J¤s§y¡y°¸Ô'>ÀTÔJÈAÕNñ	Or(   c           
      óÒ  — t        d«      dt        d«      z  z   }t        j                  t        d«      |t        d«      f«      }t        j                  ||d d d…   j                  «       f«      }|j	                  |«      }|j	                  |«      }|j                  t        j                  |«      «      }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j	                  d|j                  ¬	«      «      z  «       t        t        j                  |d
¬«      |dz  «       y )Né   r>   r+   r*   rR   rS   rU   rQ   rV   rW   )r   r/   ÚconcatenateÚconjrD   Úrealr   r
   r   rX   r!   )rF   r$   r6   Úx_hermrZ   s        r&   Ú	test_hfftzTestFFT.test_hfft¬   s   € Ü�2‹J˜œF 2›J™Ñ&ˆÜ—‘¤¨£¨A¬v°a«yÐ 9Ó:ˆÜ�N‰N˜F A¡d¨ d¡G§L¡L£NÐ3Ó4ˆØ�J‰J�q‹MˆØ—‘˜FÓ#ˆØ—‘œŸ™ ›Ó$ˆÜœŸ™ Ó(¨&Ô1ÜœŸ™ ¨jÔ9¸6ÔBÜœŸ™ ¨gÔ6Ø §¡¨¯©°B¸b¿j¹j¨Ó)IÓ!JÑJô	LäœŸ™ ¨iÔ8¸&À2¹+ÕFr(   c           	      ó  — t        d«      dt        d«      z  z   }t        j                  t        d«      |t        d«      f«      }t        j                  ||d d d…   j                  «       f«      }|j	                  |«      }|j	                  |«      }t        t        j                  t        j                  |«      «      |«       dD ]8  }t        t        j                  t        j                  ||¬«      |¬«      |«       Œ: y )Nr‹   r>   r+   r*   rb   rS   )	r   r/   rŒ   r�   rD   r
   r   r   r   )rF   r$   r6   r�   rT   s        r&   Ú
test_ihfftzTestFFT.test_ihfft¹   s¾   € Ü�2‹J˜œF 2›J™Ñ&ˆÜ—‘¤¨£¨A¬v°a«yÐ 9Ó:ˆÜ�N‰N˜F A¡d¨ d¡G§L¡L£NÐ3Ó4ˆØ�J‰J�q‹MˆØ—‘˜FÓ#ˆÜœŸ	™	¤#§(¡(¨6Ó"2Ó3°VÔ<Ø4ò 	WˆDÜœCŸI™I¤c§h¡h¨v¸DÔ&AÈÔMÈvÕVñ	Wr(   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y r�   )rD   r   r
   r   r   r    rc   s       r&   Ú
test_hfft2zTestFFT.test_hfft2Ã   sa   € Ø�J‰J”v˜hÓ'Ó(ˆÜœŸ	™	¤#§*¡*¨Q£-Ó0°!Ô4Ø4ò 	OˆDÜœCŸI™I¤c§j¡j°¸Ô&>ÀTÔJÈAÕNñ	Or(   c           
      ó&  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d…f   }t        t        j                  |«      |«       t        t        j                  |d¬«      |«       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y r}   )	rD   r   r!   r   r   r   r
   r    rX   rY   s       r&   Útest_ihfft2zTestFFT.test_ihfft2É   sÄ   € Ø�J‰J”v˜hÓ'¨r¯z©zˆJÓ:ˆÜ—‘˜2Ÿ:™: a¨r¯}©}˜:Ó=Ó>ºqÀ#À2À#¸vÑFˆÜœŸ
™
 1› vÔ.ÜœŸ
™
 1¨:Ô6¸Ô?ÜÜ�J‰J�q˜wÔ'Ø�R—W‘W˜RŸZ™Z¨°r·z±z˜ZÓBÓCÑCô	
ô 	œŸ
™
 1¨9Ô5°vÀÑ7IÕJr(   c           	      ó  — |j                  t        d«      «      }t        t        j                  t        j
                  |«      «      |«       dD ]8  }t        t        j                  t        j
                  ||¬«      |¬«      |«       Œ: y rˆ   )rD   r   r
   r   r   r   rc   s       r&   Ú
test_hfftnzTestFFT.test_hfftnÔ   sa   € Ø�J‰J”v˜lÓ+Ó,ˆÜœŸ	™	¤#§*¡*¨Q£-Ó0°!Ô4Ø4ò 	OˆDÜœCŸI™I¤c§j¡j°¸Ô&>ÀTÔJÈAÕNñ	Or(   c           
      ó,  — |j                  t        d«      |j                  ¬«      }t        j                  |j                  ||j
                  ¬«      «      d d …d d …d d…f   }t        |t        j                  |«      «       t        |t        j                  |d¬«      «       t        t        j                  |d¬«      ||j                  |j                  d|j                  ¬«      «      z  «       t        t        j                  |d¬«      |dz  «       y r„   )	rD   r   r!   r   r   r   r
   r   rX   rY   s       r&   Útest_ihfftnzTestFFT.test_ihfftnÚ   sÆ   € Ø�J‰J”v˜lÓ+°2·:±:ˆJÓ>ˆÜ—‘˜2Ÿ:™: a¨r¯}©}˜:Ó=Ó>ºqÂ!ÀRÀaÀR¸xÑHˆÜ˜¤§
¡
¨1£Ô.Ü˜¤§
¡
¨1°:Ô >Ô?ÜÜ�J‰J�q˜wÔ'Ø�R—W‘W˜RŸZ™Z¨¸B¿J¹J˜ZÓGÓHÑHô	
ô 	œŸ
™
 1¨9Ô5°vÀÑ7NÕOr(   c                 ó   — t        ||«      }|j                  t        d«      |¬«      }g d¢}t        |«      }|D ]B  } ||j	                  ||¬«      «      }|j	                   |||¬«      |¬«      }	t        ||	«       ŒD y )Nrn   rV   )©r   r+   r?   ©r   r?   r+   )r+   r   r?   ©r+   r?   r   )r?   r   r+   )r?   r+   r   ©Úaxes)r'   rD   r   r   Úpermute_dimsr
   )
rF   Úopr$   r%   r6   r    Úxp_testÚaÚop_trÚtr_ops
             r&   Ú_check_axeszTestFFT._check_axeså   s‚   € Ü(¨¨RÓ0ˆØ�J‰J”v˜lÓ+°5ˆJÓ9ˆÚQˆÜ! !Ó$ˆØò 	*ˆAÙ�w×+Ñ+¨A°AÐ+Ó6Ó7ˆEØ×(Ñ(©¨A°A¬¸QÐ(Ó?ˆEÜ˜E 5Õ)ñ	*r(   r¢   c                 ó(   — | j                  ||«       y ©N©r§   ©rF   r¢   r$   s      r&   Útest_axes_standardzTestFFT.test_axes_standardï   ó   € à×Ñ˜˜RÕ r(   c                 ó(   — | j                  ||«       y r©   rª   r«   s      r&   Útest_axes_non_standardzTestFFT.test_axes_non_standardó   r­   r(   c           
      óÈ  — t        ||«      }|j                  t        d«      |¬«      }g d¢}t        |«      }|D ]¡  }t	        t        |j                  «      D �cg c]*  }||d d v rd|j                  |   z  n|j                  |   ‘Œ, c}«      }	 ||j                  ||¬«      |	d d d¬«      }
|j                   |||	d d |d d ¬«      |¬«      }t        |
|«       Œ£ y c c}w ©N)r@   é   é   rV   )rœ   r�   rž   r?   rŸ   ©r   r+   )Úsr    ©
r'   rD   r   r   ÚtuplerN   ÚndimÚshaper¡   r
   ©rF   r¢   r$   r%   r6   r    r£   r¤   Úaxr¹   r¥   r¦   s               r&   Ú$test_axes_subset_with_shape_standardz,TestFFT.test_axes_subset_with_shape_standard÷   sù   € ô )¨¨RÓ0ˆØ�J‰J”v˜jÓ)°ˆJÓ7ˆÚ0ˆÜ! !Ó$ˆØò 		*ˆAäÜ%*¨1¯6©6£]ö4Ø!ð -/°!°B°Q°%©K˜1˜QŸW™W R™[š=¸Q¿W¹WÀR¹[ÑHò 4ó 5ˆEñ �w×+Ñ+¨A°AÐ+Ó6Ø˜r ˜¨ô1ˆEà×(Ñ(©¨A°°r¸°ÀÀ2ÀAÀÔ)GØ./ð )ó 1ˆEä˜E 5Õ)ñ		*ùò4ó   Á/C
c           
      óÈ  — t        ||«      }|j                  t        d«      |¬«      }g d¢}t        |«      }|D ]¡  }t	        t        |j                  «      D �cg c]*  }||d d v rd|j                  |   z  n|j                  |   ‘Œ, c}«      }	 ||j                  ||¬«      |	d d d¬«      }
|j                   |||	d d |d d ¬«      |¬«      }t        |
|«       Œ£ y c c}w r±   r¶   rº   s               r&   Ú(test_axes_subset_with_shape_non_standardz0TestFFT.test_axes_subset_with_shape_non_standard	  sñ   € ô
 )¨¨RÓ0ˆØ�J‰J”v˜jÓ)°ˆJÓ7ˆÚ0ˆÜ! !Ó$ˆØò 	*ˆAäÜ%*¨1¯6©6£]ö4Ø!ð -/°!°B°Q°%©K˜1˜QŸW™W R™[š=¸Q¿W¹WÀR¹[ÑHò 4ó 5ˆEñ �w×+Ñ+¨A°AÐ+Ó6¸%ÀÀ¸)È&ÔQˆEØ×(Ñ(©¨A°°r¸°ÀÀ2ÀAÀÔ)GÈaÐ(ÓPˆEÜ˜E 5Õ)ñ	*ùò4r½   c                 óà  — |j                  t        d«      |j                  ¬«      }t        |«      }|j                  j                  |«      }t        |«      dz  }t        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  fg}|D ]°  \  }}|t        j                  k(  r8|j                  ||j                  ¬«      }|j                  j                  |«      }t        |«      dt        |«      z  fD ]D  }dD ]=  }	 ||||	¬«      }
 ||
||	¬«      }
t        |j                  j                  |
«      |«       Œ? ŒF Œ² y )NrQ   rV   r?   rb   rw   )rD   r   r!   r   ÚlinalgÚvector_normr	   r   r   r   r   r   r   r   r
   )rF   r$   r6   r£   Úx_normrx   Ú
func_pairsÚforwÚbackrT   Útmps              r&   Útest_all_1d_norm_preservingz#TestFFT.test_all_1d_norm_preserving  s4  € à�J‰J”v˜b“z¨¯©ˆJÓ4ˆÜ! !Ó$ˆØ—‘×+Ñ+¨AÓ.ˆÜ�A‹J˜‰NˆÜ—x‘x¤§¡Ð+ô —y‘y¤#§(¡(Ð+ä—w‘w¤§¡Ð)ðˆ
ð %ò 	M‰JˆD�$Ø”s—w‘wŠØ—J‘J˜q¨¯©�JÓ6�Ø Ÿ™×3Ñ3°AÓ6�Ü˜a“j !¤G¨A£J¡,Ð/ò M�Ø<ò M�DÙ˜q A¨DÔ1�CÙ˜s a¨dÔ3�CÜ# G§N¡N×$>Ñ$>¸sÓ$CÀVÕLñMñMñ		Mr(   ©rK   r%   c                 óZ  — t        d«      j                  |«      }t        j                  t        j                  t        j
                  t        j                  i}|j                  ||   «      }t        j                  t        j                  |«      «      }t        j                  t        j                  |«      «      }t        j                  t        j                  |«      |j                  d   «      }t        ||«       t        ||«       t        ||«       |j                  |j                  k(  sJ ‚|j                  t        j                   t        j"                  |j                  «      k(  sJ ‚|j                  t        j                   t        j"                  |j                  «      k(  sJ ‚y )NrQ   r   )r   Úastyper/   Úfloat16Ú	complex64Ú
longdoubleÚclongdoubler   r   r   r   r   r   r¹   r   r%   Úresult_typeÚfloat32)rF   r%   r6   Ú
out_dtypesÚ	x_complexÚres_fftÚres_rfftÚres_hffts           r&   Útest_dtypes_nonstandardzTestFFT.test_dtypes_nonstandard2  s  € ô �2‹J×Ñ˜eÓ$ˆÜ—j‘j¤"§,¡,´·±¼r¿~¹~ÐNˆ
Ø—H‘H˜Z¨Ñ.Ó/ˆ	ä—(‘(œ3Ÿ7™7 1›:Ó&ˆÜ—9‘9œSŸX™X a›[Ó)ˆÜ—8‘8œCŸI™I a›L¨!¯'©'°!©*Ó5ˆä! '¨9Ô5Ü! (¨AÔ.Ü! (¨AÔ.Ø�}‰} 	§¡Ò/Ð/Ð/Ø�~‰~¤§¡´·
±
¸A¿G¹GÓ!DÒDÐDÐDØ�~‰~¤§¡´·
±
¸A¿G¹GÓ!DÒDÐDÑDr(   rÑ   r!   c                 ó<  — |j                  t        d«      t        ||«      ¬«      }t        j                  t        j
                  |«      «      }t        j                  t        j                  |«      |j                  d   «      }t        ||«       t        ||«       y )NrQ   rV   r   )
rD   r   Úgetattrr   r   r   r   r   r¹   r
   )rF   r%   r$   r6   rÕ   rÖ   s         r&   Útest_dtypes_realzTestFFT.test_dtypes_realD  si   € à�J‰J”v˜b“z¬°°UÓ);ˆJÓ<ˆä—9‘9œSŸX™X a›[Ó)ˆÜ—8‘8œCŸI™I a›L¨!¯'©'°!©*Ó5ˆä˜ !Ô$Ü˜ !Õ$r(   rÍ   r   c                 ó  — t         j                  j                  d«      }|j                  |j                  d«      t	        ||«      ¬«      }t        j                  t        j
                  |«      «      }t        ||«       y )NiÒ  rQ   rV   )r/   r   Údefault_rngrD   rÙ   r   r   r
   )rF   r%   r$   Úrngr6   rÔ   s         r&   Útest_dtypes_complexzTestFFT.test_dtypes_complexN  sW   € ä�i‰i×#Ñ# DÓ)ˆØ�J‰J�s—z‘z "“~¬W°R¸Ó-?ˆJÓ@ˆä—(‘(œ3Ÿ7™7 1›:Ó&ˆä˜ Õ#r(   z,array-likes only supported for NumPy backendc                 ó€   — ddgddggddgddggddgddggg}t         ||«       ||j                  |«      «      «       y )Ng      ð?)r
   rD   )rF   r$   r¢   r6   s       r&   Útest_array_likezTestFFT.test_array_likeW  sX   € ð �Cˆj˜3 ˜*Ð%Ø�Cˆj˜3 ˜*Ð%Ø�Cˆj˜3 ˜*Ð%ð'ˆô 	™˜1›™r "§*¡*¨Q£-Ó0Õ1r(   N);Ú__name__Ú
__module__Ú__qualname__rJ   r   rO   r[   r`   rd   rj   rl   rq   rt   ry   r{   r   r‚   r†   r‰   r�   r’   r”   r–   r˜   rš   r§   ÚpytestÚmarkÚparametrizer   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  „ òFñ ˜dÐ+SÔTñFó UðFòAñ ˜dÐ+FÔGñ1ó Hð1òKòIòJòNò#ò
òMòJòOòOòOòGòWòOò	KòOò	Pò*ð ‡[�[×Ñ˜T C§H¡H¨c¯i©i¸¿¹ÀCÇJÁJÐ#OÓPñ!ó Qð!ð ‡[�[×Ñ˜T C§I¡I¨s¯z©zÐ#:Ó;ñ!ó <ð!ð ‡[�[×Ñ˜T C§H¡H¨c¯i©iØ$'§I¡I¨s¯z©zð$;ó <ñ*ó<ð*ð  ‡[�[×Ñ˜T C§H¡H¨c¯i©iØ$'§I¡I¨s¯z©zØ$'§I¡I¨s¯z©zØ$'§I¡I¨s¯z©zð$;ó <ñ*ó	<ð*òMñ. ˜dÔ#Ø‡[�[×Ñ˜W r§z¡z°2·=±=Ð&AÓBñEó Có $ðEð  ‡[�[×Ñ˜W y°)Ð&<Ó=ñ%ó >ð%ð ‡[�[×Ñ˜W {°LÐ&AÓBñ$ó Cð$ñ ˜dØKôMà‡[�[×Ñ˜T C§G¡G¨S¯X©XØ$'§H¡H¨c¯i©iØ$'§H¡H¨c¯i©iØ$'§H¡H¨c¯i©iØ$'§I¡I¨s¯z©zØ$'§I¡I¨s¯z©zØ$'§H¡H¨c¯i©iØ$'§I¡I¨s¯z©zØ$'§I¡I¨s¯z©zð$<ó =ñ2ó=óMñ2r(   r;   TrÉ   r%   ÚorderÚFznon-contiguousr   c                 ó’  — t         j                  j                  d«      }|j                  ddd«      j	                  | d¬«      }|dk(  rt        j
                  |«      }n#|d d d…   }t        j                  |d d d…   «      }|j                  j                  d	«      r1t        d
«      D ]"  } |||¬«      } |||¬«      }t        ||«       Œ$ y |j                  j                  d«      rZg d¢}	|j                  j                  d«      r|	j                  g d¢«       |	D ]"  }
 |||
¬«      } |||
¬«      }t        ||«       Œ$ y t        ‚)Né*   r²   é   é   F)Úcopyré   r*   r   r^   r,   )r   r   )r´   )r+   r?   )r   r?   r   ))r   )r+   )r?   NrŸ   )r/   r   ÚRandomStateÚrandrË   ÚasfortranarrayÚascontiguousarrayrá   ÚendswithrN   r   Úextendr"   )r%   rè   r   rÝ   ÚXÚYr-   ÚX_resÚY_resr    r»   s              r&   Útest_fft_with_orderrù   i  s/  € ô �)‰)×
Ñ
 Ó
#€CØ�‰��A�rÓ×!Ñ! %¨eÐ!Ó4€AØ�‚|Ü×Ñ˜aÓ ‰ð ‰d�ˆd‰GˆÜ× Ñ  ¡4 R 4¡Ó)ˆà
‡|�|×Ñ˜UÔ#Ü˜!“Hò 	4ˆDÙ˜ Ô%ˆEÙ˜ Ô%ˆEÜ% e¨UÕ3ñ	4ð 
�‰×	Ñ	Ð/Ô	0Ú'ˆØ�<‰<× Ñ  Ô(Ø�K‰KÒ0Ô1Øò 	4ˆBÙ˜ ”OˆEÙ˜ ”OˆEÜ% e¨UÕ3ñ	4ô
 Ðr(   )Úcpu_onlyc                   óD   — e Zd ZdZdZddœd„Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zy)ÚTestFFTThreadSafer@   )i   éÈ   N©r$   c                óº  ‡— ˆfd„}t        j                  «       } ‰|Ž }t        | j                  «      D �cg c]  }t	        j
                  |||f¬«      ‘Œ }}|D �	cg c]  }	|	j                  «       ‘Œ c}	 |D �	cg c]  }	|	j                  «       ‘Œ c}	 t        | j                  «      D ]   }t        |j                  d¬«      |d¬«       Œ" y c c}w c c}	w c c}	w )Nc                 ó.   •— |j                   ‰| Ž «       y r©   )Úput)ÚargsÚqr#   s     €r&   Úworkerz.TestFFTThreadSafe._test_mtsame.<locals>.worker–  s   ø€ Ø�E‰E‘$˜�+Õr(   )Útargetr  é   )Útimeoutz6Function returned wrong value in multithreaded context)Úerr_msg)
ÚqueueÚQueuerN   ÚthreadsÚ	threadingÚThreadÚstartÚjoinr   Úget)
rF   r#   r$   r  r  r  ÚexpectedrI   Útr6   s
    `        r&   Ú_test_mtsamezTestFFTThreadSafe._test_mtsame•  s¿   ø€ ô	ô �K‰K‹MˆÙ˜�;ˆô ˜DŸL™LÓ)ö+Øô ×Ñ V°4¸°)Ö<ð +ˆð +àÖ�qˆ�‰�ÓàÖ�aˆ�‰�Óô �t—|‘|Ó$ò 	ˆAÜØ—‘˜a�Ó  (ØPöñ	ùò+ùâùâs   · CÁCÁ;Cc                 ó–   — |j                  | j                  |j                  ¬«      }| j                  t        j                  ||¬«       y ©NrV   rþ   )ÚonesÚinput_shaper   r  r   ©rF   r$   r¤   s      r&   r[   zTestFFTThreadSafe.test_fftª  s7   € Ø�G‰G�D×$Ñ$¨B¯M©MˆGÓ:ˆØ×Ñœ#Ÿ'™' 1¨ÐÕ,r(   c                 ó€   — |j                  | j                  d«      }| j                  t        j                  ||¬«       y ©Ny      ð?        rþ   )Úfullr  r  r   r   r  s      r&   rd   zTestFFTThreadSafe.test_ifft®  s1   € Ø�G‰G�D×$Ñ$ dÓ+ˆØ×Ñœ#Ÿ(™( A¨"ÐÕ-r(   c                 ó~   — |j                  | j                  «      }| j                  t        j                  ||¬«       y ©Nrþ   )r  r  r  r   r   r  s      r&   ry   zTestFFTThreadSafe.test_rfft²  s/   € Ø�G‰G�D×$Ñ$Ó%ˆØ×Ñœ#Ÿ(™( A¨"ÐÕ-r(   c                 ó€   — |j                  | j                  d«      }| j                  t        j                  ||¬«       y r  )r  r  r  r   r   r  s      r&   r{   zTestFFTThreadSafe.test_irfft¶  s1   € Ø�G‰G�D×$Ñ$ dÓ+ˆØ×Ñœ#Ÿ)™) Q¨2ÐÕ.r(   c                 ó–   — |j                  | j                  |j                  ¬«      }| j                  t        j
                  ||¬«       y r  )r  r  rÍ   r  r   r   r  s      r&   r�   zTestFFTThreadSafe.test_hfftº  s7   € Ø�G‰G�D×$Ñ$¨B¯L©LˆGÓ9ˆØ×Ñœ#Ÿ(™( A¨"ÐÕ-r(   c                 ó~   — |j                  | j                  «      }| j                  t        j                  ||¬«       y r  )r  r  r  r   r   r  s      r&   r’   zTestFFTThreadSafe.test_ihfft¾  s/   € Ø�G‰G�D×$Ñ$Ó%ˆØ×Ñœ#Ÿ)™) Q¨2ÐÕ.r(   )rá   râ   rã   r  r  r  r[   rd   ry   r{   r�   r’   rç   r(   r&   rü   rü   �  s2   „ à€GØ€Kà+/ô ò*-ò.ò.ò/ò.ó/r(   rü   r#   c           
      ó6  — t        j                  d«      5 }|j                  | t        d«      D �cg c]  }t	        j
                  d«      ‘Œ c}«      }d d d «        | t	        j
                  d«      «      }D ]  }t        ||«       Œ y c c}w # 1 sw Y   Œ=xY w)Nr?   r³   éd   )ÚmultiprocessingÚPoolÚmaprN   r/   r  r   )r#   ÚpÚ_ÚresrZ   r6   s         r&   Útest_multiprocessr)  Ã  s‚   € ô
 
×	Ñ	˜aÓ	 ð < AØ�e‰e�D´°q³Ö:¨Aœ2Ÿ7™7 3�<Ò:Ó;ˆ÷<ñ ”"—'‘'˜#“,Ó€FØò #ˆÜ˜˜6Õ"ñ#ùò ;÷<ð <ús   –B°B
ÁBÂ
BÂBc                   ó   — e Zd Zd„ Zy)Ú
TestIRFFTNc                 ó¬   — t         j                  j                  d«      \  }}|d|z  z   }|j                  |«      }d}t        j                  ||¬«       y )N)r?   r@   r²   é    r>   )éþÿÿÿrŸ   )r/   r   rD   r   r   )rF   r$   ÚarÚair¤   r    s         r&   Útest_not_last_axis_successz%TestIRFFTN.test_not_last_axis_successÒ  sI   € Ü—‘×!Ñ! .Ó1‰ˆˆBØ��B‘‰JˆØ�J‰J�q‹Mˆàˆô 	�
‰
�1˜4Ö r(   N)rá   râ   rã   r1  rç   r(   r&   r+  r+  Ð  s   „ ó!r(   r+  c                 ó  — | t         j                  t         j                  t         j                  fv r|j                  }n|j
                  }|j                  dk7  r1|j                  g d¢|¬«      } | |«       t        t        | |d¬«       y y )NÚnumpyr]   rV   r?   )Úworkers)
r   r   r   r   r!   r   rá   rD   r_   r"   )r#   r$   r%   r6   s       r&   Útest_non_standard_paramsr5  Ý  si   € ð ”—‘œ#Ÿ)™)¤S§Y¡YÐ/Ñ/Ø—
‘
‰à—‘ˆà	‡{�{�gÒØ�J‰J’y¨ˆJÓ.ˆáˆQŒÜ”j $¨°1Ö5ð	 r(   rÑ   r!   c                 óR   — |j                  g d¢t        ||«      ¬«      } | |«       y )Nr]   rV   )rD   rÙ   )r#   r%   r$   r6   s       r&   Útest_real_inputr7  ï  s$   € ð
 	�
‰
’9¤G¨B°Ó$6ˆ
Ó7€Aáˆ…Gr(   )5r	  r  r#  r3  r/   rä   Únumpy.randomr   Únumpy.testingr   r   r   r_   Ú	scipy.fftr   Úscipy.conftestr   Úscipy._lib._array_apir   r	   r
   r   rå   ÚusefixturesÚ
pytestmarkr   r'   r9   r;   ræ   rÑ   r!   rÎ   rÍ   r   rÏ   r   r   r   r   r   rù   rü   r   r   r)  r+  r   r   r   r   r5  r7  rç   r(   r&   ú<module>r?     sˆ  ðÛ Û Û Û Û Ý ß DÝ *Ý Ý /÷ó ð # F§K¡K×$;Ñ$;Ð<NÓ$OÐP€
Ø—;‘;×/Ñ/Ð òò+÷{2ñ {2ñ|	 ˜$ÔØ‡�×ÑØØ	�‰�R—Z‘Z §¡Ø	�‰�r—}‘} b§n¡nð	6ó7ð ‡�×Ñ˜ 3Ð(8Ð"9Ó:Ø‡�×ÑØØ	�‰�#—(‘(˜CŸH™HØ	�‰�3—9‘9˜cŸi™ið	)ó*ñó	*ó ;ó	7ó  ðñ: ˜4Ô ÷//ð //ó !ð//ñd ˜$ÔØ‡�×Ñ˜ #§'¡'¨3¯8©8°S·X±X¸s¿y¹yÐ!IÓJñ#ó Kó  ð#÷
!ñ 
!ð ‡�×Ñ˜ #§'¡'¨3¯8©8°S·X±X¸s¿y¹yØ"%§(¡(¨C¯I©IØ"%§)¡)¨S¯Z©Z¸¿¹À3Ç9Á9ð"Nó Oñ
6óOð
6ð ‡�×Ñ˜ 9¨iÐ"8Ó9Ø‡�×Ñ˜ #§'¡'¨3¯8©8°S·Y±YØ"%§(¡(¨C¯I©IØ"%§*¡*¨c¯h©hð"9ó :ñó:ó :ñr(   