Ë
    qwj˜ô  ã                   ór  — d dl Z 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 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*                  dk(  xr ej,                  dk  Z edd	¬
«       G d„ d«      «       Z edd	¬
«       G d„ d«      «       Z eej4                  «      d„ «       Z eej4                  «      d„ «       Z eej4                  «      d„ «       Z eej4                  «      d„ «       Z eej4                  «      d„ «       Z eej4                  «      d„ «       Z  eej4                  «      d„ «       Z! eej4                  «      d„ «       Z" eej4                  «      d„ «       Z# eej4                  «      d„ «       Z$ eej4                  «      d„ «       Z% edd¬
«       eej4                  «      d„ «       «       Z& eej4                  «      d„ «       Z' eej4                  «      d„ «       Z( eddgd¬ «       eej4                  «      d!„ «       «       Z) eddgd¬ «       eej4                  «      d"„ «       «       Z* edd#¬
«       eej4                  «      d$„ «       «       Z+ eej4                  «      d%„ «       Z, eej4                  ejZ                  «      d&„ «       Z. eej4                  «      d'„ «       Z/ eej4                  ejZ                  «       G d(„ d)«      «       Z0 eejb                  «      d*„ «       Z2 eejb                  «      d+„ «       Z3 eejb                  «      d,„ «       Z4 eejj                  «      d-„ «       Z6 eejj                  «      d.„ «       Z7 eejj                  «      d/„ «       Z8 eejj                  «      d0„ «       Z9 eejj                  «      d1„ «       Z: eejj                  «      d2„ «       Z; eejj                  «      d3„ «       Z< eejj                  «      d4„ «       Z= eejj                  «      d5„ «       Z> eejj                  «      d6„ «       Z? eejj                  «      d7„ «       Z@ eejj                  «      d8„ «       ZA eejj                  «      d9„ «       ZB eej†                  «      d:„ «       ZD eej†                  «      d;„ «       ZE eej†                  «      d<„ «       ZF eej†                  «      d=„ «       ZG eej�                  «      d>„ «       ZI eej�                  «      d?„ «       ZJ eej�                  «      d@„ «       ZK eej�                  «      dA„ «       ZL eejš                  «      dB„ «       ZN eejš                  «      dC„ «       ZO eejš                  «      dD„ «       ZP eejš                  «      dE„ «       ZQ eejš                  «      dF„ «       ZR eej¦                  «      dG„ «       ZT eej¦                  «      dH„ «       ZU eej¦                  «      dI„ «       ZV eej¦                  «      dJ„ «       ZW eej¦                  «      dK„ «       ZX eej²                  «      dL„ «       ZZ eej²                  «      dM„ «       Z[ eej²                  «      dN„ «       Z\ eej²                  «      dO„ «       Z] eej²                  «      dP„ «       Z^ eej²                  «      dQ„ «       Z_ eejÀ                  «      dR„ «       Za eejÀ                  «      dS„ «       Zb eejÀ                  «      dT„ «       Zc eejÀ                  «      dU„ «       Zd eejÀ                  «      dV„ «       Ze eejÀ                  «      dW„ «       Zf eejÀ                  «      dX„ «       Zg eejÐ                  «      dY„ «       Zi eejÐ                  «      dZ„ «       Zj eejÐ                  «      d[„ «       Zk eejÐ                  «      d\„ «       Zl eejÐ                  «      d]„ «       Zm eejÐ                  «      d^„ «       Zn eejÐ                  «      d_„ «       Zo eejà                  «      d`„ «       Zq eejà                  «      da„ «       Zr eejà                  «      db„ «       Zs eejà                  «      dc„ «       Zt eejà                  «      dd„ «       Zu eejà                  «      de„ «       Zv eejà                  «      df„ «       Zw eejð                  ej�                  ejš                  ejÐ                  ejà                  «      dg„ «       Zy eejð                  ej�                  ejš                  ejÐ                  ejà                  «      dh„ «       Zz eejð                  ej�                  ejš                  ejÐ                  ejà                  «      di„ «       Z{ eejð                  ej�                  ejš                  ejÐ                  ejà                  «      dj„ «       Z| eejú                  «      dk„ «       Z~ eejú                  «      dl„ «       Z eejú                  «      dm„ «       Z€ eejú                  «      dn„ «       Z� eejú                  «      do„ «       Z‚ eejú                  «      dp„ «       Zƒ eejú                  «      dq„ «       Z„ eejú                  «      dr„ «       Z… eejú                  «      ds„ «       Z† ee�j                  «      dt„ «       Zˆ ee�j                  «      du„ «       Z‰ eddv¬
«       ee�j                  «      dw„ «       «       ZŠ eej†                  ej²                  ejÀ                  ej¦                  ej�                  ejš                  «      dx„ «       Z‹ eddy¬z«       ee�j                  «       G d{„ d|«      «       «       Z� ed¬}«      ej&                  �j                  d~e�j                  e�j                   g«       eejb                  «      d„ «       «       «       Z‘y)€é    N)Úis_torchÚxp_assert_equalÚxp_assert_closeÚassert_array_almost_equalÚassert_almost_equalÚmake_xp_test_case)Úraisesé   )ÚtypesÚntÚ2Tz 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	            új/var/www/html/newmanjeet/manjet/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   é	   r7   r   r7   r   r   r   r   r   r   r    r*   s	            r2   Útest_bzTest_measurements_stats.test_b1   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ñ "r4   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    ©
r+   r,   r-   r   r   r.   r/   r0   Úcentersr1   s
             r2   Útest_a_centeredz'Test_measurements_stats.test_a_centeredA   óÛ   € ÚˆÚˆØ�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°
Ó%;Õ<ñ "r4   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   r6   r   r7   r   Tr:   r   r   r   r   r<   r    r=   s
             r2   Útest_b_centeredz'Test_measurements_stats.test_b_centeredP   r@   r4   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   )ç        rD   ç      "@rE   rD   rE   r   Tr:   r   r   r   r   r<   r    r=   s
             r2   Útest_nonint_labelsz*Test_measurements_stats.test_nonint_labels_   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°
Ó%;Õ<ñ "r4   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r3   r8   r?   rB   rF   © r4   r2   r   r      s    „ ñò
:ò:ò =ò=ó=r4   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
   r6   r7   )rD   rD   ç      @rO   rD   rO   r   T)r   r   Úfind_maxr   )r   r   Úfind_minr   )r   r   rQ   Úfind_min_positionsé   Úi)r   r   rP   Úfind_max_positions)r$   r%   Ú_selectÚlenr   r   Úkind)r+   r,   r-   Úcasesr   r   Úresults          r2   Ú
