+
    /ij                        ^ RI t ^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
Ht ^ RIt^ RIHt ^ RIHt ^RIHt ]P&                  P(                  t]P&                  P*                  tRtRRRRR	RR
RRRRR/t ! R R4      t]! ]P2                  4      ]P&                  P5                  R]! ^^4      4      ]P&                  P5                  R]4       ! R R4      4       4       4       t]! ]P:                  4      ]P&                  P5                  R]! ^ ^4      4       ! R R4      4       4       t]! ]P:                  4       ! R R4      4       t]! ]P@                  4       ! R R4      4       t!]! ]PD                  4       ! R R4      4       t#]! ]PH                  4       ! R R4      4       t%]! ]PL                  4       ! R  R!4      4       t']! ]PP                  4       ! R" R#4      4       t)R# )$    N)_asarrayassert_array_almost_equalis_jax	np_compatxp_assert_equalxp_assert_closemake_xp_test_case)raises)types-q=mirrorreflect	symmetricgrid-mirror	grid-wrapwrapnearestedgegrid-constantconstantc                   D  a  ] tR t^#t o ]! ]P                  4      ]P                  P                  RR. RO3R. RO3R. RO3R. RO3R. RO3R. RO3R. RO3.4      R	 4       4       t
]! ]P                  4      ]P                  P                  RR. RO3R. RO3R. RO3R. RO3R. RO3R. RO3R. RO3.4      R
 4       4       t]! ]P                  4      ]P                  P                  R. RO4      ]P                  P                  R]! ^4      4      R 4       4       4       tRtV tR# )TestBoundarieszmode, expected_valuer   r   r   r   r   r   r   c                    R  pVP                  . RO4      p\        \        P                  ! WTRVR^R7      VP                  V4      4       R# )c                 $    V ^ ,          R,           3# r         ? xs   &d/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/ndimage/tests/test_interpolation.pyshift-TestBoundaries.test_boundaries.<locals>.shift1       aD3J=     )cvalmodeoutput_shapeorderN)               @)   asarrayr   ndimagegeometric_transformselfr&   expected_valuexpr!   datas   &&&&  r    test_boundariesTestBoundaries.test_boundaries%   sE    	! zz-(''"459DJJ~&	(r$   c           
         R  pVP                  . RO4      p\        \        P                  ! WTRVRR7      VP                  V4      4       R# )c                 $    V ^ ,          R,
          3# )r   g?r   r   s   &r    r!   .TestBoundaries.test_boundaries2.<locals>.shiftF   r#   r$   )r%   r&   r'   Nr)   r*   r+      r-   r>   r/   r3   s   &&&&  r    test_boundaries2TestBoundaries.test_boundaries2:   sB    	! zz,'''"459;JJ~&	(r$   r&   r(   c                   \        V4      '       d%   VR9  g   V^8  d   \        P                  ! R4       \        P                  ! R^\        P
                  R7      pVP                  V4      pVP                  \        P                  ! R^RR7      4      p\        P                  ! WVVP                  R3,          W!R7      p^ p\        P                  V4      p	VP                  \        P                  ! WHV	R7      4      p
VP                  W,           4      VP                  R3,          p\        P                  ! WW!R7      pVR8X  d   R	MR
p\        W|RVR7       R# )z$Tests based on examples from gh-2640z-Jax does not support grid- modes or order > 1dtypei  )num.r(   r&   r&   r   gh㈵>r   Hz>rtolatolN)r   r   r   r   r   ii)r   pytestxfailnparangefloat64r0   linspacer1   map_coordinatesnewaxisndimage_to_numpy_modegetpadr   )r4   r&   r(   r6   np_datar7   r   ynpadpad_modepaddedcoordsexpectedrK   s   &&&&          r    test_boundary_spline_accuracy,TestBoundaries.test_boundary_spline_accuracyO   s    2JJMM	LLHI))B4zz'"JJr{{2rt45##DBJJO*<EU (,,T2BFF7x@ADH%bjj#o6**6R.tE$T:r$   r   N)      ?      @      @r>   r>   r>   r>   )r`   ra   rb   r`   ra   rb   r`   )r`   ra   rb   ra   r`   ra   rb   )r`   ra   rb   rb   ra   r`   r`   )r`   ra   rb   r>   rb   ra   r`   )r`   ra   rb   r-   r-   r-   r-   )r`   ra   rb   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   )__name__
__module____qualname____firstlineno__r	   r1   r2   rL   markparametrizer8   r@   rR   ranger^   __static_attributes____classdictcell____classdict__s   @r    r   r   #   sR    w223[[
0	1
5	6
:	;
7	8
6	7
5	6
;	<	>	(	 4( w223[[
\	"
,	
|	$
L	!
\	"
m	$
=	)	+	(	 4( w../[[V &1 2 [[WeAh/; 02 0
;r$   r   r(   rD   c                   \   a  ] tR t^lt o R tR t]! RR.RR7      R 4       tR tR	 t	R
t
V tR# )
TestSplinec                    \        W14      pVP                  . VR 7      p\        P                  ! WBR7      pWSP	                  ^VP
                  R 7      8X  g   Q hR# )rC   r(   Ngetattronesr1   spline_filterr0   rD   r4   rD   r(   r6   r7   outs   &&&&  r    test_spline01TestSpline.test_spline01q   sK    "wwrw'##D6jj#))j4444r$   c                    \        W14      pVP                  ^.VR7      p\        P                  ! WBR7      p\	        WSP                  ^.4      4       R# )r)   rC   rq   N)rs   r0   r1   ru   r   rv   s   &&&&  r    test_spline02TestSpline.test_spline02w   sB    "zz1#Uz+##D6!#zz1#7r$   Tcupyzoutput=dtype is numpy-specific)np_only
exceptionsreasonc                    \        W14      pVP                  . VR 7      p\        P                  ! WBVR7      pWSP	                  ^VP
                  R 7      8X  g   Q hR# )rC   outputNrr   rv   s   &&&&  r    test_spline03TestSpline.test_spline03}   sO     "wwrw'##D>jj#))j4444r$   c                    \        W14      pVP                  ^.VR7      p\        P                  ! WB4      p\	        WSP                  . RO4      4       R# )r>   rC   Nr)   r)   r)   r)   )rs   rt   r1   ru   r   r0   rv   s   &&&&  r    test_spline04TestSpline.test_spline04   sA    "wws%w(##D0!#zz,'?@r$   c                    \        W14      pVP                  ^^.VR7      p\        P                  ! WBR7      pVP	                  . RO. RO. RO. RO.4      p\        WV4       R# )r>   rC   rq   Nr   )rs   rt   r1   ru   r0   r   )r4   rD   r(   r6   r7   rw   r]   s   &&&&   r    test_spline05TestSpline.test_spline05   sZ    "ww1vUw+##D6::|+++- . 	"#0r$   r   N)rc   rd   re   rf   rx   r{   skip_xp_backendsr   r   r   rj   rk   rl   s   @r    ro   ro   l   sA     
58 dx=?5?5A1 1r$   ro   c                      a  ] tR t^t o R tR tR tR t]P                  P                  RRR.4      R 4       tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestGeometricTransformc                    VP                  ^.4      pR p\        P                  ! W4VP                  VR7      p\	        WRP                  ^.VP
                  R7      4       R# )r)   c                     V # Nr   r   s   &r    mappingBTestGeometricTransform.test_geometric_transform01.<locals>.mapping       Hr$   rq   rC   Nr0   r1   r2   shaper   rD   r4   r(   r6   r7   r   rw   s   &&&   r    test_geometric_transform011TestGeometricTransform.test_geometric_transform01   sN    zz1#	 ))$057!#zz1#SYYz'GHr$   c                    VP                  ^.4      pR p\        P                  ! W4VP                  VR7      p\	        WRP                  . ROVP                  R7      4       R# )r>   c                     V # r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform02.<locals>.mapping   r   r$   rq   rC   Nr   rt   r1   r2   r   r   r0   rD   r   s   &&&   r    test_geometric_transform021TestGeometricTransform.test_geometric_transform02   sL    wws|	 ))$057!#zz,ciiz'PQr$   c                    VP                  ^.4      pR p\        P                  ! W4VP                  VR7      p\	        WRP                  . ROVP                  R7      4       R# )r>   c                 $    V ^ ,          ^,
          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform03.<locals>.mapping       aD1H;r$   rq   rC   Nr   r)   r)   r)   r   r   s   &&&   r    test_geometric_transform031TestGeometricTransform.test_geometric_transform03   sL    wws|	 ))$057!#zz,ciiz'PQr$   c                    VP                  . RO4      pR p\        P                  ! W4VP                  VR7      p\	        WRP                  . ROVP
                  R7      4       R# )r>   c                 $    V ^ ,          ^,
          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform04.<locals>.mapping   r   r$   rq   rC   Nr>   r)   r+   r*   r   r>   r)   r+   r   r   s   &&&   r    test_geometric_transform041TestGeometricTransform.test_geometric_transform04   sK    zz,'	 ))$057!#zz,ciiz'PQr$   rD   rP   
