
    UgB                         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dS )    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                            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                            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                            dg d          ej                            d ed                    d                         Z	ej                            d edd                    ej                            de
          d                         Zej                            d edd                    ej                            de
          d                         Zej                            d edd                    ej                            de
          d                          Zej                            d edd                    ej                            de
          d!                         Zej                            d edd                    ej                            de
          d"                         Zej                            d ed#d                    d$             Zej                            d ed#d                    d%             Zej                            d ed#d                    d&             Zej                            d ed#d                    d'             Zej                            d ed#d                    ej                            dej        ej        g          d(                         Zej                            d ed#d                    d)             Zej                            d ed#d                    d*             Zej                            d ed#d                    d+             Zej                            d ed#d                    d,             Zej                            d ed#d                    d-             Zej                            d ed#d                    d.             Zej                            d ed#d                    d/             Zej                            d ed#d                    d0             Zej                            d ed#d                    d1             Z ej                            d ed#d                    d2             Z!ej                            d ed#d                    d3             Z"ej                            d ed#d                    d4             Z#ej                            d ed#d                    d5             Z$ej                            d ed#d                    d6             Z%ej                            d ed#d                    d7             Z&ej                            d ed#d                    d8             Z'd9 Z(ej                            dg d:          ej                            d ed                    d;                         Z)d< Z*d= Z+ej                            d ed#d                    ej                            dej        ej        g          d>                         Z,ej                            d ed#d                    d?             Z-d@ Z.dA Z/dB Z0ej        1                    dCe2j3        v p ej4        d#          j5        dDk     dEF          dG             Z6ej                            d ed#d                    dH             Z7ej                            d ed#d                    dI             Z8ej                            d ed#d                    dJ             Z9ej                            d ed#d                    dK             Z:ej                            d ed#d                    ej                            dej        ej        g          dL                         Z;ej                            d ed#d                    dM             Z<ej                            d ed#d                    dN             Z=ej                            d ed#d                    dO             Z>ej                            d ed#d                    dP             Z?ej                            d ed#d                    dQ             Z@ej                            d ed#d                    dR             ZAej                            d ed#d                    dS             ZBej                            d ed#d                    dT             ZCej                            d ed#d                    dU             ZDej                            d ed#d                    dV             ZEej                            d ed#d                    dW             ZFej                            d ed#d                    dX             ZGej                            d ed#d                    dY             ZHej                            d ed#d                    dZ             ZIej                            d ed#d                    d[             ZJej                            d ed#d                    d\             ZKej                            d ed#d                    d]             ZLej                            d ed#d                    d^             ZMej                            d ed#d                    d_             ZNej                            d ed#d                    d`             ZOej                            d ed#d                    da             ZPdb ZQdc ZRdd ZSde ZTdf ZUej                            dgg dh          ej                            d ed#d                    di                         ZVej                            d ed#d                    dj             ZWej                            d ed#d                    dk             ZXej                            d ed#d                    dl             ZYej                            d ed#d                    dm             ZZej                            d ed#d                    dn             Z[ej                            d ed#d                    ej                            dej        ej        g          do                         Z\ej                            d ed#d                    ej                            dddg          ej                            dej        ej        g          dp                                     Z]ej                            d ed#d                    dq             Z^ej                            d ed#d                    dr             Z_ej                            d ed#d                    ds             Z`ej                            d ed#d                    dt             Zaej                            dgg dh          ej                            d ed#d                    du                         Zbej                            dgg dh          ej                            d ed#d                    dv                         Zcdw Zdej                            d ed#d                    dx             Zeej                            d ed#d                    ej                            dydzd{g          d|                         Zfej                            dg d:          ej                            d ed                    d}                         Zgej                            d ed#d                    d~             Zhd Zid Zjej                            d ed#d                    ej                            dej        ej        g          d                         Zkd Zld Zmd Znej                            dg d          ej                            dg d          d                         Zoej                            dddg          ej                            dg d          ej                            dg d          d                                     Zpej                            dddg          d             Zqej                            d ed#d                    d             Zrej                            d ed#d                    d             Zsej                            d ed#d                    ej                            dej        ej        g          d                         Ztej                            d ed#d                    d             Zuej                            d ed#d                    d             Zvej                            d ed#d                    d             Zwej                            d ed#d                    d             Zxej                            d ed#d                    d             Zyd Zzd Z{d Z|dS )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                     d S )Nc                     | d         dz   fS )Nr         ? xs    e/var/www/surfInsights/venv3-11/lib/python3.11/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   so    	! 	! 	! x&&'e"459D D D	E 	E 	E 	E 	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                     d S )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/   se    	! 	! 	! x%%'e"459; ; ;	< 	< 	< 	< 	<r'   r-   )r   r   r   r   r   r   r/      c                 v   t          j        ddt                    }t          j        ddd          }t	          j        ||g||          }d	}t                              |          }t          j        |||
          }t	          j        |||z   g||          }	|dk    rdnd}