test_basicz#Test_measurements_select.test_basics   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 #r4   N)rG   rH   rI   rJ   r[   rK   r4   r2   rM   rM   o   s
   „ áOó /r4   rM   c                 ór   — | j                  d«      }t        j                  |«      \  }}|dk(  sJ ‚|dk(  sJ ‚y )NrK   r
   )Úonesr$   Úlabel©r,   ÚdataÚoutÚns       r2   Útest_label01rc   –   s7   € à�7‰7�2‹;€DÜ�]‰]˜4Ó �F€CˆØ�!Š8€Oˆ8Ø�Š6€M‰6r4   c                 ór   — | j                  d«      }t        j                  |«      \  }}|dk(  sJ ‚|dk(  sJ ‚y )NrK   r   )Úzerosr$   r^   r_   s       r2   Útest_label02rf   ž   s7   € à�8‰8�B‹<€DÜ�]‰]˜4Ó �F€CˆØ�!Š8€Oˆ8Ø�Š6€M‰6r4   c                 óž   — | j                  dg«      }t        j                  |«      \  }}t        || j	                  dg«      «       |dk(  sJ ‚y )Nr
   ©r]   r$   r^   r   r)   r_   s       r2   Útest_label03ri   ¦   sB   € à�7‰7�A�3‹<€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:¨q¨c£?Ô3Ø�Š6€M‰6r4   c                 óž   — | j                  dg«      }t        j                  |«      \  }}t        || j	                  dg«      «       |dk(  sJ ‚y )Nr
   r   )re   r$   r^   r   r)   r_   s       r2   Útest_label04rk   ®   sB   € à�8‰8�Q�C‹=€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:¨q¨c£?Ô3Ø�Š6€M‰6r4   c                 ó    — | j                  dg«      }t        j                  |«      \  }}t        || j	                  g d¢«      «       |dk(  sJ ‚y )Né   )r
   r
   r
   r
   r
   r
   rh   r_   s       r2   Útest_label05rn   ¶   sA   € à�7‰7�A�3‹<€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:ªoÓ#>Ô?Ø�Š6€M‰6r4   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   rS   rS   ©r)   r$   r^   r   r_   s       r2   Útest_label06rr   ¾   sB   € à�:‰:Ò(Ó)€DÜ�]‰]˜4Ó �F€CˆÜ˜c 2§:¡:Ò.@Ó#AÔBØ�Š6€M‰6r4   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   rq   r_   s       r2   Útest_label07ru   Æ   st   € à�:‰:Ò)Ú)Ú)Ú)Ú)Ú)ð+ó ,€Dô �]‰]˜4Ó �F€CˆÜ˜c 2§:¡:Ú%7Ú%7Ú%7Ú%7Ú%7Ú%7ð%9ó$:ô ;ð �Š6€M‰6r4   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   ©rS   rS   r   r   r   r   ©r   r   r   r   r   r   r   rq   r_   s       r2   Útest_label08r€   Ù   sw   € à�:‰:Ò)Ú)Ú)Ú)Ú)Ú)ð+ó ,€Dô �]‰]˜4Ó �F€CˆÜ˜c 2§:¡:Ò/AÚ/AÚ/AÚ/AÚ/AÚ/Að/Có $Dô Eð �Š6€M‰6r4   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 )Nrw   rx   ry   rz   r{   r   r|   r}   )r   r   r   r   r   r   )r   r   r   rS   rS   r   rS   ©r)   r$   Úgenerate_binary_structurer^   r   ©r,   r`   Ústructra   rb   s        r2   Ú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‰6r4   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 )Nrt   )r   r
   r
   r   r
   r   )r   r
   r
   r
   r
   r   r   r
   r‚   r„   s        r2   Útest_label10rˆ   ÿ   s�   € à�:‰:Ò)Ú)Ú)Ú)ð+ó ,€Dô ×.Ñ.¨q°!Ó4€FØ�Z‰Z˜Ó€FÜ�]‰]˜4 Ó(�F€CˆÜ˜c 2§:¡:Ò/AÚ/AÚ/AÚ/Að/Có $Dô Eð �Š6€M‰6r4   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 )Nrw   rx   ry   rz   r{   ©r   r|   r}   r~   r   r   ©r   Úgetattrr)   r$   r^   r   ©r,   Útyper   r`   ra   rb   Úexpecteds          r2   Útest_label11r�     s™   € çˆÜ˜˜DÓ!ˆØ�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ð
 7<ð ó =ˆô —‘˜tÓ$‰ˆˆQÚ&Ú&Ú&Ú&Ú&Ú&ð(ˆð —:‘:˜hÓ'ˆÜ! # xÔ0Ø�A‹vˆˆvñ# r4   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 )Nrw   rx   ry   rz   r{   rŠ   ©Úoutputr|   r}   r~   r   r   r‹   )r,   rŽ   r   r`   rb   r�   s         r2   Útest_label11_inplacer”   %  s™   € ÷ ˆÜ˜˜DÓ!ˆØ�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ð
 7<ð ó =ˆô �M‰M˜$ tÔ,ˆÚ&Ú&Ú&Ú&Ú&Ú&ð(ˆð —:‘:˜hÓ'ˆÜ! $¨Ô1Ø�A‹vˆˆvñ# r4   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          r2   Útest_label12r–   <  s“   € çˆÜ˜˜DÓ!ˆØ�z‰zÒ-Ú-Ú-Ú-Ú-ð	/ð 7<ð	 ó =ˆô
 —‘˜tÓ$‰ˆˆQÚ&Ú&Ú&Ú&Ú&ð	(ˆð
 —:‘:˜hÓ'ˆÜ! # xÔ0Ø�A‹vˆˆvñ r4   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          r2   Útest_label13r˜   P  s�   € çˆÜ˜˜DÓ!ˆØ�z‰zÒ<Ú<Ú<Ú<ð>ð !&ð	 ó 'ˆô
 —‘˜tÓ$‰ˆˆQÚ5Ú5Ú5Ú5ð7ˆð —:‘:˜hÓ'ˆÜ! # xÔ0Ø�A‹vˆˆvñ r4   Úcupyzoutput=dtype is numpy-specific)r   Ú
exceptionsr   c                 ó  — | j                  dg«      }t        D ]q  }t        | |«      }| j                  dg|¬«      }t	        j
                  ||¬«      }t        || j                  |j                  |j                  ¬«      «       |dk(  rŒqJ ‚ y )Nrm   rŠ   r’   r
   )	r]   r   rŒ   re   r$   r^   r   Úshaper   ©r,   r`   Útr   r“   rb   s         r2   Útest_label_output_typedrŸ   c  sz   € ð �7‰7�A�3‹<€DßˆÜ˜˜A“ˆØ—‘˜1˜# U�Ó+ˆÜ�M‰M˜$ vÔ.ˆÜ! &Ø"$§'¡'¨&¯,©,¸f¿l¹l 'Ó"Kô	Mà�A‹vˆˆvñ r4   c                 ó  — | j                  dg«      }t        D ]j  }t        | |«      }t        j                  ||¬«      \  }}t        || j                  |j                  |j                  ¬«      «       |j                  |k(  rŒjJ ‚ y )Nrm   r’   rŠ   )r]   r   rŒ   r$   r^   r   rœ   r   r�   s         r2   Útest_label_output_dtyper¡   q  sq   € ð �7‰7�A�3‹<€DßˆÜ˜˜A“ˆÜ—M‘M $¨uÔ5‰	ˆ�Ü! &Ø"$§'¡'¨&¯,©,¸f¿l¹l 'Ó"Kô	Mà�|‰|˜qÓ Ð Ð ñ r4   z!in-place output is numpy-specificc                 óÀ   — | j                  dg«      }t        D ]C  }t        | |«      }| j                  dg|¬«      }t	        t
        t        j                  ||¬«       ŒE y )Nrm   é
   rŠ   r’   )r]   r   rŒ   re   Úassert_raisesÚ
ValueErrorr$   r^   )r,   r`   rž   r   r“   s        r2   Útest_label_output_wrong_sizer¦   ~  sN   € ð �7‰7�A�3‹<€DßˆÜ˜˜A“ˆØ—‘˜2˜$ e�Ó,ˆÜ”j¤'§-¡-°¸fÖEñ r4   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 )Nr`   zlabel_inputs.txtzlabel_strels.txtzlabel_results.txt)éÿÿÿÿé   r©   )r¨   rS   rS   r   F©Úcheck_dtyper
   )r!   ÚloadtxtÚosÚpathÚjoinÚdirnameÚ__file__r#   r)   Úrangerœ   r   r$   r^   )	r,   r`   ÚstrelsÚresultsÚrrT   ÚdÚjÚss	            r2   Útest_label_structuring_elementsr¹   ˆ  st  € ä�:‰:”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ñ (ñ "r4   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)rW   rœ   r$   rƒ   r)   r^   Úfind_objects)
