§
    fŠtj�  ã                   ó|   — 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dS )é    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                             dg d¢¦  «        ej                             dddg¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Z	ej                             dddg¦  «        ej                             dd	d
g¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Z
ej                             dg d¢¦  «        ej                             dddg¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dddg¦  «        ej                             dd	d
g¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dddg¦  «        ej                             dddg¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dddg¦  «        ej                             dddg¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dg d¢¦  «        ej                             dddg¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dddg¦  «        ej                             ddd
g¦  «         eej        ¦  «        d„ ¦   «         ¦   «         ¦   «         Z eej        ¦  «        d„ ¦   «         Z eej        ¦  «        d„ ¦   «         Zej                             dg d¢¦  «        ej                             dg d¢¦  «        ej                             d eej        ¦  «         eej        ¦  «         eej        ¦  «        g¦  «        d„ ¦   «         ¦   «         ¦   «         ZdS ) ÚTestNdimageFourierÚshape)©é    é   ©é   é   )é   é
   z
dtype, dec)Úfloat32é   )Úfloat64é   c                 ó$  — t          |d¦  «        }t          j        ||¬¦  «        }d|d<   |                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |dd	g|d         d¦  «        }|                     ||d         d¬¦  «        }| 	                    ||d         d¬¦  «        }t          t          j        |¦  «        |                     d¦  «        |d
¬¦  «         d S ©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          ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/ndimage/tests/test_fourier.pyÚtest_fourier_gaussian_real01z/TestNdimageFourier.test_fourier_gaussian_real01   s  € õ �b˜%Ñ Ô ˆåŒH�U %Ð(Ñ(Ô(ˆØˆˆ$‰Ø�JŠJ�q‰MŒ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¨™NœN¨B¯JªJ°q©M¬MÀ3Ø%*ð	,ñ 	,ô 	,ð 	,ð 	,ð 	,ó    r   r   )Ú	complex64r   )Ú
complex128r   c                 ó>  — t          |d¦  «        }t          j        ||¬¦  «        }d|d<   |                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |dd	gd
d¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          t          j	        | 
                    |¦  «        ¦  «        |                     d¦  «        |d¬¦  «         d S ©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�U %Ð(Ñ(Ô(ˆØˆˆ$‰Ø�JŠJ�q‰MŒMˆà�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆØ�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆÝÔ$ Q¨¨c¨
°B¸Ñ:Ô:ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆÝ�GœK¨¯ª°©
¬
Ñ3Ô3°R·Z²ZÀ±_´_ÈcØ%*ð	,ñ 	,ô 	,ð 	,ð 	,ð 	,r8   c                 ó$  — t          |d¦  «        }t          j        ||¬¦  «        }d|d<   |                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |dd	g|d         d¦  «        }|                     ||d         d¬¦  «        }| 	                    ||d         d¬¦  «        }t          t          j        |¦  «        |                     d¦  «        |d
¬¦  «         d S 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�U %Ð(Ñ(Ô(ˆØˆˆ$‰Ø�JŠJ�q‰MŒ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¨™NœN¨B¯JªJ°s©O¬OÀSØ%*ð	,ñ 	,ô 	,ð 	,ð 	,ð 	,r8   c                 ó>  — t          |d¦  «        }t          j        ||¬¦  «        }d|d<   |                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |dd	gd
d¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          t          j	        | 
                    |¦  «        ¦  «        |                     d¦  «        |d¬¦  «         d S 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�U %Ð(Ñ(Ô(ˆØˆˆ$‰Ø�JŠJ�q‰MŒMˆà�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆØ�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆÝÔ# A¨¨S z°2°qÑ9Ô9ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆÝ�GœK¨¯ª°©
¬
Ñ3Ô3°R·Z²ZÀ±_´_ÈcØ%*ð	,ñ 	,ô 	,ð 	,ð 	,ð 	,r8   )r   é   )r   é   c                 óB  — t          |d¦  «        }t          j        |d         |d         z  |¬¦  «                             |¦  «        }|                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |ddg|d         d¦  «        }| 	                    ||d         d¬¦  «        }| 
                    ||d         d¬¦  «        }t          |dd …dd …f         |d d…d d…f         |¬¦  «         d S ©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˜U 1œX¨¨a¬Ñ0¸Ð>Ñ>Ô>×FÒFÀuÑMÔMˆØ—:’:˜hÑ'Ô'ˆà�HŠH�X  q¤°ˆHÑ2Ô2ˆØ�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆÝÔ! ! a¨ V¨U°1¬X°qÑ9Ô9ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆØ�IŠI�a˜5 œ8¨!ˆIÑ,Ô,ˆÝ! ! A B B¨¨¨ F¤)¨X°c°r°c¸3¸B¸3°hÔ-?ÈÐMÑMÔMÐMÐMÐMr8   )r9   rE   )r:   rF   c                 óÌ  — t          |d¦  «        }t          j        |d         |d         z  |¬¦  «                             |¦  «        }|                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |ddgdd¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          | 
                    |¦  «        dd …dd …f         |d d…d d…f         |¬¦  «         t          |                     |¦  «        |                     |¦  «        |¬¦  «         d S 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   sJ  € õ �b˜%Ñ Ô ˆå”9˜U 1œX¨¨a¬Ñ0¸Ð>Ñ>Ô>×FÒFÀuÑMÔMˆØ—:’:˜hÑ'Ô'ˆà�GŠG�H  a¤¨qˆGÑ1Ô1ˆØ�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆÝÔ! ! a¨ V¨R°Ñ3Ô3ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆÝ! "§'¢'¨!¡*¤*¨Q¨R¨R°°°¨VÔ"4°h¸sÀ¸sÀCÀRÀC¸xÔ6HÐRUÐVÑVÔVÐVÝ! "§'¢'¨!¡*¤*¨b¯hªh°u©o¬oÀsÐKÑKÔKÐKÐKÐKr8   )r   é   c                 ó$  — t          |d¦  «        }t          j        ||¬¦  «        }d|d<   |                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |dd	g|d         d¦  «        }|                     ||d         d¬¦  «        }| 	                    ||d         d¬¦  «        }t          t          j        |¦  «        |                     d¦  «        |d
