Ë
    qwjKK  ã                   ó8  — 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 ddlmZ ej$                  j&                  Zg d¢Zd	„ Zd
„ Z G d„ d«      Z G d„ d«      Z ed¬«       G d„ d«      «       Z G d„ d«      Z G d„ d«      Z 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)Úfft)é   é   é   é   é   é   é	   é
   é   i˜  i  c                  óD   — t         D ]  } t        t        | «      | «       Œ y )N)Ú_5_smooth_numbersr   r   )Úns    ú`/var/www/html/newmanjeet/manjet/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_len7   ód   € Ü
�	‰	�‰�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  )
r1   Úint16Úint32Úint64Úuint16Úuint32Úuint64r   r   Úint©r5   ÚITYPESÚitypr   ÚtestNs        r   Útest_np_integersz TestNextFastLen.test_np_integersF   s\   € Ü—(‘(œBŸH™H¤b§h¡h´·	±	¼2¿9¹9ÄbÇiÁiÐPˆÛˆDÙ�U“ˆAÜ! !Ó$ˆEÜ˜¤¬c°!«fÓ 5Õ6ñ r   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   é   rG   rH   é   éý  rJ   rK   T©Úitemsr   r   ©r5   Úhamsr   Úys       r   Útestnext_fast_len_smallz'TestNextFastLen.testnext_fast_len_smallM   sP   € à�Q˜1  q¨Q°1¸ÀÈØ˜ $¨d¸hñ
ˆð —J‘J–L‰DˆAˆqÜœ q¨$Ó/°Õ3ñ !r   ì        ú$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         	 )rn   ì   ˆ2 f;Ùro   ì   ÿÿÿÿrp   ì    `71Y!rq   ì          ì   ËóX rr   ì   !ËóX TrQ   rS   s       r   Útestnext_fast_len_bigz%TestNextFastLen.testnext_fast_len_bigU   s"  € ð
Ø�yð
Ø"/°ð
à�yð
ð �yð
ð #0°ð
ð ˜,ð	
ð )9¸,ð	
ð
 ˜=ð
ð
 +<¸]ð
