§
    fŠtjjï  ã                   óì  — 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j        ¦  «        ej                             d edd¦  «        ¦  «        ej                             de¦  «         G d„ d¦  «        ¦   «         ¦   «         ¦   «         Z eej        ¦  «        ej                             d ed d¦  «        ¦  «         G d„ d¦  «        ¦   «         ¦   «         Z eej        ¦  «         G d„ d¦  «        ¦   «         Z eej         ¦  «         G d„ d¦  «        ¦   «         Z! eej"        ¦  «         G d„ d¦  «        ¦   «         Z# eej$        ¦  «         G d„ d¦  «        ¦   «         Z% eej&        ¦  «         G d„ d ¦  «        ¦   «         Z' eej(        ¦  «         G d!„ d"¦  «        ¦   «         Z)dS )#é    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                   óN  — e Zd Z eej        ¦  «        ej                             ddg d¢fdg d¢fdg d¢fdg d	¢fd
g d¢fdg d¢fdg d¢fg¦  «        d„ ¦   «         ¦   «         Z	 eej        ¦  «        ej                             ddg d¢fdg d¢fdg d¢fdg d¢fd
g d¢fdg d¢fdg d¢fg¦  «        d„ ¦   «         ¦   «         Z
 eej        ¦  «        ej                             dg d¢¦  «        ej                             d ed¦  «        ¦  «        d„ ¦   «         ¦   «         ¦   «         ZdS )Ú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„ }|                      g d¢¦  «        }t          t          j        ||d|dd¬¦  «        |                      |¦  «        ¦  «         d S )Nc                 ó   — | d         dz   fS )Nr   ç      à?© ©Úxs    úd/var/www/html/CA-Chatbot/venv/lib/python3.11/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%   sx   € ð	!ð 	!ð 	!ð �zŠz˜-˜-˜-Ñ(Ô(ˆÝÝÔ'¨¨e¸"À4Ø59ÀðDñ Dô 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„ }|                      g d¢¦  «        }t          t          j        ||d|d¬¦  «        |                      |¦  «        ¦  «         d S )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:   ss   € ð	!ð 	!ð 	!ð �zŠz˜,˜,˜,Ñ'Ô'ˆÝÝÔ'¨¨e¸"À4Ø59ð;ñ ;ô ;à�JŠJ�~Ñ&Ô&ñ	(ô 	(ð 	(ð 	(ð 	(r(   r.   )r   r   r   r   r   r   r0   é   c                 óª  — t          |¦  «        r|dvs|dk    rt          j        d¦  «         t          j        ddt          j        ¬¦  «        }|                     |¦  «        }|                     t          j        ddd	¬
¦  «        ¦  «        }t          j	        |||j
        df         ||¬¦  «        }d}t                               |¦  «        }	|                     t          j        |||	¬¦  «        ¦  «        }
|                     ||z   ¦  «        |j
        df         }t          j	        |
