U
    »mœd”  ã                   @   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   úW/home/sam/Atlas/atlas_env/lib/python3.8/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 dddgdddgdddgg¡}t |¡}t |¡| }tj|||ƒ|d�}tj|ˆ ||fd�}t||d | ¡d� d S )	N)é   r   r   é
   é   )Ú	footprint)r   Úextra_argumentsú
#{} failed©Úerr_msg)	ÚFILTER2D_FUNCTIONSÚnpÚonesÚarrayZcount_nonzeror   Zgeneric_filterr   Úformat)Ú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                    sl   t |  }t t t d¡t d¡f¡d¡}d}t |||ƒ|¡}tj|ˆ ||fd�}t||d 	| ¡d� d S )Nr   )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   r-   ?   s    "ÿ
ÿz$test_generic_filter1d.<locals>.check)r.   r6   r/   r   r7   r   Útest_generic_filter1d7   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   P   s    z+test_geometric_transform.<locals>.transformc                    s`   t |  }t d¡ dd¡ tj¡}d}t |||ƒ¡}tj|ˆ |fd�}t||d 	| ¡d� d S )Né   é   r4   g      à?r5   r   r    )
ÚTRANSFORM_FUNCTIONSr#   ZarangeZreshapeZastypeZfloat64r   Zgeometric_transformr   r&   )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   r8   r=   r   r   r   r   Ú<module>   s.   ü	üü