o
    Ö­jš  ã                   @   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   ú[/var/www/html/CropPilot/venv/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    úü
ü