¬¦  «         d S 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�U %Ð(Ñ(Ô(ˆØˆˆ$‰Ø�JŠJ�q‰MŒMˆà�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆØ�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆÝÔ% a¨#¨s¨°U¸1´X¸qÑAÔAˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆØ�IŠI�a˜5 œ8¨!ˆIÑ,Ô,ˆÝ�GœK¨™NœN¨B¯JªJ°s©O¬OÀSØ%*ð	,ñ 	,ô 	,ð 	,ð 	,ð 	,r8   )r9   rS   c                 ó>  — t          |d¦  «        }t          j        ||¬¦  «        }d|d<   |                     |¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          j        |dd	gd
d¦  «        }|                     ||d         d¬¦  «        }|                     ||d         d¬¦  «        }t          t          j	        | 
                    |¦  «        ¦  «        |                     d¦  «        |d¬¦  «         d S 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�U %Ð(Ñ(Ô(ˆØˆˆ$‰Ø�JŠJ�q‰MŒMˆà�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆØ�GŠG�A˜˜qœ¨ˆGÑ*Ô*ˆÝÔ% a¨#¨s¨°R¸Ñ;Ô;ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆØ�HŠH�Q˜% œ(¨ˆHÑ+Ô+ˆÝ�GœK¨¯ª°©
¬
Ñ3Ô3°R·Z²ZÀ±_´_ÈcØ%*ð	,ñ 	,ô 	,ð 	,ð 	,ð 	,r8   c                 óÌ   — |                      d|j        ¬¦  «        }t          j        t          ¦  «        5  t          j        |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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£   s£   € ð �GŠG�M¨¬ˆGÑ7Ô7ˆÝŒ]Õ.Ñ/Ô/ð 	,ð 	,ÝÔ% a¨Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ¶AÁAÁ Ac                 ó  — dD ]}}t          |j        |j        gddg¦  «        D ]\\  }}|                     ||¬¦  «        }t	          j        |ddd¦  «        }t	          j        |ddd¦  «        }t          |||¬¦  «         Œ]Œ~d S )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ÔIð =ð =‘
��sØ—G’G˜E¨�GÑ/Ô/�ÝÔ-¨a°°B¸Ñ:Ô:�ÝÔ+¨A¨q°"°aÑ8Ô8�Ý)¨!¨Q¸Ð<Ñ<Ô<Ð<Ð<ð	=ð	=ð 	=r8   ))r   )r   r   )r   r   r   )r   r   r9   r:   Ú	test_funcc                 ó  — t          |¦  «        r7|j        dk    r,t          j        |¦  «        dk    rt	          j        d¦  «         t          ||¦  «        }|                     ||¬¦  «        } ||d¦  «        }t          ||¦  «         d S )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´   s‘   € õ �B‰KŒKð	TàÔ"Ð&9Ò9Ð9Ý”	˜%Ñ Ô  AÒ%Ð%åŒLÐRÑSÔSÐSÝ˜˜EÑ"Ô"ˆØ�GŠG�E ˆGÑ'Ô'ˆØˆI�a˜‰OŒ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Ð&CÐ&CÑDÔDØ„[×Ò˜\¨N¸OÐ+LÑMÔMØÐ�wÔ/Ñ0Ô0ð,ð ,ñ 1Ô0ñ NÔMñ EÔDð,ð „[×Ò˜W x°Ð&:Ñ;Ô;Ø„[×Ò˜\Ð,<Ð>PÐ+QÑRÔRØÐ�wÔ/Ñ0Ô0ð,ð ,ñ 1Ô0ñ SÔRñ <Ô;ð,ð „[×Ò˜WÐ&CÐ&CÐ&CÑDÔDØ„[×Ò˜\¨N¸OÐ+LÑMÔMØÐ�wÔ.Ñ/Ô/ð,ð ,ñ 0Ô/ñ NÔMñ EÔDð,ð „[×Ò˜W x°Ð&:Ñ;Ô;Ø„[×Ò˜\Ð,<Ð>PÐ+QÑRÔRØÐ�wÔ.Ñ/Ô/ð,ð ,ñ 0Ô/ñ SÔRñ <Ô;ð,ð „[×Ò˜W x°Ð&:Ñ;Ô;Ø„[×Ò˜\¨N¸OÐ+LÑMÔMØÐ�wÔ,Ñ-Ô-ðNð Nñ .Ô-ñ NÔMñ <Ô;ðNð „[×Ò˜W x°Ð&:Ñ;Ô;Ø„[×Ò˜\Ð,<Ð>PÐ+QÑRÔRØÐ�wÔ,Ñ-Ô-ðLð Lñ .Ô-ñ SÔRñ <Ô;ðLð „[×Ò˜WÐ&CÐ&CÐ&CÑDÔDØ„[×Ò˜\¨N¸OÐ+LÑMÔMØÐ�wÔ0Ñ1Ô1ð,ð ,ñ 2Ô1ñ NÔMñ EÔDð,ð „[×Ò˜W x°Ð&:Ñ;Ô;Ø„[×Ò˜\Ð,<Ð>PÐ+QÑRÔRØÐ�wÔ0Ñ1Ô1ð,ð ,ñ 2Ô1ñ SÔRñ <Ô;ð,ð Ð�wÔ0Ñ1Ô1ð,ð ,ñ 2Ô1ð,ð Ð�wÔ0Ñ1Ô1ð=ð =ñ 2Ô1ð=ð „[×Ò˜WÐ&?Ð&?Ð&?Ñ@Ô@Ø„[×Ò˜Wð 'Bð 'Bð 'Bñ Cô Cà„[×Ò˜[Ø2Ð2°7Ô3LÑMÔMØ2Ð2°7Ô3KÑLÔLØ2Ð2°7Ô3JÑKÔKðMñNô Nð
ð 
ñ	Nô NñCô 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      sÎ   ðØ €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€à Ð Ð Ð Ð Ð à”;Ô/Ð ðqð qð qð qð qñ qô qð qð qð qr8   