a
    ‡ù»j"Û  ã                   @   sŒ   d dl Z d dlZd dlmZmZmZmZmZmZ d dl	Z	d dl	m
Z d dlmZ ddlmZ dZdddd	d
ddœZG dd„ dƒZdd„ ZdS )é    N)Úassert_Úassert_equalÚassert_array_equalÚassert_array_almost_equalÚassert_allcloseÚsuppress_warnings)Úraisesé   )Útypesçê-�™—q=ÚreflectZ	symmetricÚwrapÚedgeÚconstant)Úmirrorr   úgrid-mirrorú	grid-wrapÚnearestúgrid-constantc                   @   s¦  e Zd Zej ddg d¢fdg d¢fdg d¢fdg d	¢fd
g d¢fdg d¢fdg d¢fg¡dd„ ƒZej ddg d¢fdg d¢fdg d¢fdg d¢fd
g d¢fdg d¢fdg d¢fg¡dd„ ƒZej dg d¢¡ej dedƒ¡dd„ ƒƒZ	ej deddƒ¡ej d e
¡d!d"„ ƒƒZej deddƒ¡ej d e
¡d#d$„ ƒƒZej deddƒ¡ej d e
¡d%d&„ ƒƒZej deddƒ¡ej d e
¡d'd(„ ƒƒZej deddƒ¡ej d e
¡d)d*„ ƒƒZej ded+dƒ¡d,d-„ ƒZej ded+dƒ¡d.d/„ ƒZej ded+dƒ¡d0d1„ ƒZej ded+dƒ¡d2d3„ ƒZej ded+dƒ¡ej d ejejg¡d4d5„ ƒƒZej ded+dƒ¡d6d7„ ƒZej ded+dƒ¡d8d9„ ƒZej ded+dƒ¡d:d;„ ƒZej ded+dƒ¡d<d=„ ƒZej ded+dƒ¡d>d?„ ƒZej ded+dƒ¡d@dA„ ƒZej ded+dƒ¡dBdC„ ƒZej ded+dƒ¡dDdE„ ƒZej ded+dƒ¡dFdG„ ƒZ ej ded+dƒ¡dHdI„ ƒZ!ej ded+dƒ¡dJdK„ ƒZ"ej ded+dƒ¡dLdM„ ƒZ#ej ded+dƒ¡dNdO„ ƒZ$ej ded+dƒ¡dPdQ„ ƒZ%ej ded+dƒ¡dRdS„ ƒZ&ej ded+dƒ¡dTdU„ ƒZ'dVdW„ Z(ej dg dX¢¡ej dedƒ¡dYdZ„ ƒƒZ)d[d\„ Z*d]d^„ Z+ej ded+dƒ¡ej d ejejg¡d_d`„ ƒƒZ,ej ded+dƒ¡dadb„ ƒZ-dcdd„ Z.dedf„ Z/dgdh„ Z0ejj1die2j3v �pêe 4d+¡j5djk dkdl�dmdn„ ƒZ6ej ded+dƒ¡dodp„ ƒZ7ej ded+dƒ¡dqdr„ ƒZ8ej ded+dƒ¡dsdt„ ƒZ9ej ded+dƒ¡dudv„ ƒZ:ej ded+dƒ¡ej d ejejg¡dwdx„ ƒƒZ;ej ded+dƒ¡dydz„ ƒZ<ej ded+dƒ¡d{d|„ ƒZ=ej ded+dƒ¡d}d~„ ƒZ>ej ded+dƒ¡dd€„ ƒZ?ej ded+dƒ¡d�d‚„ ƒZ@ej ded+dƒ¡dƒd„„ ƒZAej ded+dƒ¡d…d†„ ƒZBej ded+dƒ¡d‡dˆ„ ƒZCej ded+dƒ¡d‰dŠ„ ƒZDej ded+dƒ¡d‹dŒ„ ƒZEej ded+dƒ¡d�dŽ„ ƒZFej ded+dƒ¡d�d�„ ƒZGej ded+dƒ¡d‘d’„ ƒZHej ded+dƒ¡d“d”„ ƒZIej ded+dƒ¡d•d–„ ƒZJej ded+dƒ¡d—d˜„ ƒZKej ded+dƒ¡d™dš„ ƒZLej ded+dƒ¡d›dœ„ ƒZMej ded+dƒ¡d�dž„ ƒZNej ded+dƒ¡dŸd „ ƒZOej ded+dƒ¡d¡d¢„ ƒZPd£d¤„ ZQd¥d¦„ ZRd§d¨„ ZSd©dª„ ZTd«d¬„ ZUej d­g d®¢¡ej ded+dƒ¡d¯d°„ ƒƒZVej ded+dƒ¡d±d²„ ƒZWej ded+dƒ¡d³d´„ ƒZXej ded+dƒ¡dµd¶„ ƒZYej ded+dƒ¡d·d¸„ ƒZZej ded+dƒ¡d¹dº„ ƒZ[ej ded+dƒ¡ej d ejejg¡d»d¼„ ƒƒZ\ej ded+dƒ¡ej dddg¡ej d ejejg¡d½d¾„ ƒƒƒZ]ej ded+dƒ¡d¿dÀ„ ƒZ^ej ded+dƒ¡dÁdÂ„ ƒZ_ej ded+dƒ¡dÃdÄ„ ƒZ`ej ded+dƒ¡dÅdÆ„ ƒZaej d­g d®¢¡ej ded+dƒ¡dÇdÈ„ ƒƒZbej d­g d®¢¡ej ded+dƒ¡dÉdÊ„ ƒƒZcdËdÌ„ Zdej ded+dƒ¡dÍdÎ„ ƒZeej ded+dƒ¡ej dÏdÐdÑg¡dÒdÓ„ ƒƒZfej dg dX¢¡ej dedƒ¡dÔdÕ„ ƒƒZgej ded+dƒ¡dÖd×„ ƒZhdØdÙ„ ZidÚdÛ„ Zjej ded+dƒ¡ej d ejejg¡dÜdÝ„ ƒƒZkdÞdß„ Zldàdá„ Zmdâdã„ Znej däg då¢¡ej dg dæ¢¡dçdè„ ƒƒZoej dédêdëg¡ej däg då¢¡ej dg dì¢¡dídî„ ƒƒƒZpej dddg¡dïdð„ ƒZqej ded+dƒ¡dñdò„ ƒZrej ded+dƒ¡dódô„ ƒZsej ded+dƒ¡ej d ejejg¡dõdö„ ƒƒZtej ded+dƒ¡d÷dø„ ƒZuej ded+dƒ¡dùdú„ ƒZvej ded+dƒ¡dûdü„ ƒZwej ded+dƒ¡dýdþ„ ƒZxej ded+dƒ¡dÿ�d „ ƒZy�d�d„ Zz�d�d„ Z{�d�d„ Z|�dS (  ÚTestNdimageInterpolationzmode, expected_valuer   )ç      ø?ç      @ç      @é   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   éÿÿÿÿr   r   r   r   )r   r   r   r   r   r   r   c              
   C   s6   dd„ }t  g d¢¡}t|tj||d|ddd�ƒ d S )Nc                 S   s   | d d fS )Nr   ç      à?© ©Úxr   r   úLE:\soccer\ml_env\Lib\site-packages\scipy/ndimage/tests/test_interpolation.pyÚshift&   s    z7TestNdimageInterpolation.test_boundaries.<locals>.shift)r	   é   é   ç      @r   )é   r	   )ÚcvalÚmodeÚoutput_shapeÚorder©ÚnumpyÚarrayr   ÚndimageÚgeometric_transform©Úselfr&   Zexpected_valuer    Údatar   r   r   Útest_boundaries   s    ÿþz(TestNdimageInterpolation.test_boundaries)r	   r	   r!   r"   )r"   r	   r!   r"   )r   r	   r!   r"   )r!   r	   r!   r"   )r   r	   r!   r"   c              	   C   s4   dd„ }t  g d¢¡}t|tj||d|dd�ƒ d S )Nc                 S   s   | d d fS )Nr   gÍÌÌÌÌÌì?r   r   r   r   r   r    :   s    z8TestNdimageInterpolation.test_boundaries2.<locals>.shift©r	   r!   r"   r   r   ©r   )r%   r&   r'   r)   r.   r   r   r   Útest_boundaries2/   s    ÿþz)TestNdimageInterpolation.test_boundaries2r&   )r   r   r   r   r   r   r(   é   c                 C   sŽ   t jddtd�}t jdddd�}tj||g||d�}d	}t |¡}t j|||d