complex128c                r   \        W24      pVP                  . RO. RO. RO.VR7      pVP                  . RO. RO. RO.VR7      pVP                  VP                  R4      '       d!   VRV,          ,          pVRV,          ,          pR p\        P
                  ! WFVP                  VR7      p\        Wu4       R# )	r)   rC   complex floating              ?c                 4    V ^ ,          V ^,          ^,
          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform05.<locals>.mapping       aD!A$(##r$   rq   Nr   r   )rs   r0   isdtyperD   r1   r2   r   r   )r4   r(   rD   r6   r7   r]   r   rw   s   &&&&    r    test_geometric_transform051TestGeometricTransform.test_geometric_transform05   s    "zz<'')05  7 ::|++-49  ; ::djj"455BIDX%H	$ ))$057!#0r$   c                    VP                  . RO. RO. RO.4      pR p\        P                  ! W4VP                  VR7      pVP                  . RO. R	O. R
O.VP                  R7      p\        WV4       R# )r>   c                 4    V ^ ,          V ^,          ^,
          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform06.<locals>.mapping   r   r$   rq   rC   Nr   r.            r+   r   r+   r   r   r   r.   r   r   r   r+   r   r+   r0   r1   r2   r   rD   r   r4   r(   r6   r7   r   rw   r]   s   &&&    r    test_geometric_transform061TestGeometricTransform.test_geometric_transform06   p    zz<'') *	$ ))$057::|++-47II  ? 	"#0r$   c                    VP                  . RO. RO. RO.4      pR p\        P                  ! W4VP                  VR7      pVP                  . RO. RO. RO.VP                  R7      p\        WV4       R# )	r>   c                 4    V ^ ,          ^,
          V ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform07.<locals>.mapping       aD1Had##r$   rq   rC   Nr   r   r   r   r   r   r   r   r   s   &&&    r    test_geometric_transform071TestGeometricTransform.test_geometric_transform07   r   r$   c                    VP                  . RO. RO. RO.4      pR p\        P                  ! W4VP                  VR7      pVP                  . RO. R	O. R
O.VP                  R7      p\        WV4       R# )r>   c                 B    V ^ ,          ^,
          V ^,          ^,
          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform08.<locals>.mapping       aD1HadQh''r$   rq   rC   Nr   r   r   r   r   r   r   r   s   &&&    r    test_geometric_transform081TestGeometricTransform.test_geometric_transform08   sp    zz<'') *	( ))$057::|++-47II  ? 	"#0r$   c                ,   VP                  . RO. RO. R	O.4      pR pV^8  d   \        P                  ! W1R7      pMTp\        P                  ! WTVP                  VRR7      pVP                  . R
O. RO. RO.VP
                  R7      p\        Wg4       R# )r>   c                 B    V ^ ,          ^,
          V ^,          ^,
          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform10.<locals>.mapping	  r   r$   rq   Fr(   	prefilterrC   Nr   r   r   r   r   r   )r0   r1   ru   r2   r   rD   r   )r4   r(   r6   r7   r   filteredrw   r]   s   &&&     r    test_geometric_transform101TestGeometricTransform.test_geometric_transform10  s    zz<'') *	( AI,,T?HH))(TZZ05H::|++-47II  ? 	"#0r$   c                    VP                  ^.VP                  R7      pR p\        P                  ! W4^.VR7      p\	        WRP                  . ROVP                  R7      4       R# )r*   rC   c                 $    V ^ ,          ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform13.<locals>.mapping  s    aDAI<r$   rq   Nr   )rt   rP   r1   r2   r   r0   rD   r   s   &&&   r    test_geometric_transform131TestGeometricTransform.test_geometric_transform13  sP    wws"**w-	  ))$!EJ!#zz,ciiz'PQr$   c                    VP                  . RO4      pR p\        P                  ! W4^.VR7      p\        WRP                  . ROVP                  R7      4       R# )r)   c                 $    ^V ^ ,          ,          3# r*   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform14.<locals>.mapping#  s    !H;r$   rq   rC   Nr)   r   r*   r   r+   r.   r>   r>   r=   )r0   r1   r2   r   rD   r   s   &&&   r    test_geometric_transform141TestGeometricTransform.test_geometric_transform14   sG    zz23	 ))$!EJ!#zz,ciiz'PQr$   c                    VP                  . RO4      pR p\        P                  ! W4^.VR7      p\        VR,          VP                  . RO4      4       R# )r)   c                 $    V ^ ,          ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform15.<locals>.mapping,  r   r$   rq   NNr*   Nr=   r0   r1   r2   r   r   s   &&&   r    test_geometric_transform151TestGeometricTransform.test_geometric_transform15)  sD    zz,'	 ))$!EJ!#c(BJJ|,DEr$   c           	         . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR7      p\        WRP                  ^^.^^.^	^..4      4       R# )r)   c                 4    V ^ ,          V ^,          ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform16.<locals>.mapping8  r   r$   rq   Nr=   r   r   r.   r   g      "@
         r+   r*   r   r   s   &&&   r    test_geometric_transform161TestGeometricTransform.test_geometric_transform162  sd    !# zz$	$ ))$057!#zzAq6Aq6Ar72K'LMr$   c                    . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR7      p\        WRP                  . RO.4      4       R# )r)   c                 4    V ^ ,          ^,          V ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform17.<locals>.mappingE  r   r$   rq   Nr=   r   	   r   r   r   r)   r>   r   r   s   &&&   r    test_geometric_transform171TestGeometricTransform.test_geometric_transform17?  sS    ! zz$	$ ))$057!#zz<.'ABr$   c                    . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR7      p\        WRP                  ^^..4      4       R# )r)   c                 B    V ^ ,          ^,          V ^,          ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform18.<locals>.mappingR  r   r$   rq   Nr=   r   r   r)   r*   r   r   s   &&&   r    test_geometric_transform181TestGeometricTransform.test_geometric_transform18L  sW    ! zz$	( ))$057!#zzAq6(';<r$   c                    . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR7      p\        VR,          V4       R# )	r)   c                 4    V ^ ,          V ^,          ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform19.<locals>.mapping_  r   r$   rq   Nr=   r   r   r+   r   .r   r   r   s   &&&   r    test_geometric_transform191TestGeometricTransform.test_geometric_transform19Y  N    ! zz$	$ ))$057!#h-6r$   c                    . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR7      p\        VR,          V4       R# )	r)   c                 4    V ^ ,          ^,          V ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform20.<locals>.mappingl  r   r$   rq   Nr=   r   r   r   r>   r   .r   r   s   &&&   r    test_geometric_transform201TestGeometricTransform.test_geometric_transform20f  r  r$   c                    . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR7      p\        VR,          V4       R# )	r)   c                 B    V ^ ,          ^,          V ^,          ^,          3# r   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform21.<locals>.mappingy  r   r$   rq   Nr=   r   r   r   r   r   r   r   r   s   &&&   r    test_geometric_transform211TestGeometricTransform.test_geometric_transform21s  sN    ! zz$	( ))$057!#h-6r$   c                    . RO. RO. RO.pVP                  W2P                  R7      pR pR p\        P                  ! W4R	VR7      p\        P                  ! WeR
VR7      p\	        Wc4       R# )r)   rC   c                 B    V ^ ,          ^,          V ^,          ^,          3# r   r   r   s   &r    mapping1CTestGeometricTransform.test_geometric_transform22.<locals>.mapping1  r   r$   c                 B    V ^ ,          ^,          V ^,          ^,          3# r   r   r   s   &r    mapping2CTestGeometricTransform.test_geometric_transform22.<locals>.mapping2  r   r$   rq   Nr=   r   r   r  r+   r>   )r0   rP   r1   r2   r   )r4   r(   r6   r7   r"  r%  rw   s   &&&    r    test_geometric_transform221TestGeometricTransform.test_geometric_transform22  sj    ! zz$jjz1	(	( ))$*0?))#*0?!#,r$   c                    . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR7      p\        WRP                  ^^.4      4       R# )r)   c                 &    ^V ^ ,          ^,          3# r)   r   r   s   &r    r   BTestGeometricTransform.test_geometric_transform23.<locals>.mapping  s    qtax= r$   rq   Nr=   r   r   r   r   r   s   &&&   r    test_geometric_transform231TestGeometricTransform.test_geometric_transform23  sR    ! zz$	! ))$UK!#zz1a&'9:r$   c           	         . RO. RO. RO.pVP                  V4      pR p\        P                  ! W4RVR	R^/R7      p\        WRP                  ^^.4      4       R# )
r)   c                 $    W^ ,          V,          3# r   r   )r   abs   &&&r    r   BTestGeometricTransform.test_geometric_transform24.<locals>.mapping  s    tax= r$   r3  )r(   extra_argumentsextra_keywordsNr=   r   r   r   r,  r   r   s   &&&   r    test_geometric_transform241TestGeometricTransform.test_geometric_transform24  s`    ! zz$	! ))4ud8% 	"#zz1a&'9:r$   r   N)rc   rd   re   rf   r   r   r   r   rL   rg   rh   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r(  r.  r7  rj   rk   rl   s   @r    r   r      s     IRRR [[Wy,&?@1 A1(1111&RRFNC=777-$
;; ;r$   r   c                      a  ] tR tRt o R t]P                  P                  R. RO4      ]P                  P                  R]! ^4      4      R 4       4       t	]
! RRR7      R	 4       t]
! RR
R7      R 4       tRtV tR# )TestGeometricTransformExtrai  c           	         VP                  . RO. RO.VP                  R7      pR pVP                  . RO. R	O.4      p\        \        P                  ! W#R^R7      V4       R# )
r)   rC   c                 B    V ^ ,          R,
          V ^,          R,
          3# r   r   r   s   &r    r   ZTestGeometricTransformExtra.test_geometric_transform_grid_constant_order1.<locals>.mapping      aD3J!A$*--r$   r   r&   r(   Nr)   r*   r+   r>   r   r   g      ?g      ?      ?rC  g      @r,   )r0   rP   r   r1   r2   )r4   r6   r   r   expected_results   &&   r    -test_geometric_transform_grid_constant_order1ITestGeometricTransformExtra.test_geometric_transform_grid_constant_order1  sh     JJ	!#*,**  6	. **&8&8&: ;!''./1	