t          ||	d|
           dS )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     yQe,,,KBD)))#D1#UFFF (,,T22d222*6D1H:U046 6 6 ..ttE8$T::::::r'   r(   rB   c                 |    t          j        g |          }t          j        ||          }t	          |d           d S )Nr/   r
   r1   onesr3   spline_filterr   r6   rB   r/   r8   outs        r$   test_spline01z&TestNdimageInterpolation.test_spline01W   s@     wr5!!#D666!#q)))))r'   c                     t          j        dg|          }t          j        ||          }t	          |dg           d S Nr
   rY   )r1   r2   r3   r\   r   r]   s        r$   test_spline02z&TestNdimageInterpolation.test_spline02^   sD     xU###D666!#s+++++r'   c                 ~    t          j        g |          }t          j        |||          }t	          |d           d S )Noutputr
   rZ   r]   s        r$   test_spline03z&TestNdimageInterpolation.test_spline03e   sB     wr5!!#D%>>>!#q)))))r'   c                     t          j        dg|          }t          j        ||          }t	          |g d           d S )Nr   r
   r
   r
   r
   rZ   r]   s        r$   test_spline04z&TestNdimageInterpolation.test_spline04l   sC     wsE""#D%00!#|||44444r'   c                     t          j        ddg|          }t          j        ||          }t	          |g dg dg dg dg           d S )Nr   rY   rh   rZ   r]   s        r$   test_spline05z&TestNdimageInterpolation.test_spline05s   sl     w1vu%%#D666!#(4(4(4(6 	7 	7 	7 	7 	7r'   r   c                     t          j        dg          }d }t          j        |||j        |          }t          |dg           d S )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}   s\    x}}	 	 	 )$057 7 7!#s+++++r'   c                     t          j        dg          }d }t          j        |||j        |          }t          |g d           d S )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^    ws||	 	 	 )$057 7 7!#|||44444r'   c                     t          j        dg          }d }t          j        |||j        |          }t          |g d           d S )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^    ws||	 	 	 )$057 7 7!#|||44444r'   c                     t          j        g d          }d }t          j        |||j        |          }t          |g d           d S )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   sb    x%%	 	 	 )$057 7 7!#|||4444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          ||           d S )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     x%%'.35 5 5 8\\\)\\)\\+279 9 9 :?c!!BIDX%H	$ 	$ 	$ )$057 7 7!#x00000r'   c                     t          j        g dg dg dg          }d }t          j        |||j        |          }t          |g dg dg dg           d S )	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%%' ( (	$ 	$ 	$ )$057 7 7!#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        g dg dg dg          }d }t          j        |||j        |          }t          |g dg dg dg           d S )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           d S )	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   s    x%%' ( (	( 	( 	( )$057 7 7!#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        g dg dg dg          }d }|dk    rt          j        ||          }n|}t          j        |||j        |d          }t          |g d	g d
