Ë
    qwj�  ã                   óˆ   — d dl Z d dlZd dlmZmZmZmZmZm	Z	 d dl
Z
d dlmZ e
j                  j                  Z G d„ d«      Zy)é    N)Úxp_assert_equalÚassert_array_almost_equalÚassert_almost_equalÚis_cupyÚmake_xp_test_caseÚmake_xp_pytest_param)Úndimagec            
       ó:  — e Zd Zej                  j                  dg d¢«      ej                  j                  dddg«       eej                  «      d„ «       «       «       Z	ej                  j                  dddg«      ej                  j                  dd	d
g«       eej                  «      d„ «       «       «       Z
ej                  j                  dg d¢«      ej                  j                  dddg«       eej                  «      d„ «       «       «       Zej                  j                  dddg«      ej                  j                  dd	d
g«       eej                  «      d„ «       «       «       Zej                  j                  dddg«      ej                  j                  dddg«       eej                  «      d„ «       «       «       Zej                  j                  dddg«      ej                  j                  dddg«       eej                  «      d„ «       «       «       Zej                  j                  dg d¢«      ej                  j                  dddg«       eej"                  «      d„ «       «       «       Zej                  j                  dddg«      ej                  j                  ddd
g«       eej"                  «      d„ «       «       «       Z eej"                  «      d„ «       Z eej"                  «      d„ «       Zej                  j                  dg d¢«      ej                  j                  dg d¢«      ej                  j                  d eej"                  «       eej                  «       eej                  «      g«      d„ «       «       «       Zy) ÚTestNdimageFourierÚshape)©é    é   ©é   é   )é   é
   z
