
    -ii                     |    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          f/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/scipy/ndimage/tests/test_fourier.pytest_fourier_gaussian_real01z/TestNdimageFourier.test_fourier_gaussian_real01   s    b%  HU%((($JJqMMHHQ%(H++GGAqG**$Qc
E!Ha@@HHQ%(H++IIa58!I,,GKNNBJJqMM3%*	, 	, 	, 	, 	, 	,    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%  HU%((($JJqMMGGAqG**GGAqG**$Qc
B::HHQ%(H++HHQ%(H++GK

33RZZ__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%  HU%((($JJqMMHHQ%(H++GGAqG**#ASz58Q??HHQ%(H++IIa58!I,,GKNNBJJsOOS%*	, 	, 	, 	, 	, 	,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%  HU%((($JJqMMGGAqG**GGAqG**#ASz2q99HHQ%(H++HHQ%(H++GK

33RZZ__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%  9U1Xa0>>>FFuMM::h''HHXqH22GGAqG**!!aVU1Xq99HHQ%(H++IIa58!I,,!!ABBF)Xcrc3B3h-?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%  9U1Xa0>>>FFuMM::h''GGHaqG11GGAqG**!!aVR33HHQ%(H++HHQ%(H++!"''!**QRRV"4hssCRCx6HRUVVVV!"''!**bhhuoos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%  HU%((($JJqMMHHQ%(H++GGAqG**%a#sU1XqAAHHQ%(H++IIa58!I,,GKNNBJJsOOS%*	, 	, 	, 	, 	, 	,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%  HU%((($JJqMMGGAqG**GGAqG**%a#sR;;HHQ%(H++HHQ%(H++GK

33RZZ__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     GGM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GGEG//-aB::+Aq"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     BKK	T"&999	%  A%%LRSSSE""GGEG''IaOO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[\NO+LMMw/00, , 10 NM ED, [Wx&:;;[\,<>P+QRRw/00, , 10 SR <;, [W&C&C&CDD[\NO+LMMw.//, , 0/ NM ED, [Wx&:;;[\,<>P+QRRw.//, , 0/ SR <;, [Wx&:;;[\NO+LMMw,--N N .- NM <;N [Wx&:;;[\,<>P+QRRw,--L L .- SR <;L [W&C&C&CDD[\NO+LMMw011, , 21 NM ED, [Wx&:;;[\,<>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273LMM2273KLL2273J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   