g dg           d S )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   s    x%%' ( (	( 	( 	( AII,T???HHH)(GTZ05H H H!#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        dgt           j                  }d }t          j        ||dg|          }t          |g d           d S )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   s]    wsBJ''	  	  	  )$!EJJJ!#|||44444r'   c                 j    g d}d }t          j        ||dg|          }t          |g d           d S )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  sS    '''	 	 	 )$!EJJJ!#|||44444r'   c                 |    g d}d }t          j        ||dg|          }t          |d d d         g d           d S )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  s[    ||	 	 	 )$!EJJJ!#ccc(LLL99999r'   c                     g dg dg dg}d }t          j        ||d|          }t          |ddgd	d
gddgg           d S )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  sz    !!!#	$ 	$ 	$ )$057 7 7!#AAB'@AAAAAr'   c                 x    g dg dg dg}d }t          j        ||d|          }t          |g dg           d S )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(  sk    !	$ 	$ 	$ )$057 7 7!#~66666r'   c                 x    g dg dg dg}d }t          j        ||d|          }t          |ddgg           d S )	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  sk    !	( 	( 	( )$057 7 7!#Ax00000r'   c                     g dg dg dg}d }t          j        ||d|          }t          |dd d df         |           d S )	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  ss    !	$ 	$ 	$ )$057 7 7!#c33Q3h-66666r'   c                     g dg dg dg}d }t          j        ||d|          }t          |d d ddf         |           d S )	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  ss    !	$ 	$ 	$ )$057 7 7!#ccc3h-66666r'   c                     g dg dg dg}d }t          j        ||d|          }t          |d d dd d df         |           d S )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\  sy    !	( 	( 	( )$057 7 7!#ccc33Q3h-66666r'   c                     t          j        g dg dg dgt           j                  }d }d }t          j        ||d|          }t          j        ||d|          }t          ||           d S )	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  s    x%(*+-:7 7	( 	( 	(	( 	( 	( )$*0? ? ?)#x*0? ? ?!#t,,,,,r'   c                     g dg dg dg}d }t          j        ||d|          }|                    t          j                  }t          |ddg           d S )	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{  su    !	! 	! 	! )$UKKKjj""!#1v.....r'   c           	      ~    g dg dg dg}d }t          j        ||d|dddi	          }t          |d
dg           d S )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  st    !	! 	! 	! )'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	          |           d S )
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    Hiiiii!(-/ / /	. 	. 	. ($6$6$6$6$6$6$8 9 9!'7./1 1 1	
 	
 	
 	
 	
r'   )r   r   r   r   r   c                    t          j        dt                                        dd          }d }d}t                              |          }t          j        |||          }t          t          ||           g|j	        z            }t          j        ||||          |         }	t          t          j        ||||          |	d	           d S )
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     Ic'''//B77	. 	. 	.
 (,,T22VAt(+++eD4%001AF:;;!5d%1 1 11=? 	'7.35 5 5		
 	
 	
 	
 	
 	
r'   c                    t          j        dg          }d }|j        |j                                        t          j        |          t          j        |                              |j                                                  fD ]6}t          j        |||j        |          }||n|}t          |dg           7d S )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     x}}	 	 	 J
 7 7 9 9M$''M$''..tz/F/F/H/HIIK 	3 	3C 24$*:=? ? ?H$,SS(F%fqc2222	3 	3r'   c                     t          j        dg          }d }t          j        ||d          }t	          |j        t          j        d          u            t          |dg           d S )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  sn    x}}	 	 	 )$DDD	RXc]]*+++!#s+++++r'   c                 D   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          ||           d S )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     x%%' ( ( 8\\\)\\)\\+ , , :?c!!"t)#D"x-/Hj$$q%dCu===!#x00000r'   c                    t          j        g dg dg dg          }t          j        |j        t           j                  }|dz  }t          j        |d|          }t          j        |||          }t          ||           d S )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  s    x%%' ( ( jRZ00s
}T3e444&tS>>>!$-----r'   c           
      P   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
                     d S )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  s   x%%'.13 3 3 j$$q(%dC00!#(4(4(6 	7 	7 	7 	"#w}T6'B'BCCCjccc))A-%d33Q3i55!#(4(6 	7 	7 	7!#w}T##A#Y'G'GHHHjaaa1f+,,q0%d111ccc6lC88!#AAA'?@@@!#w}T!!!SSqS&\6'J'JKKKK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                                        t          j        |          t          j        |                              |j                                                  fD ]/}t          j	        |||          }||n|}t          ||           0d S )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     x!Q!Q())8aVaV,--j$$qJJ##%%M(##M(##**8>+F+F+H+HII	
 	8 	8C .tSEEEH$,SS(F%fh7777	8 	8r'   c                    t          j        dgg          }t          j        |j                  }t	          j        ||d          }t          |j        t          j        d          u            t          |dgg           d S 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  sr    x!j$$%dC<<<	RXc]]*+++!#u-----r'   win32r   z2do not run on 32 bit or windows (no sparse memory))reasonc                 ,   	 d}t          j        |dz  t           j                                      ||          }d||dz
  d |dz
  d f<   t	          j        ||dz
  g|dz
  ggd           d S # 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RZ00088A>>A !Aa!effa!effn#AS	AG9'=QGGGGGG 	D 	D 	D+;<<!C	Ds   A+A/ /