�}tj||| g||d�}	|dkrvdnd}
t	||	d|
d� dS )z$Tests based on examples from gh-2640iúÿÿÿr$   ©Údtypeiøÿÿÿé   iè  )Únum©r(   r&   é    ©r&   r   gñhãˆµøä>r   çH¯¼šò×z>)ÚrtolÚatolN)
r*   ÚarangeÚfloatZlinspacer,   Úmap_coordinatesÚndimage_to_numpy_modeÚgetÚpadr   )r/   r&   r(   r0   r   ÚyÚnpadÚpad_modeÚpaddedÚexpectedr?   r   r   r   Útest_boundary_spline_accuracyC   s    
ÿz6TestNdimageInterpolation.test_boundary_spline_accuracyr!   r7   c                 C   s(   t  g |¡}tj||d�}t|dƒ d S )N©r(   r	   ©r*   Úonesr,   Úspline_filterr   ©r/   r7   r(   r0   Úoutr   r   r   Útest_spline01W   s    z&TestNdimageInterpolation.test_spline01c                 C   s,   t  dg|¡}tj||d�}t|dgƒ d S ©Nr	   rL   )r*   r+   r,   rO   r   rP   r   r   r   Útest_spline02^   s    z&TestNdimageInterpolation.test_spline02c                 C   s*   t  g |¡}tj|||d�}t|dƒ d S )N©Úoutputr	   rM   rP   r   r   r   Útest_spline03e   s    z&TestNdimageInterpolation.test_spline03c                 C   s,   t  dg|¡}t ||¡}t|g d¢ƒ d S )Nr   ©r	   r	   r	   r	   rM   rP   r   r   r   Útest_spline04l   s    z&TestNdimageInterpolation.test_spline04c                 C   sD   t  ddg|¡}tj||d�}t|g d¢g d¢g d¢g d¢gƒ d S )Nr   rL   rX   rM   rP   r   r   r   Útest_spline05s   s    
ýz&TestNdimageInterpolation.test_spline05r   c                 C   s8   t  dg¡}dd„ }tj|||j|d�}t|dgƒ d S )Nr	   c                 S   s   | S ©Nr   r   r   r   r   Úmapping�   s    zDTestNdimageInterpolation.test_geometric_transform01.<locals>.mappingrL   ©r*   r+   r,   r-   Úshaper   ©r/   r(   r0   r\   rQ   r   r   r   Útest_geometric_transform01}   s    ÿz3TestNdimageInterpolation.test_geometric_transform01c                 C   s:   t  dg¡}dd„ }tj|||j|d�}t|g d¢ƒ d S )Nr   c                 S   s   | S r[   r   r   r   r   r   r\   Œ   s    zDTestNdimageInterpolation.test_geometric_transform02.<locals>.mappingrL   rX   ©r*   rN   r,   r-   r^   r   r_   r   r   r   Útest_geometric_transform02ˆ   s    ÿz3TestNdimageInterpolation.test_geometric_transform02c                 C   s:   t  dg¡}dd„ }tj|||j|d�}t|g d¢ƒ d S )Nr   c                 S   s   | d d fS ©Nr   r	   r   r   r   r   r   r\   —   s    zDTestNdimageInterpolation.test_geometric_transform03.<locals>.mappingrL   ©r   r	   r	   r	   ra   r_   r   r   r   Útest_geometric_transform03“   s    ÿz3TestNdimageInterpolation.test_geometric_transform03c                 C   s<   t  g d¢¡}dd„ }tj|||j|d�}t|g d¢ƒ d S )N©r   r	   r"   r!   c                 S   s   | d d fS rc   r   r   r   r   r   r\   ¢   s    zDTestNdimageInterpolation.test_geometric_transform04.<locals>.mappingrL   ©r   r   r	   r"   r]   r_   r   r   r   Útest_geometric_transform04ž   s    ÿz3TestNdimageInterpolation.test_geometric_transform04c                 C   sŽ   t jg d¢g d¢g d¢g|d�}t jg d¢g d¢g d¢g|d�}|jjdkrd|d| 8 }|d| 8 }dd„ }tj|||j|d�}t||ƒ d S )	NrX   r6   rd   Úcù              ð?c                 S   s   | d | d d fS rc   r   r   r   r   r   r\   ¶   s    zDTestNdimageInterpolation.test_geometric_transform05.<locals>.mappingrL   )r*   r+   r7   Úkindr,   r-   r^   r   )r/   r(   r7   r0   rJ   r\   rQ   r   r   r   Útest_geometric_transform05©   s(    
þþ
þþÿz3TestNdimageInterpolation.test_geometric_transform05c                 C   sX   t  g d¢g d¢g d¢g¡}dd„ }tj|||j|d�}t|g d¢g d¢g d	¢gƒ d S )
Nrf   ©r$   r5   é   é   ©r"   ro   r"   r5   c                 S   s   | d | d d fS rc   r   r   r   r   r   r\   Ã   s    zDTestNdimageInterpolation.test_geometric_transform06.<locals>.mappingrL   rg   ©r   r$   r5   rn   ©r   r"   ro   r"   r]   r_   r   r   r   Útest_geometric_transform06½   s    
þÿ
þz3TestNdimageInterpolation.test_geometric_transform06c                 C   sX   t  g d¢g d¢g d¢g¡}dd„ }tj|||j|d�}t|g d¢g d¢g d¢gƒ d S )Nrf   rm   rp   c                 S   s   | d d | d fS rc   r   r   r   r   r   r\   Ò   s    zDTestNdimageInterpolation.test_geometric_transform07.<locals>.mappingrL   ©r   r   r   r   r]   r_   r   r   r   Útest_geometric_transform07Ì   s    
þÿ
þz3TestNdimageInterpolation.test_geometric_transform07c                 C   sX   t  g d¢g d¢g d¢g¡}dd„ }tj|||j|d�}t|g d¢g d¢g d	¢gƒ d S )
Nrf   rm   rp   c                 S   s   | d d | d d fS rc   r   r   r   r   r   r\   á   s    zDTestNdimageInterpolation.test_geometric_transform08.<locals>.mappingrL   rt   rg   rq   r]   r_   r   r   r   Útest_geometric_transform08Û   s    
þÿ
þz3TestNdimageInterpolation.test_geometric_transform08c                 C   sv   t  g d¢g d¢g d¢g¡}dd„ }|dkr<tj||d�}n|}tj|||j|dd	�}t|g d
¢g d¢g d¢gƒ d S )Nrf   rm   rp   c                 S   s   | d d | d d fS rc   r   r   r   r   r   r\   ð   s    zDTestNdimageInterpolation.test_geometric_transform10.<locals>.mappingr	   rL   F©r(   Ú	prefilterrt   rg   rq   )r*   r+   r,   rO   r-   r^   r   )r/   r(   r0   r\   ÚfilteredrQ   r   r   r   Útest_geometric_transform10ê   s    
þÿ
þz3TestNdimageInterpolation.test_geometric_transform10c                 C   s>   t  dgt j¡}dd„ }tj||dg|d�}t|g d¢ƒ d S )Nr!   c                 S   s   | d d fS ©Nr   r!   r   r   r   r   r   r\     s    zDTestNdimageInterpolation.test_geometric_transform13.<locals>.mappingr   rL   rX   )r*   rN   Úfloat64r,   r-   r   r_   r   r   r   Útest_geometric_transform13ý   s    z3TestNdimageInterpolation.test_geometric_transform13c                 C   s6   g d¢}dd„ }t j||dg|d�}t|g d¢ƒ d S )N©r	   ro   r!   r5   r"   r$   r   r   c                 S   s   d| d  fS )Nr!   r   r   r   r   r   r   r\     s    zDTestNdimageInterpolation.test_geometric_transform14.<locals>.mappingr   rL   r2   ©r,   r-   r   r_   r   r   r   Útest_geometric_transform14  s    z3TestNdimageInterpolation.test_geometric_transform14c                 C   s@   g d¢}dd„ }t j||dg|d�}t|d d d… g d¢ƒ d S )Nr2   c                 S   s   | d d fS r{   r   r   r   r   r   r\     s    zDTestNdimageInterpolation.test_geometric_transform15.<locals>.mappingrn   rL   r!   r   r_   r   r   r   Útest_geometric_transform15  s    z3TestNdimageInterpolation.test_geometric_transform15c                 C   sP   g d¢g d¢g d¢g}dd„ }t j||d|d�}t|dd	gd
dgddggƒ d S )Nr2   ©ro   r5   r$   rn   ©g      "@é
   é   é   c                 S   s   | d | d d fS ©Nr   r	   r!   r   r   r   r   r   r\   !  s    zDTestNdimageInterpolation.test_geometric_transform16.<locals>.mapping©r"   r!   rL   r	   r"   ro   r$   é	   r…   r   r_   r   r   r   Útest_geometric_transform16  s    þ