|||¬¦  «        }|dk    rdnd}t          ||d|¬¦  «         dS )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   sN  € õ �2‰JŒJð 	JØÐMÐMÐMØ˜’	�	åŒLÐHÑIÔIÐIå”)˜B ­¬Ð4Ñ4Ô4ˆØ�zŠz˜'Ñ"Ô"ˆØ�JŠJ•r”{ 2 r¨tÐ4Ñ4Ô4Ñ5Ô5ˆÝÔ# D¨!¨B¬J¸¨OÔ*<ÀEÐPTÐUÑUÔUˆð ˆÝ(×,Ò,¨TÑ2Ô2ˆØ—’�BœF 7¨D°xÐ@Ñ@Ô@ÑAÔAˆØ—’˜D 1™HÑ%Ô% b¤j°# oÔ6ˆÝÔ*¨6°6ÀÈTÐRÑRÔRˆà˜Ò.Ð.ˆtˆt°EˆÝ˜˜8¨$°TÐ:Ñ:Ô:Ð:Ð:Ð:r(   N)Ú__name__Ú
__module__Ú__qualname__r	   r3   r4   rM   ÚmarkÚparametrizer:   r?   rS   Úranger_   r"   r(   r%   r   r   #   sò  € € € € € àÐ�wÔ2Ñ3Ô3Ø„[×ÒØØ
Ð0Ð0Ð0Ð	1Ø
Ð5Ð5Ð5Ð	6Ø
Ð:Ð:Ð:Ð	;Ø
Ð7Ð7Ð7Ð	8Ø
Ð6Ð6Ð6Ð	7Ø
Ð5Ð5Ð5Ð	6Ø
Ð;Ð;Ð;Ð	<ð	>ñ	ô 	ð(ð (ñ	ô 	ñ 4Ô3ð(ð Ð�wÔ2Ñ3Ô3Ø„[×ÒØØ
�\�\�\Ð	"Ø
�,�,�,Ð	Ø
�|�|�|Ð	$Ø
�L�L�LÐ	!Ø
�\�\�\Ð	"Ø
�m�m�mÐ	$Ø
˜=˜=˜=Ð	)ð	+ñ	ô 	ð(ð (ñ	ô 	ñ 4Ô3ð(ð Ð�wÔ.Ñ/Ô/Ø„[×Ò˜Vð &1ð &1ð &1ñ 2ô 2ð „[×Ò˜W e e¨A¡h¤hÑ/Ô/ð;ð ;ñ 0Ô/ñ2ô 2ñ 0Ô/ð
;ð ;ð ;r(   r   r0   r)   r@   rC   c                   óV   — e Zd Zd„ Zd„ Z eddgd¬¦  «        d„ ¦   «         Zd„ Zd	„ Zd
S )Ú
TestSplinec                 óÄ   — t          ||¦  «        }|                     g |¬¦  «        }t          j        ||¬¦  «        }||                     d|j        ¬¦  «        k    sJ ‚d S )NrB   ©r0   r   ©ÚgetattrÚonesr3   Úspline_filterr2   rC   ©r6   rC   r0   r8   r9   Úouts         r%   Útest_spline01zTestSpline.test_spline01q   sd   € Ý˜˜EÑ"Ô"ˆØ�wŠw�r ˆwÑ'Ô'ˆÝÔ# D°Ð6Ñ6Ô6ˆØ�b—j’j ¨#¬)�jÑ4Ô4Ò4Ð4Ð4Ð4Ð4Ð4r(   c                 óÊ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        ||¬¦  «        }t	          ||                     dg¦  «        ¦  «         d S )Nr   rB   ri   )rk   r2   r3   rm   r   rn   s         r%   Útest_spline02zTestSpline.test_spline02w   s_   € Ý˜˜EÑ"Ô"ˆØ�zŠz˜1˜# UˆzÑ+Ô+ˆÝÔ# D°Ð6Ñ6Ô6ˆÝ! # r§z¢z°1°#¡¤Ñ7Ô7Ð7Ð7Ð7r(   TÚcupyzoutput=dtype is numpy-specific)Únp_onlyÚ
exceptionsÚreasonc                 óÆ   — t          ||¦  «        }|                     g |¬¦  «        }t          j        |||¬¦  «        }||                     d|j        ¬¦  «        k    sJ ‚d S )NrB   ©Úoutputr   rj   rn   s         r%   Útest_spline03zTestSpline.test_spline03}   sh   € õ ˜˜EÑ"Ô"ˆØ�wŠw�r ˆwÑ'Ô'ˆÝÔ# D¨%¸Ð>Ñ>Ô>ˆØ�b—j’j ¨#¬)�jÑ4Ô4Ò4Ð4Ð4Ð4Ð4Ð4r(   c                 óÊ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        ||¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S )Nr   rB   ©r   r   r   r   )rk   rl   r3   rm   r   r2   rn   s         r%   Útest_spline04zTestSpline.test_spline04…   s`   € Ý˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ# D¨%Ñ0Ô0ˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   c                 óæ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        ||¬¦  «        }|                     g d¢g d¢g d¢g d¢g¦  «        }t          ||¦  «         d S )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Ñ6Ô6ˆØ—:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|Ø+˜|˜|ð-ñ .ô .ˆõ 	" # xÑ0Ô0Ð0Ð0Ð0r(   N)	r`   ra   rb   rp   rr   Úskip_xp_backendsrz   r}   r   r"   r(   r%   rg   rg   l   sŒ   € € € € € ð
5ð 5ð 5ð8ð 8ð 8ð Ð˜d°¨xØ=ð?ñ ?ô ?ð5ð 5ñ?ô ?ð5ðAð Að Að1ð 1ð 1ð 1ð 1r(   rg   c                   óÒ   — e Zd Zd„ Zd„ Zd„ Zd„ Ze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dS )ÚTestGeometricTransformc                 óÈ   — |                      dg¦  «        }d„ }t          j        |||j        |¬¦  «        }t	          ||                      dg|j        ¬¦  «        ¦  «         d S )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š   sp   € Ø�zŠz˜1˜#‰Œˆð	ð 	ð 	õ Ô)¨$°¸¼Ø05ð7ñ 7ô 7ˆå! # r§z¢z°1°#¸S¼Y zÑ'GÔ'GÑHÔHÐHÐHÐHr(   c                 óÊ   — |                      dg¦  «        }d„ }t          j        |||j        |¬¦  «        }t	          ||                     g d¢|j        ¬¦  «        ¦  «         d S )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¤   sr   € Ø�wŠw˜�s‰|Œ|ˆð	ð 	ð 	õ Ô)¨$°¸¼Ø05ð7ñ 7ô 7ˆå! # r§z¢z°,°,°,ÀcÄi zÑ'PÔ'PÑQÔQÐQÐQÐQr(   c                 óÊ   — |                      dg¦  «        }d„ }t          j        |||j        |¬¦  «        }t	          ||                     g d¢|j        ¬¦  «        ¦  «         d S )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®   sr   € Ø�wŠw˜�s‰|Œ|ˆð	ð 	ð 	õ Ô)¨$°¸¼Ø05ð7ñ 7ô 7ˆå! # r§z¢z°,°,°,ÀcÄi zÑ'PÔ'PÑQÔQÐQÐQÐQr(   c                 óÌ   — |                      g d¢¦  «        }d„ }t          j        |||j        |¬¦  «        }t	          ||                      g d¢|j        ¬¦  «        ¦  «         d S )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¸   sv   € Ø�zŠz˜,˜,˜,Ñ'Ô'ˆð	ð 	ð 	õ Ô)¨$°¸¼Ø05ð7ñ 7ô 7ˆå! # r§z¢z°,°,°,ÀcÄi zÑ'PÔ'PÑQÔQÐQÐQÐQr(   rC   rQ   Ú
complex128c                 ó\  — t          ||¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     |j        d¦  «        r|d|z  z  }|d|z  z  }d„ }t	          j        |||j        |¬¦  «        }t          ||¦  «         d S )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ô 7ˆð —:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à49ð ñ ;ô ;ˆð �:Š:�d”jÐ"4Ñ5Ô5ð 	&Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHð	$ð 	$ð 	$õ Ô)¨$°¸¼Ø05ð7ñ 7ô 7ˆå! # xÑ0Ô0Ð0Ð0Ð0r(   c                 óì   — |                      g d¢g d¢g d¢g¦  «        }d„ }t          j        |||j        |¬¦  «        }|                      g d¢g d¢g d¢g|j        ¬	¦  «        }t          ||¦  «         d S )
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×   ó¯   € Ø�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆð	$ð 	$ð 	$õ Ô)¨$°¸¼Ø05ð7ñ 7ô 7ˆà—:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à47´Ið ñ ?ô ?ˆõ 	" # xÑ0Ô0Ð0Ð0Ð0r(   c                 óì   — |                      g d¢g d¢g d¢g¦  «        }d„ }t          j        |||j        |¬¦  «        }|                      g d¢g d¢g d¢g|j        ¬¦  «        }t          ||¦  «         d S )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                 óì   — |                      g d¢g d¢g d¢g¦  «        }d„ }t          j        |||j        |¬¦  «        }|                      g d¢g d¢g d¢g|j        ¬	¦  «        }t          ||¦  «         d S )
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õ   s¯   € Ø�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆð	(ð 	(ð 	(õ Ô)¨$°¸¼Ø05ð7ñ 7ô 7ˆà—:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à47´Ið ñ ?ô ?ˆõ 	" # xÑ0Ô0Ð0Ð0Ð0r(   c                 ó,  — |                      g d¢g d¢g d¢g¦  «        }d„ }|dk    rt          j        ||¬¦  «        }n|}t          j        |||j        |d¬¦  «        }|                      g d	¢g d
¢g d¢g|j        ¬¦  «        }t          ||¦  «         d S )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ˆIÝÔ,¨T¸Ð?Ñ?Ô?ˆHˆHàˆHÝÔ)¨(°G¸T¼ZØ05ÀðHñ Hô Hˆà—:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à47´Ið ñ ?ô ?ˆõ 	" # xÑ0Ô0Ð0Ð0Ð0r(   c                 óÐ   — |                      dg|j        ¬¦  «        }d„ }t          j        ||dg|¬¦  «        }t	          ||                     g d¢|j        ¬¦  «        ¦  «         d S )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  ss   € Ø�wŠw˜�s "¤*ˆwÑ-Ô-ˆð	 ð 	 ð 	 õ Ô)¨$°¸!¸ÀEÐJÑJÔJˆÝ! # r§z¢z°,°,°,ÀcÄi zÑ'PÔ'PÑQÔQÐQÐQÐQr(   c                 óÄ   — |                      g d¢¦  «        }d„ }t          j        ||dg|¬¦  «        }t          ||                      g d¢|j        ¬¦  «        ¦  «         d S )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   sr   € Ø�zŠzÐ2Ð2Ð2Ñ3Ô3ˆð	ð 	ð 	õ Ô)¨$°¸!¸ÀEÐJÑJÔJˆÝ! # r§z¢z°,°,°,ÀcÄi zÑ'PÔ'PÑQÔQÐQÐQÐQr(   c                 óÈ   — |                      g d¢¦  «        }d„ }t          j        ||dg|¬¦  «        }t          |d d d…         |                      g d¢¦  «        ¦  «         d S )Nr=   c                 ó   — | d         dz  fS rÀ   r"   r#   s    r%   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)  ss   € Ø�zŠz˜,˜,˜,Ñ'Ô'ˆð	ð 	ð 	õ Ô)¨$°¸!¸ÀEÐJÑJÔJˆÝ! # c c¨ c¤(¨B¯JªJ°|°|°|Ñ,DÔ,DÑEÔEÐEÐEÐEr(   c           	      óÔ   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|¬¦  «        }t          ||                      ddgd	d
gddgg¦  «        ¦  «         d S )Nr=   ©r¦   r@   r,   r¥   ©g      "@é
   é   é   c                 ó(   — | d         | d         dz  fS ©Nr   r   r)   r"   r#   s    r%   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  s™   € Ø��Ø��Ø!Ð!Ð!ð#ˆð �zŠz˜$ÑÔˆð	$ð 	$ð 	$õ Ô)¨$°¸Ø05ð7ñ 7ô 7ˆå! # r§z¢z°A°q°6¸A¸q¸6ÀAÀrÀ7Ð2KÑ'LÔ'LÑMÔMÐMÐMÐMr(   c                 óÈ   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|¬¦  «        }t          ||                      g d¢g¦  «        ¦  «         d S )Nr=   rË   ©rÓ   rÍ   rÎ   rÏ   c                 ó(   — | d         dz  | d         fS ©Nr   r)   r   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform17.<locals>.mappingE  r±   r(   ©r   r   ri   rÈ   rŠ   s         r%   Útest_geometric_transform17z1TestGeometricTransform.test_geometric_transform17?  sŠ   € Ø��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆð	$ð 	$ð 	$õ Ô)¨$°¸Ø05ð7ñ 7ô 7ˆå! # r§z¢z°<°<°<°.Ñ'AÔ'AÑBÔBÐBÐBÐBr(   c                 óÈ   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|¬¦  «        }t          ||                      ddgg¦  «        ¦  «         d S )	Nr=   rË   rÖ   c                 ó.   — | d         dz  | d         dz  fS rØ   r"   r#   s    r%   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ñ 7ô 7ˆå! # r§z¢z°A°q°6°(Ñ';Ô';Ñ<Ô<Ð<Ð<Ð<r(   c                 ó²   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|¬¦  «        }t          |dd d d…f         |¦  «         d S )	Nr=   rË   rÖ   c                 ó(   — | d         | d         dz  fS rÑ   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform19.<locals>.mapping_  r    r(   ©r*   r¥   ri   .r)   rÈ   rŠ   s         r%   Útest_geometric_transform19z1TestGeometricTransform.test_geometric_transform19Y  s†   € Ø��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆð	$ð 	$ð 	$õ Ô)¨$°¸Ø05ð7ñ 7ô 7ˆå! # c¨3¨3¨Q¨3 h¤-°Ñ6Ô6Ð6Ð6Ð6r(   c                 ó²   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|¬¦  «        }t          |d d d…df         |¦  «         d S )	Nr=   rË   rÖ   c                 ó(   — | d         dz  | d         fS rØ   r"   r#   s    r%   r†   zBTestGeometricTransform.test_geometric_transform20.<locals>.mappingl  r±   r(   ©r@   r   ri   r)   .rÈ   rŠ   s         r%   Útest_geometric_transform20z1TestGeometricTransform.test_geometric_transform20f  s†   € Ø��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆð	$ð 	$ð 	$õ Ô)¨$°¸Ø05ð7ñ 7ô 7ˆå! # c c¨ c¨3 h¤-°Ñ6Ô6Ð6Ð6Ð6r(   c                 ó¸   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|¬¦  «        }t          |d d d…d d d…f         |¦  «         d S )Nr=   rË   rÖ   c                 ó.   — | d         dz  | d         dz  fS rØ   r"   r#   s    r%   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ñ 7ô 7ˆå! # c c¨ c¨3¨3¨Q¨3 h¤-°Ñ6Ô6Ð6Ð6Ð6r(   c                 óà   — g d¢g d¢g d¢g}|                      ||j        ¬¦  «        }d„ }d„ }t          j        ||d|¬¦  «        }t          j        ||d	|¬¦  «        }t	          ||¦  «         d S )
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€  s­   € Ø��Ø��Ø��ð!ˆð �zŠz˜$ b¤jˆzÑ1Ô1ˆð	(ð 	(ð 	(ð	(ð 	(ð 	(õ Ô)¨$°Ø*0¸ð?ñ ?ô ?ˆåÔ)¨#¨xØ*0¸ð?ñ ?ô ?ˆå! # tÑ,Ô,Ð,Ð,Ð,r(   c                 óÆ   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|¬¦  «        }t          ||                      ddg¦  «        ¦  «         d S )	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’  s�   € Ø��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆð	!ð 	!ð 	!õ Ô)¨$°¸ÀUÐKÑKÔKˆÝ! # r§z¢z°1°a°&Ñ'9Ô'9Ñ:Ô:Ð:Ð:Ð:r(   c           	      óÎ   — g d¢g d¢g d¢g}|                      |¦  «        }d„ }t          j        ||d|dddi¬	¦  «        }t          ||                      d
dg¦  «        ¦  «         d S )Nr=   rË   rÖ   c                 ó   — || d         |z  fS )Nr   r"   )r$   ÚaÚbs      r%   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ž  s“   € Ø��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆð	!ð 	!ð 	!õ Ô)Ø�'˜4 u¸dØ ˜8ð%ñ %ô %ˆõ 	" # r§z¢z°1°a°&Ñ'9Ô'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ð Ið IðRð Rð RðRð Rð RðRð Rð Rð „[×Ò˜W y°,Ð&?Ñ@Ô@ð1ð 1ñ AÔ@ð1ð(1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð&Rð Rð RðRð Rð RðFð Fð FðNð Nð NðCð Cð Cð=ð =ð =ð7ð 7ð 7ð7ð 7ð 7ð7ð 7ð 7ð-ð -ð -ð$
;ð 
;ð 
;ð;ð ;ð ;ð ;ð ;r(   r‚   c                   ó  — e Zd Zd„ Zej                             dg d¢¦  «        ej                             d ed¦  «        ¦  «        d„ ¦   «         ¦   «         Z e	dd¬	¦  «        d
„ ¦   «         Z
 e	dd¬	¦  «        d„ ¦   «         ZdS )ÚTestGeometricTransformExtrac                 óÒ   — |                      g d¢g d¢g|j        ¬¦  «        }d„ }|                      g d¢g d¢g¦  «        }t          t          j        ||dd¬	¦  «        |¦  «         d S )
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°  s«   € ð �JŠJ˜	˜	˜	Ø!˜	˜	ð#Ø*,¬*ð ñ 6ô 6ˆð	.ð 	.ð 	.ð Ÿ*š*Ð&8Ð&8Ð&8Ø&8Ð&8Ð&8ð&:ñ ;ô ;ˆå!ÝÔ'¨¨7¸Ø./ð1ñ 1ô 1àñ	
ô 	
ð 	
ð 	
ð 	
r(   r.   ©r   r   r   r   r   r0   r@   c                 óþ  — d„ }t          j        dt          ¬¦  «                             dd¦  «        }d}t                               |¦  «        }t          j        |||¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          t          || ¦  «        g|j
        z  ¦  «        }	t          j        ||||¬¦  «        |	         }
t          t          j        ||||¬¦  «        |
d¬	¦  «         d S )
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�c¥Ð'Ñ'Ô'×/Ò/°°BÑ7Ô7ˆØˆÝ(×,Ò,¨TÑ2Ô2ˆÝ”6˜!˜T¨Ð1Ñ1Ô1ˆà�JŠJ�q‰MŒMˆØ—:’:˜hÑ'Ô'ˆå�e D¨4¨%Ñ0Ô0Ð1°A´FÑ:Ñ;Ô;ˆÝ!Ô5Ø�g D°ð7ñ 7ô 7Ø7CôEˆõ 	ÝÔ'¨¨7¸Ø.3ð5ñ 5ô 5àØð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r(   Tzendianness is numpy-specific©rt   rv   c                 ó„  — t          j        dg¦  «        }d„ }|j        |j                             ¦   «         t          j        |¦  «        t          j        |¦  «                             |j                             ¦   «         ¦  «        fD ]6}t          j        |||j        |¬¦  «        }|€|n|}t          |dg¦  «         Œ7d S )Nr   c                 ó   — | S 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˜1˜#‰Œˆð	ð 	ð 	ð ”J ¤
× 7Ò 7Ñ 9Ô 9Ý”M $Ñ'Ô'Ý”M $Ñ'Ô'×.Ò.¨t¬z×/FÒ/FÑ/HÔ/HÑIÔIðKð 	3ð 	3ˆCõ Ô2°4¸À$Ä*Ø:=ð?ñ ?ô ?ˆHà$Ð,�S�S°(ˆFÝ% f¨q¨cÑ2Ô2Ð2Ð2ð	3ð 	3r(   ú!string `output` is numpy-specificc                 óÂ   — |                      dg¦  «        }d„ }t          j        ||d¬¦  «        }|j        t	          j        d¦  «        u sJ ‚t          |dg¦  «         d S )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ï  sn   € à�zŠz˜1˜#‰Œˆð	ð 	ð 	õ Ô)¨$°ÀÐDÑDÔDˆØŒy�BœH S™Mœ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 e¨A¡h¤hÑ/Ô/ð
ð 
ñ 0Ô/ñ<ô <ð
ð4 Ð˜dÐ+IÐJÑJÔJð3ð 3ñ KÔJð3ð  Ð˜dÐ+NÐOÑOÔOð,ð ,ñ PÔOð,ð ,ð ,r(   rÿ   c                   ón  — e Zd Zej                             d edd¦  «        ¦  «        ej                             dej        ej	        g¦  «        d„ ¦   «         ¦   «         Z
ej                             d edd¦  «        ¦  «        d„ ¦   «         Z edd¬	¦  «        d
„ ¦   «         Z ed¬¦  «        d„ ¦   «         Z edd¬¦  «        d„ ¦   «         Zej                             d¬¦  «        ej                             dej        v p ej        d¦  «        j        dk     d¬	¦  «        d„ ¦   «         ¦   «         ZdS )ÚTestMapCoordinatesr0   r   r@   rC   c                 óÚ  — t          |¦  «        r|dk    rt          j        d¦  «         |                     g d¢g d¢g d¢g¦  «        }|                     g d¢g d¢g d¢g¦  «        }|                     |j        d	¦  «        r|d
|z  z
  }|d