ÚimgÚthreshÚsizeÚmaskÚrankr…   ÚlaÚcoÚ_r,   s
            €r2   ÚSEztest_ticket_742.<locals>.SE¢  s`   ø€ Ø�V‰|ˆÜ�4—:‘:‹ˆÜ×2Ñ2°4¸Ó>ˆØ—‘˜FÓ#ˆÜ—‘˜tØ%ó'‰ˆˆBä× Ñ  Ó$‰r4   rT   )rS   éØ  rÆ   )gffffffæ?r   )r!   r   ÚintpÚrandomÚrandÚprodr#   r)   )r,   rÅ   rœ   Úas   `   r2   Ú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�ð *r4   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  )rS   rS   )r!   re   r)   r$   r^   r]   )r,   r¶   s     r2   Ú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Ñ4r4   c                   ó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£   r<   )
r!   rÈ   rÉ   r)   r$   r^   r   Úint32r(   r¼   )r+   r,   Ú
test_arrayr^   Úno_featuress        r2   Útest_label_default_dtypez(TestFindObjects.test_label_default_dtypeÂ  si   € Ü—Y‘Y—^‘^ B¨Ó+ˆ
Ø—Z‘Z 
Ó+ˆ
Ü$Ÿ]™]¨:¸Ñ+;Ó<Ñˆˆ{Ø�{‰{˜rŸx™x¨¯©Ð2Ñ2Ð2Ð2ä×Ñ˜UÕ#r4   c                 óx   — |j                  g |j                  ¬«      }t        j                  |«      }|dgk(  sJ ‚y )NrŠ   rK   )r]   r(   r$   r¼   ©r+   r,   r`   ra   s       r2   Útest_find_objects01z#TestFindObjects.test_find_objects01Ë  s6   € Ø�w‰w�r §¡ˆwÓ*ˆÜ×"Ñ" 4Ó(ˆØ�r�dŠ{Ð‰{r4   c                 óv   — |j                  g |j                  ¬«      }t        j                  |«      }|g k(  sJ ‚y )NrŠ   ©re   r(   r$   r¼   rÛ   s       r2   Útest_find_objects02z#TestFindObjects.test_find_objects02Ñ  s4   € Ø�x‰x˜ "§(¡(ˆxÓ+ˆÜ×"Ñ" 4Ó(ˆØ�bŠyÐ‰yr4   c                 ó’   — |j                  dg|j                  ¬«      }t        j                  |«      }|t	        ddd «      fgk(  sJ ‚y )Nr
   rŠ   r   ©r]   r(   r$   r¼   ÚslicerÛ   s       r2   Útest_find_objects03z#TestFindObjects.test_find_objects03×  óG   € Ø�w‰w˜�s "§(¡(ˆwÓ+ˆÜ×"Ñ" 4Ó(ˆØœ˜a  DÓ)Ð+Ð,Ò,Ð,Ñ,r4   c                 óx   — |j                  dg|j                  ¬«      }t        j                  |«      }|g k(  sJ ‚y )Nr
   rŠ   rÞ   rÛ   s       r2   Útest_find_objects04z#TestFindObjects.test_find_objects04Ý  s6   € Ø�x‰x˜˜ 2§8¡8ˆxÓ,ˆÜ×"Ñ" 4Ó(ˆØ�bŠyÐ‰yr4   c                 ó’   — |j                  dg|j                  ¬«      }t        j                  |«      }|t	        ddd «      fgk(  sJ ‚y )Nrm   rŠ   r   rá   rÛ   s       r2   Útest_find_objects05z#TestFindObjects.test_find_objects05ã  rä   r4   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 )Nrp   r   r
   r   r   rm   r   ©r)   r$   r¼   râ   rÛ   s       r2   Útest_find_objects06z#TestFindObjects.test_find_objects06é  sd   € Ø�z‰zÒ,Ó-ˆÜ×"Ñ" 4Ó(ˆØœ˜a  DÓ)Ð+Ü˜a  DÓ)Ð+Ü˜a  DÓ)Ð+ð-ò -ð 	-ñ -r4   c           	      ó‚   — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |«      }|g k(  sJ ‚y )Nrt   )r)   r$   r¼   rÛ   s       r2   Útest_find_objects07z#TestFindObjects.test_find_objects07ñ  sE   € Ø�z‰zÒ-Ú-Ú-Ú-Ú-Ú-ð/ó 0ˆô ×"Ñ" 4Ó(ˆØ�bŠyÐ‰yr4   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 )Nrw   r|   r}   r~   r   r   r
   rS   r   rm   r   rê   rÛ   s       r2   Ú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r4   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 )Nrw   r|   r}   rt   r   r   r
   rS   r   rm   r   rê   rÛ   s       r2   Ú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r4   N)rG   rH   rI   rÙ   rÜ   rß   rã   ræ   rè   rë   rí   rï   rñ   rK   r4   r2   rÔ   rÔ   À  s6   „ ò$òòò-òò-ò-òòCóCr4   rÔ   c           	      ó2  — | j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  |d¬«      }g d¢}t        |j	                  «       «      |k(  sJ ‚|D �ci c]  }|| j                  ||k(  «      “Œ }}t        j                  |d¬«      }|j	                  «       |j	                  «       k(  sJ ‚|j	                  «       D ]G  }t        ||   «      t        ||   «      k(  sJ ‚t        ||   ||   «      D ]  \  }}t        ||«       Œ ŒI y	c c}w )