B9BBc                     t          j        dg          }t          j        |dgg|          }t	          |dg           d S ra   r1   r2   r3   affine_transformr   r6   r/   r8   r^   s       r$   test_affine_transform01z0TestNdimageInterpolation.test_affine_transform012  sD    x}}&tqcU%@@@!#s+++++r'   c                     t          j        dg          }t          j        |dgg|          }t	          |g d           d S )Nr   r
   rY   rh   r1   r[   r3   r)  r   r*  s       r$   test_affine_transform02z0TestNdimageInterpolation.test_affine_transform028  sF    ws||&tqcU%@@@!#|||44444r'   c                     t          j        dg          }t          j        |dggd|          }t	          |g d           d S )Nr   r
   r   rY   r}   r-  r*  s       r$   test_affine_transform03z0TestNdimageInterpolation.test_affine_transform03>  sH    ws||&tqcUBeDDD!#|||44444r'   c                     t          j        g d          }t          j        |dggd|          }t	          |g d           d S )Nr   r
   r   rY   r   r(  r*  s       r$   test_affine_transform04z0TestNdimageInterpolation.test_affine_transform04D  sL    x%%&tqcUBeDDD!#|||4444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ddggddg|	          }t          ||           d S )
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     x%%'.35 5 5 8\\\)\\)\\+279 9 9 :?c!!BIDX%H&tq!fq!f-=()2we= = =!#x0000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           d S )Nr   r   r   r
   r   r   rY   r   r   r   r(  r*  s       r$   test_affine_transform06z0TestNdimageInterpolation.test_affine_transform06Z  s    x%%' ( ( &tq!fq!f-=()2we= = =!#(4(4(6 	7 	7 	7 	7 	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           d S )	Nr   r   r   r
   r   r   rY   r   r(  r*  s       r$   test_affine_transform07z0TestNdimageInterpolation.test_affine_transform07e  s    x%%' ( ( &tq!fq!f-=(*Awe= = =!#(4(4(6 	7 	7 	7 	7 	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           d S )Nr   r   r   r
   r   r   rY   r   r   r   r(  r*  s       r$   test_affine_transform08z0TestNdimageInterpolation.test_affine_transform08p  s    x%%' ( ( &tq!fq!f-=(*Bxu> > >!#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        g dg dg dg          }|dk    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           d S )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    x%%' ( ( AII,T???HHH&x1a&1a&1A(*Bxu168 8 8 	"#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        dgt           j                  }t          j        |dggd|          }t          |g d           d S )Nr(   r    r=   )r.   r/   r
   r
   r
   r   )r1   r[   r   r3   r)  r   r*  s       r$   test_affine_transform10z0TestNdimageInterpolation.test_affine_transform10  sU    wsBJ''&tseW4-24 4 4!#|||44444r'   c                 h    g d}t          j        |dggdd|          }t          |g d           d S )Nr   r(   r   r=   rY   r<   r3   r)  r   r*  s       r$   test_affine_transform11z0TestNdimageInterpolation.test_affine_transform11  sF    '''&tqcUAt5III!#|||44444r'   c                 z    g d}t          j        |dggdd|          }t          |d d d         g d           d S )Nr<   r    r   r   rY   r(   rC  r*  s       r$   test_affine_transform12z0TestNdimageInterpolation.test_affine_transform12  sN    ||&tseWaUKKK!#ccc(LLL9999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           d S )Nr<   r   r   r
   r   r(   r   rY   r)   r   r+   r   r   rC  r*  s       r$   test_affine_transform13z0TestNdimageInterpolation.test_affine_transform13  sz    !!!# &tq!fq!f-=q&-24 4 4!#AAB'@AAAAAr'   c                     g dg dg dg}t          j        |ddgddggdd|          }t          |g dg           d S )	Nr<   r   r   r(   r   r
   r   rY   rC  r*  s       r$   test_affine_transform14z0TestNdimageInterpolation.test_affine_transform14  sk    ! &tq!fq!f-=q&-24 4 4!#~66666r'   c                     g dg dg dg}t          j        |ddgddggdd|          }t          |dd	gg           d S )
Nr<   r   r   r(   r   r   rY   r
   r)   rC  r*  s       r$   test_affine_transform15z0TestNdimageInterpolation.test_affine_transform15  sk    ! &tq!fq!f-=q&-24 4 4!#Ax0000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         |           d S )Nr<   r   r   r
           r   r    r   rY   .r(   rC  r*  s       r$   test_affine_transform16z0TestNdimageInterpolation.test_affine_transform16  ss    ! &tq#hC-A1'-U< < <!#c33Q3h-6666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         |           d S )Nr<   r   r   r    r   r
   r   rY   r(   .rC  r*  s       r$   test_affine_transform17z0TestNdimageInterpolation.test_affine_transform17  ss    ! &tsAhA-?'-U< < <!#ccc3h-6666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         |           d S )	Nr<   r   r   r    r   r   rY   r(   rC  r*  s       r$   test_affine_transform18z0TestNdimageInterpolation.test_affine_transform18  sy    ! &tsAhC-A1'-U< < <!#ccc33Q3h-6666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          ||           d S )
Nr<   r   r   r    r   r   rY          @r   )r1   r2   r   r3   r)  r   r*  s       r$   test_affine_transform19z0TestNdimageInterpolation.test_affine_transform19  s    x%(*+-:7 7 &tsAhC-A1'-U< < <&sc1X3x,@!'-U< < <!#t,,,,,r'   c                 z    g dg dg dg}t          j        |dgdggdd|          }t          |dd	g           d S )
Nr<   r   r   r   r(   r   rY   r
   r)   rC  r*  s       r$   test_affine_transform20z0TestNdimageInterpolation.test_affine_transform20  d    ! &tqcA3ZD-24 4 4!#1v.....r'   c                 z    g dg dg dg}t          j        |dgdggdd|          }t          |dd	g           d S )
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           d S )Nr   r(   r   )r)   rY   r   r
   r(   r(  r*  s       r$   test_affine_transform22z0TestNdimageInterpolation.test_affine_transform22  sY     x%%&tqcURD$-24 4 4!#yyy11111r'   c                     t          j        g d          }t          j        |dggdgd|          }t	          |d d d         g d           d S )Nr   r    r   rF  rY   r(   r   r(  r*  s       r$   test_affine_transform23z0TestNdimageInterpolation.test_affine_transform23  sc     x%%&tseWrdD-24 4 4!#ccc(LLL99999r'   c                 :   t          j        g d          }t                      5 }|                    t          d           t          j        |dgd|          }d d d            n# 1 swxY w Y   t          j        |dggd|          }t          ||           d S )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     x%%   	HCJJ{%& & & +D1#rGGGD		H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H
 'seRuEEE!$-----   5A&&A*-A*c                 :   t          j        g d          }t                      5 }|                    t          d           t          j        |dgd|          }d d d            n# 1 swxY w Y   t          j        |dggd|          }t          ||           d S )Nr   rc  r    r   rY   rd  rg  s         r$   test_affine_transform25z0TestNdimageInterpolation.test_affine_transform25  s     x%%   	JCJJ{%& & & +D3%5IIID		J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J
 'ugrGGG!$-----rj  c                 &   t          j        g dg dg dg          }|dk    rt          j        ||          }n|}t          j        d          }t          j        d           }t          j        ||f          }t          j        |g dgf          }t          j        |||	                                |d	
          }t          j        |||d	
          }	t          j        |||d	
          }
||	|
fD ]}t          |g dg dg dg           d S )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  sf    x(LL(LL* + + AII,T???HHH76??*9no>??9h455'.(7(=(=(?(?.3uF F F '(%279 9 9'(%279 9 9$% 	; 	;C%cLLL,8LL,8LL,: ; ; ; ;	; 	;r'   c                 *   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	        ||           d S )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  s    x%%' ( ( 9bfQii"'&//)9:;;9h455j'":D(KKKKKr'   c                     t          j        d          }t          j        |          t          j        |                              |j                                                  |j        |j                                        fD ]x}t                      5 }|                    t          d           t          j
        |ddg|          }d d d            n# 1 swxY w Y   ||n|}t          |ddgddgg           yd S )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<  sU    wvM$''M$''..tz/F/F/H/HIIJ
 7 7 9 9; 		@ 		@C #$$ N

;,- - - #3D1a&MMM	N N N N N N N N N N N N N N N
 %,SS(F%f1v1v.>????		@ 		@s   5CC	C	c                 v   t          j        dg          }|j        |j                                        t          j        |          t          j        |                              |j                                                  fD ]2}t          j        |dgg|          }||n|}t          |dg           3d S )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     x}}J
 7 7 9 9M$''M$''..tz/F/F/H/HIIK 	3 	3C /seCHHHH$,SS(F%fqc2222	3 	3r'   c                 h   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            d S # 1 swxY w Y   d S )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    y"*---genn uS9999!#bqb'4000 ]<(( 	= 	=$seCe= = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   ?B''B+.B+c                     t          j        dg          }t          j        |dggd          }t	          |j        t          j        d          u            t          |dg           d S r  )r1   r2   r3   r)  r   rB   r   r  s      r$   (test_affine_transform_with_string_outputzATestNdimageInterpolation.test_affine_transform_with_string_outputc  sa    x}}&tqcU3???	RXc]]*+++!#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	                     d S )
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    
 Hq!f!f  &!!rr2A2vqqq!t!$Q[NNNGAu6***	
 	
 	
 	
 	
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                    d S )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     Hiiiii! " "&!!rr2A2vwqqq!t!$QYeLLLdddDDbDjM	
 	
 	
 	
 	
r'   c                     t          j        dg          }t          j        |dg|          }t	          |dg           d S )Nr
   rY   r   r1   r2   r3   r%   r   r*  s       r$   test_shift01z%TestNdimageInterpolation.test_shift01  sA    x}}mD1#U333!#s+++++r'   c                     t          j        dg          }t          j        |dg|          }t	          |g d           d S )Nr   r
   rY   r}   r1   r[   r3   r%   r   r*  s       r$   test_shift02z%TestNdimageInterpolation.test_shift02  sC    ws||mD1#U333!#|||44444r'   c                     t          j        dg          }t          j        |d|          }t	          |g d           d S )Nr   r   rY   r@  r  r*  s       r$   test_shift03z%TestNdimageInterpolation.test_shift03  sA    ws||mD"E222!#|||44444r'   c                     t          j        g d          }t          j        |d|          }t	          |g d           d S )Nr   r
   rY   r   r  r*  s       r$   test_shift04z%TestNdimageInterpolation.test_shift04  sE    x%%mD!5111!#|||4444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          ||           d S )	Nrh   rA   r}   r   r   r   r
   rY   r1   r2   rB   r   r3   r%   r   r4  s         r$   test_shift05z%TestNdimageInterpolation.test_shift05  s     x%%'.35 5 5 8\\\)\\)\\+279 9 9 :?c!!BIDX%HmD1a&666!#x0000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          ||           d S )
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     x%%'.35 5 5 8\\\)\\)\\+279 9 9 :?c!!BIDX%HAmD1a&DtLLL!#x00000r'   c                     t          j        g dg dg dg          }t          j        |ddg|          }t	          |g dg dg d	g           d S )
Nr   r   r   r   r
   rY   r   r   r   r  r*  s       r$   test_shift06z%TestNdimageInterpolation.test_shift06      x%%' ( ( mD1a&666!#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        g dg dg dg          }t          j        |ddg|          }t	          |g dg dg dg           d S )Nr   r   r   r
   r   rY   r   r  r*  s       r$   test_shift07z%TestNdimageInterpolation.test_shift07  s    x(LL(LL* + + mD1a&666!#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        g dg dg dg          }t          j        |ddg|          }t	          |g dg dg dg           d S )	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k    rt          j        ||          }n|}t          j        |ddg|d          }t          |g dg d	g d
g           d S )Nr   r   r   r
   rY   Fr   r   r   r   )r1   r2   r3   r\   r%   r   r=  s        r$   test_shift09z%TestNdimageInterpolation.test_shift09  s    x%%' ( ( AII,T???HHHmHq!fEUKKK!#(4(4(6 	7 	7 	7 	7 	7r'   c                     t          j        ddgddgg          }t          t          j        ||d|          t          j        ||d                     d S )	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  sm    
 Hq!f!f  !M!UEBBBGAu6***	
 	
 	
 	
 	