ÿz3TestNdimageInterpolation.test_geometric_transform16c                 C   sD   g d¢g d¢g d¢g}dd„ }t j||d|d�}t|g d¢gƒ d S )Nr2   r‚   ©r‰   r„   r…   r†   c                 S   s   | d d | d fS ©Nr   r!   r	   r   r   r   r   r   r\   .  s    zDTestNdimageInterpolation.test_geometric_transform17.<locals>.mapping©r	   r   rL   r   r_   r   r   r   Útest_geometric_transform17(  s    þ
ÿz3TestNdimageInterpolation.test_geometric_transform17c                 C   sD   g d¢g d¢g d¢g}dd„ }t j||d|d�}t|dd	ggƒ d S )
Nr2   r‚   r‹   c                 S   s   | d d | d d fS rŒ   r   r   r   r   r   r\   ;  s    zDTestNdimageInterpolation.test_geometric_transform18.<locals>.mapping©r	   r!   rL   r	   r"   r   r_   r   r   r   Útest_geometric_transform185  s    þ
ÿz3TestNdimageInterpolation.test_geometric_transform18c                 C   sL   g d¢g d¢g d¢g}dd„ }t j||d|d�}t|dd d d	…f |ƒ d S )
Nr2   r‚   r‹   c                 S   s   | d | d d fS r‡   r   r   r   r   r   r\   H  s    zDTestNdimageInterpolation.test_geometric_transform19.<locals>.mapping©r"   rn   rL   .r!   r   r_   r   r   r   Útest_geometric_transform19B  s    þ
ÿz3TestNdimageInterpolation.test_geometric_transform19c                 C   sL   g d¢g d¢g d¢g}dd„ }t j||d|d�}t|d d d…d	f |ƒ d S )
Nr2   r‚   r‹   c                 S   s   | d d | d fS rŒ   r   r   r   r   r   r\   U  s    zDTestNdimageInterpolation.test_geometric_transform20.<locals>.mapping©r5   r   rL   r!   .r   r_   r   r   r   Útest_geometric_transform20O  s    þ
ÿz3TestNdimageInterpolation.test_geometric_transform20c                 C   sR   g d¢g d¢g d¢g}dd„ }t j||d|d�}t|d d d…d d d…f |ƒ d S )	Nr2   r‚   r‹   c                 S   s   | d d | d d fS rŒ   r   r   r   r   r   r\   b  s    zDTestNdimageInterpolation.test_geometric_transform21.<locals>.mapping©r5   rn   rL   r!   r   r_   r   r   r   Útest_geometric_transform21\  s    þ
ÿz3TestNdimageInterpolation.test_geometric_transform21c                 C   sb   t  g d¢g d¢g d¢gt j¡}dd„ }dd„ }tj||d|d	�}tj||d
|d	�}t||ƒ d S )Nr2   r‚   r‹   c                 S   s   | d d | d d fS rŒ   r   r   r   r   r   Úmapping1o  s    zETestNdimageInterpolation.test_geometric_transform22.<locals>.mapping1c                 S   s   | d d | d d fS rŒ   r   r   r   r   r   Úmapping2r  s    zETestNdimageInterpolation.test_geometric_transform22.<locals>.mapping2r•   rL   ©r"   r   )r*   r+   r|   r,   r-   r   )r/   r(   r0   r—   r˜   rQ   r   r   r   Útest_geometric_transform22i  s    
þþÿÿz3TestNdimageInterpolation.test_geometric_transform22c                 C   sN   g d¢g d¢g d¢g}dd„ }t j||d|d�}| tj¡}t|dd	gƒ d S )
Nr2   r‚   r‹   c                 S   s   d| d d fS )Nr	   r   r!   r   r   r   r   r   r\   �  s    zDTestNdimageInterpolation.test_geometric_transform23.<locals>.mapping©r!   rL   ro   r$   )r,   r-   Úastyper*   Zint32r   r_   r   r   r   Útest_geometric_transform23{  s    þz3TestNdimageInterpolation.test_geometric_transform23c                 C   sJ   g d¢g d¢g d¢g}dd„ }t j||d|ddd	id
�}t|ddgƒ d S )Nr2   r‚   r‹   c                 S   s   || d | fS )Nr   r   )r   ÚaÚbr   r   r   r\   Ž  s    zDTestNdimageInterpolation.test_geometric_transform24.<locals>.mappingr›   )r	   rŸ   r!   )r(   Zextra_argumentsZextra_keywordsro   r$   r   r_   r   r   r   Útest_geometric_transform24ˆ  s    þ
þz3TestNdimageInterpolation.test_geometric_transform24c                 C   sT   t jg d¢g d¢gtd�}dd„ }t  g d¢g d¢g¡}ttj||dd	d
�|ƒ d S )N©r	   r!   r"   ©r   ro   r5   r6   c                 S   s   | d d | d d fS )Nr   r   r	   r   r   r   r   r   r\   ›  s    zWTestNdimageInterpolation.test_geometric_transform_grid_constant_order1.<locals>.mapping©g      Ð?g      è?ç      ô?©r¤   g      @r#   r   r	   ©r&   r(   )r*   r+   rA   r   r,   r-   )r/   r   r\   Úexpected_resultr   r   r   Ú-test_geometric_transform_grid_constant_order1–  s    
ÿÿ
ÿ
ÿýzFTestNdimageInterpolation.test_geometric_transform_grid_constant_order1)r   r   r   r   r   c           
      C   sŠ   t jdtd� dd¡}dd„ }d}t |¡}t j|||d�}tt|| ƒg|j	 ƒ}t
