§
    fŠtjKK  ã                   óV  — 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dS )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                  óT   — t           D ]} t          t          | ¦  «        | ¦  «         Œ d S )N)Ú_5_smooth_numbersr   r   )Úns    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/fft/tests/test_helper.pyÚtest_next_fast_lenr      s6   € Ýð *ð *ˆÝ•] 1Ñ%Ô% qÑ)Ô)Ð)Ð)ð*ð *ó    c                 óò   — | }|dk     rJ ‚	 t          | d¦  «        \  }}|dk    rn|} Œt          d|dz   d¦  «        D ] }	 t          | |¦  «        \  }}|dk    rn|} ŒŒ!| dk    sJ d|› d|› d	| › �¦   «         ‚d S )
Nr   FTr   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ØˆuðÝ�a˜‰|Œ|‰ˆˆ1Ø�Š6ˆ6ØØˆð	õ �1�a˜‘c˜1ÑÔð ð ˆð	Ý˜!˜Q‘<”<‰DˆAˆqØ�AŠvˆvØØˆAð		ð ð �Š6ˆ6ˆ6Ø9�Ð9Ð9 Ð9Ð9°aÐ9Ð9ñ Œ6ˆ6ˆ6ˆ6r   c                   ó†   — e Zd Zd„ Zd„ Zd„ Zej                             e	j
        dk     ded¬¦  «        d„ ¦   «         Zd	„ Zd
S )ÚTestNextFastLenc                 ó  — t           j                             d¦  «         d„ } |¦   «         D ]W}t          |¦  «        }t	          |d¦  «         |t          |d¦  «        k    sJ ‚t          |d¦  «        }t	          |d¦  «         ŒXd S )NéÒ  c               3   ó>   K  — t          dd¦  «        E d {V —† dV — d S ©Nr   éè  i€y ©r   © r   r   Únumsz0TestNextFastLen.test_next_fast_len.<locals>.nums:   ó8   è è € Ý˜Q ‘~”~Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø(Ð(Ð(Ð(Ð(Ð(r   é   FTr   )ÚnpÚrandomÚseedr   r#   ©Úselfr-   r   Úms       r   r   z"TestNextFastLen.test_next_fast_len7   ó    € Ý
Œ	�Š�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 ]F} |d¦  «        }t          |¦  «        }t          |t          t          |¦  «        ¦  «        ¦  «         ŒGd S )Né90  )
r0   Úint16Úint32Úint64Úuint16Úuint32Úuint64r   r   Úint©r4   ÚITYPESÚitypr   ÚtestNs        r   Útest_np_integersz TestNextFastLen.test_np_integersF   st   € Ý”(�BœH¥b¤hµ´	½2¼9ÅbÄiÐPˆØð 	7ð 	7ˆDØ��U‘”ˆAÝ! !Ñ$Ô$ˆEÝ˜¥­c°!©f¬fÑ 5Ô 5Ñ6Ô6Ð6Ð6ð	7ð 	7r   c                 óš   — ddddddddddd	d
ddddœ}|                      ¦   «         D ]#\  }}t          t          |d¦  «        |¦  «         Œ$d S )Nr   r   r   r   r   r   r   é   é   é   i   é   é @©r   r   r   r   r   r   é   r   é   rF   rG   é   éý  rI   rJ   T©Úitemsr   r   ©r4   Úhamsr   Úys       r   Útestnext_fast_len_smallz'TestNextFastLen.testnext_fast_len_smallM   sr   € à�Q˜1  q¨Q°1¸ÀÈØ˜ $¨d¸hð
ð 
ˆð —J’J‘L”Lð 	4ð 	4‰DˆAˆqÝ� q¨$Ñ/Ô/°Ñ3Ô3Ð3Ð3ð	4ð 	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 œ¥}|                      ¦   «         D ]#\  }}t          t          |d!¦  «        |¦  «         Œ$d S )"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         	 )rm   ì   ˆ2 f;Ùrn   ì   ÿÿÿÿro   ì    `71Y!rp   ì          ì   ËóX rq   ì   !ËóX TrP   rR   s       r   Útestnext_fast_len_bigz%TestNextFastLen.testnext_fast_len_bigU   sI  € ð
Ø�yð
Ø"/°ð
à�yð
ð �yð
ð #0°ð
ð ˜,ð	
ð )9¸,ð	
ð
 ˜=ð
ð
 +<¸]ð