r$   r&   r(   c           	        R  p\         P                  ! ^\        R7      P                  ^^4      p^p\        P                  V4      p\         P                  ! WVVR7      pVP                  V4      pVP                  V4      p\        \        Wf) 4      .VP                  ,          4      p	\        P                  ! WW!R7      V	,          p
\        \        P                  ! WTVVR7      V
RR7       R# )c                 B    V ^ ,          R,
          V ^,          R,           3# )r   皙?gffffff@r   r   s   &r    r   OTestGeometricTransformExtra.test_geometric_transform_vs_padded.<locals>.mapping  r>  r$   rC   rG   r?  rH   rJ   N)rN   rO   floatreshaperT   rU   rV   r0   tupleslicendimr1   r2   r   )r4   r(   r&   r6   r   r   rY   rZ   x_paddedcenter_slicerE  s   &&&&       r    "test_geometric_transform_vs_padded>TestGeometricTransformExtra.test_geometric_transform_vs_padded  s    
	.
 IIc'//B7(,,T266!1JJqM::h'eD%01AFF:;!55D77CE 	''.35		
r$   Tzendianness is numpy-specificr~   r   c                   \         P                  ! ^.4      pR pVP                  VP                  P                  4       \         P                  ! V4      \         P                  ! V4      P                  VP                  P                  4       4      3 F;  p\        P                  ! W#VP                  VR7      pVf   TMTp\        V^.4       K=  	  R# )r)   c                     V # r   r   r   s   &r    r   fTestGeometricTransformExtra.test_geometric_transform_endianness_with_output_parameter.<locals>.mapping  r   r$   r   N)
rN   r0   rD   newbyteorder
empty_likeastyper1   r2   r   r   )r4   r6   r7   r   rw   returnedresults   &&     r    9test_geometric_transform_endianness_with_output_parameterUTestGeometricTransformExtra.test_geometric_transform_endianness_with_output_parameter  s     zz1#	 JJ

 7 7 9MM$'MM$'..tzz/F/F/HIKC 224$**:=?H$,S(F%fqc2Kr$   !string `output` is numpy-specificc                    VP                  ^.4      pR p\        P                  ! W#RR7      pVP                  \        P                  ! R4      J g   Q h\        V^.4       R# )r)   c                     V # r   r   r   s   &r    r   XTestGeometricTransformExtra.test_geometric_transform_with_string_output.<locals>.mapping  r   r$   fr   N)r0   r1   r2   rD   rN   r   )r4   r6   r7   r   rw   s   &&   r    +test_geometric_transform_with_string_outputGTestGeometricTransformExtra.test_geometric_transform_with_string_output  sP    zz1#	 ))$DyyBHHSM)))!#s+r$   r   Nr   r   r   r   r   )rc   rd   re   rf   rF  rL   rg   rh   ri   rT  r   r_  rf  rj   rk   rl   s   @r    r:  r:    s     
" [[V &; <[[WeAh/
 0<
4 d+IJ3 K3  d+NO, P,r$   r:  c                   x  a  ] tR tRt o ]P
                  P                  R]! ^ ^4      4      ]P
                  P                  R]P                  ]P                  .4      R 4       4       t]P
                  P                  R]! ^ ^4      4      R 4       t]! RRR7      R	 4       t]! R
R7      R 4       t]! R
RR7      R 4       t]P
                  P                  R
R7      ]P
                  P#                  R]P&                  9   ;'       g     ]P(                  ! ^ 4      P*                  ^8  RR7      R 4       4       tRtV tR# )TestMapCoordinatesi  r(   rD   c                   \        V4      '       d   V^8  d   \        P                  ! R4       VP                  . RO. RO. RO.4      pVP                  . R	O. R
O. RO.4      pVP	                  VP
                  R4      '       d!   VRV,          ,
          pVRV,          ,
          p\        P                  ! VP                  4      pV^,          pVP                  V4      p\        P                  ! WFVR7      p\        Wu4       R# )r)   'jax map_coordinates requires order <= 1r   r   rq   Nr   r   r   r   r   r   )r   rL   rM   r0   r   rD   rN   indicesr   r1   rR   r   )r4   r(   rD   r6   r7   r]   idxrw   s   &&&&    r    test_map_coordinates01)TestMapCoordinates.test_map_coordinates01  s     "::%!)LLBCzz<'') * ::|++- . ::djj"455"t)#D"x-/Hjj$qjjo%%du=!#0r$   c                   \        V4      '       d;   V^8  d   \        P                  ! R4       V^8X  d   \        P                  ! R4       VP                  . RO. RO. RO.4      p\        P
                  ! VP                  \        P                  4      pVR,          pVP                  V4      p\        P                  ! VRVR7      p\        P                  ! W4VR7      p\        WV4       R# )	r)   rl  zoutput differs. jax bug?r   rq   Nr   r   r   )r   rL   rM   r0   rN   rm  r   rP   r1   r!   rR   r   )r4   r(   r6   r7   rn  out1out2s   &&&    r    test_map_coordinates02)TestMapCoordinates.test_map_coordinates02  s    "::qy||EFz||67zz<'') * jjRZZ0s
jjo}}T3e4&&t>!$-r$   	jax.numpyz`order` is required in jaxr   c           	        \        . RO. RO. RO.RVR7      p\        P                  ! VP                  4      ^,
          pVP	                  V4      p\
        P                  ! W#4      pVP	                  . RO. RO. R	O.4      p\        WE4       \        V\
        P                  ! VR
4      4       \        P                  ! VR,          P                  4      ^,
          pVP	                  V4      p\
        P                  ! VR,          V4      p\        WAP	                  . RO. RO.4      4       \        V\
        P                  ! VR,          R
4      4       \        P                  ! VR,          P                  4      ^,
          pVP	                  V4      p\
        P                  ! VR,          V4      p\        WAP	                  ^ ^ .^ ^.^ ^..4      4       \        V\
        P                  ! VR,          R
