Ë
    qwjjï  ã                   ó´  — d dl Z d dlZd dlZd dlmZ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 ej&                  j(                  Zej&                  j*                  ZdZdddd	d
ddœZ G d„ d«      Z eej2                  «      ej&                  j5                  d edd«      «      ej&                  j5                  de«       G d„ d«      «       «       «       Z eej:                  «      ej&                  j5                  d ed d«      «       G d„ d«      «       «       Z eej:                  «       G d„ d«      «       Z eej@                  «       G d„ d«      «       Z! eejD                  «       G d„ d«      «       Z# eejH                  «       G d„ d«      «       Z% eejL                  «       G d„ d «      «       Z' eejP                  «       G d!„ d"«      «       Z)y)#é    N)Ú_asarrayÚassert_array_almost_equalÚis_jaxÚ	np_compatÚxp_assert_equalÚxp_assert_closeÚmake_xp_test_case)Úraisesé   )Útypesçê-�™—q=ÚreflectÚ	symmetricÚwrapÚedgeÚconstant)Úmirrorr   úgrid-mirrorú	grid-wrapÚnearestúgrid-constantc                   ó0  — e Zd Z eej
                  «      ej                  j                  ddg d¢fdg d¢fdg d¢fdg d	¢fd
g d¢fdg d¢fdg d¢fg«      d„ «       «       Z	 eej
                  «      ej                  j                  ddg d¢fdg d¢fdg d¢fdg d¢fd
g d¢fdg d¢fdg d¢fg«      d„ «       «       Z
 eej                  «      ej                  j                  dg d¢«      ej                  j                  d ed«      «      d„ «       «       «       Zy)ÚTestBoundariesz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„ }|j                  g d¢«      }t        t        j                  ||d|dd¬«      |j                  |«      «       y )Nc                 ó   — | d   dz   fS )Nr   ç      à?© ©Úxs    úk/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/ndimage/tests/test_interpolation.pyÚshiftz-TestBoundaries.test_boundaries.<locals>.shift1   ó   € Ø�a‘D˜3‘J�=Ð ó    )r   é   é   ç      @r   )é   r   )ÚcvalÚmodeÚoutput_shapeÚorder©Úasarrayr   ÚndimageÚgeometric_transform©Úselfr.   Úexpected_valueÚxpr&   Údatas         r%   Útest_boundarieszTestBoundaries.test_boundaries%   sG   € ò	!ð �z‰zš-Ó(ˆÜÜ×'Ñ'¨¨e¸"À4Ø59ÀôDà�J‰J�~Ó&õ	(r(   )r   r   r)   r*   )r*   r   r)   r*   )r   r   r)   r*   )r)   r   r)   r*   )r   r   r)   r*   c           	      ó–   — d„ }|j                  g d¢«      }t        t        j                  ||d|d¬«      |j                  |«      «       y )Nc                 ó   — | d   dz
  fS )Nr   gÍÌÌÌÌÌì?r"   r#   s    r%   r&   z.TestBoundaries.test_boundaries2.<locals>.shiftF   r'   r(   ©r   r)   r*   r   r   ©r   )r-   r.   r/   r1   r5   s         r%   Útest_boundaries2zTestBoundaries.test_boundaries2:   sD   € ò	!ð �z‰zš,Ó'ˆÜÜ×'Ñ'¨¨e¸"À4Ø59ô;à�J‰J�~Ó&õ	(r(   r.   )r   r   r   r   r   r   r0   é   c                 ó†  — t        |«      r|dvs|dkD  rt        j                  d«       t        j                  ddt        j
                  ¬«      }|j                  |«      }|j                  t        j                  ddd	¬
«      «      }t        j                  |||j                  df   ||¬«      }d}t        j                  |«      }	|j                  t        j                  |||	¬«      «      }
|j                  ||z   «      |j                  df   }t        j                  |
|||¬«      }|dk(  rdnd}t        ||d|¬«       y)z$Tests based on examples from gh-2640)r   r   r   r   r   r   z-Jax does not support grid- modes or order > 1iúÿÿÿr,   ©Údtypeiøÿÿÿé   iè  )Únum.©r0   r.   é    ©r.   r   gñhãˆµøä>r   çH¯¼šò×z>©ÚrtolÚatolN)r   ÚpytestÚxfailÚnpÚarangeÚfloat64r2   Úlinspacer3   Úmap_coordinatesÚnewaxisÚndimage_to_numpy_modeÚgetÚpadr   )r6   r.   r0   r8   Únp_datar9   r$   ÚyÚnpadÚpad_modeÚpaddedÚcoordsÚexpectedrL   s                 r%   Útest_boundary_spline_accuracyz,TestBoundaries.test_boundary_spline_accuracyO   s  € ô �2ŒJØÐMÑMØ˜’	ä�L‰LÐHÔIä—)‘)˜B ¬¯©Ô4ˆØ�z‰z˜'Ó"ˆØ�J‰J”r—{‘{ 2 r¨tÔ4Ó5ˆÜ×#Ñ# D¨!¨B¯J©J¸¨OÑ*<ÀEÐPTÔUˆð ˆÜ(×,Ñ,¨TÓ2ˆØ—‘œBŸF™F 7¨D°xÔ@ÓAˆØ—‘˜D 1™HÓ% b§j¡j°# oÑ6ˆÜ×*Ñ*¨6°6ÀÈTÔRˆà˜Ò.‰t°EˆÜ˜˜8¨$°TÖ:r(   N)Ú__name__Ú
__module__Ú__qualname__r	   r3   r4   rM   ÚmarkÚparametrizer:   r?   rS   Úranger_   r"   r(   r%   r   r   #   sO  „ á�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ð ‡[�[×Ñ˜W¡e¨A£hÓ/ñ;ó 0ó2ó 0ñ
;r(   r   r0   r)   r@   rC   c                   óH   — e Zd Zd„ Zd„ Z eddgd¬«      d„ «       Zd„ Zd	„ Zy
)Ú
TestSplinec                 ó´   — t        ||«      }|j                  g |¬«      }t        j                  ||¬«      }||j	                  d|j
                  ¬«      k(  sJ ‚y )NrB   ©r0   r   ©ÚgetattrÚonesr3   Úspline_filterr2   rC   ©r6   rC   r0   r8   r9   Úouts         r%   Útest_spline01zTestSpline.test_spline01q   sQ   € Ü˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×#Ñ# D°Ô6ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4r(   c                 óª   — t        ||«      }|j                  dg|¬«      }t        j                  ||¬«      }t	        ||j                  dg«      «       y )Nr   rB   ri   )rk   r2   r3   rm   r   rn   s         r%   Útest_spline02zTestSpline.test_spline02w   sH   € Ü˜˜EÓ"ˆØ�z‰z˜1˜# UˆzÓ+ˆÜ×#Ñ# D°Ô6ˆÜ! # r§z¡z°1°#£Õ7r(   TÚcupyzoutput=dtype is numpy-specific)Únp_onlyÚ
exceptionsÚreasonc                 ó¶   — t        ||«      }|j                  g |¬«      }t        j                  |||¬«      }||j	                  d|j
                  ¬«      k(  sJ ‚y )NrB   ©Úoutputr   rj   rn   s         r%   Útest_spline03zTestSpline.test_spline03}   sU   € ô ˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×#Ñ# D¨%¸Ô>ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4r(   c                 óª   — t        ||«      }|j                  dg|¬«      }t        j                  ||«      }t	        ||j                  g d¢«      «       y )Nr   rB   ©r   r   r   r   )rk   rl   r3   rm   r   r2   rn   s         r%   Útest_spline04zTestSpline.test_spline04…   sG   € Ü˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×#Ñ# D¨%Ó0ˆÜ! # r§z¡z²,Ó'?Õ@r(   c                 óÆ   — t        ||«      }|j                  ddg|¬«      }t        j                  ||¬«      }|j	                  g d¢g d¢g d¢g d¢g«      }t        ||«       y )Nr   rB   ri   r|   )rk   rl   r3   rm   r2   r   )r6   rC   r0   r8   r9   ro   r^   s          r%   Útest_spline05zTestSpline.test_spline05‹   s`   € Ü˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×#Ñ# D°Ô6ˆØ—:‘:š|Ú+Ú+Ú+ð-ó .ˆô 	" # xÕ0r(   N)	r`   ra   rb   rp   rr   Úskip_xp_backendsrz   r}   r   r"   r(   r%   rg   rg   l   s9   „ ò
5ò8ñ ˜d°¨xØ=ô?ñ5ó?ð5òAó1r(   rg   c                   óÌ   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  dddg«      d„ «       Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestGeometricTransformc                 óÄ   — |j                  dg«      }d„ }t        j                  |||j                  |¬«      }t	        ||j                  dg|j
                  ¬«      «       y )Nr   c                 ó   — | S ©Nr"   r#   s    r%   ÚmappingzBTestGeometricTransform.test_geometric_transform01.<locals>.mapping�   ó   € ØˆHr(   ri   rB   ©r2   r3   r4   Úshaper   rC   ©r6   r0   r8   r9   r†   ro   s         r%   Útest_geometric_transform01z1TestGeometricTransform.test_geometric_transform01š   sR   € Ø�z‰z˜1˜#‹ˆò	ô ×)Ñ)¨$°¸¿¹Ø05ô7ˆä! # r§z¡z°1°#¸S¿Y¹Y zÓ'GÕHr(   c                 óÆ   — |j                  dg«      }d„ }t        j                  |||j                  |¬«      }t	        ||j                  g d¢|j                  ¬«      «       y )Nr   c                 ó   — | S r…   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform02.<locals>.mapping§   r‡   r(   ri   r|   rB   ©rl   r3   r4   r‰   r   r2   rC   rŠ   s         r%   Útest_geometric_transform02z1TestGeometricTransform.test_geometric_transform02¤   sP   € Ø�w‰w˜�s‹|ˆò	ô ×)Ñ)¨$°¸¿¹Ø05ô7ˆä! # r§z¡z²,ÀcÇiÁi zÓ'PÕQr(   c                 óÆ   — |j                  dg«      }d„ }t        j                  |||j                  |¬«      }t	        ||j                  g d¢|j                  ¬«      «       y )Nr   c                 ó   — | d   dz
  fS ©Nr   r   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform03.<locals>.mapping±   ó   € Ø�a‘D˜1‘H�;Ðr(   ri   ©r   r   r   r   rB   rŽ   rŠ   s         r%   Útest_geometric_transform03z1TestGeometricTransform.test_geometric_transform03®   sP   € Ø�w‰w˜�s‹|ˆò	ô ×)Ñ)¨$°¸¿¹Ø05ô7ˆä! # r§z¡z²,ÀcÇiÁi zÓ'PÕQr(   c                 óÈ   — |j                  g d¢«      }d„ }t        j                  |||j                  |¬«      }t	        ||j                  g d¢|j
                  ¬«      «       y )N©r   r   r*   r)   c                 ó   — | d   dz
  fS r’   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform04.<locals>.mapping»   r“   r(   ri   ©r   r   r   r*   rB   rˆ   rŠ   s         r%   Útest_geometric_transform04z1TestGeometricTransform.test_geometric_transform04¸   sO   € Ø�z‰zš,Ó'ˆò	ô ×)Ñ)¨$°¸¿¹Ø05ô7ˆä! # r§z¡z²,ÀcÇiÁi zÓ'PÕQr(   rC   rQ   Ú
complex128c                 óH  — t        ||«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  |j                  d«      r|d|z  z  }|d|z  z  }d„ }t	        j
                  |||j                  |¬«      }t        ||«       y )Nr|   rB   r”   úcomplex floatingù              ð?c                 ó   — | d   | d   dz
  fS r’   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform05.<locals>.mappingÐ   ó   € Ø�a‘D˜!˜A™$ ™(Ð#Ð#r(   ri   )rk   r2   ÚisdtyperC   r3   r4   r‰   r   )r6   r0   rC   r8   r9   r^   r†   ro   s           r%   Útest_geometric_transform05z1TestGeometricTransform.test_geometric_transform05Â   sµ   € ä˜˜EÓ"ˆØ�z‰zš<Ú'Ú'ð)à05ð ó 7ˆð —:‘:š|Ú+Ú+ð-à49ð ó ;ˆð �:‰:�d—j‘jÐ"4Ô5Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHò	$ô ×)Ñ)¨$°¸¿¹Ø05ô7ˆä! # xÕ0r(   c                 óè   — |j                  g d¢g d¢g d¢g«      }d„ }t        j                  |||j                  |¬«      }|j                  g d¢g d¢g d¢g|j                  ¬	«      }t        ||«       y )
Nr—   ©r,   r@   é   é   ©r*   r¦   r*   r@   c                 ó   — | d   | d   dz
  fS r’   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform06.<locals>.mappingÜ   r    r(   ri   r™   ©r   r,   r@   r¥   ©r   r*   r¦   r*   rB   ©r2   r3   r4   r‰   rC   r   ©r6   r0   r8   r9   r†   ro   r^   s          r%   Útest_geometric_transform06z1TestGeometricTransform.test_geometric_transform06×   ót   € Ø�z‰zš<Ú'Ú'ð)ó *ˆò	$ô ×)Ñ)¨$°¸¿¹Ø05ô7ˆà—:‘:š|Ú+Ú+ð-à47·I±Ið ó ?ˆô 	" # xÕ0r(   c                 óè   — |j                  g d¢g d¢g d¢g«      }d„ }t        j                  |||j                  |¬«      }|j                  g d¢g d¢g d¢g|j                  ¬«      }t        ||«       y )Nr—   r¤   r§   c                 ó   — | d   dz
  | d   fS r’   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform07.<locals>.mappingë   ó   € Ø�a‘D˜1‘H˜a ™dÐ#Ð#r(   ri   ©r   r   r   r   rB   r«   r¬   s          r%   Útest_geometric_transform07z1TestGeometricTransform.test_geometric_transform07æ   r®   r(   c                 óè   — |j                  g d¢g d¢g d¢g«      }d„ }t        j                  |||j                  |¬«      }|j                  g d¢g d¢g d¢g|j                  ¬	«      }t        ||«       y )