|z  z
  }t          j        |j        ¦  «        }|dz  }|                     |¦  «        }t          j
        |||¬¦  «        }t          ||¦  «         d S )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  € õ �"‰:Œ:ð 	D˜% !š)˜)ÝŒLÐBÑCÔCÐCà�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆð —:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-ñ .ô .ˆð �:Š:�d”jÐ"4Ñ5Ô5ð 	0Ø˜"˜t™)Ñ#ˆDØ " x¡-Ñ/ˆHåŒj˜œÑ$Ô$ˆØˆq‰ˆØ�jŠj˜‰oŒoˆåÔ% d¨C°uÐ=Ñ=Ô=ˆÝ! # xÑ0Ô0Ð0Ð0Ð0r(   c                 óÀ  — t          |¦  «        r4|dk    rt          j        d¦  «         |dk    rt          j        d¦  «         |                     g d¢g d¢g d¢g¦  «        }t	          j        |j        t          j        ¦  «        }|dz  }|                     |¦  «        }t          j	        |d|¬¦  «        }t          j
        |||¬¦  «        }t          ||¦  «         d S )	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â   € å�"‰:Œ:ð 	8Ø�qŠyˆyÝŒ|ÐEÑFÔFÐFØ˜ŠzˆzÝŒ|Ð6Ñ7Ô7Ð7à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆõ Œj˜œ¥R¤ZÑ0Ô0ˆØˆs‰
ˆØ�jŠj˜‰oŒoˆåŒ}˜T 3¨eÐ4Ñ4Ô4ˆÝÔ& t¨S¸Ð>Ñ>Ô>ˆÝ! $¨Ñ-Ô-Ð-Ð-Ð-r(   ú	jax.numpyz`order` is required in jax©rv   c           
      óH  — t          g d¢g d¢g d¢gd|¬¦  «        }t          j        |j        ¦  «        dz
  }|                     |¦  «        }t          j        ||¦  «        }|                     g d¢g d¢g d	¢g¦  «        }t          ||¦  «         t          |t          j        |d
¦  «        ¦  «         t          j        |d d d…df         j        ¦  «        dz
  }|                     |¦  «        }t          j        |d d d…df         |¦  «        }t          ||                     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
  }|                     |¦  «        }t          j        |d d …d d d…f         |¦  «        }t          ||                     ddgddgddgg¦  «        ¦  «         t          |t          j        |d d …d d d…f         d
