Ë
    ÏÍ:jL  ã                   ó  — d Z ddlmZmZmZ ddlmZ ddlmZ	 ddlZddl
ZddlZddlmZmZmZ ddlmZ ej&                  j(                  ZegZg d¢Zd	„ Zd
„ Z G d„ d«      Z G d„ d«      Z ed¬«      ej&                  j7                  dd¬«       G d„ d«      «       «       Z eej:                  ej<                  «       G d„ d«      «       Z eej@                  «       G d„ d«      «       Z! eejD                  «       G d„ d«      «       Z#y)zŒIncludes test functions for fftpack.helper module

Copied from fftpack.helper by Pearu Peterson, October 2005
Modified for Array API, 2023

é    )Únext_fast_lenÚprev_fast_lenÚ_init_nd_shape_and_axes)Úassert_equal)ÚraisesN)Úxp_assert_closeÚ	xp_deviceÚmake_xp_test_case)Úfft)é   é   é   é   é   é   é	   é
   é   i˜  i  c                  óD   — t         D ]  } t        t        | «      | «       Œ y )N)Ú_5_smooth_numbersr   r   )Úns    úp/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/fft/tests/test_helper.pyÚtest_next_fast_lenr      s    € Üò *ˆÜ”] 1Ó% qÕ)ñ*ó    c                 óÌ   — | }|dk  rJ ‚	 t        | d«      \  }}|dk7  rn|} Œt        d|dz   d«      D ]  }	 t        | |«      \  }}|dk7  rŒ|} Œ | dk(  sJ d|› d|› d| › �«       ‚y )Nr   r   r   é   zx=z is not z-smooth, remainder=)ÚdivmodÚrange)Úxr   Úx_origÚqÚrÚds         r   Ú_assert_n_smoothr$       s©   € Ø€FØˆ1‚uØˆuà