ð ˜_ð
ð   ð
ð ˜_ð
ð   ð
ð Ð.ð
ð !Ð"2ð
ð Ð0ð
ð "Ð#4ð
ð   1Ø#4à0Ø#4à0Ø#4Ø 2Ø$6Ø$6Ø 2Ø$6ð9
ð 
ð 
ˆð< —J’J‘L”Lð 	4ð 	4‰DˆAˆqÝ� q¨$Ñ/Ô/°Ñ3Ô3Ð3Ð3ð	4ð 	4r   c                 ób   — t          dd¬¦  «        dk    sJ ‚t          dd¬¦  «        dk    sJ ‚d S )Nr/   T©Úrealé   rL   F©Útargetr{   )r   )r4   Úxps     r   Útest_keyword_argsz!TestNextFastLen.test_keyword_argsz   óD   € Ý˜R dÐ+Ñ+Ô+¨rÒ1Ð1Ð1Ð1Ý A¨EÐ2Ñ2Ô2°aÒ7Ð7Ð7Ð7Ð7Ð7r   N)Ú__name__Ú
__module__Ú__qualname__r   rD   rU   ÚpytestÚmarkÚxfailÚsysÚmaxsizeÚ
ValueErrorrx   r€   r,   r   r   r%   r%   5   s—   € € € € € ð#ð #ð #ð7ð 7ð 7ð4ð 4ð 4ð „[×Ò�s”{ UÒ*ØDØ(°ð ñ 7ô 7ð 4ð  4ñ7ô 7ð 4ðD8ð 8ð 8ð 8ð 8r   r%   c                   ó†   — e Zd Zd„ Zd„ Zd„ Zej                             e	j
        dk     ded¬¦  «        d„ ¦   «         Zd	„ Zd