z Test dictionary keys and entriesrw   r|   r}   rt   r   r   )Úignore_value)r
   r   r   N)	r)   r$   Úvalue_indicesÚlistÚkeysÚnonzerorW   Úzipr   )	r,   r`   ÚviÚ	true_keysÚkÚtrueviÚkeyÚvÚtrue_vs	            r2   Útest_value_indices01r     s  € ð �:‰:Ò)Ú)Ú)Ú)Ú)Ú)ð+ó ,€Dô 
×	Ñ	˜t°!Ô	4€BÚ€IÜ�—‘“	‹?˜iÒ'Ð'Ð'á09Ó:±	¨1ˆa�—‘˜D A™IÓ&Ñ&°	€FÐ:ä	×	Ñ	˜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Õ&ñ 3ñ ùò	 ;s   Á!D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)rm   r   rŠ   z(Parameter 'arr' must be an integer array)ÚmatchN)re   Úfloat32r¤   r¥   r$   rô   )r,   r`   Úmsgs      r2   Útest_value_indices02r  /  sC   € ð �8‰8�F "§*¡*ˆ8Ó-€DØ
4€CÜ	”z¨Ö	-Ü×Ñ˜dÔ#÷ 
.×	-Ñ	-ús   ±AÁAc                 ó`  — dD �]#  }t        j                  ddgz  ddgz  z   ddgz  z   t         j                  ¬«      }t        j                  ||«      }t        j                  |«      }| j                  |«      }t        j                  |«      }t        |j                  «       «      t        |«      k(  sJ ‚|D �cg c]  }t        |«      ‘Œ c}D ]U  }| j                  ||k(  «      }t        ||   «      t        |«      k(  sJ ‚t        ||   |«      D ]  \  }}	t        ||	«       Œ ŒW �Œ& yc c}w )z2Test different input array shapes, from 1-D to 4-D))rÐ   )é   r   )rS   rS   r   )rS   rS   r   r   é   r
   r   rS   rŠ   N)r!   r)   rÖ   r#   Úuniquer$   rô   rõ   rö   Úintr÷   rW   rø   r   )
r,   rœ   rË   ÚtrueKeysrù   r-   rû   ÚtrueNdxÚvikÚtrue_viks
             r2   Útest_value_indices03r  8  s  € ô ;ˆÜ�J‰J˜˜A˜3™˜r 1 #™v™ b¨!¨¡fÑ,´R·X±XÔ>ˆÜ�J‰J�q˜%Ó ˆä—9‘9˜Q“<ˆØ�J‰J�q‹MˆÜ×"Ñ" 1Ó%ˆÜ�B—G‘G“I‹¤$ x£.Ò0Ð0Ð0Ù"*Ó+¡(˜Q”#�a•& (Ô+ˆAØ—j‘j  a¡Ó(ˆGÜ�r˜!‘u“:¤ W£Ò-Ð-Ð-Ü!$ R¨¡U¨GÖ!4‘��XÜ  XÕ.ñ "5ò ,ñ ;ùò ,s   Â:D+c                 ó�   — t         D ]=  }t        | |«      }| j                  g |¬«      }t        j                  |«      }|dk(  rŒ=J ‚ y )NrŠ   r   )r   rŒ   r)   r$   Úsum©r,   rŽ   r   Úinputr“   s        r2   Ú
test_sum01r  J  sD   € çˆÜ˜˜DÓ!ˆØ—
‘
˜2 U�
Ó+ˆÜ—‘˜UÓ#ˆØ˜‹{Ðˆ{ñ	 r4   c                 ó”   — t         D ]?  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }|dk(  rŒ?J ‚ y )Nr   r   rŠ   )r   rŒ   re   r$   r  r  s        r2   Ú
test_sum02r  S  sH   € çˆÜ˜˜DÓ!ˆØ—‘˜!˜Q˜ u�Ó-ˆÜ—‘˜UÓ#ˆØ˜‹{Ðˆ{ñ	 r4   c                 ó¼   — t         D ]S  }t        | |«      }| j                  g |¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒU y )NrŠ   r   F©Úcheck_0d)r   rŒ   r]   r$   r  r   r)   r  s        r2   Ú
test_sum03r  \  sL   € çˆÜ˜˜DÓ!ˆØ—‘˜ %�Ó(ˆÜ—‘˜UÓ#ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   c                 óÀ   — t         D ]U  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒW y )Nr
   r   rŠ   ç      @Fr  ©r   rŒ   r)   r$   r  r   r  s        r2   Ú
test_sum04r  e  sP   € çˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ—‘˜UÓ#ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   c                 óÈ   — t         D ]Y  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       Œ[ y )	Nr
   r   rS   r   rŠ   g      $@Fr  r  r  s        r2   Ú
test_sum05r   n  sZ   € çˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜UÓ#ˆÜ˜F B§J¡J¨tÓ$4¸uÖEñ	 r4   c                 óì   — t        j                  g t        ¬«      }| j                  |«      }t        D ]?  }t	        | |«      }| j                  g |¬«      }t        j                  ||¬«      }|dk(  rŒ?J ‚ y )NrŠ   ©r   r   ©r!   r)   Úboolr   rŒ   r$   r  ©r,   r   rŽ   r   r  r“   s         r2   Ú
test_sum06r&  w  sd   € ä�Z‰Z˜¤$Ô'€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜2 U�
Ó+ˆÜ—‘˜U¨6Ô2ˆØ˜‹{Ðˆ{ñ	 r4   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]   r$  r)   r   rŒ   re   r$   r  r%  s         r2   Ú
test_sum07r(  ‚  sl   € ä�W‰W�a˜�V¤4Ô(€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—‘˜!˜Q˜ u�Ó-ˆÜ—‘˜U¨6Ô2ˆØ˜‹{Ðˆ{ñ	 r4   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#  r%  s         r2   Ú
test_sum08r*  �  sl   € ä�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ—‘˜U¨6Ô2ˆØ˜‹{Ðˆ{ñ	 r4   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   rS   r   r"  ç      @Fr  )r!   r)   r$  r   rŒ   r$   r  r   r%  s         r2   Ú
test_sum09r-  ˜  s}   € ä�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜U¨6Ô2ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   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   rS   r   r"  ç       @Fr  )r!   r)   r$  r$   r  r   ©r,   r   r  r“   s       r2   Ú
test_sum10r2  £  ss   € ä�Z‰Z˜˜A˜¤dÔ+€FÜ�J‰J˜˜A˜  A Ð'¬tÔ4€Eà�Z‰Z˜Ó€FØ�J‰J�uÓ€EÜ�[‰[˜ vÔ.€FÜ˜ §
¡
¨3£¸%Ö@r4   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Š   rS   r   r   ç      @Fr  )r)   Úint8r   rŒ   r$   r  r   r%  s         r2   Ú
test_sum11r6  ®  sz   € à�Z‰Z˜˜A˜ b§g¡gˆZÓ.€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜U¨6Ø#$ô&ˆä˜F B§J¡J¨s£O¸eÖDñ r4   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Š   rS   ©r   é   r   r   )r,  rD   g      @)r)   r5  r   rŒ   r$   r  r   r%  s         r2   Ú
test_sum12r;  ¹  sˆ   € à�Z‰Z˜!˜Q˜ ! Q Ð(°·±ˆZÓ8€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜U¨6¸¿¹ÂIÓ9NÔOˆÜ! &¨"¯*©*²_Ó*EÕFñ	 r4   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 r8  )	r)   r5  r   rŒ   r$   r  Ú
sum_labelsÚallr   )r,   r   rŽ   r   r  Ú
output_sumÚoutput_labelss          r2   Útest_sum_labelsrA  Ã  sÁ   € à�Z‰Z˜!˜Q˜ ! Q Ð(°·±ˆZÓ8€FßˆÜ˜˜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ñ r4   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!   r)   r$  r   rŒ   r$   Úmeanr   r%  s         r2   Útest_mean01rD  Ñ  s}   € ä�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜e¨FÔ3ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   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   rS   r   r"  r   Fr  )r!   r)   r$  r$   rC  r   r1  s       r2   Útest_mean02rG  Ü  ss   € ä�Z‰Z˜˜A˜¤dÔ+€FÜ�J‰J˜˜A˜  A Ð'¬tÔ4€Eà�Z‰Z˜Ó€FØ�J‰J�uÓ€EÜ�\‰\˜%¨Ô/€FÜ˜ §
¡
¨3£¸%Ö@r4   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   rS   r   rŠ   r   r  Fr  )r)   r   rŒ   r$   rC  r   r%  s         r2   Útest_mean03rI  ç  sr   € à�Z‰Z˜˜A˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘˜e¨FØ$%ô'ˆä˜F B§J¡J¨s£O¸eÖDñ r4   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©r>  rS   r9  r   r   r,  ç      @)	r)   r5  r!   Úerrstater   rŒ   r$   rC  Úisnanr%  s         r2   Útest_mean04rP  ò  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 rF  )r!   r)   r$  r   rŒ   r$   Úminimumr   r%  s         r2   Útest_minimum01rS    ó}   € ä�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vÔ6ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   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!   r)   r$  r$   rR  r   r1  s       r2   Útest_minimum02rW    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£¸%Ö@r4   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   rS   r   rŠ   r   r0  Fr  )r)   r   rŒ   r$   rR  r   r%  s         r2   Útest_minimum03rY    sr   € à�Z‰Z˜˜A˜Ó€FßˆÜ˜˜DÓ!ˆà—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vØ'(ô*ˆä˜F B§J¡J¨s£O¸eÖDñ r4   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   rS   r   rŠ   ©r   rS   r:  r   )r0  r,  rD   )r)   r   rŒ   r$   rR  r   r%  s         r2   Útest_minimum04r\  $  óƒ   € à�Z‰Z˜!˜Q˜ ! Q Ð(Ó)€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vØ')§z¡z²)Ó'<ô>ˆä! &¨"¯*©*²_Ó*EÕFñ r4   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   rS   r   r"  r  Fr  )r!   r)   r$  r   rŒ   r$   Úmaximumr   r%  s         r2   Útest_maximum01r`  /  rT  r4   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 rV  )r!   r)   r$  r$   r_  r   r1  s       r2   Útest_maximum02rb  :  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£¸%Ö@r4   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   rS   r   rŠ   r   r,  Fr  )r)   r   rŒ   r$   r_  r   r%  s         r2   Útest_maximum03rd  D  sr   € à�Z‰Z˜˜A˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—‘ ¨vØ'(ô*ˆä˜F B§J¡J¨s£O¸eÖDñ r4   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   rS   r   rŠ   r[  r   )r  r,  rD   )r)   r   rŒ   r$   r_  r   r%  s         r2   Útest_maximum04rf  O  r]  r4   c                 ó^   — | j                  g d¢«      }t        j                  |«      dk(  sJ ‚y )N)éýÿÿÿéþÿÿÿr¨   r¨   )r)   r$   r_  )r,   r-   s     r2   Útest_maximum05rj  Z  s)   € ð 	�
‰
’<Ó €AÜ�?‰?˜1Ó Ò#Ð#Ñ#r4   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
   ©rm   rS   r   r   ©r   r   r   r©   ©r7   rS   r   r   ©r
   r
   r   r   ©r   r   r   r   ©rS   rS   r   r   )r
   r   rS   r   )rM  r,  r4  )r)   r$   Úmedianr   ©r,   rË   r   r“   s       r2   Útest_median01ru  a  sp   € à