Ü�a˜‹|‰ˆˆ1Ø�Š6ØØˆð	 ô �1�a˜‘c˜1Óò ˆØÜ˜!˜Q“<‰DˆAˆqØ�AŠvØØˆAð	 ðð �Š6ð :Ø�ˆx�x ˜sÐ"5°a°SÐ9ó:‰6r   c                   óˆ   — e Zd Zd„ Zd„ Zd„ Zej                  j                  e	j                  dk  ded¬«      d„ «       Zd	„ Zy
)ÚTestNextFastLenc                 óà   — t         j                  j                  d«       d„ } |«       D ]B  }t        |«      }t	        |d«       |t        |d«      k(  sJ ‚t        |d«      }t	        |d«       ŒD y )NéÒ  c               3   ó@   K  — t        dd«      E d {  –—†  d–— y 7 Œ	­w©Nr   éè  i€y ©r   © r   r   Únumsz0TestNextFastLen.test_next_fast_len.<locals>.nums;   ó    è ø€ Ü˜Q “~×%Ð%Ø(Ó(ð &úó   ‚’“
é   FTr   )ÚnpÚrandomÚseedr   r$   ©Úselfr.   r   Úms       r   r   z"TestNextFastLen.test_next_fast_len8   ói   € Ü
�	‰	�‰�tÔò	)ñ “ò 	#ˆAÜ˜aÓ ˆAÜ˜Q Ô#Øœ a¨Ó/Ò/Ð/Ð/ä˜a Ó&ˆAÜ˜Q Õ"ñ	#r   c           	      ó,  — t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  g}|D ]3  } |d«      }t        |«      }t        |t        t        |«      «      «       Œ5 y )Né90  )
r2   Úint16Úint32Úint64Úuint16Úuint32Úuint64r   r   Úint©r6   ÚITYPESÚitypr   ÚtestNs        r   Útest_np_integersz TestNextFastLen.test_np_integersG   sa   € Ü—(‘(œBŸH™H¤b§h¡h´·	±	¼2¿9¹9ÄbÇiÁiÐPˆØò 	7ˆDÙ�U“ˆAÜ! !Ó$ˆEÜ˜¤¬c°!«fÓ 5Õ6ñ	7r   c                 ó„   — ddddddddddd	d
ddddœ}|j                  «       D ]  \  }}t        t        |d«      |«       Œ y )Nr   r   r   r   r   r   r   é   é   é   i   é   é @©r   r   r   r   r   r   é   r   é   rH   rI   é   éý  rK   rL   T©Úitemsr   r   ©r6   Úhamsr   Úys       r   Útestnext_fast_len_smallz'TestNextFastLen.testnext_fast_len_smallN   sU   € à�Q˜1  q¨Q°1¸ÀÈØ˜ $¨d¸hñ
ˆð —J‘J“Lò 	4‰DˆAˆqÜœ q¨$Ó/°Õ3ñ	4r   ì        ú$Hamming Numbers too large for 32-bitT©Úreasonr   Ústrictc                 óæ   — i dd“dd“dd“dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dddddddddddd œ¥}|j                  «       D ]  \  }}t        t        |d!«      |«       Œ y )"NéÀÇhéÁÇhi €„éÀ=ué+‰ë2é,‰ë2i  B3ì     €· ì    €· l   €sö'· ì    >å9ùì   ¡>å9ùl         ì      fØn ì     fØn l    >Uk±o ì     øq…. ì    øq…. l   ØxQ+t0 ì      ¢!Í ì     ¢!Í l    dopL?Í ì   í…hRì   ì…hRì   ‰2 f;Ùì          ì     `71Y!l   à …("ì           ì    ËóX l         	 )ro   ì   ˆ2 f;Ùrp   ì   ÿÿÿÿrq   ì    `71Y!rr   ì          ì   ËóX rs   ì   !ËóX TrR   rT   s       r   Útestnext_fast_len_bigz%TestNextFastLen.testnext_fast_len_bigV   s'  € ð
Ø�yð
Ø"/°ð
à�yð
ð �yð
ð #0°ð
ð ˜,ð	
ð )9¸,ð	
ð
 ˜=ð
ð
 +<¸]ð
ð ˜_ð
ð   ð
ð ˜_ð
ð   ð
ð Ð.ð
ð !Ð"2ð
ð Ð0ð
ð "Ð#4ð
ð   1Ø#4à0Ø#4à0Ø#4Ø 2Ø$6Ø$6Ø 2Ø$6ò9
ˆð< —J‘J“Lò 	4‰DˆAˆqÜœ q¨$Ó/°Õ3ñ	4r   c                 óL   — t        dd¬«      dk(  sJ ‚t        dd¬«      dk(  sJ ‚y )Nr1   T©Úrealé   rN   F©Útargetr}   )r   ©r6   s    r   Útest_keyword_argsz!TestNextFastLen.test_keyword_args{   ó,   € Ü˜R dÔ+¨rÒ1Ð1Ð1Ü A¨EÔ2°aÒ7Ð7Ñ7r   N)Ú__name__Ú
__module__Ú__qualname__r   rF   rW   ÚpytestÚmarkÚxfailÚsysÚmaxsizeÚ
ValueErrorrz   r‚   r-   r   r   r&   r&   6   sR   „ ò#ò7ò4ð ‡[�[×Ñ�s—{‘{ UÑ*ØDØ(°ð ó 7ñ 4ó7ð 4óD8r   r&   c                   óˆ   — e Zd Zd„ Zd„ Zd„ Zej                  j                  e	j                  dk  ded¬«      d„ «       Zd	„ Zy
)ÚTestPrevFastLenc                 óà   — t         j                  j                  d«       d„ } |«       D ]B  }t        |«      }t	        |d«       |t        |d«      k(  sJ ‚t        |d«      }t	        |d«       ŒD y )Nr(   c               3   ó@   K  — t        dd«      E d {  –—†  d–— y 7 Œ	­wr*   r,   r-   r   r   r.   z0TestPrevFastLen.test_prev_fast_len.<locals>.nums…   r/   r0   r1   FTr   )r2   r3   r4   r   r$   r5   s       r   Útest_prev_fast_lenz"TestPrevFastLen.test_prev_fast_len‚   r8   r   c           	      ó†  — t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  g}|D ]`  } |d«      }t        |«      }t        |t        t        |«      «      «       t        |d¬«      }t        |t        t        |«      d¬«      «       Œb y )Nr:   Tr|   )
r2   r;   r<   r=   r>   r?   r@   r   r   rA   rB   s        r   rF   z TestPrevFastLen.test_np_integers‘   s‡   € Ü—(‘(œBŸH™H¤b§h¡h´·	±	¼2¿9¹9Ü—I‘Iðˆàò 	BˆDÙ�U“ˆAÜ! !Ó$ˆEÜ˜¤¬c°!«fÓ 5Ô6ä! !¨$Ô/ˆEÜ˜¤¬c°!«f¸4Ô @ÕAñ	Br   c                 óf  — dddddddddd	d
d
ddddœ}|j                  «       D ]  \  }}t        t        |d«      |«       Œ i dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d	d	“d
d
“dd
“ddddddddddddœ¥}|j                  «       D ]  \  }}t        t        |d«      |«       Œ y ) Nr   r   r   r   r   r   r   r~   rH   rI   r+   rK   rL   rM   TrN   r   r   r1   é   rO   rP   rJ   é   é   é   éx   éy   ið  )rJ   é   r•   r–   r—   r˜   r™   éz   rQ   rK   rL   F©rS   r   r   rT   s       r   Útestprev_fast_len_smallz'TestPrevFastLen.testprev_fast_len_smallœ   sP  € à�Q˜1  q¨Q°1¸ÀÈØ˜ $¨d¸hñ
ˆð —J‘J“Lò 	4‰DˆAˆqÜœ q¨$Ó/°Õ3ð	4ð
Øˆqð
Ø�Qð
Ø˜1ð
Ø ð
Ø$% qð
Ø*+¨Qð
Ø01°1ð
Ø67¸ð
Ø<=¸qð
ØBDÀbð
à�ð
à˜ð
à ð
à$&¨ð
à,.°ð
à46¸ð
à<>Àð
àHJØ˜ ¨°¸3ÀSØ˜d¨hò	
ˆð —J‘J“Lò 	5‰DˆAˆqÜœ q¨%Ó0°!Õ4ñ	5r   rX   rY   TrZ   c           
      óJ  — i dd“dd“dd“dd“dd“dd“dd“d	d“d