Nr—   r¤   r§   c                 ó"   — | d   dz
  | d   dz
  fS r’   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform08.<locals>.mappingú   ó   € Ø�a‘D˜1‘H˜a ™d Q™hÐ'Ð'r(   ri   r²   r™   r©   rB   r«   r¬   s          r%   Útest_geometric_transform08z1TestGeometricTransform.test_geometric_transform08õ   st   € Ø�z‰zš<Ú'Ú'ð)ó *ˆò	(ô ×)Ñ)¨$°¸¿¹Ø05ô7ˆà—:‘:š|Ú+Ú+ð-à47·I±Ið ó ?ˆô 	" # xÕ0r(   c                 ó(  — |j                  g d¢g d¢g d¢g«      }d„ }|dkD  rt        j                  ||¬«      }n|}t        j                  |||j                  |d¬«      }|j                  g d	¢g d
¢g d¢g|j
                  ¬«      }t        ||«       y )Nr—   r¤   r§   c                 ó"   — | d   dz
  | d   dz
  fS r’   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform10.<locals>.mapping	  r¶   r(   r   ri   F©r0   Ú	prefilterr²   r™   r©   rB   )r2   r3   rm   r4   r‰   rC   r   )r6   r0   r8   r9   r†   Úfilteredro   r^   s           r%   Útest_geometric_transform10z1TestGeometricTransform.test_geometric_transform10  s•   € Ø�z‰zš<Ú'Ú'ð)ó *ˆò	(ð �AŠIÜ×,Ñ,¨T¸Ô?‰HàˆHÜ×)Ñ)¨(°G¸T¿Z¹ZØ05ÀôHˆà—:‘:š|Ú+Ú+ð-à47·I±Ið ó ?ˆô 	" # xÕ0r(   c                 óÌ   — |j                  dg|j                  ¬«      }d„ }t        j                  ||dg|¬«      }t	        ||j                  g d¢|j                  ¬«      «       y )Nr)   rB   c                 ó   — | d   dz  fS ©Nr   r)   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform13.<locals>.mapping  s   € Ø�a‘D˜A‘I�<Ðr(   r   ri   r|   )rl   rQ   r3   r4   r   r2   rC   rŠ   s         r%   Útest_geometric_transform13z1TestGeometricTransform.test_geometric_transform13  sT   € Ø�w‰w˜�s "§*¡*ˆwÓ-ˆò	 ô ×)Ñ)¨$°¸!¸ÀEÔJˆÜ! # r§z¡z²,ÀcÇiÁi zÓ'PÕQr(   c                 ó¶   — |j                  g d¢«      }d„ }t        j                  ||dg|¬«      }t        ||j                  g d¢|j                  ¬«      «       y )N©r   r¦   r)   r@   r*   r,   r   r   c                 ó   — d| d   z  fS )Nr)   r   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform14.<locals>.mapping#  s   € Ø˜˜!™‘H�;Ðr(   r   ri   r=   rB   )r2   r3   r4   r   rC   rŠ   s         r%   Útest_geometric_transform14z1TestGeometricTransform.test_geometric_transform14   sK   € Ø�z‰zÒ2Ó3ˆò	ô ×)Ñ)¨$°¸!¸ÀEÔJˆÜ! # r§z¡z²,ÀcÇiÁi zÓ'PÕQr(   c                 óª   — |j                  g d¢«      }d„ }t        j                  ||dg|¬«      }t        |d d d…   |j                  g d¢«      «       y )Nr=   c                 ó   — | d   dz  fS rÀ   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform15.<locals>.mapping,  r“   r(   r¥   ri   r)   ©r2   r3   r4   r   rŠ   s         r%   Útest_geometric_transform15z1TestGeometricTransform.test_geometric_transform15)  sJ   € Ø�z‰zš,Ó'ˆò	ô ×)Ñ)¨$°¸!¸ÀEÔJˆÜ! #¡c¨ c¡(¨B¯J©J²|Ó,DÕEr(   c           	      ó¼   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|¬«      }t        ||j                  ddgd	d
gddgg«      «       y )Nr=   ©r¦   r@   r,   r¥   ©g      "@é
   é   é   c                 ó   — | d   | d   dz  fS ©Nr   r   r)   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform16.<locals>.mapping8  r    r(   ©r*   r)   ri   r   r*   r¦   r,   é	   rÎ   rÈ   rŠ   s         r%   Útest_geometric_transform16z1TestGeometricTransform.test_geometric_transform162  sh   € ÚÚÚ!ð#ˆð �z‰z˜$Óˆò	$ô ×)Ñ)¨$°¸Ø05ô7ˆä! # r§z¡z°A°q°6¸A¸q¸6ÀAÀrÀ7Ð2KÓ'LÕMr(   c                 ó°   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|¬«      }t        ||j                  g d¢g«      «       y )Nr=   rË   ©rÓ   rÍ   rÎ   rÏ   c                 ó   — | d   dz  | d   fS ©Nr   r)   r   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform17.<locals>.mappingE  r±   r(   ©r   r   ri   rÈ   rŠ   s         r%   Útest_geometric_transform17z1TestGeometricTransform.test_geometric_transform17?  sW   € ÚÚÚð!ˆð �z‰z˜$Óˆò	$ô ×)Ñ)¨$°¸Ø05ô7ˆä! # r§z¡z²<°.Ó'AÕBr(   c                 ó°   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|¬«      }t        ||j                  ddgg«      «       y )	Nr=   rË   rÖ   c                 ó"   — | d   dz  | d   dz  fS rØ   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform18.<locals>.mappingR  r¶   r(   ©r   r)   ri   r   r*   rÈ   rŠ   s         r%   Útest_geometric_transform18z1TestGeometricTransform.test_geometric_transform18L  s[   € ÚÚÚð!ˆð �z‰z˜$Óˆò	(ô ×)Ñ)¨$°¸Ø05ô7ˆä! # r§z¡z°A°q°6°(Ó';Õ<r(   c                 óœ   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|¬«      }t        |dd d d…f   |«       y )	Nr=   rË   rÖ   c                 ó   — | d   | d   dz  fS rÑ   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform19.<locals>.mapping_  r    r(   ©r*   r¥   ri   .r)   rÈ   rŠ   s         r%   Útest_geometric_transform19z1TestGeometricTransform.test_geometric_transform19Y  sX   € ÚÚÚð!ˆð �z‰z˜$Óˆò	$ô ×)Ñ)¨$°¸Ø05ô7ˆä! # c©3¨Q¨3 h¡-°Õ6r(   c                 óœ   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|¬«      }t        |d d d…df   |«       y )	Nr=   rË   rÖ   c                 ó   — | d   dz  | d   fS rØ   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform20.<locals>.mappingl  r±   r(   ©r@   r   ri   r)   .rÈ   rŠ   s         r%   Útest_geometric_transform20z1TestGeometricTransform.test_geometric_transform20f  sX   € ÚÚÚð!ˆð �z‰z˜$Óˆò	$ô ×)Ñ)¨$°¸Ø05ô7ˆä! #¡c¨ c¨3 h¡-°Õ6r(   c                 ó¢   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|¬«      }t        |d d d…d d d…f   |«       y )Nr=   rË   rÖ   c                 ó"   — | d   dz  | d   dz  fS rØ   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform21.<locals>.mappingy  r¶   r(   ©r@   r¥   ri   r)   rÈ   rŠ   s         r%   Útest_geometric_transform21z1TestGeometricTransform.test_geometric_transform21s  s\   € ÚÚÚð!ˆð �z‰z˜$Óˆò	(ô ×)Ñ)¨$°¸Ø05ô7ˆä! #¡c¨ c©3¨Q¨3 h¡-°Õ6r(   c                 óÜ   — g d¢g d¢g d¢g}|j                  ||j                  ¬«      }d„ }d„ }t        j                  ||d|¬«      }t        j                  ||d	|¬«      }t	        ||«       y )
Nr=   rË   rÖ   rB   c                 ó"   — | d   dz  | d   dz  fS rØ   r"   r#   s    r%   Úmapping1zCTestGeometricTransform.test_geometric_transform22.<locals>.mapping1†  r¶   r(   c                 ó"   — | d   dz  | d   dz  fS rØ   r"   r#   s    r%   Úmapping2zCTestGeometricTransform.test_geometric_transform22.<locals>.mapping2‰  r¶   r(   ré   ri   ©r*   r   )r2   rQ   r3   r4   r   )r6   r0   r8   r9   rí   rï   ro   s          r%   Útest_geometric_transform22z1TestGeometricTransform.test_geometric_transform22€  sr   € ÚÚÚð!ˆð �z‰z˜$ b§j¡jˆzÓ1ˆò	(ò	(ô ×)Ñ)¨$°Ø*0¸ô?ˆä×)Ñ)¨#¨xØ*0¸ô?ˆä! # tÕ,r(   c                 ó®   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|¬«      }t        ||j                  ddg«      «       y )	Nr=   rË   rÖ   c                 ó   — d| d   dz  fS )Nr   r   r)   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform23.<locals>.mapping˜  ó   € Ø�q˜‘t˜a‘x�=Ð r(   ©r)   ri   r¦   r,   rÈ   rŠ   s         r%   Útest_geometric_transform23z1TestGeometricTransform.test_geometric_transform23’  sV   € ÚÚÚð!ˆð �z‰z˜$Óˆò	!ô ×)Ñ)¨$°¸ÀUÔKˆÜ! # r§z¡z°1°a°&Ó'9Õ:r(   c           	      ó¶   — g d¢g d¢g d¢g}|j                  |«      }d„ }t        j                  ||d|dddi¬	«      }t        ||j                  d
dg«      «       y )Nr=   rË   rÖ   c                 ó   — || d   |z  fS )Nr   r"   )r$   ÚaÚbs      r%   r†   zBTestGeometricTransform.test_geometric_transform24.<locals>.mapping¤  rô   r(   rõ   )r   rú   r)   )r0   Úextra_argumentsÚextra_keywordsr¦   r,   rÈ   rŠ   s         r%   Útest_geometric_transform24z1TestGeometricTransform.test_geometric_transform24ž  sd   € ÚÚÚð!ˆð �z‰z˜$Óˆò	!ô ×)Ñ)Ø�'˜4 u¸dØ ˜8ô%ˆô 	" # r§z¡z°1°a°&Ó'9Õ:r(   N)r`   ra   rb   r‹   r�   r•   rš   rM   rc   rd   r¢   r­   r³   r·   r½   rÁ   rÅ   rÉ   rÔ   rÚ   rÞ   râ   ræ   rê   rñ   rö   rý   r"   r(   r%   r‚   r‚   –   sš   „ òIòRòRòRð ‡[�[×Ñ˜W y°,Ð&?Ó@ñ1ó Að1ò(1ò1ò1ò1ò&RòRòFòNòCò=ò7ò7ò7ò-ò$
;ó;r(   r‚   c                   óä   — e Zd Zd„ Zej
                  j                  dg d¢«      ej
                  j                  d ed«      «      d„ «       «       Z e	dd¬	«      d
„ «       Z
 e	dd¬	«      d„ «       Zy)ÚTestGeometricTransformExtrac                 óÄ   — |j                  g d¢g d¢g|j                  ¬«      }d„ }|j                  g d¢g d¢g«      }t        t        j                  ||dd¬	«      |«       y )
