Ë
    âQ(húå  ã                   ól  — d dl Z d dlZ d dlZd dlm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 d dlmZ ej.                  j0                  Zeej.                  j3                  d«       ed	d
dg¬«      gZe j6                  dk(  xr ej8                  dk  Z ed	d¬«       G d„ d«      «       Z G d„ d«      Zd„ Z d„ Z!ej.                  jD                  d„ «       Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+ ed	d ¬«      d!„ «       Z,d"„ Z-d#„ Z. ed	d$¬«      d%„ «       Z/ ed	d$¬«      d&„ «       Z0d'„ Z1d(„ Z2 ed
d)¬*«      d+„ «       Z3d,„ Z4 ed
d-¬*«       G d.„ d/«      «       Z5d0„ Z6d1„ Z7d2„ Z8d3„ Z9d4„ Z:d5„ Z;d6„ Z<d7„ Z=d8„ Z>d9„ Z?d:„ Z@d;„ ZAd<„ ZBd=„ ZCd>„ ZDd?„ ZEd@„ ZFdA„ ZGdB„ ZHdC„ ZIdD„ ZJdE„ ZKdF„ ZLdG„ ZMdH„ ZNdI„ ZOdJ„ ZPdK„ ZQdL„ ZRdM„ ZSdN„ ZTdO„ ZUdP„ ZVdQ„ ZWdR„ ZXdS„ ZYdT„ ZZdU„ Z[dV„ Z\dW„ Z]dX„ Z^dY„ Z_dZ„ Z`d[„ Zad\„ Zbd]„ Zcd^„ Zdd_„ Zed`„ Zfda„ Zgdb„ Zhdc„ Zidd„ Zjde„ Zkdf„ Zldg„ Zmdh„ Zndi„ Zodj„ Zpdk„ Zqdl„ Zrdm„ Zsdn„ Ztdo„ Zudp„ Zvdq„ Zwdr„ Zxds„ Zydt„ Zzdu„ Z{dv„ Z|dw„ Z}dx„ Z~dy„ Zdz„ Z€d{„ Z� ed	d|¬«      d}„ «       Z‚d~„ Zƒ ed
d¬*«       G d€„ d�«      «       Z„ ed	¬‚«      ej.                  �j                  dƒe�j                  e�j                  g«      d„„ «       «       Zˆy)…é    N)Úsuppress_warnings)Úis_jaxÚis_torchÚarray_namespaceÚxp_assert_equalÚxp_assert_closeÚassert_array_almost_equalÚassert_almost_equal)Úraisesé   )Útypes)Úarray_api_compatibleÚskip_xp_backendsTÚcupyz	jax.numpy)Úcpu_onlyÚ
exceptionsÚntÚ2z test internal numpy-only helpers©Únp_onlyÚreasonc                   ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_measurements_statsz²ndimage._measurements._stats() is a utility used by other functions.

        Since internal ndimage/_measurements.py code is NumPy-only,
        so is this this test class.
    c           	      ó¾  — g d¢}g d¢}ddg}dD ]Ì  }t        j                  |«      j                  |«      }t        j                  |«      j                  |«      }t        j                  j                  |||¬«      \  }}t        rdt         j                  ini }t        |t        j                  ddgfi |¤Ž«       t        |t        j                  d	d
g«      «       ŒÎ y )N©r   r   é   é   ©r   r   r   r   r   r   ©)é   )r   r   ©ÚlabelsÚindexÚdtyper   ç      ð?ç       @©
ÚnpÚarrayÚreshapeÚndimageÚ_measurementsÚ_statsÚIS_WINDOWS_AND_NP1Úint64r   Úasarray©	ÚselfÚxpÚxr"   r#   ÚshpÚcountsÚsumsÚ	dtype_args	            úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/ndimage/tests/test_measurements.pyÚtest_azTest_measurements_stats.test_a'   sÃ   € ÚˆÚˆØ�A�ˆØ!ò 	:ˆCÜ—‘˜“×#Ñ# CÓ(ˆAÜ—X‘X˜fÓ%×-Ñ-¨cÓ2ˆFÜ"×0Ñ0×7Ñ7Ø˜&¨ð 8ó /‰LˆF�Dõ 0B˜¤"§(¡(Ñ+ÀrˆIÜ˜F¤B§J¡J°°1¨vÑ$C¸Ñ$CÔDÜ˜D¤"§*¡*¨c°3¨ZÓ"8Õ9ñ	:ó    c           	      ó¾  — g d¢}g d¢}ddg}dD ]Ì  }t        j                  |«      j                  |«      }t        j                  |«      j                  |«      }t        j                  j                  |||¬«      \  }}t        rdt         j                  ini }t        |t        j                  ddgfi |¤Ž«       t        |t        j                  d	d
g«      «       ŒÎ y )Nr   ©r   r   é	   r>   r   r>   r   r!   r$   r   r%   r&   r'   r1   s	            r9   Útest_bzTest_measurements_stats.test_b5   sÅ   € ò ˆÚˆØ�A�ˆØ!ò 	:ˆCÜ—‘˜“×#Ñ# CÓ(ˆAÜ—X‘X˜fÓ%×-Ñ-¨cÓ2ˆFÜ"×0Ñ0×7Ñ7Ø˜&¨ð 8ó /‰LˆF�Dõ 0B˜¤"§(¡(Ñ+ÀrˆIÜ˜F¤B§J¡J°°1¨vÑ$C¸Ñ$CÔDÜ˜D¤"§*¡*¨c°3¨ZÓ"8Õ9ñ	:r;   c           	      ó  — g d¢}g d¢}ddg}dD ]ï  }t        j                  |«      j                  |«      }t        j                  |«      j                  |«      }t        j                  j                  |||d¬«      \  }}}t        rdt         j                  ini }	t        |t        j                  d	d	gfi |	¤Ž«       t        |t        j                  d
dg«      «       t        |t        j                  ddg«      «       Œñ y )Nr   r   r   r   r   T©r"   r#   Úcenteredr$   r   r%   r&   ç      à?r'   ©
r2   r3   r4   r"   r#   r5   r6   r7   Úcentersr8   s
             r9   Útest_a_centeredz'Test_measurements_stats.test_a_centeredE   óà   € ÚˆÚˆØ�A�ˆØ!ò 		=ˆCÜ—‘˜“×#Ñ# CÓ(ˆAÜ—X‘X˜fÓ%×-Ñ-¨cÓ2ˆFÜ$+×$9Ñ$9×$@Ñ$@Ø˜&¨¸ð %Aó %>Ñ!ˆF�D˜'õ 0B˜¤"§(¡(Ñ+ÀrˆIÜ˜F¤B§J¡J°°1¨vÑ$C¸Ñ$CÔDÜ˜D¤"§*¡*¨c°3¨ZÓ"8Ô9Ü˜G¤R§Z¡Z°°c°
Ó%;Õ<ñ		=r;   c           	      ó  — g d¢}g d¢}ddg}dD ]ï  }t        j                  |«      j                  |«      }t        j                  |«      j                  |«      }t        j                  j                  |||d¬«      \  }}}t        rdt         j                  ini }	t        |t        j                  d	d	gfi |	¤Ž«       t        |t        j                  d
dg«      «       t        |t        j                  ddg«      «       Œñ y )Nr   r=   r   r>   r   TrA   r$   r   r%   r&   rC   r'   rD   s
             r9   Útest_b_centeredz'Test_measurements_stats.test_b_centeredT   rG   r;   c           	      ó  — g d¢}g d¢}ddg}dD ]ï  }t        j                  |«      j                  |«      }t        j                  |«      j                  |«      }t        j                  j                  |||d¬«      \  }}}t        rdt         j                  ini }	t        |t        j                  d	d	gfi |	¤Ž«       t        |t        j                  d
dg«      «       t        |t        j                  ddg«      «       Œñ y )Nr   )ç        rK   ç      "@rL   rK   rL   r   TrA   r$   r   r%   r&   rC   r'   rD   s
             r9   Útest_nonint_labelsz*Test_measurements_stats.test_nonint_labelsc   sà   € ÚˆÚ%ˆØ�c�
ˆØ!ò 		=ˆCÜ—‘˜“×#Ñ# CÓ(ˆAÜ—X‘X˜fÓ%×-Ñ-¨cÓ2ˆFÜ$+×$9Ñ$9×$@Ñ$@Ø˜&¨¸ð %Aó %>Ñ!ˆF�D˜'õ 0B˜¤"§(¡(Ñ+ÀrˆIÜ˜F¤B§J¡J°°1¨vÑ$C¸Ñ$CÔDÜ˜D¤"§*¡*¨c°3¨ZÓ"8Ô9Ü˜G¤R§Z¡Z°°c°
Ó%;Õ<ñ		=r;   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   r?   rF   rI   rM   © r;   r9   r   r       s    „ ñò
:ò:ò =ò=ó=r;   r   c                   ó   — e Zd ZdZd„ Zy)ÚTest_measurements_selectzEndimage._measurements._select() is a utility used by other functions.c                 ó–  — g d¢}g d¢ddgfg d¢ddgfg d¢dd	gfg}|D �]¨  \  }}t         j                  j                  |||¬
«      }t        |«      dk(  sJ ‚t         j                  j                  |||d¬«      }t        |«      dk(  sJ ‚t	        |d   ddg«       t         j                  j                  |||d¬«      }t        |«      dk(  sJ ‚t	        |d   ddg«       t         j                  j                  |||dd¬«      }t        |«      dk(  sJ ‚t	        |d   ddg«       t	        |d   ddg«       |d   j
                  j                  dk(  sJ ‚t         j                  j                  |||dd¬«      }t        |«      dk(  sJ ‚t	        |d   ddg«       t	        |d   ddg«       |d   j
                  j                  dk(  r�Œ©J ‚ y )N)r   r   r   r   r   r   r   r=   r>   )rK   rK   ç      @rV   rK   rV   r!   T)r"   r#   Úfind_maxr   )r"   r#   Úfind_minr   )r"   r#   rX   Úfind_min_positionsé   Úi)r"   r#   rW   Úfind_max_positions)r+   r,   Ú_selectÚlenr   r$   Úkind)r2   r3   r4   Úcasesr"   r#   Úresults          r9   Ú