¦  «        ¦  «         d S )Nr—   r¤   r§   Ú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˜œÑ$Ô$ qÑ(ˆØ�jŠj˜‰oŒoˆÝÔ% d¨CÑ0Ô0ˆØ—:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-ñ .ô .ˆõ 	" # xÑ0Ô0Ð0Ý! #¥w¤}°T¸6Ñ'BÔ'BÑCÔCÐCåŒj˜˜c˜c ˜c 3˜hœÔ-Ñ.Ô.°Ñ2ˆØ�jŠj˜‰oŒoˆÝÔ% d¨3¨3¨Q¨3°¨8¤n°cÑ:Ô:ˆÝ! # r§z¢z°<°<°<Ø3?°<°<ð3Añ (Bô (Bñ 	Cô 	Cð 	Cå! #¥w¤}°T¸#¸#¸A¸#¸s¸(´^ÀVÑ'LÔ'LÑMÔMÐMåŒj˜˜a˜a˜a   1 ˜fœÔ+Ñ,Ô,¨qÑ0ˆØ�jŠj˜‰oŒoˆÝÔ% d¨1¨1¨1¨c¨c°¨c¨6¤l°CÑ8Ô8ˆÝ! # r§z¢z°A°q°6¸A¸q¸6ÀAÀqÀ6Ð2JÑ'KÔ'KÑLÔLÐLÝ! #¥w¤}°T¸!¸!¸!¸S¸S¸q¸S¸&´\À6Ñ'JÔ'JÑKÔKÐKÐKÐ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                             ¦   «         t          j        |¦  «        t          j        |¦  «                             |j                             ¦   «         ¦  «        fD ]/}t          j	        |||¬¦  «        }|€|n|}t          ||¦  «         Œ0d S )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˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”:  1˜v¨¨1 vÐ.Ñ/Ô/ˆÝŒj˜œÑ$Ô$ˆØˆq‰ˆàŒJØŒJ×#Ò#Ñ%Ô%ÝŒM˜(Ñ#Ô#ÝŒM˜(Ñ#Ô#×*Ò*¨8¬>×+FÒ+FÑ+HÔ+HÑIÔIð	
ð 	8ð 	8ˆCõ Ô.¨t°SÀÐEÑEÔEˆHØ$Ð,�S�S°(ˆFÝ% f¨hÑ7Ô7Ð7Ð7ð	8ð 	8r(   r#  r  c                 óB  — |                      dgg¦  «        }t          j        |j        ¦  «        }|                      |¦  «        }t	          j        ||d¬¦  «        }|j        t          j        d¦  «        u sJ ‚t          ||                      dgg¦  «        ¦  «         d S ©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  s�   € à�zŠz˜A˜3˜%Ñ Ô ˆÝŒj˜œÑ$Ô$ˆØ�jŠj˜‰oŒoˆÝÔ% d¨C¸Ð<Ñ<Ô<ˆØŒy�BœH S™MœMÐ)Ð)Ð)Ð)Ý! # r§z¢z°A°3°%Ñ'8Ô'8Ñ9Ô9Ð9Ð9Ð9r(   )Úcpu_onlyÚwin32r¥   z2do not run on 32 bit or windows (no sparse memory)c                 óx  — 	 d}t          j        |dz  t           j        ¬¦  «                             ||¦  «        }d||dz
  d …|dz
  d …f<   t	          j        |                     |¦  «        |                     |dz
  g|dz
  gg¦  «        d¬¦  «         d S # t          $ r}t          j	        d	¦  «        |‚d }~ww xY w)
Ni0u  r)   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Ð0Ñ0Ô0×8Ò8¸¸AÑ>Ô>ˆAà !ˆAˆa�!‰eˆfˆf�a˜!‘e�f�fˆnÑÝÔ#Ø—
’
˜1‘”˜rŸzšz¨A°©G¨9°q¸3±w°iÐ*@ÑAÔAÈðñ ô ð ð ð øõ ð 	Dð 	Dð 	DÝ”+Ð;Ñ<Ô<À!ÐCøøøøð	Døøøs   ‚BB Â
B9ÂB4Â4B9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)  û  s±  € € € € € ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2Ø„[×Ò˜W r¤z°2´=Ð&AÑBÔBð1ð 1ñ CÔBñ 3Ô2ð1ð* „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð.ð .ñ 3Ô2ð.ð$ Ð�kÐ*FÐGÑGÔGðLð Lñ HÔGðLð4 Ð˜dÐ#Ñ#Ô#ð8ð 8ñ $Ô#ð8ð& Ð˜dÐ+NÐOÑOÔOð:ð :ñ PÔOð:ð „[×!Ò!¨4Ð!Ñ0Ô0Ø„[×Ò˜ 3¤<Ð/ÐJ°7°2´7¸1±:´:Ô3FÈÒ3Jð 4ð ñ 5ô 5ðDð Dñ5ô 5ñ 1Ô0ðDð Dð Dr(   r)  c                   óÒ  — e Zd Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Z	ej                             d edd¦  «        ¦  «        d„ ¦   «         Z
ej                             d edd¦  «        ¦  «        ej                             dd	d
g¦  «        d„ ¦   «         ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Z edd¬¦  «        ej                             d edd¦  «        ¦  «        d„ ¦   «         ¦   «         Z edd¬¦  «        ej                             d edd¦  «        ¦  «        d„ ¦   «         ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d „ ¦   «         Zej                             d edd¦  «        ¦  «        d!„ ¦   «         Zej                             d edd¦  «        ¦  «        d"„ ¦   «         Z ej                             d edd¦  «        ¦  «        d#„ ¦   «         Z! e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                             d/g d0¢¦  «        ej                             d edd¦  «        ¦  «        d1„ ¦   «         ¦   «         Z(ej                             d edd¦  «        ¦  «        d2„ ¦   «         Z)d3S )4ÚTestAffineTransformr0   r   r@   c                 óÒ   — |                      dg¦  «        }t          j        ||                      dgg¦  «        |¬¦  «        }t          ||                      dg¦  «        ¦  «         d S )Nr   ri   ©r2   r3   Úaffine_transformr   ©r6   r0   r8   r9   ro   s        r%   Útest_affine_transform01z+TestAffineTransform.test_affine_transform01v  s\   € à�zŠz˜1˜#‰ŒˆÝÔ& t¨R¯ZªZ¸!¸¸Ñ->Ô->ÀeÐLÑLÔLˆÝ! # r§z¢z°1°#¡¤Ñ7Ô7Ð7Ð7Ð7r(   c                 óÔ   — |                      dg¦  «        }t          j        ||                     dgg¦  «        |¬¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S )Nr   r   ri   r|   ©rl   r3   rQ  r2   r   rR  s        r%   Útest_affine_transform02z+TestAffineTransform.test_affine_transform02|  s`   € à�wŠw˜�s‰|Œ|ˆÝÔ& t¨R¯ZªZ¸!¸¸Ñ->Ô->ÀeÐLÑLÔLˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   c                 óÖ   — |                      dg¦  «        }t          j        ||                     dgg¦  «        d|¬¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S )Nr   r   r   ri   r”   rU  rR  s        r%   Útest_affine_transform03z+TestAffineTransform.test_affine_transform03‚  sb   € à�wŠw˜�s‰|Œ|ˆÝÔ& t¨R¯ZªZ¸!¸¸Ñ->Ô->ÀÈ%ÐPÑPÔPˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   c                 óØ   — |                      g d¢¦  «        }t          j        ||                      dgg¦  «        d|¬¦  «        }t          ||                      g d¢¦  «        ¦  «         d S )Nr—   r   r   ri   r™   rP  rR  s        r%   Útest_affine_transform04z+TestAffineTransform.test_affine_transform04ˆ  sf   € à�zŠz˜,˜,˜,Ñ'Ô'ˆÝÔ& t¨R¯ZªZ¸!¸¸Ñ->Ô->ÀÈ%ÐPÑPÔPˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   rC   rQ   r›   c                 ó‚  — t          ||¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     |j        d¦  «        r|d|z  z  }|d|z  z  }t	          j        ||                     ddgddgg¦  «        ddg|¬	¦  «        }t          ||¦  «         d S )
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ô 7ˆð —:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à49ð ñ ;ô ;ˆð �:Š:�d”jÐ"4Ñ5Ô5ð 	&Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHÝÔ& t¨R¯ZªZ¸!¸Q¸À!ÀQÀÐ8HÑ-IÔ-IØ()¨2 w°eð=ñ =ô =ˆå! # xÑ0Ô0Ð0Ð0Ð0r(   c           	      ó   — |                      g d¢g d¢g d¢g¦  «        }t          j        ||                      ddgddgg¦  «        ddg|¬¦  «        }t          ||                      g d¢g d	¢g d
¢g¦  «        ¦  «         d S )Nr—   r¤   r§   r   r   r   ri   r™   r©   rª   rP  rR  s        r%   Útest_affine_transform06z+TestAffineTransform.test_affine_transform06Ÿ  s¼   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆõ Ô& t¨R¯ZªZ¸!¸Q¸À!ÀQÀÐ8HÑ-IÔ-IØ()¨2 w°eð=ñ =ô =ˆå! # r§z¢z°<°<°<Ø3?°<°<Ø3?°<°<ð3Añ (Bô (Bñ 	Cô 	Cð 	Cð 	Cð 	Cr(   c           	      ó   — |                      g d¢g d¢g d¢g¦  «        }t          j        ||                      ddgddgg¦  «        ddg|¬¦  «        }t          ||                      g d¢g d¢g d¢g¦  «        ¦  «         d S )	Nr—   r¤   r§   r   r   r   ri   r²   rP  rR  s        r%   Útest_affine_transform07z+TestAffineTransform.test_affine_transform07ª  s¼   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆõ Ô& t¨R¯ZªZ¸!¸Q¸À!ÀQÀÐ8HÑ-IÔ-IØ(*¨A w°eð=ñ =ô =ˆå! # r§z¢z°<°<°<Ø3?°<°<Ø3?°<°<ð3Añ (Bô (Bñ 	Cô 	Cð 	Cð 	Cð 	Cr(   c           	      ó   — |                      g d¢g d¢g d¢g¦  «        }t          j        ||                      ddgddgg¦  «        ddg|¬¦  «        }t          ||                      g d¢g d	¢g d
¢g¦  «        ¦  «         d S )Nr—   r¤   r§   r   r   r   ri   r²   r™   r©   rP  rR  s        r%   Útest_affine_transform08z+TestAffineTransform.test_affine_transform08µ  s¼   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆõ Ô& t¨R¯ZªZ¸!¸Q¸À!ÀQÀÐ8HÑ-IÔ-IØ(*¨B x°uð>ñ >ô >ˆå! # r§z¢z°<°<°<Ø3?°<°<Ø3?°<°<ð3Añ (Bô (Bñ 	Cô 	Cð 	Cð 	Cð 	Cr(   c           	      ó@  — |                      g d¢g d¢g d¢g¦  «        }|dk    rt          j        ||¬¦  «        }n|}t          j        ||                      ddgddgg¦  «        ddg|d¬	¦  «        }t	          ||                      g d
¢g d¢g d¢g¦  «        ¦  «         d S )Nr—   r¤   r§   r   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ˆIÝÔ,¨T¸Ð?Ñ?Ô?ˆHˆHàˆHÝÔ& x°·²¸aÀ¸VÀaÈÀVÐ<LÑ1MÔ1MØ(*¨B x°uØ16ð8ñ 8ô 8ˆõ 	" # r§z¢z°<°<°<Ø3?°<°<Ø3?°<°<ð3Añ (Bô (Bñ 	Cô 	Cð 	Cð 	Cð 	Cr(   c                 óä   — |                      dg|j        ¬¦  «        }t          j        ||                     dgg¦  «        d|¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )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Ð  sq   € à�wŠw˜�s "¤*ˆwÑ-Ô-ˆÝÔ& t¨R¯ZªZ¸#¸¸Ñ-@Ô-@ÈtØ-2ð4ñ 4ô 4ˆå! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   c                 óÚ   — |                      g d¢¦  «        }t          j        ||                      dgg¦  «        dd|¬¦  «        }t          ||                      g d¢¦  «        ¦  «         d S )NrÃ   r)   r   r>   ri   r=   rP  rR  s        r%   Útest_affine_transform11z+TestAffineTransform.test_affine_transform11×  sk   € à�zŠzÐ2Ð2Ð2Ñ3Ô3ˆÝÔ& t¨R¯ZªZ¸!¸¸Ñ->Ô->ÀÀ4ÈuÐUÑUÔUˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   c                 óì   — |                      g d¢¦  «        }t          j        ||                      dgg¦  «        dd|¬¦  «        }t          |d d d…         |                      g d¢¦  «        ¦  «         d S )Nr=   r!   r   ©r¥   ri   r)   rP  rR  s        r%   Útest_affine_transform12z+TestAffineTransform.test_affine_transform12Ý  ss   € à�zŠz˜,˜,˜,Ñ'Ô'ˆÝÔ& t¨R¯ZªZ¸#¸¸Ñ-@Ô-@À!ÀTÐQVÐWÑWÔWˆÝ! # c c¨ c¤(¨B¯JªJ°|°|°|Ñ,DÔ,DÑEÔEÐEÐEÐEr(   c           	      ó  — g d¢g d¢g d¢g}|                      |¦  «        }t          j        ||                      ddgddgg¦  «        dd|¬¦  «        }t          ||                      dd	gd
dgddgg¦  «        ¦  «         d S )Nr=   rË   rÌ   r   r   r)   rÒ   ri   r*   r¦   r,   rÓ   rÎ   rP  rR  s        r%   Útest_affine_transform13z+TestAffineTransform.test_affine_transform13ã  s£   € à��Ø��Ø!Ð!Ð!ð#ˆð �zŠz˜$ÑÔˆÝÔ& t¨R¯ZªZ¸!¸Q¸À!ÀQÀÐ8HÑ-IÔ-IÈ1ÈfØ-2ð4ñ 4ô 4ˆå! # r§z¢z°A°q°6¸A¸q¸6ÀAÀrÀ7Ð2KÑ'LÔ'LÑMÔMÐMÐMÐMr(   c                 óö   — g d¢g d¢g d¢g}|                      |¦  «        }t          j        ||                      ddgddgg¦  «        dd|¬¦  «        }t          ||                      g d¢g¦  «        ¦  «         d S )	Nr=   rË   rÖ   r)   r   r   rÙ   ri   rP  rR  s        r%   Útest_affine_transform14z+TestAffineTransform.test_affine_transform14í  s”   € à��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆÝÔ& t¨R¯ZªZ¸!¸Q¸À!ÀQÀÐ8HÑ-IÔ-IÈ1ÈfØ-2ð4ñ 4ô 4ˆå! # r§z¢z°<°<°<°.Ñ'AÔ'AÑBÔBÐBÐBÐBr(   c                 óö   — g d¢g d¢g d¢g}|                      |¦  «        }t          j        ||                      ddgddgg¦  «        dd|¬¦  «        }t          ||                      dd	gg¦  «        ¦  «         d S )
Nr=   rË   rÖ   r)   r   rÝ   ri   r   r*   rP  rR  s        r%   Útest_affine_transform15z+TestAffineTransform.test_affine_transform15÷  s”   € à��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆÝÔ& t¨R¯ZªZ¸!¸Q¸À!ÀQÀÐ8HÑ-IÔ-IÈ1ÈfØ-2ð4ñ 4ô 4ˆå! # r§z¢z°A°q°6°(Ñ';Ô';Ñ<Ô<Ð<Ð<Ð<r(   c                 óà   — g d¢g d¢g d¢g}|                      |¦  «        }t          j        ||                      ddgddgg¦  «        dd|¬	¦  «        }t          |d
d d d…f         |¦  «         d S )Nr=   rË   rÖ   r   ç        r   r!   rá   ri   .r)   rP  rR  s        r%   Útest_affine_transform16z+TestAffineTransform.test_affine_transform16  s�   € à��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆÝÔ& t¨R¯ZªZ¸!¸S¸ÀAÀsÀ8Ð8LÑ-MÔ-MÈqØ'-°Uð<ñ <ô <ˆå! # c¨3¨3¨Q¨3 h¤-°Ñ6Ô6Ð6Ð6Ð6r(   c                 óà   — g d¢g d¢g d¢g}|                      |¦  «        }t          j        ||                      ddgddgg¦  «        dd|¬¦  «        }t          |d d d	…d
f         |¦  «         d S )Nr=   rË   rÖ   r!   r   r   rå   ri   r)   .rP  rR  s        r%   Útest_affine_transform17z+TestAffineTransform.test_affine_transform17  s�   € à��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆÝÔ& t¨R¯ZªZ¸#¸q¸ÀAÀqÀ6Ð8JÑ-KÔ-KÈQØ'-°Uð<ñ <ô <ˆå! # c c¨ c¨3 h¤-°Ñ6Ô6Ð6Ð6Ð6r(   c                 óâ   — |                      g d¢g d¢g d¢g¦  «        }t          j        ||                      ddgddgg¦  «        dd|¬¦  «        }t          |d d d…d d d…f         |¦  «         d S )	Nr=   rË   rÖ   r!   r   ré   ri   r)   rP  rR  s        r%   Útest_affine_transform18z+TestAffineTransform.test_affine_transform18  s•   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø*˜?˜?ð,ñ -ô -ˆõ Ô& t¨R¯ZªZ¸#¸q¸ÀAÀsÀ8Ð8LÑ-MÔ-MÈqØ'-°Uð<ñ <ô <ˆå! # c c¨ c¨3¨3¨Q¨3 h¤-°Ñ6Ô6Ð6Ð6Ð6r(   c                 ó8  — |                      g d¢g d¢g d¢g|j        ¬¦  «        }t          j        ||                      ddgddgg¦  «        dd|¬¦  «        }t          j        ||                      d	dgdd	gg¦  «        dd
|¬¦  «        }t	          ||¦  «         d S )Nr=   rË   rÖ   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Ô-MÈqØ'-°Uð<ñ <ô <ˆåÔ& s¨B¯JªJ¸¸a¸À1ÀcÀ(Ð7KÑ,LÔ,LÈaØ'-°Uð<ñ <ô <ˆå! # tÑ,Ô,Ð,Ð,Ð,r(   rs   z(https://github.com/cupy/cupy/issues/8394r4  c                 óð   — g d¢g d¢g d¢g}|                      |¦  «        }t          j        ||                      dgdgg¦  «        dd|¬¦  «        }t          ||                      dd	g¦  «        ¦  «         d S )
Nr=   rË   rÖ   r   r)   rõ   ri   r   r*   rP  rR  s        r%   Útest_affine_transform20z+TestAffineTransform.test_affine_transform20)  ó�   € ð ��Ø��Ø��ð!ˆð �zŠz˜$ÑÔˆÝÔ& t¨R¯ZªZ¸!¸¸q¸c¸
Ñ-CÔ-CÀQÈØ-2ð4ñ 4ô 4ˆå! # r§z¢z°1°a°&Ñ'9Ô'9Ñ:Ô:Ð:Ð:Ð:r(   c                 óð   — g d¢g d¢g d¢g}|                      |¦  «        }t          j        ||                      dgdgg¦  «        dd|¬¦  «        }t          ||                      dd	g¦  «        ¦  «         d S )
Nr=   rË   rÖ   r)   r   rõ   ri   r   rÓ   rP  rR  s        r%   Útest_affine_transform21z+TestAffineTransform.test_affine_transform214  r�  r(   c                 óÜ   — |                      g d¢¦  «        }t          j        ||                      dgg¦  «        dgd|¬¦  «        }t          ||                      g d¢¦  «        ¦  «         d S )Nr—   r)   r   )r*   ri   ©r   r   r)   rP  rR  s        r%   Útest_affine_transform22z+TestAffineTransform.test_affine_transform22?  ss   € ð �zŠz˜,˜,˜,Ñ'Ô'ˆÝÔ& t¨R¯ZªZ¸!¸¸Ñ->Ô->ÀÀÀdØ-2ð4ñ 4ô 4ˆå! # r§z¢z°)°)°)Ñ'<Ô'<Ñ=Ô=Ð=Ð=Ð=r(   c                 óî   — |                      g d¢¦  «        }t          j        ||                      dgg¦  «        dgd|¬¦  «        }t          |d d d…         |                      g d¢¦  «        ¦  «         d S )Nr—   r!   r   rm  ri   r)   r™   rP  rR  s        r%   Útest_affine_transform23z+TestAffineTransform.test_affine_transform23G  s}   € ð �zŠz˜,˜,˜,Ñ'Ô'ˆÝÔ& t¨R¯ZªZ¸#¸¸Ñ-@Ô-@À2À$ÈØ-2ð4ñ 4ô 4ˆå! # c c¨ c¤(¨B¯JªJ°|°|°|Ñ,DÔ,DÑEÔEÐEÐEÐEr(   c                 ó’  — |                      g d¢¦  «        }t          j        ¦   «         5  t          j        ddt          ¦  «         t          j        ||                      dg¦  «        d|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        ||                      dgg¦  «        d|¬¦  «        }t          ||¦  «         d S )Nr—   Ú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˜,˜,˜,Ñ'Ô'ˆÝÔ$Ñ&Ô&ð 	Tð 	TÝÔ#ØØRÝñô ð õ Ô+¨D°"·*²*¸a¸S±/´/À2ÈUÐSÑSÔSˆDð	Tð 	Tð 	Tñ 	Tô 	Tð 	Tð 	Tð 	Tð 	Tð 	Tð 	Tøøøð 	Tð 	Tð 	Tð 	Tõ Ô'¨¨b¯jªj¸1¸#¸Ñ.?Ô.?ÀÈ5ÐQÑQÔQˆÝ! $¨Ñ-Ô-Ð-Ð-Ð-ó   «AA?Á?BÂBc                 ó’  — |                      g d¢¦  «        }t          j        ¦   «         5  t          j        ddt          ¦  «         t          j        ||                      dg¦  «        d|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        ||                      dgg¦  «        d|¬¦  «        }t          ||¦  «         d S )Nr—   rŠ  r‹  r!   r   ri   rŒ  r‘  s         r%   Útest_affine_transform25z+TestAffineTransform.test_affine_transform25\  s  € ð �zŠz˜,˜,˜,Ñ'Ô'ˆÝÔ$Ñ&Ô&ð 	Vð 	VÝÔ# Hð%Ý&1ñ3ô 3ð 3õ Ô+¨D°"·*²*¸c¸UÑ2CÔ2CÀRÈuÐUÑUÔUˆDð		Vð 	Vð 	Vñ 	Vô 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vøøøð 	Vð 	Vð 	Vð 	Võ
 Ô'¨¨b¯jªj¸3¸%¸Ñ.AÔ.AÀ2ÈUÐSÑSÔSˆÝ! $¨Ñ-Ô-Ð-Ð-Ð-r“  c           
      ó   — |                      g d¢g d¢g d¢g¦  «        }|dk    rt          j        ||¬¦  «        }n|}|                     d¦  «        }|                     d¦  «         }|                     ||fd¬¦  «        }|                     ||                      g d	¢g¦  «        fd