N©r   r)   r*   ©r   r¦   r@   rB   c                 ó"   — | d   dz
  | d   dz
  fS )Nr   r!   r   r"   r#   s    r%   r†   zZTestGeometricTransformExtra.test_geometric_transform_grid_constant_order1.<locals>.mapping¶  ó   € Ø�a‘D˜3‘J ! A¡$¨¡*Ð-Ð-r(   ©g      Ð?g      è?ç      ô?©r  g      @r+   r   r   ©r.   r0   )r2   rQ   r   r3   r4   )r6   r8   r$   r†   Úexpected_results        r%   Ú-test_geometric_transform_grid_constant_order1zITestGeometricTransformExtra.test_geometric_transform_grid_constant_order1°  sj   € ð �J‰Jš	Ú!ð#Ø*,¯*©*ð ó 6ˆò	.ð Ÿ*™*Ò&8Ú&8ð&:ó ;ˆä!Ü×'Ñ'¨¨7¸Ø./ô1àõ	
r(   r.   ©r   r   r   r   r   r0   r@   c                 óÌ  — d„ }t        j                  dt        ¬«      j                  dd«      }d}t        j                  |«      }t        j                  |||¬«      }|j                  |«      }|j                  |«      }t        t        || «      g|j                  z  «      }	t        j                  ||||¬«      |	   }
t        t        j                  ||||¬«      |
d¬	«       y )
Nc                 ó"   — | d   dz
  | d   dz   fS )Nr   çš™™™™™Ù?r   gffffff@r"   r#   s    r%   r†   zOTestGeometricTransformExtra.test_geometric_transform_vs_padded.<locals>.mappingÆ  r  r(   é�   rB   rÏ   é   rH   r  rI   ©rK   )rO   rP   ÚfloatÚreshaperU   rV   rW   r2   ÚtupleÚsliceÚndimr3   r4   r   )r6   r0   r.   r8   r†   r$   rZ   r[   Úx_paddedÚcenter_slicer	  s              r%   Ú"test_geometric_transform_vs_paddedz>TestGeometricTransformExtra.test_geometric_transform_vs_paddedÁ  sÐ   € ò
	.ô
 �I‰I�c¤Ô'×/Ñ/°°BÓ7ˆØˆÜ(×,Ñ,¨TÓ2ˆÜ—6‘6˜!˜T¨Ô1ˆà�J‰J�q‹MˆØ—:‘:˜hÓ'ˆäœe D¨4¨%Ó0Ð1°A·F±FÑ:Ó;ˆÜ!×5Ñ5Ø�g D°ô7Ø7CñEˆô 	Ü×'Ñ'¨¨7¸Ø.3ô5àØö		
r(   Tzendianness is numpy-specific©rt   rv   c                 ó–  — t        j                  dg«      }d„ }|j                  |j                  j                  «       t        j                  |«      t        j                  |«      j                  |j                  j                  «       «      fD ]8  }t        j                  |||j                  |¬«      }|€|n|}t        |dg«       Œ: y )Nr   c                 ó   — | S r…   r"   r#   s    r%   r†   zfTestGeometricTransformExtra.test_geometric_transform_endianness_with_output_parameter.<locals>.mappingä  r‡   r(   rx   )
rO   r2   rC   ÚnewbyteorderÚ
empty_likeÚastyper3   r4   r‰   r   )r6   r8   r9   r†   ro   ÚreturnedÚresults          r%   Ú9test_geometric_transform_endianness_with_output_parameterzUTestGeometricTransformExtra.test_geometric_transform_endianness_with_output_parameterÞ  s¥   € ô �z‰z˜1˜#‹ˆò	ð —J‘J §
¡
× 7Ñ 7Ó 9Ü—M‘M $Ó'Ü—M‘M $Ó'×.Ñ.¨t¯z©z×/FÑ/FÓ/HÓIóKˆCô ×2Ñ2°4¸À$Ç*Á*Ø:=ô?ˆHà$Ð,‘S°(ˆFÜ% f¨q¨cÕ2ñKr(   ú!string `output` is numpy-specificc                 ó¾   — |j                  dg«      }d„ }t        j                  ||d¬«      }|j                  t	        j                  d«      u sJ ‚t        |dg«       y )Nr   c                 ó   — | S r…   r"   r#   s    r%   r†   zXTestGeometricTransformExtra.test_geometric_transform_with_string_output.<locals>.mappingó  r‡   r(   Úfrx   )r2   r3   r4   rC   rO   r   )r6   r8   r9   r†   ro   s        r%   Ú+test_geometric_transform_with_string_outputzGTestGeometricTransformExtra.test_geometric_transform_with_string_outputï  sR   € à�z‰z˜1˜#‹ˆò	ô ×)Ñ)¨$°ÀÔDˆØ�y‰yœBŸH™H S›MÑ)Ð)Ð)Ü! #¨ sÕ+r(   N)r`   ra   rb   r
  rM   rc   rd   re   r  r€   r"  r'  r"   r(   r%   rÿ   rÿ   ­  sˆ   „ ò
ð" ‡[�[×Ñ˜Vò &;ó <à‡[�[×Ñ˜W¡e¨A£hÓ/ñ
ó 0ó<ð
ñ4 ˜dÐ+IÔJñ3ó Kð3ñ  ˜dÐ+NÔOñ,ó Pñ,r(   rÿ   c                   óV  — e Zd Zej                  j                  d edd«      «      ej                  j                  dej                  ej                  g«      d„ «       «       Z
ej                  j                  d edd«      «      d„ «       Z edd¬	«      d
„ «       Z ed¬«      d„ «       Z edd¬«      d„ «       Zej                  j                  d¬«      ej                  j!                  dej$                  v xs  ej&                  d«      j(                  dk  d¬	«      d„ «       «       Zy)ÚTestMapCoordinatesr0   r   r@   rC   c                 óÀ  — t        |«      r|dkD  rt        j                  d«       |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g d¢g«      }|j	                  |j
                  d	«      r|d
|z  z
  }|d
|z  z
  }t        j                  |j                  «      }|dz  }|j                  |«      }t        j                  |||¬«      }t        ||«       y )Nr   ú'jax map_coordinates requires order <= 1r—   r¤   r§   r²   r™   r©   r�   rž   ri   )r   rM   rN   r2   r¡   rC   rO   Úindicesr‰   r3   rS   r   )r6   r0   rC   r8   r9   r^   Úidxro   s           r%   Útest_map_coordinates01z)TestMapCoordinates.test_map_coordinates01þ  sÍ   € ô �"Œ:˜% !š)Ü�L‰LÐBÔCà�z‰zš<Ú'Ú'ð)ó *ˆð —:‘:š|Ú+Ú+ð-ó .ˆð �:‰:�d—j‘jÐ"4Ô5Ø˜"˜t™)Ñ#ˆDØ " x¡-Ñ/ˆHä�j‰j˜Ÿ™Ó$ˆØˆq‰ˆØ�j‰j˜‹oˆä×%Ñ% d¨C°uÔ=ˆÜ! # xÕ0r(   c                 ó¶  — t        |«      r4|dkD  rt        j                  d«       |dk(  rt        j                  d«       |j                  g d¢g d¢g d¢g«      }t	        j
                  |j                  t        j                  «      }|dz  }|j                  |«      }t        j                  |d|¬«      }t        j                  |||¬«      }t        ||«       y )	Nr   r+  zoutput differs. jax bug?r—   r¤   r§   r!   ri   )r   rM   rN   r2   rO   r,  r‰   rQ   r3   r&   rS   r   )r6   r0   r8   r9   r-  Úout1Úout2s          r%   Útest_map_coordinates02z)TestMapCoordinates.test_map_coordinates02  s¬   € ä�"Œ:Ø�qŠyÜ�|‰|ÐEÔFØ˜ŠzÜ�|‰|Ð6Ô7à�z‰zš<Ú'Ú'ð)ó *ˆô �j‰j˜Ÿ™¤R§Z¡ZÓ0ˆØˆs‰
ˆØ�j‰j˜‹oˆä�}‰}˜T 3¨eÔ4ˆÜ×&Ñ& t¨S¸Ô>ˆÜ! $¨Õ-r(   ú	jax.numpyz`order` is required in jax©rv   c           
      óê  — t        g d¢g d¢g d¢gd|¬«      }t        j                  |j                  «      dz
  }|j	                  |«      }t        j                  ||«      }|j	                  g d¢g d¢g d	¢g«      }t        ||«       t        |t        j                  |d
«      «       t        j                  |d d d…df   j                  «      dz
  }|j	                  |«      }t        j                  |d d d…df   |«      }t        ||j	                  g d¢g d¢g«      «       t        |t        j                  |d d d…df   d
«      «       t        j                  |d d …d d d…f   j                  «      dz
  }|j	                  |«      }t        j                  |d d …d d d…f   |«      }t        ||j	                  ddgddgddgg«      «       t        |t        j                  |d d …d d d…f   d
«      «       y )Nr—   r¤   r§   ÚF)r0   r8   r   r²   r™   r©   ©r   r   r)   .r   r   r,   )	r   rO   r,  r‰   r2   r3   rS   r   r&   )r6   r8   r9   r-  ro   r^   s         r%   Útest_map_coordinates03z)TestMapCoordinates.test_map_coordinates03(  s¼  € äšÚ%Ú%ð'à.1°bô:ˆô �j‰j˜Ÿ™Ó$ qÑ(ˆØ�j‰j˜‹oˆÜ×%Ñ% d¨CÓ0ˆØ—:‘:š|Ú+Ú+ð-ó .ˆô 	" # xÔ0Ü! #¤w§}¡}°T¸6Ó'BÔCä�j‰j˜™c ˜c 3˜h™×-Ñ-Ó.°Ñ2ˆØ�j‰j˜‹oˆÜ×%Ñ% d©3¨Q¨3°¨8¡n°cÓ:ˆÜ! # r§z¡z²<Ú3?ð3Aó (Bô 	Cä! #¤w§}¡}°T¹#¸A¸#¸s¸(±^ÀVÓ'LÔMä�j‰j˜ša¡ 1 ˜f™×+Ñ+Ó,¨qÑ0ˆØ�j‰j˜‹oˆÜ×%Ñ% dª1©c°¨c¨6¡l°CÓ8ˆÜ! # r§z¡z°A°q°6¸A¸q¸6ÀAÀqÀ6Ð2JÓ'KÔLÜ! #¤w§}¡}°Tº!¹S¸q¸S¸&±\À6Ó'JÕKr(   T)rt   c                 ó   — t        j                  ddgddgg«      }t        j                  ddgddgg«      }t        j                  |j                  «      }|dz  }|j                  |j                  j                  «       t        j                  |«      t        j                  |«      j                  |j                  j                  «       «      fD ],  }t        j                  |||¬«      }|€|n|}t        ||«       Œ. y )Nr   r)   r,   r@   r   rx   )rO   r2   r,  r‰   rC   r  r  r  r3   rS   r   )r6   r8   r9   r^   r-  ro   r   r!  s           r%   Ú5test_map_coordinates_endianness_with_output_parameterzHTestMapCoordinates.test_map_coordinates_endianness_with_output_parameterC  sÔ   € ô �z‰z˜A˜q˜6 A q 6Ð*Ó+ˆÜ—:‘:  1˜v¨¨1 vÐ.Ó/ˆÜ�j‰j˜Ÿ™Ó$ˆØˆq‰ˆà�J‰JØ�J‰J×#Ñ#Ó%Ü�M‰M˜(Ó#Ü�M‰M˜(Ó#×*Ñ*¨8¯>©>×+FÑ+FÓ+HÓIó	
ˆCô ×.Ñ.¨t°SÀÔEˆHØ$Ð,‘S°(ˆFÜ% f¨hÕ7ñ
r(   r#  r  c                 ó:  — |j                  dgg«      }t        j                  |j                  «      }|j                  |«      }t	        j
                  ||d¬«      }|j                  t        j                  d«      u sJ ‚t        ||j                  dgg«      «       y ©Nr   r&  rx   )r2   rO   r,  r‰   r3   rS   rC   r   )r6   r8   r9   r-  ro   s        r%   Ú'test_map_coordinates_with_string_outputz:TestMapCoordinates.test_map_coordinates_with_string_outputW  sx   € à�z‰z˜A˜3˜%Ó ˆÜ�j‰j˜Ÿ™Ó$ˆØ�j‰j˜‹oˆÜ×%Ñ% d¨C¸Ô<ˆØ�y‰yœBŸH™H S›MÑ)Ð)Ð)Ü! # r§z¡z°A°3°%Ó'8Õ9r(   )Úcpu_onlyÚwin32r¥   z2do not run on 32 bit or windows (no sparse memory)c                 ój  — 	 d}t        j                  |dz  t         j                  ¬«      j                  ||«      }d||dz
  d …|dz
  d …f<   t	        j
                  |j                  |«      |j                  |dz
  g|dz
  gg«      d¬«       y # t        $ r}t        j                  d	«      |‚d }~ww xY w)
