
    Ug                     \    d dl Zd dl mZ d dlmZmZmZ d dlZd dlm	Z	  G d d          Z
dS )    N)fft)assert_almost_equalassert_array_almost_equalassert_equal)ndimagec                      e Zd Zej                            dg d          ej                            dej        dfej        dfg          d                         Z	ej                            dddg          ej                            dej
        dfej        dfg          d	                         Zej                            dg d          ej                            dej        dfej        dfg          d
                         Zej                            dddg          ej                            dej
        dfej        dfg          d                         Zej                            dddg          ej                            dej        dfej        dfg          d                         Zej                            dddg          ej                            dej
        dfej        dfg          d                         Zej                            dg d          ej                            dej        dfej        dfg          d                         Zej                            dddg          ej                            dej
        dfej        dfg          d                         Zd Zd Zej                            dg d          ej                            dej        ej        ej
        ej        g          ej                            dej        ej        ej        g          d                                     ZdS )TestNdimageFouriershape)             )   
   z
dtype, dec      c                    t          j        ||          }d|d<   t          j        ||d         d          }t          j        ||d         d          }t	          j        |ddg|d         d          }t          j        ||d         d          }t          j        ||d         d          }t          t	          j	        |          d|           d S N      ?r   r   r   r         @      @decimal)
npzerosr   rfftr   fourier_gaussianifftirfftr   sumselfr
   dtypedecas        _/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/ndimage/tests/test_fourier.pytest_fourier_gaussian_real01z/TestNdimageFourier.test_fourier_gaussian_real01   s     HUE""$HQa!$$GAuQx##$Qc
E!Ha@@HQa!$$Iaq1%%GKNNAs;;;;;;    r   r   c                    t          j        ||          }d|d<   t          j        ||d         d          }t          j        ||d         d          }t          j        |ddgdd          }t          j        ||d         d          }t          j        ||d         d          }t          t          j        |j                  d|           d S 	Nr   r   r   r   r   r   r   )	r   r   r   r   r    r!   r   r#   realr$   s        r)   test_fourier_gaussian_complex01z2TestNdimageFourier.test_fourier_gaussian_complex01   s     HUE""$GAuQx##GAuQx##$Qc
B::HQa!$$HQa!$$GK//cBBBBBBr+   c                    t          j        ||          }d|d<   t          j        ||d         d          }t          j        ||d         d          }t	          j        |ddg|d         d          }t          j        ||d         d          }t          j        ||d         d          }t          t	          j	        |          d|           d S r   )
r   r   r   r   r   fourier_uniformr!   r"   r   r#   r$   s        r)   test_fourier_uniform_real01z.TestNdimageFourier.test_fourier_uniform_real01%   s     HUE""$HQa!$$GAuQx###ASz58Q??HQa!$$Iaq1%%GKNNC======r+   c                    t          j        ||          }d|d<   t          j        ||d         d          }t          j        ||d         d          }t          j        |ddgdd          }t          j        ||d         d          }t          j        ||d         d          }t          t          j        |j                  d|           d S r-   )	r   r   r   r   r2   r!   r   r#   r/   r$   s        r)   test_fourier_uniform_complex01z1TestNdimageFourier.test_fourier_uniform_complex011   s     HUE""$GAuQx##GAuQx###ASz2q99HQa!$$HQa!$$GK//cBBBBBBr+         c                 "   t          j        |d         |d         z  |          }||_        t          j        ||d         d          }t          j        ||d         d          }t          j        |ddg|d         d          }t          j        ||d         d          }t          j        ||d         d          }t          |dd dd f         |d dd df         |           t          |j
        t          j        |          |           d S Nr   r   r&   r.   r   )r   aranger
   r   r   r   fourier_shiftr!   r"   r   imagr   r%   r
   r&   r'   expectedr(   s         r)   test_fourier_shift_real01z,TestNdimageFourier.test_fourier_shift_real01=   s    9U1Xa0>>>HXuQx++GAuQx##!!aVU1Xq99HQa!$$Iaq1%%!!ABBF)Xcrc3B3h-?MMMM!!&"(5//3GGGGGGr+   c                     t          j        |d         |d         z  |          }||_        t          j        ||d         d          }t          j        ||d         d          }t	          j        |ddgdd          }t          j        ||d         d          }t          j        ||d         d          }t          |j        dd dd f         |d dd df         |           t          |j	        t          j
        |          |           d S r9   )r   r;   r
   r   r   r<   r!   r   r/   r=   r   r>   s         r)   test_fourier_shift_complex01z/TestNdimageFourier.test_fourier_shift_complex01J   s     9U1Xa0>>>GHeAh**GAuQx##!!aVR33HQa!$$HQa!$$!!&QRR.(3B382DcRRRR!!&"(5//3GGGGGGr+      c                    t          j        ||          }d|d<   t          j        ||d         d          }t          j        ||d         d          }t	          j        |ddg|d         d          }t          j        ||d         d          }t          j        ||d         d          }t          t	          j	        |          d|           d S r   )