d“dd“dd“dd“dd“dd“dd“dd“dd“i dd“dd“dd“dd“dd“dd“dd“d d “d!d “d"d#“d$d$“d%d$“d&d'“d(d(“d)d(“d*d+“d,d,“¥d,d-d.d.d/d0d0d.d1œ¥}|j                  «       D ]  \  }}t        t        |d2«      |«       Œ y )3Nr^   r_   i¿Çhi  `r`   iÁ=ui¿=ura   rb   i*‰ë2i@¢®2rc   rd   l   ÿ· l     W:¶ re   rf   l   Ÿ>å9ùl    8ÝÓrg   rh   l   ÿÿeØn l        n ri   rj   l   ÿ÷q…. l       ˜, rk   rl   l   ÿÿ¢!Í l        Í rm   l   î…hRrn   l    @Õ�!Rro   l   Š2 f;Ùrt   l   € �aØØrp   l         ru   l     ê+žKÿrq   l    h»\arr   l      >å9ùrs   )rv   l   ÿ_71Y!rr   rw   l   ÿÿÿÿrs   ry   rx   Trœ   rT   s       r   Útestprev_fast_len_bigz%TestPrevFastLen.testprev_fast_len_big­   s  € ð9
à�yð9
ð ˜9ð9
ð ˜9ð	9
ð �yð9
ð ˜9ð9
ð ˜9ð9
ð �yð9
ð ˜9ð9
ð ˜9ð9
ð ˜,ð9
ð ˜lð9
ð  ˜lð!9
ð$ ˜=ð%9
ð& ˜}ð'9
ð( ˜}ð)9
ð, ˜_ð-9
ð.   ñ/9
ð0   ð19
ð4 ˜_ð59
ð6   ð79
ð8   ð99
ð< Ð.ð=9
ð> !Ð"2ð?9
ð@ !Ð"2ðA9
ðD Ð0ðE9
ðF "Ð#4ðG9
ðH "Ð#4ðI9
ðL Ð0ðM9
ðN "Ð#4ðO9
ðP "Ð#4ðQ9
ðT Ð0ðU9
ðV "Ð#4ðW9
ðX "Ð#4ðY9
ð\ Ð0ñ]9
ð^ $5Ø#4à 2Ø$6Ø$6à 2Ø$6Ø$6òq9
ˆðt —J‘J“Lò 	4‰DˆAˆqÜœ q¨$Ó/°Õ3ñ	4r   c                 óL   — t        dd¬«      dk(  sJ ‚t        dd¬«      dk(  sJ ‚y )Nr1   Tr|   r   rN   Fr   )r   r�   s    r   r‚   z!TestPrevFastLen.test_keyword_argsî   rƒ   r   N)r„   r…   r†   r‘   rF   r�   r‡   rˆ   r‰   rŠ   r‹   rŒ   rŸ   r‚   r-   r   r   rŽ   rŽ   €   sS   „ ò#ò	Bò5ð" ‡[�[×Ñ�s—{‘{ UÑ*ØDØ(°ð ó 7ñ<4ó7ð<4ó|8r   rŽ   T)Úcpu_onlyFÚprivate)r[   c                   óT   — e 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y)ÚTest_init_nd_shape_and_axesc                 ór   — |j                  d«      }d }d }d}g }t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )Nr   r-   ©Úasarrayr   ©	r6   Úxpr   ÚshapeÚaxesÚshape_expectedÚaxes_expectedÚ	shape_resÚaxes_ress	            r   Útest_py_0d_defaultsz/Test_init_nd_shape_and_axes.test_py_0d_defaults÷   sR   € Ø�J‰J�q‹MˆØˆØˆàˆØˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 ór   — |j                  d«      }d }d }d}g }t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )Ng      @r-   r¦   r¨   s	            r   Útest_xp_0d_defaultsz/Test_init_nd_shape_and_axes.test_xp_0d_defaults  sR   € Ø�J‰J�r‹NˆØˆØˆàˆØˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 óx   — |j                  g d¢«      }d }d }d}dg}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )N©r   r   r   )r   r   r¦   r¨   s	            r   Útest_py_1d_defaultsz/Test_init_nd_shape_and_axes.test_py_1d_defaults  sU   € Ø�J‰J’yÓ!ˆØˆØˆàˆØ˜ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 óx   — |j                  ddd«      }d }d }d}dg}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )Nr   r   çš™™™™™¹?)r   )Úaranger   r¨   s	            r   Útest_xp_1d_defaultsz/Test_init_nd_shape_and_axes.test_xp_1d_defaults  sY   € Ø�I‰I�a˜˜BÓˆØˆØˆàˆØ˜ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 ó‚   — |j                  g d¢g d¢g«      }d }d }d}ddg}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )N)r   r   r   r   )r   r   rN   r   )r   r   r   r   r¦   r¨   s	            r   Útest_py_2d_defaultsz/Test_init_nd_shape_and_axes.test_py_2d_defaults+  sa   € Ø�J‰JšÚ$ð&ó 'ˆàˆØˆàˆØ˜A˜ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 óž   — |j                  ddd«      }|j                  |d«      }d }d }d}ddg}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )Nr   r   r·   )r   r   )r¸   Úreshaper   r¨   s	            r   Útest_xp_2d_defaultsz/Test_init_nd_shape_and_axes.test_xp_2d_defaults9  sk   € Ø�I‰I�a˜˜BÓˆØ�J‰J�q˜&Ó!ˆØˆØˆàˆØ˜A˜ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 óz   — |j                  g d¢«      }d }d }d}g d¢}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )N©r   r   r   r   r   ©r   r   r   r   r   ©Úzerosr   r¨   s	            r   Útest_xp_5d_defaultsz/Test_init_nd_shape_and_axes.test_xp_5d_defaultsG  sS   € Ø�H‰H’_Ó%ˆØˆØˆà(ˆÚ'ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 ó~   — |j                  g d¢«      }g d¢}d }d}g d¢}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )NrÀ   )r   éÿÿÿÿrÆ   r   r   )r   r   r   r   r   rÁ   rÂ   r¨   s	            r   Útest_xp_5d_set_shapez0Test_init_nd_shape_and_axes.test_xp_5d_set_shapeT  sS   € Ø�H‰H’_Ó%ˆÚ"ˆØˆà)ˆÚ'ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 ó~   — |j                  g d¢«      }d }g d¢}d}g d¢}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )NrÀ   )r   r   r   )r   r   r   rÂ   r¨   s	            r   Útest_xp_5d_set_axesz/Test_init_nd_shape_and_axes.test_xp_5d_set_axesa  sS   € Ø�H‰H’_Ó%ˆØˆÚˆà"ˆÚ!ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 ó‚   — |j                  g d¢«      }g d¢}g d¢}d}g d¢}t        |||«      \  }}||k(  sJ ‚||k(  sJ ‚y )NrÀ   )r   rÆ   r   )r   r   r   )r   r   r   rÂ   r¨   s	            r   Útest_xp_5d_set_shape_axesz5Test_init_nd_shape_and_axes.test_xp_5d_set_shape_axesn  sS   € Ø�H‰H’_Ó%ˆÚˆÚˆà#ˆÚ!ˆä5°a¸ÀÓEÑˆ	�8à˜NÒ*Ð*Ð*Ø˜=Ò(Ð(Ñ(r   c                 óh   — |j                  d«      }t        |dd ¬«      \  }}|dk(  sJ ‚|g d¢k(  sJ ‚y )N)r   r   r   r   )r   r   r   ©rª   r«   r´   rÂ   )r6   r©   r   rª   r«   s        r   Útest_shape_axes_subsetz2Test_init_nd_shape_and_axes.test_shape_axes_subset{  s>   € Ø�H‰H�\Ó"ˆÜ-¨a°yÀtÔL‰ˆˆtà˜	Ò!Ð!Ð!Ø’yÒ Ð Ñ r   c                 ó”  — |j                  d«      }t        t        d¬«      5  t        |d ddgddgg¬«       d d d «       t        t        d¬«      5  t        |d g d¢¬«       d d d «       t        t        d	¬«      5  t        |d dg¬«       d d d «       t        t        d	¬«      5  t        |d d
g¬«       d d d «       t        t        d¬«      5  t        |d ddg¬«       d d d «       t        t        d¬«      5  t        |ddgddggd ¬«       d d d «       t        t        d¬«      5  t        |g d¢d ¬«       d d d «       t        t        d¬«      5  t        |j                  g d¢«      g d¢dg¬«       d d d «       t        t        d¬«      5  t        |dgd ¬«       d d d «       t        t        d¬«      5  t        |d
d ¬«       d d d «       y # 1 sw Y   �Œ–xY w# 1 sw Y   �ŒyxY w# 1 sw Y   �Œ]xY w# 1 sw Y   �ŒAxY w# 1 sw Y   �Œ$xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒåxY w# 1 sw Y   ŒµxY w# 1 sw Y   Œ˜xY w# 1 sw Y   y xY w)Nr   z-axes must be a scalar or iterable of integers)Úmatchr   r   r   rÍ   )g      ð?g       @g      @g      @z$axes exceeds dimensionality of inputéþÿÿÿzall axes must be uniquer   z.shape must be a scalar or iterable of integerszBwhen given, axes and shape arguments have to be of the same length)r   r   r   r   r´   z1invalid number of data points \(\[0\]\) specifiedz2invalid number of data points \(\[-2\]\) specified)rÃ   Úassert_raisesrŒ   r   )r6   r©   r   s      r   Útest_errorsz'Test_init_nd_shape_and_axes.test_errors‚  sQ  € Ø�H‰H�Q‹KˆÜœ:ð .2ô 3ñ 	Jä# A¨T¸!¸Q¸À!ÀQÀÐ8HÕI÷	Jô œ:ð .2ô 3ñ 	Jä# A¨TÒ8HÕI÷	Jô œ:Ø!GôIñ 	=ä# A¨T¸¸Õ<÷	=ô œ:Ø!GôIñ 	>ä# A¨T¸¸Õ=÷	>ô œ:Ø!:ô<ñ 	@ä# A¨T¸¸A¸Õ?÷	@ô œ:ð .2ô 3ñ 	Jä# A¨q°!¨f°q¸!°fÐ-=ÀDÕI÷	Jô œ:ð .2ô 3ñ 	Jä# AÒ-=ÀDÕI÷	Jô œ:ð"<ô=ñ 	?ô $ B§H¡Hª\Ó$:Ú*3¸1¸#õ?÷	?ô œ:ð"3ô4ñ 	=ô $ A¨a¨S°tÕ<÷	=ô
 œ:ð"4ô5ñ 	<ô $ A¨R°dÕ;÷	<ð 	<÷O	Jñ 	Jú÷	Jñ 	Jú÷	=ñ 	=ú÷	>ñ 	>ú÷	@ñ 	@ú÷	Jñ 	Jú÷	Jð 	Jú÷	?ð 	?ú÷	=ð 	=ú÷
	<ð 	<úsw   £GÁGÁ;G&Â$G3ÃH Ã7HÄ%HÅ#H&ÆH2Æ4H>ÇGÇG#Ç&G0Ç3G=È H