Ni0u  r)   rB   r   r*   r   r   ri   zNot enough memory available)
rO   ÚemptyÚfloat32r  r3   rS   r2   ÚMemoryErrorrM   Úskip)r6   r8   Únrù   Úes        r%   Útest_map_coordinates_large_dataz2TestMapCoordinates.test_map_coordinates_large_data`  s©   € ð
	DØˆAä—‘˜˜A™¤R§Z¡ZÔ0×8Ñ8¸¸AÓ>ˆAà !ˆAˆa�!‰e‰f�a˜!‘e‘fˆnÑÜ×#Ñ#Ø—
‘
˜1“˜rŸz™z¨A°©G¨9°q¸3±w°iÐ*@ÓAÈöøô ò 	DÜ—+‘+Ð;Ó<À!ÐCûð	Dús   ‚BB Â	B2ÂB-Â-B2N)r`   ra   rb   rM   rc   rd   re   rO   rQ   r›   r.  r2  r€   r8  r:  r=  ÚskipifÚsysÚplatformÚintpÚitemsizerG  r"   r(   r%   r)  r)  û  sB  „ ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2Ø‡[�[×Ñ˜W r§z¡z°2·=±=Ð&AÓBñ1ó Có 3ð1ð* ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ.ó 3ð.ñ$ �kÐ*FÔGñLó HðLñ4 ˜dÔ#ñ8ó $ð8ñ& ˜dÐ+NÔOñ:ó Pð:ð ‡[�[×!Ñ!¨4Ð!Ó0Ø‡[�[×Ñ˜ 3§<¡<Ð/ÒJ°7°2·7±7¸1³:×3FÑ3FÈÑ3Jð 4ð ó 5ñDó5ó 1ñDr(   r)  c                   ó\
  — e Zd Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Z	ej                  j                  d edd«      «      d„ «       Z
ej                  j                  d edd«      «      ej                  j                  dd	d
g«      d„ «       «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Z edd¬«      ej                  j                  d edd«      «      d„ «       «       Z edd¬«      ej                  j                  d edd«      «      d„ «       «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d „ «       Zej                  j                  d edd«      «      d!„ «       Zej                  j                  d edd«      «      d"„ «       Z ej                  j                  d edd«      «      d#„ «       Z! edd$¬«      d%„ «       Z" e#d&d'¬(«      d)„ «       Z$ e#d&d'¬(«      d*„ «       Z% e#d&d+¬(«      d,„ «       Z& e#d&d-¬(«      d.„ «       Z'ej                  j                  d/g d0¢«      ej                  j                  d edd«      «      d1„ «       «       Z(ej                  j                  d edd«      «      d2„ «       Z)y3)4ÚTestAffineTransformr0   r   r@   c                 ó²   — |j                  dg«      }t        j                  ||j                  dgg«      |¬«      }t        ||j                  dg«      «       y )Nr   ri   ©r2   r3   Úaffine_transformr   ©r6   r0   r8   r9   ro   s        r%   Útest_affine_transform01z+TestAffineTransform.test_affine_transform01v  sF   € à�z‰z˜1˜#‹ˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸Ó->ÀeÔLˆÜ! # r§z¡z°1°#£Õ7r(   c                 ó´   — |j                  dg«      }t        j                  ||j                  dgg«      |¬«      }t	        ||j                  g d¢«      «       y )Nr   r   ri   r|   ©rl   r3   rQ  r2   r   rR  s        r%   Útest_affine_transform02z+TestAffineTransform.test_affine_transform02|  sE   € à�w‰w˜�s‹|ˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸Ó->ÀeÔLˆÜ! # r§z¡z²,Ó'?Õ@r(   c                 ó¶   — |j                  dg«      }t        j                  ||j                  dgg«      d|¬«      }t	        ||j                  g d¢«      «       y )Nr   r   r   ri   r”   rU  rR  s        r%   Útest_affine_transform03z+TestAffineTransform.test_affine_transform03‚  sG   € à�w‰w˜�s‹|ˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸Ó->ÀÈ%ÔPˆÜ! # r§z¡z²,Ó'?Õ@r(   c                 ó¸   — |j                  g d¢«      }t        j                  ||j                  dgg«      d|¬«      }t        ||j                  g d¢«      «       y )Nr—   r   r   ri   r™   rP  rR  s        r%   Útest_affine_transform04z+TestAffineTransform.test_affine_transform04ˆ  sF   € à�z‰zš,Ó'ˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸Ó->ÀÈ%ÔPˆÜ! # r§z¡z²,Ó'?Õ@r(   rC   rQ   r›   c                 ó\  — t        ||«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  |j                  d«      r|d|z  z  }|d|z  z  }t	        j
                  ||j                  ddgddgg«      ddg|¬	«      }t        ||«       y )
Nr|   rB   r”   r�   rž   r   r   r   ri   )rk   r2   r¡   rC   r3   rQ  r   ©r6   r0   rC   r8   r9   r^   ro   s          r%   Útest_affine_transform05z+TestAffineTransform.test_affine_transform05Ž  sÆ   € ô ˜˜EÓ"ˆØ�z‰zš<Ú'Ú'ð)à05ð ó 7ˆð —:‘:š|Ú+Ú+ð-à49ð ó ;ˆð �:‰:�d—j‘jÐ"4Ô5Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHÜ×&Ñ& t¨R¯Z©Z¸!¸Q¸À!ÀQÀÐ8HÓ-IØ()¨2 w°eô=ˆä! # xÕ0r(   c           	      óà   — |j                  g d¢g d¢g d¢g«      }t        j                  ||j                  ddgddgg«      ddg|¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr—   r¤   r§   r   r   r   ri   r™   r©   rª   rP  rR  s        r%   Útest_affine_transform06z+TestAffineTransform.test_affine_transform06Ÿ  sw   € à�z‰zš<Ú'Ú'ð)ó *ˆô ×&Ñ& t¨R¯Z©Z¸!¸Q¸À!ÀQÀÐ8HÓ-IØ()¨2 w°eô=ˆä! # r§z¡z²<Ú3?Ú3?ð3Aó (Bõ 	Cr(   c           	      óà   — |j                  g d¢g d¢g d¢g«      }t        j                  ||j                  ddgddgg«      ddg|¬«      }t        ||j                  g d¢g d¢g d¢g«      «       y )	Nr—   r¤   r§   r   r   r   ri   r²   rP  rR  s        r%   Útest_affine_transform07z+TestAffineTransform.test_affine_transform07ª  sw   € à�z‰zš<Ú'Ú'ð)ó *ˆô ×&Ñ& t¨R¯Z©Z¸!¸Q¸À!ÀQÀÐ8HÓ-IØ(*¨A w°eô=ˆä! # r§z¡z²<Ú3?Ú3?ð3Aó (Bõ 	Cr(   c           	      óà   — |j                  g d¢g d¢g d¢g«      }t        j                  ||j                  ddgddgg«      ddg|¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr—   r¤   r§   r   r   r   ri   r²   r™   r©   rP  rR  s        r%   Útest_affine_transform08z+TestAffineTransform.test_affine_transform08µ  sw   € à�z‰zš<Ú'Ú'ð)ó *ˆô ×&Ñ& t¨R¯Z©Z¸!¸Q¸À!ÀQÀÐ8HÓ-IØ(*¨B x°uô>ˆä! # r§z¡z²<Ú3?Ú3?ð3Aó (Bõ 	Cr(   c           	      ó   — |j                  g d¢g d¢g d¢g«      }|dkD  rt        j                  ||¬«      }n|}t        j                  ||j                  ddgddgg«      ddg|d¬	«      }t	        ||j                  g d
¢g d¢g d¢g«      «       y )Nr—   r¤   r§   r   ri   r   r   Frº   r²   r™   r©   )r2   r3   rm   rQ  r   ©r6   r0   r8   r9   r¼   ro   s         r%   Útest_affine_transform09z+TestAffineTransform.test_affine_transform09À  sš   € à�z‰zš<Ú'Ú'ð)ó *ˆð �AŠIÜ×,Ñ,¨T¸Ô?‰HàˆHÜ×&Ñ& x°·±¸aÀ¸VÀaÈÀVÐ<LÓ1MØ(*¨B x°uØ16ô8ˆô 	" # r§z¡z²<Ú3?Ú3?ð3Aó (Bõ 	Cr(   c                 óÎ   — |j                  dg|j                  ¬«      }t        j                  ||j	                  dgg«      d|¬«      }t        ||j	                  g d¢«      «       y )Nr)   rB   r!   r>   )r/   r0   ©r   r   r   r   )rl   rQ   r3   rQ  r2   r   rR  s        r%   Útest_affine_transform10z+TestAffineTransform.test_affine_transform10Ð  sS   € à�w‰w˜�s "§*¡*ˆwÓ-ˆÜ×&Ñ& t¨R¯Z©Z¸#¸¸Ó-@ÈtØ-2ô4ˆä! # r§z¡z²,Ó'?Õ@r(   c                 óº   — |j                  g d¢«      }t        j                  ||j                  dgg«      dd|¬«      }t        ||j                  g d¢«      «       y )NrÃ   r)   r   r>   ri   r=   rP  rR  s        r%   Útest_affine_transform11z+TestAffineTransform.test_affine_transform11×  sI   € à�z‰zÒ2Ó3ˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸Ó->ÀÀ4ÈuÔUˆÜ! # r§z¡z²,Ó'?Õ@r(   c                 óÆ   — |j                  g d¢«      }t        j                  ||j                  dgg«      dd|¬«      }t        |d d d…   |j                  g d¢«      «       y )Nr=   r!   r   ©r¥   ri   r)   rP  rR  s        r%   Útest_affine_transform12z+TestAffineTransform.test_affine_transform12Ý  sQ   € à�z‰zš,Ó'ˆÜ×&Ñ& t¨R¯Z©Z¸#¸¸Ó-@À!ÀTÐQVÔWˆÜ! #¡c¨ c¡(¨B¯J©J²|Ó,DÕEr(   c           	      óâ   — g d¢g d¢g d¢g}|j                  |«      }t        j                  ||j                  ddgddgg«      dd|¬«      }t        ||j                  dd	gd
dgddgg«      «       y )Nr=   rË   rÌ   r   r   r)   rÒ   ri   r*   r¦   r,   rÓ   rÎ   rP  rR  s        r%   Útest_affine_transform13z+TestAffineTransform.test_affine_transform13ã  sy   € âÚÚ!ð#ˆð �z‰z˜$ÓˆÜ×&Ñ& t¨R¯Z©Z¸!¸Q¸À!ÀQÀÐ8HÓ-IÈ1ÈfØ-2ô4ˆä! # r§z¡z°A°q°6¸A¸q¸6ÀAÀrÀ7Ð2KÓ'LÕMr(   c                 óÖ   — g d¢g d¢g d¢g}|j                  |«      }t        j                  ||j                  ddgddgg«      dd|¬«      }t        ||j                  g d¢g«      «       y )	Nr=   rË   rÖ   r)   r   r   rÙ   ri   rP  rR  s        r%   Útest_affine_transform14z+TestAffineTransform.test_affine_transform14í  sh   € âÚÚð!ˆð �z‰z˜$ÓˆÜ×&Ñ& t¨R¯Z©Z¸!¸Q¸À!ÀQÀÐ8HÓ-IÈ1ÈfØ-2ô4ˆä! # r§z¡z²<°.Ó'AÕBr(   c                 óÖ   — g d¢g d¢g d¢g}|j                  |«      }t        j                  ||j                  ddgddgg«      dd|¬«      }t        ||j                  dd	gg«      «       y )
Nr=   rË   rÖ   r)   r   rÝ   ri   r   r*   rP  rR  s        r%   Útest_affine_transform15z+TestAffineTransform.test_affine_transform15÷  sl   € âÚÚð!ˆð �z‰z˜$ÓˆÜ×&Ñ& t¨R¯Z©Z¸!¸Q¸À!ÀQÀÐ8HÓ-IÈ1ÈfØ-2ô4ˆä! # r§z¡z°A°q°6°(Ó';Õ<r(   c                 óÂ   — g d¢g d¢g d¢g}|j                  |«      }t        j                  ||j                  ddgddgg«      dd|¬	«      }t        |d
d d d…f   |«       y )Nr=   rË   rÖ   r   ç        r   r!   rá   ri   .r)   rP  rR  s        r%   Útest_affine_transform16z+TestAffineTransform.test_affine_transform16  si   € âÚÚð!ˆð �z‰z˜$ÓˆÜ×&Ñ& t¨R¯Z©Z¸!¸S¸ÀAÀsÀ8Ð8LÓ-MÈqØ'-°Uô<ˆä! # c©3¨Q¨3 h¡-°Õ6r(   c                 óÂ   — g d¢g d¢g d¢g}|j                  |«      }t        j                  ||j                  ddgddgg«      dd|¬«      }t        |d d d	…d
f   |«       y )Nr=   rË   rÖ   r!   r   r   rå   ri   r)   .rP  rR  s        r%   Útest_affine_transform17z+TestAffineTransform.test_affine_transform17  si   € âÚÚð!ˆð �z‰z˜$ÓˆÜ×&Ñ& t¨R¯Z©Z¸#¸q¸ÀAÀqÀ6Ð8JÓ-KÈQØ'-°Uô<ˆä! #¡c¨ c¨3 h¡-°Õ6r(   c                 óÄ   — |j                  g d¢g d¢g d¢g«      }t        j                  ||j                  ddgddgg«      dd|¬«      }t        |d d d…d d d…f   |«       y )	Nr=   rË   rÖ   r!   r   ré   ri   r)   rP  rR  s        r%   Útest_affine_transform18z+TestAffineTransform.test_affine_transform18  sj   € à�z‰zš<Ú'Ú*ð,ó -ˆô ×&Ñ& t¨R¯Z©Z¸#¸q¸ÀAÀsÀ8Ð8LÓ-MÈqØ'-°Uô<ˆä! #¡c¨ c©3¨Q¨3 h¡-°Õ6r(   c                 ó$  — |j                  g d¢g d¢g d¢g|j                  ¬«      }t        j                  ||j                  ddgddgg«      dd|¬«      }t        j                  ||j                  d	dgdd	gg«      dd
|¬«      }t	        ||«       y )Nr=   rË   rÖ   rB   r!   r   ré   ri   ç       @rð   )r2   rQ   r3   rQ  r   rR  s        r%   Útest_affine_transform19z+TestAffineTransform.test_affine_transform19  s—   € à�z‰zš<Ú'Ú*ð,à35·:±:ð ó ?ˆô ×&Ñ& t¨R¯Z©Z¸#¸q¸ÀAÀsÀ8Ð8LÓ-MÈqØ'-°Uô<ˆä×&Ñ& s¨B¯J©J¸¸a¸À1ÀcÀ(Ð7KÓ,LÈaØ'-°Uô<ˆä! # tÕ,r(   rs   z(https://github.com/cupy/cupy/issues/8394r4  c                 óÐ   — g d¢g d¢g d¢g}|j                  |«      }t        j                  ||j                  dgdgg«      dd|¬«      }t        ||j                  dd	g«      «       y )
Nr=   rË   rÖ   r   r)   rõ   ri   r   r*   rP  rR  s        r%   Útest_affine_transform20z+TestAffineTransform.test_affine_transform20)  óg   € ò ÚÚð!ˆð �z‰z˜$ÓˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸q¸c¸
Ó-CÀQÈØ-2ô4ˆä! # r§z¡z°1°a°&Ó'9Õ:r(   c                 óÐ   — g d¢g d¢g d¢g}|j                  |«      }t        j                  ||j                  dgdgg«      dd|¬«      }t        ||j                  dd	g«      «       y )
Nr=   rË   rÖ   r)   r   rõ   ri   r   rÓ   rP  rR  s        r%   Útest_affine_transform21z+TestAffineTransform.test_affine_transform214  r�  r(   c                 ó¼   — |j                  g d¢«      }t        j                  ||j                  dgg«      dgd|¬«      }t        ||j                  g d¢«      «       y )Nr—   r)   r   )r*   ri   ©r   r   r)   rP  rR  s        r%   Útest_affine_transform22z+TestAffineTransform.test_affine_transform22?  sO   € ð �z‰zš,Ó'ˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸Ó->ÀÀÀdØ-2ô4ˆä! # r§z¡z²)Ó'<Õ=r(   c                 óÈ   — |j                  g d¢«      }t        j                  ||j                  dgg«      dgd|¬«      }t        |d d d…   |j                  g d¢«      «       y )Nr—   r!   r   rm  ri   r)   r™   rP  rR  s        r%   Útest_affine_transform23z+TestAffineTransform.test_affine_transform23G  sW   € ð �z‰zš,Ó'ˆÜ×&Ñ& t¨R¯Z©Z¸#¸¸Ó-@À2À$ÈØ-2ô4ˆä! #¡c¨ c¡(¨B¯J©J²|Ó,DÕEr(   c                 óp  — |j                  g d¢«      }t        j                  «       5  t        j                  ddt        «       t        j                  ||j                  dg«      d|¬«      }d d d «       t        j                  ||j                  dgg«      d|¬«      }t        |«       y # 1 sw Y   Œ@xY w)Nr—   Úignoreú@The behavior of affine_transform with a 1-D array .* has changedr)   r   ri   ©r2   ÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningr3   rQ  r   ©r6   r0   r8   r9   r0  r1  s         r%   Útest_affine_transform24z+TestAffineTransform.test_affine_transform24O  s”   € ð �z‰zš,Ó'ˆÜ×$Ñ$Õ&Ü×#Ñ#ØØRÜôô ×+Ñ+¨D°"·*±*¸a¸S³/À2ÈUÔSˆD÷ 'ô ×'Ñ'¨¨b¯j©j¸1¸#¸Ó.?ÀÈ5ÔQˆÜ! $¨Õ-÷ 'Ð&úó   ¨AB,Â,B5c                 óp  — |j                  g d¢«      }t        j                  «       5  t        j                  ddt        «       t        j                  ||j                  dg«      d|¬«      }d d d «       t        j                  ||j                  dgg«      d|¬«      }t        |«       y # 1 sw Y   Œ@xY w)Nr—   rŠ  r‹  r!   r   ri   rŒ  r‘  s         r%   Útest_affine_transform25z+TestAffineTransform.test_affine_transform25\  s–   € ð �z‰zš,Ó'ˆÜ×$Ñ$Õ&Ü×#Ñ# Hð%Ü&1ô3ô ×+Ñ+¨D°"·*±*¸c¸UÓ2CÀRÈuÔUˆD÷	 'ô
 ×'Ñ'¨¨b¯j©j¸3¸%¸Ó.AÀ2ÈUÔSˆÜ! $¨Õ-÷ 'Ð&úr“  c           
      ó‚  — |j                  g d¢g d¢g d¢g«      }|dkD  rt        j                  ||¬«      }n|}|j                  d«      }|j	                  d«       }|j                  ||fd¬«      }|j                  ||j                  g d	¢g«      fd