r   r   r   r   r   fourier_ellipsoidr!   r"   r   r#   r$   s        r)   test_fourier_ellipsoid_real01z0TestNdimageFourier.test_fourier_ellipsoid_real01W   s     HUE""$HQa!$$GAuQx##%a#s&+Ah3 3HQa!$$Iaq1%%GKNNC======r+   c                    t          j        ||          }d|d<   t          j        ||d         d          }t          j        ||d         d          }t          j        |ddgdd          }t          j        ||d         d          }t          j        ||d         d          }t          t          j        |j                  d|           d S r-   )	r   r   r   r   rE   r!   r   r#   r/   r$   s        r)    test_fourier_ellipsoid_complex01z3TestNdimageFourier.test_fourier_ellipsoid_complex01d   s     HUE""$GAuQx##GAuQx##%a#sR;;HQa!$$HQa!$$GK//cBBBBBBr+   c                     t          j        dt           j                  }t          j        t
                    5  t          j        |d           d d d            d S # 1 swxY w Y   d S )N)r6   r      r   r:      )r   ones
complex128pytestraisesNotImplementedErrorr   rE   )r%   xs     r)   )test_fourier_ellipsoid_unimplemented_ndimz<TestNdimageFourier.test_fourier_ellipsoid_unimplemented_ndimp   s    GM777].// 	, 	,%a+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   AA!$A!c                    dD ]}t          t          j        t          j        gddg          D ][\  }}t          j        ||          }t          j        |ddd          }t          j        |ddd          }t          |||           \d S )N))r   )r   rC   r   r:   r.   r   r   )	zipr   	complex64rM   rL   r   rE   r2   r   )r%   r
   type_r'   rQ   r(   bs          r)   !test_fourier_ellipsoid_1d_complexz4TestNdimageFourier.test_fourier_ellipsoid_1d_complexv   s    % 	= 	=E!2<"?!RII = =
sGE///-aB::+Aq"a88)!Q<<<<<	=	= 	=r+   ))r   )r   r   )r   r   r&   	test_funcc                 h    t          j        ||          } ||d          }t          ||           d S )NrK   )r   rL   r   )r%   r
   r&   rY   r(   rW   s         r)   test_fourier_zero_length_dimsz0TestNdimageFourier.test_fourier_zero_length_dims   s:     GE5!!IaOOQr+   N)__name__
__module____qualname__rN   markparametrizer   float32float64r*   rU   rM   r0   r3   r5   r@   rB   rF   rH   rR   rX   r   rE   r    r2   r[    r+   r)   r	   r	      s       [W&C&C&CDD[\RZObj"=M+NOO< < PO ED< [Wx&:;;[\R\1,=r?R+STTC C UT <;C [W&C&C&CDD[\RZObj"=M+NOO> > PO ED> [Wx&:;;[\R\1,=r?R+STTC C UT <;C [Wx&:;;[\RZObj"=M+NOO	H 	H PO <;	H [Wx&:;;[\R\1,=r?R+STT	H 	H UT <;	H [W&C&C&CDD[\RZObj"=M+NOO	> 	> PO ED	> [Wx&:;;[\R\1,=r?R+STTC C UT <;C, , ,= = = [W&?&?&?@@[Wrz2:')|R]'D E E[[%7%6%578 8 	8 8E E A@  r+   r	   )numpyr   r   numpy.testingr   r   r   rN   scipyr   r	   rc   r+   r)   <module>rg      s             ) ) ) ) ) ) ) ) ) )       ~ ~ ~ ~ ~ ~ ~ ~ ~ ~r+   