
    doi                         S SK r S SKrS SKJrJrJrJrJrJ	r	  S SK
r
S SKJr  \
R                  R                  r " S S5      rg)    N)xp_assert_equalassert_array_almost_equalassert_almost_equalis_cupymake_xp_test_casemake_xp_pytest_param)ndimagec            
       B   \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \" \R                  5      S 5       5       5       r
\R
                  R                  SSS	/5      \R
                  R                  SS
S/5      \" \R                  5      S 5       5       5       r\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \" \R                  5      S 5       5       5       r\R
                  R                  SSS	/5      \R
                  R                  SS
S/5      \" \R                  5      S 5       5       5       r\R
                  R                  SSS	/5      \R
                  R                  SSS/5      \" \R                  5      S 5       5       5       r\R
                  R                  SSS	/5      \R
                  R                  SSS/5      \" \R                  5      S 5       5       5       r\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \" \R$                  5      S 5       5       5       r\R
                  R                  SSS	/5      \R
                  R                  SSS/5      \" \R$                  5      S 5       5       5       r\" \R$                  5      S 5       r\" \R$                  5      S 5       r\R
                  R                  S/ SQ5      \R
                  R                  S/ SQ5      \R
                  R                  S\" \R$                  5      \" \R                  5      \" \R                  5      /5      S 5       5       5       rS rg!)"TestNdimageFourier   shape)             )   
   z