ÈHÈH#È&H/È2H;È>IN)r„   r…   r†   r°   r²   rµ   r¹   r»   r¾   rÄ   rÇ   rÉ   rË   rÎ   rÓ   r-   r   r   r¤   r¤   ó   s>   „ ò)ò)ò)ò)ò)ò)ò)ò)ò)ò)ò!ó,<r   r¤   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestFFTShiftc                 ó”  — |j                  g d¢«      }|j                  g d¢«      }t        t        j                  |«      |«       t        t        j                  |«      |«       |j                  g d¢«      }|j                  g d¢«      }t        t        j                  |«      |«       t        t        j                  |«      |«       y )N)	ç        r   r   r   r   éüÿÿÿéýÿÿÿrÑ   rÆ   )	g      ÀrÙ   rÑ   rÆ   r   r   r   r   r   )
r×   r   r   r   r   éûÿÿÿrØ   rÙ   rÑ   rÆ   )
g      ÀrØ   rÙ   rÑ   rÆ   r   r   r   r   r   ©r§   r   r   ÚfftshiftÚ	ifftshift)r6   r©   r   rV   s       r   Útest_definitionzTestFFTShift.test_definition´  sˆ   € Ø�J‰JÒ7Ó8ˆØ�J‰JÒ7Ó8ˆÜœŸ™ Q›¨Ô+ÜœŸ™ aÓ(¨!Ô,Ø�J‰JÒ;Ó<ˆØ�J‰JÒ;Ó<ˆÜœŸ™ Q›¨Ô+ÜœŸ™ aÓ(¨!Õ,r   c                 óÔ   — dD ]c  }|j                  t        j                  j                  |f«      «      }t        t	        j
                  t	        j                  |«      «      |«       Œe y )N)r   r   r   éd   éÓ   )r§   r2   r3   r   r   rÝ   rÜ   )r6   r©   r   r   s       r   Útest_inversezTestFFTShift.test_inverse¾  sK   € Ø$ò 	?ˆAØ—
