a
    Re|                     @   s   d dl Zd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 dd d	d d
d dd gZdd dd dd dd gZdd dd dd dd gZdd Zdd Zdd ZdS )    N)assert_allclose)ndimage)_ctest)_cytest)LowLevelCallablec                 C   s
   t | S N)r   filter1dfilter_size r   R/var/www/sunrise/env/lib/python3.9/site-packages/scipy/ndimage/tests/test_c_api.py<lambda>
       r   c                 C   s   t j| ddS NFZwith_signature)r   r   r	   r   r   r   r      r   c                 C   s   t tj| ddS NTr   )r   r   r   r	   r   r   r   r      r   c                 C   s   t tdt| S )NZ	_filter1d)r   from_cythonr   Zfilter1d_capsuler	   r   r   r   r      s   c                 C   s
   t | S r   )r   filter2dweightsr   r   r   r      r   c                 C   s   t j| ddS r   )r   r   r   r   r   r   r      r   c                 C   s   t tj| ddS r   )r   r   r   r   r   r   r   r      r   c                 C   s   t tdt| S )NZ	_filter2d)r   r   r   Zfilter2d_capsuler   r   r   r   r      r   c                 C   s
   t | S r   )r   	transformshiftr   r   r   r      r   c                 C   s   t j| ddS r   )r   r   r   r   r   r   r      r   c                 C   s   t tj| ddS r   )r   r   r   r   r   r   r   r      r   c                 C   s   t tdt| S )NZ
_transform)r   r   r   Ztransform_capsuler   r   r   r   r      r   c                     s2   dd   fdd} t tD ]\}}| | qd S )Nc                 S   s   ||    S r   )sum)Zfootprint_elementsr   r   r   r   r   !   s    z%test_generic_filter.<locals>.filter2dc                    s   t |  }td}d|d dd df< tg dg dg dg}t|}t|| }tj||||d}tj| ||fd}t||d|  d	d
 d S )N)   r   r   
   )r      r   )r   r   r   )	footprint)r   extra_arguments# failederr_msg)FILTER2D_FUNCTIONSnponesarrayZcount_nonzeror   Zgeneric_filterr   )jfuncimr   Zfootprint_sizer   resstdr   r   r   check$   s    


z"test_generic_filter.<locals>.check)	enumerater#   r-   r'   r(   r   r,   r   test_generic_filter    s    r0   c                     s2   dd   fdd} t tD ]\}}| | qd S )Nc                 S   sJ   t |jD ]2}d||< t |D ]}||  | ||  7  < qq
|| }d S )Nr   )rangesize)Z
input_lineZoutput_liner
   ir'   r   r   r   r   8   s
    z'test_generic_filter1d.<locals>.filter1dc                    sn   t |  }tttdtdfd}d}t||||}tj| ||fd}t||d|  dd d S )Nr   )r   r      r   r   r    r!   )	FILTER1D_FUNCTIONSr$   ZtileZhstackzerosr%   r   Zgeneric_filter1dr   )r'   r(   r)   r
   r*   r+   r   r   r   r-   ?   s    "
z$test_generic_filter1d.<locals>.check)r.   r6   r/   r   r8   r   test_generic_filter1d7   s    r9   c                     s2   dd   fdd} t tD ]\}}| | qd S )Nc                 S   s   | d | | d | fS )Nr   r   r   )Zoutput_coordinatesr   r   r   r   r   P   s    z+test_geometric_transform.<locals>.transformc                    sb   t |  }tdddtj}d}t|||}tj| |fd}t||d|  dd d S )	N      r4   g      ?r5   r   r    r!   )	TRANSFORM_FUNCTIONSr$   ZarangeZreshapeZastypefloat64r   Zgeometric_transformr   )r'   r(   r)   r   r*   r+   r   r   r   r-   S   s    z'test_geometric_transform.<locals>.check)r.   r<   r/   r   r>   r   test_geometric_transformO   s    
r?   )numpyr$   Znumpy.testingr   Zscipyr   Zscipy.ndimager   r   Zscipy._lib._ccallbackr   r6   r#   r<   r0   r9   r?   r   r   r   r   <module>   s.   	