
    tKgB                         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      Zd Zy)    N)assert_assert_equalassert_array_equalassert_array_almost_equalassert_allclosesuppress_warnings)raises   )types-q=reflect	symmetricwrapedgeconstant)mirrorr   grid-mirror	grid-wrapnearestgrid-constantc                   $   e Zd Zej                  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        Zej                  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        Zej                  j                  dg d      ej                  j                  d ed            d               Z	ej                  j                  d edd            ej                  j                  de
      d               Zej                  j                  d edd            ej                  j                  de
      d               Zej                  j                  d edd            ej                  j                  de
      d                Zej                  j                  d edd            ej                  j                  de
      d!               Zej                  j                  d edd            ej                  j                  de
      d"               Zej                  j                  d ed#d            d$        Zej                  j                  d ed#d            d%        Zej                  j                  d ed#d            d&        Zej                  j                  d ed#d            d'        Zej                  j                  d ed#d            ej                  j                  dej*                  ej,                  g      d(               Zej                  j                  d ed#d            d)        Zej                  j                  d ed#d            d*        Zej                  j                  d ed#d            d+        Zej                  j                  d ed#d            d,        Zej                  j                  d ed#d            d-        Zej                  j                  d ed#d            d.        Zej                  j                  d ed#d            d/        Zej                  j                  d ed#d            d0        Zej                  j                  d ed#d            d1        Z ej                  j                  d ed#d            d2        Z!ej                  j                  d ed#d            d3        Z"ej                  j                  d ed#d            d4        Z#ej                  j                  d ed#d            d5        Z$ej                  j                  d ed#d            d6        Z%ej                  j                  d ed#d            d7        Z&ej                  j                  d ed#d            d8        Z'd9 Z(ej                  j                  dg d:      ej                  j                  d ed            d;               Z)d< Z*d= Z+ej                  j                  d ed#d            ej                  j                  dej*                  ej,                  g      d>               Z,ej                  j                  d ed#d            d?        Z-d@ Z.dA Z/dB Z0ej                  jc                  dCe2jf                  v xs  ejh                  d#      jj                  dDk  dEF      dG        Z6ej                  j                  d ed#d            dH        Z7ej                  j                  d ed#d            dI        Z8ej                  j                  d ed#d            dJ        Z9ej                  j                  d ed#d            dK        Z:ej                  j                  d ed#d            ej                  j                  dej*                  ej,                  g      dL               Z;ej                  j                  d ed#d            dM        Z<ej                  j                  d ed#d            dN        Z=ej                  j                  d ed#d            dO        Z>ej                  j                  d ed#d            dP        Z?ej                  j                  d ed#d            dQ        Z@ej                  j                  d ed#d            dR        ZAej                  j                  d ed#d            dS        ZBej                  j                  d ed#d            dT        ZCej                  j                  d ed#d            dU        ZDej                  j                  d ed#d            dV        ZEej                  j                  d ed#d            dW        ZFej                  j                  d ed#d            dX        ZGej                  j                  d ed#d            dY        ZHej                  j                  d ed#d            dZ        ZIej                  j                  d ed#d            d[        ZJej                  j                  d ed#d            d\        ZKej                  j                  d ed#d            d]        ZLej                  j                  d ed#d            d^        ZMej                  j                  d ed#d            d_        ZNej                  j                  d ed#d            d`        ZOej                  j                  d ed#d            da        ZPdb ZQdc ZRdd ZSde ZTdf ZUej                  j                  dgg dh      ej                  j                  d ed#d            di               ZVej                  j                  d ed#d            dj        ZWej                  j                  d ed#d            dk        ZXej                  j                  d ed#d            dl        ZYej                  j                  d ed#d            dm        ZZej                  j                  d ed#d            dn        Z[ej                  j                  d ed#d            ej                  j                  dej*                  ej,                  g      do               Z\ej                  j                  d ed#d            ej                  j                  dddg      ej                  j                  dej*                  ej,                  g      dp                      Z]ej                  j                  d ed#d            dq        Z^ej                  j                  d ed#d            dr        Z_ej                  j                  d ed#d            ds        Z`ej                  j                  d ed#d            dt        Zaej                  j                  dgg dh      ej                  j                  d ed#d            du               Zbej                  j                  dgg dh      ej                  j                  d ed#d            dv               Zcdw Zdej                  j                  d ed#d            dx        Zeej                  j                  d ed#d            ej                  j                  dydzd{g      d|               Zfej                  j                  dg d:      ej                  j                  d ed            d}               Zgej                  j                  d ed#d            d~        Zhd Zid Zjej                  j                  d ed#d            ej                  j                  dej*                  ej,                  g      d               Zkd Zld Zmd Znej                  j                  dg d      ej                  j                  dg d      d               Zoej                  j                  dddg      ej                  j                  dg d      ej                  j                  dg d      d                      Zpej                  j                  dddg      d        Zqej                  j                  d ed#d            d        Zrej                  j                  d ed#d            d        Zsej                  j                  d ed#d            ej                  j                  dej*                  ej,                  g      d               Ztej                  j                  d ed#d            d        Zuej                  j                  d ed#d            d        Zvej                  j                  d ed#d            d        Zwej                  j                  d ed#d            d        Zxej                  j                  d ed#d            d        Zyd Zzd Z{d Z|y)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                     d }t        j                  g d      }t        |t        j                  ||d|dd             y )Nc                     | d   dz   fS )Nr         ? xs    j/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/ndimage/tests/test_interpolation.pyshiftz7TestNdimageInterpolation.test_boundaries.<locals>.shift&       aD3J=     )r
               @r   )   r
   )cvalmodeoutput_shapeordernparrayr   ndimagegeometric_transformselfr-   expected_valuer%   datas        r$   test_boundariesz(TestNdimageInterpolation.test_boundaries   s?    	! xx&''e"459D	Er'   )r
   r
   r(   r)   )r)   r
   r(   r)   )r   r
   r(   r)   )r(   r
   r(   r)   )r   r
   r(   r)   c           
          d }t        j                  g d      }t        |t        j                  ||d|d             y )Nc                     | d   dz
  fS )Nr   g?r!   r"   s    r$   r%   z8TestNdimageInterpolation.test_boundaries2.<locals>.shift:   r&   r'   r
   r(   r)   r   r   r   )r,   r-   r.   r0   r5   s        r$   test_boundaries2z)TestNdimageInterpolation.test_boundaries2/   s;    	! xx%''e"459;	<r'   r-   )r   r   r   r   r   r   r/      c                 h   t        j                  ddt              }t        j                  ddd      }t	        j
                  ||g||      }d	}t        j                  |      }t        j                  |||
      }t	        j
                  |||z   g||      }	|dk(  rdnd}
t        ||	d|
       y)z$Tests based on examples from gh-2640ir+   dtypei   i  )numr/   r-       r-   r   gh㈵>r   Hz>)rtolatolN)