‘
œ2Ÿ9™9×+Ñ+¨Q¨DÓ1Ó2ˆAÜœCŸM™M¬#¯,©,°q«/Ó:¸AÕ>ñ	?r   c                 óD  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g d¢g«      }t        t        j                  |d¬«      |«       t        t        j                  |d	¬«      t        j                  |d
¬«      «       t        t        j                  |d¬«      |«       t        t        j                  |d	¬«      t        j                  |d
¬«      «       t        t        j                  |«      |«       t        t        j                  |«      |«       y )N)r×   r   r   )r   r   rØ   )rÙ   rÑ   rÆ   )g      ð¿rÙ   rÑ   )r   r   r   )rØ   r   r   ©r   r   ©r«   r   ©r   rÛ   )r6   r©   ÚfreqsÚshifteds       r   Útest_axes_keywordzTestFFTShift.test_axes_keywordÃ  s¿   € Ø—
‘
šJª
²LÐAÓBˆØ—*‘*šmªYº
ÐCÓDˆÜœŸ™ U°Ô8¸'ÔBÜœŸ™ U°Ô3´S·\±\À%ÈdÔ5SÔTÜœŸ™ g°FÔ;¸UÔCÜœŸ™ g°AÔ6ÜŸ™ g°DÔ9ô	;äœŸ™ UÓ+¨WÔ5ÜœŸ™ gÓ.°Õ6r   c                 óÒ  — |j                  ddgddgddgg|j                  ¬«      }|j                  ddgddgddgg|j                  ¬«      }t        t        j                  |d¬«      |«       t        t        j
                  |d¬«      |«       t        t        j                  |d	¬«      |«       t        t        j
                  |dg¬«      |«       |j                  ddgddgddgg|j                  ¬«      }t        t        j                  |d¬«      |«       t        t        j
                  |d¬«      |«       |j                  ddgddgddgg|j                  ¬«      }t        t        j                  |d