test_basicz#Test_measurements_select.test_basicv   s  € Úˆâ˜A˜q˜6Ð"Ú˜A˜q˜6Ð"Ú! C¨ :Ð.ð
ˆð
 #ó 	/‰MˆF�EÜ×*Ñ*×2Ñ2Ø˜&¨ð 3ó /ˆFä�v“; !Ò#Ð#Ð#Ü×*Ñ*×2Ñ2Ø˜&¨¸ð 3ó >ˆFä�v“; !Ò#Ð#Ð#Ü˜F 1™I¨¨1 vÔ.Ü×*Ñ*×2Ñ2Ø˜&¨¸ð 3ó >ˆFä�v“; !Ò#Ð#Ð#Ü˜F 1™I¨¨1 vÔ.Ü×*Ñ*×2Ñ2Ø˜&¨¸Ø#'ð 3ó )ˆFô �v“; !Ò#Ð#Ð#Ü˜F 1™I¨¨1 vÔ.Ü˜F 1™I¨¨1 vÔ.Ø˜!‘9—?‘?×'Ñ'¨3Ò.Ð.Ð.Ü×*Ñ*×2Ñ2Ø˜&¨¸Ø#'ð 3ó )ˆFô �v“; !Ò#Ð#Ð#Ü˜F 1™I¨¨1 vÔ.Ü˜F 1™I¨¨1 vÔ.Ø˜!‘9—?‘?×'Ñ'¨3Ô.Ð.Ð.ñ3	/r;   N)rN   rO   rP   rQ   rb   rR   r;   r9   rT   rT   s   s
   „ ÙOó /r;   rT   c                 ór   — | j                  g «      }t        j                  |«      \  }}|dk(  sJ ‚|dk(  sJ ‚y ©Nr   )Úonesr+   Úlabel©r3   ÚdataÚoutÚns       r9   Útest_label01rk   ™   s7   € Ø�7‰7�2‹;€DÜ�]‰]˜4Ó �F€CˆØ�!Š8€Oˆ8Ø�Š6€M‰6r;   c                 ór   — | j                  g «      }t        j                  |«      \  }}|dk(  sJ ‚|dk(  sJ ‚y )Nr   )Úzerosr+   rf   rg   s       r9   Útest_label02rn       s7   € Ø�8‰8�B‹<€DÜ�]‰]˜4Ó �F€CˆØ�!Š8€Oˆ8Ø�Š6€M‰6r;   c                 óž   — | j                  dg«      }t        j                  |«      \  }}t        || j	                  dg«      «       |dk(  sJ ‚y rd   ©re   r+   rf   r	   r0   rg   s       r9   Útest_label03rq   §   sB   € à�7‰7�A�3‹<€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:¨q¨c£?Ô3Ø�Š6€M‰6r;   c                 óž   — | j                  dg«      }t        j                  |«      \  }}t        || j	                  dg«      «       |dk(  sJ ‚y )Nr   r   )rm   r+   rf   r	   r0   rg   s       r9   Útest_label04rs   ¯   sB   € Ø�8‰8�Q�C‹=€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:¨q¨c£?Ô3Ø�Š6€M‰6r;   c                 ó    — | j                  dg«      }t        j                  |«      \  }}t        || j	                  g d¢«      «       |dk(  sJ ‚y )Né   )r   r   r   r   r   r   rp   rg   s       r9   Útest_label05rv   ¶   sA   € Ø�7‰7�A�3‹<€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:ªoÓ#>Ô?Ø�Š6€M‰6r;   c                 ó¢   — | j                  g d¢«      }t        j                  |«      \  }}t        || j                  g d¢«      «       |dk(  sJ ‚y )N)r   r   r   r   r   r   ©r   r   r   r   r   rZ   rZ   ©r0   r+   rf   r	   rg   s       r9   Útest_label06rz   ½   sB   € Ø�:‰:Ò(Ó)€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:Ò.@Ó#AÔBØ�Š6€M‰6r;   c                 óâ   — | j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |«      \  }}t        || j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      «       |dk(  sJ ‚y )N©r   r   r   r   r   r   r   ry   rg   s       r9   Útest_label07r}   Ä   st   € Ø�:‰:Ò)Ú)Ú)Ú)Ú)Ú)ð+ó ,€Dô �]‰]˜4Ó �F€CˆÜ˜c 2§:¡:Ú%7Ú%7Ú%7Ú%7Ú%7Ú%7ð%9ó$:ô ;ð �Š6€M‰6r;   c                 óâ   — | j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |«      \  }}t        || j                  g d¢g d¢g d¢g d¢g d¢g d	¢g«      «       |d
k(  sJ ‚y )N©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   ©rZ   rZ   r   r   r   r   ©r   r   r   r    r    r   r    ry   rg   s       r9   Útest_label08rˆ   Ö   sw   € Ø�:‰:Ò)Ú)Ú)Ú)Ú)Ú)ð+ó ,€Dô �]‰]˜4Ó �F€CˆÜ˜c 2§:¡:Ò/AÚ/AÚ/AÚ/AÚ/AÚ/Að/Có $Dô Eð �Š6€M‰6r;   c                 ó2  — | j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  dd«      }| j                  |«      }t        j                  ||«      \  }}t	        || j                  g d¢g d¢g d¢g d	¢g d	¢g d
¢g«      «       |dk(  sJ ‚y )Nr   r€   r�   r‚   rƒ   r   r„   r…   )r   r   r   r   r   r   )r   r   r   rZ   rZ   r   rZ   ©r0   r+   Úgenerate_binary_structurerf   r	   ©r3   rh   Ústructri   rj   s        r9   Útest_label09rŽ   ç   s™   € Ø�:‰:Ò)Ú)Ú)Ú)Ú)Ú)ð+ó ,€Dô ×.Ñ.¨q°!Ó4€FØ�Z‰Z˜Ó€FÜ�]‰]˜4 Ó(�F€CˆÜ˜c 2§:¡:Ò/AÚ/AÚ/AÚ/AÚ/AÚ/Að/Có $Dô Eð �Š6€M‰6r;   c           
      ó  — | j                  g d¢g d¢g d¢g d¢g«      }t        j                  dd«      }| j                  |«      }t        j                  ||«      \  }}t	        || j                  g d¢g d¢g d¢g d¢g«      «       |dk(  sJ ‚y )Nr|   )r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rŠ   rŒ   s        r9   Útest_label10r�   ú   s�   € Ø�:‰:Ò)Ú)Ú)Ú)ð+ó ,€Dô ×.Ñ.¨q°!Ó4€FØ�Z‰Z˜Ó€FÜ�]‰]˜4 Ó(�F€CˆÜ˜c 2§:¡:Ò/AÚ/AÚ/AÚ/Að/Có $Dô Eð �Š6€M‰6r;   c           
      ó  — t         D ]ƒ  }t        | |«      }| j                  g d¢g d¢g d¢g d¢g d¢g d¢g|¬«      }t        j                  |«      \  }}g d¢g d¢g d¢g d	¢g d	¢g d
¢g}| j                  |«      }t        ||«       |dk(  rŒƒJ ‚ y )Nr   r€   r�   r‚   rƒ   ©r$   r„   r…   r†   r‡   r    ©r   Úgetattrr0   r+   rf   r	   ©r3   Útyper$   rh   ri   rj   Úexpecteds          r9   Útest_label11r˜   	  sž   € Üò ˆÜ˜˜DÓ!ˆØ�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ð
 7<ð ó =ˆô —‘˜tÓ$‰ˆˆQÚ&Ú&Ú&Ú&Ú&Ú&ð(ˆð —:‘:˜hÓ'ˆÜ! # xÔ0Ø�A‹vˆˆvñ#r;   z inplace output is numpy-specificc           
      ó  — t         D ]‚  }t        | |«      }| j                  g d¢g d¢g d¢g d¢g d¢g d¢g|¬«      }t        j                  ||¬«      }g d¢g d¢g d	¢g d
¢g d
¢g d¢g}| j                  |«      }t        ||«       |dk(  rŒ‚J ‚ y )Nr   r€   r�   r‚   rƒ   r’   ©Úoutputr„   r…   r†   r‡   r    r“   )r3   r–   r$   rh   rj   r—   s         r9   Útest_label11_inplacerœ     sœ   € äò ˆÜ˜˜DÓ!ˆØ�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ð
 7<ð ó =ˆô �M‰M˜$ tÔ,ˆÚ&Ú&Ú&Ú&Ú&Ú&ð(ˆð —:‘:˜hÓ'ˆÜ! $¨Ô1Ø�A‹vˆˆvñ#r;   c           	      ó  — t         D ]}  }t        | |«      }| j                  g d¢g d¢g d¢g d¢g d¢g|¬«      }t        j                  |«      \  }}g d¢g d¢g d¢g d¢g d¢g}| j                  |«      }t        ||«       |dk(  rŒ}J ‚ y )N)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   rƒ   r’   r   r“   r•   s          r9   Útest_label12rž   4  s˜   € Üò ˆÜ˜˜DÓ!ˆØ�z‰zÒ-Ú-Ú-Ú-Ú-ð	/ð 7<ð	 ó =ˆô
 —‘˜tÓ$‰ˆˆQÚ&Ú&Ú&Ú&Ú&ð	(ˆð
 —:‘:˜hÓ'ˆÜ! # xÔ0Ø�A‹vˆˆvñr;   c                 ó  — t         D ]w  }t        | |«      }| j                  g d¢g d¢g d¢g d¢g|¬«      }t        j                  |«      \  }}g d¢g d¢g d¢g d¢g}| j                  |«      }t        ||«       |dk(  rŒwJ ‚ y )N)r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r’   r   r“   r•   s          r9   Útest_label13r    G  s’   € Üò ˆÜ˜˜DÓ!ˆØ�z‰zÒ<Ú<Ú<Ú<ð>ð !&ð	 ó 'ˆô
 —‘˜tÓ$‰ˆˆQÚ5Ú5Ú5Ú5ð7ˆð —:‘:˜hÓ'ˆÜ! # xÔ0Ø�A‹vˆˆvñr;   zoutput=dtype is numpy-specificc                 ó  — | j                  dg«      }t        D ]q  }t        | |«      }| j                  dg|¬«      }t	        j
                  ||¬«      }t        || j                  |j                  |j                  ¬«      «       |dk(  rŒqJ ‚ y )Nru   r’   rš   r   )	re   r   r”   rm   r+   rf   r	   Úshaper$   ©r3   rh   Útr$   r›   rj   s         r9   Útest_label_output_typedr¥   Y  s}   € à�7‰7�A�3‹<€DÜò ˆÜ˜˜A“ˆØ—‘˜1˜# U�Ó+ˆÜ�M‰M˜$ vÔ.ˆÜ! &Ø"$§'¡'¨&¯,©,¸f¿l¹l 'Ó"Kô	Mà�A‹vˆˆvñr;   c                 ó  — | j                  dg«      }t        D ]j  }t        | |«      }t        j                  ||¬«      \  }}t        || j                  |j                  |j                  ¬«      «       |j                  |k(  rŒjJ ‚ y )Nru   rš   r’   )re   r   r”   r+   rf   r	   r¢   r$   r£   s         r9   Útest_label_output_dtyper§   e  st   € à�7‰7�A�3‹<€DÜò !ˆÜ˜˜A“ˆÜ—M‘M $¨uÔ5‰	ˆ�Ü! &Ø"$§'¡'¨&¯,©,¸f¿l¹l 'Ó"Kô	Mà�|‰|˜qÓ Ð Ð ñ!r;   c                 ó  — t        | «      rt        j                  d«       | j                  dg«      }t        D ]I  }t        | |«      }| j                  dg|¬«      }t        t        t        ft        j                  ||¬«       ŒK y )NzJAX does not raiseru   é
   r’   rš   )r   ÚpytestÚxfailre   r   r”   rm   Úassert_raisesÚ
ValueErrorÚ	TypeErrorr+   rf   )r3   rh   r¤   r$   r›   s        r9   Útest_label_output_wrong_sizer¯   p  sm   € Üˆb„zÜ�‰Ð)Ô*à�7‰7�A�3‹<€DÜò :ˆÜ˜˜A“ˆØ—‘˜2˜$ e�Ó,ˆä”z¤9Ð-Ü—m‘m T°&ö	:ñ	:r;   c           
      óÞ  — t        j                  t        j                  j	                  t        j                  j                  t        «      dd«      «      }t        j                  t        j                  j	                  t        j                  j                  t        «      dd«      «      }t        j                  t        j                  j	                  t        j                  j                  t        «      dd«      «      }|j                  d«      }|j                  d«      }|j                  d«      }| j                  |«      }| j                  |«      }| j                  |«      }d}t        |j                  d   «      D ]k  }||d d …d d …f   }t        |j                  d   «      D ]B  }||d d …d d …f   }t        t        j                  ||«      d   ||d d …d d …f   d¬	«       |d