r1   arangefloatlinspacer3   map_coordinatesndimage_to_numpy_modegetpadr   )r6   r-   r/   r8   r#   ynpadpad_modepaddedexpectedrJ   s              r$   test_boundary_spline_accuracyz6TestNdimageInterpolation.test_boundary_spline_accuracyC   s     yyQe,KKBD)##D1#UF (,,T2d2**6D1H:U046 .tE8$T:r'   r(   rB   c                 v    t        j                  g |      }t        j                  ||      }t	        |d       y )Nr/   r
   r1   onesr3   spline_filterr   r6   rB   r/   r8   outs        r$   test_spline01z&TestNdimageInterpolation.test_spline01W   s0     wwr5!##D6!#q)r'   c                 z    t        j                  dg|      }t        j                  ||      }t	        |dg       y Nr
   rY   )r1   r2   r3   r\   r   r]   s        r$   test_spline02z&TestNdimageInterpolation.test_spline02^   s4     xxU###D6!#s+r'   c                 x    t        j                  g |      }t        j                  |||      }t	        |d       y )Noutputr
   rZ   r]   s        r$   test_spline03z&TestNdimageInterpolation.test_spline03e   s2     wwr5!##D%>!#q)r'   c                 z    t        j                  dg|      }t        j                  ||      }t	        |g d       y )Nr   r
   r
   r
   r
   rZ   r]   s        r$   test_spline04z&TestNdimageInterpolation.test_spline04l   s2     wwsE"##D%0!#|4r'   c                     t        j                  ddg|      }t        j                  ||      }t	        |g dg dg dg dg       y )Nr   rY   rh   rZ   r]   s        r$   test_spline05z&TestNdimageInterpolation.test_spline05s   sD     ww1vu%##D6!#(4(4(4(6 	7r'   r   c                     t        j                  dg      }d }t        j                  |||j                  |      }t        |dg       y )Nr
   c                     | S Nr!   r"   s    r$   mappingzDTestNdimageInterpolation.test_geometric_transform01.<locals>.mapping       Hr'   rY   r1   r2   r3   r4   shaper   r6   r/   r8   ro   r^   s        r$   test_geometric_transform01z3TestNdimageInterpolation.test_geometric_transform01}   sA    xx}	 ))$057!#s+r'   c                     t        j                  dg      }d }t        j                  |||j                  |      }t        |g d       y )Nr   c                     | S rn   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform02.<locals>.mapping   rp   r'   rY   rh   r1   r[   r3   r4   rr   r   rs   s        r$   test_geometric_transform02z3TestNdimageInterpolation.test_geometric_transform02   s?    wws|	 ))$057!#|4r'   c                     t        j                  dg      }d }t        j                  |||j                  |      }t        |g d       y )Nr   c                     | d   dz
  fS Nr   r
   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform03.<locals>.mapping       aD1H;r'   rY   r   r
   r
   r
   rw   rs   s        r$   test_geometric_transform03z3TestNdimageInterpolation.test_geometric_transform03   s?    wws|	 ))$057!#|4r'   c                     t        j                  g d      }d }t        j                  |||j                  |      }t        |g d       y )Nr   r
   r)   r(   c                     | d   dz
  fS r{   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform04.<locals>.mapping   r|   r'   rY   r   r   r
   r)   rq   rs   s        r$   test_geometric_transform04z3TestNdimageInterpolation.test_geometric_transform04   s>    xx%	 ))$057!#|4r'   c                 :   t        j                  g dg dg dg|      }t        j                  g dg dg dg|      }|j                  j                  dk(  r|d|z  z  }|d|z  z  }d }t	        j
                  |||j                  |      }t        ||       y )Nrh   rA   r}   c              ?c                     | d   | d   dz
  fS r{   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform05.<locals>.mapping       aD!A$(##r'   rY   )r1   r2   rB   kindr3   r4   rr   r   )r6   r/   rB   r8   rV   ro   r^   s          r$   test_geometric_transform05z3TestNdimageInterpolation.test_geometric_transform05   s     xx%%'.35 88\))+279 ::??c!BIDX%H	$ ))$057!#x0r'   c                     t        j                  g dg dg dg      }d }t        j                  |||j                  |      }t        |g dg dg dg       y )	Nr   r+   r?         r)   r   r)   r?   c                     | d   | d   dz
  fS r{   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform06.<locals>.mapping   r   r'   rY   r   r   r+   r?   r   r   r)   r   r)   rq   rs   s        r$   test_geometric_transform06z3TestNdimageInterpolation.test_geometric_transform06   X    xx%%' (	$ ))$057!#(4(4(6 	7r'   c                     t        j                  g dg dg dg      }d }t        j                  |||j                  |      }t        |g dg dg dg       y )Nr   r   r   c                     | d   dz
  | d   fS r{   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform07.<locals>.mapping       aD1Had##r'   rY   r   r   r   r   rq   rs   s        r$   test_geometric_transform07z3TestNdimageInterpolation.test_geometric_transform07   r   r'   c                     t        j                  g dg dg dg      }d }t        j                  |||j                  |      }t        |g dg dg dg       y )	Nr   r   r   c                 "    | d   dz
  | d   dz
  fS r{   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform08.<locals>.mapping       aD1HadQh''r'   rY   r   r   r   rq   rs   s        r$   test_geometric_transform08z3TestNdimageInterpolation.test_geometric_transform08   sX    xx%%' (	( ))$057!#(4(4(6 	7r'   c                     t        j                  g dg dg dg      }d }|dkD  rt        j                  ||      }n|}t        j                  |||j
                  |d      }t        |g d	g d
g dg       y )Nr   r   r   c                 "    | d   dz
  | d   dz
  fS r{   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform10.<locals>.mapping   r   r'   r
   rY   Fr/   	prefilterr   r   r   )r1   r2   r3   r\   r4   rr   r   )r6   r/   r8   ro   filteredr^   s         r$   test_geometric_transform10z3TestNdimageInterpolation.test_geometric_transform10   sy    xx%%' (	( AI,,T?HH))(GTZZ05H!#(4(4(6 	7r'   c                     t        j                  dgt         j                        }d }t        j                  ||dg|      }t        |g d       y )Nr(   c                     | d   dz  fS Nr   r(   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform13.<locals>.mapping  s    aDAI<r'   r   rY   rh   )r1   r[   float64r3   r4   r   rs   s        r$   test_geometric_transform13z3TestNdimageInterpolation.test_geometric_transform13   sA    wwsBJJ'	  ))$!EJ!#|4r'   c                 b    g d}d }t        j                  ||dg|      }t        |g d       y )Nr
   r   r(   r?   r)   r+   r   r   c                     d| d   z  fS )Nr(   r   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform14.<locals>.mapping  s    !H;r'   r   rY   r<   r3   r4   r   rs   s        r$   test_geometric_transform14z3TestNdimageInterpolation.test_geometric_transform14  s0    '	 ))$!EJ!#|4r'   c                 n    g d}d }t        j                  ||dg|      }t        |d d d   g d       y )Nr<   c                     | d   dz  fS r   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform15.<locals>.mapping  r|   r'   r   rY   r(   r   rs   s        r$   test_geometric_transform15z3TestNdimageInterpolation.test_geometric_transform15  s8    	 ))$!EJ!#cc(L9r'   c                 |    g dg dg dg}d }t        j                  ||d|      }t        |ddgd	d
