U
    »mœdÖ  ã                   @   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                   @   sF  e Zd Zej dddddddddgfddddddddgfddddddddgfd	dddddddgfd
dddddddgfddddddddgfddddddddgfg¡dd„ ƒZej ddddddgfdddddgfdddddgfd	ddddgfd
ddddgfdddddgfdddddgfg¡dd„ ƒZej dd	d
ddddg¡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ƒ¡d+d,„ ƒZej ded&dƒ¡d-d.„ ƒZej ded&dƒ¡ej dejejg¡d/d0„ ƒƒZej ded&dƒ¡d1d2„ ƒZej ded&dƒ¡d3d4„ ƒZej ded&dƒ¡d5d6„ ƒZej ded&dƒ¡d7d8„ ƒZej ded&dƒ¡d9d:„ ƒ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ƒ¡dAdB„ ƒZ ej ded&dƒ¡dCdD„ ƒZ!ej ded&dƒ¡dEdF„ ƒZ"ej ded&dƒ¡dGdH„ ƒZ#ej ded&dƒ¡dIdJ„ ƒZ$ej ded&dƒ¡dKdL„ ƒZ%ej ded&dƒ¡dMdN„ ƒZ&ej ded&dƒ¡dOdP„ ƒZ'dQdR„ Z(ej ddddd	d
g¡ej dedƒ¡dSdT„ ƒƒZ)dUdV„ Z*dWdX„ Z+ej ded&dƒ¡ej dejejg¡dYdZ„ ƒƒZ,ej ded&dƒ¡d[d\„ ƒZ-d]d^„ Z.d_d`„ Z/dadb„ Z0ejj1dce2j3k�pZe 4d&¡j5ddk dedf�dgdh„ ƒZ6ej ded&dƒ¡didj„ ƒZ7ej ded&dƒ¡dkdl„ ƒZ8ej ded&dƒ¡dmdn„ ƒZ9ej ded&dƒ¡dodp„ ƒZ:ej ded&dƒ¡ej dejejg¡dqdr„ ƒƒZ;ej ded&dƒ¡dsdt„ ƒZ<ej ded&dƒ¡dudv„ ƒZ=ej ded&dƒ¡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~„ ƒ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§d¨d©dªd«d¬g¡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§d¨d©dªd«d¬g¡ej ded&dƒ¡dÅdÆ„ ƒƒZbej d§d¨d©dªd«d¬g¡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dddd	d
g¡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âdãdädådæg¡ej ddddd
d	dddg¡dçdè„ ƒƒZoej dédêdëg¡ej dâdãdädådæg¡ej ddd
d	ddg¡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   ç      ø?g      @g      @é   r   r   r   r   r   éÿÿÿÿr   c              
   C   s:   dd„ }t  ddddg¡}t|tj||d|ddd	�ƒ d S )
Nc                 S   s   | d d fS )Nr   ç      à?© ©Úxr   r   ú_/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/ndimage/tests/test_interpolation.pyÚshift&   s    z7TestNdimageInterpolation.test_boundaries.<locals>.shiftr	   é   é   ç      @r   )é   )ÚcvalÚmodeÚoutput_shapeÚorder©ÚnumpyÚarrayr   ÚndimageÚgeometric_transform©Úselfr$   Zexpected_valuer   Údatar   r   r   Útest_boundaries   s     ÿþz(TestNdimageInterpolation.test_boundariesr	   r   r    c              	   C   s8   dd„ }t  ddddg¡}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>.shiftr	   r   r    r   r   ©r   )r#   r$   r%   r'   r,   r   r   r   Útest_boundaries2/   s    ÿþz)TestNdimageInterpolation.test_boundaries2r$   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&   r.   r   ÚyÚnpadÚpad_modeÚpaddedÚexpectedr<   r   r   r   Útest_boundary_spline_accuracyC   s    
ÿz6TestNdimageInterpolation.test_boundary_spline_accuracyr4   c                 C   s(   t  g |¡}tj||d�}t|dƒ d S )N©r&   r	   ©r(   Úonesr*   Úspline_filterr   ©r-   r4   r&   r.   Úoutr   r   r   Útest_spline01W   s    z&TestNdimageInterpolation.test_spline01c                 C   s,   t  dg|¡}tj||d�}t|dgƒ d S ©Nr	   rI   )r(   r)   r*   rL   r   rM   r   r   r   Útest_spline02^   s    z&TestNdimageInterpolation.test_spline02c                 C   s*   t  g |¡}tj|||d�}t|dƒ d S )N©Úoutputr	   rJ   rM   r   r   r   Útest_spline03e   s    z&TestNdimageInterpolation.test_spline03c                 C   s0   t  dg|¡}t ||¡}t|ddddgƒ d S )Nr   r	   rJ   rM   r   r   r   Útest_spline04l   s    z&TestNdimageInterpolation.test_spline04c              	   C   sT   t  ddg|¡}tj||d�}t|ddddgddddgddddgddddggƒ d S )Nr   rI   r	   rJ   rM   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>.mappingrI   ©r(   r)   r*   r+   Úshaper   ©r-   r&   r.   rX   rN   r   r   r   Útest_geometric_transform01}   s    ÿz3TestNdimageInterpolation.test_geometric_transform01c                 C   s>   t  dg¡}dd„ }tj|||j|d�}t|ddddgƒ d S )Nr   c                 S   s   | S rW   r   r   r   r   r   rX   Œ   s    zDTestNdimageInterpolation.test_geometric_transform02.<locals>.mappingrI   r	   ©r(   rK   r*   r+   rZ   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|ddddgƒ d S )Nr   c                 S   s   | d d fS ©Nr   r	   r   r   r   r   r   rX   —   s    zDTestNdimageInterpolation.test_geometric_transform03.<locals>.mappingrI   r   r	   r]   r[   r   r   r   Útest_geometric_transform03“   s    ÿz3TestNdimageInterpolation.test_geometric_transform03c                 C   sD   t  ddddg¡}dd„ }tj|||j|d�}t|ddddgƒ d S )	Nr   r	   r    r   c                 S   s   | d d fS r_   r   r   r   r   r   rX   ¢   s    zDTestNdimageInterpolation.test_geometric_transform04.<locals>.mappingrI   r   rY   r[   r   r   r   Útest_geometric_transform04ž   s    ÿz3TestNdimageInterpolation.test_geometric_transform04c                 C   s¦   t jddddgddddgddddgg|d�}t jddddgddddgddddgg|d�}|jjdkr||d| 8 }|d| 8 }dd„ }tj|||j|d�}t||ƒ d S )	Nr	   r3   r   Úcù              ð?c                 S   s   | d | d d fS r_   r   r   r   r   r   rX   ¶   s    zDTestNdimageInterpolation.test_geometric_transform05.<locals>.mappingrI   )r(   r)   r4   Úkindr*   r+   rZ   r   )r-   r&   r4   r.   rG   rX   rN   r   r   r   Útest_geometric_transform05©   s(    

þþ

þþÿz3TestNdimageInterpolation.test_geometric_transform05c                 C   sp   t  ddddgddddgddddgg¡}d	d
„ }tj|||j|d�}t|ddddgddddgddddggƒ d S )Nr   r	   r    r   r"   r2   é   é   c                 S   s   | d | d d fS r_   r   r   r   r   r   rX   Ã   s    zDTestNdimageInterpolation.test_geometric_transform06.<locals>.mappingrI   r   rY   r[   r   r   r   Útest_geometric_transform06½   s    

þÿ

þz3TestNdimageInterpolation.test_geometric_transform06c                 C   sp   t  ddddgddddgddddgg¡}d	d
„ }tj|||j|d�}t|ddddgddddgddddggƒ d S )Nr   r	   r    r   r"   r2   rf   rg   c                 S   s   | d d | d fS r_   r   r   r   r   r   rX   Ò   s    zDTestNdimageInterpolation.test_geometric_transform07.<locals>.mappingrI   r   rY   r[   r   r   r   Útest_geometric_transform07Ì   s    

þÿ

þz3TestNdimageInterpolation.test_geometric_transform07c                 C   sp   t  ddddgddddgddddgg¡}d	d
„ }tj|||j|d�}t|ddddgddddgddddggƒ d S )Nr   r	   r    r   r"   r2   rf   rg   c                 S   s   | d d | d d fS r_   r   r   r   r   r   rX   á   s    zDTestNdimageInterpolation.test_geometric_transform08.<locals>.mappingrI   r   rY   r[   r   r   r   Útest_geometric_transform08Û   s    

þÿ

þz3TestNdimageInterpolation.test_geometric_transform08c                 C   sŽ   t  ddddgddddgddddgg¡}d	d
„ }|dkrHtj||d�}n|}tj|||j|dd�}t|ddddgddddgddddggƒ d S )Nr   r	   r    r   r"   r2   rf   rg   c                 S   s   | d d | d d fS r_   r   r   r   r   r   rX   ð   s    zDTestNdimageInterpolation.test_geometric_transform10.<locals>.mappingrI   F©r&   Ú	prefilterr   )r(   r)   r*   rL   r+   rZ   r   )r-   r&   r.   rX   ÚfilteredrN   r   r   r   Útest_geometric_transform10ê   s     

þ ÿ

þz3TestNdimageInterpolation.test_geometric_transform10c                 C   sB   t  dgt j¡}dd„ }tj||dg|d�}t|ddddgƒ d S )Nr   c                 S   s   | d d fS ©Nr   r   r   r   r   r   r   rX     s    zDTestNdimageInterpolation.test_geometric_transform13.<locals>.mappingr   rI   r	   )r(   rK   Úfloat64r*   r+   r   r[   r   r   r   Útest_geometric_transform13ý   s    z3TestNdimageInterpolation.test_geometric_transform13c                 C   sF   ddddddddg}dd	„ }t j||dg|d
�}t|ddddgƒ d S )Nr	   rg   r   r2   r    r"   r   c                 S   s   d| d  fS )Nr   r   r   r   r   r   r   rX     s    zDTestNdimageInterpolation.test_geometric_transform14.<locals>.mappingrI   ©r*   r+   r   r[   r   r   r   Útest_geometric_transform14  s    z3TestNdimageInterpolation.test_geometric_transform14c                 C   sH   ddddg}dd„ }t j||dg|d�}t|d d d… ddddgƒ d S )	Nr	   r   r    r   c                 S   s   | d d fS ro   r   r   r   r   r   rX     s    zDTestNdimageInterpolation.test_geometric_transform15.<locals>.mappingrf   rI   rr   r[   r   r   r   Útest_geometric_transform15  s    z3TestNdimageInterpolation.test_geometric_transform15c                 C   s\   ddddgddddgd	d
ddgg}dd„ }t j||d|d�}t|ddgddgddggƒ d S )Nr	   r   r    r   rg   r2   r"   rf   ç      "@é
   é   é   c                 S   s   | d | d d fS ©Nr   r	   r   r   r   r   r   r   rX   !  s    zDTestNdimageInterpolation.test_geometric_transform16.<locals>.mapping©r    r   rI   é	   rr   r[   r   r   r   Útest_geometric_transform16  s    


þ
ÿz3TestNdimageInterpolation.test_geometric_transform16c                 C   sT   ddddgddddgd	d
ddgg}dd„ }t j||d|d�}t|ddddggƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   c                 S   s   | d d | d fS ©Nr   r   r	   r   r   r   r   r   rX   .  s    zDTestNdimageInterpolation.test_geometric_transform17.<locals>.mapping©r	   r   rI   rr   r[   r   r   r   Útest_geometric_transform17(  s    


þ
ÿz3TestNdimageInterpolation.test_geometric_transform17c                 C   sP   ddddgddddgd	d
ddgg}dd„ }t j||d|d�}t|ddggƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   c                 S   s   | d d | d d fS r}   r   r   r   r   r   rX   ;  s    zDTestNdimageInterpolation.test_geometric_transform18.<locals>.mapping©r	   r   rI   rr   r[   r   r   r   Útest_geometric_transform185  s    


þ
ÿz3TestNdimageInterpolation.test_geometric_transform18c                 C   sX   ddddgddddgd	d
ddgg}dd„ }t j||d|d�}t|dd d d…f |ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   c                 S   s   | d | d d fS ry   r   r   r   r   r   rX   H  s    zDTestNdimageInterpolation.test_geometric_transform19.<locals>.mapping©r    rf   rI   .rr   r[   r   r   r   Útest_geometric_transform19B  s    


þ
ÿz3TestNdimageInterpolation.test_geometric_transform19c                 C   sX   ddddgddddgd	d
ddgg}dd„ }t j||d|d�}t|d d d…df |ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   c                 S   s   | d d | d fS r}   r   r   r   r   r   rX   U  s    zDTestNdimageInterpolation.test_geometric_transform20.<locals>.mapping©r2   r   rI   .rr   r[   r   r   r   Útest_geometric_transform20O  s    


þ
ÿz3TestNdimageInterpolation.test_geometric_transform20c                 C   s^   ddddgddddgd	d
ddgg}dd„ }t j||d|d�}t|d d d…d d d…f |ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   c                 S   s   | d d | d d fS r}   r   r   r   r   r   rX   b  s    zDTestNdimageInterpolation.test_geometric_transform21.<locals>.mapping©r2   rf   rI   rr   r[   r   r   r   Útest_geometric_transform21\  s    


þ
ÿz3TestNdimageInterpolation.test_geometric_transform21c                 C   sn   t  ddddgddddgd	d
ddggt j¡}dd„ }dd„ }tj||d|d�}tj||d|d�}t||ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   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†   rI   ©r    r   )r(   r)   rp   r*   r+   r   )r-   r&   r.   rˆ   r‰   rN   r   r   r   Útest_geometric_transform22i  s"    

þþ ÿ ÿz3TestNdimageInterpolation.test_geometric_transform22c                 C   sZ   ddddgddddgd	d
ddgg}dd„ }t j||d|d�}| tj¡}t|ddgƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   c                 S   s   d| d d fS )Nr	   r   r   r   r   r   r   r   rX   �  s    zDTestNdimageInterpolation.test_geometric_transform23.<locals>.mapping©r   rI   )r*   r+   Úastyper(   Zint32r   r[   r   r   r   Útest_geometric_transform23{  s    


þz3TestNdimageInterpolation.test_geometric_transform23c                 C   sV   ddddgddddgd	d
ddgg}dd„ }t j||d|dddid�}t|ddgƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   c                 S   s   || d | fS )Nr   r   )r   ÚaÚbr   r   r   rX   Ž  s    zDTestNdimageInterpolation.test_geometric_transform24.<locals>.mappingrŒ   )r	   r�   )r&   Zextra_argumentsZextra_keywordsrr   r[   r   r   r   Útest_geometric_transform24ˆ  s    


þ    þz3TestNdimageInterpolation.test_geometric_transform24c                 C   s\   t jdddgdddggtd�}dd	„ }t  d
ddgdddgg¡}ttj||ddd�|ƒ d S )Nr	   r   r    r   rg   r2   r3   c                 S   s   | d d | d d fS )Nr   r   r	   r   r   r   r   r   rX   ›  s    zWTestNdimageInterpolation.test_geometric_transform_grid_constant_order1.<locals>.mappingç      Ð?ç      è?ç      ô?ç      @r!   r   ©r$   r&   )r(   r)   r>   r   r*   r+   )r-   r   rX   Úexpected_resultr   r   r   Ú-test_geometric_transform_grid_constant_order1–  s    ÿÿÿ
ÿýzFTestNdimageInterpolation.test_geometric_transform_grid_constant_order1c           
      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é�   r3   rx   c                 S   s   | d d | d d fS )Nr   çš™™™™™Ù?r	   gffffff@r   r   r   r   r   rX   ¬  s    zLTestNdimageInterpolation.test_geometric_transform_vs_padded.<locals>.mappingé   r9   r–   r:   ©r;   )r(   r=   r>   Úreshaper@   rA   rB   ÚtupleÚsliceÚndimr*   r+   r   )
r-   r&   r$   r   rX   rD   rE   Ú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 krd|n|}t	|dgƒ q@d S )Nr	   c                 S   s   | S rW   r   r   r   r   r   rX   Ä  s    zcTestNdimageInterpolation.test_geometric_transform_endianness_with_output_parameter.<locals>.mappingrR   )
r(   r)   r4   ÚnewbyteorderÚ
empty_liker�   r*   r+   rZ   r   )r-   r.   rX   rN   Ú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¡kƒ t|dgƒ d S )Nr	   c                 S   s   | S rW   r   r   r   r   r   rX   Ò  s    zUTestNdimageInterpolation.test_geometric_transform_with_string_output.<locals>.mappingÚfrR   )r(   r)   r*   r+   r   r4   r   )r-   r.   rX   rN   r   r   r   Ú+test_geometric_transform_with_string_outputÏ  s
    zDTestNdimageInterpolation.test_geometric_transform_with_string_outputc                 C   s¦   t  ddddgddddgddddgg¡}t  d	d	d	d	gd	dddgd	dddgg¡}|jjd
krt|d|  }|d|  }t  |j¡}|d8 }tj|||d�}t||ƒ d S )Nr   r	   r    r   r"   r2   rf   rg   r   rb   rc   rI   )	r(   r)   r4   rd   ÚindicesrZ   r*   r?   r   )r-   r&   r4   r.   rG   ÚidxrN   r   r   r   Útest_map_coordinates01Ù  s    

þ

þz/TestNdimageInterpolation.test_map_coordinates01c                 C   sn   t  ddddgddddgddddgg¡}t  |jt j¡}|d	8 }tj|d	|d
�}tj|||d
�}t||ƒ d S )Nr   r	   r    r   r"   r2   rf   rg   r   rI   )	r(   r)   r«   rZ   rp   r*   r   r?   r   )r-   r&   r.   r¬   Úout1Úout2r   r   r   Útest_map_coordinates02ì  s    

þz/TestNdimageInterpolation.test_map_coordinates02c              	   C   sp  t jddddgddddgddddggd	d
�}t  |j¡d }t ||¡}t|ddddgddddgddddggƒ t|t |d¡ƒ t  |d d d… j¡d }t |d d d… |¡}t|ddddgddddg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 )Nr   r	   r    r   r"   r2   rf   rg   ÚFrI   r   ©r	   r	   )r(   r)   r«   rZ   r*   r?   r   r   ©r-   r.   r¬   rN   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 krŒ|n|}t
||ƒ qld S )Nr	   r   r"   r2   r   rR   )r(   r)   r«   rZ   r4   r¤   r¥   r�   r*   r?   r   )r-   r.   rG   r¬   rN   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¡kƒ t|dggƒ d S ©Nr	   r©   rR   )	r(   r)   r«   rZ   r*   r?   r   r4   r   r³   r   r   r   Ú'test_map_coordinates_with_string_output  s
    z@TestNdimageInterpolation.test_map_coordinates_with_string_outputÚwin32rf   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 n. tk
rŽ } zt d	¡|‚W 5 d }~X Y nX d S )
Ni0u  r   r3   r   r    r   r	   rI   zNot enough memory available)	r(   ÚemptyZfloat32r�   r*   r?   Ú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 rP   ©r(   r)   r*   Úaffine_transformr   ©r-   r&   r.   rN   r   r   r   Útest_affine_transform012  s    z0TestNdimageInterpolation.test_affine_transform01c                 C   s6   t  dg¡}tj|dgg|d�}t|ddddgƒ d S )Nr   r	   rI   ©r(   rK   r*   rÂ   r   rÃ   r   r   r   Útest_affine_transform028  s    z0TestNdimageInterpolation.test_affine_transform02c                 C   s8   t  dg¡}tj|dggd|d�}t|ddddgƒ d S )Nr   r	   r   rI   r   rÅ   rÃ   r   r   r   Útest_affine_transform03>  s    z0TestNdimageInterpolation.test_affine_transform03c                 C   s>   t  ddddg¡}tj|dggd|d�}t|ddddgƒ d S )Nr   r	   r    r   r   rI   r   rÁ   rÃ   r   r   r   Útest_affine_transform04D  s    z0TestNdimageInterpolation.test_affine_transform04c                 C   s¬   t jddddgddddgddddgg|d�}t jddddgddddgddddgg|d�}|jjdkr||d| 8 }|d| 8 }tj|ddgddggddg|d�}t||ƒ d S )Nr	   r3   r   rb   rc   r   rI   )r(   r)   r4   rd   r*   rÂ   r   ©r-   r&   r4   r.   rG   rN   r   r   r   Útest_affine_transform05J  s(    

þþ

þþ ÿz0TestNdimageInterpolation.test_affine_transform05c                 C   sv   t  ddddgddddgddddgg¡}tj|dd	gd	dggd	d
g|d�}t|d	dddgd	dddgd	dddggƒ d S ©Nr   r	   r    r   r"   r2   rf   rg   r   r   rI   rÁ   rÃ   r   r   r   Útest_affine_transform06Z  s    

þ ÿ

þz0TestNdimageInterpolation.test_affine_transform06c                 C   sv   t  ddddgddddgddddgg¡}tj|dd	gd	dggd
d	g|d�}t|d	d	d	d	gddddgddddggƒ d S rË   rÁ   rÃ   r   r   r   Útest_affine_transform07e  s    

þ ÿ

þz0TestNdimageInterpolation.test_affine_transform07c                 C   sv   t  ddddgddddgddddgg¡}tj|dd	gd	dggd
d
g|d�}t|d	d	d	d	gd	dddgd	dddggƒ d S rË   rÁ   rÃ   r   r   r   Útest_affine_transform08p  s    

þ ÿ

þz0TestNdimageInterpolation.test_affine_transform08c                 C   s”   t  ddddgddddgddddgg¡}|dkr@tj||d	�}n|}tj|dd
gd
dggddg|dd�}t|d
d
d
d
gd
dddgd
dddggƒ d S )Nr   r	   r    r   r"   r2   rf   rg   rI   r   r   Frk   )r(   r)   r*   rL   rÂ   r   ©r-   r&   r.   rm   rN   r   r   r   Útest_affine_transform09{  s     

þ þ

þz0TestNdimageInterpolation.test_affine_transform09c                 C   s<   t  dgt j¡}tj|dggd|d�}t|ddddgƒ d S )Nr   r   r0   )r%   r&   r	   r   )r(   rK   rp   r*   rÂ   r   rÃ   r   r   r   Útest_affine_transform10‹  s
    ÿz0TestNdimageInterpolation.test_affine_transform10c                 C   sB   ddddddddg}t j|dggdd	|d
�}t|ddddgƒ d S )Nr	   rg   r   r2   r    r"   r   r   r0   rI   ©r*   rÂ   r   rÃ   r   r   r   Útest_affine_transform11’  s    z0TestNdimageInterpolation.test_affine_transform11c                 C   sD   ddddg}t j|dggdd|d�}t|d d d… ddddgƒ d S )	Nr	   r   r    r   r   r   ©rf   rI   rÒ   rÃ   r   r   r   Útest_affine_transform12˜  s    z0TestNdimageInterpolation.test_affine_transform12c                 C   sb   ddddgddddgd	d
ddg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 )Nr	   r   r    r   rg   r2   r"   rf   ru   rv   rw   rx   r   rz   rI   r{   rÒ   rÃ   r   r   r   Útest_affine_transform13ž  s    


þÿz0TestNdimageInterpolation.test_affine_transform13c                 C   sZ   ddddgddddgd	d
ddgg}t j|ddgddggdd|d�}t|ddddggƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   r   r~   rI   rÒ   rÃ   r   r   r   Útest_affine_transform14§  s    


þÿz0TestNdimageInterpolation.test_affine_transform14c                 C   sV   ddddgddddgd	d
ddgg}t j|ddgddggdd|d�}t|ddggƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   r   r€   rI   rÒ   rÃ   r   r   r   Útest_affine_transform15°  s    


þÿz0TestNdimageInterpolation.test_affine_transform15c                 C   s^   ddddgddddgd	d
ddgg}t j|ddgddggdd|d�}t|dd d d…f |ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   ç        r   r   r‚   rI   .rÒ   rÃ   r   r   r   Útest_affine_transform16¹  s    


þ ÿz0TestNdimageInterpolation.test_affine_transform16c                 C   s^   ddddgddddgd	d
ddgg}t j|ddgddggdd|d�}t|d d d…df |ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   r   r   r„   rI   .rÒ   rÃ   r   r   r   Útest_affine_transform17Â  s    


þ ÿz0TestNdimageInterpolation.test_affine_transform17c                 C   sd   ddddgddddgd	d
ddgg}t j|ddgddggdd|d�}t|d d d…d d d…f |ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   r   r   r†   rI   rÒ   rÃ   r   r   r   Útest_affine_transform18Ë  s    


þ ÿz0TestNdimageInterpolation.test_affine_transform18c                 C   sz   t  ddddgddddgd	d
ddg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 )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   r   r   r†   rI   ç       @rŠ   )r(   r)   rp   r*   rÂ   r   rÃ   r   r   r   Útest_affine_transform19Ô  s    

þþ ÿ ÿz0TestNdimageInterpolation.test_affine_transform19c                 C   sP   ddddgddddgd	d
ddgg}t j|dgdggdd|d�}t|ddgƒ d S ©Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   r   rŒ   rI   rÒ   rÃ   r   r   r   Útest_affine_transform20ß  s    


þÿz0TestNdimageInterpolation.test_affine_transform20c                 C   sP   ddddgddddgd	d
ddgg}t j|dgdggdd|d�}t|dd	gƒ d S rß   rÒ   rÃ   r   r   r   Útest_affine_transform21è  s    


þÿz0TestNdimageInterpolation.test_affine_transform21c                 C   s@   t  ddddg¡}tj|dggdgd|d�}t|dddgƒ d S )	Nr   r	   r    r   r   )r    rI   r   rÁ   rÃ   r   r   r   Útest_affine_transform22ñ  s
    ÿz0TestNdimageInterpolation.test_affine_transform22c                 C   sL   t  ddddg¡}tj|dggdgd|d�}t|d d d… d	dddgƒ d S )
Nr   r	   r    r   r   r   rÔ   rI   r   rÁ   rÃ   r   r   r   Útest_affine_transform23ù  s
    ÿz0TestNdimageInterpolation.test_affine_transform23c              	   C   sh   t  ddddg¡}tƒ �&}| td¡ tj|dgd|d�}W 5 Q R X tj|dggd|d�}t||ƒ d S )Nr   r	   r    r   ú@The behavior of affine_transform with a 1-D array .* has changedr   rI   ©r(   r)   r   ÚfilterÚUserWarningr*   rÂ   r   ©r-   r&   r.   Úsupr®   r¯   r   r   r   Útest_affine_transform24  s    ÿz0TestNdimageInterpolation.test_affine_transform24c              	   C   sh   t  ddddg¡}tƒ �&}| td¡ tj|dgd|d�}W 5 Q R X tj|dggd|d�}t||ƒ d S )	Nr   r	   r    r   rä   r   r   rI   rå   rè   r   r   r   Útest_affine_transform25  s    ÿz0TestNdimageInterpolation.test_affine_transform25c              	   C   sö   t  ddddgddddgddddgg¡}|dkr@tj||d	�}n|}t  d¡}t  d
¡ }t  ||f¡}t  |dddggf¡}tj||| 	¡ |dd�}tj|||dd�}	tj|||dd�}
||	|
fD ],}t
|ddddgddddgddddggƒ qÄd S )Nr   r	   r    r   r"   r2   rf   rg   rI   ©r   r	   r   Frk   )r(   r)   r*   rL   ÚeyerK   ÚhstackÚvstackrÂ   Zravelr   )r-   r&   r.   rm   Ztform_originalZoffset_originalÚtform_h1Útform_h2r®   r¯   Zout3rN   r   r   r   Útest_affine_transform26  s6    

þ
 þ
ÿ
ÿ

þz0TestNdimageInterpolation.test_affine_transform26c                 C   sn   t  ddddgddddgddddgg¡}t  t  d¡t  d	¡ f¡}t  |dddggf¡}tttj	||ƒ d S )
Nr   r	   r    r   r"   r2   rf   rg   rì   )
r(   r)   rî   rí   rK   rï   Úassert_raisesÚ
ValueErrorr*   rÂ   )r-   r.   rð   rñ   r   r   r   Útest_affine_transform273  s    

þz0TestNdimageInterpolation.test_affine_transform27c              
   C   s˜   t  d¡}t  |¡t  |¡ |j ¡ ¡|j|j ¡ fD ]\}tƒ �&}| td¡ t	j
|ddg|d�}W 5 Q R X |d krx|n|}t|ddgddggƒ q6d S )N)r   r   rä   r	   rR   )r(   rK   r¥   r�   r4   r¤   r   ræ   rç   r*   rÂ   r   )r-   r.   rN   ré   r¦   r§   r   r   r   Ú9test_affine_transform_1d_endianness_with_output_parameter<  s    
 þÿ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 kr\|n|}t|dgƒ q8d S )Nr	   rR   )	r(   r)   r4   r¤   r¥   r�   r*   rÂ   r   )r-   r.   rN   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   sv   t jdt jd�}t  d¡}|j}tj|dgg|d� t|d d… |ƒ t 	t
¡� tj|dgg|dd� W 5 Q R X d S )Nrf   r3   )é   r	   rR   )rx   )rS   r%   )r(   r=   rp   rK   rZ   r*   rÂ   r   r¼   r   ÚRuntimeError)r-   r.   rN   Zoshaper   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¡kƒ t|dgƒ d S r¶   )r(   r)   r*   rÂ   r   r4   r   )r-   r.   rN   r   r   r   Ú(test_affine_transform_with_string_outputd  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_wrapj  s    
ÿ
þzBTestNdimageInterpolation.test_affine_transform_shift_via_grid_wrapc                 C   s€   t  dddgdddg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   r    r   rg   rþ   r   r–   r   )r(   r)   r   rí   rZ   r   r*   rÂ   )r-   r&   r   r  r   r   r   Ú#test_affine_transform_shift_reflecty  s    ÿ
þz<TestNdimageInterpolation.test_affine_transform_shift_reflectc                 C   s.   t  dg¡}tj|dg|d�}t|dgƒ d S )Nr	   rI   r   ©r(   r)   r*   r   r   rÃ   r   r   r   Útest_shift01†  s    z%TestNdimageInterpolation.test_shift01c                 C   s4   t  dg¡}tj|dg|d�}t|ddddgƒ d S )Nr   r	   rI   r   ©r(   rK   r*   r   r   rÃ   r   r   r   Útest_shift02Œ  s    z%TestNdimageInterpolation.test_shift02c                 C   s2   t  dg¡}tj|d|d�}t|ddddgƒ d S )Nr   r   rI   r	   r   r  rÃ   r   r   r   Útest_shift03’  s    z%TestNdimageInterpolation.test_shift03c                 C   s8   t  ddddg¡}tj|d|d�}t|ddddgƒ d S )Nr   r	   r    r   rI   r   r  rÃ   r   r   r   Útest_shift04˜  s    z%TestNdimageInterpolation.test_shift04c                 C   sž   t jddddgddddgddddgg|d�}t jddddgddddgddddgg|d�}|jjdkr||d| 8 }|d| 8 }tj|ddg|d�}t||ƒ d S )Nr	   r3   r   rb   rc   rI   ©r(   r)   r4   rd   r*   r   r   rÉ   r   r   r   Útest_shift05ž  s"    

þþ

þþz%TestNdimageInterpolation.test_shift05c                 C   s¶   t jddddgddddgddddgg|d�}t jddddgddddgddddgg|d�}|jjdkr||d| 8 }|d| 8 }d}||d d …df< tj|ddg|||d�}t||ƒ d S )Nr	   r3   r   rb   rc   g      @)r&   r$   r#   r  )r-   r&   r$   r4   r.   rG   r#   rN   r   r   r   Útest_shift_with_nonzero_cval­  s&    

þþ

þþz5TestNdimageInterpolation.test_shift_with_nonzero_cvalc                 C   sh   t  ddddgddddgddddgg¡}tj|d	dg|d
�}t|d	dddgd	dddgd	dddggƒ d S ©Nr   r	   r    r   r"   r2   rf   rg   r   rI   r  rÃ   r   r   r   Útest_shift06Á  s    

þ

þz%TestNdimageInterpolation.test_shift06c                 C   sh   t  ddddgddddgddddgg¡}tj|dd	g|d
�}t|d	d	d	d	gddddgddddggƒ d S r  r  rÃ   r   r   r   Útest_shift07Ë  s    

þ

þz%TestNdimageInterpolation.test_shift07c                 C   sh   t  ddddgddddgddddgg¡}tj|ddg|d	�}t|d
d
d
d
gd
dddgd
dddggƒ d S )Nr   r	   r    r   r"   r2   rf   rg   rI   r   r  rÃ   r   r   r   Útest_shift08Õ  s    

þ

þz%TestNdimageInterpolation.test_shift08c                 C   s†   t  ddddgddddgddddgg¡}|dkr@tj||d	�}n|}tj|ddg|d
d�}t|ddddgddddgddddggƒ d S )Nr   r	   r    r   r"   r2   rf   rg   rI   Frk   r   )r(   r)   r*   rL   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é   )rg   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   sT   t jdddgdddggtd�}t  dd	d
gd
ddgg¡}ttj|dddd�|ƒ d S )Nr	   r   r    r   rg   r2   r3   r’   r“   r”   r•   r!   )r   r   r   r–   )r(   r)   r>   r   r*   r   )r-   r   r—   r   r   r   Útest_shift_grid_constant_order1  s    ÿÿÿþz8TestNdimageInterpolation.test_shift_grid_constant_order1c                 C   sL   t  dddgdddgg¡}ttj||jd|d�|d d d	…d d d	…f ƒ d S )
Nr   r	   r   r    r   rg   r   r–   r   )r(   r)   r   r*   r   rZ   )r-   r&   r   r   r   r   Útest_shift_reflect  s    ÿþz+TestNdimageInterpolation.test_shift_reflectrl   FTc                 C   sj   t  d¡}td||d�}ttj||d d f|Žd |d ƒ ttj|| d d f|Žd |d ƒ d S )Nrø   r   )r$   r&   rl   r   r	   r   r   )r(   r=   Údictr   r*   r   )r-   r&   rl   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™   r3   rx   )rš   gffffffÀr8   r9   r–   r:   rœ   )r(   r=   r>   r�   r@   rA   rB   rž   rŸ   r    r*   r   r   )
r-   r&   r$   r   r   rD   rE   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   é   )rg   rg   rI   )rv   rv   r   r   r  rg   r›   )r(   r)   ÚlistÚranger�   r�   r>   r*   Úzoomr   rZ   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 )Nrx   rŠ   r   r   )r(   r=   r�   r*   r   r   )r-   r$  rN   r   r   r   Ú
test_zoom2G  s    z#TestNdimageInterpolation.test_zoom2c                 C   sb   t  ddgg¡}t |d¡}t |d¡}t|t  ddgddgg¡ƒ t|t  ddddgg¡ƒ d S )Nr	   r   rì   r€   )r(   r)   r*   r   r   )r-   r$  r®   r¯   r   r   r   Ú
test_zoom3L  s
    z#TestNdimageInterpolation.test_zoom3c              	   C   sœ   t jddddgddddgd	d
ddgg|d�}|jjdkrD|d| 8 }tƒ �*}| td¡ tj|ddgdd|d�}W 5 Q R X t	|d d d…d d d…f |ƒ d S )Nr	   r   r    r   rg   r2   r"   rf   r{   rv   rw   rx   r3   rb   rc   rä   r   r   r†   rI   )
r(   Zasarrayr4   rd   r   ræ   rç   r*   rÂ   r   )r-   r&   r4   r.   ré   rN   r   r   r   Útest_zoom_affine01T  s"    

þþÿ ÿz+TestNdimageInterpolation.test_zoom_affine01c                 C   s&   d}t jt ||f¡d| dd� d S )Nrf   ç      ð?r   r9   )r*   r   r(   r   )r-   Údimr   r   r   Útest_zoom_infinityd  s    z+TestNdimageInterpolation.test_zoom_infinityc                 C   s6   t  d¡}d}tj||dd�}t  d¡}t||ƒ d S )N)r	   rg   rg   )r)  rÝ   rÝ   r"   )r#   )r	   rv   rv   )r(   r   r*   r   r   )r-   r$  r   rN   Úrefr   r   r   Útest_zoom_zoomfactor_onei  s
    

z1TestNdimageInterpolation.test_zoom_zoomfactor_onec                 C   s*   t  d¡}d}t ||¡}t|jdƒ d S )N)r    rw   r  )gUUUUUUõ?gÑE]tÑõ?g�Âõ(\�ò?)r   r5   é   )r(   r   r*   r   r   rZ   )r-   r$  r   rN   r   r   r   Útest_zoom_output_shape_roundoffr  s    
z8TestNdimageInterpolation.test_zoom_output_shape_roundoffr   r²   )r    rg   )rf   r   )rf   rf   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    r3   r7   )r(   r)   r>   r   r*   r   ÚkronrK   )r-   r   r$   r   r   r   r   Útest_zoom_by_int_order0x  s    	
ÿÿþz0TestNdimageInterpolation.test_zoom_by_int_order0rZ   rþ   )r   r   c                 C   sF   t jt  |¡td� |¡}ttj||d|dd�t  |t  	|¡¡ƒ d S )Nr3   r   T)r&   r$   Ú	grid_mode)
r(   r=   Úprodr>   r�   r   r*   r   r0  rK   )r-   rZ   r   r$   r   r   r   r   Útest_zoom_grid_by_int_order0‰  s
    þz5TestNdimageInterpolation.test_zoom_grid_by_int_order0c              	   C   sF   t jdtd� d¡}tjtdd�� tj|d|dd�f W 5 Q R X d S )	Nr{   r3   )r    r    zIt is recommended to use mode)Úmatchr   T)r$   r2  )	r(   r=   r>   r�   r¼   Zwarnsrç   r*   r   )r-   r$   r   r   r   r   Útest_zoom_grid_mode_warnings—  s
    ÿz5TestNdimageInterpolation.test_zoom_grid_mode_warningsc                 C   sL   t jddddgddddgddddggt jd�}tj|d|d�}t||ƒ d S )Nr   r	   r3   rI   ©r(   r)   rp   r*   Úrotater   rÃ   r   r   r   Útest_rotate01Ÿ  s    

þþz&TestNdimageInterpolation.test_rotate01c                 C   s|   t jddddgddddgddddggt jd�}t jdddgdddgdddgdddggt jd�}tj|d|d�}t||ƒ d S )Nr   r	   r3   éZ   rI   r7  ©r-   r&   r.   rG   rN   r   r   r   Útest_rotate02§  s    

þþýýz&TestNdimageInterpolation.test_rotate02c                 C   sª   t jdddddgdddddgdddddgg|d�}t jdddgdddgdddgdddgdddgg|d�}|jjdkrŒ|d| 8 }|d| 8 }tj|d|d�}t||ƒ d S )Nr   r	   r3   rb   rc   r:  rI   )r(   r)   r4   rd   r*   r8  r   rÉ   r   r   r   Útest_rotate03³  s&    þþüüz&TestNdimageInterpolation.test_rotate03c                 C   sˆ   t jdddddgdddddgdddddggt jd�}t jdddddgdddddgdddddggt jd�}tj|dd|d�}t||ƒ d S )Nr   r	   r3   r:  F)r�   r&   r7  r;  r   r   r   Útest_rotate04Ä  s    þþþþz&TestNdimageInterpolation.test_rotate04c                 C   sÆ   t  d¡}tdƒD ]F}t jdddgdddgdddgdddggt jd�|d d …d d …|f< qt jddddgddddgddddg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    r   r	   r3   r:  rI   ©r(   rº   r  r)   rp   r*   r8  r   ©r-   r&   r.   ÚirG   rN   r   r   r   Útest_rotate05Ï  s$    
ýý

þþz&TestNdimageInterpolation.test_rotate05c                 C   sÆ   t  d¡}tdƒD ]D}t jddddgddddgddddggt jd�|d d …d d …|f< qt jdddgdddgdddgdddg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    r   r	   r3   r:  rI   r?  r@  r   r   r   Útest_rotate06Þ  s$    


þþýýz&TestNdimageInterpolation.test_rotate06c                 C   s°   t jdddddgdddddgdddddgggd t jd�}| ¡ }t jdddgdddgdddgdddgdddgggd t jd�}| dddg¡}tj|dd|d�}t||ƒ d S )Nr   r	   r   r3   r:  rü   )Úaxesr&   ©r(   r)   rp   Z	transposer*   r8  r   r;  r   r   r   Útest_rotate07í  s,    þþþüüüz&TestNdimageInterpolation.test_rotate07c                 C   s¦   t jdddddgdddddgdddddgggd t jd�}| ¡ }t jdddddgdddddgdddddgggd t jd�}| ¡ }tj|ddd|d�}t||ƒ d S )	Nr   r	   r   r3   r:  rü   F)rD  r�   r&   rE  r;  r   r   r   Útest_rotate08ü  s(    þþþþþþz&TestNdimageInterpolation.test_rotate08c              	   C   sf   t jdddddgdddddgdddddggd t jd�}ttƒ� tj|dd|jfd� W 5 Q R X d S )Nr   r	   r   r3   r:  )rD  )r(   r)   rp   ró   rô   r*   r8  r    )r-   r.   r   r   r   Útest_rotate09	  s    þþþ
z&TestNdimageInterpolation.test_rotate09c                 C   s¼   t jdt jd� d¡}t  dddgdddgdddgdd	d
gdddggdddgdddgdddgdddgdddggdddgdddgdddgdddgdddggg¡}tj|d d!d"�}t||ƒ d S )#Né-   r3   )r    rg   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@rx   F)Zangler�   )r(   r=   rp   r�   r)   r*   r8  r   )r-   r.   rG   rN   r   r   r   Útest_rotate10  s,    üüüöz&TestNdimageInterpolation.test_rotate10c                 C   s4   t  t  d¡d¡}t t |d¡d¡}t||ƒ d S )Nrg   )rg   r	   é´   iLÿÿÿ)r(   Ztiler=   r*   r8  r   )r-   r�   r�   r   r   r   Útest_rotate_exact_180'  s    z.TestNdimageInterpolation.test_rotate_exact_180N)}Ú__name__Ú
__module__Ú__qualname__r¼   ÚmarkZparametrizer/   r1   r  rH   r
   rO   rQ   rT   rU   rV   r\   r^   r`   ra   r(   rp   Z
complex128re   rh   ri   rj   rn   rq   rs   rt   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  r%  r&  r'  r(  r+  r-  r/  r1  r4  r6  r9  r<  r=  r>  rB  rC  rF  rG  rH  rJ  rL  r   r   r   r   r      s  úþ


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


 þ







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





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

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





r   c                  C   s*   t  d¡ d¡} tj| dt  d¡d� dS )zTicket #643rx   rŠ   r   r†   rR   N)r(   r=   r�   r*   r   r   r   r   r   r   Útest_zoom_output_shape-  s    rT  )rQ  r(   Znumpy.testingr   r   r   r   r   r   r¼   r   ró   Zscipy.ndimager*   Ú r
   r"  r@   r   rT  r   r   r   r   Ú<module>   s4    ú
          