a
    h                     @   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   Z/var/www/html/assistant/venv/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      s   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      s   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   "   s   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   @   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hstackZzerosr%   r   Zgeneric_filter1dr   )r'   r(   r)   r
   r*   r+   r   r   r   r-   G   s    "
z$test_generic_filter1d.<locals>.check)r.   r6   r/   r   r7   r   test_generic_filter1d?   s    r8   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   X   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astypeZfloat64r   Zgeometric_transformr   )r'   r(   r)   r   r*   r+   r   r   r   r-   [   s    z'test_geometric_transform.<locals>.check)r.   r;   r/   r   r<   r   test_geometric_transformW   s    
r=   )numpyr$   Znumpy.testingr   Zscipyr   Zscipy.ndimager   r   Zscipy._lib._ccallbackr   r6   r#   r;   r0   r8   r=   r   r   r   r   <module>   s.   