gddgg       y )Nr<   r   r?   r+   r   g      "@
         c                     | d   | d   dz  fS Nr   r
   r(   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform16.<locals>.mapping!  r   r'   r)   r(   rY   r
   r)   r   r+   	   r   r   rs   s        r$   test_geometric_transform16z3TestNdimageInterpolation.test_geometric_transform16  sO    !#	$ ))$057!#AAB'@Ar'   c                 p    g dg dg dg}d }t        j                  ||d|      }t        |g dg       y )Nr<   r   r   r   r   r   c                     | d   dz  | d   fS Nr   r(   r
   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform17.<locals>.mapping.  r   r'   r
   r   rY   r   rs   s        r$   test_geometric_transform17z3TestNdimageInterpolation.test_geometric_transform17(  s>    !	$ ))$057!#~6r'   c                 p    g dg dg dg}d }t        j                  ||d|      }t        |ddgg       y )	Nr<   r   r   c                 "    | d   dz  | d   dz  fS r   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform18.<locals>.mapping;  r   r'   r
   r(   rY   r
   r)   r   rs   s        r$   test_geometric_transform18z3TestNdimageInterpolation.test_geometric_transform185  sB    !	( ))$057!#Ax0r'   c                 z    g dg dg dg}d }t        j                  ||d|      }t        |dd d df   |       y )	Nr<   r   r   c                     | d   | d   dz  fS r   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform19.<locals>.mappingH  r   r'   r)   r   rY   .r(   r   rs   s        r$   test_geometric_transform19z3TestNdimageInterpolation.test_geometric_transform19B  sH    !	$ ))$057!#c3Q3h-6r'   c                 z    g dg dg dg}d }t        j                  ||d|      }t        |d d ddf   |       y )	Nr<   r   r   c                     | d   dz  | d   fS r   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform20.<locals>.mappingU  r   r'   r?   r   rY   r(   .r   rs   s        r$   test_geometric_transform20z3TestNdimageInterpolation.test_geometric_transform20O  sH    !	$ ))$057!#cc3h-6r'   c                     g dg dg dg}d }t        j                  ||d|      }t        |d d dd d df   |       y )Nr<   r   r   c                 "    | d   dz  | d   dz  fS r   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform21.<locals>.mappingb  r   r'   r?   r   rY   r(   r   rs   s        r$   test_geometric_transform21z3TestNdimageInterpolation.test_geometric_transform21\  sL    !	( ))$057!#cc3Q3h-6r'   c                     t        j                  g dg dg dgt         j                        }d }d }t        j                  ||d|      }t        j                  ||d|      }t        ||       y )	Nr<   r   r   c                 "    | d   dz  | d   dz  fS r   r!   r"   s    r$   mapping1zETestNdimageInterpolation.test_geometric_transform22.<locals>.mapping1o  r   r'   c                 "    | d   dz  | d   dz  fS r   r!   r"   s    r$   mapping2zETestNdimageInterpolation.test_geometric_transform22.<locals>.mapping2r  r   r'   r   rY   r)   r   )r1   r2   r   r3   r4   r   )r6   r/   r8   r   r   r^   s         r$   test_geometric_transform22z3TestNdimageInterpolation.test_geometric_transform22i  sl    xx%(*+-::7	(	( ))$*0?))#x*0?!#t,r'   c                     g dg dg dg}d }t        j                  ||d|      }|j                  t        j                        }t        |ddg       y )	Nr<   r   r   c                     d| d   dz  fS )Nr
   r   r(   r!   r"   s    r$   ro   zDTestNdimageInterpolation.test_geometric_transform23.<locals>.mapping      qtax= r'   r(   rY   r   r+   )r3   r4   astyper1   int32r   rs   s        r$   test_geometric_transform23z3TestNdimageInterpolation.test_geometric_transform23{  sO    !	! ))$UKjj"!#1v.r'   c           	      v    g dg dg dg}d }t        j                  ||d|dddi	      }t        |d
dg       y )Nr<   r   r   c                     || d   |z  fS )Nr   r!   )r#   abs      r$   ro   zDTestNdimageInterpolation.test_geometric_transform24.<locals>.mapping  r   r'   r   )r
   r   r(   )r/   extra_argumentsextra_keywordsr   r+   r   rs   s        r$   test_geometric_transform24z3TestNdimageInterpolation.test_geometric_transform24  sK    !	! ))'4ud8% 	"#1v.r'   c                     t        j                  g dg dgt              }d }t        j                  g dg dg      }t        t	        j
                  ||dd	      |       y )
Nr
   r(   r)   r   r   r?   rA   c                 "    | d   dz
  | d   dz
  fS )Nr   r    r
   r!   r"   s    r$   ro   zWTestNdimageInterpolation.test_geometric_transform_grid_constant_order1.<locals>.mapping      aD3J!A$*--r'   g      ?g      ?      ?r   g      @r*   r   r
   r-   r/   )r1   r2   rL   r   r3   r4   )r6   r#   ro   expected_results       r$   -test_geometric_transform_grid_constant_order1zFTestNdimageInterpolation.test_geometric_transform_grid_constant_order1  s_    HHi!(-/	. (($6$6$8 9!''7./1	
r'   )r   r   r   r   r   c                    t        j                  dt              j                  dd      }d }d}t        j                  |      }t        j                  |||      }t        t        ||       g|j                  z        }t        j                  ||||      |   }	t        t        j                  ||||      |	d	       y )
N   rA   r   c                 "    | d   dz
  | d   dz   fS )Nr   皙?r
   gffffff@r!   r"   s    r$   ro   zLTestNdimageInterpolation.test_geometric_transform_vs_padded.<locals>.mapping  r   r'      rG   r   rH   rI   )r1   rK   rL   reshaperO   rP   rQ   tupleslicendimr3   r4   r   )
r6   r/   r-   r#   ro   rS   rT   xpcenter_slicer   s
             r$   "test_geometric_transform_vs_paddedz;TestNdimageInterpolation.test_geometric_transform_vs_padded  s     IIc'//B7	.
 (,,T2VVAt(+eD4%01AFF:;!55d%11=? 	''7.35		
r'   c                    t        j                  dg      }d }|j                  |j                  j                         t        j                  |      t        j                  |      j                  |j                  j                               fD ]8  }t        j                  |||j                  |      }||n|}t        |dg       : y )Nr
   c                     | S rn   r!   r"   s    r$   ro   zcTestNdimageInterpolation.test_geometric_transform_endianness_with_output_parameter.<locals>.mapping  rp   r'   rd   )
r1   r2   rB   newbyteorder
empty_liker   r3   r4   rr   r   )r6   r8   ro   r^   returnedresults         r$   9test_geometric_transform_endianness_with_output_parameterzRTestNdimageInterpolation.test_geometric_transform_endianness_with_output_parameter  s     xx}	 JJ

 7 7 9MM$'MM$'..tzz/F/F/HIKC 224$**:=?H$,S(F%fqc2Kr'   c                     t        j                  dg      }d }t        j                  ||d      }t	        |j
                  t        j
                  d      u        t        |dg       y )Nr
   c                     | S rn   r!   r"   s    r$   ro   zUTestNdimageInterpolation.test_geometric_transform_with_string_output.<locals>.mapping  rp   r'   frd   )r1   r2   r3   r4   r   rB   r   )r6   r8   ro   r^   s       r$   +test_geometric_transform_with_string_outputzDTestNdimageInterpolation.test_geometric_transform_with_string_output  sQ    xx}	 ))$D		RXXc]*+!#s+r'   c                 ^   t        j                  g dg dg dg      }t        j                  g dg dg dg      }|j                  j                  dk(  r|d|z  z
  }|d|z  z
  }t        j                  |j
                        }|d	z  }t        j                  |||
      }t        ||       y )Nr   r   r   r   r   r   r   r   r
   rY   )	r1   r2   rB   r   indicesrr   r3   rN   r   )r6   r/   rB   r8   rV   idxr^   s          r$   test_map_coordinates01z/TestNdimageInterpolation.test_map_coordinates01  s     xx%%' ( 88\))+ , ::??c!"t)#D"x-/Hjj$q%%dCu=!#x0r'   c                    t        j                  g dg dg dg      }t        j                  |j                  t         j                        }|dz  }t        j                  |d|      }t        j                  |||      }t        ||       y )Nr   r   r   r    rY   )	r1   r2   r  rr   r   r3   r%   rN   r   )r6   r/   r8   r  out1out2s         r$   test_map_coordinates02z/TestNdimageInterpolation.test_map_coordinates02  sp    xx%%' ( jjRZZ0s
}}T3e4&&tS>!$-r'   c           
      ,   t        j                  g dg dg dgd      }t        j                  |j                        dz
  }t	        j
                  ||      }t        |g dg dg d	g       t        |t	        j                  |d
             t        j                  |d d d   j                        dz
  }t	        j
                  |d d d   |      }t        |g dg dg       t        |t	        j                  |d d d   d
             t        j                  |d d d d df   j                        dz
  }t	        j
                  |d d d d df   |      }t        |ddgddgddgg       t        |t	        j                  |d d d d df   d
             y )Nr   r   r   FrY   r
   r   r   r   r
   r
   r(   r   r   r+   )r1   r2   r  rr   r3   rN   r   r%   r6   r8   r  r^   s       r$   test_map_coordinates03z/TestNdimageInterpolation.test_map_coordinates03  sd   xx%%'.13 jj$q(%%dC0!#(4(4(6 	7 	"#w}}T6'BCjjcc)A-%%d3Q3i5!#(4(6 	7!#w}}T#A#Y'GHjja1f++,q0%%d1cc6lC8!#AAA'?@!#w}}T!SqS&\6'JKr'   c                     t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  |j                        }|dz  }|j                  |j                  j                         t        j                  |      t        j                  |      j                  |j                  j                               fD ],  }t        j                  |||      }||n|}t        ||       . y )Nr
   r(   r+   r?   r   rd   )r1   r2   r  rr   rB   r  r  r   r3   rN   r   )r6   r8   rV   r  r^   r  r  s          r$   5test_map_coordinates_endianness_with_output_parameterzNTestNdimageInterpolation.test_map_coordinates_endianness_with_output_parameter  s     xx!Q!Q()88aVaV,-jj$qJJJJ##%MM(#MM(#**8>>+F+F+HI	