r'   c           	          t          j        d                              d          }t          t	          j        ||d|          t	          j        ||d|                     d S )N   )r   r   r   r   r   )r1   rK   r   r   r3   r%   r  s       r$   test_shift_grid_constant1z2TestNdimageInterpolation.test_shift_grid_constant1  sg    
 IbMM!!&))!M!UFFFM!U5AAA	
 	
 	
 	
 	
r'   c                     t          j        g dg dgt                    }t          j        g dg dg          }t          t	          j        |ddd	          |           d S )
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  s    Hiiiii!(-/ / /($6$6$6$6$6$6$8 9 9!M!ZoQGGG	
 	
 	
 	
 	
r'   c                     t          j        g dg dg          }t          t          j        ||j        d|          |d d dd d df                    d S )Nr^  r  r   r   r   )r1   r2   r   r3   r%   rr   )r6   r/   r#   s      r$   test_shift_reflectz+TestNdimageInterpolation.test_shift_reflect  sr     Hiiiii! " "!M!QW9EBBBdddDDbDjM	
 	
 	
 	
 	
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                    d S )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    
 IbMM9EYGGG!M!UaZ!^66v66q91Q4	
 	
 	
 	"M!eVq[1_7777;QrU	
 	
 	
 	
 	
r'   c                    t          j        dt                                        dd          }d}d}t                              |          }t          j        |||          }t          t          ||           g|j	        z            }t          j        ||||          |         }	t          t          j        ||||          |	d	           d S )
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     Ic'''//B77 (,,T22VAt(+++eD4%001AF:;;!-D/ / //;= 	M!UU;;;	
 	
 	
 	
 	
 	
r'   c           	         dddgfD ]}t          j        t          t          d                                                  d                              t                    }t          j        |||          }t          |j
        d           t          t          j        |dd d f         dk                         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                         d S )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:  sI   aV 	/ 	/A(4b		??++33F;;BB5IIC,sAU333CH---BF3r111u:?++,,,BF3r111u:"s(344555BF3q!!!t9S122333BF31s7+,,---BF328,--....	/ 	/r'   c                     t          j        d                              d          }t          j        t          j        |d          d          }t          ||           d S )Nr   r   r(   r    )r1   rK   r   r3   r  r   )r6   r  r^   s      r$   
test_zoom2z#TestNdimageInterpolation.test_zoom2F  sP    imm##F++l7<Q//5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                     d S )Nr
   r(   rn  r   )r
   r
   r(   r(   )r1   r2   r3   r  r   )r6   r  r  r  s       r$   
test_zoom3z#TestNdimageInterpolation.test_zoom3K  s    hAx  |C((|C((!$1a&1a&1A(B(BCCC!$,,,(@(@AAAAAr'   c                 h   t          j        g dg dg dg|          }|j        j        dk    r|d|z  z  }t	                      5 }|                    t          d           t          j        |ddgd	d
|          }d d d            n# 1 swxY w Y   t          |d d dd d df         |           d S )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  s7    z<<<*ll-oo/6;= = = :?c!!BID   	@CJJ{%& & & *4#sQ+1@ @ @C		@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	"#ccc33Q3h-66666s   7B		BBc                 f    d}t          j        t          j        ||f          d|z  d           d S )Nr         ?r   rG   )r3   r  r1   r  )r6   dims     r$   test_zoom_infinityz+TestNdimageInterpolation.test_zoom_infinityc  s6    RXsCj))28)DDDDDDr'   c                     t          j        d          }d}t          j        ||d          }t          j        d          }t	          ||           d S )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  sQ    hy!!l31---h{##!#s+++++r'   c                     t          j        d          }d}t          j        ||          }t	          |j        d           d S )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  s?    h{##.l3%%39k2222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        |                               d S )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  sz     Hq!fQ!(-/ / / 	"LD555GArwt}}%%	
 	
 	
 	
 	
r'   rr   r  )r   r   )r   r   r   r   r   c           	         t          j        t          j        |          t                                        |          }t          t          j        ||d|d          t          j        |t          j	        |                               d S )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     IbgennE222::5AA!LDEEEGArwt}}%%	
 	
 	
 	
 	
r'   c                     t          j        dt                                        d          }t	          j        t          d          5  t          j        |d|d          f d d d            d S # 1 swxY w Y   d S )	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  s     Iau%%%--f55\+ ?A A A 	; 	;LADD999::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   
A11A58A5c                     t          j        g dg dg dgt           j                  }t          j        |d|          }t          ||           d S )Nr   r   r
   r
   r   rA   r   rY   r1   r2   r   r3   rotater   r*  s       r$   test_rotate01z&TestNdimageInterpolation.test_rotate01  sd    x%%'.0j: : : nT1E22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          ||           d S )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  s    x%%'.0j: : : 8YYY%II%II%II' /1j: : : nT2U333!#x0000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          ||           d S )
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     x((*168 8 8 8YYY%II%II%II%II	' /4	5 5 5
 :?c!!BIDX%HnT2U333!#x0000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          ||           d S )Nr  r  rA   r   r   r
   r   r   r  F)r   r/   r  r  s        r$   test_rotate04z&TestNdimageInterpolation.test_rotate04  s    x((*13= = = 8___,__,__.57ZA A A nT2uEBBB!#x00000r'   c                    t          j        d          }t          d          D ]8}t          j        g dg dg dg dgt           j                  |d d d d |f<   9t          j        g dg dg dgt           j                  }t          j        |d|	          }t          d          D ]}t          |d d d d |f         |            d S )
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   x	""q 	D 	DAHiii&/ii&/ii&/ii&1 9;
D D DDAAAqMM 8\\\)\\)\\+24*> > > nT2U333q 	> 	>A%c!!!QQQ'lH====	> 	>r'   c                    t          j        d          }t          d          D ]5}t          j        g dg dg dgt           j                  |d d d d |f<   6t          j        g dg dg dg dgt           j                  }t          j        |d|	          }t          d          D ]}t          |d d d d |f         |            d S )
N)r)   r   r)   r)   r   r  rA   r  r  r  rY   r  r  s         r$   test_rotate06z&TestNdimageInterpolation.test_rotate06  s   x	""q 	G 	GAHlll&2ll&2ll&4;=:G G GDAAAqMM 8YYY&YY&YY&YY( 02z; ; ; nT2U333q 	> 	>A%c!!!QQQ'lH====	> 	>r'   c                 l   t          j        g dg dg dggdz  t           j                  }|                                }t          j        g dg dg dg dg dggdz  t           j                  }|                    g d          }t	          j        |dd	|
          }t          ||           d S )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    x///)//)//+ ,./079zC C C ~~8iii'ii'ii'ii'ii	) * -.	. 68Z	A A A
 %%iii00nT2F%@@@!#x00000r'   c                 \   t          j        g dg dg dggdz  t           j                  }|                                }t          j        g dg dg dggdz  t           j                  }|                                }t	          j        |ddd|	          }t          ||           d S )
Nr  r  r(   rA   r  r  r  F)r  r   r/   r  r  s        r$   test_rotate08z&TestNdimageInterpolation.test_rotate08  s    x///)//)//+ ,./079zC C C ~~8ooo-oo-oo/ 0234;=:G G G %%''nT2FEOOO!#x0000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            d S # 1 swxY w Y   d S )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    x((*,-.57ZA A A :&& 	: 	:N41di.9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   A--A14A1c           
      B   t          j        dt           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          ||           d S )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    y2:...66yAA 8ooo-ooBBBEEE-oo	/
 CBBBBB000BBBEEE	G
 .ooEEEEEE-oo-oo	/0 1 1  nTU;;;!#x00000r'   c                     t          j        t          j        d          d          }t          j        t          j        |d          d          }t          ||           d S )Nr   )r   r
      iL)r1   tilerK   r3   r  r   )r6   r   r   s      r$   test_rotate_exact_180z.TestNdimageInterpolation.test_rotate_exact_180&  sN    GBIaLL&))N7>!S1148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00	1
555	6
:::	;
777	8
666	7
555	6
;;;	<	>	 	E E	 	E [
\\\	"
,,,	
|||	$
LLL	!
\\\	"
mmm	$
===	)	+	 	< <	 	< [V &1 &1 &1 2 2 [WeeAhh//; ; 0/2 2;  [WeeAqkk22[We,,* * -, 32*
 [WeeAqkk22[We,,, , -, 32,
 [WeeAqkk22[We,,* * -, 32*
 [WeeAqkk22[We,,5 5 -, 325
 [WeeAqkk22[We,,7 7 -, 327 [WeeAqkk22, , 32, [WeeAqkk225 5 325 [WeeAqkk225 5 325 [WeeAqkk225 5 325 [WeeAqkk22[Wrz2=&ABB1 1 CB 321$ [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk227 7 327$ [WeeAqkk225 5 325 [WeeAqkk225 5 325 [WeeAqkk22: : 32: [WeeAqkk22
B 
B 32
B [WeeAqkk22
7 
7 32
7 [WeeAqkk22
1 
1 32
1 [WeeAqkk22
7 
7 32
7 [WeeAqkk22
7 
7 32
7 [WeeAqkk22
7 
7 32
7 [WeeAqkk22- - 32-" [WeeAqkk22
/ 
/ 32
/ [WeeAqkk22/ / 32/
 
 
  [V &; &; &; < <[WeeAhh//
 
 0/< <
,3 3 3 , , , [WeeAqkk22[Wrz2=&ABB1 1 CB 321" [WeeAqkk22	. 	. 32	.L L L(8 8 8". . . [3</J7271::3F3J 4  5 5	D 	D5 5	D [WeeAqkk22, , 32,
 [WeeAqkk225 5 325
 [WeeAqkk225 5 325
 [WeeAqkk225 5 325
 [WeeAqkk22[Wrz2=&ABB1 1 CB 321 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk225 5 325 [WeeAqkk225 5 325
 [WeeAqkk22: : 32:
 [WeeAqkk22B B 32B [WeeAqkk227 7 327 [WeeAqkk221 1 321 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk22- - 32- [WeeAqkk22/ / 32/ [WeeAqkk22/ / 32/ [WeeAqkk222 2 322 [WeeAqkk22: : 32: [WeeAqkk22	. 	. 32	. [WeeAqkk22	. 	. 32	. [WeeAqkk22; ; 32;2L L L@ @ @	3 	3 	3= = =, , , [WGGGI I[WeeAqkk22

 

 32I I

 [WeeAqkk22

 

 32

 [WeeAqkk22, , 32,
 [WeeAqkk225 5 325
 [WeeAqkk225 5 325
 [WeeAqkk225 5 325
 [WeeAqkk22[Wrz2=&ABB1 1 CB 321 [WeeAqkk22[Vj/%BCC[Wrz2=&ABB1 1 CB DC 321" [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WeeAqkk227 7 327 [WGGGI I[WeeAqkk22
 
 32I I
 [WGGGI I[WeeAqkk22
 
 32I I

 
 
 [WeeAqkk22
 
 32
 [WeeAqkk22[[5$-88

 

 98 32

 [V &; &; &; < <[WeeAhh//
 
 0/< <
$ [WeeAqkk22	/ 	/ 32	/% % %
B B B [WeeAqkk22[Wrz2=&ABB7 7 CB 327E E E
, , ,3 3 3 [V%E%E%EFF[V &7 &7 &7 8 8
 
8 8 GF
 [Wvv&677[V%E%E%EFF[V &D &D &D E E
 
E E GF 87
 [Vj&%9::; ; ;:; [WeeAqkk22- - 32- [WeeAqkk22	1 	1 32	1 [WeeAqkk22[Wrz2=&ABB1 1 CB 321 [WeeAqkk221 1 321 [WeeAqkk22> > 32> [WeeAqkk22> > 32> [WeeAqkk221 1 321 [WeeAqkk22
1 
1 32
1: : :1 1 1.    r'   r   c                      t          j        d                              d          } t          j        | dt          j        d                     dS )zTicket #643r   r   r(   r   rd   N)r1   rK   r   r3   r  r  r"   s    r$   test_zoom_output_shaper  ,  sD    
	"f%%ALAbhv..//////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     s   



    . . . . . . . . . . . . . . . .  * * * * * *               P P P P P P P Pf(0 0 0 0 0r'   