dtype, dec)float32   )float64   c                    [        US5      n[        R                  " XS9nSUS'   UR                  U5      nUR	                  XaS   SS9nUR                  XaS   SS9n[        R                  " USS	/US   S5      nUR                  XaS   SS9nUR                  XaS   SS9n[        [        R                  " U5      UR                  S5      US
S9  g 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/land-ocr/venv/lib/python3.13/site-packages/scipy/ndimage/tests/test_fourier.pytest_fourier_gaussian_real01/TestNdimageFourier.test_fourier_gaussian_real01   s     b% HHU($JJqMHHQ(H+GGAqG*$$Qc
E!Ha@HHQ(H+IIa8!I,GKKNBJJqM3%*	,    r   r   )	complex64r   )
complex128r   c                    [        US5      n[        R                  " XS9nSUS'   UR                  U5      nUR	                  XaS   SS9nUR	                  XaS   SS9n[
        R                  " USS	/S
S5      nUR                  XaS   SS9nUR                  XaS   SS9n[        [
        R                  " UR                  U5      5      UR                  S5      USS9  g Nr   r   r   r    r   r!   r   r$   r%   Fr&   )r)   r*   r+   r,   r   r	   r.   r/   r   r1   realr2   s          r7   test_fourier_gaussian_complex012TestNdimageFourier.test_fourier_gaussian_complex01(   s     b% HHU($JJqMGGAqG*GGAqG*$$Qc
B:HHQ(H+HHQ(H+GKK
3RZZ_c%*	,r:   c                    [        US5      n[        R                  " XS9nSUS'   UR                  U5      nUR	                  XaS   SS9nUR                  XaS   SS9n[        R                  " USS	/US   S5      nUR                  XaS   SS9nUR                  XaS   SS9n[        [        R                  " U5      UR                  S5      US
S9  g r   )r)   r*   r+   r,   r-   r   r	   fourier_uniformr/   r0   r   r1   r2   s          r7   test_fourier_uniform_real01.TestNdimageFourier.test_fourier_uniform_real01:   s     b% HHU($JJqMHHQ(H+GGAqG*##ASz58Q?HHQ(H+IIa8!I,GKKNBJJsOS%*	,r:   c                    [        US5      n[        R                  " XS9nSUS'   UR                  U5      nUR	                  XaS   SS9nUR	                  XaS   SS9n[
        R                  " USS	/S
S5      nUR                  XaS   SS9nUR                  XaS   SS9n[        [
        R                  " UR                  U5      5      UR                  S5      USS9  g r>   )r)   r*   r+   r,   r   r	   rD   r/   r   r1   r@   r2   s          r7   test_fourier_uniform_complex011TestNdimageFourier.test_fourier_uniform_complex01L   s     b% HHU($JJqMGGAqG*GGAqG*##ASz2q9HHQ(H+HHQ(H+GKK
3RZZ_c%*	,r:   )r      )r      c                    [        US5      n[        R                  " US   US   -  US9R                  U5      nUR	                  U5      nUR                  XaS   SS9nUR                  XqS   SS9n[        R                  " USS/US   S5      nUR                  XqS   SS9nUR                  XqS   SS9n[        USS 2SS 24   US S2S S24   US9  g Nr   r   r   r   r!   r?   r'   )r)   r*   arangereshaper,   r-   r   r	   fourier_shiftr/   r0   r   r3   r   r   r4   r5   r   expectedr6   s           r7   test_fourier_shift_real01,TestNdimageFourier.test_fourier_shift_real01^   s     b% 99U1Xa0>FFuM::h'HHXqH2GGAqG*!!!aVU1Xq9HHQ(H+IIa8!I,!!ABF)Xcrc3B3h-?Mr:   )r;   rJ   )r<   rK   c                    [        US5      n[        R                  " US   US   -  US9R                  U5      nUR	                  U5      nUR                  XaS   SS9nUR                  XqS   SS9n[        R                  " USS/SS5      nUR                  XqS   SS9nUR                  XqS   SS9n[        UR                  U5      SS 2SS 24   US S2S S24   US9  [        UR                  U5      UR                  U5      US9  g rM   )r)   r*   rO   rP   r,   r   r	   rQ   r/   r   r@   imagr+   rR   s           r7   test_fourier_shift_complex01/TestNdimageFourier.test_fourier_shift_complex01n   s    b% 99U1Xa0>FFuM::h'GGHaqG1GGAqG*!!!aVR3HHQ(H+HHQ(H+!"''!*QRV"4hssCRCx6HRUV!"''!*bhhuosKr:   )r      c                    [        US5      n[        R                  " XS9nSUS'   UR                  U5      nUR	                  XaS   SS9nUR                  XaS   SS9n[        R                  " USS	/US   S5      nUR                  XaS   SS9nUR                  XaS   SS9n[        [        R                  " U5      UR                  S5      US
S9  g r   )r)   r*   r+   r,   r-   r   r	   fourier_ellipsoidr/   r0   r   r1   r2   s          r7   test_fourier_ellipsoid_real010TestNdimageFourier.test_fourier_ellipsoid_real01   s     b% HHU($JJqMHHQ(H+GGAqG*%%a#sU1XqAHHQ(H+IIa8!I,GKKNBJJsOS%*	,r:   )r;   rZ   c                    [        US5      n[        R                  " XS9nSUS'   UR                  U5      nUR	                  XaS   SS9nUR	                  XaS   SS9n[
        R                  " USS	/S
S5      nUR                  XaS   SS9nUR                  XaS   SS9n[        [
        R                  " UR                  U5      5      UR                  S5      USS9  g r>   )r)   r*   r+   r,   r   r	   r\   r/   r   r1   r@   r2   s          r7    test_fourier_ellipsoid_complex013TestNdimageFourier.test_fourier_ellipsoid_complex01   s     b% HHU($JJqMGGAqG*GGAqG*%%a#sR;HHQ(H+HHQ(H+GKK
3RZZ_c%*	,r:   c                     UR                  SUR                  S9n[        R                  " [        5         [
        R                  " US5        S S S 5        g ! , (       d  f       g = f)N)rJ   r      r   r      )onesr<   pytestraisesNotImplementedErrorr	   r\   )r3   r5   xs      r7   )test_fourier_ellipsoid_unimplemented_ndim<TestNdimageFourier.test_fourier_ellipsoid_unimplemented_ndim   sC     GGMG7]]./%%a+ 0//s   A
A$c                    S H{  n[        UR                  UR                  /SS/5       HP  u  p4UR                  X#S9n[        R
                  " USSS5      n[        R                  " USSS5      n[        XgUS9  MR     M}     g )N))r   )r   rZ   r   r   r?   r   rN   )zipr;   r<   re   r	   r\   rD   r   )r3   r5   r   type_r4   ri   r6   bs           r7   !test_fourier_ellipsoid_1d_complex4TestNdimageFourier.test_fourier_ellipsoid_1d_complex   sy     &E!2<<"?!RI
GGEG/--aB:++Aq"a8)!<	 J &r:   ))r   )r   r   )r   r   r   )r   r   r;   r<   	test_funcc                     [        U5      (       a@  UR                  S:X  a0  [        R                  " U5      S:X  a  [        R
                  " S5        [        XB5      nUR                  XS9nU" US5      n[        XV5        g )Nr\   r   z7CuPy's fourier_ellipsoid does not accept size==0 arraysr   rd   )	r   __name__mathprodrf   xfailr)   re   r   )r3   r   r   rr   r5   r6   ro   s          r7   test_fourier_zero_length_dims0TestNdimageFourier.test_fourier_zero_length_dims   sg     BKK""&99		% A%LLRS"GGEG'aOr:    N)rt   
__module____qualname____firstlineno__rf   markparametrizer   r	   r.   r8   rA   rD   rE   rH   rQ   rT   rX   r\   r]   r`   rj   rp   r   rx   __static_attributes__rz   r:   r7   r   r      s   [[W&CD[[\NO+LMw//0, 1 N E, [[Wx&:;[[\,<>P+QRw//0, 1 S <, [[W&CD[[\NO+LMw../, 0 N E, [[Wx&:;[[\,<>P+QRw../, 0 S <, [[Wx&:;[[\NO+LMw,,-N . N <N [[Wx&:;[[\,<>P+QRw,,-L . S <L [[W&CD[[\NO+LMw001, 2 N E, [[Wx&:;[[\,<>P+QRw001, 2 S <, w001, 2, w001= 2= [[W&?@[[W 'B C[[[273L3LM273K3KL273J3JKMN
	NC A
r:   r   )ru   numpyr*   scipy._lib._array_apir   r   r   r   r   r   rf   scipyr	   r~   skip_xp_backendsr   rz   r:   r7   <module>r      s9        ;;// q qr:   