C ..tSEH$,S(F%fh7
r'   c                    t        j                  dgg      }t        j                  |j                        }t	        j
                  ||d      }t        |j                  t        j                  d      u        t        |dgg       y Nr
   r  rd   )	r1   r2   r  rr   r3   rN   r   rB   r   r  s       r$   'test_map_coordinates_with_string_outputz@TestNdimageInterpolation.test_map_coordinates_with_string_output  s`    xx!jj$%%dC<		RXXc]*+!#u-r'   win32r   z2do not run on 32 bit or windows (no sparse memory))reasonc                 .   	 d}t        j                  |dz  t         j                        j                  ||      }d||dz
  d |dz
  d f<   t	        j
                  ||dz
  g|dz
  ggd       y # t        $ r}t        j                  d	      |d }~ww xY w)
Ni0u  r(   rA   r   r)   r   r
   rY   zNot enough memory available)	r1   emptyfloat32r   r3   rN   MemoryErrorpytestskip)r6   nr   es       r$   test_map_coordinates_large_dataz8TestNdimageInterpolation.test_map_coordinates_large_data$  s    
	DAARZZ088A>A !Aa!efa!efn##AS	AG9'=QG 	D++;<!C	Ds   A-A0 0	B9BBc                 ~    t        j                  dg      }t        j                  |dgg|      }t	        |dg       y ra   r1   r2   r3   affine_transformr   r6   r/   r8   r^   s       r$   test_affine_transform01z0TestNdimageInterpolation.test_affine_transform012  s5    xx}&&tqcU%@!#s+r'   c                     t        j                  dg      }t        j                  |dgg|      }t	        |g d       y )Nr   r
   rY   rh   r1   r[   r3   r)  r   r*  s       r$   test_affine_transform02z0TestNdimageInterpolation.test_affine_transform028  s3    wws|&&tqcU%@!#|4r'   c                     t        j                  dg      }t        j                  |dggd|      }t	        |g d       y )Nr   r
   r   rY   r}   r-  r*  s       r$   test_affine_transform03z0TestNdimageInterpolation.test_affine_transform03>  s5    wws|&&tqcUBeD!#|4r'   c                     t        j                  g d      }t        j                  |dggd|      }t	        |g d       y )Nr   r
   r   rY   r   r(  r*  s       r$   test_affine_transform04z0TestNdimageInterpolation.test_affine_transform04D  s4    xx%&&tqcUBeD!#|4r'   c                 0   t        j                  g dg dg dg|      }t        j                  g dg dg dg|      }|j                  j                  dk(  r|d|z  z  }|d|z  z  }t	        j
                  |ddgddggddg|	      }t        ||       y )
Nrh   rA   r}   r   r   r
   r   r   rY   )r1   r2   rB   r   r3   r)  r   r6   r/   rB   r8   rV   r^   s         r$   test_affine_transform05z0TestNdimageInterpolation.test_affine_transform05J  s     xx%%'.35 88\))+279 ::??c!BIDX%H&&tq!fq!f-=()2we=!#x0r'   c                     t        j                  g dg dg dg      }t        j                  |ddgddggddg|      }t	        |g dg d	g d
g       y )Nr   r   r   r
   r   r   rY   r   r   r   r(  r*  s       r$   test_affine_transform06z0TestNdimageInterpolation.test_affine_transform06Z  s`    xx%%' ( &&tq!fq!f-=()2we=!#(4(4(6 	7r'   c                     t        j                  g dg dg dg      }t        j                  |ddgddggddg|      }t	        |g dg dg dg       y )	Nr   r   r   r
   r   r   rY   r   r(  r*  s       r$   test_affine_transform07z0TestNdimageInterpolation.test_affine_transform07e  s`    xx%%' ( &&tq!fq!f-=(*Awe=!#(4(4(6 	7r'   c                     t        j                  g dg dg dg      }t        j                  |ddgddggddg|      }t	        |g dg d	g d
g       y )Nr   r   r   r
   r   r   rY   r   r   r   r(  r*  s       r$   test_affine_transform08z0TestNdimageInterpolation.test_affine_transform08p  s`    xx%%' ( &&tq!fq!f-=(*Bxu>!#(4(4(6 	7r'   c                     t        j                  g dg dg dg      }|dkD  rt        j                  ||      }n|}t        j                  |ddgddggddg|d	      }t        |g d
g dg dg       y )Nr   r   r   r
   rY   r   r   Fr   r   r   r   )r1   r2   r3   r\   r)  r   r6   r/   r8   r   r^   s        r$   test_affine_transform09z0TestNdimageInterpolation.test_affine_transform09{  s    xx%%' ( AI,,T?HH&&x1a&1a&1A(*Bxu168 	"#(4(4(6 	7r'   c                     t        j                  dgt         j                        }t        j                  |dggd|      }t        |g d       y )Nr(   r    r=   )r.   r/   r
   r
   r
   r   )r1   r[   r   r3   r)  r   r*  s       r$   test_affine_transform10z0TestNdimageInterpolation.test_affine_transform10  s?    wwsBJJ'&&tseW4-24!#|4r'   c                 `    g d}t        j                  |dggdd|      }t        |g d       y )Nr   r(   r   r=   rY   r<   r3   r)  r   r*  s       r$   test_affine_transform11z0TestNdimageInterpolation.test_affine_transform11  s-    '&&tqcUAt5I!#|4r'   c                 l    g d}t        j                  |dggdd|      }t        |d d d   g d       y )Nr<   r    r   r   rY   r(   rC  r*  s       r$   test_affine_transform12z0TestNdimageInterpolation.test_affine_transform12  s5    &&tseWaUK!#cc(L9r'   c                     g dg dg dg}t        j                  |ddgddggdd|      }t        |dd	gd
dgddgg       y )Nr<   r   r   r
   r   r(   r   rY   r)   r   r+   r   r   rC  r*  s       r$   test_affine_transform13z0TestNdimageInterpolation.test_affine_transform13  sY    !# &&tq!fq!f-=q&-24!#AAB'@Ar'   c                 x    g dg dg dg}t        j                  |ddgddggdd|      }t        |g dg       y )	Nr<   r   r   r(   r   r
   r   rY   rC  r*  s       r$   test_affine_transform14z0TestNdimageInterpolation.test_affine_transform14  sH    ! &&tq!fq!f-=q&-24!#~6r'   c                 x    g dg dg dg}t        j                  |ddgddggdd|      }t        |dd	gg       y )