j||||d�| }	tt
j||||d�|	d	d
� d S )Né�   r6   r†   c                 S   s   | d d | d d fS )Nr   çš™™™™™Ù?r	   gffffff@r   r   r   r   r   r\   ¬  s    zLTestNdimageInterpolation.test_geometric_transform_vs_padded.<locals>.mappingé   r<   r¦   r=   ©r>   )r*   r@   rA   ÚreshaperC   rD   rE   ÚtupleÚsliceÚndimr,   r-   r   )
r/   r(   r&   r   r\   rG   rH   ÚxpÚcenter_slicer§   r   r   r   Ú"test_geometric_transform_vs_padded¦  s$    
ÿÿ
ÿüz;TestNdimageInterpolation.test_geometric_transform_vs_paddedc                 C   sz   t  dg¡}dd„ }|j|j ¡ t  |¡t  |¡ |j ¡ ¡fD ]4}tj|||j|d�}|d u rd|n|}t	|dgƒ q@d S )Nr	   c                 S   s   | S r[   r   r   r   r   r   r\   Ä  s    zcTestNdimageInterpolation.test_geometric_transform_endianness_with_output_parameter.<locals>.mappingrU   )
r*   r+   r7   ÚnewbyteorderÚ
empty_likerœ   r,   r-   r^   r   )r/   r0   r\   rQ   ÚreturnedÚresultr   r   r   Ú9test_geometric_transform_endianness_with_output_parameter¿  s    þÿzRTestNdimageInterpolation.test_geometric_transform_endianness_with_output_parameterc                 C   sH   t  dg¡}dd„ }tj||dd�}t|jt  d¡u ƒ t|dgƒ d S )Nr	   c                 S   s   | S r[   r   r   r   r   r   r\   Ò  s    zUTestNdimageInterpolation.test_geometric_transform_with_string_output.<locals>.mappingÚfrU   )r*   r+   r,   r-   r   r7   r   )r/   r0   r\   rQ   r   r   r   Ú+test_geometric_transform_with_string_outputÏ  s
    zDTestNdimageInterpolation.test_geometric_transform_with_string_outputc                 C   sŽ   t  g d¢g d¢g d¢g¡}t  g d¢g d¢g d¢g¡}|jjdkr\|d|  }|d|  }t  |j¡}|d	8 }tj|||d
