o
    i                     @   sN   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 dZ	dS )    N)fft)assert_almost_equalassert_array_almost_equalassert_equal)ndimagec                   @   s.  e Zd Zejdg dejdejdfejdfgdd Z	ejddd	gejdej
dfejdfgd
d Zejdg dejdejdfejdfgdd Zejddd	gejdej
dfejdfgdd Zejddd	gejdejdfejdfgdd Zejddd	gejdej
dfejdfgdd Zejdg dejdejdfejdfgdd Zejddd	gejdej
dfejdfgdd Zdd Zd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"d# Zd$S )%TestNdimageFouriershape)             )   
   z
dtype, dec      c                 C   s   t ||}d|d< t||d d}t||d d}t|ddg|d d}t||d d}t||d d}tt	|d|d d S N      ?r   r   r   r         @      @decimal)
numpyzerosr   rfftr   fourier_gaussianifftirfftr   sumselfr   dtypedeca r&   o/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/scipy/ndimage/tests/test_fourier.pytest_fourier_gaussian_real01      z/TestNdimageFourier.test_fourier_gaussian_real01r	   r   c                 C      t ||}d|d< t||d d}t||d d}t|ddgdd}t||d d}t||d d}tt|jd|d d S 	Nr   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r    realr!   r&   r&   r'   test_fourier_gaussian_complex01      z2TestNdimageFourier.test_fourier_gaussian_complex01c                 C      t ||}d|d< t||d d}t||d d}t|ddg|d d}t||d d}t||d d}tt	|d|d d S r   )
r   r   r   r   r   fourier_uniformr   r   r   r    r!   r&   r&   r'   test_fourier_uniform_real01'   r)   z.TestNdimageFourier.test_fourier_uniform_real01c                 C   r*   r+   )	r   r   r   r   r1   r   r   r    r-   r!   r&   r&   r'   test_fourier_uniform_complex014   r/   z1TestNdimageFourier.test_fourier_uniform_complex01      c                 C   s   t j|d |d  |d}||_t||d d}t||d d}t|ddg|d d}t||d d}t||d d}t	|dd dd f |d dd df |d t	|j
t ||d d S Nr   r   r#   r,   r   )r   aranger   r   r   r   fourier_shiftr   r   r   imagr   r"   r   r#   r$   expectedr%   r&   r&   r'   test_fourier_shift_real01A   s   &
z,TestNdimageFourier.test_fourier_shift_real01c                 C   s   t j|d |d  |d}||_t||d d}t||d d}t|ddgdd}t||d d}t||d d}t|jdd dd f |d dd df |d t|j	t 
||d d S r6   )r   r8   r   r   r   r9   r   r   r-   r:   r   r;   r&   r&   r'   test_fourier_shift_complex01Q   s   (
z/TestNdimageFourier.test_fourier_shift_complex01   c                 C   r0   r   )
r   r   r   r   r   fourier_ellipsoidr   r   r   r    r!   r&   r&   r'   test_fourier_ellipsoid_real01a   s   z0TestNdimageFourier.test_fourier_ellipsoid_real01c                 C   r*   r+   )	r   r   r   r   r@   r   r   r    r-   r!   r&   r&   r'    test_fourier_ellipsoid_complex01o   r/   z3TestNdimageFourier.test_fourier_ellipsoid_complex01c                 C   sL   t jdt jd}tt t|d W d    d S 1 sw   Y  d S )N)r4   r      r   r7      )r   ones
complex128pytestZraisesNotImplementedErrorr   r@   )r"   xr&   r&   r'   )test_fourier_ellipsoid_unimplemented_ndim|   s   "z<TestNdimageFourier.test_fourier_ellipsoid_unimplemented_ndimc                 C   sj   dD ]0}t tjtjgddgD ]"\}}tj||d}t|ddd}t|ddd}t|||d qqd S )N))r
   )r   r?   r   r7   r,   r   r   )	zipr   	complex64rF   rE   r   r@   r1   r   )r"   r   type_r$   rI   r%   br&   r&   r'   !test_fourier_ellipsoid_1d_complex   s   z4TestNdimageFourier.test_fourier_ellipsoid_1d_complex))r   )r   r   )r   r   r#   	test_funcc                 C   s$   t ||}||d}t|| d S )NrD   )r   rE   r   )r"   r   r#   rP   r%   rN   r&   r&   r'   test_fourier_zero_length_dims   s   	
z0TestNdimageFourier.test_fourier_zero_length_dimsN)__name__
__module____qualname__rG   markZparametrizer   Zfloat32Zfloat64r(   rL   rF   r.   r2   r3   r=   r>   rA   rB   rJ   rO   r   r@   r   r1   rQ   r&   r&   r&   r'   r      sp    





r   )
r   r   Znumpy.testingr   r   r   rG   Zscipyr   r   r&   r&   r&   r'   <module>   s    