Nr<   r   r   r(   r   r   rY   r
   r)   rC  r*  s       r$   test_affine_transform15z0TestNdimageInterpolation.test_affine_transform15  sL    ! &&tq!fq!f-=q&-24!#Ax0r'   c                     g dg dg dg}t        j                  |ddgddggdd|	      }t        |d
d d df   |       y )Nr<   r   r   r
           r   r    r   rY   .r(   rC  r*  s       r$   test_affine_transform16z0TestNdimageInterpolation.test_affine_transform16  sR    ! &&tq#hC-A1'-U<!#c3Q3h-6r'   c                     g dg dg dg}t        j                  |ddgddggdd|      }t        |d d d	d
f   |       y )Nr<   r   r   r    r   r
   r   rY   r(   .rC  r*  s       r$   test_affine_transform17z0TestNdimageInterpolation.test_affine_transform17  sR    ! &&tsAhA-?'-U<!#cc3h-6r'   c                     g dg dg dg}t        j                  |ddgddggdd|      }t        |d d dd d df   |       y )	Nr<   r   r   r    r   r   rY   r(   rC  r*  s       r$   test_affine_transform18z0TestNdimageInterpolation.test_affine_transform18  sV    ! &&tsAhC-A1'-U<!#cc3Q3h-6r'   c                     t        j                  g dg dg dgt         j                        }t        j                  |ddgddggdd|      }t        j                  |ddgddggdd	|      }t        ||       y )
Nr<   r   r   r    r   r   rY          @r   )r1   r2   r   r3   r)  r   r*  s       r$   test_affine_transform19z0TestNdimageInterpolation.test_affine_transform19  s    xx%(*+-::7 &&tsAhC-A1'-U<&&sc1X3x,@!'-U<!#t,r'   c                 r    g dg dg dg}t        j                  |dgdggdd|      }t        |dd	g       y )
Nr<   r   r   r   r(   r   rY   r
   r)   rC  r*  s       r$   test_affine_transform20z0TestNdimageInterpolation.test_affine_transform20  E    ! &&tqcA3ZD-24!#1v.r'   c                 r    g dg dg dg}t        j                  |dgdggdd|      }t        |dd	g       y )
Nr<   r   r   r(   r   r   rY   r
   r   rC  r*  s       r$   test_affine_transform21z0TestNdimageInterpolation.test_affine_transform21  rZ  r'   c                     t        j                  g d      }t        j                  |dggdgd|      }t	        |g d       y )Nr   r(   r   )r)   rY   r   r
   r(   r(  r*  s       r$   test_affine_transform22z0TestNdimageInterpolation.test_affine_transform22  s=     xx%&&tqcURD$-24!#y1r'   c                     t        j                  g d      }t        j                  |dggdgd|      }t	        |d d d   g d       y )Nr   r    r   rF  rY   r(   r   r(  r*  s       r$   test_affine_transform23z0TestNdimageInterpolation.test_affine_transform23  sE     xx%&&tseWrdD-24!#cc(L9r'   c                    t        j                  g d      }t               5 }|j                  t        d       t        j                  |dgd|      }d d d        t        j                  |dggd|      }t        |       y # 1 sw Y   1xY w)Nr   @The behavior of affine_transform with a 1-D array .* has changedr(   r   rY   r1   r2   r   filterUserWarningr3   r)  r   r6   r/   r8   supr  r  s         r$   test_affine_transform24z0TestNdimageInterpolation.test_affine_transform24  s{     xx% CJJ{%& ++D1#rGD	 !
 ''seRuE!$- !    1BBc                    t        j                  g d      }t               5 }|j                  t        d       t        j                  |dgd|      }d d d        t        j                  |dggd|      }t        |       y # 1 sw Y   1xY w)Nr   rc  r    r   rY   rd  rg  s         r$   test_affine_transform25z0TestNdimageInterpolation.test_affine_transform25  s{     xx% CJJ{%& ++D3%5ID	 !
 ''ugrG!$- ! rj  c                 (   t        j                  g dg dg dg      }|dkD  rt        j                  ||      }n|}t        j                  d      }t        j
                  d       }t        j                  ||f      }t        j                  |g dgf      }t        j                  |||j                         |d	
      }t        j                  |||d	
      }	t        j                  |||d	
      }
||	|
fD ]  }t        |g dg dg dg        y )Nr   r   r   r
   rY   r(   r(   r
   )r   r   r
   Fr   r   r   r   )r1   r2   r3   r\   eyer[   hstackvstackr)  ravelr   )r6   r/   r8   r   tform_originaloffset_originaltform_h1tform_h2r  r  out3r^   s               r$   test_affine_transform26z0TestNdimageInterpolation.test_affine_transform26  s    xx((* + AI,,T?HH776?*99no>?99h45''.(7(=(=(?.3uF ''(%279''(%279$%C%cL,8,8,: ; &r'   c                 0   t        j                  g dg dg dg      }t        j                  t        j                  d      t        j                  d       f      }t        j
                  |g dgf      }t        t        t        j                  ||       y )Nr   r   r   r(   rn  )r   r(   r
   )
r1   r2   rp  ro  r[   rq  assert_raises
ValueErrorr3   r)  )r6   r8   ru  rv  s       r$   test_affine_transform27z0TestNdimageInterpolation.test_affine_transform273  sn    xx%%' ( 99bffQi"''&/)9:;99h45j'":":D(Kr'   c                    t        j                  d      }t        j                  |      t        j                  |      j                  |j                  j                               |j                  |j                  j                         fD ]]  }t               5 }|j                  t        d       t        j                  |ddg|      }d d d        |n|}t        |ddgddgg       _ y # 1 sw Y   $xY w)N)r(   r(   rc  r
   rd   )r1   r[   r  r   rB   r  r   re  rf  r3   r)  r   )r6   r8   r^   rh  r  r  s         r$   9test_affine_transform_1d_endianness_with_output_parameterzRTestNdimageInterpolation.test_affine_transform_1d_endianness_with_output_parameter<  s     wwvMM$'MM$'..tzz/F/F/HIJJ

 7 7 9;C #$

;,- #33D1a&M	 %
 %,S(F%f1v1v.>?; %$s   1C,,C5	c                 ~   t        j                  dg      }|j                  |j                  j                         t        j                  |      t        j                  |      j                  |j                  j                               fD ]/  }t        j                  |dgg|      }||n|}t        |dg       1 y )Nr
   rd   )	r1   r2   rB   r  r  r   r3   r)  r   )r6   r8   r^   r  r  s        r$   >test_affine_transform_multi_d_endianness_with_output_parameterzWTestNdimageInterpolation.test_affine_transform_multi_d_endianness_with_output_parameterK  s     xx}JJ

 7 7 9MM$'MM$'..tzz/F/F/HIKC //seCHH$,S(F%fqc2Kr'   c                 \   t        j                  dt         j                        }t        j                  d      }t	        j
                  |dgg|       t        |d d |       t        j                  t              5  t	        j
                  |dgg|d       d d d        y # 1 sw Y   y xY w)Nr   rA   )   r
   rd   )r   )re   r.   )