S )ÚTestPrevFastLenc                 ó  — t           j                             d¦  «         d„ } |¦   «         D ]W}t          |¦  «        }t	          |d¦  «         |t          |d¦  «        k    sJ ‚t          |d¦  «        }t	          |d¦  «         ŒXd S )Nr'   c               3   ó>   K  — t          dd¦  «        E d {V —† dV — d S r)   r+   r,   r   r   r-   z0TestPrevFastLen.test_prev_fast_len.<locals>.nums„   r.   r   r/   FTr   )r0   r1   r2   r   r#   r3   s       r   Útest_prev_fast_lenz"TestPrevFastLen.test_prev_fast_len�   r6   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¬¦  «        ¦  «         Œ„d S )Nr8   Trz   )
r0   r9   r:   r;   r<   r=   r>   r   r   r?   r@   s        r   rD   z TestPrevFastLen.test_np_integers�   s°   € Ý”(�BœH¥b¤hµ´	½2¼9Ý”Iðˆàð 	Bð 	BˆDØ��U‘”ˆAÝ! !Ñ$Ô$ˆEÝ˜¥­c°!©f¬fÑ 5Ô 5Ñ6Ô6Ð6å! !¨$Ð/Ñ/Ô/ˆEÝ˜¥­c°!©f¬f¸4Ð @Ñ @Ô @ÑAÔAÐAÐAð	Bð 	Br   c                 ó�  — dddddddddd	d
d
ddddœ}|                      ¦   «         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œ¥}|                      ¦   «         D ]#\  }}t          t          |d¦  «        |¦  «         Œ$d S ) Nr   r   r   r   r   r   r   r|   rF   rG   r*   rI   rJ   rK   TrL   r   r   r/   é   rM   rN   rH   é   é   é   éx   éy   ið  )rH   é   r“   r”   r•   r–   r—   éz   rO   rI   rJ   F©rQ   r   r   rR   s       r   Útestprev_fast_len_smallz'TestPrevFastLen.testprev_fast_len_small›   s…  € à�Q˜1  q¨Q°1¸ÀÈØ˜ $¨d¸hð
ð 
ˆð —J’J‘L”Lð 	4ð 	4‰DˆAˆqÝ� q¨$Ñ/Ô/°Ñ3Ô3Ð3Ð3ð
Øˆqð
Ø�Qð
Ø˜1ð
Ø ð
Ø$% qð
Ø*+¨Qð
Ø01°1ð
Ø67¸ð
Ø<=¸qð
ØBDÀbð
à�ð
à˜ð
à ð
à$&¨ð
à,.°ð
à46¸ð
à<>Àð
àHJØ˜ ¨°¸3ÀSØ˜d¨hð	
ð 
ð 
ˆð —J’J‘L”Lð 	5ð 	5‰DˆAˆqÝ� q¨%Ñ0Ô0°!Ñ4Ô4Ð4Ð4ð	5ð 	5r   rV   rW   TrX   c           
      ó`  — 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œ¥}|                      ¦   «         D ]#\  }}t          t          |d2¦  «        |¦  «         Œ$d S )3Nr\   r]   i¿Çhi  `r^   iÁ=ui¿=ur_   r`   i*‰ë2i@¢®2ra   rb   l   ÿ· l     W:¶ rc   rd   l   Ÿ>å9ùl    8ÝÓre   rf   l   ÿÿeØn l        n rg   rh   l   ÿ÷q…. l       ˜, ri   rj   l   ÿÿ¢!Í l        Í rk   l   î…hRrl   l    @Õ�!Rrm   l   Š2 f;Ùrr   l   € �aØØrn   l         rs   l     ê+žKÿro   l    h»\arp   l      >å9ùrq   )rt   l   ÿ_71Y!rp   ru   l   ÿÿÿÿrq   rw   rv   Trš   rR   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
ð 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
ð 9
ð^ $5Ø#4à 2Ø$6Ø$6à 2Ø$6Ø$6ðq9
ð 9
ð 9
ˆðt —J’J‘L”Lð 	4ð 	4‰DˆAˆqÝ� q¨$Ñ/Ô/°Ñ3Ô3Ð3Ð3ð	4ð 	4r   c                 ób   — t          dd¬¦  «        dk    sJ ‚t          dd¬¦  «        dk    sJ ‚d S )Nr/   Trz   r   rL   Fr}   )r   )r4   s    r   r€   z!TestPrevFastLen.test_keyword_argsí   r�   r   N)r‚   rƒ   r„   r�   rD   r›   r…   r†   r‡   rˆ   r‰   rŠ   r�   r€   r,   r   r   rŒ   rŒ      sš   € € € € € ð#ð #ð #ð	Bð 	Bð 	Bð5ð 5ð 5ð" „[×Ò�s”{ UÒ*ØDØ(°ð ñ 7ô 7ð<4ð <4ñ7ô 7ð<4ð|8ð 8ð 8ð 8ð 8r   rŒ   T)Úcpu_onlyc                   óV   — 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dS )ÚTest_init_nd_shape_and_axesc                 óˆ   — |                      d¦  «        }d }d }d}g }t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )Nr   r,   ©Úasarrayr   ©	r4   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õ   sc   € Ø�JŠJ�q‰MŒMˆØˆØˆàˆØˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 óˆ   — |                      d¦  «        }d }d }d}g }t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )Ng      @r,   r£   r¥   s	            r   Útest_xp_0d_defaultsz/Test_init_nd_shape_and_axes.test_xp_0d_defaults  sc   € Ø�JŠJ�r‰NŒNˆØˆØˆàˆØˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 óŽ   — |                      g d¢¦  «        }d }d }d}dg}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )N©r   r   r   )r   r   r£   r¥   s	            r   Útest_py_1d_defaultsz/Test_init_nd_shape_and_axes.test_py_1d_defaults  sk   € Ø�JŠJ�y�y�yÑ!Ô!ˆØˆØˆàˆØ˜ˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 óŽ   — |                      ddd¦  «        }d }d }d}dg}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )Nr   r   çš™™™™™¹?)r   )Úaranger   r¥   s	            r   Útest_xp_1d_defaultsz/Test_init_nd_shape_and_axes.test_xp_1d_defaults  sk   € Ø�IŠI�a˜˜BÑÔˆØˆØˆàˆØ˜ˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó˜   — |                      g d¢g d¢g¦  «        }d }d }d}ddg}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )N)r   r   r   r   )r   r   rL   r   )r   r   r   r   r£   r¥   s	            r   Útest_py_2d_defaultsz/Test_init_nd_shape_and_axes.test_py_2d_defaults)  s}   € Ø�JŠJ˜˜˜Ø$˜˜ð&ñ 'ô 'ˆàˆØˆàˆØ˜A˜ˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó¼   — |                      ddd¦  «        }|                     |d¦  «        }d }d }d}ddg}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )Nr   r   r³   )r   r   )r´   Úreshaper   r¥   s	            r   Útest_xp_2d_defaultsz/Test_init_nd_shape_and_axes.test_xp_2d_defaults7  s€   € Ø�IŠI�a˜˜BÑÔˆØ�JŠJ�q˜&Ñ!Ô!ˆØˆØˆàˆØ˜A˜ˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó�   — |                      g d¢¦  «        }d }d }d}g d¢}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )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  sm   € Ø�HŠH�_�_�_Ñ%Ô%ˆØˆØˆà(ˆØ'˜˜ˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó”   — |                      g d¢¦  «        }g d¢}d }d}g d¢}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )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ÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó”   — |                      g d¢¦  «        }d }g d¢}d}g d¢}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )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_  sq   € Ø�HŠH�_�_�_Ñ%Ô%ˆØˆØˆyˆyˆà"ˆØ!˜	˜	ˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó˜   — |                      g d¢¦  «        }g d¢}g d¢}d}g d¢}t          |||¦  «        \  }}||k    sJ ‚||k    sJ ‚d S )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  su   € Ø�HŠH�_�_�_Ñ%Ô%ˆØ��ˆØˆyˆyˆà#ˆØ!˜	˜	ˆå5°a¸ÀÑEÔEÑˆ	�8à˜NÒ*Ð*Ð*Ð*Ø˜=Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó~   — |                      d¦  «        }t          |dd ¬¦  «        \  }}|dk    sJ ‚|g d¢k    sJ ‚d S )N)r   r   r   r   )r   r   r   ©r¦   r§   r°   r¾   )r4   r   r   r¦   r§   s        r   Útest_shape_axes_subsetz2Test_init_nd_shape_and_axes.test_shape_axes_subsety  sW   € Ø�HŠH�\Ñ"Ô"ˆÝ-¨a°yÀtÐLÑLÔL‰ˆˆtà˜	Ò!Ð!Ð!Ð!Ø�y�y�yÒ Ð Ð Ð Ð Ð r   c                 óŒ  — |                      d¦  «        }t          t          d¬¦  «        5  t          |d ddgddgg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          |d g d¢¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d	¬¦  «        5  t          |d dg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d	¬¦  «        5  t          |d d
g¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          |d ddg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          |ddgddggd ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          |g d¢d ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          |                      g d¢¦  «        g d¢dg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          |dgd ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          |d
d ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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   )r4   r   r   s      r   Útest_errorsz'Test_init_nd_shape_and_axes.test_errors€  s  € Ø�HŠH�Q‰KŒKˆÝ�:ð .2ð 3ñ 3ô 3ð 	Jð 	Jå# A¨T¸!¸Q¸À!ÀQÀÐ8HÐIÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jõ �:ð .2ð 3ñ 3ô 3ð 	Jð 	Jå# A¨TÐ8HÐ8HÐ8HÐIÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jõ �:Ø!GðIñ Iô Ið 	=ð 	=å# A¨T¸¸Ð<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=õ �:Ø!GðIñ Iô Ið 	>ð 	>å# A¨T¸¸Ð=Ñ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>õ �:Ø!:ð<ñ <ô <ð 	@ð 	@å# A¨T¸¸A¸Ð?Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@õ �:ð .2ð 3ñ 3ô 3ð 	Jð 	Jå# A¨q°!¨f°q¸!°fÐ-=ÀDÐIÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jõ �:ð .2ð 3ñ 3ô 3ð 	Jð 	Jå# AÐ-=Ð-=Ð-=ÀDÐIÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jõ �:ð"<ð=ñ =ô =ð 	?ð 	?õ $ B§H¢H¨\¨\¨\Ñ$:Ô$:Ø*3¨)¨)¸1¸#ð?ñ ?ô ?ð ?ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?õ �:ð"3ð4ñ 4ô 4ð 	=ð 	=õ $ A¨a¨S°tÐ<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=õ
 �:ð"4ð5ñ 5ô 5ð 	<ð 	<õ $ A¨R°dÐ;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s³   ¬AÁAÁAÁ2BÂBÂBÂ4CÃCÃCÃ5DÄDÄDÄ6EÅEÅEÅ8FÆF!Æ$F!Æ>GÇG#Ç&G#È +H7È7H;È>H;ÉI8É8I<É?I<ÊJ9Ê9J=Ë J=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dS )ÚTestFFTShiftc                 óÎ  — |                      g d¢¦  «        }|                      g d¢¦  «        }t          t          j        |¦  «        |¦  «         t          t          j        |¦  «        |¦  «         |                      g d¢¦  «        }|                      g d¢¦  «        }t          t          j        |¦  «        |¦  «         t          t          j        |¦  «        |¦  «         d S )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)r4   r   r   rT   s       r   Útest_definitionzTestFFTShift.test_definition±  sÌ   € Ø�JŠJÐ7Ð7Ð7Ñ8Ô8ˆØ�JŠJÐ7Ð7Ð7Ñ8Ô8ˆÝ�œ Q™œ¨Ñ+Ô+Ð+Ý�œ aÑ(Ô(¨!Ñ,Ô,Ð,Ø�JŠJÐ;Ð;Ð;Ñ<Ô<ˆØ�JŠJÐ;Ð;Ð;Ñ<Ô<ˆÝ�œ Q™œ¨Ñ+Ô+Ð+Ý�œ aÑ(Ô(¨!Ñ,Ô,Ð,Ð,Ð,r   c                 óÞ   — dD ]i}|                      t          j                             |f¦  «        ¦  «        }t          t	          j        t	          j        |¦  «        ¦  «        |¦  «         Œjd S )N)r   r   r   éd   éÓ   )r¤   r0   r1   r   r
   rÙ   rØ   )r4   r   r   r   s       r   Útest_inversezTestFFTShift.test_inverse»  sc   € Ø$ð 	?ð 	?ˆAØ—
’
�2œ9×+Ò+¨Q¨DÑ1Ô1Ñ2Ô2ˆAÝ�CœM­#¬,°q©/¬/Ñ:Ô:¸AÑ>Ô>Ð>Ð>ð	?ð 	?r   c                 óv  — |                      g d¢g d¢g d¢g¦  «        }|                      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        |¦  «        |¦  «         d S )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×   )r4   r   ÚfreqsÚshifteds       r   Útest_axes_keywordzTestFFTShift.test_axes_keywordÀ  s%  € Ø—
’
˜J˜J˜J¨
¨
¨
°L°L°LÐAÑBÔBˆØ—*’*˜m˜m˜m¨Y¨Y¨Y¸
¸
¸
ÐCÑDÔDˆÝ�œ U°Ð8Ñ8Ô8¸'ÑBÔBÐBÝ�œ U°Ð3Ñ3Ô3µS´\À%ÈdÐ5SÑ5SÔ5SÑTÔTÐTÝ�œ g°FÐ;Ñ;Ô;¸UÑCÔCÐCÝ�œ g°AÐ6Ñ6Ô6Ýœ g°DÐ9Ñ9Ô9ñ	;ô 	;ð 	;å�œ UÑ+Ô+¨WÑ5Ô5Ð5Ý�œ gÑ.Ô.°Ñ6Ô6Ð6Ð6Ð6r   c                 ó   — |                      ddgddgddgg|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¬¦  «        |¦  «         |                      ddgddgddgg|j        ¬¦  «        }t          t          j        |d¬¦  «        |¦  «         t          t          j        |d¬¦  «        |¦  «         |                      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        |¦  «        |¦  «         dS )z1 Test 2D input, which has uneven dimension sizes r   r   r   r   r   r   ©Údtyperá   râ   rà   N)r¤   Úfloat64r   r
   rØ   rÙ   )r4   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Ñ3Ô3°ZÑ@Ô@Ð@Ý�œ j°qÐ9Ñ9Ô9¸5ÑAÔAÐAÝ�œ U°Ð6Ñ6Ô6¸
ÑCÔCÐCÝ�œ j¸°sÐ;Ñ;Ô;¸UÑCÔCÐCð —Z’ZØ�ˆFØ�ˆFØ�ˆFð!
ð ”ð	  ñ ô ˆ
õ
 	�œ U°Ð3Ñ3Ô3°ZÑ@Ô@Ð@Ý�œ j°qÐ9Ñ9Ô9¸5ÑAÔAÐAð ŸšØ�ˆFØ�ˆFØ�ˆFð%
ð ”ð	 $ñ ô ˆõ
 	�œ U°Ð8Ñ8Ô8¸.ÑIÔIÐIÝ�œ n¸6ÐBÑBÔBÀEÑJÔJÐJÝ�œ U°!°Q°Ð8Ñ8Ô8¸.ÑIÔIÐIÝ�œ n¸A¸q¸6ÐBÑBÔBÀEÑJÔJÐJõ 	�œ U°Ð6Ñ6Ô6¸ÑGÔGÐGÝ�œ n¸4Ð@Ñ@Ô@À%ÑHÔHÐHÝ�œ UÑ+Ô+¨^Ñ<Ô<Ð<Ý�œ nÑ5Ô5°uÑ=Ô=Ð=Ð=Ð=r   N)r‚   rƒ   r„   rÚ   rÞ   rå   rí   r,   r   r   rÑ   rÑ   ¯  sP   € € € € € ð-ð -ð -ð?ð ?ð ?ð
	7ð 	7ð 	7ð+>ð +>ð +>ð +>ð +>r   rÑ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestFFTFreqc                 ó  — |                      g d¢|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¬	¦  «         d S )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©r4   r   r   Úx2rT   s        r   rÚ   zTestFFTFreq.test_definitionú  s  € Ø�JŠJÐ6Ð6Ð6¸b¼jˆJÑIÔIˆØ�ZŠZÐ;Ð;Ð;À2Ä:ˆZÑNÔNˆð •”˜A "Ð%Ñ%Ô%Ñ%ˆÝ˜˜1¨%ÀÐFÑFÔFÐFà�”‰I�œ A r¤u°Ð4Ñ4Ô4Ñ4ˆÝ˜˜1¨%Ð0Ñ0Ô0Ð0à•”˜R BÐ'Ñ'Ô'Ñ'ˆÝ˜˜2¨5Ð1Ñ1Ô1Ð1à�”‰J�œ R¨¬°2Ð6Ñ6Ô6Ñ6ˆÝ˜˜2¨5Ð1Ñ1Ô1Ð1Ð1Ð1r   c                 ó°   — |D ]R}t          j        d||¬¦  «        }|                     d|¬¦  «        }t          |¦  «        t          |¦  «        k    sJ ‚ŒSd S ©Nr   )r   Údevicer   )rü   )r
   rö   Úemptyr	   ©r4   r   Údevicesr"   rT   r   s         r   Útest_devicezTestFFTFreq.test_device  sf   € Øð 	0ð 	0ˆAÝ”˜A "¨QÐ/Ñ/Ô/ˆAØ—’˜ 1�Ñ%Ô%ˆAÝ˜Q‘<”<¥9¨Q¡<¤<Ò/Ð/Ð/Ð/Ð/ð	0ð 	0r   N©r‚   rƒ   r„   rÚ   r   r,   r   r   rï   rï   ù  s2   € € € € € ð2ð 2ð 2ð$0ð 0ð 0ð 0ð 0r   rï   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestRFFTFreqc                 ó  — |                      g d¢|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¬	¦  «         d S )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Ñ9Ô9ˆØ�ZŠZÐ*Ð*Ð*°"´*ˆZÑ=Ô=ˆð •”˜Q 2Ð&Ñ&Ô&Ñ&ˆÝ˜˜1¨%ÀÐFÑFÔFÐFà�”‰I�œ Q¨¬°"Ð5Ñ5Ô5Ñ5ˆÝ˜˜1¨%Ð0Ñ0Ô0Ð0à•”˜b RÐ(Ñ(Ô(Ñ(ˆÝ˜˜2¨5Ð1Ñ1Ô1Ð1à�”‰J�œ b¨"¬%°BÐ7Ñ7Ô7Ñ7ˆÝ˜˜2¨5Ð1Ñ1Ô1Ð1Ð1Ð1r   c                 ó°   — |D ]R}t          j        d||¬¦  «        }|                     d|¬¦  «        }t          |¦  «        t          |¦  «        k    sJ ‚ŒSd S rû   )r
   r  rý   r	   rþ   s         r   r   zTestRFFTFreq.test_device'  sf   € Øð 	0ð 	0ˆAÝ”˜Q 2¨aÐ0Ñ0Ô0ˆAØ—’˜ 1�Ñ%Ô%ˆAÝ˜Q‘<”<¥9¨Q¡<¤<Ò/Ð/Ð/Ð/Ð/ð	0ð 	0r   Nr  r,   r   r   r  r    s2   € € € € € ð2ð 2ð 2ð$0ð 0ð 0ð 0ð 0r   r  )Ú__doc__Úscipy.fft._helperr   r   r   Únumpy.testingr   r…   r   rÎ   Únumpyr0   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Ð SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø Ð Ð Ð Ð Ð à”;Ô/Ð ðð ð Ð ð*ð *ð *ð
:ð :ð :ð,G8ð G8ð G8ð G8ð G8ñ G8ô G8ð G8ðTp8ð p8ð p8ð p8ð p8ñ p8ô p8ð p8ðf Ð˜4Ð Ñ Ô ðy<ð y<ð y<ð y<ð y<ñ y<ô y<ñ !Ô ðy<ðxG>ð G>ð G>ð G>ð G>ñ G>ô G>ð G>ðT0ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ð40ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0r   