z  }ŒD Œm y )Nrh   zlabel_inputs.txtzlabel_strels.txtzlabel_results.txt)éÿÿÿÿé   r²   )r±   rZ   rZ   r   F©Úcheck_dtyper   )r(   ÚloadtxtÚosÚpathÚjoinÚdirnameÚ__file__r*   r0   Úranger¢   r   r+   rf   )	r3   rh   ÚstrelsÚresultsÚrr[   ÚdÚjÚss	            r9   Útest_label_structuring_elementsrÂ   }  s~  € Ü�:‰:”b—g‘g—l‘l¤2§7¡7§?¡?Üó$ØÐ-ó/ó 0€Dä�Z‰ZœŸ™Ÿ™Ü
�‰�‰œÓ! 6Ð+=ó?ó @€Fä�j‰jœŸ™Ÿ™Ü
�‰�‰œÓ! 6Ð+>ó@ó A€Gà�<‰<˜
Ó#€DØ�^‰^˜JÓ'€FØ�o‰o˜jÓ)€Gà�:‰:�dÓ€DØ�Z‰Z˜Ó€FØ�j‰j˜Ó!€GØ	€AÜ�4—:‘:˜a‘=Ó!ò ˆØ�’A’q�‰MˆÜ�v—|‘| A‘Ó'ò 	ˆAØ�qš!šQ�w‘ˆAÜœGŸM™M¨!¨QÓ/°Ñ2°G¸AºqÂ!¸GÑ4DÐRWÕXØ�‰F‰Añ	ñr;   z2`cupyx.scipy.ndimage` does not have `find_objects`©r   c                 ó>  ‡ — dˆ fd„	}t        j                  t         j                  «      t        j                  d«      k7  r]d}t         j                  j	                  t        j
                  |«      «      j                  |«      }‰ j                  |«      } ||«       y y )Nc                 óä   •— | |kD  }t        |j                  «      }t        j                  ||«      }‰	j	                  |«      }t        j
                  ||«      \  }}t        j                  |«      }y )N)r^   r¢   r+   r‹   r0   rf   Úfind_objects)
ÚimgÚthreshÚsizeÚmaskÚrankr�   ÚlaÚcoÚ_r3   s
            €r9   ÚSEztest_ticket_742.<locals>.SE—  s`   ø€ Ø�V‰|ˆÜ�4—:‘:‹ˆÜ×2Ñ2°4¸Ó>ˆØ—‘˜FÓ#ˆÜ—‘˜tØ%ó'‰ˆˆBä× Ñ  Ó$‰r;   r[   )rZ   éØ  rÐ   )gffffffæ?r    )r(   r$   ÚintpÚrandomÚrandÚprodr*   r0   )r3   rÏ   r¢   Úas   `   r9   Útest_ticket_742rÖ   “  sj   ø€ õ%ô 
‡x�x”—‘ÓœBŸH™H S›MÒ)ØˆÜ�I‰I�N‰Nœ2Ÿ7™7 5›>Ó*×2Ñ2°5Ó9ˆØ�J‰J�q‹Mˆá
ˆ1�ð *r;   c                 óô   — t        j                  d«      }d|dd…dd…f<   d|dd…dd…f<   d|d<   d|d<   d|d<   | j                  |«      }t        j                  || j                  d	«      «      d   dk(  sJ ‚y)
z/Github issue #3025 - improper merging of labels)é<   i@  r   Né  i  )é$   rÙ   )é#   i  )rÛ   i  )rZ   rZ   )r(   rm   r0   r+   rf   re   )r3   r¿   s     r9   Útest_gh_issue_3025rÜ   ¨  s~   € ä
�‰�Ó€AØ€A‚aˆˆ#ˆ€g�JØ€A‚aˆ‰€g�JØ€A€g�JØ€A€g�JØ€A€g�JØ
�
‰
�1‹€AÜ�=‰=˜˜BŸG™G F›OÓ,¨QÑ/°1Ò4Ð4Ñ4r;   z-cupyx.scipy.ndimage does not have find_objectc                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTestFindObjectsc                 ó  — t         j                  j                  dd«      }|j                  |«      }t	        j
                  |dkD  «      \  }}|j                  |j                  |j                  fv sJ ‚t	        j                  |«       y )Nr©   rC   )
r(   rÒ   rÓ   r0   r+   rf   r$   Úint32r/   rÆ   )r2   r3   Ú
test_arrayrf   Úno_featuress        r9   Útest_label_default_dtypez(TestFindObjects.test_label_default_dtype¶  si   € Ü—Y‘Y—^‘^ B¨Ó+ˆ
Ø—Z‘Z 
Ó+ˆ
Ü$Ÿ]™]¨:¸Ñ+;Ó<Ñˆˆ{Ø�{‰{˜rŸx™x¨¯©Ð2Ñ2Ð2Ð2ä×Ñ˜UÕ#r;   c                 óx   — |j                  g |j                  ¬«      }t        j                  |«      }|dgk(  sJ ‚y )Nr’   rR   )re   r/   r+   rÆ   ©r2   r3   rh   ri   s       r9   Útest_find_objects01z#TestFindObjects.test_find_objects01¿  s6   € Ø�w‰w�r §¡ˆwÓ*ˆÜ×"Ñ" 4Ó(ˆØ�r�dŠ{Ð‰{r;   c                 óv   — |j                  g |j                  ¬«      }t        j                  |«      }|g k(  sJ ‚y )Nr’   ©rm   r/   r+   rÆ   rå   s       r9   Útest_find_objects02z#TestFindObjects.test_find_objects02Å  s4   € Ø�x‰x˜ "§(¡(ˆxÓ+ˆÜ×"Ñ" 4Ó(ˆØ�bŠyÐ‰yr;   c                 ó’   — |j                  dg|j                  ¬«      }t        j                  |«      }|t	        ddd «      fgk(  sJ ‚y )Nr   r’   r   ©re   r/   r+   rÆ   Úslicerå   s       r9   Útest_find_objects03z#TestFindObjects.test_find_objects03Ë  óG   € Ø�w‰w˜�s "§(¡(ˆwÓ+ˆÜ×"Ñ" 4Ó(ˆØœ˜a  DÓ)Ð+Ð,Ò,Ð,Ñ,r;   c                 óx   — |j                  dg|j                  ¬«      }t        j                  |«      }|g k(  sJ ‚y )Nr   r’   rè   rå   s       r9   Útest_find_objects04z#TestFindObjects.test_find_objects04Ñ  s6   € Ø�x‰x˜˜ 2§8¡8ˆxÓ,ˆÜ×"Ñ" 4Ó(ˆØ�bŠyÐ‰yr;   c                 ó’   — |j                  dg|j                  ¬«      }t        j                  |«      }|t	        ddd «      fgk(  sJ ‚y )Nru   r’   r   rë   rå   s       r9   Útest_find_objects05z#TestFindObjects.test_find_objects05×  rî   r;   c                 ó°   — |j                  g d¢«      }t        j                  |«      }|t        ddd «      ft        ddd «      ft        ddd «      fgk(  sJ ‚y )Nrx   r   r   r   r    ru   r   ©r0   r+   rÆ   rì   rå   s       r9   Útest_find_objects06z#TestFindObjects.test_find_objects06Ý  sd   € Ø�z‰zÒ,Ó-ˆÜ×"Ñ" 4Ó(ˆØœ˜a  DÓ)Ð+Ü˜a  DÓ)Ð+Ü˜a  DÓ)Ð+ð-ò -ð 	-ñ -r;   c           	      ó‚   — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |«      }|g k(  sJ ‚y )Nr|   )r0   r+   rÆ   rå   s       r9   Útest_find_objects07z#TestFindObjects.test_find_objects07å  sE   € Ø�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ó 0ˆô ×"Ñ" 4Ó(ˆØ�bŠyÐ‰yr;   c           
      óJ  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |«      }|t        ddd «      t        ddd «      ft        ddd «      t        d	d
d «      ft        dd
d «      t        dd	d «      ft        d
dd «      t        dd
d «      fgk(  sJ ‚y )Nr   r„   r…   r†   r‡   r   r   rZ   r   ru   r   rô   rå   s       r9   Útest_find_objects08z#TestFindObjects.test_find_objects08ð  s»   € Ø�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ó 0ˆô ×"Ñ" 4Ó(ˆØœ˜a  DÓ)¬5°°A°tÓ+<Ð=Ü! ! Q¨Ó-¬u°Q¸¸4Ó/@ÐAÜ! ! Q¨Ó-¬u°Q¸¸4Ó/@ÐAÜ! ! Q¨Ó-¬u°Q¸¸4Ó/@ÐAðCò Cð 	Cñ Cr;   c           
      ó  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |«      }|t        ddd «      t        ddd «      ft        ddd «      t        d	d
d «      fd t        d
dd «      t        dd
d «      fgk(  sJ ‚y )Nr   r„   r…   r|   r‡   r   r   rZ   r   ru   r   rô   rå   s       r9   Útest_find_objects09z#TestFindObjects.test_find_objects09þ  s¤   € Ø�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ó 0ˆô ×"Ñ" 4Ó(ˆØœ˜a  DÓ)¬5°°A°tÓ+<Ð=Ü! ! Q¨Ó-¬u°Q¸¸4Ó/@ÐAØÜ! ! Q¨Ó-¬u°Q¸¸4Ó/@ÐAðCò Cð 	Cñ Cr;   N)rN   rO   rP   rã   ræ   ré   rí   rð   rò   rõ   r÷   rù   rû   rR   r;   r9   rÞ   rÞ   ´  s6   „ ò$òòò-òò-ò-òòCóCr;   rÞ   c           	      óJ  — | j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |d¬«      }g d¢}t        |j	                  «       «      |k(  sJ ‚t        | «      rd	d
ini }i }|D ]  } | j                  ||k(  fi |¤Ž||<   Œ t        j                  |d¬«      }|j	                  «       |j	                  «       k(  sJ ‚|j	                  «       D ]G  }t        ||   «      t        ||   «      k(  sJ ‚t        ||   ||   «      D ]  \  }}	t        ||	«       Œ ŒI y)z Test dictionary keys and entriesr   r„   r…   r|   r‡   r   )Úignore_value)r   r   r    Úas_tupleTN)
r0   r+   Úvalue_indicesÚlistÚkeysr   Únonzeror^   Úzipr   )
r3   rh   ÚviÚ	true_keysÚnnz_kwdÚtrueviÚkÚkeyÚvÚtrue_vs
             r9   Útest_value_indices01r    s)  € à�:‰:Ò)Ú)Ú)Ú)Ú)Ú)ð+ó ,€Dô 
×	Ñ	˜t°!Ô	4€BÚ€IÜ�—‘“	‹?˜iÒ'Ð'Ð'ä$,¨R¤Lˆz˜4Ñ °b€Gà€FØò 5ˆØ�B—J‘J˜t q™yÑ4¨GÑ4ˆˆqŠ	ð5ô 
×	Ñ	˜t°!Ô	4€BØ�7‰7‹9˜Ÿ™›Ò%Ð%Ð%Ø�w‰w‹yò 'ˆÜ�2�c‘7‹|œs 6¨#¡;Ó/Ò/Ð/Ð/Ü˜R ™W f¨S¡kÓ2ò 	'‰IˆAˆvÜ˜A˜vÕ&ñ	'ñ'r;   c                 ó¸   — | j                  d| j                  ¬«      }d}t        t        |¬«      5  t	        j
                  |«       ddd«       y# 1 sw Y   yxY w)zTest input checking)ru   r    r’   z(Parameter 'arr' must be an integer array)ÚmatchN)rm   Úfloat32r¬   r­   r+   rÿ   )r3   rh   Úmsgs      r9   Útest_value_indices02r  &  sJ   € à�8‰8�F "§*¡*ˆ8Ó-€DØ