¬«      }|j                  |d«      D �	cg c]  }	t        |	«      ‘Œ }
}	t        j                  |||
|d¬«      }t        j                  |||d¬«      }t        j                  |||d¬«      }|||fD ]&  }t        ||j                  g d¢g d¢g d¢g«      «       Œ( y c c}	w )Nr—   r¤   r§   r   ri   r)   ©r)   r   ©Úaxis)rv  r   r   r   )r   Frº   r²   r™   r©   )
r2   r3   rm   Úeyerl   Úconcatr  r  rQ  r   )r6   r0   r8   r9   r¼   Útform_originalÚoffset_originalÚtform_h1Útform_h2r$   Úoffsr0  r1  Úout3ro   s                  r%   Útest_affine_transform26z+TestAffineTransform.test_affine_transform26h  sG  € ð �z‰zš<Ú'Ú'ð)ó *ˆð �AŠIÜ×,Ñ,¨T¸Ô?‰HàˆHØŸ™ ›ˆØŸ7™7 6›?Ð*ˆà—9‘9˜n¨oÐ>ÀQ�9ÓGˆØ—9‘9˜h¨¯
©
²K°=Ó(AÐBÈ�9ÓKˆà"$§*¡*¨_¸eÔ"DÓEÑ"D˜Q”�a•Ð"DˆÐEä×'Ñ'¨°.Ø(,Ø.3¸uôFˆô ×'Ñ'¨°(À%Ø27ô9ˆä×'Ñ'¨°(À%Ø27ô9ˆà˜$ Ó%ˆCÜ% c¨2¯:©:²|Ú7CÚ7Cð7Eó ,Fõ Gñ &ùò Fs   Â-D<zdoes not raisec                 ó.  — |j                  g d¢g d¢g d¢g«      }|j                  |j                  d«      |j                  d«       fd¬«      }|j                  ||j                  g d¢g«      fd	¬«      }t	        t
        t        j                  ||«       y )
Nr—   r¤   r§   r)   r—  r   r˜  )ç      @r)   r   r   )r2   r›  rš  rl   Úassert_raisesÚ
ValueErrorr3   rQ  )r6   r8   r9   rž  rŸ  s        r%   Útest_affine_transform27z+TestAffineTransform.test_affine_transform27†  s�   € ð �z‰zš<Ú'Ú'ð)ó *ˆð —9‘9˜bŸf™f Q›i¨"¯'©'°&«/Ð)9Ð:À!�9ÓDˆØ—9‘9˜h¨¯
©
²K°=Ó(AÐBÈ�9ÓKˆä”j¤'×":Ñ":¸DÀ(ÕKr(   Tzbyteorder is numpy-specificr  c           	      ó6  — |j                  d«      }|j                  |«      |j                  |«      j                  |j                  j	                  «       «      |j                  |j                  j	                  «       fD ]Œ  }t        j                  «       5  t        j                  ddt        «       |j                  ddg«      }t        j                  |||¬«      }d d d «       €|n|}t        ||j                  ddgddgg«      «       ŒŽ y # 1 sw Y   Œ3xY w)N)r)   r)   rŠ  r‹  r   rx   )rl   r  r  rC   r  r�  rŽ  r�  r�  r2   r3   rQ  r   )r6   r8   r9   ro   Úmatrixr   r!  s          r%   Ú9test_affine_transform_1d_endianness_with_output_parameterzMTestAffineTransform.test_affine_transform_1d_endianness_with_output_parameter‘  sí   € ð �w‰w�v‹ˆØ—M‘M $Ó'Ø—M‘M $Ó'×.Ñ.¨t¯z©z×/FÑ/FÓ/HÓIØ—J‘J §
¡
× 7Ñ 7Ó 9ó;ˆCô ×(Ñ(Õ*Ü×'Ñ'¨ð,Ü-8ô:ð Ÿ™ Q¨ FÓ+�Ü"×3Ñ3°D¸&ÈÔM�÷ +ð %Ð,‘S°(ˆFÜ% f¨b¯j©j¸1¸a¸&À1ÀaÀ&Ð9IÓ.JÕKñ;÷ +Ð*ús   ÂADÄD	c                 óÊ  — t        j                  dg«      }|j                  |j                  j                  «       t        j                  |«      t        j                  |«      j                  |j                  j                  «       «      fD ]U  }t        j                  |t        j                  dgg«      |¬«      }|€|n|}t        |t        j                  dg«      «       ŒW y )Nr   rx   )	rO   r2   rC   r  r  r  r3   rQ  r   )r6   r8   r9   ro   r   r!  s         r%   Ú>test_affine_transform_multi_d_endianness_with_output_parameterzRTestAffineTransform.test_affine_transform_multi_d_endianness_with_output_parameter¢  s«   € ô
 �z‰z˜1˜#‹ˆØ—J‘J §
¡
× 7Ñ 7Ó 9Ü—M‘M $Ó'Ü—M‘M $Ó'×.Ñ.¨t¯z©z×/FÑ/FÓ/HÓIóKˆCô ×/Ñ/°´b·j±jÀ1À#ÀÓ6GÐPSÔTˆHØ$Ð,‘S°(ˆFÜ% f¬b¯j©j¸!¸«oÕ>ñKr(   z+`out` of a different size is numpy-specificc                 ób  — |j                  d|j                  ¬«      }|j                  d«      }t        j                  ||j                  dgg«      |¬«       t        |d d |«       t        j                  t        «      5  t        j                  |dgg|d¬«       d d d «       y # 1 sw Y   y xY w)Nr¥   rB   )é   r   rx   )rÏ   )ry   r/   )
rP   rQ   rl   r3   rQ  r2   r   rM   r
   ÚRuntimeError©r6   r8   r9   ro   s       r%   Ú"test_affine_transform_output_shapez6TestAffineTransform.test_affine_transform_output_shape¯  s‹   € ð
 �y‰y˜ "§*¡*ˆyÓ-ˆØ�g‰g�e‹nˆä× Ñ   r§z¡z°A°3°%Ó'8ÀÕEÜ! # b q '¨4Ô0ô �]‰]œ<Õ(Ü×$Ñ$Ø˜�s�e C°eõ=÷ )×(Ñ(ús   Â B%Â%B.r#  c                 óø   — |j                  dg«      }t        j                  ||j                  dgg«      d¬«      }|j                  t	        j                  d«      u sJ ‚t        ||j                  dg«      «       y r<  )r2   r3   rQ  rC   rO   r   r°  s       r%   Ú(test_affine_transform_with_string_outputz<TestAffineTransform.test_affine_transform_with_string_output¿  s`   € à�z‰z˜1˜#‹ˆÜ×&Ñ& t¨R¯Z©Z¸!¸¸Ó->ÀsÔKˆØ�y‰yœBŸH™H S›MÑ)Ð)Ð)Ü! # r§z¡z°1°#£Õ7r(   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<   t        j                  |«      |d d …df<   t        j                  ||d¬«      }|j                  |«      }|j                  |«      }|j                  |«      }t        t        j                  ||d|¬	«      |«       y )
Nr   r   r)   r*   ©r)   r*   rµ  r˜  r   r  )rO   r2   Úzerosrš  Úrollr   r3   rQ  )r6   r&   r0   r8   r$   Úaffiner^   s          r%   Ú)test_affine_transform_shift_via_grid_wrapz=TestAffineTransform.test_affine_transform_shift_via_grid_wrapÆ  s¿   € ô
 �J‰J˜˜A˜Ø˜A˜ð ó !ˆä—‘˜&Ó!ˆÜŸ™ ›ˆˆr�ˆr�2�A�2ˆv‰Ü—z‘z %Ó(ˆŠq�!ˆt‰ä—7‘7˜1˜e¨&Ô1ˆà�J‰J�q‹MˆØ—‘˜FÓ#ˆØ—:‘:˜hÓ'ˆä!Ü×$Ñ$ Q¨°[ÈÔNØõ	
r(   c                 óÒ  — t        j                  g d¢g d¢g«      }|d d d…d d d…f   j                  «       }|j                  |«      }|j                  |«      }t        j                  ddg«      }t        j                  d«      |d d…d d…f<   t        j                  |j
                  «      |d d …df<   |j                  |«      }t        t        j                  ||d|¬«      |«       y )Nr…  ©r*   r   r¦   r   r)   r*   r   r  )	rO   r2   Úcopyr¹  rš  r‰   r   r3   rQ  )r6   r0   r8   r$   r^   r»  s         r%   Ú#test_affine_transform_shift_reflectz7TestAffineTransform.test_affine_transform_shift_reflectÜ  sË   € ô �J‰Jš	Ú!ð#ó $ˆà‘T�r�T™4˜R˜4�Z‘=×%Ñ%Ó'ˆØ�J‰J�q‹MˆØ—:‘:˜hÓ'ˆä—‘˜1˜a˜&Ó!ˆÜŸ™ ›ˆˆr�ˆr�2�A�2ˆv‰Ü—z‘z !§'¡'Ó*ˆŠq�!ˆt‰Ø—‘˜FÓ#ˆä!Ü×$Ñ$ Q¨°YÀeÔLØõ	