¬¦  «        }d„ |                     |d¦  «        D ¦   «         }	t          j        |||	|d¬¦  «        }
t          j        |||d¬¦  «        }t          j        |||d¬¦  «        }|
||fD ].}t          ||                      g d¢g d¢g d¢g¦  «        ¦  «         Œ/d S )Nr—   r¤   r§   r   ri   r)   ©r)   r   ©Úaxis)rv  r   r   r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r"   )r  )Ú.0r$   s     r%   ú
<listcomp>z?TestAffineTransform.test_affine_transform26.<locals>.<listcomp>x  s   € ÐEÐEÐE˜Q•�a‘”ÐEÐEÐEr(   )r   Frº   r²   r™   r©   )	r2   r3   rm   Úeyerl   Úconcatr  rQ  r   )r6   r0   r8   r9   r¼   Útform_originalÚoffset_originalÚtform_h1Útform_h2Úoffsr0  r1  Úout3ro   s                 r%   Útest_affine_transform26z+TestAffineTransform.test_affine_transform26h  s´  € ð �zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆð �AŠIˆIÝÔ,¨T¸Ð?Ñ?Ô?ˆHˆHàˆHØŸš ™œˆØŸ7š7 6™?œ?Ð*ˆà—9’9˜n¨oÐ>ÀQ�9ÑGÔGˆØ—9’9˜h¨¯
ª
°K°K°K°=Ñ(AÔ(AÐBÈ�9ÑKÔKˆàEÐE "§*¢*¨_¸eÑ"DÔ"DÐEÑEÔEˆåÔ'¨°.Ø(,Ø.3¸uðFñ Fô Fˆõ Ô'¨°(À%Ø27ð9ñ 9ô 9ˆåÔ'¨°(À%Ø27ð9ñ 9ô 9ˆà˜$ Ð%ð 	Gð 	GˆCÝ% c¨2¯:ª:°|°|°|Ø7C°|°|Ø7C°|°|ð7Eñ ,Fô ,Fñ Gô Gð Gð Gð	Gð 	Gr(   zdoes not raisec                 ób  — |                      g d¢g d¢g d¢g¦  «        }|                     |                     d¦  «        |                     d¦  «         fd¬¦  «        }|                     ||                      g d¢g¦  «        fd	¬¦  «        }t	          t
          t          j        ||¦  «         d S )
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œi¨"¯'ª'°&©/¬/Ð)9Ð:À!�9ÑDÔDˆØ—9’9˜h¨¯
ª
°K°K°K°=Ñ(AÔ(AÐBÈ�9ÑKÔKˆå•j¥'Ô":¸DÀ(ÑKÔKÐKÐKÐKr(   Tzbyteorder is numpy-specificr  c           	      ó`  — |                      d¦  «        }|                     |¦  «        |                     |¦  «                             |j                             ¦   «         ¦  «        |j        |j                             ¦   «         fD ]¥}t          j        ¦   «         5  t          j        ddt          ¦  «         | 	                    ddg¦  «        }t          j        |||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |€|n|}t          || 	                    ddgddgg¦  «        ¦  «         Œ¦d S )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×/FÒ/FÑ/HÔ/HÑIÔIØ”J ¤
× 7Ò 7Ñ 9Ô 9ð;ð 
	Lð 
	LˆCõ Ô(Ñ*Ô*ð Nð NÝÔ'¨ð,Ý-8ñ:ô :ð :ð Ÿš Q¨ FÑ+Ô+�Ý"Ô3°D¸&ÈÐMÑMÔM�ðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð %Ð,�S�S°(ˆFÝ% f¨b¯jªj¸1¸a¸&À1ÀaÀ&Ð9IÑ.JÔ.JÑKÔKÐKÐKð
	Lð 
	Ls   ÂA
C3Ã3C7	Ã:C7	c                 ó¾  — t          j        dg¦  «        }|j        |j                             ¦   «         t          j        |¦  «        t          j        |¦  «                             |j                             ¦   «         ¦  «        fD ]V}t          j        |t          j        dgg¦  «        |¬¦  «        }|€|n|}t          |t          j        dg¦  «        ¦  «         ŒWd S )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˜1˜#‰ŒˆØ”J ¤
× 7Ò 7Ñ 9Ô 9Ý”M $Ñ'Ô'Ý”M $Ñ'Ô'×.Ò.¨t¬z×/FÒ/FÑ/HÔ/HÑIÔIðKð 	?ð 	?ˆCõ Ô/°µb´jÀ1À#ÀÑ6GÔ6GÐPSÐTÑTÔTˆHØ$Ð,�S�S°(ˆFÝ% f­b¬j¸!¸©o¬oÑ>Ô>Ð>Ð>ð	?ð 	?r(   z+`out` of a different size is numpy-specificc                 óˆ  — |                      d|j        ¬¦  «        }|                     d¦  «        }t          j        ||                     dgg¦  «        |¬¦  «         t          |d d…         |¦  «         t          j        t          ¦  «        5  t          j        |dgg|d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¥   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ŒnˆåÔ   r§z¢z°A°3°%Ñ'8Ô'8ÀÐEÑEÔEÐEÝ! # b q b¤'¨4Ñ0Ô0Ð0õ Œ]�<Ñ(Ô(ð 	=ð 	=ÝÔ$Ø˜�s�e C°eð=ñ =ô =ð =ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ÂB7Â7B;Â>B;r#  c                 ó  — |                      dg¦  «        }t          j        ||                      dgg¦  «        d¬¦  «        }|j        t	          j        d¦  «        u sJ ‚t          ||                      dg¦  «        ¦  «         d S r<  )r2   r3   rQ  rC   rO   r   r³  s       r%   Ú(test_affine_transform_with_string_outputz<TestAffineTransform.test_affine_transform_with_string_output¿  sw   € à�zŠz˜1˜#‰ŒˆÝÔ& t¨R¯ZªZ¸!¸¸Ñ->Ô->ÀsÐKÑKÔKˆØŒy�BœH S™MœMÐ)Ð)Ð)Ð)Ý! # r§z¢z°1°#¡¤Ñ7Ô7Ð7Ð7Ð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¬¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }t          t          j        ||d|¬	¦  «        |¦  «         d S )
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˜˜A˜Ø˜A˜ð ñ !ô !ˆå”˜&Ñ!Ô!ˆÝœ ™œˆˆr�ˆr�2�A�2ˆv‰Ý”z %Ñ(Ô(ˆˆqˆqˆq�!ˆt‰å”7˜1˜e¨&Ð1Ñ1Ô1ˆà�JŠJ�q‰MŒMˆØ—’˜FÑ#Ô#ˆØ—:’:˜hÑ'Ô'ˆå!ÝÔ$ Q¨°[ÈÐNÑNÔNØñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 óî  — t          j        g d¢g d¢g¦  «        }|d d d…d d d…f                              ¦   «         }|                     |¦  «        }|                     |¦  «        }t          j        ddg¦  «        }t          j        d¦  «        |d d…d d…f<   t          j        |j        ¦  «        |d d …df<   |                     |¦  «        }t          t          j        ||d|¬¦  «        |¦  «         d S )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˜	˜	˜	Ø!˜	˜	ð#ñ $ô $ˆà�T�T�r�T˜4˜4˜R˜4�Z”=×%Ò%Ñ'Ô'ˆØ�JŠJ�q‰MŒMˆØ—:’:˜hÑ'Ô'ˆå”˜1˜a˜&Ñ!Ô!ˆÝœ ™œˆˆr�ˆr�2�A�2ˆv‰Ý”z !¤'Ñ*Ô*ˆˆqˆqˆq�!ˆt‰Ø—’˜FÑ#Ô#ˆå!ÝÔ$ Q¨°YÀeÐLÑLÔ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 e¨A¨q¡k¤kÑ2Ô2ð8ð 8ñ 3Ô2ð8ð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2Ø„[×Ò˜W y°,Ð&?Ñ@Ô@ð1ð 1ñ AÔ@ñ 3Ô2ð1ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðFð Fñ 3Ô2ðFð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðNð Nñ 3Ô2ðNð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð=ð =ñ 3Ô2ð=ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð7ð 7ñ 3Ô2ð7ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð7ð 7ñ 3Ô2ð7ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð7ð 7ñ 3Ô2ð7ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð-ð -ñ 3Ô2ð-ð Ð�vÐ&PÐQÑQÔQØ„[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð;ð ;ñ 3Ô2ñ RÔQð;ð Ð�vÐ&PÐQÑQÔQØ„[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð;ð ;ñ 3Ô2ñ RÔQð;ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð>ð >ñ 3Ô2ð>ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðFð Fñ 3Ô2ðFð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð
.ð 
.ñ 3Ô2ð
.ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð	.ð 	.ñ 3Ô2ð	.ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðGð Gñ 3Ô2ðGð: Ð�vÐ&6Ð7Ñ7Ô7ðLð Lñ 8Ô7ðLð Ð˜dÐ+HÐIÑIÔIðLð Lñ JÔIðLð  Ð˜dÐ+HÐIÑIÔIð
?ð 
?ñ JÔIð
?ð Ð˜dØ<ðñ ô ð=ð =ñô ð=ð Ð˜dÐ+NÐOÑOÔOð8ð 8ñ PÔOð8ð „[×Ò˜WØGÐGÐGñIô Ià„[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð
ð 
ñ 3Ô2ñIô Ið
ð& „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð
ð 
ñ 3Ô2ð
ð 
ð 
r(   rN  c                   ó`  — e Zd Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Z	ej                             d edd¦  «        ¦  «        d„ ¦   «         Z
ej                             d edd¦  «        ¦  «        ej                             dd	d
g¦  «        d„ ¦   «         ¦   «         Zej                             d edd¦  «        ¦  «        ej                             dddg¦  «        ej                             dd	d
g¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             dg d¢¦  «        ej                             d edd¦  «        ¦  «        d„ ¦   «         ¦   «         Zej                             dg d¢¦  «        ej                             d edd¦  «        ¦  «        d„ ¦   «         ¦   «         Zd„ Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         Zej                             dg d¢¦  «        ej                             d ed¦  «        ¦  «        d„ ¦   «         ¦   «         Zd S )!Ú	TestShiftr0   r   r@   c                 óª   — |                      dg¦  «        }t          j        |dg|¬¦  «        }t          ||                      dg¦  «        ¦  «         d S )Nr   ri   r   ©r2   r3   r&   r   rR  s        r%   Útest_shift01zTestShift.test_shift01ó  sM   € à�zŠz˜1˜#‰ŒˆÝŒm˜D 1 #¨UÐ3Ñ3Ô3ˆÝ! # r§z¢z°1°#¡¤Ñ7Ô7Ð7Ð7Ð7r(   c                 ó¬   — |                      dg¦  «        }t          j        |dg|¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr   r   ri   r”   ©rl   r3   r&   r   r2   rR  s        r%   Útest_shift02zTestShift.test_shift02ù  sQ   € à�wŠw˜�s‰|Œ|ˆÝŒm˜D 1 #¨UÐ3Ñ3Ô3ˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   c                 óª   — |                      dg¦  «        }t          j        |d|¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr   r   ri   rh  rË  rR  s        r%   Útest_shift03zTestShift.test_shift03ÿ  sO   € à�wŠw˜�s‰|Œ|ˆÝŒm˜D "¨EÐ2Ñ2Ô2ˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   c                 ó¬   — |                      g d¢¦  «        }t          j        |d|¬¦  «        }t          ||                      g d¢¦  «        ¦  «         d S )Nr—   r   ri   r™   rÈ  rR  s        r%   Útest_shift04zTestShift.test_shift04  sS   € à�zŠz˜,˜,˜,Ñ'Ô'ˆÝŒm˜D !¨5Ð1Ñ1Ô1ˆÝ! # r§z¢z°,°,°,Ñ'?Ô'?Ñ@Ô@Ð@Ð@Ð@r(   rC   rQ   r›   c                 óN  — t          ||¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     |j        d¦  «        r|d|z  z  }|d|z  z  }t	          j        |ddg|¬¦  «        }t          ||¦  «         d S )	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ô 7ˆð —:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à49ð ñ ;ô ;ˆð �:Š:�d”jÐ"4Ñ5Ô5ð 	&Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHÝŒm˜D 1 a &°Ð6Ñ6Ô6ˆÝ! # xÑ0Ô0Ð0Ð0Ð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<   |                     |¦  «        }|                     |¦  «        }t          j        |ddg|||¬	¦  «        }t          ||¦  «         d S )
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˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)à05ð7ñ 7ô 7ˆõ ”:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à49ð;ñ ;ô ;ˆõ Ô˜TœZÐ);Ñ<Ô<ð 	&Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHØˆØˆ����A�‰à�zŠz˜$ÑÔˆØ—:’:˜hÑ'Ô'ˆÝŒm˜D 1 a &°¸DÀtÐLÑLÔLˆÝ! # xÑ0Ô0Ð0Ð0Ð0r(   c           	      óÌ   — |                      g d¢g d¢g d¢g¦  «        }t          j        |ddg|¬¦  «        }t          ||                      g d¢g d¢g d	¢g¦  «        ¦  «         d S )
Nr—   r¤   r§   r   r   ri   r™   r©   rª   rÈ  rR  s        r%   Útest_shift06zTestShift.test_shift062  ó™   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆõ Œm˜D 1 a &°Ð6Ñ6Ô6ˆÝ! # r§z¢z°<°<°<Ø3?°<°<Ø3?°<°<ð3Añ (Bô (Bñ 	Cô 	Cð 	Cð 	Cð 	Cr(   c           	      óÌ   — |                      g d¢g d¢g d¢g¦  «        }t          j        |ddg|¬¦  «        }t          ||                      g d¢g d¢g d¢g¦  «        ¦  «         d S )Nr—   r¤   r§   r   r   ri   r²   rÈ  rR  s        r%   Útest_shift07zTestShift.test_shift07<  r×  r(   c           	      óÌ   — |                      g d¢g d¢g d¢g¦  «        }t          j        |ddg|¬¦  «        }t          ||                      g d¢g d¢g d¢g¦  «        ¦  «         d S )	Nr—   r¤   r§   r   ri   r²   r™   r©   rÈ  rR  s        r%   Útest_shift08zTestShift.test_shift08F  r×  r(   c           	      ó  — |                      g d¢g d¢g d¢g¦  «        }|dk    rt          j        ||¬¦  «        }n|}t          j        |ddg|d¬¦  «        }t	          ||                      g d¢g d	¢g d
¢g¦  «        ¦  «         d S )Nr—   r¤   r§   r   ri   Frº   r²   r™   r©   )r2   r3   rm   r&   r   re  s         r%   Útest_shift09zTestShift.test_shift09P  sÀ   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ñ *ô *ˆð �AŠIˆIÝÔ,¨T¸Ð?Ñ?Ô?ˆHˆHàˆHÝŒm˜H q¨! f°EÀUÐKÑKÔKˆÝ! # r§z¢z°<°<°<Ø3?°<°<Ø3?°<°<ð3Añ (Bô (Bñ 	Cô 	Cð 	Cð 	Cð 	Cr(   r&   r·  c                 ó  — t          j        ddgddgg¦  «        }t          j        ||d¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          t	          j        ||d|¬¦  «        |¦  «         d S )	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^  s’   € õ
 ŒJ˜˜A˜Ø˜A˜ð ñ !ô !ˆå”7˜1˜e¨%Ð0Ñ0Ô0ˆà�JŠJ�q‰MŒMˆØ—:’:˜hÑ'Ô'ˆå!ÝŒM˜!˜U¨¸EÐBÑBÔBØñ	
ô 	
ð 	
ð 	
ð 	
r(   c           	      óÐ   — |                      |                     d¦  «        d¦  «        }t          t          j        ||d|¬¦  «        t          j        ||d|¬¦  «        ¦  «         d S )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  si   € ð
 �JŠJ�r—y’y ‘}”} fÑ-Ô-ˆÝ!ÝŒM˜!˜U¨ÀÐFÑFÔFÝŒM˜!˜U¨¸5ÐAÑAÔAñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 óÌ   — |                      g d¢g d¢g|j        ¬¦  «        }|                      g d¢g d¢g¦  «        }t          t          j        |ddd¬	¦  «        |¦  «         d S )
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ô 6ˆàŸ*š*Ð&8Ð&8Ð&8Ø&8Ð&8Ð&8ð&:ñ ;ô ;ˆå!ÝŒM˜!˜Z¨oÀQÐGÑGÔGØñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 ó(  — t          j        g d¢g d¢g¦  «        }|d d d…d d d…f                              ¦   «         }|                     |¦  «        }|                     |¦  «        }t          t	          j        ||j        d|¬¦  «        |¦  «         d S )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„  s£   € õ ŒJ˜	˜	˜	Ø!˜	˜	ð#ñ $ô $ˆà�T�T�r�T˜4˜4˜R˜4�Z”=×%Ò%Ñ'Ô'ˆà�JŠJ�q‰MŒMˆØ—:’:˜hÑ'Ô'ˆÝ!ÝŒM˜!˜QœW¨9¸EÐBÑBÔBØñ	
ô 	
ð 	
ð 	
ð 	
r(   r»   FTc                 ó"  — |                      d¦  «        }t          d||¬¦  «        }t          t          j        ||dz  dz   fi |¤Žd         |d         ¦  «         t          t          j        || dz  dz
  fi |¤Žd         |d         ¦  «         d S )Nr±  r   )r.   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ŒMˆÝ˜9¨E¸YÐGÑGÔGˆÝ!ÝŒM˜!˜U a™Z¨!™^Ð6Ð6¨vÐ6Ð6°qÔ9¸1¸Q¼4ñ	
ô 	
ð 	
õ 	"ÝŒM˜!˜e˜V q™[¨1™_Ð7Ð7°Ð7Ð7¸Ô;¸Q¸r¼Uñ	
ô 	
ð 	
ð 	
ð 	
r(   r  c                 óø  — t          j        dt          ¬¦  «                             dd¦  «        }d}d}t                               |¦  «        }|                     t          j        |||¬¦  «        ¦  «        }|                     |¦  «        }	t          t          || ¦  «        g|	j
        z  ¦  «        }
t          j        ||||¬¦  «        |
         }t          t          j        |	|||¬¦  «        |d¬	¦  «         d S )
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˜¥EÐ*Ñ*Ô*×2Ò2°2°rÑ:Ô:ˆØˆð ˆÝ(×,Ò,¨TÑ2Ô2ˆØ—:’:�bœf T¨4°hÐ?Ñ?Ô?Ñ@Ô@ˆØ�JŠJ�tÑÔˆå�e D¨4¨%Ñ0Ô0Ð1°A´FÑ:Ñ;Ô;ˆÝ!œ-Ø�e $¨eð5ñ 5ô 5Ø5AôCˆõ 	ÝŒ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Æ  ð  s”  € € € € € ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð8ð 8ñ 3Ô2ð8ð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðAð Añ 3Ô2ðAð
 „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2Ø„[×Ò˜W y°,Ð&?Ñ@Ô@ð1ð 1ñ AÔ@ñ 3Ô2ð1ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2Ø„[×Ò˜V j°/Ð%BÑCÔCØ„[×Ò˜W y°,Ð&?Ñ@Ô@ð1ð 1ñ AÔ@ñ DÔCñ 3Ô2ð1ð( „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ðCð Cñ 3Ô2ðCð „[×Ò˜WØGÐGÐGñIô Ià„[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð
ð 
ñ 3Ô2ñIô Ið
ð „[×Ò˜WØGÐGÐGñIô Ià„[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð
ð 
ñ 3Ô2ñIô Ið
ð
ð 
ð 
ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð
ð 
ñ 3Ô2ð
ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2Ø„[×Ò˜[¨5°$¨-Ñ8Ô8ð

ð 

ñ 9Ô8ñ 3Ô2ð

ð „[×Ò˜Vð &;ð &;ð &;ñ <ô <à„[×Ò˜W e e¨A¡h¤hÑ/Ô/ð
ð 
ñ 0Ô/ñ<ô <ð
ð 
ð 
r(   rÆ  c                   óÜ  — e Zd Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zd„ Zd„ Z	ej                             d edd¦  «        ¦  «        ej                             ddd	g¦  «        d
„ ¦   «         ¦   «         Z
d„ Zd„ Zd„ Zej                             dg d¢¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zej                             dddg¦  «        ej                             dg d¢¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         ¦   «         Ze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d'S )(ÚTestZoomr0   r   r@   c                 óN  — dddgfD �]}|                      |                     d|j        ¬¦  «        d¦  «        }t          j        |||¬¦  «        }|j        dk    sJ ‚|                     |dd d …f         dk    ¦  «        sJ ‚|                     |dd d …f         d	t          z
  k    ¦  «        sJ ‚|                     |dd d …f         d
t          z   k    ¦  «        sJ ‚|                     |dt          z
  k    ¦  «        sJ ‚|                     |dt          z   k    ¦  «        sJ ‚�Œd S )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»  s8  € à�a˜�V�ð 	-ñ 	-ˆAØ—*’*˜RŸYšY r°´˜YÑ<Ô<¸fÑEÔEˆCÝ”,˜s A¨UÐ3Ñ3Ô3ˆCØ”9 Ò(Ð(Ð(Ð(Ø—6’6˜#˜b ! ! !˜eœ*¨š/Ñ*Ô*Ð*Ð*Ð*Ø—6’6˜#˜b ! ! !˜eœ*¨­c©Ò2Ñ3Ô3Ð3Ð3Ð3Ø—6’6˜#˜a   ˜dœ)¨­C©Ò0Ñ1Ô1Ð1Ð1Ð1Ø—6’6˜# !¥c¡'Ò*Ñ+Ô+Ð+Ð+Ð+Ø—6’6˜# "¥s¡(Ò+Ñ,Ô,Ð,Ð,Ð,Ñ,ð	-ð 	-r(   c                 óÈ   — |                      |                     d¦  «        d¦  «        }t          j        t          j        |d¦  «        d¦  «        }t	          ||¦  «         d S )NrÏ   rð   r)   r!   )r  rP   r3   rò  r   )r6   r8   rö  ro   s       r%   Ú
test_zoom2zTestZoom.test_zoom2Ç  sR   € Ø�jŠj˜Ÿš 2™œ¨Ñ/Ô/ˆÝŒl�7œ<¨¨QÑ/Ô/°Ñ5Ô5ˆÝ˜˜SÑ!Ô!Ð!Ð!Ð!r(   c                 ó(  — |                      ddgg¦  «        }t          j        |d¦  «        }t          j        |d¦  «        }t          ||                      ddgddgg¦  «        ¦  «         t          ||                      g d¢g¦  «        ¦  «         d S )Nr   r)   r—  rÝ   )r   r   r)   r)   )r2   r3   rò  r   )r6   r8   rö  r0  r1  s        r%   Ú
test_zoom3zTestZoom.test_zoom3Ì  sŒ   € Ø�jŠj˜1˜a˜&˜Ñ"Ô"ˆÝŒ|˜C Ñ(Ô(ˆÝŒ|˜C Ñ(Ô(ˆå! $¨¯
ª
°Q¸°F¸QÀ¸FÐ3CÑ(DÔ(DÑEÔEÐEÝ! $¨¯
ª
°L°L°L°>Ñ(BÔ(BÑCÔCÐCÐCÐCr(   rC   rQ   r›   c                 óÐ  — t          ||¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     |j        d¦  «        r|d|z  z  }t	          j        ¦   «         5  t	          j        ddt          ¦  «         t          j	        ||                     d	d	g¦  «        d
d|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d d d…d d d…f         |¦  «         d S )Nr=   rË   rÖ   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Ô  sg  € õ ˜˜EÑ"Ô"ˆØ�zŠz˜<˜<˜<Ø'˜<˜<Ø*˜?˜?ð,à38ð ñ :ô :ˆð �:Š:�d”jÐ"4Ñ5Ô5ð 	Ø�B˜‘IÑˆDÝÔ$Ñ&Ô&ð 	@ð 	@ÝÔ# Hð%Ý&1ñ3ô 3ð 3õ Ô*¨4°·²¸SÀ#¸JÑ1GÔ1GÈØ+1¸ð@ñ @ô @ˆCð		@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@õ 	" # c c¨ c¨3¨3¨Q¨3 h¤-°Ñ6Ô6Ð6Ð6Ð6s   Á'A
B=Â=CÃCc                 óh   — d}t          j        |                     ||f¦  «        d|z  d¬¦  «         d S )Nr¥   ç      ð?r   rH   )r3   rò  r¼  )r6   r8   Údims      r%   Útest_zoom_infinityzTestZoom.test_zoom_infinityå  s8   € àˆÝŒ�R—X’X˜s C˜jÑ)Ô)¨2°©8¸)ÐDÑDÔDÐDÐDÐDr(   c                 ó¬   — |                      d¦  «        }d}t          j        ||d¬¦  «        }|                      d¦  «        }t          ||¦  «         d S )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ê  sU   € à�hŠh�yÑ!Ô!ˆØˆåŒl˜3 ¨1Ð-Ñ-Ô-ˆØ�hŠh�{Ñ#Ô#ˆÝ! # sÑ+Ô+Ð+Ð+Ð+r(   c                 óx   — |                      d¦  «        }d}t          j        ||¦  «        }|j        dk    sJ ‚d S )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ó  sB   € Ø�hŠh�{Ñ#Ô#ˆØ.ˆÝŒl˜3 Ñ%Ô%ˆØŒy˜KÒ'Ð'Ð'Ð'Ð'Ð'r(   rò  )r7  )r*   r¦   )r¥   r)   )r¥   r¥   r.   )r   r   r   r   r   r   r   r   c                 ó@  — t          j        ddgddggt           j        ¬¦  «        }t          j        |t          j        |¦  «        ¦  «        }|                     |¦  «        }|                     |¦  «        }t          t          j        ||d|¬¦  «        |¦  «         d S )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˜A˜q˜6Ø˜q˜6ð#Ý*,¬*ð6ñ 6ô 6ˆå”7˜4¥¤¨¡¤Ñ/Ô/ˆà�JŠJ�tÑÔˆØ—:’:˜hÑ'Ô'ˆå!ÝŒL˜˜D¨°Ð5Ñ5Ô5Øñ	
ô 	
ð 	
ð 	
ð 	
r(   r‰   r»  )r   r   )r   r   r   r   r   c                 ón  — t          j        t          j        |¦  «        t          ¬¦  «                             |¦  «        }|                     |¦  «        }t          t          j        ||d|d¬¦  «        |                     t          j	        |t          j
        |¦  «        ¦  «        ¦  «        ¦  «         d S )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  s–   € õ Œy�œ ™œ­uÐ5Ñ5Ô5×=Ò=¸eÑDÔDˆà�JŠJ�tÑÔˆÝ!ÝŒL˜˜D¨°ÀÐEÑEÔEØ�JŠJ•r”w˜t¥R¤W¨T¡]¤]Ñ3Ô3Ñ4Ô4ñ	
ô 	
ð 	
ð 	
ð 	
r(   r   r   c                 ó   — |                      |                     d|j        ¬¦  «        d¦  «        }t          j        t
          d¬¦  «        5  t          j        |d|d¬¦  «        f d d d ¦  «         d S # 1 swxY w Y   d S )	NrÓ   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Ô5°vÑ>Ô>ˆÝŒ\�+Ø ?ðAñ Aô Að 	;ð 	;åŒL˜˜A D°DÐ9Ñ9Ô9Ð:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 	;ð 	;s   ÁA3Á3A7Á:A7z
dask.arrayz!output=array requires buffer viewr4  r3  c                 ó¬   — |                      |                     d¦  «        d¦  «        }t          j        |d|                     d¦  «        ¬¦  «         dS )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&  sJ   € ð �JŠJ�r—y’y ‘}”} fÑ-Ô-ˆÝŒ�Q˜ "§(¢(¨6Ñ"2Ô"2Ð3Ñ3Ô3Ð3Ð3Ð3r(   c                 óÌ   — |                      d¦  «        }d}t          j        |t          j        |¦  «        ¦  «        }t          j        ||¦  «        }t          ||¦  «         d S )Ng      $@r)   )rP   r3   rò  rO   Úarrayr   )r6   r8   rù   ÚfactorÚactualr^   s         r%   Útest_zoom_0d_arrayzTestZoom.test_zoom_0d_array-  sX   € à�IŠI�c‰NŒNˆØˆÝ”˜a¥¤¨&Ñ!1Ô!1Ñ2Ô2ˆÝ”<  6Ñ*Ô*ˆÝ˜ Ñ)Ô)Ð)Ð)Ð)r(   rs   zCuPy `zoom` needs similar fix.c                 ó¼   — |                      d¦  «        }t          t          j        |d¦  «        |¦  «         t          t          j        |d¦  «        |¦  «         d S )Nr*   r   r7  )r�  r   r3   rò  r  s      r%   Útest_zoom_1_gh20999zTestZoom.test_zoom_1_gh209995  sQ   € ð �FŠF�1‰IŒIˆÝ�œ Q¨Ñ*Ô*¨AÑ.Ô.Ð.Ý�œ Q¨Ñ/Ô/°Ñ3Ô3Ð3Ð3Ð3r(   zread-only backendznumpy round-tripc                 ó¨   — |                      d¦  «        }|                     |¦  «        }t          j        |d|¬¦  «         t	          ||¦  «         d S )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=  sQ   € ð �FŠF�1‰IŒ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 e¨A¨q¡k¤kÑ2Ô2ð	-ð 	-ñ 3Ô2ð	-ð"ð "ð "ð
Dð Dð Dð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2Ø„[×Ò˜W y°,Ð&?Ñ@Ô@ð7ð 7ñ AÔ@ñ 3Ô2ð7ðEð Eð Eð
,ð ,ð ,ð(ð (ð (ð „[×Ò˜VÐ%EÐ%EÐ%EÑFÔFØ„[×Ò˜Vð &7ð &7ð &7ñ 8ô 8ð
ð 
ñ8ô 8ñ GÔFð
ð" „[×Ò˜W v¨vÐ&6Ñ7Ô7Ø„[×Ò˜VÐ%EÐ%EÐ%EÑFÔFØ„[×Ò˜Vð &Dð &Dð &Dñ Eô Eð

ð 

ñEô Eñ GÔFñ 8Ô7ð

ð „[×Ò˜V j°&Ð%9Ñ:Ô:ð;ð ;ñ ;Ô:ð;ð Ð�lÐ+NÐOÑOÔOØÐ�kÐ*MÐNÑNÔNð4ð 4ñ OÔNñ PÔOð4ð
*ð *ð *ð Ð�vÐ&FÐGÑGÔGð4ð 4ñ HÔGð4ð Ð�vÐ&FÐGÑGÔGØÐ�kÐ*=Ð>Ñ>Ô>ØÐ�|Ð,>Ð?Ñ?Ô?ð#ð #ñ @Ô?ñ ?Ô>ñ HÔGð#ð #ð #r(   rï  c                   ól  — e Zd Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        ej                             dddg¦  «        d	„ ¦   «         ¦   «         Z	ej                             d edd¦  «        ¦  «        d
„ ¦   «         Z
ej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zej                             d edd¦  «        ¦  «        d„ ¦   «         Zd„ Zd„ Z edd¬¦  «        d„ ¦   «         ZdS )Ú
TestRotater0   r   r@   c                 óž   — |                      g d¢g d¢g d¢g|j        ¬¦  «        }t          j        |d|¬¦  «        }t	          ||¦  «         d S )Nr²   ©r   r   r   r   rB   r   ri   ©r2   rQ   r3   Úrotater   rR  s        r%   Útest_rotate01zTestRotate.test_rotate01J  sf   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)à02´
ð ñ <ô <ˆõ Œn˜T 1¨EÐ2Ñ2Ô2ˆÝ! # tÑ,Ô,Ð,Ð,Ð,r(   c                 óî   — |                      g d¢g d¢g d¢g|j        ¬¦  «        }|                      g d¢g d¢g d¢g d¢g|j        ¬¦  «        }t          j        |d|¬¦  «        }t	          ||¦  «         d S )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  s§   € à�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<ð)à02´
ð ñ <ô <ˆð —:’:˜y˜y˜yØ(˜y˜yØ(˜y˜yØ(˜y˜yð*ð 24´ð ñ =ô =ˆõ Œn˜T 2¨UÐ3Ñ3Ô3ˆÝ! # xÑ0Ô0Ð0Ð0Ð0r(   rC   rQ   r›   c                 óV  — t          ||¦  «        }|                     g d¢g d¢g d¢g|¬¦  «        }|                     g d¢g d¢g d¢g d¢g d¢g|¬¦  «        }|                     |j        d¦  «        r|d|z  z  }|d|z  z  }t	          j        |d|¬	¦  «        }t          ||¦  «         d S )
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˜y˜yØ(˜y˜yØ(˜y˜yØ(˜y˜yØ(˜y˜yð	*ð 27ð	 ñ 8ô 8ˆð
 �:Š:�d”jÐ"4Ñ5Ô5ð 	&Ø�B˜‘IÑˆDØ˜˜X™Ñ%ˆHÝŒn˜T 2¨UÐ3Ñ3Ô3ˆÝ! # xÑ0Ô0Ð0Ð0Ð0r(   c                 óê   — |                      g d¢g d¢g d¢g|j        ¬¦  «        }|                      g d¢g d¢g d¢g|j        ¬¦  «        }t          j        |dd|¬¦  «        }t	          ||¦  «         d S )Nr.  r/  rB   ©r   r   r   r   r   r*  F)r  r0   r$  r+  s         r%   Útest_rotate04zTestRotate.test_rotate04p  s¢   € à�zŠz˜?˜?˜?Ø*˜?˜?Ø*˜?˜?ð,à35´:ð ñ ?ô ?ˆð —:’:˜˜˜Ø.˜˜Ø.˜˜ð0à79´zð ñ Cô Cˆõ Œn˜T 2¨u¸EÐBÑBÔBˆÝ! # xÑ0Ô0Ð0Ð0Ð0r(   c                 ó¾  — t          j        d¦  «        }t          d¦  «        D ]8}t          j        g d¢g d¢g d¢g d¢gt           j        ¬¦  «        |d d …d d …|f<   Œ9|                     |¦  «        }|                     g d¢g d¢g d¢g|j        ¬¦  «        }t          j        |d|¬	¦  «        }t          d¦  «        D ]}t          |d d …d d …|f         |¦  «         Œ d S )
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˜	Ñ"Ô"ˆÝ�q‘”ð 	Fð 	FˆAÝœJ¨	¨	¨	Ø(1¨	¨	Ø(1¨	¨	Ø(1¨	¨	ð(3õ ;=¼*ðFñ Fô FˆD����A�A�A�q�‰MˆMð �zŠz˜$ÑÔˆØ—:’:˜|˜|˜|Ø+˜|˜|Ø+˜|˜|ð-à46´Jð ñ @ô @ˆõ Œn˜T 2¨UÐ3Ñ3Ô3ˆÝ�q‘”ð 	>ð 	>ˆAÝ% c¨!¨!¨!¨Q¨Q¨Q°¨'¤l°HÑ=Ô=Ð=Ð=ð	>ð 	>r(   c                 ó¾  — t          j        d¦  «        }t          d¦  «        D ]5}t          j        g d¢g d¢g d¢gt           j        ¬¦  «        |d d …d d …|f<   Œ6|                     |¦  «        }|                     g d¢g d¢g d¢g d¢g|j        ¬¦  «        }t          j        |d|¬	¦  «        }t          d¦  «        D ]}t          |d d …d d …|f         |¦  «         Œ d S )
N)r*   r   r*   r*   r²   r#  rB   r(  r)  r*  ri   r5  r6  s          r%   Útest_rotate06zTestRotate.test_rotate06‹  s!  € åŒx˜	Ñ"Ô"ˆÝ�q‘”ð 	Ið 	IˆAÝœJ¨¨¨Ø(4¨¨Ø(4¨¨ð(6å=?¼ZðIñ Iô IˆD����A�A�A�q�‰MˆMð �zŠz˜$ÑÔˆØ—:’:˜y˜y˜yØ(˜y˜yØ(˜y˜yØ(˜y˜yð*ð 24´ð ñ =ô =ˆõ Œn˜T 2¨UÐ3Ñ3Ô3ˆÝ�q‘”ð 	>ð 	>ˆAÝ% c¨!¨!¨!¨Q¨Q¨Q°¨'¤l°HÑ=Ô=Ð=Ð=ð	>ð 	>r(   c                 ó^  — |                      g d¢g d¢g d¢ggdz  |j        ¬¦  «        }|                     |d¦  «        }|                      g d¢g d¢g d¢g d¢g d¢ggdz  |j        ¬¦  «        }|                     |d¦  «        }t          j        |dd	|¬
¦  «        }t          ||¦  «         d S )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˜O˜OØ+˜O˜OØ+˜O˜Oð-ð .à01ñ2à9;¼ð ñ Eô Eˆð �Š˜t YÑ/Ô/ˆØ—:’: 	 	 	Ø ) 	 	Ø ) 	 	Ø ) 	 	Ø ) 	 	ð	 +ð ,ð /0ñ	0ð 8:´zð	 ñ Cô Cˆð
 —?’? 8¨YÑ7Ô7ˆÝŒn˜T 2¨F¸%Ð@Ñ@Ô@ˆÝ! # xÑ0Ô0Ð0Ð0Ð0r(   c                 óT  — |                      g d¢g d¢g d¢ggdz  |j        ¬¦  «        }|                     |d¦  «        }|                      g d¢g d¢g d¢ggdz  |j        ¬¦  «        }|                     |d¦  «        }t          j        |ddd	|¬
¦  «        }t          ||¦  «         d S )Nr.  r/  r)   rB   r<  r2  r*  r¸  F)r=  r  r0   r>  r+  s         r%   Útest_rotate08zTestRotate.test_rotate08ª  sæ   € à�zŠz˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ð .à01ñ2à9;¼ð ñ Eô Eˆð �Š˜t YÑ/Ô/ˆØ—:’:   Ø /  Ø /  ð 1ð 2à45ñ6à=?¼Zð ñ Iô Iˆð —?’? 8¨YÑ7Ô7ˆÝŒn˜T 2¨F¸EÈÐOÑOÔOˆÝ! # xÑ0Ô0Ð0Ð0Ð0r(   c                 óì   — |                      g d¢g d¢g d¢gdz  |j        ¬¦  «        }t          t          ¦  «        5  t	          j        |dd|j        f¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr.  r/  r)   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ð ñ Cô Cˆõ �:Ñ&Ô&ð 	:ð 	:ÝŒN˜4 ¨1¨d¬i¨.Ð9Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   ½A)Á)A-Á0A-c           
      óR  — |                      |                     d|j        ¬¦  «        d¦  «        }|                     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¬¦  «         d S )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˜)Ñ9Ô9¸9ÑEÔEˆð —:’:   Ø /  Ø DÐ DÐ DØ GÐ GÐ GØ /  ð	 1ð
 !EÐ DÐ DØ DÐ DÐ DØ 2Ð 2Ð 2Ø DÐ DÐ DØ GÐ GÐ Gð	 Ið
 !0  Ø GÐ GÐ GØ GÐ GÐ GØ /  Ø /  ð	 1ð2ð :<¼ð ñ Eô Eˆõ  Œn˜T¨°UÐ;Ñ;Ô;ˆå˜˜X¨D°tÐ<Ñ<Ô<Ð<Ð<Ð<r(   rs   z(https://github.com/cupy/cupy/issues/8400r4  c                 óê   — |                      t          j        t          j        d¦  «        d¦  «        ¦  «        }t	          j        t	          j        |d¦  «        d¦  «        }t          ||¦  «         d S )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×  sZ   € à�JŠJ•r”w�rœy¨™|œ|¨VÑ4Ô4Ñ5Ô5ˆÝŒN�7œ>¨!¨SÑ1Ô1°4Ñ8Ô8ˆÝ˜˜1ÑÔÐÐÐr(   N)r`   ra   rb   rM   rc   rd   re   r&  r,  r0  r3  r8  r:  r@  rB  rD  rH  rÄ  rL  r"   r(   r%   r!  r!  G  sC  € € € € € ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð-ð -ñ 3Ô2ð-ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð	1ð 	1ñ 3Ô2ð	1ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2Ø„[×Ò˜W y°,Ð&?Ñ@Ô@ð1ð 1ñ AÔ@ñ 3Ô2ð1ð  „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð1ð 1ñ 3Ô2ð1ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð>ð >ñ 3Ô2ð>ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð>ð >ñ 3Ô2ð>ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð1ð 1ñ 3Ô2ð1ð „[×Ò˜W e e¨A¨q¡k¤kÑ2Ô2ð
1ð 
1ñ 3Ô2ð
1ð:ð :ð :ð=ð =ð =ð2 Ð�vÐ&PÐQÑQÔQðð ñ RÔQðð ð 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>rQ     s   ðØ 
€
€
€
Ø €€€à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à”;Ô/Ð Ø”KÔ1Ð ð €ð ØØØØØðð Ð ðF;ð F;ð F;ð F;ð F;ñ F;ô F;ð F;ðR Ð�7Ô(Ñ)Ô)Ø„×Ò˜ % %¨¨1¡+¤+Ñ.Ô.Ø„×Ò˜ %Ñ(Ô(ð$1ð $1ð $1ð $1ð $1ñ $1ô $1ñ )Ô(ñ /Ô.ñ *Ô)ð$1ðN Ð�7Ô.Ñ/Ô/Ø„×Ò˜ % %¨¨1¡+¤+Ñ.Ô.ðR;ð R;ð R;ð R;ð R;ñ R;ô R;ñ /Ô.ñ 0Ô/ðR;ðj Ð�7Ô.Ñ/Ô/ðJ,ð J,ð J,ð J,ð J,ñ J,ô J,ñ 0Ô/ðJ,ðZ Ð�7Ô*Ñ+Ô+ðtDð tDð tDð tDð tDñ tDô tDñ ,Ô+ðtDðn Ð�7Ô+Ñ,Ô,ðy
ð y
ð y
ð y
ð y
ñ y
ô y
ñ -Ô,ðy
ðx Ð�7”=Ñ!Ô!ðD
ð D
ð D
ð D
ð D
ñ D
ô D
ñ "Ô!ðD
ðN Ð�7”<Ñ Ô ðK#ð K#ð K#ð K#ð K#ñ K#ô K#ñ !Ô ðK#ð\ Ð�7”>Ñ"Ô"ðSð Sð Sð Sð Sñ Sô Sñ #Ô"ðSð Sð Sr(   