r1   rK   r   r[   r3   r)  r   r"  r	   RuntimeErrorr6   r8   r^   s      r$   "test_affine_transform_output_shapez;TestNdimageInterpolation.test_affine_transform_output_shapeV  s~    yy"**-ggen  uS9!#bq'40 ]]<($$seCe= )((s   =B""B+c                     t        j                  dg      }t        j                  |dggd      }t	        |j
                  t        j
                  d      u        t        |dg       y r  )r1   r2   r3   r)  r   rB   r   r  s      r$   (test_affine_transform_with_string_outputzATestNdimageInterpolation.test_affine_transform_with_string_outputc  sN    xx}&&tqcU3?		RXXc]*+!#s+r'   r%   ))r
   r   r   r
   )r   r
   )r)   )r(   r+   c                 $   t        j                  ddgddgg      }t        j                  d      }t        j                  d      |d dd df<   ||d d df<   t	        t        j                  ||d|      t        j                  ||d	             y )
Nr   r
   r(   r)   r(   r)   r   r   r  axis)r1   r2   zerosro  r   r3   r)  roll)r6   r%   r/   r#   affines        r$   )test_affine_transform_shift_via_grid_wrapzBTestNdimageInterpolation.test_affine_transform_shift_via_grid_wrapi  s    
 HHq!f!f &!rr2A2vq!t!$$Q[NGGAu6*	
r'   c                 "   t        j                  g dg dg      }t        j                  d      }t        j                  d      |d dd df<   |j                  |d d df<   t        t        j                  ||d|      |d d dd d df          y )Nr^  r)   r   r   r  r(   r   r   r   )r1   r2   r  ro  rr   r   r3   r)  )r6   r/   r#   r  s       r$   #test_affine_transform_shift_reflectz<TestNdimageInterpolation.test_affine_transform_shift_reflectx  s     HHi! "&!rr2A2vwwq!t!$$QYeLddDbDjM	
r'   c                 |    t        j                  dg      }t        j                  |dg|      }t	        |dg       y )Nr
   rY   r   r1   r2   r3   r%   r   r*  s       r$   test_shift01z%TestNdimageInterpolation.test_shift01  s1    xx}mmD1#U3!#s+r'   c                 ~    t        j                  dg      }t        j                  |dg|      }t	        |g d       y )Nr   r
   rY   r}   r1   r[   r3   r%   r   r*  s       r$   test_shift02z%TestNdimageInterpolation.test_shift02  s/    wws|mmD1#U3!#|4r'   c                 |    t        j                  dg      }t        j                  |d|      }t	        |g d       y )Nr   r   rY   r@  r  r*  s       r$   test_shift03z%TestNdimageInterpolation.test_shift03  s-    wws|mmD"E2!#|4r'   c                 ~    t        j                  g d      }t        j                  |d|      }t	        |g d       y )Nr   r
   rY   r   r  r*  s       r$   test_shift04z%TestNdimageInterpolation.test_shift04  s,    xx%mmD!51!#|4r'   c                 "   t        j                  g dg dg dg|      }t        j                  g dg dg dg|      }|j                  j                  dk(  r|d|z  z  }|d|z  z  }t	        j
                  |ddg|      }t        ||       y )	Nrh   rA   r}   r   r   r   r
   rY   r1   r2   rB   r   r3   r%   r   r4  s         r$   test_shift05z%TestNdimageInterpolation.test_shift05  s     xx%%'.35 88\))+279 ::??c!BIDX%HmmD1a&6!#x0r'   c                 <   t        j                  g dg dg dg|      }t        j                  g dg dg dg|      }|j                  j                  dk(  r|d|z  z  }|d|z  z  }d}||d d df<   t	        j
                  |ddg|||	      }t        ||       y )
Nrh   rA   r}   r   r   g      @r   r
   )r/   r-   r,   r  )r6   r/   r-   rB   r8   rV   r,   r^   s           r$   test_shift_with_nonzero_cvalz5TestNdimageInterpolation.test_shift_with_nonzero_cval  s     xx%%'.35 88\))+279 ::??c!BIDX%HAmmD1a&DtL!#x0r'   c                     t        j                  g dg dg dg      }t        j                  |ddg|      }t	        |g dg dg d	g       y )
Nr   r   r   r   r
   rY   r   r   r   r  r*  s       r$   test_shift06z%TestNdimageInterpolation.test_shift06  L    xx%%' ( mmD1a&6!#(4(4(6 	7r'   c                     t        j                  g dg dg dg      }t        j                  |ddg|      }t	        |g dg dg dg       y )Nr   r   r   r
   r   rY   r   r  r*  s       r$   test_shift07z%TestNdimageInterpolation.test_shift07  sL    xx((* + mmD1a&6!#(4(4(6 	7r'   c                     t        j                  g dg dg dg      }t        j                  |ddg|      }t	        |g dg dg dg       y )	Nr   r   r   r
   rY   r   r   r   r  r*  s       r$   test_shift08z%TestNdimageInterpolation.test_shift08  r  r'   c                     t        j                  g dg dg dg      }|dkD  rt        j                  ||      }n|}t        j                  |ddg|d      }t        |g dg d	g d
g       y )Nr   r   r   r
   rY   Fr   r   r   r   )r1   r2   r3   r\   r%   r   r=  s        r$   test_shift09z%TestNdimageInterpolation.test_shift09  sl    xx%%' ( AI,,T?HHmmHq!fEUK!#(4(4(6 	7r'   c                     t        j                  ddgddgg      }t        t        j                  ||d|      t        j
                  ||d             y )	Nr   r
   r(   r)   r   r   r  r  )r1   r2   r   r3   r%   r  r6   r%   r/   r#   s       r$   test_shift_grid_wrapz-TestNdimageInterpolation.test_shift_grid_wrap  sN    
 HHq!f!f !MM!UEBGGAu6*	
r'   c           	          t        j                  d      j                  d      }t        t	        j
                  ||d|      t	        j
                  ||d|             y )N   )r   r   r   r   r   )r1   rK   r   r   r3   r%   r  s       r$   test_shift_grid_constant1z2TestNdimageInterpolation.test_shift_grid_constant1  sH    
 IIbM!!&)!MM!UFMM!U5A	
r'   c                     t        j                  g dg dgt              }t        j                  g dg dg      }t        t	        j
                  |ddd	      |       y )
Nr   r   rA   r   r   )r    r    r   r
   r   )r1   r2   rL   r   r3   r%   )r6   r#   r   s      r$   test_shift_grid_constant_order1z8TestNdimageInterpolation.test_shift_grid_constant_order1  sS    HHi!(-/(($6$6$8 9!MM!ZoQG	
r'   c                     t        j                  g dg dg      }t        t        j                  ||j
                  d|      |d d dd d df          y )Nr^  r  r   r   r   )r1   r2   r   r3   r%   rr   )r6   r/   r#   s      r$   test_shift_reflectz+TestNdimageInterpolation.test_shift_reflect  sM     HHi! "!MM!QWW9EBddDbDjM	
r'   r   FTc                     t        j                  d      }t        d||      }t        t	        j
                  ||dz  dz   fi |d   |d          t        t	        j
                  || dz  dz
  fi |d   |d          y )Nr  r   )r-   r/   r   r(   r
   r   r   )r1   rK   dictr   r3   r%   )r6   r/   r   r#   kwargss        r$   test_shift_nearest_boundaryz4TestNdimageInterpolation.test_shift_nearest_boundary  s    
 IIbM9EYG!MM!UaZ!^6v6q91Q4	
 	"MM!eVq[1_77;QrU	