r(   N)*r`   ra   rb   rM   rc   rd   re   rS  rV  rX  rZ  r]  r_  ra  rc  rf  ri  rk  rn  rp  rr  rt  rw  ry  r{  r~  Úxfail_xp_backendsr€  rƒ  r†  rˆ  r’  r•  r¢  r§  r€   rª  r¬  r±  r³  r¼  rÀ  r"   r(   r%   rN  rN  s  sÆ  „ ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ8ó 3ð8ð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2Ø‡[�[×Ñ˜W y°,Ð&?Ó@ñ1ó Aó 3ð1ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñFó 3ðFð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñNó 3ðNð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ=ó 3ð=ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ7ó 3ð7ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ7ó 3ð7ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ7ó 3ð7ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ-ó 3ð-ñ �vÐ&PÔQØ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ;ó 3ó Rð;ñ �vÐ&PÔQØ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ;ó 3ó Rð;ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ>ó 3ð>ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñFó 3ðFð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ
.ó 3ð
.ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ	.ó 3ð	.ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ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à‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ
ó 3óIð
ð& ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ
ó 3ñ
r(   rN  c                   ó¬  — e Zd Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Z	ej                  j                  d edd«      «      d„ «       Z
ej                  j                  d edd«      «      ej                  j                  dd	d
g«      d„ «       «       Zej                  j                  d edd«      «      ej                  j                  dddg«      ej                  j                  dd	d
g«      d„ «       «       «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  dg d¢«      ej                  j                  d edd«      «      d„ «       «       Zej                  j                  dg d¢«      ej                  j                  d edd«      «      d„ «       «       Zd„ Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      ej                  j                  dddg«      d„ «       «       Zej                  j                  dg d¢«      ej                  j                  d ed«      «      d„ «       «       Zy )!Ú	TestShiftr0   r   r@   c                 ó’   — |j                  dg«      }t        j                  |dg|¬«      }t        ||j                  dg«      «       y )Nr   ri   r   ©r2   r3   r&   r   rR  s        r%   Útest_shift01zTestShift.test_shift01ó  s9   € à�z‰z˜1˜#‹ˆÜ�m‰m˜D 1 #¨UÔ3ˆÜ! # r§z¡z°1°#£Õ7r(   c                 ó”   — |j                  dg«      }t        j                  |dg|¬«      }t        ||j	                  g d¢«      «       y )Nr   r   ri   r”   ©rl   r3   r&   r   r2   rR  s        r%   Útest_shift02zTestShift.test_shift02ù  s8   € à�w‰w˜�s‹|ˆÜ�m‰m˜D 1 #¨UÔ3ˆÜ! # r§z¡z²,Ó'?Õ@r(   c                 ó’   — |j                  dg«      }t        j                  |d|¬«      }t        ||j	                  g d¢«      «       y )Nr   r   ri   rh  rÈ  rR  s        r%   Útest_shift03zTestShift.test_shift03ÿ  s6   € à�w‰w˜�s‹|ˆÜ�m‰m˜D "¨EÔ2ˆÜ! # r§z¡z²,Ó'?Õ@r(   c                 ó”   — |j                  g d¢«      }t        j                  |d|¬«      }t        ||j                  g d¢«      «       y )Nr—   r   ri   r™   rÅ  rR  s        r%   Útest_shift04zTestShift.test_shift04  s5   € à�z‰zš,Ó'ˆÜ�m‰m˜D !¨5Ô1ˆÜ! # r§z¡z²,Ó'?Õ@r(   rC   rQ   r›   c                 ó0  — t        ||«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  |j                  d«      r|d|z  z  }|d|z  z  }t	        j
                  |ddg|¬«      }t        ||«       y )	Nr|   rB   r”   r�   rž   r   r   ri   )rk   r2   r¡   rC   r3   r&   r   r\  s          r%   Útest_shift05zTestShift.test_shift05  s©   € ô ˜˜EÓ"ˆØ�z‰zš<Ú'Ú'ð)à05ð ó 7ˆð —:‘:š|Ú+Ú+ð-à49ð ó ;ˆð �:‰:�d—j‘jÐ"4Ô5Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHÜ�m‰m˜D 1 a &°Ô6ˆÜ! # xÕ0r(   r.   r   r   c                 óŽ  — t        j                  g d¢g d¢g d¢g|¬«      }t        j                  g d¢g d¢g d¢g|¬«      }t        j                  |j                  d«      r|d|z  z  }|d|z  z  }d}||d d …df<   |j                  |«      }|j                  |«      }t        j                  |ddg|||¬	«      }t        ||«       y )
Nr|   rB   r”   r�   rž   r¤  r   r   )r0   r.   r-   )rO   r2   r   r¡   rC   r3   r&   r   )	r6   r0   r.   rC   r8   r9   r^   r-   ro   s	            r%   Útest_shift_with_nonzero_cvalz&TestShift.test_shift_with_nonzero_cval  sÇ   € ô �z‰zš<Ú'Ú'ð)à05ô7ˆô —:‘:š|Ú+Ú+ð-à49ô;ˆô ×Ñ˜TŸZ™ZÐ);Ô<Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHØˆØˆ’�A�‰à�z‰z˜$ÓˆØ—:‘:˜hÓ'ˆÜ�m‰m˜D 1 a &°¸DÀtÔLˆÜ! # xÕ0r(   c           	      ó´   — |j                  g d¢g d¢g d¢g«      }t        j                  |ddg|¬«      }t        ||j                  g d¢g d¢g d	¢g«      «       y )
Nr—   r¤   r§   r   r   ri   r™   r©   rª   rÅ  rR  s        r%   Útest_shift06zTestShift.test_shift062  óZ   € à�z‰zš<Ú'Ú'ð)ó *ˆô �m‰m˜D 1 a &°Ô6ˆÜ! # r§z¡z²<Ú3?Ú3?ð3Aó (Bõ 	Cr(   c           	      ó´   — |j                  g d¢g d¢g d¢g«      }t        j                  |ddg|¬«      }t        ||j                  g d¢g d¢g d¢g«      «       y )Nr—   r¤   r§   r   r   ri   r²   rÅ  rR  s        r%   Útest_shift07zTestShift.test_shift07<  rÔ  r(   c           	      ó´   — |j                  g d¢g d¢g d¢g«      }t        j                  |ddg|¬«      }t        ||j                  g d¢g d¢g d¢g«      «       y )	Nr—   r¤   r§   r   ri   r²   r™   r©   rÅ  rR  s        r%   Útest_shift08zTestShift.test_shift08F  rÔ  r(   c           	      óô   — |j                  g d¢g d¢g d¢g«      }|dkD  rt        j                  ||¬«      }n|}t        j                  |ddg|d¬«      }t	        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr—   r¤   r§   r   ri   Frº   r²   r™   r©   )r2   r3   rm   r&   r   re  s         r%   Útest_shift09zTestShift.test_shift09P  sz   € à�z‰zš<Ú'Ú'ð)ó *ˆð �AŠIÜ×,Ñ,¨T¸Ô?‰HàˆHÜ�m‰m˜H q¨! f°EÀUÔKˆÜ! # r§z¡z²<Ú3?Ú3?ð3Aó (Bõ 	Cr(   r&   r´  c                 óô   — t        j                  ddgddgg«      }t        j                  ||d¬«      }|j                  |«      }|j                  |«      }t        t	        j
                  ||d|¬«      |«       y )	Nr   r   r)   r*   rµ  r˜  r   r  )rO   r2   rº  r   r3   r&   )r6   r&   r0   r8   r$   r^   s         r%   Útest_shift_grid_wrapzTestShift.test_shift_grid_wrap^  sn   € ô
 �J‰J˜˜A˜Ø˜A˜ð ó !ˆä—7‘7˜1˜e¨%Ô0ˆà�J‰J�q‹MˆØ—:‘:˜hÓ'ˆä!Ü�M‰M˜!˜U¨¸EÔBØõ	
r(   c           	      óº   — |j                  |j                  d«      d«      }t        t        j                  ||d|¬«      t        j                  ||d|¬«      «       y )Né   )r¦   r   r   r  r   )r  rP   r   r3   r&   )r6   r&   r0   r8   r$   s        r%   Útest_shift_grid_constant1z#TestShift.test_shift_grid_constant1o  sH   € ð
 �J‰J�r—y‘y “} fÓ-ˆÜ!Ü�M‰M˜!˜U¨ÀÔFÜ�M‰M˜!˜U¨¸5ÔAõ	
r(   c                 ó¾   — |j                  g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g«      }t        t        j                  |ddd¬	«      |«       y )
Nr  r  rB   r  r  )r!   r!   r   r   r  )r2   rQ   r   r3   r&   )r6   r8   r$   r	  s       r%   Útest_shift_grid_constant_order1z)TestShift.test_shift_grid_constant_order1z  s\   € Ø�J‰Jš	Ú!ð#Ø*,¯*©*ð ó 6ˆàŸ*™*Ò&8Ú&8ð&:ó ;ˆä!Ü�M‰M˜!˜Z¨oÀQÔGØõ	
r(   c                 ó  — t        j                  g d¢g d¢g«      }|d d d…d d d…f   j                  «       }|j                  |«      }|j                  |«      }t        t	        j
                  ||j                  d|¬«      |«       y )Nr…  r¾  r   r   r  )rO   r2   r¿  r   r3   r&   r‰   )r6   r0   r8   r$   r^   s        r%   Útest_shift_reflectzTestShift.test_shift_reflect„  sv   € ô �J‰Jš	Ú!ð#ó $ˆà‘T�r�T™4˜R˜4�Z‘=×%Ñ%Ó'ˆà�J‰J�q‹MˆØ—:‘:˜hÓ'ˆÜ!Ü�M‰M˜!˜QŸW™W¨9¸EÔBØõ	
r(   r»   FTc                 óø   — |j                  d«      }t        d||¬«      }t        t        j                  ||dz  dz   fi |¤Žd   |d   «       t        t        j                  || dz  dz
  fi |¤Žd   |d   «       y )Nr®  r   )r.   r0   r»   r)   r   r   r   )rP   Údictr   r3   r&   )r6   r0   r»   r8   r$   Úkwargss         r%   Útest_shift_nearest_boundaryz%TestShift.test_shift_nearest_boundary’  s   € ð
 �I‰I�b‹MˆÜ˜9¨E¸YÔGˆÜ!Ü�M‰M˜!˜U a™Z¨!™^Ñ6¨vÑ6°qÑ9¸1¸Q¹4ô	
ô 	"Ü�M‰M˜!˜e˜V q™[¨1™_Ñ7°Ñ7¸Ñ;¸Q¸r¹Uõ	
r(   r  c                 óÆ  — t        j                  dt        ¬«      j                  dd«      }d}d}t        j                  |«      }|j                  t        j                  |||¬«      «      }|j                  |«      }	t        t        || «      g|	j                  z  «      }
t        j                  ||||¬«      |
   }t        t        j                  |	|||¬«      |d¬	«       y )
Nr  rB   rÏ   )r  gffffffÀrG   rH   r  rI   r  )rO   rP   r  r  rU   rV   r2   rW   r  r  r  r3   r&   r   )r6   r0   r.   r8   Úx_npr&   rZ   r[   r  r$   r  r	  s               r%   Útest_shift_vs_paddedzTestShift.test_shift_vs_padded   sÇ   € ô �y‰y˜¤EÔ*×2Ñ2°2°rÓ:ˆØˆð ˆÜ(×,Ñ,¨TÓ2ˆØ—:‘:œbŸf™f T¨4°hÔ?Ó@ˆØ�J‰J�tÓˆäœe D¨4¨%Ó0Ð1°A·F±FÑ:Ó;ˆÜ!Ÿ-™-Ø�e $¨eô5Ø5AñCˆô 	Ü�M‰M˜!˜U¨°UÔ;ØØö	
r(   N)r`   ra   rb   rM   rc   rd   re   rÆ  rÉ  rË  rÍ  rÏ  rÑ  rÓ  rÖ  rØ  rÚ  rÜ  rß  rá  rã  rç  rê  r"   r(   r%   rÃ  rÃ  ð  sl  „ ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ8ó 3ð8ð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñAó 3ðAð
 ‡[�[×Ñ˜W¡e¨A¨q£kÓ2Ø‡[�[×Ñ˜W y°,Ð&?Ó@ñ1ó Aó 3ð1ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2Ø‡[�[×Ñ˜V j°/Ð%BÓCØ‡[�[×Ñ˜W y°,Ð&?Ó@ñ1ó Aó Dó 3ð1ð( ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñCó 3ðCð ‡[�[×Ñ˜WÚGóIà‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ
ó 3óIð
ð ‡[�[×Ñ˜WÚGóIà‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ
ó 3óIð
ò
ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ
ó 3ð
ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2Ø‡[�[×Ñ˜[¨5°$¨-Ó8ñ

ó 9ó 3ð

ð ‡[�[×Ñ˜Vò &;ó <à‡[�[×Ñ˜W¡e¨A£hÓ/ñ
ó 0ó<ñ
r(   rÃ  c                   ób  — e Zd Zej                  j                  d edd«      «      d„ «       Zd„ Zd„ Z	ej                  j                  d edd«      «      ej                  j                  ddd	g«      d
„ «       «       Z
d„ Zd„ Zd„ Zej                  j                  dg d¢«      ej                  j                  dg d¢«      d„ «       «       Zej                  j                  dddg«      ej                  j                  dg d¢«      ej                  j                  dg d¢«      d„ «       «       «       Zej                  j                  dddg«      d„ «       Z edd¬«       edd¬«      d„ «       «       Zd „ Z ed!d"¬«      d#„ «       Z ed!d"¬«       edd$¬«       edd%¬«      d&„ «       «       «       Zy')(ÚTestZoomr0   r   r@   c                 ó  — dddgfD ]÷  }|j                  |j                  d|j                  ¬«      d«      }t        j                  |||¬«      }|j
                  dk(  sJ ‚|j                  |dd d …f   dk7  «      sJ ‚|j                  |dd d …f   d	t        z
  k\  «      sJ ‚|j                  |dd d …f   d
t        z   k  «      sJ ‚|j                  |dt        z
  k\  «      sJ ‚|j                  |dt        z   k  «      rŒ÷J ‚ y )Nr)   é   rB   )r¦   r¦   ri   )rÍ   rÍ   r   r   rÞ  r¦   r  )r  rP   rQ   r3   Úzoomr‰   ÚallÚeps)r6   r0   r8   ÚzÚarrs        r%   Ú
test_zoom1zTestZoom.test_zoom1»  só   € à�a˜�V“ˆAØ—*‘*˜RŸY™Y r°·±˜YÓ<¸fÓEˆCÜ—,‘,˜s A¨UÔ3ˆCØ—9‘9 Ò(Ð(Ð(Ø—6‘6˜#˜b¢!˜e™*¨™/Ô*Ð*Ð*Ø—6‘6˜#˜b¢!˜e™*¨¬c©Ñ2Ô3Ð3Ð3Ø—6‘6˜#˜a¢˜d™)¨¬C©Ñ0Ô1Ð1Ð1Ø—6‘6˜# !¤c¡'Ñ*Ô+Ð+Ð+Ø—6‘6˜# "¤s¡(Ñ+Õ,Ð,Ð,ñ r(   c                 ó²   — |j                  |j                  d«      d«      }t        j                  t        j                  |d«      d«      }t	        ||«       y )NrÏ   rð   r)   r!   )r  rP   r3   rï  r   )r6   r8   ró  ro   s       r%   Ú
test_zoom2zTestZoom.test_zoom2Ç  s?   € Ø�j‰j˜Ÿ™ 2›¨Ó/ˆÜ�l‰lœ7Ÿ<™<¨¨QÓ/°Ó5ˆÜ˜˜SÕ!r(   c                 ó  — |j                  ddgg«      }t        j                  |d«      }t        j                  |d«      }t        ||j                  ddgddgg«      «       t        ||j                  g d¢g«      «       y )Nr   r)   r—  rÝ   )r   r   r)   r)   )r2   r3   rï  r   )r6   r8   ró  r0  r1  s        r%   Ú
test_zoom3zTestZoom.test_zoom3Ì  sk   € Ø�j‰j˜1˜a˜&˜Ó"ˆÜ�|‰|˜C Ó(ˆÜ�|‰|˜C Ó(ˆä! $¨¯
©
°Q¸°F¸QÀ¸FÐ3CÓ(DÔEÜ! $¨¯
©
²L°>Ó(BÕCr(   rC   rQ   r›   c                 ó¨  — t        ||«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  |j                  d«      r|d|z  z  }t	        j
                  «       5  t	        j                  ddt        «       t        j                  ||j                  d	d	g«      d
d|¬«      }d d d «       t        d d d…d d d…f   |«       y # 1 sw Y   Œ!xY w)Nr=   rË   rÖ   rB   r�   rž   rŠ  r‹  r!   r   ré   ri   r)   )rk   r2   r¡   rC   r�  rŽ  r�  r�  r3   rQ  r   )r6   r0   rC   r8   r9   ro   s         r%   Útest_zoom_affine01zTestZoom.test_zoom_affine01Ô  sÏ   € ô ˜˜EÓ"ˆØ�z‰zš<Ú'Ú*ð,à38ð ó :ˆð �:‰:�d—j‘jÐ"4Ô5Ø�B˜‘IÑˆDÜ×$Ñ$Õ&Ü×#Ñ# Hð%Ü&1ô3ô ×*Ñ*¨4°·±¸SÀ#¸JÓ1GÈØ+1¸ô@ˆC÷	 'ô 	" #¡c¨ c©3¨Q¨3 h¡-°Õ6÷ 'Ð&ús   Á!ACÃCc                 ó`   — d}t        j                  |j                  ||f«      d|z  d¬«       y )Nr¥   ç      ð?r   rH   )r3   rï  r¹  )r6   r8   Údims      r%   Útest_zoom_infinityzTestZoom.test_zoom_infinityå  s(   € àˆÜ�‰�R—X‘X˜s C˜jÓ)¨2°©8¸)ÖDr(   c                 ó”   — |j                  d«      }d}t        j                  ||d¬«      }|j                  d«      }t        ||«       y )N)r   r¦   r¦   )rü  r}  r}  r,   )r-   )r   rÍ   rÍ   )r¹  r3   rï  r   )r6   r8   ró  rï  ro   Úrefs         r%   Útest_zoom_zoomfactor_onez!TestZoom.test_zoom_zoomfactor_oneê  s?   € à�h‰h�yÓ!ˆØˆä�l‰l˜3 ¨1Ô-ˆØ�h‰h�{Ó#ˆÜ! # sÕ+r(   c                 óx   — |j                  d«      }d}t        j                  ||«      }|j                  dk(  sJ ‚y )N)r*   rÎ   rî  )gUUUUUUõ?gÑE]tÑõ?g�Âõ(\�ò?)r   rD   é   )r¹  r3   rï  r‰   )r6   r8   ró  rï  ro   s        r%   Útest_zoom_output_shape_roundoffz(TestZoom.test_zoom_output_shape_roundoffó  s7   € Ø�h‰h�{Ó#ˆØ.ˆÜ�l‰l˜3 Ó%ˆØ�y‰y˜KÒ'Ð'Ñ'r(   rï  )r7  )r*   r¦   )r¥   r)   )r¥   r¥   r.   )r   r   r   r   r   r   r   r   c                 ó6  — t        j                  ddgddggt         j                  ¬«      }t        j                  |t        j                  |«      «      }|j                  |«      }|j                  |«      }t        t        j                  ||d|¬«      |«       y )Nr   r   r)   r*   rB   rF   )rO   r2   rQ   Úkronrl   r   r3   rï  )r6   rï  r.   r8   ré  r^   r$   s          r%   Útest_zoom_by_int_order0z TestZoom.test_zoom_by_int_order0ù  s|   € ô �z‰z˜A˜q˜6Ø˜q˜6ð#Ü*,¯*©*ô6ˆä—7‘7˜4¤§¡¨£Ó/ˆà�J‰J�tÓˆØ—:‘:˜hÓ'ˆä!Ü�L‰L˜˜D¨°Ô5Øõ	
r(   r‰   r¸  )r   r   )r   r   r   r   r   c                 óT  — t        j                  t        j                  |«      t        ¬«      j	                  |«      }|j                  |«      }t        t        j                  ||d|d¬«      |j                  t        j                  |t        j                  |«      «      «      «       y )NrB   r   T)r0   r.   Ú	grid_mode)rO   rP   Úprodr  r  r2   r   r3   rï  r  rl   )r6   r‰   rï  r.   r8   ré  r$   s          r%   Útest_zoom_grid_by_int_order0z%TestZoom.test_zoom_grid_by_int_order0  sp   € ô �y‰yœŸ™ ›¬uÔ5×=Ñ=¸eÓDˆà�J‰J�tÓˆÜ!Ü�L‰L˜˜D¨°ÀÔEØ�J‰J”r—w‘w˜t¤R§W¡W¨T£]Ó3Ó4õ	
r(   r   r   c                 óò   — |j                  |j                  d|j                  ¬«      d«      }t        j                  t
        d¬«      5  t        j                  |d|d¬«      f d d d «       y # 1 sw Y   y xY w)	NrÓ   rB   )r*   r*   zIt is recommended to use mode)Úmatchr)   T)r.   r	  )r  rP   rQ   rM   Úwarnsr�  r3   rï  )r6   r.   r8   r$   s       r%   Útest_zoom_grid_mode_warningsz%TestZoom.test_zoom_grid_mode_warnings  s_   € ð �J‰J�r—y‘y ¨"¯*©*�yÓ5°vÓ>ˆÜ�\‰\œ+Ø ?öAä�L‰L˜˜A D°DÔ9Ñ:÷A÷ Añ Aús   Á	A-Á-A6z
dask.arrayz!output=array requires buffer viewr4  r3  c                 ó”   — |j                  |j                  d«      d«      }t        j                  |d|j	                  d«      ¬«       y)zTicket #643rÏ   rð   r)   ré   rx   N)r  rP   r3   rï  r¹  ©r6   r8   r$   s      r%   Útest_zoom_output_shapezTestZoom.test_zoom_output_shape&  s5   € ð �J‰J�r—y‘y “} fÓ-ˆÜ�‰�Q˜ "§(¡(¨6Ó"2Ö3r(   c                 óÀ   — |j                  d«      }d}t        j                  |t        j                  |«      «      }t        j                  ||«      }t        ||«       y )Ng      $@r)   )rP   r3   rï  rO   Úarrayr   )r6   r8   rù   ÚfactorÚactualr^   s         r%   Útest_zoom_0d_arrayzTestZoom.test_zoom_0d_array-  sG   € à�I‰I�c‹NˆØˆÜ—‘˜a¤§¡¨&Ó!1Ó2ˆÜ—<‘<  6Ó*ˆÜ˜ Õ)r(   rs   zCuPy `zoom` needs similar fix.c                 ó¦   — |j                  d«      }t        t        j                  |d«      |«       t        t        j                  |d«      |«       y )Nr*   r   r7  )rš  r   r3   rï  r  s      r%   Útest_zoom_1_gh20999zTestZoom.test_zoom_1_gh209995  s;   € ð �F‰F�1‹IˆÜœŸ™ Q¨Ó*¨AÔ.ÜœŸ™ Q¨Ó/°Õ3r(   zread-only backendznumpy round-tripc                 ó�   — |j                  d«      }|j                  |«      }t        j                  |d|¬«       t	        ||«       y )Nr*   r   rx   )rš  Ú
zeros_liker3   rï  r   )r6   r8   r$   ry   s       r%   Útest_zoom_1_gh20999_outputz#TestZoom.test_zoom_1_gh20999_output=  s9   € ð �F‰F�1‹IˆØ—‘˜qÓ!ˆÜ�‰�Q˜ &Õ)Ü˜ Õ"r(   N)r`   ra   rb   rM   rc   rd   re   rô  rö  rø  rú  rþ  r  r  r  r  r  r€   r  r  rÁ  r  r  r"   r(   r%   rì  rì  ¸  sõ  „ ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ	-ó 3ð	-ò"ò
Dð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2Ø‡[�[×Ñ˜W y°,Ð&?Ó@ñ7ó Aó 3ð7òEò
,ò(ð ‡[�[×Ñ˜VÒ%EÓFØ‡[�[×Ñ˜Vò &7ó 8ñ
ó8ó Gð
ð" ‡[�[×Ñ˜W v¨vÐ&6Ó7Ø‡[�[×Ñ˜VÒ%EÓFØ‡[�[×Ñ˜Vò &Dó Eñ

óEó Gó 8ð

ð ‡[�[×Ñ˜V j°&Ð%9Ó:ñ;ó ;ð;ñ �lÐ+NÔOÙ�kÐ*MÔNñ4ó Oó Pð4ò
*ñ �vÐ&FÔGñ4ó Hð4ñ �vÐ&FÔGÙ�kÐ*=Ô>Ù�|Ð,>Ô?ñ#ó @ó ?ó Hñ#r(   rì  c                   ó
  — e Zd Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      ej                  j                  dddg«      d	„ «       «       Z	ej                  j                  d edd«      «      d
„ «       Z
ej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zej                  j                  d edd«      «      d„ «       Zd„ Zd„ Z edd¬«      d„ «       Zy)Ú
TestRotater0   r   r@   c                 ó˜   — |j                  g d¢g d¢g d¢g|j                  ¬«      }t        j                  |d|¬«      }t	        ||«       y )Nr²   ©r   r   r   r   rB   r   ri   ©r2   rQ   r3   Úrotater   rR  s        r%   Útest_rotate01zTestRotate.test_rotate01J  sG   € à�z‰zš<Ú'Ú'ð)à02·
±
ð ó <ˆô �n‰n˜T 1¨EÔ2ˆÜ! # tÕ,r(   c                 óê   — |j                  g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g d¢g|j                  ¬«      }t        j                  |d|¬«      }t	        ||«       y )Nr²   )r   r   r   r   rB   ©r   r   r   ©r   r   r   éZ   ri   r!  ©r6   r0   r8   r9   r^   ro   s         r%   Útest_rotate02zTestRotate.test_rotate02R  su   € à�z‰zš<Ú'Ú'ð)à02·
±
ð ó <ˆð —:‘:šyÚ(Ú(Ú(ð*ð 24·±ð ó =ˆô �n‰n˜T 2¨UÔ3ˆÜ! # xÕ0r(   rC   rQ   r›   c                 ó8  — t        ||«      }|j                  g d¢g d¢g d¢g|¬«      }|j                  g d¢g d¢g d¢g d¢g d¢g|¬«      }|j                  |j                  d«      r|d|z  z  }|d|z  z  }t	        j
                  |d|¬	«      }t        ||«       y )
N©r   r   r   r   r   ©r   r   r   r   r   rB   r%  r&  r�   rž   r'  ri   )rk   r2   r¡   rC   r3   r"  r   r\  s          r%   Útest_rotate03zTestRotate.test_rotate03^  s­   € ô ˜˜EÓ"ˆØ�z‰zš?Ú*Ú*ð,à38ð ó :ˆð —:‘:šyÚ(Ú(Ú(Ú(ð	*ð 27ð	 ó 8ˆð
 �:‰:�d—j‘jÐ"4Ô5Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHÜ�n‰n˜T 2¨UÔ3ˆÜ! # xÕ0r(   c                 óæ   — |j                  g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g|j                  ¬«      }t        j                  |dd|¬«      }t	        ||«       y )Nr+  r,  rB   ©r   r   r   r   r   r'  F)r  r0   r!  r(  s         r%   Útest_rotate04zTestRotate.test_rotate04p  ss   € à�z‰zš?Ú*Ú*ð,à35·:±:ð ó ?ˆð —:‘:šÚ.Ú.ð0à79·z±zð ó Cˆô �n‰n˜T 2¨u¸EÔBˆÜ! # xÕ0r(   c                 ó®  — t        j                  d«      }t        d«      D ]=  }t        j                  g d¢g d¢g d¢g d¢gt         j                  ¬«      |d d …d d …|f<   Œ? |j                  |«      }|j                  g d¢g d¢g d¢g|j                  ¬«      }t        j                  |d|¬	«      }t        d«      D ]  }t        |d d …d d …|f   |«       Œ y )
N)r   r*   r*   r*   r%  r&  rB   r²   r   r'  ri   ©rO   rA  re   r2   rQ   r3   r"  r   ©r6   r0   r8   r9   Úir^   ro   s          r%   Útest_rotate05zTestRotate.test_rotate05{  s¾   € ä�x‰x˜	Ó"ˆÜ�q–ˆAÜŸJ™Jª	Ú(1Ú(1Ú(1ð(3ô ;=¿*¹*ôFˆD’’A�q�ŠMð ð
 �z‰z˜$ÓˆØ—:‘:š|Ú+Ú+ð-à46·J±Jð ó @ˆô �n‰n˜T 2¨UÔ3ˆÜ�q–ˆAÜ% cª!ªQ°¨'¡l°HÕ=ñ r(   c                 ó®  — t        j                  d«      }t        d«      D ]:  }t        j                  g d¢g d¢g d¢gt         j                  ¬«      |d d …d d …|f<   Œ< |j                  |«      }|j                  g d¢g d¢g d¢g d¢g|j                  ¬«      }t        j                  |d|¬	«      }t        d«      D ]  }t        |d d …d d …|f   |«       Œ y )
N)r*   r   r*   r*   r²   r   rB   r%  r&  r'  ri   r2  r3  s          r%   Útest_rotate06zTestRotate.test_rotate06‹  s½   € ä�x‰x˜	Ó"ˆÜ�q–ˆAÜŸJ™JªÚ(4Ú(4ð(6ä=?¿Z¹ZôIˆD’’A�q�ŠMð ð �z‰z˜$ÓˆØ—:‘:šyÚ(Ú(Ú(ð*ð 24·±ð ó =ˆô �n‰n˜T 2¨UÔ3ˆÜ�q–ˆAÜ% cª!ªQ°¨'¡l°HÕ=ñ r(   c                 óJ  — |j                  g d¢g d¢g d¢ggdz  |j                  ¬«      }|j                  |d«      }|j                  g d¢g d¢g d¢g d¢g d¢ggdz  |j                  ¬«      }|j                  |d«      }t        j                  |dd	|¬
«      }t        ||«       y )Nr+  r,  r)   rB   ©r)   r   r   r%  r&  r'  rµ  )Úaxesr0   ©r2   rQ   Úpermute_dimsr3   r"  r   r(  s         r%   Útest_rotate07zTestRotate.test_rotate07›  s¸   € à�z‰zšOÚ+Ú+ð-ð .à01ñ2à9;¿¹ð ó Eˆð �‰˜t YÓ/ˆØ—:‘:¢	Ú )Ú )Ú )Ú )ð	 +ð ,ð /0ñ	0ð 8:·z±zð	 ó Cˆð
 —?‘? 8¨YÓ7ˆÜ�n‰n˜T 2¨F¸%Ô@ˆÜ! # xÕ0r(   c                 ó@  — |j                  g d¢g d¢g d¢ggdz  |j                  ¬«      }|j                  |d«      }|j                  g d¢g d¢g d¢ggdz  |j                  ¬«      }|j                  |d«      }t        j                  |ddd	|¬