ð ˜_ð
ð   ð
ð ˜_ð
ð   ð
ð Ð.ð
ð !Ð"2ð
ð Ð0ð
ð "Ð#4ð
ð   1Ø#4à0Ø#4à0Ø#4Ø 2Ø$6Ø$6Ø 2Ø$6ò9
ˆð< —J‘J–L‰DˆAˆqÜœ q¨$Ó/°Õ3ñ !r   c                 óL   — t        dd¬«      dk(  sJ ‚t        dd¬«      dk(  sJ ‚y )Nr0   T©Úrealé   rM   F©Útargetr|   )r   )r5   Úxps     r   Útest_keyword_argsz!TestNextFastLen.test_keyword_argsz   ó,   € Ü˜R dÔ+¨rÒ1Ð1Ð1Ü A¨EÔ2°aÒ7Ð7Ñ7r   N)Ú__name__Ú
__module__Ú__qualname__r   rE   rV   ÚpytestÚmarkÚxfailÚsysÚmaxsizeÚ
ValueErrorry   r�   r,   r   r   r%   r%   5   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.   r/   r0   FTr   )r1   r2   r3   r   r#   r4   s       r   Útest_prev_fast_lenz"TestPrevFastLen.test_prev_fast_len�   r7   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 )Nr9   Tr{   )
r1   r:   r;   r<   r=   r>   r?   r   r   r@   rA   s        r   rE   z TestPrevFastLen.test_np_integers�   s€   € Ü—(‘(œBŸH™H¤b§h¡h´·	±	¼2¿9¹9Ü—I‘IðˆãˆDÙ�U“ˆAÜ! !Ó$ˆEÜ˜¤¬c°!«fÓ 5Ô6ä! !¨$Ô/ˆEÜ˜¤¬c°!«f¸4Ô @ÕAñ 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}   rG   rH   r*   rJ   rK   rL   TrM   r   r   r0   é   rN   rO   rI   é   é   é   éx   éy   ið  )rI   é   r”   r•   r–   r—   r˜   éz   rP   rJ   rK   F©rR   r   r   rS   s       r   Útestprev_fast_len_smallz'TestPrevFastLen.testprev_fast_len_small›   sF  € à�Q˜1  q¨Q°1¸ÀÈØ˜ $¨d¸hñ
ˆð —J‘J–L‰DˆAˆqÜœ q¨$Ó/°Õ3ð !ð
Øˆqð
Ø�Qð
Ø˜1ð
Ø ð
Ø$% qð
Ø*+¨Qð
Ø01°1ð
Ø67¸ð
Ø<=¸qð
ØBDÀbð
à�ð
à˜ð
à ð
à$&¨ð
à,.°ð
à46¸ð
à<>Àð
àHJØ˜ ¨°¸3ÀSØ˜d¨hò	
ˆð —J‘J–L‰DˆAˆqÜœ q¨%Ó0°!Õ4ñ !r   rW   rX   TrY   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r`   ra   i*‰ë2i@¢®2rb   rc   l   ÿ· l     W:¶ rd   re   l   Ÿ>å9ùl    8ÝÓrf   rg   l   ÿÿeØn l        n rh   ri   l   ÿ÷q…. l       ˜, rj   rk   l   ÿÿ¢!Í l        Í rl   l   î…hRrm   l    @Õ�!Rrn   l   Š2 f;Ùrs   l   € �aØØro   l         rt   l     ê+žKÿrp   l    h»\arq   l      >å9ùrr   )ru   l   ÿ_71Y!rq   rv   l   ÿÿÿÿrr   rx   rw   Tr›   rS   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‰DˆAˆqÜœ q¨$Ó/°Õ3ñ !r   c                 óL   — t        dd¬«      dk(  sJ ‚t        dd¬«      dk(  sJ ‚y )Nr0   Tr{   r   rM   Fr~   )r   )r5   s    r   r�   z!TestPrevFastLen.test_keyword_argsí   r‚   r   N)rƒ   r„   r…   r�   rE   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_onlyc                   ó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   ©	r5   r€   r   Ú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   rM   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_defaults7  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_defaultsE  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_shapeR  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_axes_  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_axesl  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¿   )r5   r€   r   r§   r¨   s        r   Útest_shape_axes_subsetz2Test_init_nd_shape_and_axes.test_shape_axes_subsety  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   )r5   r€   r   s      r   Útest_errorsz'Test_init_nd_shape_and_axes.test_errors€  s  € Ø�H‰H�Q‹KˆÜœ:ð .2ö 3ä# A¨T¸!¸Q¸À!ÀQÀÐ8HÕI÷3ô œ:ð .2ö 3ä# A¨TÒ8HÕI÷3ô œ:Ø!GöIä# A¨T¸¸Õ<÷Iô œ:Ø!GöIä# A¨T¸¸Õ=÷Iô œ:Ø!:ö<ä# A¨T¸¸A¸Õ?÷<ô œ:ð .2ö 3ä# A¨q°!¨f°q¸!°fÐ-=ÀDÕI÷3ô œ:ð .2ö 3ä# AÒ-=ÀDÕI÷3ô œ:ð"<ö=ô $ B§H¡Hª\Ó$:Ú*3¸1¸#õ?÷=ô œ:ð"3ö4ô $ A¨a¨S°tÕ<÷4ô
 œ:ð"4ö5ô $ A¨R°dÕ;÷5ð 5÷O3ñ 3ú÷3ñ 3ú÷Iñ Iú÷Iñ Iú÷<ñ <ú÷3ñ 3ú÷3ð 3ú÷=ð =ú÷4ð 4ú÷
5ð 5ú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)r5   r€   r   rU   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¥   r1   r2   r   r
   rÚ   rÙ   )r5   r€   r   r   s       r   Útest_inversezTestFFTShift.test_inverse»  sF   € Û$ˆ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Ø   )r5   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Ú   )r5   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©r5   r€   r   Úx2rU   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	   ©r5   r€   Údevicesr"   rU   r   s         r   Útest_devicezTestFFTFreq.test_device  sF   € ÛˆAÜ—‘˜A "¨QÔ/ˆAØ—‘˜ 1�Ó%ˆAÜ˜Q“<¤9¨Q£<Ó/Ð/Ð/ñ r   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'  sF   € ÛˆAÜ—‘˜Q 2¨aÔ0ˆAØ—‘˜ 1�Ó%ˆAÜ˜Q“<¤9¨Q£<Ó/Ð/Ð/ñ r   Nr  r,   r   r   r  r    s   „ ò2ó$0r   r  )Ú__doc__Úscipy.fft._helperr   r   r   Únumpy.testingr   r†   r   rÏ   Únumpyr1   r‰   Úscipy._lib._array_apir   r	   Úscipyr
   r‡   Úskip_xp_backendsr   r   r#   r%   r�   r¢   rÒ   rð   r  r,   r   r   Ú<module>r     s§   ðñ÷ TÑ SÝ &Ý *Û Û Û 
ß <Ý à—;‘;×/Ñ/Ð òÐ ò*ò
:÷,G8ñ G8÷Tp8ñ p8ñf ˜4Ô ÷y<ð y<ó !ðy<÷xG>ñ G>÷T0ñ 0÷40ò 0r   