4€CÜ	”z¨Ô	-ñ $Ü×Ñ˜dÔ#÷$÷ $ñ $ús   ±AÁAc                 ó\  — dD �]!  }| j                  ddgz  ddgz  z   ddgz  z   | j                  ¬«      }| j                  ||«      }t        | «      rddini }t	        |«      j
                  } ||«      }t        j                  |«      }t        |j                  «       «      t        |«      k(  sJ ‚|D �cg c]  }t        |«      ‘Œ c}D ]W  } | j                  ||k(  fi |¤Ž}	t        ||   «      t        |	«      k(  sJ ‚t        ||   |	«      D ]  \  }
}t        |
|«       Œ ŒY �Œ$ y	c c}w )
z2Test different input array shapes, from 1-D to 4-D))rÚ   )é   r   )rZ   rZ   r    )rZ   rZ   r   r   é   r   r   rZ   r’   rþ   TN)r0   rà   r*   r   r   Úunique_valuesr+   rÿ   r   r  Úintr  r^   r  r   )r3   r¢   rÕ   r  r  ÚtrueKeysr  r4   r  ÚtrueNdxÚvikÚtrue_viks               r9   Útest_value_indices03r  .  s(  € à:ó /ˆØ�J‰J˜˜A˜3™˜r 1 #™v™ b¨!¨¡fÑ,°R·X±XˆJÓ>ˆØ�J‰J�q˜%Ó ˆä(0°¬�:˜tÑ$¸"ˆä'¨Ó*×8Ñ8ˆÙ  Ó#ˆÜ×"Ñ" 1Ó%ˆÜ�B—G‘G“I‹¤$ x£.Ò0Ð0Ð0Ø"*Ö+˜Q”#�a•&Ò+ò 	/ˆAØ �b—j‘j  a¡Ñ3¨7Ñ3ˆGÜ�r˜!‘u“:¤ W£Ò-Ð-Ð-Ü!$ R¨¡U¨GÓ!4ò /‘��XÜ  XÕ.ñ/ò	/ñ/ùò ,s   Â6D)c                 ó�   — t         D ]=  }t        | |«      }| j                  g |¬«      }t        j                  |«      }|dk(  rŒ=J ‚ y )Nr’   r   )r   r”   r0   r+   Úsum©r3   r–   r$   Úinputr›   s        r9   Ú
test_sum01r   A  sI   € Üò ˆÜ˜˜DÓ!ˆØ—
‘
˜2 U�
Ó+ˆÜ—‘˜UÓ#ˆØ˜‹{Ðˆ{ñ	r;   c                 ó”   — t         D ]?  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }|dk(  rŒ?J ‚ y )Nr   r    r’   )r   r”   rm   r+   r  r  s        r9   Ú
test_sum02r"  I  sM   € Üò ˆÜ˜˜DÓ!ˆØ—‘˜!˜Q˜ u�Ó-ˆÜ—‘˜UÓ#ˆØ˜‹{Ðˆ{ñ	r;   c                 ó¼   — t         D ]S  }t        | |«      }| j                  g |¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒU y )Nr’   r%   F©Úcheck_0d)r   r”   re   r+   r  r
   r0   r  s        r9   Ú
test_sum03r&  Q  sS   € Üò EˆÜ˜˜DÓ!ˆØ—‘˜ %�Ó(ˆÜ—‘˜UÓ#ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 óÀ   — t         D ]U  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒW y )Nr   r   r’   ç      @Fr$  ©r   r”   r0   r+   r  r
   r  s        r9   Ú
test_sum04r*  Y  sW   € Üò EˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ—‘˜UÓ#ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 óÈ   — t         D ]Y  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       Œ[ y )	Nr   r   rZ   r    r’   g      $@Fr$  r)  r  s        r9   Ú
test_sum05r,  a  sa   € Üò FˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜UÓ#ˆÜ˜F B§J¡J¨tÓ$4¸uÖEñ	Fr;   c                 óì   — t        j                  g t        ¬«      }| j                  |«      }t        D ]?  }t	        | |«      }| j                  g |¬«      }t        j                  ||¬«      }|dk(  rŒ?J ‚ y )Nr’   ©r"   r   ©r(   r0   Úboolr   r”   r+   r  ©r3   r"   r–   r$   r  r›   s         r9   Ú
test_sum06r2  i  si   € Ü�Z‰Z˜¤$Ô'€FØ�Z‰Z˜Ó€FÜò ˆÜ˜˜DÓ!ˆØ—
‘
˜2 U�
Ó+ˆÜ—‘˜U¨6Ô2ˆØ˜‹{Ðˆ{ñ	r;   c                 óô   — t        j                  ddgt        ¬«      }| j                  |«      }t        D ]A  }t        | |«      }| j                  ddg|¬«      }t        j                  ||¬«      }|dk(  rŒAJ ‚ y )Nr   r    r’   r.  )	r(   re   r0  r0   r   r”   rm   r+   r  r1  s         r9   Ú
test_sum07r4  s  sq   € Ü�W‰W�a˜�V¤4Ô(€FØ�Z‰Z˜Ó€FÜò ˆÜ˜˜DÓ!ˆØ—‘˜!˜Q˜ u�Ó-ˆÜ—‘˜U¨6Ô2ˆØ˜‹{Ðˆ{ñ	r;   c                 óô   — t        j                  ddgt        ¬«      }| j                  |«      }t        D ]A  }t	        | |«      }| j                  ddg|¬«      }t        j                  ||¬«      }|dk(  rŒAJ ‚ y )Nr   r   r’   r   r.  r/  r1  s         r9   Ú
test_sum08r6  }  sq   € Ü�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FÜò ˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ—‘˜U¨6Ô2ˆØ˜‹{Ðˆ{ñ	r;   c                 ó(  — t        j                  ddgt        ¬«      }| j                  |«      }t        D ][  }t	        | |«      }| j                  ddgddgg|¬«      }t        j                  ||¬«      }t        || j                  d«      d	¬
«       Œ] y )Nr   r   r’   r   rZ   r    r.  ç      @Fr$  )r(   r0   r0  r   r”   r+   r  r
   r1  s         r9   Ú
test_sum09r9  ‡  s„   € Ü�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FÜò EˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜U¨6Ô2ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 ó,  — t        j                  ddgt        ¬«      }t        j                  ddgddggt        ¬«      }| j                  |«      }| j                  |«      }t        j                  ||¬«      }t        || j                  d«      d	¬
«       y ©Nr   r   r’   r   rZ   r    r.  ç       @Fr$  )r(   r0   r0  r+   r  r
   ©r3   r"   r  r›   s       r9   Ú
test_sum10r>  ‘  ss   € Ü�Z‰Z˜˜A˜¤dÔ+€FÜ�J‰J˜˜A˜  A Ð'¬tÔ4€Eà�Z‰Z˜Ó€FØ�J‰J�uÓ€EÜ�[‰[˜ vÔ.€FÜ˜ §
¡
¨3£¸%Ö@r;   c                 ó  — | j                  ddg| j                  ¬«      }t        D ]\  }t        | |«      }| j                  ddgddgg|¬«      }t	        j
                  ||d¬«      }t        || j                  d«      d¬	«       Œ^ y )
Nr   r   r’   rZ   r    r!   ç      @Fr$  )r0   Úint8r   r”   r+   r  r
   r1  s         r9   Ú
test_sum11rB  ›  s�   € Ø�Z‰Z˜˜A˜ b§g¡gˆZÓ.€FÜò EˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜U¨6Ø#$ô&ˆä˜F B§J¡J¨s£O¸eÖDñEr;   c           	      ó6  — | j                  ddgddgg| j                  ¬«      }t        D ]m  }t        | |«      }| j                  ddgddgg|¬«      }t	        j
                  ||| j                  g d¢«      ¬«      }t        || j                  g d¢«      «       Œo y ©	Nr   r   r    r’   rZ   ©r    é   r   r!   )r8  rK   g      @)r0   rA  r   r”   r+   r  r	   r1  s         r9   Ú
test_sum12rG  ¥  s�   € Ø�Z‰Z˜!˜Q˜ ! Q Ð(°·±ˆZÓ8€FÜò GˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜U¨6¸¿¹ÂIÓ9NÔOˆÜ! &¨"¯*©*²_Ó*EÕFñ	Gr;   c           	      ó´  — | j                  ddgddgg| j                  ¬«      }t        D ]¬  }t        | |«      }| j                  ddgddgg|¬«      }t	        j
                  ||| j                  g d¢«      ¬«      }t	        j                  ||| j                  g d¢«      ¬«      }| j                  ||k(  «      sJ ‚t        || j                  g d¢«      «       Œ® y rD  )	r0   rA  r   r”   r+   r  Ú
sum_labelsÚallr	   )r3   r"   r–   r$   r  Ú
output_sumÚoutput_labelss          r9   Útest_sum_labelsrM  ®  sÈ   € Ø�Z‰Z˜!˜Q˜ ! Q Ð(°·±ˆZÓ8€FÜò NˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—[‘[ ¨v¸R¿Z¹ZÊ	Ó=RÔSˆ
Ü×*Ñ*Ø˜&¨¯
©
²9Ó(=ô?ˆð �v‰v�j MÑ1Ô2Ð2Ð2Ü! -°·±ºOÓ1LÕMñNr;   c                 ó(  — t        j                  ddgt        ¬«      }| j                  |«      }t        D ][  }t	        | |«      }| j                  ddgddgg|¬«      }t        j                  ||¬«      }t        || j                  d«      d	¬
«       Œ] y r;  )r(   r0   r0  r   r”   r+   Úmeanr
   r1  s         r9   Útest_mean01rP  »  s„   € Ü�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FÜò EˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜e¨FÔ3ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 ó,  — t        j                  ddgt        ¬«      }t        j                  ddgddggt        ¬«      }| j                  |«      }| j                  |«      }t        j                  ||¬«      }t        || j                  d«      d	¬
«       y ©Nr   r   r’   r   rZ   r    r.  r%   Fr$  )r(   r0   r0  r+   rO  r
   r=  s       r9   Útest_mean02rS  Å  ss   € Ü�Z‰Z˜˜A˜¤dÔ+€FÜ�J‰J˜˜A˜  A Ð'¬tÔ4€Eà�Z‰Z˜Ó€FØ�J‰J�uÓ€EÜ�\‰\˜%¨Ô/€FÜ˜ §
¡
¨3£¸%Ö@r;   c                 óô   — | j                  ddg«      }t        D ]\  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||d¬«      }t        || j                  d«      d¬	«       Œ^ y )
Nr   r   rZ   r    r’   r!   r(  Fr$  )r0   r   r”   r+   rO  r
   r1  s         r9   Útest_mean03rU  Ï  sy   € Ø�Z‰Z˜˜A˜Ó€FÜò EˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜e¨FØ$%ô'ˆä˜F B§J¡J¨s£O¸eÖDñEr;   c           
      ó¨  — | j                  ddgddgg| j                  ¬«      }t        j                  d¬«      5  t        D ]z  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||| j                  g d¢«      ¬	«      }|d
   dk(  sJ ‚|d   dk(  sJ ‚| j                  |d   «      rŒzJ ‚ 	 d d d «       y # 1 sw Y   y xY w)Nr   r   r    r’   Úignore©rJ  rZ   rE  r!   r   r8  ç      @)	r0   rA  r(   Úerrstater   r”   r+   rO  Úisnanr1  s         r9   Útest_mean04r\  Ù  sÚ   € Ø�Z‰Z˜!˜Q˜ ! Q Ð(°·±ˆZÓ8€FÜ	�‰˜Ô	"ñ 
'Üò 		'ˆDÜ˜B Ó%ˆEØ—J‘J  A ¨¨A¨Ð/°u�JÓ=ˆEÜ—\‘\ %°Ø(*¯
©
²9Ó(=ô?ˆFð ˜!‘9 Ò#Ð#Ð#Ø˜!‘9 Ò#Ð#Ð#Ø—8‘8˜F 1™IÕ&Ð&Ð&ñ		'÷
'÷ 
'ñ 
'ús   ºB CÂ;CÃCc                 ó(  — t        j                  ddgt        ¬«      }| j                  |«      }t        D ][  }t	        | |«      }| j                  ddgddgg|¬«      }t        j                  ||¬«      }t        || j                  d«      d	¬
«       Œ] y rR  )r(   r0   r0  r   r”   r+   Úminimumr
   r1  s         r9   Útest_minimum01r_  è  ó„   € Ü�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FÜò EˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vÔ6ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 ó,  — t        j                  ddgt        ¬«      }t        j                  ddgddggt        ¬«      }| j                  |«      }| j                  |«      }t        j                  ||¬«      }t        || j                  d«      d¬	«       y ©