«      }t        ||«       y )Nr+  r,  r)   rB   r9  r/  r'  rµ  F)r:  r  r0   r;  r(  s         r%   Útest_rotate08zTestRotate.test_rotate08ª  s°   € à�z‰zšOÚ+Ú+ð-ð .à01ñ2à9;¿¹ð ó Eˆð �‰˜t YÓ/ˆØ—:‘:¢Ú /Ú /ð 1ð 2à45ñ6à=?¿Z¹Zð ó Iˆð —?‘? 8¨YÓ7ˆÜ�n‰n˜T 2¨F¸EÈÔOˆÜ! # xÕ0r(   c                 óæ   — |j                  g d¢g d¢g d¢gdz  |j                  ¬«      }t        t        «      5  t	        j
                  |dd|j                  f¬«       d d d «       y # 1 sw Y   y xY w)Nr+  r,  r)   rB   r'  r   )r:  )r2   rQ   r¥  r¦  r3   r"  r  )r6   r8   r9   s      r%   Útest_rotate09zTestRotate.test_rotate09·  s`   € Ø�z‰zš?Ú*Ú*ð,à./ñ0à79·z±zð ó Cˆô œ:Õ&Ü�N‰N˜4 ¨1¨d¯i©i¨.Õ9÷ '×&Ñ&ús   ¹%A'Á'A0c           
      óF  — |j                  |j                  d|j                  ¬«      d«      }|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|j                  ¬«      }t	        j
                  |dd¬«      }t        ||dd¬«       y )Né-   rB   )r*   r¦   r*   )rv  rv  rv  )g|ÀÕS2@g|ÀÕS2@g>àê)!@)g9ÚHD¾°%@g9ÚHD¾°'@g9ÚHD¾°)@)gõc™~Å@gõc™~Å@gz‰±L¿b @)gä[ic6ò*@gä[ic6ò,@gä[ic6ò.@)g      5@g      6@g      7@)gRKÎä†<@gRKÎä†=@gRKÎä†>@)g¡�Ó,PçA@g¡�Ó,PgB@g¡�Ó,PçB@)gã’ÛÝ '?@grÉínÐ@@grÉínÐ“@@)gñýG…µ¹A@gñýG…µ9B@gñýG…µ¹B@rÏ   F)Úangler  g�íµ ÷Æ°>g�íµ ÷ÆÀ>rJ   )r  rP   rQ   r2   r3   r"  r   )r6   r8   r9   r^   ro   s        r%   Útest_rotate10zTestRotate.test_rotate10¾  sª   € Ø�z‰z˜"Ÿ)™) B¨b¯j©j˜)Ó9¸9ÓEˆð —:‘:¢Ú /Ú DÚ GÚ /ð	 1ò
 !EÚ DÚ 2Ú DÚ Gð	 Iò
 !0Ú GÚ GÚ /Ú /ð	 1ð2ð :<¿¹ð ó Eˆô  �n‰n˜T¨°UÔ;ˆä˜˜X¨D°tÖ<r(   rs   z(https://github.com/cupy/cupy/issues/8400r4  c                 óà   — |j                  t        j                  t        j                  d«      d«      «      }t	        j
                  t	        j
                  |d«      d«      }t        ||«       y )Nr¦   )r¦   r   é´   iLÿÿÿ)r2   rO   ÚtilerP   r3   r"  r   )r6   r8   rù   rú   s       r%   Útest_rotate_exact_180z TestRotate.test_rotate_exact_180×  sH   € à�J‰J”r—w‘wœrŸy™y¨›|¨VÓ4Ó5ˆÜ�N‰Nœ7Ÿ>™>¨!¨SÓ1°4Ó8ˆÜ˜˜1Õr(   N)r`   ra   rb   rM   rc   rd   re   r#  r)  r-  r0  r5  r7  r=  r?  rA  rE  rÁ  rI  r"   r(   r%   r  r  G  s   „ ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ-ó 3ð-ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ	1ó 3ð	1ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2Ø‡[�[×Ñ˜W y°,Ð&?Ó@ñ1ó Aó 3ð1ð  ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ1ó 3ð1ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ>ó 3ð>ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ>ó 3ð>ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ1ó 3ð1ð ‡[�[×Ñ˜W¡e¨A¨q£kÓ2ñ
1ó 3ð
1ò:ò=ñ2 �vÐ&PÔQñó Rñr(   r  )*rI  r�  ÚnumpyrO   Úscipy._lib._array_apir   r   r   r   r   r   r	   rM   r
   r¥  Úscipy.ndimager3   Ú r   rc   r€   rÁ  rñ  rU   r   rm   rd   re   rg   r4   r‚   rÿ   rS   r)  rQ  rN  r&   rÃ  rï  rì  r"  r  r"   r(   r%   Ú<module>rN     s  ðÛ 
Û ã ÷÷ ñ ó Ý *Ý å à—;‘;×/Ñ/Ð Ø—K‘K×1Ñ1Ð ð €ð ØØØØØñÐ ÷F;ñ F;ñR �7×(Ñ(Ó)Ø‡�×Ñ˜¡%¨¨1£+Ó.Ø‡�×Ñ˜ %Ó(÷$1ð $1ó )ó /ó *ð$1ñN �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(   