r'   c                    t        j                  dt              j                  dd      }d}d}t        j                  |      }t        j                  |||      }t        t        ||       g|j                  z        }t        j                  ||||      |   }	t        t        j                  ||||      |	d	       y )
Nr   rA   r   )r   gffffffrF   rG   r   rH   r   )r1   rK   rL   r   rO   rP   rQ   r   r   r   r3   r%   r   )
r6   r/   r-   r#   r%   rS   rT   r   r   r   s
             r$   test_shift_vs_paddedz-TestNdimageInterpolation.test_shift_vs_padded%  s     IIc'//B7 (,,T2VVAt(+eD4%01AFF:;!--D//;= 	MM!UU;	
r'   c           	         dddgfD ]P  }t        j                  t        t        d                  j	                  d      j                  t              }t        j                  |||      }t        |j                  d       t        t        j                  |dd d f   dk7               t        t        j                  |dd d f   dt        z
  k\               t        t        j                  |dd d f   d	t        z   k               t        t        j                  |dt        z
  k\               t        t        j                  |d
t        z   k               S y )Nr(      )r   r   rY   )r   r   r   r   r  r   r   )r1   r2   listranger   r   rL   r3   zoomr   rr   r   alleps)r6   r/   zarrs       r$   
test_zoom1z#TestNdimageInterpolation.test_zoom1:  s    aVA((4b	?+33F;BB5IC,,sAU3CH-BFF3r1u:?+,BFF3r1u:"s(345BFF3q!t9S123BFF31s7+,-BFF328,-. r'   c                     t        j                  d      j                  d      }t        j                  t        j                  |d      d      }t        ||       y )Nr   r   r(   r    )r1   rK   r   r3   r  r   )r6   r  r^   s      r$   
test_zoom2z#TestNdimageInterpolation.test_zoom2F  s?    iim##F+ll7<<Q/53$r'   c                    t        j                  ddgg      }t        j                  |d      }t        j                  |d      }t	        |t        j                  ddgddgg             t	        |t        j                  g dg             y )Nr
   r(   rn  r   )r
   r
   r(   r(   )r1   r2   r3   r  r   )r6   r  r  r  s       r$   
test_zoom3z#TestNdimageInterpolation.test_zoom3K  sk    hhAx ||C(||C(!$1a&1a&1A(BC!$,(@Ar'   c                 V   t        j                  g dg dg dg|      }|j                  j                  dk(  r|d|z  z  }t	               5 }|j                  t        d       t        j                  |ddgd	d
|      }d d d        t        d d dd d df   |       y # 1 sw Y   !xY w)Nr<   r   r   rA   r   r   rc  r    r   r   rY   r(   )
r1   asarrayrB   r   r   re  rf  r3   r)  r   )r6   r/   rB   r8   rh  r^   s         r$   test_zoom_affine01z+TestNdimageInterpolation.test_zoom_affine01S  s     zz<*-/6;= ::??c!BID CJJ{%& **4#sQ+1@C	 ! 	"#cc3Q3h-6 ! s   3BB(c                 h    d}t        j                  t        j                  ||f      d|z  d       y )Nr         ?r   rG   )r3   r  r1   r  )r6   dims     r$   test_zoom_infinityz+TestNdimageInterpolation.test_zoom_infinityc  s(    RXXsCj)28)Dr'   c                     t        j                  d      }d}t        j                  ||d      }t        j                  d      }t	        ||       y )N)r
   r   r   )r  rV  rV  r+   )r,   )r
   r   r   )r1   r  r3   r  r   )r6   r  r  r^   refs        r$   test_zoom_zoomfactor_onez1TestNdimageInterpolation.test_zoom_zoomfactor_oneh  s?    hhy!ll31-hh{#!#s+r'   c                     t        j                  d      }d}t        j                  ||      }t	        |j
                  d       y )N)r)   r   r  )gUUUUUU?gE]t?g(\?)r   rC      )r1   r  r3   r  r   rr   )r6   r  r  r^   s       r$   test_zoom_output_shape_roundoffz8TestNdimageInterpolation.test_zoom_output_shape_roundoffq  s3    hh{#.ll3%399k2r'   r  )r  )r)   r   )r   r(   )r   r   )r   r   r   r   r   r   r   r   c           	          t        j                  ddgddggt              }t        t	        j
                  ||d|      t        j                  |t        j                  |                   y )Nr   r
   r(   r)   rA   rE   )r1   r2   rL   r   r3   r  kronr[   )r6   r  r-   r#   s       r$   test_zoom_by_int_order0z0TestNdimageInterpolation.test_zoom_by_int_order0w  sY     HHq!fQ!(-/ 	"LLD5GGArwwt}%	
r'   rr   r  )r   r   )r   r   r   r   r   c           	         t        j                  t        j                  |      t              j	                  |      }t        t        j                  ||d|d      t        j                  |t        j                  |                   y )NrA   r   T)r/   r-   	grid_mode)
r1   rK   prodrL   r   r   r3   r  r  r[   )r6   rr   r  r-   r#   s        r$   test_zoom_grid_by_int_order0z5TestNdimageInterpolation.test_zoom_grid_by_int_order0  sY     IIbggenE2::5A!LLDEGGArwwt}%	
r'   c                     t        j                  dt              j                  d      }t	        j
                  t        d      5  t        j                  |d|d      f d d d        y # 1 sw Y   y xY w)	Nr   rA   )r)   r)   zIt is recommended to use mode)matchr(   T)r-   r  )	r1   rK   rL   r   r"  warnsrf  r3   r  )r6   r-   r#   s      r$   test_zoom_grid_mode_warningsz5TestNdimageInterpolation.test_zoom_grid_mode_warnings  sY     IIau%--f5\\+ ?ALLADD9:A A As   A**A3c                     t        j                  g dg dg dgt         j                        }t        j                  |d|      }t        ||       y )Nr   r   r
   r
   r   rA   r   rY   r1   r2   r   r3   rotater   r*  s       r$   test_rotate01z&TestNdimageInterpolation.test_rotate01  sB    xx%%'.0jj: nnT1E2!#t,r'   c                 
   t        j                  g dg dg dgt         j                        }t        j                  g dg dg dg dgt         j                        }t        j                  |d|      }t        ||       y )Nr   )r   r
   r   r   rA   r   r   r   r   r
   r   Z   rY   r  r6   r/   r8   rV   r^   s        r$   test_rotate02z&TestNdimageInterpolation.test_rotate02  sk    xx%%'.0jj: 88Y%%%' /1jj: nnT2U3!#x0r'   c                 *   t        j                  g dg dg dg|      }t        j                  g dg dg dg dg dg|      }|j                  j                  dk(  r|d|z  z  }|d|z  z  }t	        j
                  |d|	      }t        ||       y )
Nr   r   r   r   r   r   r
   r
   r   r   rA   r  r  r   r   r  rY   )r1   r2   rB   r   r3   r  r   r4  s         r$   test_rotate03z&TestNdimageInterpolation.test_rotate03  s     xx((*168 88Y%%%%	' /4	5
 ::??c!BIDX%HnnT2U3!#x0r'   c                    t        j                  g dg dg dgt         j                        }t        j                  g dg dg dgt         j                        }t        j                  |dd|      }t        ||       y )Nr  r  rA   r   r   r
   r   r   r  F)r   r/   r  r  s        r$   test_rotate04z&TestNdimageInterpolation.test_rotate04  si    xx((*13= 88_,,.57ZZA nnT2uEB!#x0r'   c                    t        j                  d      }t        d      D ]=  }t        j                  g dg dg dg dgt         j                        |d d d d |f<   ? t        j                  g dg dg dgt         j                        }t        j                  |d|	      }t        d      D ]  }t        |d d d d |f   |        y )
N)r   r)   r)   r)   r  r  rA   r   r  r  rY   r1   r  r  r2   r   r3   r  r   r6   r/   r8   irV   r^   s         r$   test_rotate05z&TestNdimageInterpolation.test_rotate05  s    xx	"qAHHi&/&/&/&1 9;