4      4       R# )r>   F)r(   r6   Nr   r   r   r   r   r   r)   r)   r  )NNNr   )	r   rN   rm  r   r0   r1   rR   r   r!   )r4   r6   r7   rn  rw   r]   s   &&    r    test_map_coordinates03)TestMapCoordinates.test_map_coordinates03(  s   %%'.1b: jj$q(jjo%%d0::|++- . 	"#0!#w}}T6'BCjjh--.2jjo%%d8nc:!#zz<3?3A (B 	C!#w}}T(^V'LMjjf++,q0jjo%%d6lC8!#zzAq6Aq6Aq62J'KL!#w}}T&\6'JKr$   T)r~   c                   \         P                  ! ^^.^^..4      p\         P                  ! ^ ^ .^ ^..4      p\         P                  ! VP                  4      pV^,          pVP                  VP                  P                  4       \         P                  ! V4      \         P                  ! V4      P                  VP                  P                  4       4      3 F.  p\        P                  ! W$VR7      pVf   TMTp\        Ws4       K0  	  R# r)   r   N)rN   r0   rm  r   rD   rZ  r[  r\  r1   rR   r   )r4   r6   r7   r]   rn  rw   r]  r^  s   &&      r    5test_map_coordinates_endianness_with_output_parameterHTestMapCoordinates.test_map_coordinates_endianness_with_output_parameterC  s     zzAq6Aq6*+::1v1v./jj$qJJJJ##%MM(#MM(#**8>>+F+F+HI	
C ..tEH$,S(F%f7
r$   ra  rV  c                B   VP                  ^..4      p\        P                  ! VP                  4      pVP                  V4      p\        P
                  ! W#RR7      pVP                  \        P                  ! R4      J g   Q h\        WAP                  ^..4      4       R# r)   re  r   N)r0   rN   rm  r   r1   rR   rD   r   )r4   r6   r7   rn  rw   s   &&   r    'test_map_coordinates_with_string_output:TestMapCoordinates.test_map_coordinates_with_string_outputW  st    zzA3% jj$jjo%%d<yyBHHSM)))!#zzA3%'89r$   )cpu_onlywin32z2do not run on 32 bit or windows (no sparse memory)c                    R p\         P                  ! V^,          \         P                  R7      P                  W"4      p^ W2^,
          R1V^,
          R13&   \        P
                  ! VP                  V4      VP                  VR,
          .VR,
          ..4      ^R7       R#   \         d   p\        P                  ! R4      ThRp?ii ; i)i0u  rC   Nr`   rq   zNot enough memory available)
rN   emptyfloat32rN  r1   rR   r0   MemoryErrorrL   skip)r4   r6   nr2  es   &&   r    test_map_coordinates_large_data2TestMapCoordinates.test_map_coordinates_large_data`  s    
	DAARZZ088>A !A!efa!efn##

1rzzAG9q3wi*@A  	D++;<!C	Ds   BB# #C
.CC
r   N)rc   rd   re   rf   rL   rg   rh   ri   rN   rP   r   ro  rt  r   r|  r  r  skipifsysplatformintpitemsizer  rj   rk   rl   s   @r    rj  rj    sF     [[WeAqk2[[Wrzz2==&AB1 C 31* [[WeAqk2. 3.$ k*FGL HL4 d#8 $8& d+NO: P: [[!!4!0[[3<</JJ2771:3F3F3J 4  5D5 1Dr$   rj  c                   p
  a  ] tR tRt o ]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t	]P
                  P                  R]! ^ ^4      4      R 4       t
]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      ]P
                  P                  RRR	.4      R
 4       4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]! RRR7      ]P
                  P                  R]! ^ ^4      4      R 4       4       t]! RRR7      ]P
                  P                  R]! ^ ^4      4      R 4       4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R  4       t ]P
                  P                  R]! ^ ^4      4      R! 4       t!]P
                  P                  R]! ^ ^4      4      R" 4       t"]! RR#R7      R$ 4       t#]$! R%R&R'7      R( 4       t%]$! R%R&R'7      R) 4       t&]$! R%R*R'7      R+ 4       t']$! R%R,R'7      R- 4       t(]P
                  P                  R.. R3O4      ]P
                  P                  R]! ^ ^4      4      R/ 4       4       t)]P
                  P                  R]! ^ ^4      4      R0 4       t*R1t+V t,R2# )4TestAffineTransformis  r(   c                    VP                  ^.4      p\        P                  ! W2P                  ^..4      VR7      p\        WBP                  ^.4      4       R# r)   rq   Nr0   r1   affine_transformr   r4   r(   r6   r7   rw   s   &&&  r    test_affine_transform01+TestAffineTransform.test_affine_transform01v  sB    zz1#&&tZZ!->eL!#zz1#7r$   c                    VP                  ^.4      p\        P                  ! W2P                  ^..4      VR7      p\	        WBP                  . RO4      4       R# )r>   rq   Nr   rt   r1   r  r0   r   r  s   &&&  r    test_affine_transform02+TestAffineTransform.test_affine_transform02|  sA    wws|&&tZZ!->eL!#zz,'?@r$   c                    VP                  ^.4      p\        P                  ! W2P                  ^..4      RVR7      p\	        WBP                  . RO4      4       R# )r>   rq   Nr-   r   r  r  s   &&&  r    test_affine_transform03+TestAffineTransform.test_affine_transform03  sC    wws|&&tZZ!->%P!#zz,'?@r$   c                    VP                  . RO4      p\        P                  ! W2P                  ^..4      RVR7      p\        WBP                  . RO4      4       R# )r>   rq   Nr   r-   r   r  r  s   &&&  r    test_affine_transform04+TestAffineTransform.test_affine_transform04  sB    zz,'&&tZZ!->%P!#zz,'?@r$   rD   rP   r   c                   \        W24      pVP                  . RO. RO. RO.VR7      pVP                  . RO. RO. RO.VR7      pVP                  VP                  R4      '       d!   VRV,          ,          pVRV,          ,          p\        P
                  ! WCP                  ^^ .^ ^..4      ^ R.VR7      p\        We4       R# )	r)   rC   r   r   rq   Nr   r   r-   )rs   r0   r   rD   r1   r  r   r4   r(   rD   r6   r7   r]   rw   s   &&&&   r    test_affine_transform05+TestAffineTransform.test_affine_transform05  s     "zz<'')05  7 ::|++-49  ; ::djj"455BIDX%H&&tZZ!Q!Q8H-I()2we=!#0r$   c           	         VP                  . RO. RO. RO.4      p\        P                  ! W2P                  ^^ .^ ^..4      ^ R.VR7      p\        WBP                  . RO. RO. R	O.4      4       R# )
r>   rq   Nr   r   r   r-   r   r   r   r  r  s   &&&  r    test_affine_transform06+TestAffineTransform.test_affine_transform06  ss    zz<'') * &&tZZ!Q!Q8H-I()2we=!#zz<3?3?3A (B 	Cr$   c           	         VP                  . RO. RO. RO.4      p\        P                  ! W2P                  ^^ .^ ^..4      R^ .VR7      p\        WBP                  . RO. RO. RO.4      4       R# )r>   rq   Nr   r   r   r-   r   r  r  s   &&&  r    test_affine_transform07+TestAffineTransform.test_affine_transform07  ss    zz<'') * &&tZZ!Q!Q8H-I(*Awe=!#zz<3?3?3A (B 	Cr$   c           	         VP                  . RO. RO. RO.4      p\        P                  ! W2P                  ^^ .^ ^..4      RR.VR7      p\        WBP                  . RO. RO. R	O.4      4       R# )
r>   rq   Nr   r   r   r-   r   r   r   r  r  s   &&&  r    test_affine_transform08+TestAffineTransform.test_affine_transform08  ss    zz<'') * &&tZZ!Q!Q8H-I(*Bxu>!#zz<3?3?3A (B 	Cr$   c           	     $   VP                  . RO. RO. RO.4      pV^8  d   \        P                  ! W1R7      pMTp\        P                  ! WBP                  ^^ .^ ^..4      RR.VRR7      p\	        WRP                  . R	O. R
O. RO.4      4       R# )r>   rq   Fr   Nr   r   r   r-   r   r   r   )r0   r1   ru   r  r   r4   r(   r6   r7   r   rw   s   &&&   r    test_affine_transform09+TestAffineTransform.test_affine_transform09  s    zz<'') * AI,,T?HH&&xaVaV<L1M(*Bxu168 	"#zz<3?3?3A (B 	Cr$   c                    VP                  ^.VP                  R7      p\        P                  ! W2P	                  R..4      RVR7      p\        WBP	                  . RO4      4       R# )r*   rC   r   )r'   r(   Nr?   r)   r)   r)   r   )rt   rP   r1   r  r0   r   r  s   &&&  r    test_affine_transform10+TestAffineTransform.test_affine_transform10  sO    wws"**w-&&tZZ#-@t-24!#zz,'?@r$   c                    VP                  . RO4      p\        P                  ! W2P                  ^..4      ^ RVR7      p\        WBP                  . RO4      4       R# )r)   rq   Nr   r?   r=   r  r  s   &&&  r    test_affine_transform11+TestAffineTransform.test_affine_transform11  sE    zz23&&tZZ!->4uU!#zz,'?@r$   c                    VP                  . RO4      p\        P                  ! W2P                  R..4      ^ RVR7      p\        VR,          VP                  . RO4      4       R# )r)   r   rq   r   Nr=   r   r  r  s   &&&  r    test_affine_transform12+TestAffineTransform.test_affine_transform12  sK    zz,'&&tZZ#-@!TQVW!#c(BJJ|,DEr$   c           	         . RO. RO. RO.pVP                  V4      p\        P                  ! W2P                  ^^ .^ ^..4      ^ RVR7      p\        WBP                  ^^.^^.^	^..4      4       R# )r)   rq   Nr=   r   r   r   r  r  s   &&&  r    test_affine_transform13+TestAffineTransform.test_affine_transform13  su    !# zz$&&tZZ!Q!Q8H-I1f-24!#zzAq6Aq6Ar72K'LMr$   c                    . RO. RO. RO.pVP                  V4      p\        P                  ! W2P                  ^^ .^ ^..4      ^ RVR7      p\        WBP                  . RO.4      4       R# )r)   rq   Nr=   r   r   r  r  r  s   &&&  r    test_affine_transform14+TestAffineTransform.test_affine_transform14  sd    ! zz$&&tZZ!Q!Q8H-I1f-24!#zz<.'ABr$   c                    . RO. RO. RO.pVP                  V4      p\        P                  ! W2P                  ^^ .^ ^..4      ^ RVR7      p\        WBP                  ^^..4      4       R# )r)   rq   Nr=   r   r   r  r  r  s   &&&  r    test_affine_transform15+TestAffineTransform.test_affine_transform15  sh    ! zz$&&tZZ!Q!Q8H-I1f-24!#zzAq6(';<r$   c                    . RO. RO. RO.pVP                  V4      p\        P                  ! W2P                  ^R.^ R..4      ^ RVR7      p\        VR	,          V4       R# )
r)           r   rq   Nr=   r   r   r  r  r  r  s   &&&  r    test_affine_transform16+TestAffineTransform.test_affine_transform16  s_    ! zz$&&tZZ!SAs88L-Mq'-U<!#h-6r$   c                    . RO. RO. RO.pVP                  V4      p\        P                  ! W2P                  R^ .^ ^..4      ^ RVR7      p\        VR,          V4       R# )	r)   r   rq   Nr=   r   r   r  r  r  r  s   &&&  r    test_affine_transform17+TestAffineTransform.test_affine_transform17  s_    ! zz$&&tZZ#qAq68J-KQ'-U<!#h-6r$   c                    VP                  . RO. RO. RO.4      p\        P                  ! W2P                  R^ .^ R..4      ^ RVR7      p\        VR,          V4       R# )	r)   r   rq   Nr=   r   r   r  r  r  r  s   &&&  r    test_affine_transform18+TestAffineTransform.test_affine_transform18  s\    zz<'*, - &&tZZ#qAs88L-Mq'-U<!#h-6r$   c                $   VP                  . RO. RO. RO.VP                  R7      p\        P                  ! W2P                  R^ .^ R..4      ^ R	VR7      p\        P                  ! WBP                  R^ .^ R..4      ^ R
VR7      p\	        WC4       R# )r)   rC   r   rq          @Nr=   r   r   r  r'  )r0   rP   r1   r  r   r  s   &&&  r    test_affine_transform19+TestAffineTransform.test_affine_transform19  s    zz<'*,35::  ? &&tZZ#qAs88L-Mq'-U<&&sJJa1c(7K,La'-U<!#,r$   r}   z(https://github.com/cupy/cupy/issues/8394rw  c                    . RO. RO. RO.pVP                  V4      p\        P                  ! W2P                  ^ .^..4      ^ RVR7      p\        WBP                  ^^.4      4       R# r)   rq   Nr=   r   r   r   r  r  s   &&&  r    test_affine_transform20+TestAffineTransform.test_affine_transform20)  c     ! zz$&&tZZ!qc
-CQ-24!#zz1a&'9:r$   c                    . RO. RO. RO.pVP                  V4      p\        P                  ! W2P                  ^.^ ..4      ^ RVR7      p\        WBP                  ^^	.4      4       R# r  r  r  s   &&&  r    test_affine_transform21+TestAffineTransform.test_affine_transform214  r  r$   c                    VP                  . RO4      p\        P                  ! W2P                  ^..4      R.RVR7      p\        WBP                  . RO4      4       R# )r>   rq   Nr   r-   )r+   r   r)   r*   r  r  s   &&&  r    test_affine_transform22+TestAffineTransform.test_affine_transform22?  sK     zz,'&&tZZ!->d-24!#zz)'<=r$   c                    VP                  . RO4      p\        P                  ! W2P                  R..4      R.RVR7      p\        VR,          VP                  . RO4      4       R# )	r>   r   rq   r   Nr   r-   r  r   r  r  s   &&&  r    test_affine_transform23+TestAffineTransform.test_affine_transform23G  sQ     zz,'&&tZZ#-@2$-24!#c(BJJ|,DEr$   c           	        VP                  . RO4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \
        P                  ! W2P                  ^.4      RVR7      pRRR4       \
        P                  ! W2P                  ^..4      RVR7      p\        XV4       R#   + '       g   i     LH; i)r>   ignore@The behavior of affine_transform with a 1-D array .* has changedrq   Nr   r-   r0   warningscatch_warningsfilterwarningsUserWarningr1   r  r   r4   r(   r6   r7   rr  rs  s   &&&   r    test_affine_transform24+TestAffineTransform.test_affine_transform24O  s     zz,'$$&&##R ++D**aS/2USD ' ''jj1#.?5Q!$- '&   AB77C	c           	        VP                  . RO4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \
        P                  ! W2P                  R.4      RVR7      pRRR4       \
        P                  ! W2P                  R..4      RVR7      p\        XV4       R#   + '       g   i     LH; i)r>   r  r  r   rq   Nr   r-   r  r  s   &&&   r    test_affine_transform25+TestAffineTransform.test_affine_transform25\  s     zz,'$$&&##H%&13 ++D**cU2CRuUD	 '
 ''jj3%.A2US!$- '&r  c           
        VP                  . RO. RO. RO.4      pV^8  d   \        P                  ! W1R7      pMTpVP                  ^4      pVP	                  R	4      ) pVP                  WV3^R7      pVP                  WrP                  . R
O.4      3^ R7      pVP                  VR4       U	u. uF  p	\        V	4      NK  	  p
p	\        P                  ! WEV
VRR7      p\        P                  ! WGVRR7      p\        P                  ! WHVRR7      pWV3 F&  p\        WP                  . RO. RO. RO.4      4       K(  	  R# u up	i )r>   rq   axisFr   Nr   r   r   r*   r)   )r  r   r)   )r-   r   r   r   )
r0   r1   ru   eyert   concatrN  rM  r  r   )r4   r(   r6   r7   r   tform_originaloffset_originaltform_h1tform_h2r   offsrr  rs  out3rw   s   &&&            r    test_affine_transform26+TestAffineTransform.test_affine_transform26h  s7    zz<'') * AI,,T?HH776?*99n>Q9G99h

K=(AB9K"$**_e"DE"DQa"DE''(,.3uF ''%279''%279%C%c::|7C7C7E ,F G & Fs   -D?zdoes not raisec                ,   VP                  . RO. RO. RO.4      pVP                  VP                  ^4      VP                  R4      ) 3^R7      pVP                  W1P                  . RO.4      3^ R7      p\	        \
        \        P                  W$4       R# )r>   r  Nr   r   r   r  )      @r*   r)   )r0   r  r  rt   assert_raises
ValueErrorr1   r  )r4   r6   r7   r  r  s   &&   r    test_affine_transform27+TestAffineTransform.test_affine_transform27  s}     zz<'') * 99bffQi"''&/)9:!9D99h

K=(AB9Kj'":":DKr$   Tzbyteorder is numpy-specificrV  c           	     `   VP                  R4      pVP                  V4      VP                  V4      P                  VP                  P	                  4       4      VP                  VP                  P	                  4       3 F  p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! RR\        4       VP                  ^^.4      p\        P                  ! W$VR7      pRRR4       Xf   TMTp\        WaP                  ^^.^^..4      4       K  	  R#   + '       g   i     L>; i)r*   r  r  r   N)r*   r*   )rt   r[  r\  rD   rZ  r  r  r  r  r0   r1   r  r   )r4   r6   r7   rw   matrixr]  r^  s   &&     r    9test_affine_transform_1d_endianness_with_output_parameterMTestAffineTransform.test_affine_transform_1d_endianness_with_output_parameter  s     wwvMM$'MM$'..tzz/F/F/HIJJ

 7 7 9;C ((**'',-8: QF+"33DM + %,S(F%fjj1a&1a&9I.JK; +*s   ADD-c                   \         P                  ! ^.4      pVP                  VP                  P                  4       \         P                  ! V4      \         P                  ! V4      P                  VP                  P                  4       4      3 F[  p\        P                  ! V\         P                  ! ^..4      VR7      pVf   TMTp\        V\         P                  ! ^.4      4       K]  	  R# r  )	rN   r0   rD   rZ  r[  r\  r1   r  r   )r4   r6   r7   rw   r]  r^  s   &&    r    >test_affine_transform_multi_d_endianness_with_output_parameterRTestAffineTransform.test_affine_transform_multi_d_endianness_with_output_parameter  s    
 zz1#JJ

 7 7 9MM$'MM$'..tzz/F/F/HIKC //bjj1#6GPSTH$,S(F%fbjj!o>Kr$   z+`out` of a different size is numpy-specificc           	        VP                  ^VP                  R7      pVP                  R4      p\        P                  ! W!P                  ^..4      VR7       \        VR,          V4       \        P                  ! \        4      ;_uu_ 4        \        P                  ! V^..VRR7       RRR4       R#   + '       g   i     R# ; i)r   rC   r   :Nr   N)r   r'   N)   )r   )
rO   rP   rt   r1   r  r0   r   rL   r
   RuntimeErrorr4   r6   r7   rw   s   &&  r    "test_affine_transform_output_shape6TestAffineTransform.test_affine_transform_output_shape  s    
 yy"**y-ggen  zzA3%'8E!#b'40 ]]<(($$seCe= )(((s   B44C	ra  c                    VP                  ^.4      p\        P                  ! W!P                  ^..4      RR7      pVP                  \        P                  ! R4      J g   Q h\        W1P                  ^.4      4       R# r  )r0   r1   r  rD   rN   r   r  s   &&  r    (test_affine_transform_with_string_output<TestAffineTransform.test_affine_transform_with_string_output  s\    zz1#&&tZZ!->sKyyBHHSM)))!#zz1#7r$   r!   c           	        \         P                  ! ^ ^.^^..4      p\         P                  ! R4      p\         P                  ! ^4      VR&   \         P                  ! V4      VR&   \         P                  ! WARR7      pVP                  V4      pVP                  V4      pVP                  V4      p\        \        P                  ! WERVR7      V4       R# )	r   r  r   r?  Nr*   r+   Nr*   Nr!  r{  r*   r   r)   )rN   r0   zerosr  rollr   r1   r  )r4   r!   r(   r6   r   affiner]   s   &&&&   r    )test_affine_transform_shift_via_grid_wrap=TestAffineTransform.test_affine_transform_shift_via_grid_wrap  s    
 JJAA  !&!vzz%(t771&1JJqMF#::h'!$$Q[N	
r$   c           	        \         P                  ! . RO. RO.4      pVRRR1RRR13,          P                  4       pVP                  V4      pVP                  V4      p\         P                  ! ^^.4      p\         P                  ! ^4      VR&   \         P                  ! VP
                  4      VR&   VP                  V4      p\        \        P                  ! W5RVR7      V4       R# )	r   Nr   r?  r  r+   r>   r   r-   r   r"  )	rN   r0   copyr$  r  r   r   r1   r  )r4   r(   r6   r   r]   r&  s   &&&   r    #test_affine_transform_shift_reflect7TestAffineTransform.test_affine_transform_shift_reflect  s     JJ	!# $TrT4R4Z=%%'JJqM::h'1a&!vzz!''*tF#!$$QYeL	
r$   r   N)r)   r   r#  )r-   r)   )r+   )r*   r.   )-rc   rd   re   rf   rL   rg   rh   ri   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  xfail_xp_backendsr  r  r  r  r  r  r  r  r   r  r  r  r  r'  r,  rj   rk   rl   s   @r    r  r  s  s     [[WeAqk28 38
 [[WeAqk2A 3A
 [[WeAqk2A 3A
 [[WeAqk2A 3A
 [[WeAqk2[[Wy,&?@1 A 31 [[WeAqk2C 3C [[WeAqk2C 3C [[WeAqk2C 3C [[WeAqk2C 3C [[WeAqk2A 3A [[WeAqk2A 3A
 [[WeAqk2F 3F
 [[WeAqk2N 3N [[WeAqk2C 3C [[WeAqk2= 3= [[WeAqk27 37 [[WeAqk27 37 [[WeAqk27 37 [[WeAqk2- 3- v&PQ[[WeAqk2; 3 R; v&PQ[[WeAqk2; 3 R; [[WeAqk2> 3> [[WeAqk2F 3F [[WeAqk2
. 3
. [[WeAqk2	. 3	. [[WeAqk2G 3G: v&67L 8L d+HIL JL  d+HI
? J
? d<== d+NO8 P8 [[WGI[[WeAqk2
 3I
& [[WeAqk2
 3
r$   r  c                     a  ] tR tRt o ]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t	]P
                  P                  R]! ^ ^4      4      R 4       t
]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      ]P
                  P                  RRR	.4      R
 4       4       t]P
                  P                  R]! ^ ^4      4      ]P
                  P                  RRR.4      ]P
                  P                  RRR	.4      R 4       4       4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R. RO4      ]P
                  P                  R]! ^ ^4      4      R 4       4       t]P
                  P                  R. RO4      ]P
                  P                  R]! ^ ^4      4      R 4       4       tR t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      ]P
                  P                  RRR.4      R 4       4       t]P
                  P                  R. R O4      ]P
                  P                  R]! ^4      4      R 4       4       tRtV tR# )!	TestShifti  r(   c                    VP                  ^.4      p\        P                  ! V^.VR7      p\        WBP                  ^ .4      4       R# r  r0   r1   r!   r   r  s   &&&  r    test_shift01TestShift.test_shift01  s7    zz1#mmD1#U3!#zz1#7r$   c                    VP                  ^.4      p\        P                  ! V^.VR7      p\        WBP	                  . RO4      4       R# )r>   rq   Nr   rt   r1   r!   r   r0   r  s   &&&  r    test_shift02TestShift.test_shift02  s6    wws|mmD1#U3!#zz,'?@r$   c                    VP                  ^.4      p\        P                  ! VRVR7      p\        WBP	                  . RO4      4       R# )r>   rq   Nr-   r  r8  r  s   &&&  r    test_shift03TestShift.test_shift03  s4    wws|mmD"E2!#zz,'?@r$   c                    VP                  . RO4      p\        P                  ! V^VR7      p\        WBP                  . RO4      4       R# )r>   rq   Nr   r   r4  r  s   &&&  r    test_shift04TestShift.test_shift04  s3    zz,'mmD!51!#zz,'?@r$   rD   rP   r   c                \   \        W24      pVP                  . RO. RO. RO.VR7      pVP                  . RO. RO. RO.VR7      pVP                  VP                  R4      '       d!   VRV,          ,          pVRV,          ,          p\        P
                  ! V^ ^.VR7      p\        We4       R# )r)   rC   r   r   rq   Nr   r   )rs   r0   r   rD   r1   r!   r   r  s   &&&&   r    test_shift05TestShift.test_shift05  s     "zz<'')05  7 ::|++-49  ; ::djj"455BIDX%HmmD1a&6!#0r$   r&   r   r   c                   \         P                  ! . RO. RO. RO.VR7      p\         P                  ! . RO. RO. RO.VR7      p\        P                  ! VP                  R4      '       d!   VRV,          ,          pVRV,          ,          pRpWvR	&   VP                  V4      pVP                  V4      p\
        P                  ! V^ ^.WVR7      p\        W4       R# )
r)   rC   r   r   r	  )r(   r&   r%   Nr   r   )r{  r   )rN   r0   r   r   rD   r1   r!   r   )	r4   r(   r&   rD   r6   r7   r]   r%   rw   s	   &&&&&    r    test_shift_with_nonzero_cval&TestShift.test_shift_with_nonzero_cval  s     zz<'')057 ::|++-49; TZZ);<<BIDX%Hzz$::h'mmD1a&tL!#0r$   c           	         VP                  . RO. RO. RO.4      p\        P                  ! V^ ^.VR7      p\        WBP                  . RO. RO. RO.4      4       R# )	r>   rq   Nr   r   r   r   r   r   r4  r  s   &&&  r    test_shift06TestShift.test_shift062  X    zz<'') * mmD1a&6!#zz<3?3?3A (B 	Cr$   c           	         VP                  . RO. RO. RO.4      p\        P                  ! V^^ .VR7      p\        WBP                  . RO. RO. RO.4      4       R# )r>   rq   Nr   r   r   r   r4  r  s   &&&  r    test_shift07TestShift.test_shift07<  rJ  r$   c           	         VP                  . RO. RO. RO.4      p\        P                  ! V^^.VR7      p\        WBP                  . RO. RO. RO.4      4       R# )	r>   rq   Nr   r   r   r   r   r   r4  r  s   &&&  r    test_shift08TestShift.test_shift08F  rJ  r$   c           	         VP                  . RO. RO. RO.4      pV^8  d   \        P                  ! W1R7      pMTp\        P                  ! V^^.VRR7      p\	        WRP                  . RO. R	O. R
O.4      4       R# )r>   rq   Fr   Nr   r   r   r   r   r   )r0   r1   ru   r!   r   r  s   &&&   r    test_shift09TestShift.test_shift09P  sv    zz<'') * AI,,T?HHmmHq!fEUK!#zz<3?3?3A (B 	Cr$   r!   c           	         \         P                  ! ^ ^.^^..4      p\         P                  ! WARR7      pVP                  V4      pVP                  V4      p\        \        P
                  ! WARVR7      V4       R# )r   r  r   r?  Nr#  )rN   r0   r%  r   r1   r!   )r4   r!   r(   r6   r   r]   s   &&&&  r    test_shift_grid_wrapTestShift.test_shift_grid_wrap^  sj    
 JJAA  !771%0JJqM::h'!MM!EB	
r$   c           
         VP                  VP                  ^4      R4      p\        \        P                  ! WARVR7      \        P                  ! WARVR7      4       R# )   r   r?  r   N)r   r>   )rN  rO   r   r1   r!   )r4   r!   r(   r6   r   s   &&&& r    test_shift_grid_constant1#TestShift.test_shift_grid_constant1o  sD    
 JJryy}f-!MM!FMM!5A	
r$   c           	         VP                  . RO. RO.VP                  R7      pVP                  . RO. RO.4      p\        \        P                  ! VR	R^R7      V4       R# )
r)   rC   r   r?  Nr@  rA  rB  rD  )r   r   )r0   rP   r   r1   r!   )r4   r6   r   rE  s   &&  r    test_shift_grid_constant_order1)TestShift.test_shift_grid_constant_order1z  s\    JJ	!#*,**  6**&8&8&: ;!MM!ZoQG	
r$   c           	        \         P                  ! . RO. RO.4      pVRRR1RRR13,          P                  4       pVP                  V4      pVP                  V4      p\        \        P
                  ! W3P                  RVR7      V4       R# )r   Nr   r?  r  r*  r-   )rN   r0   r+  r   r1   r!   r   )r4   r(   r6   r   r]   s   &&&  r    test_shift_reflectTestShift.test_shift_reflect  st     JJ	!# $TrT4R4Z=%%'JJqM::h'!MM!WW9EB	
r$   r   FTc                8   VP                  ^4      p\        RWR7      p\        \        P                  ! WA^,          ^,           3/ VB ^ ,          V^ ,          4       \        \        P                  ! WA) ^,          ^,
          3/ VB R,          VR,          4       R# )r  r   )r&   r(   r   Nr-   )rO   dictr   r1   r!   )r4   r(   r   r6   r   kwargss   &&&&  r    test_shift_nearest_boundary%TestShift.test_shift_nearest_boundary  sy    
 IIbM9EG!MM!aZ!^6v6q91Q4	
 	"MM!Vq[1_77;QrU	
r$   c           	        \         P                  ! ^\        R7      P                  ^^4      pRp^ p\        P                  V4      pVP                  \         P                  ! WFVR7      4      pVP                  V4      p	\        \        Wf) 4      .V	P                  ,          4      p
\        P                  ! WW!R7      V
,          p\        \        P                  ! WW!R7      VRR7       R# )   rC   rG   r?  rH   rL  N)rJ  gffffff)rN   rO   rM  rN  rT   rU   r0   rV   rO  rP  rQ  r1   r!   r   )r4   r(   r&   r6   x_npr!   rY   rZ   rR  r   rS  rE  s   &&&&        r    test_shift_vs_paddedTestShift.test_shift_vs_padded  s     yyE*222r: (,,T2::bffTh?@JJteD%01AFF:;!--$55AC 	MM!;	
r$   r   Nr.  rh  )rc   rd   re   rf   rL   rg   rh   ri   r5  r9  r<  r?  rB  rE  rH  rL  rO  rR  rU  rY  r\  r_  rd  ri  rj   rk   rl   s   @r    r2  r2    so     [[WeAqk28 38
 [[WeAqk2A 3A
 [[WeAqk2A 3A
 [[WeAqk2A 3A
 [[WeAqk2[[Wy,&?@1 A 31 [[WeAqk2[[Vj/%BC[[Wy,&?@1 A D 31( [[WeAqk2C 3C [[WeAqk2C 3C [[WeAqk2C 3C [[WeAqk2C 3C [[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<
r$   r2  c                   v  a  ] tR tRt o ]P
                  P                  R]! ^ ^4      4      R 4       tR t	R t
]P
                  P                  R]! ^ ^4      4      ]P
                  P                  RRR.4      R	 4       4       tR
 tR tR t]P
                  P                  R. R#O4      ]P
                  P                  R. R$O4      R 4       4       t]P
                  P                  RR%R&.4      ]P
                  P                  R. R#O4      ]P
                  P                  R. R'O4      R 4       4       4       t]P
                  P                  RRR.4      R 4       t]! RRR7      ]! RRR7      R 4       4       tR t]! RRR7      R 4       t]! RRR7      ]! RRR7      ]! RRR7      R  4       4       4       tR!tV tR"# )(TestZoomi  r(   c                n   ^^^.3 EF)  pVP                  VP                  ^VP                  R7      R4      p\        P                  ! WCVR7      pVP
                  R8X  g   Q hVP                  VR,          ^ 8g  4      '       g   Q hVP                  VR,          ^\        ,
          8  4      '       g   Q hVP                  VR,          ^\        ,           8*  4      '       g   Q hVP                  V^ \        ,
          8  4      '       g   Q hVP                  V^\        ,           8*  4      '       d   EK*  Q h	  R# )r*   rC   rq   N)r   r   )r   r   )r-   r{  )r   r{  )rN  rO   rP   r1   zoomr   alleps)r4   r(   r6   zarrs   &&&  r    
test_zoom1TestZoom.test_zoom1  s    aVA**RYYrY<fEC,,sU3C99(((66#e*/****66#e*c2333366#d)C0111166#!c'*++++66#"s(+,,,, r$   c                    VP                  VP                  ^4      R4      p\        P                  ! \        P                  ! V^4      R4      p\	        W24       R# )r   r   Nr'  )rN  rO   r1   rn  r   )r4   r6   rr  rw   s   &&  r    
test_zoom2TestZoom.test_zoom2  s=    jj2/ll7<<Q/5!r$   c                   VP                  ^^..4      p\        P                  ! VR4      p\        P                  ! VR4      p\        W1P                  ^^.^^..4      4       \        WAP                  . RO.4      4       R# )r)   Nr  r  )r)   r)   r*   r*   )r0   r1   rn  r   )r4   r6   rr  rr  rs  s   &&   r    
test_zoom3TestZoom.test_zoom3  sg    jj1a&"||C(||C(!$

QFQF3C(DE!$

L>(BCr$   rD   rP   r   c           
        \        W24      pVP                  . R	O. R
O. RO.VR7      pVP                  VP                  R4      '       d   VRV,          ,          p\        P
                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! WCP                  RR.4      ^ RVR7      pRRR4       \        XR,          V4       R#   + '       g   i     L%; i)r)   rC   r   r   r  r  r   rq   Nr=   r   r   r  r  )rs   r0   r   rD   r  r  r  r  r1   r  r   )r4   r(   rD   r6   r7   rw   s   &&&&  r    test_zoom_affine01TestZoom.test_zoom_affine01  s     "zz<'*,38  : ::djj"455BID$$&&##H%&13 **4S#J1G+1@C	 ' 	"#h-6 '&s   7ACC,	c                j    ^p\         P                  ! VP                  W"34      RV,          RR7       R# )r         ?r   rG   N)r1   rn  r$  )r4   r6   dims   && r    test_zoom_infinityTestZoom.test_zoom_infinity  s&    RXXsj)28)Dr$   c                    VP                  R4      pRp\        P                  ! W#^R7      pVP                  R4      p\        WE4       R# )r)   )r%   N)r)   r   r   )r  r  r  )r)   r   r   )r$  r1   rn  r   )r4   r6   rr  rn  rw   refs   &&    r    test_zoom_zoomfactor_one!TestZoom.test_zoom_zoomfactor_one  s;    hhy!ll31-hh{#!#+r$   c                ~    VP                  R4      pRp\        P                  ! W#4      pVP                  R8X  g   Q hR# )r+   N)r+   r      )gUUUUUU?gE]t?g(\?)r>         )r$  r1   rn  r   )r4   r6   rr  rn  rw   s   &&   r    test_zoom_output_shape_roundoff(TestZoom.test_zoom_output_shape_roundoff  s5    hh{#.ll3%yyK'''r$   rn  r&   r   r   c           	     >   \         P                  ! ^ ^.^^..\         P                  R7      p\         P                  ! V\         P                  ! V4      4      pVP                  V4      pVP                  V4      p\        \        P                  ! Wa^ VR7      V4       R# )r   rC   rF   N)rN   r0   rP   kronrt   r   r1   rn  )r4   rn  r&   r6   rh  r]   r   s   &&&&   r    test_zoom_by_int_order0 TestZoom.test_zoom_by_int_order0  sz     zzAq6q6#*,**6774/JJt::h'!LL5	
r$   r   c                ^   \         P                  ! \         P                  ! V4      \        R 7      P	                  V4      pVP                  V4      p\        \        P                  ! Wb^ VRR7      VP                  \         P                  ! V\         P                  ! V4      4      4      4       R# )rC   T)r(   r&   	grid_modeN)rN   rO   prodrM  rN  r0   r   r1   rn  r  rt   )r4   r   rn  r&   r6   rh  r   s   &&&&&  r    test_zoom_grid_by_int_order0%TestZoom.test_zoom_grid_by_int_order0  sn     yyu5==eDJJt!LLEJJrwwtRWWT]34	
r$   c           	        VP                  VP                  ^	VP                  R7      R4      p\        P                  ! \
        RR7      ;_uu_ 4        \        P                  ! V^VRR7      3 RRR4       R#   + '       g   i     R# ; i)r   rC   zIt is recommended to use mode)matchT)r&   r  N)r+   r+   )rN  rO   rP   rL   warnsr  r1   rn  )r4   r&   r6   r   s   &&& r    test_zoom_grid_mode_warnings%TestZoom.test_zoom_grid_mode_warnings  sk     JJryy"**y5v>\\+ ?A ALLADD9:A A A As   A88B		z
dask.arrayz!output=array requires buffer viewrw  rv  c                    VP                  VP                  ^4      R4      p\        P                  ! V^VP	                  R4      R7       R# )zTicket #643r   Nr'  r  )rN  rO   r1   rn  r$  r4   r6   r   s   && r    test_zoom_output_shapeTestZoom.test_zoom_output_shape&  s5     JJryy}f-Q"((6"23r$   c                    VP                  R 4      p^p\        P                  ! V\        P                  ! V4      4      p\        P                  ! W#4      p\        WE4       R# )g      $@N)rO   r1   rn  rN   arrayr   )r4   r6   r2  factoractualr]   s   &&    r    test_zoom_0d_arrayTestZoom.test_zoom_0d_array-  sC    IIcNa&!12<<*)r$   r}   zCuPy `zoom` needs similar fix.c                    VP                  ^4      p\        \        P                  ! V^4      V4       \        \        P                  ! VR4      V4       R# )r+   Nrz  )r  r   r1   rn  r  s   && r    test_zoom_1_gh20999TestZoom.test_zoom_1_gh209995  s;     FF1IQ*A.Q/3r$   zread-only backendznumpy round-tripc                    VP                  ^4      pVP                  V4      p\        P                  ! V^VR7       \	        W24       R# )r+   r   N)r  
zeros_liker1   rn  r   )r4   r6   r   r   s   &&  r    test_zoom_1_gh20999_output#TestZoom.test_zoom_1_gh20999_output=  s7     FF1Iq!Q&)"r$   r   N)rz  )r+   r   )r   r*   )r   r   )r   r   r   r   r   r   r   r   r  )r>   r>   )r   r   r   r   r   )rc   rd   re   rf   rL   rg   rh   ri   rs  rv  ry  r|  r  r  r  r  r  r  r   r  r  r0  r  r  rj   rk   rl   s   @r    rl  rl    s     [[WeAqk2	- 3	-"
D [[WeAqk2[[Wy,&?@7 A 37E
,( [[V%EF[[V &7 8
8 G
" [[Wvv&67[[V%EF[[V &D E

E G 8

 [[Vj&%9:; ;; l+NOk*MN4 O P4
* v&FG4 H4 v&FGk*=>|,>?# @ ? H#r$   rl  c                     a  ] tR tRt o ]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t	]P
                  P                  R]! ^ ^4      4      ]P
                  P                  RRR.4      R 4       4       t
]P
                  P                  R]! ^ ^4      4      R	 4       t]P
                  P                  R]! ^ ^4      4      R
 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       t]P
                  P                  R]! ^ ^4      4      R 4       tR tR t]! RRR7      R 4       tRtV tR# )
TestRotateiG  r(   c                    VP                  . RO. RO. RO.VP                  R7      p\        P                  ! V^ VR7      p\	        WC4       R# )r   rC   rq   Nr   r   r)   r)   r   r0   rP   r1   rotater   r  s   &&&  r    test_rotate01TestRotate.test_rotate01J  sE    zz<'')02

  < nnT1E2!#,r$   c                    VP                  . RO. RO. RO.VP                  R7      pVP                  . RO. RO. RO. RO.VP                  R7      p\        P                  ! V^ZVR7      p\	        WT4       R# )r   rC   rq   Nr   )r   r)   r   r   r   r   r   r   r)   r   r  r4   r(   r6   r7   r]   rw   s   &&&   r    test_rotate02TestRotate.test_rotate02R  ss    zz<'')02

  < ::y(((* 24  = nnT2U3!#0r$   rD   rP   r   c                d   \        W24      pVP                  . RO. RO. RO.VR7      pVP                  . RO. RO. R	O. R	O. RO.VR7      pVP                  VP                  R4      '       d!   VRV,          ,          pVRV,          ,          p\        P
                  ! V^ZVR7      p\        We4       R# )
r   rC   r   r   rq   Nr   r   r   r   r   r   r)   r)   r   r   r  r  )rs   r0   r   rD   r1   r  r   r  s   &&&&   r    test_rotate03TestRotate.test_rotate03^  s     "zz?**,38  : ::y((((	* 27	  8
 ::djj"455BIDX%HnnT2U3!#0r$   c                    VP                  . RO. RO. RO.VP                  R7      pVP                  . RO. RO. RO.VP                  R7      p\        P                  ! V^ZRVR7      p\	        WT4       R# )r   rC   F)rN  r(   Nr  r  r   r   r)   r   r   r  r  s   &&&   r    test_rotate04TestRotate.test_rotate04p  sq    zz?**,35::  ? ::..079zz  C nnT2uEB!#0r$   c                   \         P                  ! R4      p\        ^4       F;  p\         P                  ! . RO. RO. RO. RO.\         P                  R7      VRRV3&   K=  	  VP                  V4      pVP                  . RO. R	O. RO.VP                  R7      p\
        P                  ! V^ZVR7      p\        ^4       F  p\        VRRV3,          V4       K  	  R# )
r>   rC   r{  rq   N)r>   r+   r+   r  r  r   r  rN   r  ri   r0   rP   r1   r  r   r4   r(   r6   r7   ir]   rw   s   &&&    r    test_rotate05TestRotate.test_rotate05{  s    xx	"qAJJ	(1(1(1(3 ;=**FDAqM 
 zz$::|++-46JJ  @ nnT2U3qA%c!Q'lH= r$   c                   \         P                  ! R4      p\        ^4       F8  p\         P                  ! . RO. RO. RO.\         P                  R7      VRRV3&   K:  	  VP                  V4      pVP                  . RO. R	O. R	O. RO.VP                  R7      p\
        P                  ! V^ZVR7      p\        ^4       F  p\        VRRV3,          V4       K  	  R# )
r+   rC   r{  rq   N)r+   r>   r+   r   r  r  r  r  r  s   &&&    r    test_rotate06TestRotate.test_rotate06  s    xx	"qAJJ(4(4(6=?ZZIDAqM  zz$::y(((* 24  = nnT2U3qA%c!Q'lH= r$   c                \   VP                  . RO. RO. RO..^,          VP                  R7      pVP                  VR4      pVP                  . RO. RO. RO. RO. RO..^,          VP                  R7      pVP                  VR4      p\        P                  ! V^ZR	VR7      p\        WT4       R# )
r   rC   )axesr(   Nr  r  r*   r)   r   r  r  r#  r0   rP   permute_dimsr1   r  r   r  s   &&&   r    test_rotate07TestRotate.test_rotate07  s    zzO++- .0129;  E tY/::	 ) ) ) )	 + , /0	0 8:zz	  C
 ??8Y7nnT2F%@!#0r$   c                R   VP                  . RO. RO. RO..^,          VP                  R7      pVP                  VR4      pVP                  . RO. RO. RO..^,          VP                  R7      pVP                  VR4      p\        P                  ! V^ZR	RVR7      p\        WT4       R# )
r   rC   F)r  rN  r(   Nr  r  r  r  r#  r  r  s   &&&   r    test_rotate08TestRotate.test_rotate08  s    zzO++- .0129;  E tY/:: / / 1 2456=?ZZ  I ??8Y7nnT2FEO!#0r$   c                   VP                  . RO. RO. RO.^,          VP                  R7      p\        \        4      ;_uu_ 4        \        P
                  ! V^Z^ VP                  3R7       RRR4       R#   + '       g   i     R# ; i)r   rC   )r  Nr  r  )r0   rP   r
  r  r1   r  rQ  )r4   r6   r7   s   && r    test_rotate09TestRotate.test_rotate09  sf    zz?**,./079zz  C :&&NN41dii.9 '&&&s   &A55B	c           
     H   VP                  VP                  ^-VP                  R7      R4      pVP                  . R	O. R	O. R
O. RO. R	O.. RO. RO. RO. RO. RO.. R	O. RO. RO. R	O. R	O..VP                  R7      p\        P
                  ! V^RR7      p\        WCRRR7       R# )-   rC   F)anglerN  gư>g>rI   N)r+   r   r+   )r  r  r  )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@)rN  rO   rP   r0   r1   r  r   )r4   r6   r7   r]   rw   s   &&   r    test_rotate10TestRotate.test_rotate10  s    zz"))Bbjj)99E :: / D G /	 1
 !E D 2 D G	 I
 !0 G G / /	 12 :<  E  nnTU;Dt<r$   r}   z(https://github.com/cupy/cupy/issues/8400rw  c                    VP                  \        P                  ! \        P                  ! ^4      R4      4      p\        P
                  ! \        P
                  ! V^4      R4      p\        W#4       R# )r   N)r   r)   iL)r0   rN   tilerO   r1   r  r   )r4   r6   r2  r3  s   &&  r    test_rotate_exact_180 TestRotate.test_rotate_exact_180  sF    JJrwwryy|V45NN7>>!S148r$   r   N)rc   rd   re   rf   rL   rg   rh   ri   r  r  r  r  r  r  r  r  r  r  r0  r  rj   rk   rl   s   @r    r  r  G  s     [[WeAqk2- 3- [[WeAqk2	1 3	1 [[WeAqk2[[Wy,&?@1 A 31  [[WeAqk21 31 [[WeAqk2> 3> [[WeAqk2> 3> [[WeAqk21 31 [[WeAqk2
1 3
1:=2 v&PQ Rr$   r  )*r  r  numpyrN   scipy._lib._array_apir   r   r   r   r   r   r	   rL   r
   r
  scipy.ndimager1    r   rg   r   r0  rp  rT   r   ru   rh   ri   ro   r2   r   r:  rR   rj  r  r  r!   r2  rn  rl  r  r  r   r$   r    <module>r     s   
      *  ;;// KK11   i{;vZ F; F;R 7(()%1+.%($1 $1 ) / *$1N 7../%1+.R; R; / 0R;j 7../J, J, 0J,Z 7**+tD tD ,tDn 7++,y
 y
 -y
x 7==!D
 D
 "D
N 7<< K# K# !K#\ 7>>"S S #Sr$   