Nr   r   r’   r   r    r.  r%   Fr$  )r(   r0   r0  r+   r^  r
   r=  s       r9   Útest_minimum02rc  ò  ss   € Ü�Z‰Z˜˜A˜¤dÔ+€FÜ�J‰J˜˜A˜  A Ð'¬tÔ4€Eà�Z‰Z˜Ó€FØ�J‰J�uÓ€EÜ�_‰_˜U¨6Ô2€FÜ˜ §
¡
¨3£¸%Ö@r;   c                 óô   — | j                  ddg«      }t        D ]\  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||d¬«      }t        || j                  d«      d¬	«       Œ^ y )
Nr   r   rZ   r    r’   r!   r<  Fr$  )r0   r   r”   r+   r^  r
   r1  s         r9   Útest_minimum03re  ü  sy   € Ø�Z‰Z˜˜A˜Ó€FÜò EˆÜ˜˜DÓ!ˆà—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vØ'(ô*ˆä˜F B§J¡J¨s£O¸eÖDñEr;   c           	      ó  — | j                  ddgddgg«      }t        D ]m  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||| j                  g d¢«      ¬«      }t        || j                  g d¢«      «       Œo y )	Nr   r   rZ   r    r’   ©r   rZ   rF  r!   )r<  r8  rK   )r0   r   r”   r+   r^  r	   r1  s         r9   Útest_minimum04rh    óŠ   € Ø�Z‰Z˜!˜Q˜ ! Q Ð(Ó)€FÜò GˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vØ')§z¡z²)Ó'<ô>ˆä! &¨"¯*©*²_Ó*EÕFñGr;   c                 ó(  — t        j                  ddgt        ¬«      }| j                  |«      }t        D ][  }t	        | |«      }| j                  ddgddgg|¬«      }t        j                  ||¬«      }t        || j                  d«      d	¬