¬«      |«       t        t        j
                  |d
¬«      |«       t        t        j                  |ddg¬«      |«       t        t        j
                  |ddg¬«      |«       t        t        j                  |d¬«      |«       t        t        j
                  |d¬«      |«       t        t        j                  |«      |«       t        t        j
                  |«      |«       y)z1 Test 2D input, which has uneven dimension sizes r   r   r   r   r   r   ©Údtyperå   ræ   rä   N)r§   Úfloat64r   r   rÜ   rÝ   )r6   r©   rç   Ú
shift_dim0Ú
shift_dim1Úshift_dim_boths         r   Útest_uneven_dimszTestFFTShift.test_uneven_dimsÎ  s  € à—
‘
Ø�ˆFØ�ˆFØ�ˆFð
ð —‘ð	 ó ˆð —Z‘ZØ�ˆFØ�ˆFØ�ˆFð!
ð —‘ð	  ó ˆ
ô
 	œŸ™ U°Ô3°ZÔ@ÜœŸ™ j°qÔ9¸5ÔAÜœŸ™ U°Ô6¸
ÔCÜœŸ™ j¸°sÔ;¸UÔCð —Z‘ZØ�ˆFØ�ˆFØ�ˆFð!
ð —‘ð	  ó ˆ
ô
 	œŸ™ U°Ô3°ZÔ@ÜœŸ™ j°qÔ9¸5ÔAð Ÿ™Ø�ˆFØ�ˆFØ�ˆFð%