�
‰
’LÚ Ú Ú ð"ó 	#€Að �Z‰ZšÚ%Ú%Ú%ð'ó (€Fô �^‰^˜A f°B·J±JºyÓ4IÔJ€FÜ˜f b§j¡j²Ó&AÕBr4   c                 ó¢   — | j                  g d¢g d¢g d¢g d¢g«      }t        j                  |«      }t        || j                  d«      d¬«       y )Nrl  rm  rn  ro  r   Fr  ©r)   r$   rs  r   ©r,   rË   r“   s      r2   Útest_median02ry  o  sD   € à
�
‰
’LÚ Ú Ú ð"ó 	#€Aô �^‰^˜AÓ€FÜ˜ §
¡
¨3£¸%Ö@r4   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 )Nrl  rm  rn  ro  rp  rq  rr  r"  r  Fr  rw  rt  s       r2   Útest_median03r{  y  sf   € à
�
‰
’LÚ Ú Ú ð"ó 	#€Að �Z‰ZšÚ%Ú%Ú%ð'ó (€Fô �^‰^˜A fÔ-€FÜ˜ §
¡
¨3£¸%Ö@r4   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!   r)   r$  r$   rs  r]   r   rx  s      r2   Útest_median_gh12836_boolr~  ‡  s^   € ô 	�
‰
�A�q�6¤Ô&€AØ
�
‰
�1‹€AÜ�^‰^˜A b§g¡g¨d£m¸2¿:¹:ÀqÀc»?ÔK€FÜ˜f b§j¡j°#°Ó&7Õ8r4   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@)r)   r5  r$   rs  r]   r   rx  s      r2   Útest_median_no_int_overflowr‚  �  sW   € ð 	�
‰
�B˜�8 2§7¡7ˆ
Ó+€AÜ�^‰^˜A b§g¡g¨d£m¸2¿:¹:ÀqÀc»?ÔK€FÜ˜f b§j¡j°$°Ó&8Õ9r4   c                 óˆ  — t        j                  d¬«      5  t        D ]�  }t        | |«      }| j	                  g |¬«      }t        j                  «       5  t        j                  ddt        «       t        j                  |«      }d d d «       | j                  «      rŒ�J ‚ 	 d d d «       y # 1 sw Y   Œ(xY w# 1 sw Y   y xY w©NrK  rL  rŠ   zMean of empty slice)r!   rN  r   rŒ   r)   ÚwarningsÚcatch_warningsÚfilterwarningsÚRuntimeWarningr$   ÚvariancerO  r  s        r2   Útest_variance01rŠ  ˜  s˜   € ä	�‰˜Ö	"ßˆDÜ˜B Ó%ˆEØ—J‘J˜r¨�JÓ/ˆEÜ×(Ñ(Õ*Ü×'Ñ'¨Ð2GÌÔXÜ ×)Ñ)¨%Ó0�÷ +ð —8‘8˜FÕ#Ð#Ð#ñ ÷ 
#Ð	"÷ +Ð*ú÷	 
#Ð	"úó)   —=B8Á1B,ÂB8ÂB8Â,B5Â1B8Â8Cc                 ó¾   — t         D ]T  }t        | |«      }| j                  dg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒV y ©Nr
   rŠ   rD   Fr  ©r   rŒ   r)   r$   r‰  r   r  s        r2   Útest_variance02r�  ¤  sP   € çˆÜ˜˜DÓ!ˆØ—
‘
˜A˜3 e�
Ó,ˆÜ×!Ñ! %Ó(ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   c                 óÀ   — t         D ]U  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒW y ©Nr
   rS   rŠ   r   Fr  rŽ  r  s        r2   Útest_variance03r’  ­  sR   € çˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ×!Ñ! %Ó(ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   c                 óÄ   — t        j                  ddgt        ¬«      }| j                  |«      }t        j                  |«      }t        || j                  d«      d¬«       y )Nr
   r   rŠ   g      Ð?Fr  )r!   r)   r$  r$   r‰  r   ©r,   r  r“   s      r2   Útest_variance04r•  ¶  sI   € ä�J‰J˜˜1�v¤TÔ*€EØ�J‰J�uÓ€EÜ×Ñ˜eÓ$€FÜ˜ §