dtype, dec)Úfloat32é   )Úfloat64é   c                 óÊ  — t        |d«      }t        j                  ||¬«      }d|d<   |j                  |«      }|j	                  ||d   d¬«      }|j                  ||d   d¬«      }t        j                  |dd	g|d   d«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        t        j                  |«      |j                  d«      |d
¬«       y ©NÚfft©Údtypeç      ð?©r   r   r   ©ÚnÚaxisr   ç      @ç      @F©ÚdecimalÚcheck_0d)ÚgetattrÚnpÚzerosÚasarrayÚrfftr   r	   Úfourier_gaussianÚifftÚirfftr   Úsum©Úselfr   r   ÚdecÚxpr   Úas          úe/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/ndimage/tests/test_fourier.pyÚtest_fourier_gaussian_real01z/TestNdimageFourier.test_fourier_gaussian_real01   sÕ   € ô �b˜%Ó ˆä�H‰H�U %Ô(ˆØˆˆ$‰Ø�J‰J�q‹Mˆà�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×$Ñ$ Q¨¨c¨
°E¸!±H¸aÓ@ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�I‰I�a˜5 ™8¨!ˆIÓ,ˆÜœGŸK™K¨›N¨B¯J©J°q«MÀ3Ø%*ö	,ó    r   r   )Ú	complex64r   )Ú
complex128r   c                 óâ  — t        |d«      }t        j                  ||¬«      }d|d<   |j                  |«      }|j	                  ||d   d¬«      }|j	                  ||d   d¬«      }t        j                  |dd	gd
d«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        t        j                  |j                  |«      «      |j                  d«      |d¬«       y ©Nr   r   r   r   r   r    r   r#   r$   éÿÿÿÿFr%   )r(   r)   r*   r+   r   r	   r-   r.   r   r0   Úrealr1   s          r6   Útest_fourier_gaussian_complex01z2TestNdimageFourier.test_fourier_gaussian_complex01(   sÚ   € ô �b˜%Ó ˆä�H‰H�U %Ô(ˆØˆˆ$‰Ø�J‰J�q‹Mˆà�G‰G�A˜˜q™¨ˆGÓ*ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×$Ñ$ Q¨¨c¨
°B¸Ó:ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆÜœGŸK™K¨¯©°«
Ó3°R·Z±ZÀ³_ÈcØ%*ö	,r8   c                 óÊ  — t        |d«      }t        j                  ||¬«      }d|d<   |j                  |«      }|j	                  ||d   d¬«      }|j                  ||d   d¬«      }t        j                  |dd	g|d   d«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        t        j                  |«      |j                  d«      |d
¬«       y r   )r(   r)   r*   r+   r,   r   r	   Úfourier_uniformr.   r/   r   r0   r1   s          r6   Útest_fourier_uniform_real01z.TestNdimageFourier.test_fourier_uniform_real01:   sÕ   € ô �b˜%Ó ˆä�H‰H�U %Ô(ˆØˆˆ$‰Ø�J‰J�q‹Mˆà�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×#Ñ# A¨¨S z°5¸±8¸QÓ?ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�I‰I�a˜5 ™8¨!ˆIÓ,ˆÜœGŸK™K¨›N¨B¯J©J°s«OÀSØ%*ö	,r8   c                 óâ  — t        |d«      }t        j                  ||¬«      }d|d<   |j                  |«      }|j	                  ||d   d¬«      }|j	                  ||d   d¬«      }t        j                  |dd	gd
d«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        t        j                  |j                  |«      «      |j                  d«      |d¬«       y r<   )r(   r)   r*   r+   r   r	   rA   r.   r   r0   r>   r1   s          r6   Útest_fourier_uniform_complex01z1TestNdimageFourier.test_fourier_uniform_complex01L   sÚ   € ô �b˜%Ó ˆä�H‰H�U %Ô(ˆØˆˆ$‰Ø�J‰J�q‹Mˆà�G‰G�A˜˜q™¨ˆGÓ*ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×#Ñ# A¨¨S z°2°qÓ9ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆÜœGŸK™K¨¯©°«
Ó3°R·Z±ZÀ³_ÈcØ%*ö	,r8   )r   é   )r   é   c                 óÎ  — t        |d«      }t        j                  |d   |d   z  |¬«      j                  |«      }|j	                  |«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        j                  |ddg|d   d«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        |dd …dd …f   |d d…d d…f   |¬«       y ©Nr   r   r   r   r    r=   ©r&   )r(   r)   ÚarangeÚreshaper+   r,   r   r	   Úfourier_shiftr.   r/   r   ©r2   r   r   r3   r4   r   Úexpectedr5   s           r6   Útest_fourier_shift_real01z,TestNdimageFourier.test_fourier_shift_real01^   sí   € ô �b˜%Ó ˆä—9‘9˜U 1™X¨¨a©Ñ0¸Ô>×FÑFÀuÓMˆØ—:‘:˜hÓ'ˆà�H‰H�X  q¡°ˆHÓ2ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×!Ñ! ! a¨ V¨U°1©X°qÓ9ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�I‰I�a˜5 ™8¨!ˆIÓ,ˆÜ! ! A¡B¨© F¡)¨X°c°r°c¸3¸B¸3°hÑ-?ÈÖMr8   )r9   rE   )r:   rF   c                 ó>  — t        |d«      }t        j                  |d   |d   z  |¬«      j                  |«      }|j	                  |«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        j                  |ddgdd«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        |j                  |«      dd …dd …f   |d d…d d…f   |¬«       t        |j                  |«      |j                  |«      |¬«       y rH   )r(   r)   rJ   rK   r+   r   r	   rL   r.   r   r>   Úimagr*   rM   s           r6   Útest_fourier_shift_complex01z/TestNdimageFourier.test_fourier_shift_complex01n   s  € ô �b˜%Ó ˆä—9‘9˜U 1™X¨¨a©Ñ0¸Ô>×FÑFÀuÓMˆØ—:‘:˜hÓ'ˆà�G‰G�H  a¡¨qˆGÓ1ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×!Ñ! ! a¨ V¨R°Ó3ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆÜ! "§'¡'¨!£*¨Q©R°±¨VÑ"4°h¸sÀ¸sÀCÀRÀC¸xÑ6HÐRUÕVÜ! "§'¡'¨!£*¨b¯h©h°u«oÀsÖKr8   )r   é   c                 óÊ  — t        |d«      }t        j                  ||¬«      }d|d<   |j                  |«      }|j	                  ||d   d¬«      }|j                  ||d   d¬«      }t        j                  |dd	g|d   d«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        t        j                  |«      |j                  d«      |d
¬«       y r   )r(   r)   r*   r+   r,   r   r	   Úfourier_ellipsoidr.   r/   r   r0   r1   s          r6   Útest_fourier_ellipsoid_real01z0TestNdimageFourier.test_fourier_ellipsoid_real01   sÕ   € ô �b˜%Ó ˆä�H‰H�U %Ô(ˆØˆˆ$‰Ø�J‰J�q‹Mˆà�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×%Ñ% a¨#¨s¨°U¸1±X¸qÓAˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�I‰I�a˜5 ™8¨!ˆIÓ,ˆÜœGŸK™K¨›N¨B¯J©J°s«OÀSØ%*ö	,r8   )r9   rS   c                 óâ  — t        |d«      }t        j                  ||¬«      }d|d<   |j                  |«      }|j	                  ||d   d¬«      }|j	                  ||d   d¬«      }t        j                  |dd	gd
d«      }|j                  ||d   d¬«      }|j                  ||d   d¬«      }t        t        j                  |j                  |«      «      |j                  d«      |d¬«       y r<   )r(   r)   r*   r+   r   r	   rU   r.   r   r0   r>   r1   s          r6   Ú test_fourier_ellipsoid_complex01z3TestNdimageFourier.test_fourier_ellipsoid_complex01‘   sÚ   € ô �b˜%Ó ˆä�H‰H�U %Ô(ˆØˆˆ$‰Ø�J‰J�q‹Mˆà�G‰G�A˜˜q™¨ˆGÓ*ˆØ�G‰G�A˜˜q™¨ˆGÓ*ˆÜ×%Ñ% a¨#¨s¨°R¸Ó;ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆØ�H‰H�Q˜% ™(¨ˆHÓ+ˆÜœGŸK™K¨¯©°«
Ó3°R·Z±ZÀ³_ÈcØ%*ö	,r8   c                 óÆ   — |j                  d|j                  ¬«      }t        j                  t        «      5  t        j                  |d«       d d d «       y # 1 sw Y   y xY w)N)rE   r   é   r   r   é   )Úonesr:   ÚpytestÚraisesÚNotImplementedErrorr	   rU   )r2   r4   Úxs      r6   Ú)test_fourier_ellipsoid_unimplemented_ndimz<TestNdimageFourier.test_fourier_ellipsoid_unimplemented_ndim£   sC   € ð �G‰G�M¨¯©ˆGÓ7ˆÜ�]‰]Ô.Õ/Ü×%Ñ% a¨Ô+÷ 0×/Ñ/ús   ·AÁA c                 ó  — dD ]  }t        |j                  |j                  gddg«      D ]V  \  }}|j                  ||¬«      }t	        j
                  |ddd«      }t	        j                  |ddd«      }t        |||¬«       ŒX Œ� y )N))r   )r   rS   r   r   r=   r   rI   )Úzipr9   r:   r\   r	   rU   rA   r   )r2   r4   r   Útype_r3   r`   r5   Úbs           r6   Ú!test_fourier_ellipsoid_1d_complexz4TestNdimageFourier.test_fourier_ellipsoid_1d_complexª   s   € ó &ˆEÜ! 2§<¡<°·±Ð"?À!ÀRÀÖI‘
��sØ—G‘G˜E¨�GÓ/�Ü×-Ñ-¨a°°B¸Ó:�Ü×+Ñ+¨A¨q°"°aÓ8�Ü)¨!¨Q¸Ö<ñ	 Jñ &r8   ))r   )r   r   )r   r   r   )r   r   r9   r:   Ú	test_funcc                 óú   — t        |«      r<|j                  dk(  r-t        j                  |«      dk(  rt	        j
                  d«       t        ||«      }|j                  ||¬«      } ||d«      }t        ||«       y )NrU   r   z7CuPy's fourier_ellipsoid does not accept size==0 arraysr   r[   )	r   Ú__name__ÚmathÚprodr]   Úxfailr(   r\   r   )r2   r   r   rg   r4   r5   re   s          r6   Útest_fourier_zero_length_dimsz0TestNdimageFourier.test_fourier_zero_length_dims´   sk   € ô �BŒKØ×"Ñ"Ð&9Ò9Ü—	‘	˜%Ó  AÒ%ä�L‰LÐRÔSÜ˜˜EÓ"ˆØ�G‰G�E ˆGÓ'ˆÙ�a˜‹OˆÜ˜˜1Õr8   N)ri   Ú
__module__Ú__qualname__r]   ÚmarkÚparametrizer   r	   r-   r7   r?   rA   rB   rD   rL   rO   rR   rU   rV   rX   ra   rf   r   rm   © r8   r6   r   r      s´  „ à‡[�[×Ñ˜WÒ&CÓDØ‡[�[×Ñ˜\¨N¸OÐ+LÓMÙ�w×/Ñ/Ó0ñ,ó 1ó Nó Eð,ð ‡[�[×Ñ˜W x°Ð&:Ó;Ø‡[�[×Ñ˜\Ð,<Ð>PÐ+QÓRÙ�w×/Ñ/Ó0ñ,ó 1ó Só <ð,ð ‡[�[×Ñ˜WÒ&CÓDØ‡[�[×Ñ˜\¨N¸OÐ+LÓMÙ�w×.Ñ.Ó/ñ,ó 0ó Nó Eð,ð ‡[�[×Ñ˜W x°Ð&:Ó;Ø‡[�[×Ñ˜\Ð,<Ð>PÐ+QÓRÙ�w×.Ñ.Ó/ñ,ó 0ó Só <ð,ð ‡[�[×Ñ˜W x°Ð&:Ó;Ø‡[�[×Ñ˜\¨N¸OÐ+LÓMÙ�w×,Ñ,Ó-ñNó .ó Nó <ðNð ‡[�[×Ñ˜W x°Ð&:Ó;Ø‡[�[×Ñ˜\Ð,<Ð>PÐ+QÓRÙ�w×,Ñ,Ó-ñLó .ó Só <ðLð ‡[�[×Ñ˜WÒ&CÓDØ‡[�[×Ñ˜\¨N¸OÐ+LÓMÙ�w×0Ñ0Ó1ñ,ó 2ó Nó Eð,ð ‡[�[×Ñ˜W x°Ð&:Ó;Ø‡[�[×Ñ˜\Ð,<Ð>PÐ+QÓRÙ�w×0Ñ0Ó1ñ,ó 2ó Só <ð,ñ �w×0Ñ0Ó1ñ,ó 2ð,ñ �w×0Ñ0Ó1ñ=ó 2ð=ð ‡[�[×Ñ˜WÒ&?Ó@Ø‡[�[×Ñ˜Wò 'Bó Cà‡[�[×Ñ˜[Ù2°7×3LÑ3LÓMÙ2°7×3KÑ3KÓLÙ2°7×3JÑ3JÓKðMóNñ
ó	NóCó Añ
r8   r   )rj   Únumpyr)   Úscipy._lib._array_apir   r   r   r   r   r   r]   Úscipyr	   rp   Úskip_xp_backendsr   rr   r8   r6   Ú<module>rw      s9   ðÛ Û ÷÷ ó å à—;‘;×/Ñ/Ð ÷qò qr8   