DDAqM 
 88\))+24**> nnT2U3qA%c!Q'lH= r'   c                    t        j                  d      }t        d      D ]:  }t        j                  g dg dg dgt         j                        |d d d d |f<   < t        j                  g dg dg dg dgt         j                        }t        j                  |d|	      }t        d      D ]  }t        |d d d d |f   |        y )
N)r)   r   r)   r)   r   r  rA   r  r  r  rY   r  r  s         r$   test_rotate06z&TestNdimageInterpolation.test_rotate06  s    xx	"qAHHl&2&2&4;=::GDAqM  88Y&&&( 02zz; nnT2U3qA%c!Q'lH= r'   c                 h   t        j                  g dg dg dggdz  t         j                        }|j                         }t        j                  g dg dg dg dg dggdz  t         j                        }|j                  g d      }t	        j
                  |dd	|
      }t        ||       y )Nr  r  r(   rA   r  r  )r(   r
   r   r  r  )axesr/   r1   r2   r   	transposer3   r  r   r  s        r$   test_rotate07z&TestNdimageInterpolation.test_rotate07  s    xx/))+ ,./079zzC ~~88i''''	) * -.	. 68ZZ	A
 %%i0nnT2F%@!#x0r'   c                 X   t        j                  g dg dg dggdz  t         j                        }|j                         }t        j                  g dg dg dggdz  t         j                        }|j                         }t	        j
                  |ddd|	      }t        ||       y )
Nr  r  r(   rA   r  r  r  F)r  r   r/   r  r  s        r$   test_rotate08z&TestNdimageInterpolation.test_rotate08  s    xx/))+ ,./079zzC ~~88o--/ 0234;=::G %%'nnT2FEO!#x0r'   c                     t        j                  g dg dg dgdz  t         j                        }t        t              5  t        j                  |dd|j                  f       d d d        y # 1 sw Y   y xY w)Nr  r  r(   rA   r  r   )r  )r1   r2   r   rz  r{  r3   r  r   )r6   r8   s     r$   test_rotate09z&TestNdimageInterpolation.test_rotate09  s[    xx((*,-.57ZZA :&NN41dii.9 '&&s   %A//A8c           
      >   t        j                  dt         j                        j                  d      }t        j                  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      }t        ||       y )N-   rA   )r)   r   r)   )rO  rO  rO  )g|S2@g|S2@g>)!@)g9HD%@g9HD'@g9HD)@)gc~@gc~@gzLb @)g[ic6*@g[ic6,@g[ic6.@)g      5@g      6@g      7@)gRK<@gRK=@gRK>@)g,PA@g,PgB@g,PB@)gݠ'?@grn@@grnГ@@)gGA@gG9B@gGB@r   F)angler   )r1   rK   r   r   r2   r3   r  r   )r6   r8   rV   r^   s       r$   test_rotate10z&TestNdimageInterpolation.test_rotate10  s    yy2::.66yA 88o-BE-	/
 CB0BE	G
 .EE--	/0 1  nnTU;!#x0r'   c                     t        j                  t        j                  d      d      }t        j                  t        j                  |d      d      }t        ||       y )Nr   )r   r
      iL)r1   tilerK   r3   r  r   )r6   r   r   s      r$   test_rotate_exact_180z.TestNdimageInterpolation.test_rotate_exact_180&  s?    GGBIIaL&)NN7>>!S148Qr'   N)}__name__
__module____qualname__r"  markparametrizer9   r>   r  rW   r   r_   rb   rf   ri   rk   rt   rx   r~   r   r1   r   
complex128r   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  skipifsysplatformintpitemsizer&  r+  r.  r0  r2  r5  r7  r9  r;  r>  rA  rD  rG  rI  rK  rM  rP  rR  rT  rW  rY  r\  r_  ra  ri  rl  rx  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      s   [[
0	1
5	6
:	;
7	8
6	7
5	6
;	<	>	E	E [[
\	"
,	
|	$
L	!
\	"
m	$
=	)	+	<	< [[V &1 2 [[WeAh/; 02;  [[WeAqk2[[We,* - 3*
 [[WeAqk2[[We,, - 3,
 [[WeAqk2[[We,* - 3*
 [[WeAqk2[[We,5 - 35
 [[WeAqk2[[We,7 - 37 [[WeAqk2, 3, [[WeAqk25 35 [[WeAqk25 35 [[WeAqk25 35 [[WeAqk2[[Wrzz2==&AB1 C 31$ [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37$ [[WeAqk25 35 [[WeAqk25 35 [[WeAqk2: 3: [[WeAqk2
B 3
B [[WeAqk2
7 3
7 [[WeAqk2
1 3
1 [[WeAqk2
7 3
7 [[WeAqk2
7 3
7 [[WeAqk2
7 3
7 [[WeAqk2- 3-" [[WeAqk2
/ 3
/ [[WeAqk2/ 3/
  [[V &; <[[WeAh/
 0<
,3 , [[WeAqk2[[Wrzz2==&AB1 C 31" [[WeAqk2	. 3	.L(8". [[3<</J72771:3F3F3J 4  5	D5	D [[WeAqk2, 3,
 [[WeAqk25 35
 [[WeAqk25 35
 [[WeAqk25 35
 [[WeAqk2[[Wrzz2==&AB1 C 31 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk25 35 [[WeAqk25 35
 [[WeAqk2: 3:
 [[WeAqk2B 3B [[WeAqk27 37 [[WeAqk21 31 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk2- 3- [[WeAqk2/ 3/ [[WeAqk2/ 3/ [[WeAqk22 32 [[WeAqk2: 3: [[WeAqk2	. 3	. [[WeAqk2	. 3	. [[WeAqk2; 3;2L@	3=, [[WGI[[WeAqk2

 3I

 [[WeAqk2

 3

 [[WeAqk2, 3,
 [[WeAqk25 35
 [[WeAqk25 35
 [[WeAqk25 35
 [[WeAqk2[[Wrzz2==&AB1 C 31 [[WeAqk2[[Vj/%BC[[Wrzz2==&AB1 C D 31" [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37 [[WGI[[WeAqk2
 3I
 [[WGI[[WeAqk2
 3I

 [[WeAqk2
 3
 [[WeAqk2[[[5$-8

 9 3

 [[V &; <[[WeAh/
 0<
$ [[WeAqk2	/ 3	/%
B [[WeAqk2[[Wrzz2==&AB7 C 37E
,3 [[V%EF[[V &7 8
8 G
 [[Wvv&67[[V%EF[[V &D E
E G 8
 [[Vj&%9:; ;; [[WeAqk2- 3- [[WeAqk2	1 3	1 [[WeAqk2[[Wrzz2==&AB1 C 31 [[WeAqk21 31 [[WeAqk2> 3> [[WeAqk2> 3> [[WeAqk21 31 [[WeAqk2
1 3
1:1.r'   r   c                      t        j                  d      j                  d      } t        j                  | dt        j
                  d             y)zTicket #643r   r   r(   r   rd   N)r1   rK   r   r3   r  r  r"   s    r$   test_zoom_output_shaper  ,  s3    
		"f%ALLAbhhv./r'   )r  numpyr1   numpy.testingr   r   r   r   r   r   r"  r	   rz  scipy.ndimager3    r   r  rO   r   r  r!   r'   r$   <module>r     sV    
 . .  *    P Pf(0r'   