¡
¨4Ó 0¸5ÖAr4   c                 óê   — | j                  g d¢«      }t        D ]W  }t        | |«      }| j                  g d¢|¬«      }t        j                  ||d«      }t        || j                  d«      d¬«       ŒY y ©N)r   r   rS   )r
   rS   r:  rŠ   r   r   Fr  )r)   r   rŒ   r$   r‰  r   r%  s         r2   Útest_variance05r˜  ¾  s`   € à�Z‰Zš	Ó"€FßˆÜ˜˜DÓ!ˆà—
‘
š9¨E�
Ó2ˆÜ×!Ñ! %¨°Ó3ˆÜ˜F B§J¡J¨s£O¸eÖDñ r4   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   rS   rS   r   rK  rL  )r
   rS   r:  r£   r:  rŠ   )r   rS   r   )r   r   rD   )r)   r!   rN  r   rŒ   r$   r‰  r   r%  s         r2   Útest_variance06r›  É  s�   € à�Z‰ZšÓ(€FÜ	�‰˜Ö	"ßˆDÜ˜B Ó%ˆEØ—J‘JÒ/°u�JÓ=ˆEÜ×%Ñ% e¨V°R·Z±ZÂ	Ó5JÓKˆFÜ% f¨b¯j©jºÓ.IÕJñ	 ÷ 
#×	"Ñ	"úó   ªA2B&Â&B/c                 óˆ  — t        j                  d¬«      5  t        D ]�  }t        | |«      }| j	                  g |¬«      }t        j                  «       5  t        j                  ddt        «       t        j                  |«      }d d d «       | j                  «      rŒ�J ‚ 	 d d d «       y # 1 sw Y   Œ(xY w# 1 sw Y   y xY wr„  )r!   rN  r   rŒ   r)   r…  r†  r‡  rˆ  r$   Ústandard_deviationrO  r  s        r2   Útest_standard_deviation01rŸ  Ô  s˜   € ä	�‰˜Ö	"ßˆDÜ˜B Ó%ˆEØ—J‘J˜r¨�JÓ/ˆEÜ×(Ñ(Õ*Ü×'Ñ'¨Ð2GÌÔXÜ ×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Œ   r)   r$   rž  r   r  s        r2   Útest_standard_deviation02r¢  à  sP   € çˆÜ˜˜DÓ!ˆØ—
‘
˜A˜3 e�
Ó,ˆÜ×+Ñ+¨EÓ2ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   c                 óÀ   — t         D ]U  }t        | |«      }| j                  ddg|¬«      }t        j                  |«      }t        || j                  d«      d¬«       ŒW y r‘  r¡  r  s        r2   Útest_standard_deviation03r¤  é  sR   € çˆÜ˜˜DÓ!ˆØ—
‘
˜A˜q˜6¨�
Ó/ˆÜ×+Ñ+¨EÓ2ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   c                 óÄ   — t        j                  ddgt        ¬«      }| j                  |«      }t        j                  |«      }t        || j                  d«      d¬«       y )Nr
   r   rŠ   r<   Fr  )r!   r)   r$  r$   rž  r   r”  s      r2   Útest_standard_deviation04r¦  ò  sH   € ä�J‰J˜˜1�v¤TÔ*€EØ�J‰J�uÓ€EÜ×'Ñ'¨Ó.€FÜ˜ §
¡
¨3£¸%Ö@r4   c                 óê   — | j                  g d¢«      }t        D ]W  }t        | |«      }| j                  g d¢|¬«      }t        j                  ||d«      }t        || j                  d«      d¬«       ŒY y r—  )r)   r   rŒ   r$   rž  r   r%  s         r2   Útest_standard_deviation05r¨  ú  s`   € à�Z‰Zš	Ó"€FßˆÜ˜˜DÓ!ˆØ—
‘
š9¨E�
Ó2ˆÜ×+Ñ+¨E°6¸1Ó=ˆÜ˜F B§J¡J¨s£O¸eÖDñ	 r4   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š  )r)   r!   rN  r   rŒ   r$   rž  r   r%  s         r2   Útest_standard_deviation06rª    s†   € à�Z‰ZšÓ(€FÜ	�‰˜Ö	"ßˆDÜ˜B Ó%ˆEØ—J‘JÒ/°u�JÓ=ˆEÜ×/Ñ/Ø�v˜rŸz™zª)Ó4óˆFô & f¨b¯j©jºÓ.IÕJñ ÷ 
#×	"Ñ	"ú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
   rK  rL  Úuint8z8value cannot be converted to type uint8 without overflowgl�§ `y¿rŠ   r   )r)   r!   rN  r   r   ÚpytestÚxfailrŒ   r$   rž  r   r%  s         r2   Ú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   rS   r   r"  ©r   r   )r!   r)   r$  r   rŒ   r$   Úminimum_positionr%  s         r2   Útest_minimum_position01r³    sy   € ä�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×)Ñ)¨%¸Ô?ˆØ˜ÓÐÐñ	 r4   c                 ó¢   — t         D ]F  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  |«      }|dk(  rŒFJ ‚ y ©N©rm   r   r   rm   ©rS   r©   r   r   ©r
   rm   r
   r
   rŠ   ©r
   r   )r   rŒ   r)   r$   r²  r  s        r2   Útest_minimum_position02rº  *  ó[   € çˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%Ó0ˆØ˜ÓÐÐñ r4   c                 ó¦   — t        j                  g d¢g d¢g d¢gt        ¬«      }| j                  |«      }t        j                  |«      }|dk(  sJ ‚y rµ  ©r!   r)   r$  r$   r²  r”  s      r2   Útest_minimum_position03r¾  5  óN   € ä�J‰JšÚ$Ú$ð&ä-1ô3€Eð �J‰J�uÓ€EÜ×%Ñ% eÓ,€FØ�VÒÐÑr4   c                 ó¦   — t        j                  g d¢g d¢g d¢gt        ¬«      }| j                  |«      }t        j                  |«      }|dk(  sJ ‚y )Nr¶  )rS   r©   r
   r   r¸  rŠ   r±  r½  r”  s      r2   Útest_minimum_position04rÁ  ?  r¿  r4   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
   rm   r   rS   rŠ   )r   r   ©r)   r   rŒ   r$   r²  r%  s         r2   Útest_minimum_position05rÅ  I  ók   € à�Z‰ZšÓ%€FßˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°Ó8ˆØ˜ÓÐÐñ r4   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   rS   r   r¶  r·  r¸  rŠ   r   ©r   r
   rÄ  r%  s         r2   Útest_minimum_position06rÊ  U  óm   € à�Z‰ZšÓ%€FßˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°¸Ó;ˆØ˜ÓÐÐñ r4   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   rS   r   rÉ  r
   r¹  rÄ  r%  s         r2   Útest_minimum_position07rÍ  a  ó“   € à�Z‰ZšÓ%€FßˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°Ø*,¯*©*°a¸°VÓ*<ó>ˆà�a‰y˜FÒ"Ð"Ð"Ø�a‰y˜FÓ"Ð"Ð"ñ r4   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   rS   r   r"  ©r
   r   )r!   r)   r$  r   rŒ   r$   Úmaximum_positionr%  s         r2   Útest_maximum_position01rÒ  o  s|   € ä�Z‰Z˜˜A˜¤dÔ+€FØ�Z‰Z˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×)Ñ)¨%Ø17ô9ˆà˜ÓÐÐñ r4   c                 ó¢   — t         D ]F  }t        | |«      }| j                  g d¢g d¢g d¢g|¬«      }t        j                  |«      }|dk(  rŒFJ ‚ y )Nr¶  ©rS   r©   r:  r   r¸  rŠ   r¹  )r   rŒ   r)   r$   rÑ  r  s        r2   Útest_maximum_position02rÕ  {  r»  r4   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!   r)   r$  r$   rÑ  r”  s      r2   Útest_maximum_position03r×  †  r¿  r4   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
   ©r)   r   rŒ   r$   rÑ  r%  s         r2   Útest_maximum_position04rÛ  �  rÆ  r4   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Ú  r%  s         r2   Útest_maximum_position05rÝ  œ  rË  r4   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Ú  r%  s         r2   Útest_maximum_position06rß  ¨  rÎ  r4   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 )N)r   rM  rD   ç      @r¶  rÔ  r¸  rŠ   r   rá  r   r±  r
   )r   rS   rÚ  r%  s         r2   Útest_maximum_position07râ  ¶  s—   € ð �Z‰ZÒ,Ó-€FßˆÜ˜˜DÓ!ˆØ—
‘
šLÚ(Ú(ð*à16ð ó 8ˆô ×)Ñ)¨%°Ø*,¯*©*°c¸3°ZÓ*@óBˆà�a‰y˜FÒ"Ð"Ð"Ø�a‰y˜FÓ"Ð"Ð"ñ r4   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   rS   r   r"  )r!   r)   r$  r   rŒ   r$   ÚextremarR  r_  r²  rÑ  ©
r,   r   rŽ   r   r  Úoutput1Úoutput2Úoutput3Úoutput4Úoutput5s
             r2   Ú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Ð>Ó>Ð>Ð>ñ r4   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   rS   r   rŠ   r   )	r)   r   rŒ   r$   rä  rR  r_  r²  rÑ  rå  s
             r2   Útest_extrema02rí  ×  sÑ   € ð �Z‰Z˜˜A˜Ó€FßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ—/‘/ %°Ø()ô+ˆä—/‘/ %°Ø()ô+ˆä—/‘/ %°Ø()ô+ˆä×*Ñ*¨5Ø28ÀôCˆä×*Ñ*¨5Ø28ÀôCˆà˜7 G¨W°gÐ>Ó>Ð>Ð>ñ r4   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   rS   ©Úuint16Úuint32Úuint64ú/https://github.com/pytorch/pytorch/issues/58734r   rŠ   r[  r   r   ©r)   r   r   r­  r®  rŒ   r$   rä  rR  r_  r²  rÑ  r   rå  s
             r2   Útest_extrema03rõ  ë  sZ  € ð �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Ô$Ð$Ð$ñ/ r4   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   rS   rô  rå  s
             r2   Útest_extrema04r÷  	  sP  € ð �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Ô$Ð$Ð$ñ% r4   c                 ó    — d}t         D ]C  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }||k(  rŒCJ ‚ y )N)rD   rD   r
   r   rŠ   ©r   rŒ   r)   r$   Úcenter_of_mass©r,   r�   rŽ   r   r  r“   s         r2   Útest_center_of_mass01rü  "  óZ   € à€HßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×'Ñ'¨Ó.ˆØ˜Ó!Ð!Ð!ñ	 r4   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         r2   Útest_center_of_mass02rÿ  ,  óZ   € à€HßˆÜ˜˜DÓ!ˆØ—
‘
˜Q ˜F Q¨ FÐ+°5�
Ó9ˆÜ×'Ñ'¨Ó.ˆØ˜Ó!Ð!Ð!ñ	 r4   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         r2   Útest_center_of_mass03r  6  r   r4   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         r2   Útest_center_of_mass04r  @  r   r4   c                 ó    — d}t         D ]C  }t        | |«      }| j                  ddgddgg|¬«      }t        j                  |«      }||k(  rŒCJ ‚ y )N©r<   r<   r
   rŠ   rù  rû  s         r2   Útest_center_of_mass05r  J  rý  r4   c                 ó¤   — d}t        j                  ddgddggt        ¬«      }| j                  |«      }t        j                  |«      }||k(  sJ ‚y )Nr  r
   r   rS   rŠ   )r!   r)   r$  r$   rú  ©r,   r�   r  r“   s       r2   Útest_center_of_mass06r
  T  sP   € à€HÜ�J‰J˜˜A˜  A Ð'¬tÔ4€EØ�J‰J�uÓ€EÜ×#Ñ# EÓ*€FØ�XÒÐÑr4   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   ©r<   rD   r   rS   rŠ   ©r)   r!   r$  r$   rú  ©r,   r   r�   r  r“   s        r2   Ú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ÒÐÑr4   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   ©r<   r   rm   rS   rŠ   r  r  s        r2   Útest_center_of_mass08r  g  sf   € à�Z‰Z˜˜A˜Ó€FØ€HÜ�J‰J˜˜A˜  A Ð'¬tÔ4€EØ�J‰J�uÓ€EÜ×#Ñ# E¨6°1Ó5€FØ�XÒÐÑr4   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   )r)   Úfloat64r!   r$  r$   rú  r   r  s        r2   Útest_center_of_mass09r  q  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Ó(<Õ=r4   c                 ó�   — | j                  d«      }| j                  d«      }t        j                  |ddd«      }t	        ||«       y )Nr£   r   )r]   Úaranger$   Ú	histogramr   r	  s       r2   Útest_histogram01r  {  s<   € à�w‰w�r‹{€HØ�I‰I�b‹M€EÜ×Ñ˜u a¨¨RÓ0€FÜ˜f hÕ/r4   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
   rS   r   rS   rS   rS   rS   r   r   rm   r
   ©r)   r$   r  r   r  s        r2   Útest_histogram02r  ƒ  sR   € à�Z‰ZÒ0Ó1€FØ�z‰zš/Ó*€HØ�J‰JÒ/Ó0€EÜ×Ñ˜u a¨¨A¨v°qÓ9€FÜ˜f hÕ/r4   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   rS   r   )r
   r
   rS   r   rS   rm   rS   rS   r   r   rm   r¹  r
   r  )r,   r   Ú	expected1Ú	expected2r  r“   s         r2   Útest_histogram03r   Œ  st   € ð �Z‰ZÒ0Ó1€FØ—
‘
š?Ó+€IØ—
‘
š?Ó+€IØ�J‰JÒ/Ó0€Eä×Ñ˜u a¨¨A¨v°vÓ>€Fä˜f Q™i¨Ô3Ü˜f Q™i¨Õ3r4   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)rm   r   r   r   r   )r:  r7   r   r   r   )r   r   r   rS   rm   )r
   r
   r   r   r   )r   r   r   r   r   r
   r   r   rO   r,  rŠ   rM  r   rm   rS   Frª   r7   )r)   r$   rC  r   r  r‰  rž  r   Úsqrtrs  rR  r_  )	r,   rË   ÚlblrC  ÚvarÚstdÚmedÚminÚmaxs	            r2   Útest_stat_funcs_2dr)  ™  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Ó+¸Ö?r4   úno watershed_ift on CuPy©r   c                   ó�   — 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¨   ©r)   r¬  r5  r$   Úwatershed_iftr   ©r+   r,   r`   Úmarkersr6  ra   r�   s          r2   Ú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°(Ó';Õ<r4   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 )
Nr/  r0  r1  rŠ   r2  r3  r7  )r¨   r¨   r
   r
   r
   r¨   r¨   r8  r9  ©r+   r,   r`   r<  ra   r�   s         r2   Ú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°(Ó';Õ<r4   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 )
Nr/  r0  ©r   r
   r   r
   r   r
   r   rŠ   ©r   r   r   r   rS   r   r   ©r   r   r   r   r   r   r¨   r7  )r¨   r¨   r   r¨   rS   r¨   r¨   ©r¨   r   r   rS   rS   rS   r¨   r9  r?  s         r2   Ú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°(Ó';Õ<r4   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 )Nr/  r0  rB  rŠ   rC  rD  r4  r5  r7  rE  r9  r;  s          r2   Ú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°(Ó';Õ<r4   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 )Nr/  r0  rB  rŠ   )r   r   rS   r   r   r   r   rD  r4  r5  r7  )r¨   rS   rS   r   r   r   r¨   r9  r;  s          r2   Ú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°(Ó';Õ<r4   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 )Nr1  r0  r/  rŠ   r2  r3  r4  r5  r8  r7  r9  r;  s          r2   Útest_watershed_ift06z%TestWatershedIft.test_watershed_ift06E  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°(Ó';Õ<r4   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Š   r1  r0  r/  .r2  r3  r4  )r6  r“   r8  r7  )r!   re   r¬  Ú	transposer)   r5  Úint16ÚTr$   r:  r   )r+   r,   rœ   r`   r<  ra   r6  r�   s           r2   Ú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°(Ó';Õ<r4   r™   r*  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
   )r)   rð  r5  r$   r:  r   r?  s         r2   Ú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°(Ó';Õ<r4   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ª   )r)   Úiinforð  r(  r5  r$   r:  r   r?  s         r2   Útest_watershed_ift09z%TestWatershedIft.test_watershed_ift09‹  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ÖEr4   N)rG   rH   rI   r=  r@  rF  rH  rJ  rL  Úskip_xp_backendsrQ  rT  rW  rK   r4   r2   r-  r-  ²  sz   „ ò=ò>=ò8=ò2=ò<=ò:=ñ2 ˜dÐ+KÔLñ=ó Mð=ñ@ �fÐ%?Ô@ñ	=ó Að	=ñ �fÐ%?Ô@ñ	Fó Añ	Fr4   r-  )r   Údtc                 óô   — t         j                  j                  d«      }d}|j                  d|d¬«      j	                  | ¬«      }t        j                  |«      }t        |j                  «       «      |k(  sJ ‚y )Né{   r:  r   )r£   r  )ÚlowÚhighr¿   rŠ   )	r!   rÈ   Údefault_rngÚintegersÚastyper$   rô   rW   rö   )rY  r,   ÚrngÚmax_valÚimageÚval_idxs         r2   Útest_gh_19423re  ˜  sh   € ô �)‰)×
Ñ
 Ó
$€CØ€GØ�L‰L˜Q W°8ˆLÓ<×CÑCÈ"ÐCÓM€EÜ×#Ñ# EÓ*€GÜˆw�|‰|‹~Ó 'Ò)Ð)Ñ)r4   )’r­   Úos.pathr…  Únumpyr!   Úscipy._lib._array_apir   r   r   r   r   r   r­  r	   r¤   Úscipy.ndimager$   Ú r   ÚmarkrX  ÚnameÚ__version__r'   r   rM   r^   rc   rf   ri   rk   rn   rr   ru   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-  r2  r6  r;  rA  rC  rD  rG  rI  rP  rR  rS  rW  rY  r\  r_  r`  rb  rd  rf  rj  rs  ru  ry  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  r  r  r   r)  r:  r-  ÚparametrizeÚintcÚuintcre  rK   r4   r2   Ú<module>rq     s  ðÛ 	Û Û ã ÷÷ ó Ý *å å à—;‘;×/Ñ/Ð à—W‘W ‘_Ò=¨¯©¸#Ñ)=Ð ñ ˜$Ð'IÔJ÷O=ð O=ó KðO=ñd ˜$Ð'IÔJ÷#/ð #/ó Kð#/ñL �7—=‘=Ó!ñó "ðñ �7—=‘=Ó!ñó "ðñ �7—=‘=Ó!ñó "ðñ �7—=‘=Ó!ñó "ðñ �7—=‘=Ó!ñó "ðñ �7—=‘=Ó!ñó "ðñ �7—=‘=Ó!ñó "ðñ$ �7—=‘=Ó!ñó "ðñ" �7—=‘=Ó!ñó "ðñ& �7—=‘=Ó!ñó "ðñ �7—=‘=Ó!ñó "ðñ* ˜$Ð'IÔJÙ�7—=‘=Ó!ñó "ó Kðñ* �7—=‘=Ó!ñó "ðñ& �7—=‘=Ó!ñó "ðñ$ ˜$¨F¨8Ø9ô;á�7—=‘=Ó!ñó "ó;ðñ ˜$¨F¨8Ø9ô;á�7—=‘=Ó!ñ!ó "ó;ð!ñ ˜$Ð'JÔKÙ�7—=‘=Ó!ñFó "ó LðFñ �7—=‘=Ó!ñó "ðñ. �7—=‘= '×"6Ñ"6Ó7ñó 8ðñ$ �7—=‘=Ó!ñ	5ó "ð	5ñ �7—=‘= '×"6Ñ"6Ó7÷TCð TCó 8ðTCñn �7×(Ñ(Ó)ñ'ó *ð'ñ, �7×(Ñ(Ó)ñ$ó *ð$ñ �7×(Ñ(Ó)ñ/ó *ð/ñ" �7—;‘;Óñó  ðñ �7—;‘;Óñó  ðñ �7—;‘;ÓñEó  ðEñ �7—;‘;ÓñEó  ðEñ �7—;‘;ÓñFó  ðFñ �7—;‘;Óñó  ðñ �7—;‘;Óñó  ðñ �7—;‘;Óñó  ðñ �7—;‘;ÓñEó  ðEñ �7—;‘;ÓñAó  ðAñ �7—;‘;ÓñEó  ðEñ �7—;‘;ÓñGó  ðGñ �7—;‘;Óñ
Nó  ð
Nñ �7—<‘<Ó ñEó !ðEñ �7—<‘<Ó ñAó !ðAñ �7—<‘<Ó ñEó !ðEñ �7—<‘<Ó ñ'ó !ð'ñ �7—?‘?Ó#ñEó $ðEñ �7—?‘?Ó#ñAó $ðAñ �7—?‘?Ó#ñEó $ðEñ �7—?‘?Ó#ñGó $ðGñ �7—?‘?Ó#ñEó $ðEñ �7—?‘?Ó#ñAó $ðAñ �7—?‘?Ó#ñEó $ðEñ �7—?‘?Ó#ñGó $ðGñ �7—?‘?Ó#ñ$ó $ð$ñ �7—>‘>Ó"ñ
Có #ð
Cñ �7—>‘>Ó"ñAó #ðAñ �7—>‘>Ó"ñ
Aó #ð
Añ �7—>‘>Ó"ñ9ó #ð9ñ �7—>‘>Ó"ñ:ó #ð:ñ �7×#Ñ#Ó$ñ$ó %ð$ñ �7×#Ñ#Ó$ñEó %ðEñ �7×#Ñ#Ó$ñEó %ðEñ �7×#Ñ#Ó$ñBó %ðBñ �7×#Ñ#Ó$ñEó %ðEñ �7×#Ñ#Ó$ñKó %ðKñ �7×-Ñ-Ó.ñ$ó /ð$ñ �7×-Ñ-Ó.ñEó /ðEñ �7×-Ñ-Ó.ñEó /ðEñ �7×-Ñ-Ó.ñAó /ðAñ �7×-Ñ-Ó.ñEó /ðEñ �7×-Ñ-Ó.ñ	Kó /ð	Kñ �7×-Ñ-Ó.ñ
?ó /ð
?ñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñó -ðñ �7×+Ñ+Ó,ñó -ðñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñ
#ó -ð
#ñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñó -ðñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñ ó -ð ñ �7×+Ñ+Ó,ñ
#ó -ð
#ñ �7×+Ñ+Ó,ñ#ó -ð#ñ �7—?‘? G§O¡O°W·_±_Ø×+Ñ+¨W×-EÑ-EóGñ?óGð?ñ  �7—?‘? G§O¡O°W·_±_Ø×+Ñ+¨W×-EÑ-EóGñ?óGð?ñ$ �7—?‘? G§O¡O°W·_±_Ø×+Ñ+¨W×-EÑ-EóGñ%óGð%ñ8 �7—?‘? G§O¡O°W·_±_Ø×+Ñ+¨W×-EÑ-EóGñ%óGð%ñ. �7×)Ñ)Ó*ñ"ó +ð"ñ �7×)Ñ)Ó*ñ"ó +ð"ñ �7×)Ñ)Ó*ñ"ó +ð"ñ �7×)Ñ)Ó*ñ"ó +ð"ñ �7×)Ñ)Ó*ñ"ó +ð"ñ �7×)Ñ)Ó*ñó +ðñ �7×)Ñ)Ó*ñó +ðñ �7×)Ñ)Ó*ñó +ðñ �7×)Ñ)Ó*ñ>ó +ð>ñ �7×$Ò$Ó%ñ0ó &ð0ñ �7×$Ò$Ó%ñ0ó &ð0ñ ˜$ Ô7Ù�7×$Ò$Ó%ñ	4ó &ó 8ð	4ñ �7—<‘< ×!1Ñ!1°7×3MÑ3MØ—>‘> 7§?¡?°G·O±OóEñ@óEð@ñ. �&Ð!;Ô<Ù�7×(Ò(Ó)÷aFð aFó *ó =ðaFñH ˜$ÔØ‡�×Ò˜ §¢¨¯ªÐ2Ó3Ù�7×(Ñ(Ó)ñ*ó *ó 4ó  ñ*r4   