«       Œ] y )Nr   r   r’   r   rZ   r    r.  r(  Fr$  )r(   r0   r0  r   r”   r+   Úmaximumr
   r1  s         r9   Útest_maximum01rl    r`  r;   c                 ó,  — t        j                  ddgt        ¬«      }t        j                  ddgddggt        ¬«      }| j                  |«      }| j                  |«      }t        j                  ||¬«      }t        || j                  d«      d¬	«       y rb  )r(   r0   r0  r+   rk  r
   r=  s       r9   Útest_maximum02rn    ss   € Ü�Z‰Z˜˜A˜¤dÔ+€FÜ�J‰J˜˜A˜  A Ð'¬tÔ4€EØ�Z‰Z˜Ó€FØ�J‰J�uÓ€EÜ�_‰_˜U¨6Ô2€FÜ˜ §
¡
¨3£¸%Ö@r;   c                 óô   — | j                  ddg«      }t        D ]\  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||d¬«      }t        || j                  d«      d¬	«       Œ^ y )
Nr   r   rZ   r    r’   r!   r8  Fr$  )r0   r   r”   r+   rk  r
   r1  s         r9   Útest_maximum03rp  $  sy   € Ø�Z‰Z˜˜A˜Ó€FÜò EˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vØ'(ô*ˆä˜F B§J¡J¨s£O¸eÖDñEr;   c           	      ó  — | j                  ddgddgg«      }t        D ]m  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||| j                  g d¢«      ¬«      }t        || j                  g d¢«      «       Œo y )	Nr   r   rZ   r    r’   rg  r!   )r(  r8  rK   )r0   r   r”   r+   rk  r	   r1  s         r9   Útest_maximum04rr  .  ri  r;   c                 ó^   — | j                  g d¢«      }t        j                  |«      dk(  sJ ‚y )N)éýÿÿÿéþÿÿÿr±   r±   )r0   r+   rk  )r3   r4   s     r9   Útest_maximum05rv  8  s'   € à
�
‰
’<Ó €AÜ�?‰?˜1Ó Ò#Ð#Ñ#r;   c                 ó  — | j                  g d¢g d¢g d¢g d¢g«      }| j                  g d¢g d¢g d¢g d¢g«      }t        j                  ||| j                  g d¢«      ¬	«      }t        || j                  g d
¢«      «       y )N©r   r   r   r   ©ru   rZ   r   r    ©r   r   r   r²   ©r>   rZ   r   r   ©r   r   r   r   ©r   r   r   r   ©rZ   rZ   r   r   )r   r   rZ   r!   )rY  r8  r@  )r0   r+   Úmedianr	   ©r3   rÕ   r"   r›   s       r9   Útest_median01r�  >  sp   € Ø
�
‰
’LÚ Ú Ú ð"ó 	#€Að �Z‰ZšÚ%Ú%Ú%ð'ó (€Fô �^‰^˜A f°B·J±JºyÓ4IÔJ€FÜ˜f b§j¡j²Ó&AÕBr;   c                 ó¢   — | j                  g d¢g d¢g d¢g d¢g«      }t        j                  |«      }t        || j                  d«      d¬«       y )Nrx  ry  rz  r{  r%   Fr$  ©r0   r+   r  r
   ©r3   rÕ   r›   s      r9   Útest_median02r…  K  sD   € Ø
�
‰
’LÚ Ú Ú ð"ó 	#€Aô �^‰^˜AÓ€FÜ˜ §
¡
¨3£¸%Ö@r;   c                 óà   — | j                  g d¢g d¢g d¢g d¢g«      }| j                  g d¢g d¢g d¢g d¢g«      }t        j                  ||¬«      }t        || j                  d	«      d
¬«       y )Nrx  ry  rz  r{  r|  r}  r~  r.  r(  Fr$  rƒ  r€  s       r9   Útest_median03r‡  T  sf   € Ø
�
‰
’LÚ Ú Ú ð"ó 	#€Að �Z‰ZšÚ%Ú%Ú%ð'ó (€Fô �^‰^˜A fÔ-€FÜ˜ §
¡
¨3£¸%Ö@r;   c                 ó  — t        j                  ddgt        ¬«      }| j                  |«      }t        j                  || j                  d«      | j                  dg«      ¬«      }t        || j                  dg«      «       y )Nr   r’   ©r   r!   r%   )r(   r0   r0  r+   r  re   r	   r„  s      r9   Útest_median_gh12836_boolrŠ  a  s\   € ä
�
‰
�A�q�6¤Ô&€AØ
�
‰
�1‹€AÜ�^‰^˜A b§g¡g¨d£m¸2¿:¹:ÀqÀc»?ÔK€FÜ˜f b§j¡j°#°Ó&7Õ8r;   c                 óè   — | j                  ddg| j                  ¬«      }t        j                  || j	                  d«      | j                  dg«      ¬«      }t        || j                  dg«      «       y )NéA   éF   r’   r‰  r   r!   g     àP@)r0   rA  r+   r  re   r	   r„  s      r9   Útest_median_no_int_overflowrŽ  i  sU   € à
�
‰
�B˜�8 2§7¡7ˆ
Ó+€AÜ�^‰^˜A b§g¡g¨d£m¸2¿:¹:ÀqÀc»?ÔK€FÜ˜f b§j¡j°$°Ó&8Õ9r;   c                 ój  — t        j                  d¬«      5  t        D ]r  }t        | |«      }| j	                  g |¬«      }t        «       5 }|j                  t        d«       t        j                  |«      }d d d «       | j                  «      rŒrJ ‚ 	 d d d «       y # 1 sw Y   Œ(xY w# 1 sw Y   y xY w©NrW  rX  r’   zMean of empty slice)r(   rZ  r   r”   r0   r   ÚfilterÚRuntimeWarningr+   Úvariancer[  ©r3   r–   r$   r  Úsupr›   s         r9   Útest_variance01r–  p  s¥   € Ü	�‰˜Ô	"ñ $Üò 	$ˆDÜ˜B Ó%ˆEØ—J‘J˜r¨�JÓ/ˆEÜ"Ó$ð 1¨Ø—
‘
œ>Ð+@ÔAÜ ×)Ñ)¨%Ó0�÷1ð —8‘8˜FÕ#Ð#Ð#ñ	$÷$ð $÷1ð 1ú÷	$ð $úó)   —3B)Á
,BÁ6B)ÂB)ÂB&Â"B)Â)B2c                 ó¾   — t         D ]T  }t        | |«      }| j                  dg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒV y ©Nr   r’   rK   Fr$  ©r   r”   r0   r+   r“  r
   r  s        r9   Útest_variance02r›  {  sW   € Üò EˆÜ˜˜DÓ!ˆØ—
‘
˜A˜3 e�
Ó,ˆÜ×!Ñ! %Ó(ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 óÀ   — t         D ]U  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒW y ©Nr   rZ   r’   r%   Fr$  rš  r  s        r9   Útest_variance03rž  ƒ  sY   € Üò EˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ×!Ñ! %Ó(ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 óÄ   — t        j                  ddgt        ¬«      }| j                  |«      }t        j                  |«      }t        || j                  d«      d¬«       y )Nr   r   r’   g      Ð?Fr$  )r(   r0   r0  r+   r“  r
   ©r3   r  r›   s      r9   Útest_variance04r¡  ‹  sI   € Ü�J‰J˜˜1�v¤TÔ*€EØ�J‰J�uÓ€EÜ×Ñ˜eÓ$€FÜ˜ §
¡
¨4Ó 0¸5ÖAr;   c                 óê   — | j                  g d¢«      }t        D ]W  }t        | |«      }| j                  g d¢|¬«      }t        j                  ||d«      }t        || j                  d«      d¬«       ŒY y ©N)r   r   rZ   )r   rZ   rF  r’   r   r%   Fr$  )r0   r   r”   r+   r“  r
   r1  s         r9   Útest_variance05r¤  ’  sg   € Ø�Z‰Zš	Ó"€FÜò EˆÜ˜˜DÓ!ˆà—
‘
š9¨E�
Ó2ˆÜ×!Ñ! %¨°Ó3ˆÜ˜F B§J¡J¨s£O¸eÖDñEr;   c           
      ód  — | j                  g d¢«      }t        j                  d¬«      5  t        D ]h  }t	        | |«      }| j                  g d¢|¬«      }t        j                  ||| j                  g d¢«      «      }t        || j                  g d¢«      «       Œj 	 d d d «       y # 1 sw Y   y xY w©N)r   r   rZ   rZ   r    rW  rX  )r   rZ   rF  r©   rF  r’   )r   rZ   r    )r%   r%   rK   )r0   r(   rZ  r   r”   r+   r“  r	   r1  s         r9   Útest_variance06r§  œ  s•   € Ø�Z‰ZšÓ(€FÜ	�‰˜Ô	"ñ KÜò 	KˆDÜ˜B Ó%ˆEØ—J‘JÒ/°u�JÓ=ˆEÜ×%Ñ% e¨V°R·Z±ZÂ	Ó5JÓKˆFÜ% f¨b¯j©jºÓ.IÕJñ		K÷K÷ Kñ Kúó   ªA2B&Â&B/c                 ój  — t        j                  d¬«      5  t        D ]r  }t        | |«      }| j	                  g |¬«      }t        «       5 }|j                  t        d«       t        j                  |«      }d d d «       | j                  «      rŒrJ ‚ 	 d d d «       y # 1 sw Y   Œ(xY w# 1 sw Y   y xY wr�  )r(   rZ  r   r”   r0   r   r‘  r’  r+   Ústandard_deviationr[  r”  s         r9   Útest_standard_deviation01r«  ¦  s¥   € Ü	�‰˜Ô	"ñ $Üò 	$ˆDÜ˜B Ó%ˆEØ—J‘J˜r¨�JÓ/ˆEÜ"Ó$ð ;¨Ø—
‘
œ>Ð+@ÔAÜ ×3Ñ3°EÓ:�÷;ð —8‘8˜FÕ#Ð#Ð#ñ	$÷$ð $÷;ð ;ú÷	$ð $úr—  c                 ó¾   — t         D ]T  }t        | |«      }| j                  dg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒV y r™  ©r   r”   r0   r+   rª  r
   r  s        r9   Útest_standard_deviation02r®  ±  sW   € Üò EˆÜ˜˜DÓ!ˆØ—
‘
˜A˜3 e�
Ó,ˆÜ×+Ñ+¨EÓ2ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 óÀ   — t         D ]U  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒW y r�  r­  r  s        r9   Útest_standard_deviation03r°  ¹  sY   € Üò EˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ×+Ñ+¨EÓ2ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c                 óÄ   — t        j                  ddgt        ¬«      }| j                  |«      }t        j                  |«      }t        || j                  d«      d¬«       y )Nr   r   r’   rC   Fr$  )r(   r0   r0  r+   rª  r
   r   s      r9   Útest_standard_deviation04r²  Á  sH   € Ü�J‰J˜˜1�v¤TÔ*€EØ�J‰J�uÓ€EÜ×'Ñ'¨Ó.€FÜ˜ §
¡
¨3£¸%Ö@r;   c                 óê   — | j                  g d¢«      }t        D ]W  }t        | |«      }| j                  g d¢|¬«      }t        j                  ||d«      }t        || j                  d«      d¬«       ŒY y r£  )r0   r   r”   r+   rª  r
   r1  s         r9   Útest_standard_deviation05r´  È  sg   € Ø�Z‰Zš	Ó"€FÜò EˆÜ˜˜DÓ!ˆØ—
‘
š9¨E�
Ó2ˆÜ×+Ñ+¨E°6¸1Ó=ˆÜ˜F B§J¡J¨s£O¸eÖDñ	Er;   c           
      ód  — | j                  g d¢«      }t        j                  d¬«      5  t        D ]h  }t	        | |«      }| j                  g d¢|¬«      }t        j                  ||| j                  g d¢«      «      }t        || j                  g d¢«      «       Œj 	 d d d «       y # 1 sw Y   y xY wr¦  )r0   r(   rZ  r   r”   r+   rª  r	   r1  s         r9   Útest_standard_deviation06r¶  Ñ  sš   € Ø�Z‰ZšÓ(€FÜ	�‰˜Ô	"ñ KÜò 	KˆDÜ˜B Ó%ˆEØ—J‘JÒ/°u�JÓ=ˆEÜ×/Ñ/Ø�v˜rŸz™zª)Ó4óˆFô & f¨b¯j©jºÓ.IÕJñ	K÷K÷ Kñ Kúr¨  c           	      ó¦  — | j                  dg«      }t        j                  d¬«      5  t        D ]Š  }t	        | «      r|dk(  rt        j                  d«       t        | |«      }| j                  dg|¬«      }t        j                  ||| j                  dg«      «      }t        || j                  dg«      «       ŒŒ 	 d d d «       y # 1 sw Y   y xY w)	Nr   rW  rX  Úuint8z8value cannot be converted to type uint8 without overflowgl�§ `y¿r’   r   )r0   r(   rZ  r   r   rª   r«   r”   r+   rª  r	   r1  s         r9   Útest_standard_deviation07r¹  Ý  s±   € Ø�Z‰Z˜˜‹_€FÜ	�‰˜Ô	"ñ ?Üò 	?ˆDÜ˜Œ| ¨¢Ü—‘ð 0ô 1ä˜B Ó%ˆEØ—J‘J ˜}°E�JÓ:ˆEÜ×/Ñ/°°v¸r¿z¹zÈ1È#»ÓOˆFÜ% f¨b¯j©j¸!¸«oÕ>ñ	?÷?÷ ?ñ ?ús   ©BCÃCc                 óü   — t        j                  ddgt        ¬«      }| j                  |«      }t        D ]E  }t	        | |«      }| j                  ddgddgg|¬«      }t        j                  ||¬«      }|dk(  rŒEJ ‚ y )	Nr   r   r’   r   rZ   r    r.  ©r   r   )r(   r0   r0  r   r”   r+   Úminimum_positionr1  s         r9   Útest_minimum_position01r½  ê  s~   € Ü�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FÜò  ˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×)Ñ)¨%¸Ô?ˆØ˜ÓÐÐñ	 r;   c                 ó¢   — t         D ]F  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  |«      }|dk(  rŒFJ ‚ y ©N©ru   r    r   ru   ©rZ   r²   r   r   ©r   ru   r   r   r’   ©r   r   )r   r”   r0   r+   r¼  r  s        r9   Útest_minimum_position02rÄ  ô  ó`   € Üò  ˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%Ó0ˆØ˜ÓÐÐñ r;   c                 ó¦   — t        j                  g d¢g d¢g d¢gt        ¬«      }| j                  |«      }t        j                  |«      }|dk(  sJ ‚y r¿  ©r(   r0   r0  r+   r¼  r   s      r9   Útest_minimum_position03rÈ  þ  óN   € Ü�J‰JšÚ$Ú$ð&ä-1ô3€Eð �J‰J�uÓ€EÜ×%Ñ% eÓ,€FØ�VÒÐÑr;   c                 ó¦   — t        j                  g d¢g d¢g d¢gt        ¬«      }| j                  |«      }t        j                  |«      }|dk(  sJ ‚y )NrÀ  )rZ   r²   r   r   rÂ  r’   r»  rÇ  r   s      r9   Útest_minimum_position04rË    rÉ  r;   c                 óÊ   — | j                  g d¢«      }t        D ]G  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||«      }|dk(  rŒGJ ‚ y )N©r   r   r   r    rÀ  rÁ  )r   ru   r   rZ   r’   )r   r   ©r0   r   r”   r+   r¼  r1  s         r9   Útest_minimum_position05rÏ    óp   € Ø�Z‰ZšÓ%€FÜò  ˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°Ó8ˆØ˜ÓÐÐñ r;   c                 óÌ   — | j                  g d¢«      }t        D ]H  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||d«      }|dk(  rŒHJ ‚ y )N©r   r   rZ   r    rÀ  rÁ  rÂ  r’   r   ©r   r   rÎ  r1  s         r9   Útest_minimum_position06rÔ    ór   € Ø�Z‰ZšÓ%€FÜò  ˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°¸Ó;ˆØ˜ÓÐÐñ r;   c           	      ó  — | j                  g d¢«      }t        D ]f  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||| j                  ddg«      «      }|d   d	k(  sJ ‚|d
   dk(  rŒfJ ‚ y )NrÒ  rÀ  rÁ  rÂ  r’   r   rZ   r   rÓ  r   rÃ  rÎ  r1  s         r9   Útest_minimum_position07r×  &  ó˜   € Ø�Z‰ZšÓ%€FÜò #ˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°Ø*,¯*©*°a¸°VÓ*<ó>ˆà�a‰y˜FÒ"Ð"Ð"Ø�a‰y˜FÓ"Ð"Ð"ñ#r;   c                 óü   — t        j                  ddgt        ¬«      }| j                  |«      }t        D ]E  }t	        | |«      }| j                  ddgddgg|¬«      }t        j                  ||¬«      }|dk(  rŒEJ ‚ y )	Nr   r   r’   r   rZ   r    r.  ©r   r   )r(   r0   r0  r   r”   r+   Úmaximum_positionr1  s         r9   Útest_maximum_position01rÜ  3  s�   € Ü�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FÜò  ˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×)Ñ)¨%Ø17ô9ˆà˜ÓÐÐñ r;   c                 ó¢   — t         D ]F  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  |«      }|dk(  rŒFJ ‚ y )NrÀ  ©rZ   r²   rF  r   rÂ  r’   rÃ  )r   r”   r0   r+   rÛ  r  s        r9   Útest_maximum_position02rß  >  rÅ  r;   c                 ó¦   — t        j                  g d¢g d¢g d¢gt        ¬«      }| j                  |«      }t        j                  |«      }|dk(  sJ ‚y )NrÀ  rÞ  rÂ  r’   r»  )r(   r0   r0  r+   rÛ  r   s      r9   Útest_maximum_position03rá  H  rÉ  r;   c                 óÊ   — | j                  g d¢«      }t        D ]G  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||«      }|dk(  rŒGJ ‚ y )NrÍ  rÀ  rÞ  rÂ  r’   ©r   r   ©r0   r   r”   r+   rÛ  r1  s         r9   Útest_maximum_position04rå  Q  rÐ  r;   c                 óÌ   — | j                  g d¢«      }t        D ]H  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||d«      }|dk(  rŒHJ ‚ y )NrÍ  rÀ  rÞ  rÂ  r’   r   r»  rä  r1  s         r9   Útest_maximum_position05rç  \  rÕ  r;   c           	      ó  — | j                  g d¢«      }t        D ]f  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||| j                  ddg«      «      }|d   d	k(  sJ ‚|d   d
k(  rŒfJ ‚ y )NrÍ  rÀ  rÞ  rÂ  r’   r   r   r   r»  rã  rä  r1  s         r9   Útest_maximum_position06ré  g  rØ  r;   c           	      óH  — t        | «      rt        j                  d«       | j                  g d¢«      }t        D ]f  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||| j                  ddg«      «      }|d	   d
k(  sJ ‚|d   dk(  rŒfJ ‚ y )Nzoutput[1] is wrong on pytorch)r%   rY  rK   ç      @rÀ  rÞ  rÂ  r’   r%   rë  r   r»  r   )r   rZ   )r   rª   r«   r0   r   r”   r+   rÛ  r1  s         r9   Útest_maximum_position07rì  t  s®   € ä�„|Ü�‰Ð4Ô5à�Z‰ZÒ,Ó-€FÜò #ˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°Ø*,¯*©*°c¸3°ZÓ*@óBˆà�a‰y˜FÒ"Ð"Ð"Ø�a‰y˜FÓ"Ð"Ð"ñ#r;   c                 ó¼  — t        j                  ddgt        ¬«      }| j                  |«      }t        D ]¥  }t	        | |«      }| j                  ddgddgg|¬«      }t        j                  ||¬«      }t        j                  ||¬«      }t        j                  ||¬«      }t        j                  ||¬«      }t        j                  ||¬«      }	|||||	fk(  rŒ¥J ‚ y )Nr   r   r’   r   rZ   r    r.  )r(   r0   r0  r   r”   r+   Úextremar^  rk  r¼  rÛ  ©
r3   r"   r–   r$   r  Úoutput1Úoutput2Úoutput3Úoutput4Úoutput5s
             r9   Útest_extrema01rõ  …  sÏ   € Ü�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FÜò 
?ˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—/‘/ %°Ô7ˆÜ—/‘/ %°Ô7ˆÜ—/‘/ %°Ô7ˆÜ×*Ñ*¨5Ø28ô:ˆä×*Ñ*¨5Ø28ô:ˆà˜7 G¨W°gÐ>Ó>Ð>Ð>ñ
?r;   c                 ó�  — | j                  ddg«      }t        D ]ª  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||d¬«      }t        j
                  ||d¬«      }t        j                  ||d¬«      }t        j                  ||d¬«      }t        j                  ||d¬«      }	|||||	fk(  rŒªJ ‚ y )Nr   r   rZ   r    r’   r!   )	r0   r   r”   r+   rî  r^  rk  r¼  rÛ  rï  s
             r9   Útest_extrema02r÷  •  sÔ   € Ø�Z‰Z˜˜A˜Ó€FÜò ?ˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—/‘/ %°Ø()ô+ˆä—/‘/ %°Ø()ô+ˆä—/‘/ %°Ø()ô+ˆä×*Ñ*¨5Ø28ÀôCˆä×*Ñ*¨5Ø28ÀôCˆà˜7 G¨W°gÐ>Ó>Ð>Ð>ñ?r;   c           	      óÜ  — | j                  ddgddgg«      }t        D �]K  }t        | «      r|dv rt        j                  d«       t        | |«      }| j                  ddgddgg|¬«      }t        j                  ||| j                  g d¢«      ¬	«      }t        j                  ||| j                  g d¢«      ¬	«      }t        j                  ||| j                  g d¢«      ¬	«      }t        j                  ||| j                  g d¢«      ¬	«      }t        j                  ||| j                  g d¢«      ¬	«      }	t        |d
   |«       t        |d   |«       |d   |k(  sJ ‚|d   |	k(  r�ŒLJ ‚ y )Nr   r   rZ   ©Úuint16Úuint32Úuint64ú/https://github.com/pytorch/pytorch/issues/58734r    r’   rg  r!   r   ©r0   r   r   rª   r«   r”   r+   rî  r^  rk  r¼  rÛ  r	   rï  s
             r9   Útest_extrema03rÿ  §  s[  € Ø�Z‰Z˜!˜Q˜ ! Q Ð(Ó)€FÜó %ˆÜ�BŒ<˜DÐ$BÑBÜ�\‰\ÐKÔLä˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—/‘/ %Ø)/Ø(*¯
©
²9Ó(=ô?ˆô —/‘/ %Ø)/Ø(*¯
©
²9Ó(=ô?ˆô —/‘/ %°Ø(*¯
©
²9Ó(=ô?ˆä×*Ñ*¨5Ø28Ø13·±ºIÓ1FôHˆô ×*Ñ*¨5Ø28Ø13·±ºIÓ1FôHˆô 	" '¨!¡*¨gÔ6Ü! '¨!¡*¨gÔ6Ø�q‰z˜WÒ$Ð$Ð$Ø�q‰z˜WÔ$Ð$Ð$ñ/%r;   c           	      óÐ  — | j                  g d¢«      }t        D �]I  }t        | «      r|dv rt        j                  d«       t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  ||| j                  dd	g«      «      }t        j                  ||| j                  dd	g«      «      }t        j                  ||| j                  dd	g«      «      }t        j                  ||| j                  dd	g«      «      }t        j                  ||| j                  dd	g«      «      }	t        |d
   |«       t        |d   |«       |d	   |k(  sJ ‚|d   |	k(  r�ŒJJ ‚ y )NrÍ  rù  rý  rÀ  rÞ  rÂ  r’   r   r   r   rZ   rþ  rï  s
             r9   Útest_extrema04r  Ã  sQ  € Ø�Z‰ZšÓ%€FÜó %ˆÜ�BŒ<˜DÐ$BÑBÜ�\‰\ÐKÔLä˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô —/‘/ %¨°·±¸QÀ¸FÓ1CÓDˆÜ—/‘/ %¨°·±¸QÀ¸FÓ1CÓDˆÜ—/‘/ %¨°·±¸QÀ¸FÓ1CÓDˆÜ×*Ñ*¨5°&Ø+-¯:©:°q¸!°fÓ+=ó?ˆä×*Ñ*¨5°&Ø+-¯:©:°q¸!°fÓ+=ó?ˆä! '¨!¡*¨gÔ6Ü! '¨!¡*¨gÔ6Ø�q‰z˜WÒ$Ð$Ð$Ø�q‰z˜WÔ$Ð$Ð$ñ%%r;   c                 ó    — d}t         D ]C  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }||k(  rŒCJ ‚ y )N)rK   rK   r   r   r’   ©r   r”   r0   r+   Úcenter_of_mass©r3   r—   r–   r$   r  r›   s         r9   Útest_center_of_mass01r  Ú  ó_   € Ø€HÜò "ˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×'Ñ'¨Ó.ˆØ˜Ó!Ð!Ð!ñ	"r;   c                 ó    — d}t         D ]C  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }||k(  rŒCJ ‚ y )NrÚ  r   r   r’   r  r  s         r9   Útest_center_of_mass02r	  ã  ó_   € Ø€HÜò "ˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×'Ñ'¨Ó.ˆØ˜Ó!Ð!Ð!ñ	"r;   c                 ó    — d}t         D ]C  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }||k(  rŒCJ ‚ y )NrÓ  r   r   r’   r  r  s         r9   Útest_center_of_mass03r  ì  r
  r;   c                 ó    — d}t         D ]C  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }||k(  rŒCJ ‚ y )Nrã  r   r   r’   r  r  s         r9   Útest_center_of_mass04r  õ  r
  r;   c                 ó    — d}t         D ]C  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }||k(  rŒCJ ‚ y )N©rC   rC   r   r’   r  r  s         r9   Útest_center_of_mass05r  þ  r  r;   c                 ó¤   — d}t        j                  ddgddggt        ¬«      }| j                  |«      }t        j                  |«      }||k(  sJ ‚y )Nr  r   r   rZ   r’   )r(   r0   r0  r+   r  ©r3   r—   r  r›   s       r9   Útest_center_of_mass06r    sP   € Ø€HÜ�J‰J˜˜A˜  A Ð'¬tÔ4€EØ�J‰J�uÓ€EÜ×#Ñ# EÓ*€FØ�XÒÐÑr;   c                 óÌ   — | j                  ddg«      }d}t        j                   ddgddggt        ¬«      }| j                  |«      }t        j                  ||«      }||k(  sJ ‚y )Nr   r   ©rC   rK   r   rZ   r’   ©r0   r(   r0  r+   r  ©r3   r"   r—   r  r›   s        r9   Útest_center_of_mass07r    sd   € Ø�Z‰Z˜˜A˜Ó€FØ€HÜ�J‰J˜˜A˜  A Ð'¬tÔ4€EØ�J‰J�uÓ€EÜ×#Ñ# E¨6Ó2€FØ�XÒÐÑr;   c                 óÎ   — | j                  ddg«      }d}t        j                   ddgddggt        ¬«      }| j                  |«      }t        j                  ||d«      }||k(  sJ ‚y )Nr   r   ©rC   r%   ru   rZ   r’   r  r  s        r9   Útest_center_of_mass08r    sf   € Ø�Z‰Z˜˜A˜Ó€FØ€HÜ�J‰J˜˜A˜  A Ð'¬tÔ4€EØ�J‰J�uÓ€EÜ×#Ñ# E¨6°1Ó5€FØ�XÒÐÑr;   c                 ól  — | j                  d«      }| j                  ddg| j                  ¬«      }t        j                   ddgddggt        ¬«      }| j                  |«      }t	        j
                  ||| j                  ddg«      «      }t        | j                  |«      | j                  |«      «       y )NrÃ  r  r  r’   r   r   )r0   Úfloat64r(   r0  r+   r  r   r  s        r9   Útest_center_of_mass09r  !  s“   € Ø�Z‰Z˜Ó€FØ�z‰z˜: zÐ2¸"¿*¹*ˆzÓE€HÜ�J‰J˜˜A˜  A Ð'¬tÔ4€EØ�J‰J�uÓ€EÜ×#Ñ# E¨6°2·:±:¸qÀ!¸fÓ3EÓF€FÜ�B—J‘J˜vÓ&¨¯
©
°8Ó(<Õ=r;   c                 ó�   — | j                  d«      }| j                  d«      }t        j                  |ddd«      }t	        ||«       y )Nr©   r   )re   Úaranger+   Ú	histogramr	   r  s       r9   Útest_histogram01r#  *  s<   € Ø�w‰w�r‹{€HØ�I‰I�b‹M€EÜ×Ñ˜u a¨¨RÓ0€FÜ˜f hÕ/r;   c                 óÂ   — | j                  g d¢«      }| j                  g d¢«      }| j                  g d¢«      }t        j                  |ddd|d«      }t        ||«       y )N)r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   rZ   r    rZ   rZ   rZ   rZ   r   r    ru   r   ©r0   r+   r"  r	   r  s        r9   Útest_histogram02r&  1  sR   € Ø�Z‰ZÒ0Ó1€FØ�z‰zš/Ó*€HØ�J‰JÒ/Ó0€EÜ×Ñ˜u a¨¨A¨v°qÓ9€FÜ˜f hÕ/r;   zobject arraysc                 ó  — | j                  g d¢«      }| j                  g d¢«      }| j                  g d¢«      }| j                  g d¢«      }t        j                  |ddd|d«      }t        |d   |«       t        |d	   |«       y )
N)r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   rZ   r   )r   r   rZ   r    rZ   ru   rZ   rZ   r   r    ru   rÃ  r   r%  )r3   r"   Ú	expected1Ú	expected2r  r›   s         r9   Útest_histogram03r*  9  sr   € à�Z‰ZÒ0Ó1€FØ—
‘
š?Ó+€IØ—
‘
š?Ó+€IØ�J‰JÒ/Ó0€Eä×Ñ˜u a¨¨A¨v°vÓ>€Fä˜f Q™i¨Ô3Ü˜f Q™i¨Õ3r;   c           	      ó:  — | j                  g d¢g d¢g d¢g«      }| j                  g d¢g d¢g d¢g«      }t        j                  ||| j                  ddg«      ¬«      }t        || j                  d	d
g| j                  ¬«      «       t        j
                  ||| j                  ddg«      ¬«      }t        || j                  ddg| j                  ¬«      «       t        j                  ||| j                  ddg«      ¬«      }t        || j                  | j                  ddg| j                  ¬«      «      «       t        j                  ||| j                  ddg«      ¬«      }t        || j                  d	d
g| j                  ¬«      «       t        j                  ||| j                  ddg«      ¬«      }t        || j                  ddg«      d¬«       t        j                  ||| j                  ddg«      ¬«      }t        || j                  ddg«      d¬«       y )N)ru   r   r   r   r   )rF  r>   r   r   r   )r   r   r   rZ   ru   )r   r   r   r   r   )r   r   r   r   r   r   r   r!   rV   r8  r’   rY  r%   ru   rZ   Fr³   r>   )r0   r+   rO  r   r  r“  rª  r	   Úsqrtr  r^  rk  )	r3   rÕ   ÚlblrO  ÚvarÚstdÚmedÚminÚmaxs	            r9   Útest_stat_funcs_2dr3  F  s¡  € Ø
�
‰
’O¢_²oÐFÓG€AØ
�*‰*’o¢ºÐHÓ
I€Cä�<‰<˜ #¨R¯Z©Z¸¸A¸Ó-?Ô@€DÜ�D˜"Ÿ*™* c¨3 Z°r·z±z˜*ÓBÔCä
×
Ñ
˜1 S°·
±
¸A¸q¸6Ó0BÔ
C€CÜ�C˜Ÿ™ S¨# J°b·j±j˜ÓAÔBä
×
$Ñ
$ Q¨s¸"¿*¹*ÀaÈÀVÓ:LÔ
M€CÜ˜c 2§7¡7¨2¯:©:°s¸C°jÈÏ
É
¨:Ó+SÓ#TÔUä
�.‰.˜ 3¨b¯j©j¸!¸Q¸Ó.@Ô
A€CÜ�C˜Ÿ™ S¨# J°b·j±j˜ÓAÔBä
�/‰/˜! C¨r¯z©z¸1¸a¸&Ó/AÔ
B€CÜ�C˜Ÿ™ Q¨ FÓ+¸Õ?ä
�/‰/˜! C¨r¯z©z¸1¸a¸&Ó/AÔ
B€CÜ�C˜Ÿ™ Q¨ FÓ+¸Ö?r;   úno watershed_ift on CuPyc                   ó�   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e	dd¬	«      d
„ «       Z
 e	dd¬«      d„ «       Z e	dd¬«      d„ «       Zy)ÚTestWatershedIftc                 ó¦  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g«      }t        j                  |||¬«      }g d	¢g d