�}t||ƒ d S )Nrf   rm   rp   rt   rg   rq   ri   rj   r	   rL   )	r*   r+   r7   rk   Úindicesr^   r,   rB   r   )r/   r(   r7   r0   rJ   ÚidxrQ   r   r   r   Útest_map_coordinates01Ù  s    
þ
þz/TestNdimageInterpolation.test_map_coordinates01c                 C   sb   t  g d¢g d¢g d¢g¡}t  |jt j¡}|d8 }tj|d|d�}tj|||d�}t||ƒ d S )Nrf   rm   rp   r   rL   )	r*   r+   r»   r^   r|   r,   r    rB   r   )r/   r(   r0   r¼   Úout1Úout2r   r   r   Útest_map_coordinates02ì  s    
þz/TestNdimageInterpolation.test_map_coordinates02c              	   C   sP  t jg d¢g d¢g d¢gdd�}t  |j¡d }t ||¡}t|g d¢g d¢g d	¢gƒ t|t |d
¡ƒ t  |d d d… j¡d }t |d d d… |¡}t|g d¢g d¢gƒ t|t |d d d… d
¡ƒ t  |d d …d d d…f j¡d }t |d d …d d d…f |¡}t|ddgddgddggƒ t|t |d d …d d d…f d
¡ƒ d S )Nrf   rm   rp   ÚFrL   r	   rt   rg   rq   ©r	   r	   r!   r   r   r$   )r*   r+   r»   r^   r,   rB   r   r    ©r/   r0   r¼   rQ   r   r   r   Útest_map_coordinates03ø  s.    
þþ
þ
ÿ"z/TestNdimageInterpolation.test_map_coordinates03c                 C   s    t  ddgddgg¡}t  ddgddgg¡}t  |j¡}|d8 }|j|j ¡ t  |¡t  |¡ |j ¡ ¡fD ].}tj	|||d�}|d u rŒ|n|}t
||ƒ qld S )Nr	   r!   r$   r5   r   rU   )r*   r+   r»   r^   r7   r´   rµ   rœ   r,   rB   r   )r/   r0   rJ   r¼   rQ   r¶   r·   r   r   r   Ú5test_map_coordinates_endianness_with_output_parameter  s    üzNTestNdimageInterpolation.test_map_coordinates_endianness_with_output_parameterc                 C   sP   t  dgg¡}t  |j¡}tj||dd�}t|jt  d¡u ƒ t|dggƒ d S ©Nr	   r¹   rU   )	r*   r+   r»   r^   r,   rB   r   r7   r   rÃ   r   r   r   Ú'test_map_coordinates_with_string_output  s
    z@TestNdimageInterpolation.test_map_coordinates_with_string_outputÚwin32rn   z2do not run on 32 bit or windows (no sparse memory))Úreasonc              
   C   s–   z`d}t j|d t jd� ||¡}d||d d …|d d …f< tj||d g|d ggdd� W n0 ty� } zt d	¡|‚W Y d }~n
d }~0 0 d S )
Ni0u  r!   r6   r   r"   r   r	   rL   zNot enough memory available)	r*   ÚemptyZfloat32r­   r,   rB   ÚMemoryErrorÚpytestÚskip)r/   Únrž   Úer   r   r   Útest_map_coordinates_large_data$  s    $z8TestNdimageInterpolation.test_map_coordinates_large_datac                 C   s0   t  dg¡}tj|dgg|d�}t|dgƒ d S rS   ©r*   r+   r,   Úaffine_transformr   ©r/   r(   r0   rQ   r   r   r   Útest_affine_transform012  s    z0TestNdimageInterpolation.test_affine_transform01c                 C   s2   t  dg¡}tj|dgg|d�}t|g d¢ƒ d S )Nr   r	   rL   rX   ©r*   rN   r,   rÒ   r   rÓ   r   r   r   Útest_affine_transform028  s    z0TestNdimageInterpolation.test_affine_transform02c                 C   s4   t  dg¡}tj|dggd|d�}t|g d¢ƒ d S )Nr   r	   r   rL   rd   rÕ   rÓ   r   r   r   Útest_affine_transform03>  s    z0TestNdimageInterpolation.test_affine_transform03c                 C   s6   t  g d¢¡}tj|dggd|d�}t|g d¢ƒ d S )Nrf   r	   r   rL   rg   rÑ   rÓ   r   r   r   Útest_affine_transform04D  s    z0TestNdimageInterpolation.test_affine_transform04c                 C   s”   t jg d¢g d¢g d¢g|d�}t jg d¢g d¢g d¢g|d�}|jjdkrd|d| 8 }|d| 8 }tj|ddgddggddg|d	�}t||ƒ d S )
NrX   r6   rd   ri   rj   r	   r   r   rL   )r*   r+   r7   rk   r,   rÒ   r   ©r/   r(   r7   r0   rJ   rQ   r   r   r   Útest_affine_transform05J  s&    
þþ
þþÿz0TestNdimageInterpolation.test_affine_transform05c                 C   s^   t  g d¢g d¢g d¢g¡}tj|ddgddggddg|d�}t|g d¢g d	¢g d
¢gƒ d S )Nrf   rm   rp   r	   r   r   rL   rg   rq   rr   rÑ   rÓ   r   r   r   Útest_affine_transform06Z  s    
þÿ
þz0TestNdimageInterpolation.test_affine_transform06c                 C   s^   t  g d¢g d¢g d¢g¡}tj|ddgddggddg|d�}t|g d¢g d¢g d¢gƒ d S )	Nrf   rm   rp   r	   r   r   rL   rt   rÑ   rÓ   r   r   r   Útest_affine_transform07e  s    
þÿ
þz0TestNdimageInterpolation.test_affine_transform07c                 C   s^   t  g d¢g d¢g d¢g¡}tj|ddgddggddg|d�}t|g d¢g d	¢g d
¢gƒ d S )Nrf   rm   rp   r	   r   r   rL   rt   rg   rq   rÑ   rÓ   r   r   r   Útest_affine_transform08p  s    
þÿ
þz0TestNdimageInterpolation.test_affine_transform08c                 C   s|   t  g d¢g d¢g d¢g¡}|dkr4tj||d�}n|}tj|ddgddggddg|dd	�}t|g d
¢g d¢g d¢gƒ d S )Nrf   rm   rp   r	   rL   r   r   Frw   rt   rg   rq   )r*   r+   r,   rO   rÒ   r   ©r/   r(   r0   ry   rQ   r   r   r   Útest_affine_transform09{  s    
þþ
þz0TestNdimageInterpolation.test_affine_transform09c                 C   s8   t  dgt j¡}tj|dggd|d�}t|g d¢ƒ d S )Nr!   r   r3   )r'   r(   ©r	   r	   r	   r   )r*   rN   r|   r,   rÒ   r   rÓ   r   r   r   Útest_affine_transform10‹  s
    ÿz0TestNdimageInterpolation.test_affine_transform10c                 C   s2   g d¢}t j|dggdd|d�}t|g d¢ƒ d S )Nr~   r!   r   r3   rL   r2   ©r,   rÒ   r   rÓ   r   r   r   Útest_affine_transform11’  s    z0TestNdimageInterpolation.test_affine_transform11c                 C   s<   g d¢}t j|dggdd|d�}t|d d d… g d¢ƒ d S )Nr2   r   r   ©rn   rL   r!   râ   rÓ   r   r   r   Útest_affine_transform12˜  s    z0TestNdimageInterpolation.test_affine_transform12c                 C   sV   g d¢g d¢g d¢g}t j|ddgddggdd|d�}t|dd	gd
dgddggƒ d S )Nr2   r‚   rƒ   r	   r   r!   rˆ   rL   r"   ro   r$   r‰   r…   râ   rÓ   r   r   r   Útest_affine_transform13ž  s    þÿz0TestNdimageInterpolation.test_affine_transform13c                 C   sJ   g d¢g d¢g d¢g}t j|ddgddggdd|d�}t|g d¢gƒ d S )	Nr2   r‚   r‹   r!   r   r	   r�   rL   râ   rÓ   r   r   r   Útest_affine_transform14§  s    þÿz0TestNdimageInterpolation.test_affine_transform14c                 C   sJ   g d¢g d¢g d¢g}t j|ddgddggdd|d�}t|dd	ggƒ d S )
Nr2   r‚   r‹   r!   r   r�   rL   r	   r"   râ   rÓ   r   r   r   Útest_affine_transform15°  s    þÿz0TestNdimageInterpolation.test_affine_transform15c                 C   sR   g d¢g d¢g d¢g}t j|ddgddggdd|d	�}t|d
d d d…f |ƒ d S )Nr2   r‚   r‹   r	   ç        r   r   r‘   rL   .r!   râ   rÓ   r   r   r   Útest_affine_transform16¹  s    þÿz0TestNdimageInterpolation.test_affine_transform16c                 C   sR   g d¢g d¢g d¢g}t j|ddgddggdd|d�}t|d d d	…d
f |ƒ d S )Nr2   r‚   r‹   r   r   r	   r“   rL   r!   .râ   rÓ   r   r   r   Útest_affine_transform17Â  s    þÿz0TestNdimageInterpolation.test_affine_transform17c                 C   sX   g d¢g d¢g d¢g}t j|ddgddggdd|d�}t|d d d…d d d…f |ƒ d S )	Nr2   r‚   r‹   r   r   r•   rL   r!   râ   rÓ   r   r   r   Útest_affine_transform18Ë  s    þÿz0TestNdimageInterpolation.test_affine_transform18c                 C   sn   t  g d¢g d¢g d¢gt j¡}tj|ddgddggdd|d�}tj|ddgddggdd	|d�}t||ƒ d S )
Nr2   r‚   r‹   r   r   r•   rL   ç       @r™   )r*   r+   r|   r,   rÒ   r   rÓ   r   r   r   Útest_affine_transform19Ô  s    
þþÿÿz0TestNdimageInterpolation.test_affine_transform19c                 C   sD   g d¢g d¢g d¢g}t j|dgdggdd|d�}t|dd	gƒ d S )
Nr2   r‚   r‹   r   r!   r›   rL   r	   r"   râ   rÓ   r   r   r   Útest_affine_transform20ß  s    þÿz0TestNdimageInterpolation.test_affine_transform20c                 C   sD   g d¢g d¢g d¢g}t j|dgdggdd|d�}t|dd	gƒ d S )
Nr2   r‚   r‹   r!   r   r›   rL   r	   r‰   râ   rÓ   r   r   r   Útest_affine_transform21è  s    þÿz0TestNdimageInterpolation.test_affine_transform21c                 C   s:   t  g d¢¡}tj|dggdgd|d�}t|g d¢ƒ d S )Nrf   r!   r   )r"   rL   ©r   r	   r!   rÑ   rÓ   r   r   r   Útest_affine_transform22ñ  s
    ÿz0TestNdimageInterpolation.test_affine_transform22c                 C   sD   t  g d¢¡}tj|dggdgd|d�}t|d d d… g d¢ƒ d S )Nrf   r   r   rä   rL   r!   rg   rÑ   rÓ   r   r   r   Útest_affine_transform23ù  s
    ÿz0TestNdimageInterpolation.test_affine_transform23c                 C   sx   t  g d¢¡}tƒ �0}| td¡ tj|dgd|d�}W d   ƒ n1 sJ0    Y  tj|dggd|d�}t||ƒ d S )Nrf   ú@The behavior of affine_transform with a 1-D array .* has changedr!   r   rL   ©r*   r+   r   ÚfilterÚUserWarningr,   rÒ   r   ©r/   r(   r0   Úsupr¾   r¿   r   r   r   Útest_affine_transform24  s    ÿ2z0TestNdimageInterpolation.test_affine_transform24c                 C   sx   t  g d¢¡}tƒ �0}| td¡ tj|dgd|d�}W d   ƒ n1 sJ0    Y  tj|dggd|d�}t||ƒ d S )Nrf   rô   r   r   rL   rõ   rø   r   r   r   Útest_affine_transform25  s    ÿ2z0TestNdimageInterpolation.test_affine_transform25c                 C   sÜ   t  g d¢g d¢g d¢g¡}|dkr4tj||d�}n|}t  d¡}t  d¡ }t  ||f¡}t  |g d¢gf¡}tj||| 	¡ |d	d
�}tj|||d	d
�}	tj|||d	d
�}
||	|
fD ] }t
|g d¢g d¢g d¢gƒ q¶d S )Nrf   rm   rp   r	   rL   r!   ©r!   r	   )r   r   r	   Frw   rt   rg   rq   )r*   r+   r,   rO   ÚeyerN   ÚhstackÚvstackrÒ   Zravelr   )r/   r(   r0   ry   Ztform_originalZoffset_originalÚtform_h1Útform_h2r¾   r¿   Zout3rQ   r   r   r   Útest_affine_transform26  s4    
þ
þ
ÿ
ÿ
þz0TestNdimageInterpolation.test_affine_transform26c                 C   s`   t  g d¢g d¢g d¢g¡}t  t  d¡t  d¡ f¡}t  |g d¢gf¡}tttj	||ƒ d S )Nrf   rm   rp   r!   rü   )ro   r!   r	   )
r*   r+   rþ   rý   rN   rÿ   Úassert_raisesÚ
ValueErrorr,   rÒ   )r/   r0   r   r  r   r   r   Útest_affine_transform273  s    
þz0TestNdimageInterpolation.test_affine_transform27c              	   C   s¬   t  d¡}t  |¡t  |¡ |j ¡ ¡|j|j ¡ fD ]p}tƒ �0}| td¡ t	j
|ddg|d�}W d   ƒ n1 sv0    Y  |d u rŒ|n|}t|ddgddggƒ q6d S )N)r!   r!   rô   r	   rU   )r*   rN   rµ   rœ   r7   r´   r   rö   r÷   r,   rÒ   r   )r/   r0   rQ   rù   r¶   r·   r   r   r   Ú9test_affine_transform_1d_endianness_with_output_parameter<  s    
þÿ2zRTestNdimageInterpolation.test_affine_transform_1d_endianness_with_output_parameterc                 C   sr   t  dg¡}|j|j ¡ t  |¡t  |¡ |j ¡ ¡fD ]4}tj|dgg|d�}|d u r\|n|}t|dgƒ q8d S )Nr	   rU   )	r*   r+   r7   r´   rµ   rœ   r,   rÒ   r   )r/   r0   rQ   r¶   r·   r   r   r   Ú>test_affine_transform_multi_d_endianness_with_output_parameterK  s    þzWTestNdimageInterpolation.test_affine_transform_multi_d_endianness_with_output_parameterc                 C   s„   t jdt jd�}t  d¡}tj|dgg|d� t|d d… |ƒ t t	¡�& tj|dgg|dd� W d   ƒ n1 sv0    Y  d S )Nrn   r6   )é   r	   rU   )r†   )rV   r'   )
r*   r@   r|   rN   r,   rÒ   r   rÌ   r   ÚRuntimeError©r/   r0   rQ   r   r   r   Ú"test_affine_transform_output_shapeV  s    
ÿz;TestNdimageInterpolation.test_affine_transform_output_shapec                 C   sD   t  dg¡}tj|dggdd�}t|jt  d¡u ƒ t|dgƒ d S rÆ   )r*   r+   r,   rÒ   r   r7   r   r
  r   r   r   Ú(test_affine_transform_with_string_outputc  s    zATestNdimageInterpolation.test_affine_transform_with_string_outputr    ))r	   r   ©r   r	   )r   r	   )r"   éûÿÿÿ)r!   r$   c                 C   sr   t  ddgddgg¡}t  d¡}t  d¡|d d…d d…f< ||d d …df< ttj||d|d�t j||dd	�ƒ d S )