ð —‘ð	 $ó ˆô
 	œŸ™ U°Ô8¸.ÔIÜœŸ™ n¸6ÔBÀEÔJÜœŸ™ U°!°Q°Ô8¸.ÔIÜœŸ™ n¸A¸q¸6ÔBÀEÔJô 	œŸ™ U°Ô6¸ÔGÜœŸ™ n¸4Ô@À%ÔHÜœŸ™ UÓ+¨^Ô<ÜœŸ™ nÓ5°uÕ=r   N)r„   r…   r†   rÞ   râ   ré   rñ   r-   r   r   rÕ   rÕ   ±  s   „ ò-ò?ò
	7ó+>r   rÕ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestFFTFreqc                 ó"  — |j                  g d¢|j                  ¬«      }|j                  g d¢|j                  ¬«      }dt        j                  d|¬«      z  }t	        ||dd¬«       d|j
                  z  t        j                  d|j
                  |¬«      z  }t	        ||d¬	«       d
t        j                  d
|¬«      z  }t	        ||d¬	«       d
|j
                  z  t        j                  d
|j
                  |¬«      z  }t	        ||d¬	«       y )N)	r   r   r   r   r   rØ   rÙ   rÑ   rÆ   rë   )
r   r   r   r   r   rÚ   rØ   rÙ   rÑ   rÆ   r   ©r©   FT©Úcheck_dtypeÚcheck_namespace©r÷   r   )r§   rí   r   Úfftfreqr   Úpi©r6   r©   r   Úx2rV   s        r   rÞ   zTestFFTFreq.test_definitionþ  sÔ   € Ø�J‰JÒ6¸b¿j¹jˆJÓIˆØ�Z‰ZÒ;À2Ç:Á:ˆZÓNˆð ”—‘˜A "Ô%Ñ%ˆÜ˜˜1¨%ÀÕFà�—‘‰IœŸ™ A r§u¡u°Ô4Ñ4ˆÜ˜˜1¨%Õ0à”—‘˜R BÔ'Ñ'ˆÜ˜˜2¨5Õ1à�—‘‰JœŸ™ R¨¯©°2Ô6Ñ6ˆÜ˜˜2¨5Ö1r   c                 óš   — |D ]F  }t        j                  d||¬«      }|j                  d|¬«      }t        |«      t        |«      k(  rŒFJ ‚ y ©Nr   )r©   Údevicer   )r   )r   rú   Úemptyr	   ©r6   r©   Údevicesr#   rV   r   s         r   Útest_devicezTestFFTFreq.test_device  sK   € Øò 	0ˆAÜ—‘˜A "¨QÔ/ˆAØ—‘˜ 1�Ó%ˆAÜ˜Q“<¤9¨Q£<Ó/Ð/Ð/ñ	0r   N©r„   r…   r†   rÞ   r  r-   r   r   ró   ró   ü  s   „ ò2ó$0r   ró   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestRFFTFreqc                 ó"  — |j                  g d¢|j                  ¬«      }|j                  g d¢|j                  ¬«      }dt        j                  d|¬«      z  }t	        ||dd¬«       d|j
                  z  t        j                  d|j
                  |¬«      z  }t	        ||d¬	«       d
