o
    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)xp_assert_close)ndimage)_ctest)_cytest)LowLevelCallablec                 C   
   t | S N)r   filter1dfilter_size r   R/var/www/vscode/kcb/lib/python3.10/site-packages/scipy/ndimage/tests/test_c_api.py<lambda>
      
 r   c                 C      t j| ddS NFwith_signature)r   r	   r
   r   r   r   r          c                 C      t tj| ddS NTr   )r   r   r	   r
   r   r   r   r      s    c                 C      t tdt| S )N	_filter1d)r   from_cythonr   filter1d_capsuler
   r   r   r   r      s    c                 C   r   r   )r   filter2dweightsr   r   r   r      r   c                 C   r   r   )r   r   r   r   r   r   r      r   c                 C   r   r   )r   r   r   r   r   r   r   r          c                 C   r   )N	_filter2d)r   r   r   filter2d_capsuler   r   r   r   r          c                 C   r   r   )r   	transformshiftr   r   r   r      r   c                 C   r   r   )r   r"   r#   r   r   r   r       r   c                 C   r   r   )r   r   r"   r#   r   r   r   r   !   r   c                 C   r   )N
_transform)r   r   r   transform_capsuler#   r   r   r   r   "   r!   c                     2   dd   fdd} t tD ]\}}| | qd S )Nc                 S   s   ||    S r   )sum)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arraycount_nonzeror   generic_filterr   )jfuncimr-   footprint_sizer   resstdr   r   r   check,   s   


z"test_generic_filter.<locals>.check)	enumerater3   r@   r9   r:   r   r?   r   test_generic_filter(   s
   
rC   c                     r'   )Nc                 S   sJ   t |jD ]}d||< t |D ]}||  | ||  7  < qq|| }d S )Nr   )rangesize)
input_lineoutput_liner   ir9   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/   r0   r1   )	FILTER1D_FUNCTIONSr4   tilehstackzerosr5   r   generic_filter1dr   )r9   r:   r;   r   r=   r>   r	   r   r   r@   G   s   "
z$test_generic_filter1d.<locals>.check)rA   rK   rB   r   rP   r   test_generic_filter1d?   s
   
rQ   c                     r'   )Nc                 S   s   | d | | d | fS )Nr   r,   r   )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      rI   g      ?rJ   r/   r0   r1   )	TRANSFORM_FUNCTIONSr4   arangereshapeastypefloat64r   geometric_transformr   )r9   r:   r;   r$   r=   r>   r"   r   r   r@   [   s   z'test_geometric_transform.<locals>.check)rA   rU   rB   r   r[   r   test_geometric_transformW   s
   

r\   )numpyr4   scipy._lib._array_apir   scipyr   scipy.ndimager   r   scipy._lib._ccallbackr   rK   r3   rU   rC   rQ   r\   r   r   r   r   <module>   s0    