Nr   r	   r!   r"   ©r!   r"   r   r¦   r  ©Zaxis)r*   r+   Úzerosrý   r   r,   rÒ   Úroll)r/   r    r(   r   Úaffiner   r   r   Ú)test_affine_transform_shift_via_grid_wrapi  s    
ÿ
þzBTestNdimageInterpolation.test_affine_transform_shift_via_grid_wrapc                 C   s|   t  g d¢g d¢g¡}t  d¡}t  d¡|d d…d d…f< |j|d d …df< ttj||d|d�|d d d…d d d…f ƒ d S )Nrñ   ©r"   r   ro   r  r!   r   r¦   r   )r*   r+   r  rý   r^   r   r,   rÒ   )r/   r(   r   r  r   r   r   Ú#test_affine_transform_shift_reflectx  s    
ÿ
þz<TestNdimageInterpolation.test_affine_transform_shift_reflectc                 C   s.   t  dg¡}tj|dg|d�}t|dgƒ d S )Nr	   rL   r   ©r*   r+   r,   r    r   rÓ   r   r   r   Útest_shift01…  s    z%TestNdimageInterpolation.test_shift01c                 C   s0   t  dg¡}tj|dg|d�}t|g d¢ƒ d S )Nr   r	   rL   rd   ©r*   rN   r,   r    r   rÓ   r   r   r   Útest_shift02‹  s    z%TestNdimageInterpolation.test_shift02c                 C   s.   t  dg¡}tj|d|d�}t|g d¢ƒ d S )Nr   r   rL   rà   r  rÓ   r   r   r   Útest_shift03‘  s    z%TestNdimageInterpolation.test_shift03c                 C   s0   t  g d¢¡}tj|d|d�}t|g d¢ƒ d S )Nrf   r	   rL   rg   r  rÓ   r   r   r   Útest_shift04—  s    z%TestNdimageInterpolation.test_shift04c                 C   s†   t jg d¢g d¢g d¢g|d�}t jg d¢g d¢g d¢g|d�}|jjdkrd|d| 8 }|d| 8 }tj|ddg|d�}t||ƒ d S )	NrX   r6   rd   ri   rj   r   r	   rL   ©r*   r+   r7   rk   r,   r    r   rÙ   r   r   r   Útest_shift05�  s"    
þþ
þþz%TestNdimageInterpolation.test_shift05c                 C   sž   t jg d¢g d¢g d¢g|d�}t jg d¢g d¢g d¢g|d�}|jjdkrd|d| 8 }|d| 8 }d}||d d …df< tj|ddg|||d	�}t||ƒ d S )
NrX   r6   rd   ri   rj   g      @r   r	   )r(   r&   r%   r  )r/   r(   r&   r7   r0   rJ   r%   rQ   r   r   r   Útest_shift_with_nonzero_cval¬  s&    
þþ
þþz5TestNdimageInterpolation.test_shift_with_nonzero_cvalc                 C   sP   t  g d¢g d¢g d¢g¡}tj|ddg|d�}t|g d¢g d¢g d	¢gƒ d S )
Nrf   rm   rp   r   r	   rL   rg   rq   rr   r  rÓ   r   r   r   Útest_shift06À  s    
þ
þz%TestNdimageInterpolation.test_shift06c                 C   sP   t  g d¢g d¢g d¢g¡}tj|ddg|d�}t|g d¢g d¢g d¢gƒ d S )Nrf   rm   rp   r	   r   rL   rt   r  rÓ   r   r   r   Útest_shift07Ê  s    
þ
þz%TestNdimageInterpolation.test_shift07c                 C   sP   t  g d¢g d¢g d¢g¡}tj|ddg|d�}t|g d¢g d¢g d¢gƒ d S )	Nrf   rm   rp   r	   rL   rt   rg   rq   r  rÓ   r   r   r   Útest_shift08Ô  s    
þ
þz%TestNdimageInterpolation.test_shift08c                 C   sn   t  g d¢g d¢g d¢g¡}|dkr4tj||d�}n|}tj|ddg|dd�}t|g d¢g d	¢g d
¢gƒ d S )Nrf   rm   rp   r	   rL   Frw   rt   rg   rq   )r*   r+   r,   rO   r    r   rÞ   r   r   r   Útest_shift09Þ  s    
þ
þz%TestNdimageInterpolation.test_shift09c                 C   s>   t  ddgddgg¡}ttj||d|d�t j||dd�ƒ d S )	Nr   r	   r!   r"   r   r¦   r  r  )r*   r+   r   r,   r    r  ©r/   r    r(   r   r   r   r   Útest_shift_grid_wrapì  s    
ÿþz-TestNdimageInterpolation.test_shift_grid_wrapc                 C   s:   t  d¡ d¡}ttj||d|d�tj||d|d�ƒ d S )Né   )ro   r   r   r¦   r   )r*   r@   r­   r   r,   r    r$  r   r   r   Útest_shift_grid_constant1ø  s
    þz2TestNdimageInterpolation.test_shift_grid_constant1c                 C   sL   t jg d¢g d¢gtd�}t  g d¢g d¢g¡}ttj|dddd	�|ƒ d S )