t        j                  d
|¬«      z  }t	        ||d¬	«       d
|j
                  z  t        j                  d
|j
                  |¬«      z  }t	        ||d¬	«       y )NrÁ   rë   )r   r   r   r   r   r   r   rõ   FTrö   rù   r   )r§   rí   r   Úrfftfreqr   rû   rü   s        r   rÞ   zTestRFFTFreq.test_definition  sÓ   € Ø�J‰J’¨b¯j©jˆJÓ9ˆØ�Z‰ZÒ*°"·*±*ˆZÓ=ˆð ”—‘˜Q 2Ô&Ñ&ˆÜ˜˜1¨%ÀÕFà�—‘‰IœŸ™ Q¨¯©°"Ô5Ñ5ˆÜ˜˜1¨%Õ0à”—‘˜b RÔ(Ñ(ˆÜ˜˜2¨5Õ1à�—‘‰JœŸ™ b¨"¯%©%°BÔ7Ñ7ˆÜ˜˜2¨5Ö1r   c                 óš   — |D ]F  }t        j                  d||¬«      }|j                  d|¬«      }t        |«      t        |«      k(  rŒFJ ‚ y rÿ   )r   r	  r  r	   r  s         r   r  zTestRFFTFreq.test_device,  sK   € Øò 	0ˆAÜ—‘˜Q 2¨aÔ0ˆAØ—‘˜ 1�Ó%ˆAÜ˜Q“<¤9¨Q£<Ó/Ð/Ð/ñ	0r   Nr  r-   r   r   r  r    s   „ ò2ó$0r   r  )$Ú__doc__Úscipy.fft._helperr   r   r   Únumpy.testingr   r‡   r   rÒ   Únumpyr2   rŠ   Úscipy._lib._array_apir   r	   r
   Úscipyr   rˆ   Úskip_xp_backendsÚlazy_xp_modulesr   r   r$   r&   rŽ   Úuses_xp_capabilitiesr¤   rÜ   rÝ   rÕ   rú   ró   r	  r  r-   r   r   ú<module>r     s  ðñ÷ TÑ SÝ &Ý *Û Û Û 
ß OÑ OÝ à—;‘;×/Ñ/Ð Ø�%€òÐ ò*ò
:÷,G8ñ G8÷Tp8ñ p8ñf ˜4Ô Ø‡�×!Ñ! %°	Ð!Ó:÷y<ð y<ó ;ó !ðy<ñx �3—<‘< §¡Ó/÷G>ð G>ó 0ðG>ñT �3—;‘;Ó÷0ð 0ó  ð0ñ4 �3—<‘<Ó ÷0ð 0ó !ñ0r   