¢g d
¢g d
¢g d
¢g d
¢g d	¢g d	¢g}t        ||j                  |«      «       y )N©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   ©Ú	structure©r±   r±   r±   r±   r±   r±   r±   ©r±   r   r   r   r   r   r±   ©r0   r¸  rA  r+   Úwatershed_iftr	   ©r2   r3   rh   Úmarkersr?  ri   r—   s          r9   Útest_watershed_ift01z%TestWatershedIft.test_watershed_ift01`  sß   € Ø�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð :<¿¹ð ó Cˆð —*‘*Ò4Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =?¿G¹Gð ó Eˆð —*‘*šiÚ'Ú'ð)ó *ˆ	ô ×#Ñ# D¨'¸YÔGˆÚ0Ú+Ú+Ú+Ú+Ú+Ú0Ú0ð2ˆô 	" # r§z¡z°(Ó';Õ<r;   c                 ón  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }t        j                  ||«      }g d¢g d¢g d	¢g d	¢g d	¢g d¢g d¢g d¢g}t        ||j                  |«      «       y )
Nr8  r9  r:  r’   r;  r<  r@  )r±   r±   r   r   r   r±   r±   rA  rB  ©r2   r3   rh   rE  ri   r—   s         r9   Útest_watershed_ift02z%TestWatershedIft.test_watershed_ift02  sÀ   € Ø�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð :<¿¹ð ó Cˆð —*‘*Ò4Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =?¿G¹Gð ó Eˆô ×#Ñ# D¨'Ó2ˆÚ0Ú-Ú+Ú+Ú+Ú-Ú0Ú0ð2ˆô 	" # r§z¡z°(Ó';Õ<r;   c           
      ó\  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }t        j                  ||«      }g d¢g d¢g d	¢g d	¢g d	¢g d¢g d¢g}t        ||j                  |«      «       y )
Nr8  r9  ©r   r   r   r   r   r   r   r’   ©r   r   r   r   rZ   r   r   ©r   r   r   r   r   r   r±   r@  )r±   r±   r   r±   rZ   r±   r±   ©r±   r   r   rZ   rZ   rZ   r±   rB  rH  s         r9   Útest_watershed_ift03z%TestWatershedIft.test_watershed_ift03›  s¸   € Ø�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð :<¿¹ð ó Cˆð —*‘*Ò3Ú3Ú3Ú3Ú3Ú3Ú4ð6ð >@¿W¹Wð ó Fˆô ×#Ñ# D¨'Ó2ˆÚ0Ú.Ú+Ú+Ú+Ú.Ú0ð2ˆô 	" # r§z¡z°(Ó';Õ<r;   c           
      ó”  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g«      }t        j                  |||¬«      }g d	¢g d
¢g d
¢g d
¢g d
¢g d
¢g d	¢g}t        ||j                  |«      «       y )Nr8  r9  rK  r’   rL  rM  r=  r>  r@  rN  rB  rD  s          r9   Útest_watershed_ift04z%TestWatershedIft.test_watershed_ift04´  sÕ   € Ø�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð :<¿¹ð ó Cˆð —*‘*Ò3Ú3Ú3Ú3Ú3Ú3Ú4ð6ð $&§7¡7ð ó ,ˆð —*‘*šiÚ'Ú'ð)ó *ˆ	ô ×#Ñ# D¨'¸YÔGˆÚ0Ú+Ú+Ú+Ú+Ú+Ú0ð2ˆô 	" # r§z¡z°(Ó';Õ<r;   c           
      ó”  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g«      }t        j                  |||¬«      }g d	¢g d
¢g d
¢g d
¢g d
¢g d
¢g d	¢g}t        ||j                  |«      «       y )Nr8  r9  rK  r’   )r   r   rZ   r   r   r   r   rM  r=  r>  r@  )r±   rZ   rZ   r   r   r   r±   rB  rD  s          r9   Útest_watershed_ift05z%TestWatershedIft.test_watershed_ift05Ò  sÕ   € Ø�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð :<¿¹ð ó Cˆð —*‘*Ò3Ú3Ú3Ú3Ú3Ú3Ú4ð6ð $&§7¡7ð ó ,ˆð —J‘J¢	Ú )Ú )ð +ó ,ˆ	ô ×#Ñ# D¨'¸YÔGˆÚ0Ú+Ú+Ú+Ú+Ú+Ú0ð2ˆô 	" # r§z¡z°(Ó';Õ<r;   c           	      ó‚  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      }|j                  g d¢g d¢g d¢g«      }t        j                  |||¬«      }g d	¢g d	¢g d	¢g d	¢g d
¢g d
¢g}t        ||j                  |«      «       y )Nr:  r9  r8  r’   r;  r<  r=  r>  rA  r@  rB  rD  s          r9   Útest_watershed_ift06z%TestWatershedIft.test_watershed_ift06ï  sÍ   € Ø�z‰zÒ0Ú0Ú0Ú0Ú0Ú0ð2ð
 :<¿¹ð ó Cˆð —*‘*Ò4Ú3Ú3Ú3Ú3Ú3ð5ð
 =?¿G¹Gð ó Eˆð —*‘*šiÚ'Ú'ð)ó *ˆ	ô ×#Ñ# D¨'¸YÔGˆÚ+Ú+Ú+Ú+Ú0Ú0ð2ˆô 	" # r§z¡z°(Ó';Õ<r;   Tzinplace ops are numpy-specificr   c           	      ó|  — d}t        j                  |t         j                  ¬«      }|j                  «       }t        j                  g d¢g d¢g d¢g d¢g d¢g d¢gt         j                  ¬«      |d<   |j	                  |«      }|j	                  g d¢g d¢g d¢g d¢g d¢g d¢g|j
                  ¬«      }|j                  ||j                  ¬«      }|j                  }|j	                  g d	¢g d	¢g d	¢g«      }t        j                  ||||¬
«       g d¢g d¢g d¢g d¢g d¢g d¢g}t        ||j	                  |«      «       y )N)r²   r   r’   r:  r9  r8  .r;  r<  r=  )r?  r›   rA  r@  )r(   rm   r¸  Ú	transposer0   rA  Úint16ÚTr+   rC  r	   )r2   r3   r¢   rh   rE  ri   r?  r—   s           r9   Útest_watershed_ift07z%TestWatershedIft.test_watershed_ift07  s"  € àˆÜ�x‰x˜¤R§X¡XÔ.ˆØ�~‰~ÓˆÜ—J‘JÒ 5Ú 5Ú 5Ú 5Ú 5Ú 5ð 7ô
 ?A¿h¹hôHˆˆS‰	ð �z‰z˜$ÓˆØ—*‘*Ò4Ú3Ú3Ú3Ú3Ú3ð5ð
 =?¿G¹Gð ó Eˆð �h‰h�u B§H¡HˆhÓ-ˆØ�e‰eˆØ—*‘*šiÚ'Ú'ð)ó *ˆ	ô 	×Ñ˜d G°yØ%(õ	*â+Ú+Ú+Ú+Ú0Ú0ð2ˆô 	" # r§z¡z°(Ó';Õ<r;   r   r4  rÃ   c                 ó  — |j                  ddgddgg|j                  ¬«      }|j                  ddgddgg|j                  ¬«      }t        j                  ||«      }ddgddgg}t        ||j                  |«      «       y )Né   r   r’   r   )r0   rú  rA  r+   rC  r	   rH  s         r9   Útest_watershed_ift08z%TestWatershedIft.test_watershed_ift08)  s–   € ð �z‰z˜C ˜8Ø˜q˜6ð#Ø*,¯)©)ð ó 5ˆà—*‘*˜q !˜fØ  !˜fð&Ø-/¯W©Wð ó 6ˆä×#Ñ# D¨'Ó2ˆØ˜�FØ˜�Fðˆä! # r§z¡z°(Ó';Õ<r;   c                 óL  — |j                  |j                  |j                  «      j                  dgddgg|j                  ¬«      }|j                  ddgddgg|j                  ¬«      }t        j                  ||«      }ddgddgg}t        ||j                  |«      d¬«       y )Nr   r’   r   Fr³   )r0   Úiinforú  r2  rA  r+   rC  r   rH  s         r9   Útest_watershed_ift09z%TestWatershedIft.test_watershed_ift095  s¬   € ð �z‰z˜BŸH™H R§Y¡YÓ/×3Ñ3°QÐ7Ø˜q˜6ð#Ø*,¯)©)ð ó 5ˆà—*‘*˜q !˜fØ  !˜fð&Ø-/¯W©Wð ó 6ˆä×#Ñ# D¨'Ó2ˆØ˜�FØ˜�Fðˆä˜˜RŸZ™Z¨Ó1¸uÖEr;   N)rN   rO   rP   rF  rI  rO  rQ  rS  rU  r   rZ  r]  r`  rR   r;   r9   r6  r6  ]  sz   „ ò=ò>=ò8=ò2=ò<=ò:=ñ2 ˜dÐ+KÔLñ=ó Mð=ñ@ �fÐ%?Ô@ñ	=ó Að	=ñ �fÐ%?ÔAñ	Fó Bñ	Fr;   r6  )r   Údtc                 óô   — t         j                  j                  d«      }d}|j                  d|d¬«      j	                  | ¬«      }t        j                  |«      }t        |j                  «       «      |k(  sJ ‚y )Né{   rF  r   )r©   r  )ÚlowÚhighrÉ   r’   )	r(   rÒ   Údefault_rngÚintegersÚastyper+   rÿ   r^   r  )ra  r3   ÚrngÚmax_valÚimageÚval_idxs         r9   Útest_gh_19423rm  B  sh   € ô �)‰)×
Ñ
 Ó
$€CØ€GØ�L‰L˜Q W°8ˆLÓ<×CÑCÈ"ÐCÓM€EÜ×#Ñ# EÓ*€GÜˆw�|‰|‹~Ó 'Ò)Ð)Ñ)r;   )‰r¶   Úos.pathÚnumpyr(   Únumpy.testingr   Úscipy._lib._array_apir   r   r   r   r   r	   r
   rª   r   r¬   Úscipy.ndimager+   Ú r   Úscipy.conftestr   Úmarkr   ÚusefixturesÚ
pytestmarkÚnameÚ__version__r.   r   rT   rk   rn   Úthread_unsaferq   rs   rv   rz   r}   rˆ   rŽ   r�   r˜   rœ   rž   r    r¥   r§   r¯   rÂ   rÖ   rÜ   rÞ   r  r  r  r   r"  r&  r*  r,  r2  r4  r6  r9  r>  rB  rG  rM  rP  rS  rU  r\  r_  rc  re  rh  rl  rn  rp  rr  rv  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*  r3  r6  ÚparametrizeÚintcÚuintcrm  rR   r;   r9   ú<module>r~     sç  ðÛ 	Û ã Ý +÷÷ ñ ó Ý *å å å /Ø—;‘;×/Ñ/Ð Ø" F§K¡K×$;Ñ$;Ð<NÓ$OÙ¨¸&À+Ð9NÔPðR€
ð —W‘W ‘_Ò=¨¯©¸#Ñ)=Ð ñ ˜$Ð'IÔJ÷O=ð O=ó KðO=÷d#/ñ #/òLòð ‡�×Ññó ðòòòòò$ò"ò&òñ* ˜$Ð'IÔJñó Kðò*ò&ñ$ ˜$Ð'GÔHñó Iðñ ˜$Ð'GÔHñ!ó Ið!ò
:òñ, �&ØMôñóðò$	5ñ �&Ð!PÔQ÷TCð TCó RðTCòn'ò4$ò/ò&òòEòEòFòòòòEòAòEòGò
NòEòAòEò'òEòAòEòGòEòAòEòGò$ò
CòAò
Aò9ò:ò$òEòEòBòEòKò$òEòEòAòEò	Kò
?ò ò òòò ò ò
#ò ò òò ò ò
#ò#ò"?ò ?ò$%ò8%ò."ò"ò"ò"ò"òòòò>ò0ò0ñ ˜$ Ô7ñ	4ó 8ð	4ò@ñ. �&Ð!;Ô<÷aFð aFó =ðaFñH ˜$ÔØ‡�×Ò˜ §¢¨¯ªÐ2Ó3ñ*ó 4ó  ñ*r;   