Nr¡   r¢   r6   r£   r¥   )r   r   r   r	   r¦   )r*   r+   rA   r   r,   r    )r/   r   r§   r   r   r   Útest_shift_grid_constant_order1  s    
ÿÿ
ÿþz8TestNdimageInterpolation.test_shift_grid_constant_order1c                 C   sH   t  g d¢g d¢g¡}ttj||jd|d�|d d d…d d d…f ƒ d S )Nrñ   r  r   r¦   r   )r*   r+   r   r,   r    r^   )r/   r(   r   r   r   r   Útest_shift_reflect  s    
ÿþz+TestNdimageInterpolation.test_shift_reflectrx   FTc                 C   sr   t  d¡}td||d�}ttj||d d fi |¤Žd |d ƒ ttj|| d d fi |¤Žd |d ƒ d S )Nr  r   )r&   r(   rx   r!   r	   r   r   )r*   r@   Údictr   r,   r    )r/   r(   rx   r   Úkwargsr   r   r   Útest_shift_nearest_boundary  s    
$ÿ&ÿz4TestNdimageInterpolation.test_shift_nearest_boundaryc           
      C   s†   t jdtd� dd¡}d}d}t |¡}t j|||d�}tt|| ƒg|j	 ƒ}t
j||||d�| }	tt
j||||d�|	dd	� d S )
Nr©   r6   r†   )rª   gffffffÀr;   r<   r¦   r=   r¬   )r*   r@   rA   r­   rC   rD   rE   r®   r¯   r°   r,   r    r   )
r/   r(   r&   r   r    rG   rH   r±   r²   r§   r   r   r   Útest_shift_vs_padded%  s     
ÿÿýz-TestNdimageInterpolation.test_shift_vs_paddedc                 C   sÞ   dddgfD ]Ì}t  ttdƒƒ¡ d¡ t¡}tj|||d�}t	|j
dƒ tt  |dd d …f dk¡ƒ tt  |dd d …f dt k¡ƒ tt  |dd d …f d	t k¡ƒ tt  |dt k¡ƒ tt  |d
t k¡ƒ qd S )Nr!   é   )ro   ro   rL   )r„   r„   r   r   r&  ro   r«   )r*   r+   ÚlistÚranger­   rœ   rA   r,   Úzoomr   r^   r   ÚallÚeps)r/   r(   ÚzÚarrr   r   r   Ú
test_zoom1:  s    ""z#TestNdimageInterpolation.test_zoom1c                 C   s2   t  d¡ d¡}t t |d¡d¡}t||ƒ d S )Nr†   r™   r!   r   )r*   r@   r­   r,   r1  r   )r/   r5  rQ   r   r   r   Ú
test_zoom2F  s    z#TestNdimageInterpolation.test_zoom2c                 C   s^   t  ddgg¡}t |d¡}t |d¡}t|t  ddgddgg¡ƒ t|t  g d¢g¡ƒ d S )Nr	   r!   rü   r�   )r	   r	   r!   r!   )r*   r+   r,   r1  r   )r/   r5  r¾   r¿   r   r   r   Ú
test_zoom3K  s
    z#TestNdimageInterpolation.test_zoom3c                 C   s¤   t jg d¢g d¢g d¢g|d�}|jjdkr8|d| 8 }tƒ �4}| td¡ tj|ddgd	d
|d�}W d   ƒ n1 sx0    Y  t	|d d d…d d d…f |ƒ d S )Nr2   r‚   r‹   r6   ri   rj   rô   r   r   r•   rL   r!   )
r*   Zasarrayr7   rk   r   rö   r÷   r,   rÒ   r   )r/   r(   r7   r0   rù   rQ   r   r   r   Útest_zoom_affine01S  s     
þþÿÿ$z+TestNdimageInterpolation.test_zoom_affine01c                 C   s&   d}t jt ||f¡d| dd� d S )Nrn   ç      ð?r   r<   )r,   r1  r*   r  )r/   Údimr   r   r   Útest_zoom_infinityc  s    z+TestNdimageInterpolation.test_zoom_infinityc                 C   s6   t  d¡}d}tj||dd�}t  d¡}t||ƒ d S )N)r	   ro   ro   )r:  rí   rí   r$   )r%   )r	   r„   r„   )r*   r  r,   r1  r   )r/   r5  r1  rQ   Úrefr   r   r   Útest_zoom_zoomfactor_oneh  s
    

z1TestNdimageInterpolation.test_zoom_zoomfactor_onec                 C   s*   t  d¡}d}t ||¡}t|jdƒ d S )N)r"   r…   r.  )gUUUUUUõ?gÑE]tÑõ?g�Âõ(\�ò?)r   r8   é   )r*   r  r,   r1  r   r^   )r/   r5  r1  rQ   r   r   r   Útest_zoom_output_shape_roundoffq  s    
z8TestNdimageInterpolation.test_zoom_output_shape_roundoffr1  )rÂ   )r"   ro   )rn   r!   )rn   rn   )r   r   r   r   r   r   r   r   c                 C   sD   t jddgddggtd�}ttj||d|d�t  |t  |¡¡ƒ d S )Nr   r	   r!   r"   r6   r:   )r*   r+   rA   r   r,   r1  ÚkronrN   )r/   r1  r&   r   r   r   r   Útest_zoom_by_int_order0w  s    	
ÿÿþz0TestNdimageInterpolation.test_zoom_by_int_order0r^   r  )r   r   )r   r   r   r   r   c                 C   sF   t jt  |¡td� |¡}ttj||d|dd�t  |t  	|¡¡ƒ d S )Nr6   r   T)r(   r&   Ú	grid_mode)
r*   r@   ÚprodrA   r­   r   r,   r1  rA  rN   )r/   r^   r1  r&   r   r   r   r   Útest_zoom_grid_by_int_order0ˆ  s
    þz5TestNdimageInterpolation.test_zoom_grid_by_int_order0c                 C   sZ   t jdtd� d¡}tjtdd��$ tj|d|dd�f W d   ƒ n1 sL0    Y  d S )	Nr‰   r6   )r"   r"   zIt is recommended to use mode)Úmatchr!   T)r&   rC  )	r*   r@   rA   r­   rÌ   Zwarnsr÷   r,   r1  )r/   r&   r   r   r   r   Útest_zoom_grid_mode_warnings–  s
    ÿz5TestNdimageInterpolation.test_zoom_grid_mode_warningsc                 C   s@   t jg d¢g d¢g d¢gt jd�}tj|d|d�}t||ƒ d S )Nrt   ©r   r	   r	   r   r6   r   rL   ©r*   r+   r|   r,   Úrotater   rÓ   r   r   r   Útest_rotate01ž  s    
þþz&TestNdimageInterpolation.test_rotate01c                 C   sh   t jg d¢g d¢g d¢gt jd�}t jg d¢g d¢g d¢g d¢gt jd�}tj|d|d�}t||ƒ d S )Nrt   )r   r	   r   r   r6   ©r   r   r   ©r   r	   r   éZ   rL   rI  ©r/   r(   r0   rJ   rQ   r   r   r   Útest_rotate02¦  s    
þþ
ýýz&TestNdimageInterpolation.test_rotate02c                 C   sŽ   t jg d¢g d¢g d¢g|d�}t jg d¢g d¢g d¢g d¢g d¢g|d�}|jjdkrp|d| 8 }|d| 8 }tj|d|d	�}t||ƒ d S )
N©r   r   r   r   r   ©r   r	   r	   r   r   r6   rL  rM  ri   rj   rN  rL   )r*   r+   r7   rk   r,   rJ  r   rÙ   r   r   r   Útest_rotate03²  s&    
þþ
üüz&TestNdimageInterpolation.test_rotate03c                 C   sd   t jg d¢g d¢g d¢gt jd�}t jg d¢g d¢g d¢gt jd�}tj|dd|d�}t||ƒ d S )NrQ  rR  r6   ©r   r   r	   r   r   rN  F)r­   r(   rI  rO  r   r   r   Útest_rotate04Ã  s    
þþ
þþz&TestNdimageInterpolation.test_rotate04c                 C   s²   t  d¡}tdƒD ]>}t jg d¢g d¢g d¢g d¢gt jd�|d d …d d …|f< qt jg d¢g d¢g d¢gt jd�}tj|d|d	�}tdƒD ] }t|d d …d d …|f |ƒ qŒd S )
N)r   r"   r"   r"   rL  rM  r6   rt   rH  rN  rL   ©r*   rÊ   r0  r+   r|   r,   rJ  r   ©r/   r(   r0   ÚirJ   rQ   r   r   r   Útest_rotate05Î  s$    

ýý
þþz&TestNdimageInterpolation.test_rotate05c                 C   s²   t  d¡}tdƒD ]8}t jg d¢g d¢g d¢gt jd�|d d …d d …|f< qt jg d¢g d¢g d¢g d¢gt jd�}tj|d|d	�}tdƒD ] }t|d d …d d …|f |ƒ qŒd S )
N)r"   r   r"   r"   rt   rH  r6   rL  rM  rN  rL   rV  rW  r   r   r   Útest_rotate06Ý  s$    

þþ
ýýz&TestNdimageInterpolation.test_rotate06c                 C   s’   t jg d¢g d¢g d¢ggd t jd�}| ¡ }t jg d¢g d¢g d¢g d¢g d¢ggd t jd�}| g d¢¡}tj|dd	|d
�}t||ƒ d S )NrQ  rR  r!   r6   rL  rM  )r!   r	   r   rN  r  )Úaxesr(   ©r*   r+   r|   Z	transposer,   rJ  r   rO  r   r   r   Útest_rotate07ì  s,    
þþþ
üüüz&TestNdimageInterpolation.test_rotate07c                 C   s‚   t jg d¢g d¢g d¢ggd t jd�}| ¡ }t jg d¢g d¢g d¢ggd t jd�}| ¡ }tj|ddd|d	�}t||ƒ d S )
NrQ  rR  r!   r6   rT  rN  r  F)r[  r­   r(   r\  rO  r   r   r   Útest_rotate08û  s(    
þþþ
þþþz&TestNdimageInterpolation.test_rotate08c                 C   sh   t jg d¢g d¢g d¢gd t jd�}ttƒ�& tj|dd|jfd� W d   ƒ n1 sZ0    Y  d S )NrQ  rR  r!   r6   rN  r   )r[  )r*   r+   r|   r  r  r,   rJ  r°   )r/   r0   r   r   r   Útest_rotate09  s    
þþþ
z&TestNdimageInterpolation.test_rotate09c              
   C   sž   t jdt jd� d¡}t  g d¢g d¢g d¢g d¢g d¢gg d¢g d¢g d	¢g d
¢g d¢gg d¢g d¢g d¢g d¢g d¢gg¡}tj|ddd�}t||ƒ d S )Né-   r6   )r"   ro   r"   )ré   ré   ré   )g|ÀÕS2@g|ÀÕS2@g>àê)!@)g9ÚHD¾°%@g9ÚHD¾°'@g9ÚHD¾°)@)gõc™~Å@gõc™~Å@gz‰±L¿b @)gä[ic6ò*@gä[ic6ò,@gä[ic6ò.@)g      5@g      6@g      7@)gRKÎä†<@gRKÎä†=@gRKÎä†>@)g¡�Ó,PçA@g¡�Ó,PgB@g¡�Ó,PçB@)gã’ÛÝ '?@grÉínÐ@@grÉínÐ“@@)gñýG…µ¹A@gñýG…µ9B@gñýG…µ¹B@r†   F)Zangler­   )r*   r@   r|   r­   r+   r,   rJ  r   )r/   r0   rJ   rQ   r   r   r   Útest_rotate10  s,    
üüüöz&TestNdimageInterpolation.test_rotate10c                 C   s4   t  t  d¡d¡}t t |d¡d¡}t||ƒ d S )Nro   )ro   r	   é´   iLÿÿÿ)r*   Ztiler@   r,   rJ  r   )r/   rž   rŸ   r   r   r   Útest_rotate_exact_180&  s    z.TestNdimageInterpolation.test_rotate_exact_180N)}Ú__name__Ú
__module__Ú__qualname__rÌ   ÚmarkZparametrizer1   r4   r0  rK   r
   rR   rT   rW   rY   rZ   r`   rb   re   rh   r*   r|   Z
complex128rl   rs   ru   rv   rz   r}   r€   r�   rŠ   rŽ   r�   r’   r”   r–   rš   r�   r    r¨   r³   r¸   rº   r½   rÀ   rÄ   rÅ   rÇ   ZskipifÚsysÚplatformZintpÚitemsizerÐ   rÔ   rÖ   r×   rØ   rÚ   rÛ   rÜ   rÝ   rß   rá   rã   rå   ræ   rç   rè   rê   rë   rì   rî   rï   rð   rò   ró   rú   rû   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r%  r'  r(  r)  r,  r-  r6  r7  r8  r9  r<  r>  r@  rB  rE  rG  rK  rP  rS  rU  rY  rZ  r]  r^  r_  ra  rc  r   r   r   r   r      sò  






úþ









úþ















	
	
	










 ÿ





























	ÿ





	
	
	
ÿ	ÿ

	
	








r   c                  C   s*   t  d¡ d¡} tj| dt  d¡d� dS )zTicket #643r†   r™   r!   r•   rU   N)r*   r@   r­   r,   r1  r  r   r   r   r   Útest_zoom_output_shape,  s    rk  )rh  r*   Znumpy.testingr   r   r   r   r   r   rÌ   r   r  Zscipy.ndimager,   Ú r
   r3  rC   r   rk  r   r   r   r   Ú<module>   s4    ú
          