Ë
    âQ(hÐö ã                   óv  — d dl Zd dlmZmZmZmZmZmZm	Z	 d dl
Z
d dl
mZ d dlmZ ddlmZ d dlmZ e
j&                  j(                  Ze
j&                  j*                  Zee
j&                  j-                  d«      e
j&                  j-                  d	«       ed
ddg¬«      gZ G d„ d«      Z G d„ d«      Z G d„ d«      Zd„ Zd„ Zd„ Zd„ Zd„ Ze
j&                  jA                  dg d¢«      e
j&                  jA                  dddg«      e
j&                  jA                  ddd
g«      d„ «       «       «       Z!d „ Z"d!„ Z#y)"é    N)Úis_cupyÚis_numpyÚis_torchÚarray_namespaceÚxp_assert_closeÚxp_assert_equalÚassert_array_almost_equal)Úraises)Úndimageé   )Útypes)Úarray_api_compatibleÚskip_xp_backendsÚxfail_xp_backendsTÚcupyú	jax.numpy)Úcpu_onlyÚ
exceptionsc                   ó¬  — e Zd Z edd¬«      ej
                  j                  de«      d„ «       «       Z edd¬«      ej
                  j                  de«      d„ «       «       Z	 edd¬«      ej
                  j                  de«      d„ «       «       Z
 edd	¬
«      ej
                  j                  de«      d„ «       «       Z edd¬«      ej
                  j                  de«      d„ «       «       Z edd¬«      ej
                  j                  de«      d„ «       «       Zd„ Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Z edd¬
«      ej
                  j                  de«      d„ «       «       Z edd¬
«      d„ «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Z edd¬
«      ej
                  j                  de«      d„ «       «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Zd„ Z edd¬
«      d„ «       Zd„ Zd„ Zd„ Zd „ Zd!„ Zd"„ Z d#„ Z!ej
                  j                  de«      d$„ «       Z"ej
                  j                  de«      d%„ «       Z#ej
                  j                  de«      d&„ «       Z$ej
                  j                  de«      d'„ «       Z%ej
                  j                  de«      d(„ «       Z&ej
                  j                  de«      d)„ «       Z'ej
                  j                  de«      d*„ «       Z(ej
                  j                  de«      d+„ «       Z)ej
                  j                  de«      d,„ «       Z*ej
                  j                  de«      d-„ «       Z+ej
                  j                  de«      d.„ «       Z,ej
                  j                  de«      d/„ «       Z-ej
                  j                  de«      d0„ «       Z.ej
                  j                  de«      d1„ «       Z/ej
                  j                  de«      d2„ «       Z0ej
                  j                  de«      d3„ «       Z1ej
                  j                  de«      d4„ «       Z2ej
                  j                  de«      d5„ «       Z3ej
                  j                  de«      d6„ «       Z4ej
                  j                  de«      d7„ «       Z5ej
                  j                  de«      d8„ «       Z6ej
                  j                  de«      d9„ «       Z7ej
                  j                  de«      d:„ «       Z8ej
                  j                  de«      d;„ «       Z9ej
                  j                  de«      d<„ «       Z:ej
                  j                  de«      d=„ «       Z;d>„ Z< edd?¬
«      d@„ «       Z=dA„ Z> edd?¬
«      dB„ «       Z? edd?¬
«      dC„ «       Z@dD„ ZAdE„ ZBdF„ ZC edd?¬
«      dG„ «       ZDdH„ ZE edd?¬
«      dI„ «       ZFdJ„ ZG edd?¬
«      dK„ «       ZH edd?¬
«      dL„ «       ZIej
                  j                  de«      dM„ «       ZJej
                  j                  de«      dN„ «       ZKej
                  j                  de«      dO„ «       ZLej
                  j                  de«      dP„ «       ZMej
                  j                  de«      dQ„ «       ZNej
                  j                  de«      dR„ «       ZOej
                  j                  de«      dS„ «       ZPej
                  j                  de«      dT„ «       ZQej
                  j                  de«      dU„ «       ZRej
                  j                  de«      dV„ «       ZSej
                  j                  de«      dW„ «       ZTej
                  j                  de«      dX„ «       ZUej
                  j                  de«      dY„ «       ZVej
                  j                  de«      dZ„ «       ZWej
                  j                  de«      d[„ «       ZXej
                  j                  de«      d\„ «       ZYej
                  j                  de«      d]„ «       ZZej
                  j                  de«      d^„ «       Z[ej
                  j                  de«      d_„ «       Z\ej
                  j                  de«      d`„ «       Z]ej
                  j                  de«      da„ «       Z^ej
                  j                  de«      db„ «       Z_ej
                  j                  de«      dc„ «       Z`ej
                  j                  de«      dd„ «       Zaej
                  j                  de«      de„ «       Zbej
                  j                  de«      df„ «       Zcej
                  j                  de«      dg„ «       Zdej
                  j                  de«      dh„ «       Zedi„ Zf eddj¬
«      dk„ «       Zgdl„ Zh eddj¬
«      dm„ «       Zidn„ Zj eddo¬
«      dp„ «       Zkej
                  j                  de«      dq„ «       Zldr„ Zmds„ Zndt„ Zodu„ Zpej
                  j                  de«      dv„ «       Zqej
                  j                  de«      dw„ «       Zrej
                  j                  de«      dx„ «       Zsej
                  j                  de«      dy„ «       Ztdz„ Zud{„ Zvd|„ Zw ed¬}«       edd~¬«       edd€¬«      ej
                  j                  d�d‚dƒg«      ej
                  j                  d„d…d†g«      ej
                  j                  d‡g dˆ¢«      ej
                  j                  d‰g dŠ¢«      d‹„ «       «       «       «       «       «       «       ZxdŒ„ Zy edd�¬«       eddŽ¬«      d�„ «       «       Zzd�„ Z{d‘„ Z|d’„ Z}d“„ Z~d”„ Zd•„ Z€d–„ Z�d—„ Z‚d˜„ Zƒ eddj¬
«      d™„ «       Z„dš„ Z… eddj¬
«      d›„ «       Z†dœ„ Z‡ edd�¬«      d�„ «       Zˆdž„ Z‰ eddŸ¬«      d „ «       ZŠ edd�¬«      d¡„ «       Z‹ edd�¬«      d¢„ «       ZŒd£„ Z� edd¤¬«      d¥„ «       ZŽ edd�¬«      d¦„ «       Z� ed¬}«       edd~¬«       edd€¬«      ej
                  j                  d„d…d†g«      ej
                  j                  d‡g dˆ¢«      ej
                  j                  d§g d¨¢«      ej
                  j                  d©g dª¢«      ej
                  j                  d‰g d«¢«      d¬„ «       «       «       «       «       «       «       «       Z�ej
                  j                  de«      d­„ «       Z‘ej
                  j                  de«      d®„ «       Z’ej
                  j                  de«      d¯„ «       Z“y°)±ÚTestNdimageMorphologyr   ú)CuPy does not have distance_transform_bf.)ÚreasonÚdtypec                 óÖ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}g d¢g d¢g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g	}|j                  |«      }t	        ||z  |«       g d¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       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   Ú	euclideanT©Úreturn_indices)	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-   ©	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   r   r   r+   r.   r.   r.   r%   ©ÚgetattrÚasarrayr   Údistance_transform_bfr	   ©Úselfr   ÚxpÚdataÚoutÚftÚexpecteds          úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/ndimage/tests/test_morphology.pyÚtest_distance_transform_bf01z2TestNdimageMorphology.test_distance_transform_bf01   s  € ô ˜˜EÓ"ˆð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/°°kØ?CôE‰ˆˆRâ/Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! #¨¡)¨XÔ6â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/ó    c                 óÐ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}g d¢g d¢g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g	}|j                  |«      }t	        ||«       g d¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   Ú	cityblockTr    ©	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/   r0   r1   r2   r3   ©	r   r   r   r   r#   r.   r.   r.   r%   r6   r:   s          rA   Útest_distance_transform_bf02z2TestNdimageMorphology.test_distance_transform_bf02I   s
  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/°°kØ?CôE‰ˆˆRò 0Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! # xÔ0â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! (¨BÕ/rC   c                 óÐ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}g d¢g d¢g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g	}|j                  |«      }t	        ||«       g d¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   Ú
chessboardTr    )	r   r   r   r   r"   r   r   r   r   rF   r&   r'   )	r)   r)   r#   r"   r"   r"   r#   r)   r)   )	r#   r#   r-   r+   r+   r+   r-   r#   r#   r,   r/   r0   r1   r2   ©	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%   r6   r:   s          rA   Útest_distance_transform_bf03z2TestNdimageMorphology.test_distance_transform_bf03{   s
  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/°°lØ?CôE‰ˆˆRò 0Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! # xÔ0â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/rC   Tz,inplace distances= arrays are numpy-specific)Únp_onlyr   c                 ó¸  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}g }g }|j	                  |j
                  |j                  ¬«      }t        j                  ||¬«       |j                  |«       t        j                  |dd¬	«      }	|j                  |	«       t        j                  |j
                  |j                  ¬«      }	t        j                  |dd
|	¬«       |j                  |	«       t        j                  |d¬«      \  }}	|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  ||d
¬«      }	|j                  |«       |j                  |	«       t        j                  |j
                  |j                  ¬«      }	t        j                  |d
|	¬«      }|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  |j
                  |j                  ¬«      }	t        j                  ||d
|	¬«       |j                  |«       |j                  |	«       |D ]  }t        ||«       Œ |D ]  }	t        ||	«       Œ y )Nr   r   r   r   r   r    ©Ú	distancesF©Úreturn_distancesr!   T©rS   r!   Úindices©rQ   r!   ©r!   rU   ©rQ   r!   rU   )r7   r8   r   r9   ÚzerosÚshapeÚfloat64ÚappendÚnprU   Úint32r	   ©
r;   r   r<   r=   ÚtdtÚtftÚdtsÚftsÚdtr?   s
             rA   Útest_distance_transform_bf04z2TestNdimageMorphology.test_distance_transform_bf04­   sL  € ô
 ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0°ÀaÔH‰ˆˆSØˆØˆØ�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×%Ñ% d°bÕ9Ø�
‰
�2ŒÜ×*Ñ*Ø 5¸ô<ˆà�
‰
�2ŒÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆÜ×%Ñ%Ø 5¸Àrõ	Kà�
‰
�2ŒÜ×.Ñ.Ø ô$‰ˆˆBà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×*Ñ*Ø˜B¨tô5ˆà�
‰
�2ŒØ�
‰
�2ŒÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆÜ×*Ñ*Ø ¨rô3ˆà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆÜ×%Ñ%Ø˜B¨t¸Rõ	Aà�
‰
�2ŒØ�
‰
�2ŒØò 	/ˆBÜ% c¨2Õ.ð	/àò 	/ˆBÜ% c¨2Õ.ñ	/rC   c                 óÜ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |ddddg¬«      \  }}g d¢g d¢g d	¢g d
¢g d¢g d
¢g d	¢g d¢g d¢g	}|j                  |«      }t	        ||z  |«       g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   r   Tr"   ©r!   Úsampling)	r   r   r   r#   r#   r#   r   r   r   )	r   r   r#   r%   é   r%   r#   r   r   )	r   r   r#   ri   é    ri   r#   r   r   r&   r'   r(   r*   r,   r/   r0   r1   r2   r3   r4   r5   r6   r:   s          rA   Útest_distance_transform_bf05z2TestNdimageMorphology.test_distance_transform_bf05ã   s  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/Ø�+¨d¸aÀ¸VôE‰ˆˆRâ/Ú/Ú/Ú0Ú2Ú0Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! #¨¡)¨XÔ6â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/rC   c                 óÜ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |ddddg¬	«      \  }}g d¢g d¢g d
¢g d¢g d¢g d¢g d
¢g d¢g d¢g	}|j                  |«      }t	        ||z  |«       g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   r   Tr"   r   rg   )	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+   r+   r+   r+   r.   r+   r+   r+   r+   r0   r1   r2   )	r   r   r"   r"   r+   r+   r+   r.   r%   r5   )	r   r   r   r   r.   r.   r.   r.   r%   r3   r6   r:   s          rA   Útest_distance_transform_bf06z2TestNdimageMorphology.test_distance_transform_bf06  s  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/Ø�+¨d¸aÀ¸VôE‰ˆˆRâ/Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! #¨¡)¨XÔ6â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/rC   c                 ó  — t        |«      rt        j                  d«       |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	«      }t	        t
        «      5  t        j                  |dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   r   FrR   )r   ÚpytestÚxfailr8   Úassert_raisesÚRuntimeErrorr   r9   )r;   r<   r=   s      rA   Útest_distance_transform_bf07z2TestNdimageMorphology.test_distance_transform_bf07E  sz   € Ü�2Œ;Ü�L‰LÐDÔEð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ó 9ˆô œ<Ó(ñ 	Ü×)Ñ)Ø u¸Uõ÷	÷ 	ñ 	ús   ÁA>Á>Bc                 óà  — t        ||«      }t        |«      rt        j                  d«       |j	                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}t        j                  |d«      }t        ||«       g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j	                  |«      }t        ||«       y )Nú*CuPy does not have distance_transform_cdt.r   r   r   r   rE   Tr    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+   r0   r1   r2   rG   )	r   r   r   r   r#   r-   r+   r.   r%   )	r   r   r"   r"   r#   r-   r+   r.   r%   ©	r7   r   rp   rq   r8   r   Údistance_transform_cdtr9   r	   ©r;   r   r<   r=   r>   r?   Úbfr@   s           rA   Útest_distance_transform_cdt01z3TestNdimageMorphology.test_distance_transform_cdt01X  sû   € ä˜˜EÓ"ˆÜ�2Œ;Ü�L‰LÐEÔFð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0Ø�+¨dô4‰ˆˆRä×*Ñ*¨4°Ó=ˆÜ! " cÔ*â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/rC   c                 óà  — t        ||«      }t        |«      rt        j                  d«       |j	                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}t        j                  |d«      }t        ||«       g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j	                  |«      }t        ||«       y )Nrv   r   r   r   r   rJ   Tr    r&   rw   )	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-   rx   r0   r1   r2   )	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%   rL   rK   ry   r{   s           rA   Útest_distance_transform_cdt02z3TestNdimageMorphology.test_distance_transform_cdt02‚  sú   € ä˜˜EÓ"ˆÜ�2Œ;Ü�L‰LÐEÔFà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0°°|Ø@DôF‰ˆˆRä×*Ñ*¨4°Ó>ˆÜ! " cÔ*â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/rC   z*inplace indices= arrays are numpy-specificc                 ó*  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}g }g }|j	                  |j
                  |j                  ¬«      }t        j                  ||¬«       |j                  |«       t        j                  |dd¬	«      }	|j                  |	«       |j                  t        j                  |j
                  t        j                  ¬«      «      }	t        j                  |dd|	¬
«       |j                  |	«       t        j                  |d¬«      \  }}	|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  ||d¬«      }	|j                  |«       |j                  |	«       |j                  t        j                  |j
                  t        j                  ¬«      «      }	t        j                  |d|	¬«      }|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }|j                  t        j                  |j
                  t        j                  ¬«      «      }	t        j                  ||d|	¬«       |j                  |«       |j                  |	«       |D ]  }t        ||«       Œ |D ]  }	t        ||	«       Œ y )Nr   r   r   r   Tr    rP   FrR   rT   rV   rW   rX   )r7   r8   r   rz   rY   rZ   r^   r\   r]   rU   r	   r_   s
             rA   Útest_distance_transform_cdt03z3TestNdimageMorphology.test_distance_transform_cdt03«  sg  € ô
 ˜˜EÓ"ˆØ�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×1Ñ1°$ÀtÔL‰ˆˆSØˆØˆØ�X‰X�d—j‘j¨¯©ˆXÓ1ˆÜ×&Ñ& t°rÕ:Ø�
‰
�2ŒÜ×+Ñ+Ø 5¸ô?ˆà�
‰
�2ŒØ�Z‰ZœŸ
™
 4§:¡:´R·X±XÔ>Ó?ˆÜ×&Ñ&Ø 5¸Àrõ	Kà�
‰
�2ŒÜ×/Ñ/Ø ô'‰ˆˆBà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯©ˆXÓ1ˆÜ×+Ñ+Ø˜B¨tô5ˆà�
‰
�2ŒØ�
‰
�2ŒØ�Z‰ZœŸ
™
 4§:¡:´R·X±XÔ>Ó?ˆÜ×+Ñ+Ø ¨rô3ˆà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯©ˆXÓ1ˆØ�Z‰ZœŸ
™
 4§:¡:´R·X±XÔ>Ó?ˆÜ×&Ñ& t°rØ6:ÀBõ	Hà�
‰
�2ŒØ�
‰
�2ŒØò 	/ˆBÜ% c¨2Õ.ð	/àò 	/ˆBÜ% c¨2Õ.ñ	/rC   z3XXX: does not raise unless indices is a numpy arrayc                 ó@  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	«      }|j                  |j                  f|j                  z   |j                  ¬«      }t        t        «      5  t        j                  |dd|¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   r   TFrT   )	r8   rY   ÚndimrZ   r^   rr   rs   r   r9   )r;   r<   r=   Úindices_outs       rA   Útest_distance_transform_cdt04z3TestNdimageMorphology.test_distance_transform_cdt04à  s�   € ð
 �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ó 9ˆð —h‘h §	¡	˜|¨d¯j©jÑ8ÀÇÁ�hÓIˆÜœ<Ó(ñ 	Ü×)Ñ)ØØ!%Ø$Ø#õ	÷	÷ 	ñ 	ús   Á1BÂBc                 óv  — t        ||«      }t        |«      rt        j                  d«       n t	        |«      rt        j                  d«       |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }|j                  d«      }t        j                  ||¬«      }|j                  |«      d	k(  sJ ‚y )
Nrv   zint overflowr   r   r   r   ©r)   r)   ©Úmetriciëÿÿÿ)
r7   r   rp   rq   r   r8   Úonesr   rz   Úsum)r;   r   r<   r=   Ú
metric_argÚactuals         rA   Útest_distance_transform_cdt05z3TestNdimageMorphology.test_distance_transform_cdt05÷  s©   € ä˜˜EÓ"ˆÜ�2Œ;Ü�L‰LÐEÕFÜ�bŒ\Ü�L‰L˜Ô(ð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆð —W‘W˜V“_ˆ
Ü×/Ñ/°¸ZÔHˆØ�v‰v�f‹~ Ò$Ð$Ñ$rC   c                 óÐ  — t        ||«      }t        |«      rt        j                  d«       |j	                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}t        j                  |d«      }t        ||«       t        j                  |«      }|t        j                  |j                  d	d  |j                  ¬«      z
  }|j                  t        j                  «      }t        j                  |||«       t        j                   j#                  |d
¬«      }t        j$                  ||«       |j	                  |«      }t        ||«       y )Nú(CuPy does not have distance_transform_bfr   r   r   r   Tr    r   r   r   ©Úaxis)r7   r   rp   rq   r8   r   Údistance_transform_edtr9   r	   r]   rU   rZ   r   Úastyper[   ÚmultiplyÚaddÚreduceÚsqrt)	r;   r   r<   r=   r>   r?   r|   Únp_ftrd   s	            rA   Útest_distance_transform_edt01z3TestNdimageMorphology.test_distance_transform_edt01  s!  € ä˜˜EÓ"ˆÜ�2Œ;Ü�L‰LÐCÔDð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0°ÀdÔK‰ˆˆRÜ×*Ñ*¨4°Ó=ˆÜ! " cÔ*ô —
‘
˜2“ˆØ”R—Z‘Z §¡¨A¨B °u·{±{ÔCÑCˆØ�Y‰Y”r—z‘zÓ"ˆÜ
�‰�B˜˜BÔÜ�V‰V�]‰]˜2 Aˆ]Ó&ˆÜ
�‰��BŒà�Z‰Z˜‹^ˆÜ! " bÕ)rC   z%inplace distances= are numpy-specificc                 ó  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}g }g }|j	                  |j
                  |j                  ¬«      }t        j                  ||¬«       |j                  |«       t        j                  |dd¬	«      }	|j                  |	«       t        j                  |j
                  |j                  ¬«      }	|j                  |	«      }	t        j                  |d
d|	¬«       |j                  |	«       t        j                  |d¬«      \  }}	|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  ||d¬«      }	|j                  |«       |j                  |	«       t        j                  |j
                  |j                  ¬«      }	|j                  |	«      }	t        j                  |d|	¬«      }|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  |j
                  |j                  ¬«      }	|j                  |	«      }	t        j                  ||d|	¬«       |j                  |«       |j                  |	«       |D ]  }t        ||«       Œ |D ]  }	t        ||	«       Œ y )Nr   r   r   r   Tr    rP   r   rR   FrT   rV   rW   rX   )r7   r8   r   r“   rY   rZ   r[   r\   r]   rU   r^   r	   r_   s
             rA   Útest_distance_transform_edt02z3TestNdimageMorphology.test_distance_transform_edt02,  ss  € ô
 ˜˜EÓ"ˆØ�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×1Ñ1°$ÀtÔL‰ˆˆSØˆØˆà�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×&Ñ& t°rÕ:Ø�
‰
�2Œä×+Ñ+Ø 1°Tô;ˆà�
‰
�2Œä�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆØ�Z‰Z˜‹^ˆÜ×&Ñ&Ø 5¸Àrõ	Kà�
‰
�2Œä×/Ñ/Ø ô'‰ˆˆBà�
‰
�2ŒØ�
‰
�2Œà�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×+Ñ+Ø˜B¨tô5ˆà�
‰
�2ŒØ�
‰
�2Œä�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆØ�Z‰Z˜‹^ˆÜ×+Ñ+Ø ¨rô3ˆà�
‰
�2ŒØ�
‰
�2Œà�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆØ�Z‰Z˜‹^ˆÜ×&Ñ&Ø˜B¨t¸Rõ	Aà�
‰
�2ŒØ�
‰
�2Œàò 	/ˆBÜ% c¨2Õ.ð	/àò 	/ˆBÜ% c¨2Õ.ñ	/rC   c                 ó6  — t        ||«      }t        |«      rt        j                  d«       |j	                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dddg¬«      }t        j                  |ddg¬«      }t        ||«       y )	Nr�   r   r   r   r   r   r"   ©rh   ©	r7   r   rp   rq   r8   r   r9   r“   r	   ©r;   r   r<   r=   Úrefr>   s         rA   Útest_distance_transform_edt03z3TestNdimageMorphology.test_distance_transform_edt03l  ó—   € ä˜˜EÓ"ˆÜ�2Œ;Ü�L‰LÐCÔDà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×+Ñ+¨D°+ÈÈAÈÔOˆÜ×,Ñ,¨T¸QÀ¸FÔCˆÜ! # sÕ+rC   c                 ó6  — t        ||«      }t        |«      rt        j                  d«       |j	                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dddg¬	«      }t        j                  |ddg¬	«      }t        ||«       y )
Nr�   r   r   r   r   r   r"   r   rž   rŸ   r    s         rA   Útest_distance_transform_edt4z2TestNdimageMorphology.test_distance_transform_edt4  r£   rC   c                 óH   — t        j                  d«      }t        |dg«       y )NFç        )r   r“   r	   )r;   r<   r>   s      rA   Útest_distance_transform_edt5z2TestNdimageMorphology.test_distance_transform_edt5’  s   € ä×,Ñ,¨UÓ3ˆÜ! #¨ tÕ,rC   c                 ó$  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	«      }|j                  |j                  |j                  ¬«      }t	        t
        «      5  t        j                  |dd|¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   r   TF)r!   rS   rQ   )r8   rY   rZ   r[   rr   rs   r   r9   )r;   r<   r=   Údistances_outs       rA   Útest_distance_transform_edt6z2TestNdimageMorphology.test_distance_transform_edt6—  s…   € ð
 �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ó 9ˆð Ÿ™ §¡°2·:±:˜Ó>ˆÜœ<Ó(ñ 	Ü×)Ñ)ØØ#Ø!&Ø'õ	÷	÷ 	ñ 	ús   Á#BÂBc                 ó>   — t        j                  dd«      }|dk(  sJ ‚y )Nr   r   )r   Úgenerate_binary_structure©r;   r<   Ústructs      rA   Útest_generate_structure01z/TestNdimageMorphology.test_generate_structure01®  s    € Ü×2Ñ2°1°aÓ8ˆØ˜Š{Ð‰{rC   c                 óL   — t        j                  dd«      }t        |g d¢«       y )Nr   ©r   r   r   ©r   r­   r	   r®   s      rA   Útest_generate_structure02z/TestNdimageMorphology.test_generate_structure02²  s   € Ü×2Ñ2°1°aÓ8ˆÜ! &ª)Õ4rC   c                 óZ   — t        j                  dd«      }t        |g d¢g d¢g d¢g«       y )Nr"   r   ©r   r   r   r²   r³   r®   s      rA   Útest_generate_structure03z/TestNdimageMorphology.test_generate_structure03¶  ó+   € Ü×2Ñ2°1°aÓ8ˆÜ! &ª9Ú+4Ú+4ð+6õ 	7rC   c                 óZ   — t        j                  dd«      }t        |g d¢g d¢g d¢g«       y )Nr"   r²   r³   r®   s      rA   Útest_generate_structure04z/TestNdimageMorphology.test_generate_structure04¼  r¸   rC   c                 óö   — g d¢g d¢g d¢g}|j                  |«      }t        j                  |d«      }t        j                   g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        ||«       y )Nr¶   r²   r"   ©r   r   r   r   r   ©r   r   r   r   r   ©r   r   r   r   r   r   ©r8   r   Úiterate_structurer]   Úboolr	   ©r;   r<   r¯   r>   r@   s        rA   Útest_iterate_structure01z.TestNdimageMorphology.test_iterate_structure01Â  st   € ÚÚÚðˆð —‘˜FÓ#ˆÜ×'Ñ'¨°Ó2ˆÜ—:‘:šÚ.Ú.Ú.Ú.ð	0ô 8<ô	=ˆð
 —:‘:˜hÓ'ˆÜ! # xÕ0rC   c                 óö   — ddgddgddgg}|j                  |«      }t        j                  |d«      }t        j                   g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        ||«       y )Nr   r   r"   )r   r   r   ©r   r   r   r²   r   r¿   rÂ   s        rA   Útest_iterate_structure02z.TestNdimageMorphology.test_iterate_structure02Ð  s€   € Ø�a�&Ø�a�&Ø�a�&ðˆð —‘˜FÓ#ˆÜ×'Ñ'¨°Ó2ˆÜ—:‘:šyÚ(Ú(Ú(Ú(ð	*ô 26ô	7ˆð
 —:‘:˜hÓ'ˆä! # xÕ0rC   c                 ó  — g d¢g d¢g d¢g}|j                  |«      }t        j                  |dd«      }g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        |d	   |«       |d   ddgk(  sJ ‚y )
Nr¶   r²   r"   r   r¼   r½   r¾   r   r   r¿   rÂ   s        rA   Útest_iterate_structure03z.TestNdimageMorphology.test_iterate_structure03ß  s�   € ÚÚÚðˆð —‘˜FÓ#ˆÜ×'Ñ'¨°°1Ó5ˆÚ#Ú#Ú#Ú#Ú#ð	%ˆô
 —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ! # a¡&¨(Ô3Ø�1‰v˜!˜Q˜ÒÐÑrC   c                 ó°   — t        ||«      }|j                  g |¬«      }t        j                  |«      }||j	                  d|j
                  ¬«      k(  sJ ‚y ©Nr   r   ©r7   rŠ   r   Úbinary_erosionr8   r   ©r;   r   r<   r=   r>   s        rA   Útest_binary_erosion01z+TestNdimageMorphology.test_binary_erosion01ï  sO   € ä˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×$Ñ$ TÓ*ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4rC   c                 ó´   — t        ||«      }|j                  g |¬«      }t        j                  |d¬«      }||j	                  d|j
                  ¬«      k(  sJ ‚y )Nr   r   ©Úborder_valuerË   rÍ   s        rA   Útest_binary_erosion02z+TestNdimageMorphology.test_binary_erosion02ö  sQ   € ä˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×$Ñ$ T¸Ô:ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4rC   c                 ó¦   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  dg«      «       y ©Nr   r   r   ©r7   rŠ   r   rÌ   r	   r8   rÍ   s        rA   Útest_binary_erosion03z+TestNdimageMorphology.test_binary_erosion03ý  sF   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z°1°#£Õ7rC   c                 óª   — t        ||«      }|j                  dg|¬«      }t        j                  |d¬«      }t	        ||j                  dg«      «       y ©Nr   r   rÐ   rÕ   rÍ   s        rA   Útest_binary_erosion04z+TestNdimageMorphology.test_binary_erosion04  sH   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z°1°#£Õ7rC   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y )Nr)   r   r¶   rÕ   rÍ   s        rA   Útest_binary_erosion05z+TestNdimageMorphology.test_binary_erosion05  sE   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²)Ó'<Õ=rC   c                 ó¬   — t        ||«      }|j                  dg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢«      «       y ©Nr)   r   r   rÐ   r²   rÕ   rÍ   s        rA   Útest_binary_erosion06z+TestNdimageMorphology.test_binary_erosion06  sG   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²)Ó'<Õ=rC   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y )Nr-   r   r½   rÕ   rÍ   s        rA   Útest_binary_erosion07z+TestNdimageMorphology.test_binary_erosion07  sE   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 ó¬   — t        ||«      }|j                  dg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢«      «       y )Nr-   r   r   rÐ   r¾   rÕ   rÍ   s        rA   Útest_binary_erosion08z+TestNdimageMorphology.test_binary_erosion08   sG   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óÄ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr-   r   r   r"   ©r   r   r   r   r   ©r]   rŠ   r8   r   rÌ   r	   rÍ   s        rA   Útest_binary_erosion09z+TestNdimageMorphology.test_binary_erosion09'  sN   € ä�w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óÈ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |d¬«      }t        ||j                  g d¢«      «       y )Nr-   r   r   r"   r   rÐ   )r   r   r   r   r   rå   rÍ   s        rA   Útest_binary_erosion10z+TestNdimageMorphology.test_binary_erosion10/  sP   € ä�w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )	Nr-   r   r   r"   ©r   r   r   r   rÐ   ©r   r   r   r   r   rå   ©r;   r   r<   r=   r¯   r>   s         rA   Útest_binary_erosion11z+TestNdimageMorphology.test_binary_erosion117  s`   € ä�w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×$Ñ$ T¨6ÀÔBˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||dd¬«      }t        ||j                  g d	¢«      «       y )
Nr-   r   r   r"   rê   r   éÿÿÿÿ©rÑ   Úorigin©r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion12z+TestNdimageMorphology.test_binary_erosion12@  sb   € ä�w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×$Ñ$ T¨6ÀÈ"ÔMˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||dd¬«      }t        ||j                  g d¢«      «       y )	Nr-   r   r   r"   rê   r   rð   ©r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion13z+TestNdimageMorphology.test_binary_erosion13I  sb   € ä�w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×$Ñ$ T¨6ÀÈ!ÔLˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  ddg«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )Nr-   r   r   r"   r   rÐ   )r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion14z+TestNdimageMorphology.test_binary_erosion14R  sd   € ä�w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘˜Q ˜FÓ#ˆÜ×$Ñ$ T¨6ÀÔBˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  ddg«      }t        j                  ||dd¬«      }t        ||j                  g d¢«      «       y )	Nr-   r   r   r"   r   rï   rð   )r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion15z+TestNdimageMorphology.test_binary_erosion15[  sf   € ä�w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘˜Q ˜FÓ#ˆÜ×$Ñ$ T¨6ÀÈ"ÔMˆÜ! # r§z¡z²/Ó'BÕCrC   c                 ó®   — t        ||«      }|j                  ddg|¬«      }t        j                  |d¬«      }t	        ||j                  dgg«      «       y rØ   rÕ   rÍ   s        rA   Útest_binary_erosion16z+TestNdimageMorphology.test_binary_erosion16d  sM   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z°A°3°%Ó'8Õ9rC   c                 óª   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  dgg«      «       y rÔ   rÕ   rÍ   s        rA   Útest_binary_erosion17z+TestNdimageMorphology.test_binary_erosion17k  sK   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z°A°3°%Ó'8Õ9rC   c                 ó¬   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g«      «       y )Nr   r)   r   ©r   r   r   rÕ   rÍ   s        rA   Útest_binary_erosion18z+TestNdimageMorphology.test_binary_erosion18r  sI   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²9°+Ó'>Õ?rC   c                 ó°   — t        ||«      }|j                  ddg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢g«      «       y )Nr   r)   r   rÐ   r²   rÕ   rÍ   s        rA   Útest_binary_erosion19z+TestNdimageMorphology.test_binary_erosion19y  sK   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²9°+Ó'>Õ?rC   c           	      ó¸   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g d¢g d¢g«      «       y )Nr)   r   r   r¶   rÕ   rÍ   s        rA   Útest_binary_erosion20z+TestNdimageMorphology.test_binary_erosion20€  sW   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@rC   c           	      ó¼   — t        ||«      }|j                  ddg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢g d¢g d¢g«      «       y rÝ   rÕ   rÍ   s        rA   Útest_binary_erosion21z+TestNdimageMorphology.test_binary_erosion21‰  sY   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@rC   c                 ó  — t        ||«      }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|¬«      }t        j                  |d¬«      }t	        ||«       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   ©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Ð   ©r7   r8   r   rÌ   r	   ©r;   r   r<   r@   r=   r>   s         rA   Útest_binary_erosion22z+TestNdimageMorphology.test_binary_erosion22’  s’   € ä˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¸Ô:ˆÜ! # xÕ0rC   c                 ó^  — t        ||«      }t        j                  dd«      }|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|¬
«      }t        j                  ||d¬«      }t        ||«       y )Nr"   r	  r  r  r  r  r  r  r  r   r   rÐ   )r7   r   r­   r8   rÌ   r	   ©r;   r   r<   r¯   r@   r=   r>   s          rA   Útest_binary_erosion23z+TestNdimageMorphology.test_binary_erosion23©  s´   € ä˜˜EÓ"ˆÜ×2Ñ2°1°aÓ8ˆØ—‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀÔBˆÜ! # xÕ0rC   c                 ó>  — t        ||«      }|j                  ddgddgg«      }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|¬«      }t        j                  ||d¬«      }t	        ||«       y )Nr   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          rA   Útest_binary_erosion24z+TestNdimageMorphology.test_binary_erosion24Â  s´   € ä˜˜EÓ"ˆØ—‘˜a ˜VØ ˜Vð%ó &ˆâ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀÔBˆÜ! # xÕ0rC   c                 óH  — t        ||«      }g d¢g d¢g d¢g}|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|¬«      }t        j                  ||d¬«      }t	        ||«       y )Nr¶   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          rA   Útest_binary_erosion25z+TestNdimageMorphology.test_binary_erosion25Û  s´   € ä˜˜EÓ"ˆÚÚÚðˆð —‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀÔBˆÜ! # xÕ0rC   c                 óJ  — t        ||«      }g d¢g d¢g d¢g}|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|¬«      }t        j                  ||dd¬«      }t	        ||«       y )Nr¶   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          rA   Útest_binary_erosion26z+TestNdimageMorphology.test_binary_erosion26ö  s¹   € ä˜˜EÓ"ˆÚÚÚðˆð —‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀØ,4ô6ˆä! # xÕ0rC   c           
      ó˜  — t        |«      rt        j                  d«       g d¢g d¢g d¢g}|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                  |«      }t        j                  ||d	d
¬«      }t        ||«       y ©Nú5CuPy: NotImplementedError: only brute_force iterationr¶   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Ñ   Ú
iterations©	r   rp   rq   r8   r]   rÁ   r   rÌ   r	   ©r;   r<   r¯   r@   r=   r>   s         rA   Útest_binary_erosion27z+TestNdimageMorphology.test_binary_erosion27  sÂ   € Ü�2Œ;Ü�L‰LÐPÔQâÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6ÀØ01ô3ˆä! # xÕ0rC   z)inplace out= arguments are numpy-specificc           
      óü  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||dd	|¬
«       t        ||«       y )Nr¶   r²   r+  r,  r   r-  r.  r   r"   ©rÑ   r0  Úoutput©r8   r]   rÁ   rY   rZ   r   rÌ   r	   r2  s         rA   Útest_binary_erosion28z+TestNdimageMorphology.test_binary_erosion28.  sá   € ò ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°Cõ	9ä! # xÕ0rC   c           
      ó˜  — t        |«      rt        j                  d«       g d¢g d¢g d¢g}|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                  |«      }t        j                  ||d
d¬«      }t        ||«       y )Nr*  r¶   r²   r+  r,  r-  r.  ©r   r   r   r   r   r   r   r   r   r)   r/  r1  r2  s         rA   Útest_binary_erosion29z+TestNdimageMorphology.test_binary_erosion29M  óÃ   € Ü�2Œ;Ü�L‰LÐPÔQâÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6Ø23ÀôCˆä! # xÕ0rC   c           
      óˆ  — t        |«      rt        j                  d«       g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t	        j                  |t
        ¬«      }|j                  |«      }t	        j                  g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt
        ¬«      }|j                  |«      }t	        j                  |j                  t
        ¬«      }|j                  |«      }t        j                  ||d
d|¬«       t        ||«       t        j                  ||d
d|¬«       t        ||«       y )Nr*  r¶   r²   r+  r,  r   r-  r.  r:  r   r)   r5  )r   rp   rq   r8   r]   rÁ   rY   rZ   r   rÌ   r	   r2  s         rA   Útest_binary_erosion30z+TestNdimageMorphology.test_binary_erosion30i  s  € ô �2Œ;Ü�L‰LÐPÔQâÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°Cõ	9ä! # xÔ0ô 	×Ñ˜t V¸!Ø*+°Dõ	:ä! $¨Õ1rC   c           
      óþ  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d	¢g d
¢g d¢g d¢g d¢g d
¢g d	¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||dd|d¬«       t        ||«       y )Nr¶   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Ñ   r0  r6  rñ   r7  r2  s         rA   Útest_binary_erosion31z+TestNdimageMorphology.test_binary_erosion31�  sä   € ò ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°CÀõ	Jä! # xÕ0rC   c           
      ó˜  — t        |«      rt        j                  d«       g d¢g d¢g d¢g}|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                  |«      }t        j                  ||d	d
¬«      }t        ||«       y r)  r1  r2  s         rA   Útest_binary_erosion32z+TestNdimageMorphology.test_binary_erosion32¯  r<  rC   c           
      óê  — t        |«      rt        j                  d«       g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|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                  |«      }t        j                  ||d|d¬«      }t        ||«       y )Nr*  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Ñ   Úmaskr0  r1  ©r;   r<   r¯   r@   rJ  r=   r>   s          rA   Útest_binary_erosion33z+TestNdimageMorphology.test_binary_erosion33Ë  sñ   € Ü�2Œ;Ü�L‰LÐPÔQâÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÚ%Ú%Ú%Ú%Ú%Ú%Ú%ð'ˆð �z‰z˜$ÓˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6Ø23¸$È2ôOˆä! # xÕ0rC   c           
      ó¨  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|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                  |«      }t        j                  ||d	|¬
«      }t        ||«       y )Nr¶   r²   r+  r,  r.  r-  ©r   r   r   r   r   r   r   r   r   )rÑ   rJ  )r8   r]   rÁ   r   rÌ   r	   rK  s          rA   Útest_binary_erosion34z+TestNdimageMorphology.test_binary_erosion34ï  sÛ   € ÚÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÚ%Ú%Ú%Ú%Ú%Ú%Ú%ð'ˆð �z‰z˜$ÓˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6Ø23¸$ô@ˆä! # xÕ0rC   c           
      ó  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d¢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 d¢g}t        j                   |t        ¬«      }|j                  |«      }|j                  ||«      }|j                  ||j	                  |«      «      }|j                  ||«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||dd|d|¬«       t        ||«       y )Nr¶   r²   r+  r-  rN  r   r,  r.  r:  r@  rA  rB  rC  r   r&  )rÑ   r0  r6  rñ   rJ  )r8   r]   rÁ   Úlogical_andÚlogical_notÚ
logical_orrY   rZ   r   rÌ   r	   )r;   r<   r¯   rJ  r=   Útmpr@   r>   s           rA   Útest_binary_erosion35z+TestNdimageMorphology.test_binary_erosion35  s\  € ò ÚÚðˆð —‘˜FÓ#ˆÚ%Ú%Ú%Ú%Ú%Ú%Ú%ð'ˆô �z‰z˜$¤dÔ+ˆØ�z‰z˜$ÓˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÚ$Ú$Ú$Ú$Ú$Ú$Ú$ð&ˆô �j‰j˜¤DÔ)ˆØ�j‰j˜‹oˆØ—>‘> # tÓ,ˆØ�n‰n˜T 2§>¡>°$Ó#7Ó8ˆØ—=‘= ¨3Ó/ˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°CØ&.°Tõ	;ô 	" # xÕ0rC   c                 óò  — t        |«      rt        j                  d«       g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢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¢g d¢g}t	        j                  |t
        ¬«      }|j                  |«      }t	        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt
        ¬«      }|j                  |«      }|j                  ||«      }|j                  ||j                  |«      «      }|j                  ||«      }t        j                  |||dd¬«      }t        ||«       y )Nr*  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&  )rJ  rÑ   rñ   )r   rp   rq   r8   r]   rÁ   rQ  rR  rS  r   rÌ   r	   )r;   r<   r¯   rJ  rT  r=   r@   r>   s           rA   Útest_binary_erosion36z+TestNdimageMorphology.test_binary_erosion36<  sT  € Ü�2Œ;Ü�L‰LÐPÔQâÚÚðˆð —‘˜FÓ#ˆÚ(Ú(Ú(Ú(Ú(Ú(Ú(Ú(ð*ˆô �z‰z˜$¤dÔ+ˆØ�z‰z˜$ÓˆÚ'Ú'Ú'Ú'Ú'Ú'Ú'Ú'ð)ˆô �j‰j˜¤DÔ)ˆØ�j‰j˜‹oˆÜ�z‰zÒ3Ú4Ú4Ú4Ú4Ú4Ú4Ú4ð6ô >BôCˆð �z‰z˜$ÓˆØ—>‘> # tÓ,ˆØ�n‰n˜T 2§>¡>°$Ó#7Ó8ˆØ—=‘= ¨3Ó/ˆÜ×$Ñ$ T¨6¸Ø23¸HôFˆä! # xÕ0rC   c                 ó  — t        j                  g d¢g d¢g d¢gt        ¬«      }|j                  |«      }|j                  |«      }t	        j
                  |||ddd¬«      }||u sJ ‚t        t	        j
                  ||dd¬«      |«       y )Nrê   r¶   r   r   T)Ú	structurer6  r0  rÑ   Úbrute_force)rZ  r0  rÑ   )r]   r8   rÁ   Ú
zeros_liker   rÌ   r   )r;   r<   ÚaÚbr>   s        rA   Útest_binary_erosion37z+TestNdimageMorphology.test_binary_erosion37h  sŠ   € ô �J‰Jš	Ú!Ú!ð#ä*.ô0ˆð �J‰J�q‹MˆØ�M‰M˜!ÓˆÜ×$Ñ$ Q°!¸AÈ!Ø26ÀDôJˆà�a‰xˆˆxÜÜ×"Ñ" 1°¸aØ04ô6àõ	rC   c                 óè   — t        j                  g d¢g d¢g d¢gt        ¬«      }|j                  |«      }d}t        t        «      5  t        j                  ||¬«      }d d d «       y # 1 sw Y   y xY w)Nrê   r¶   r   g       @©r0  )r]   r8   rÁ   rr   Ú	TypeErrorr   rÌ   )r;   r<   r=   r0  Ú_s        rA   Útest_binary_erosion38z+TestNdimageMorphology.test_binary_erosion38y  sh   € Ü�z‰zš9Ú$Ú$ð&ä-1ô3ˆð �z‰z˜$ÓˆØˆ
Üœ9Ó%ñ 	DÜ×&Ñ& t¸
ÔCˆA÷	D÷ 	Dñ 	Dús   ÁA(Á(A1c           
      ó  — t        j                  d«      }g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |t        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j
                  t        ¬«      }|j                  |«      }t        j                  ||d
||¬«       t        ||«       y ©Nr)   r¶   r²   r+  r,  r   r-  r.  r:  r   r5  )	r]   r^   r8   rÁ   rY   rZ   r   rÌ   r	   ©r;   r<   r0  r¯   r@   r=   r>   s          rA   Útest_binary_erosion39z+TestNdimageMorphology.test_binary_erosion39‚  sñ   € ô —X‘X˜a“[ˆ
ÚÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜h¬d�:Ó3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*4¸Sõ	Bä! # xÕ0rC   c           
      ó&  — t        j                  d«      }g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                  |t        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j
                  t        ¬«      }|j                  |«      }t        j                  ||d
||¬«       t        ||«       y rf  )	r]   Úint64r8   rÁ   rY   rZ   r   rÌ   r	   rg  s          rA   Útest_binary_erosion40z+TestNdimageMorphology.test_binary_erosion40¢  sï   € ô —X‘X˜a“[ˆ
ÚÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*4¸Sõ	Bä! # xÕ0rC   c                 ó°   — t        ||«      }|j                  g |¬«      }t        j                  |«      }||j	                  d|j
                  ¬«      k(  sJ ‚y rÊ   )r7   rŠ   r   Úbinary_dilationr8   r   rÍ   s        rA   Útest_binary_dilation01z,TestNdimageMorphology.test_binary_dilation01Â  sO   € ä˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×%Ñ% dÓ+ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4rC   c                 ó˜   — t        ||«      }|j                  g |¬«      }t        j                  |«      }||j	                  d«      k(  sJ ‚y )Nr   F)r7   rY   r   rm  r8   rÍ   s        rA   Útest_binary_dilation02z,TestNdimageMorphology.test_binary_dilation02É  sG   € ä˜˜EÓ"ˆØ�x‰x˜ %ˆxÓ(ˆÜ×%Ñ% dÓ+ˆØ�b—j‘j Ó'Ò'Ð'Ñ'rC   c                 ó¾   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  dg|j                  ¬«      «       y ©Nr   r   )r7   rŠ   r   rm  r	   r8   r   rÍ   s        rA   Útest_binary_dilation03z,TestNdimageMorphology.test_binary_dilation03Ð  sO   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°1°#¸S¿Y¹Y zÓ'GÕHrC   c                 ó¦   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  dg«      «       y rÔ   ©r7   rY   r   rm  r	   r8   rÍ   s        rA   Útest_binary_dilation04z,TestNdimageMorphology.test_binary_dilation04×  sF   € ä˜˜EÓ"ˆØ�x‰x˜˜ 5ˆxÓ)ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°1°#£Õ7rC   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y ©Nr)   r   r²   ©r7   rŠ   r   rm  r	   r8   rÍ   s        rA   Útest_binary_dilation05z,TestNdimageMorphology.test_binary_dilation05Þ  sE   € ä˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²)Ó'<Õ=rC   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y )Nr)   r   r   ru  rÍ   s        rA   Útest_binary_dilation06z,TestNdimageMorphology.test_binary_dilation06å  sE   € ä˜˜EÓ"ˆØ�x‰x˜˜ 5ˆxÓ)ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²)Ó'<Õ=rC   c                 óÄ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr)   r   r   r²   ©r]   rY   r8   r   rm  r	   rÍ   s        rA   Útest_binary_dilation07z,TestNdimageMorphology.test_binary_dilation07ì  sN   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²)Ó'<Õ=rC   c                 óÎ   — t        j                  dg|¬«      }d|d<   d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr-   r   r   r)   r¾   r~  rÍ   s        rA   Útest_binary_dilation08z,TestNdimageMorphology.test_binary_dilation08ô  sW   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰ØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óÄ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr-   r   r   ©r   r   r   r   r   r~  rÍ   s        rA   Útest_binary_dilation09z,TestNdimageMorphology.test_binary_dilation09ý  sN   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óÈ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |d¬«      }t        ||j                  g d¢«      «       y )Nr-   r   r   rï   ©rñ   r½   r~  rÍ   s        rA   Útest_binary_dilation10z,TestNdimageMorphology.test_binary_dilation10  sP   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% d°2Ô6ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óÈ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |d¬«      }t        ||j                  g d¢«      «       y )Nr-   r   r   r†  ©r   r   r   r   r   r~  rÍ   s        rA   Útest_binary_dilation11z,TestNdimageMorphology.test_binary_dilation11  sP   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% d°1Ô5ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óì   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||«      }t        ||j                  g d¢«      «       y )Nr-   r   r   rê   )r   r   r   r   r   r~  rì   s         rA   Útest_binary_dilation12z,TestNdimageMorphology.test_binary_dilation12  s^   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨FÓ3ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )Nr-   r   r   rê   rÐ   rë   r~  rì   s         rA   Útest_binary_dilation13z,TestNdimageMorphology.test_binary_dilation13  s`   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨FÀÔCˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )Nr-   r   r   rê   rï   r†  )r   r   r   r   r   r~  rì   s         rA   Útest_binary_dilation14z,TestNdimageMorphology.test_binary_dilation14'  s`   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨F¸2Ô>ˆÜ! # r§z¡z²/Ó'BÕCrC   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||dd¬«      }t        ||j                  g d¢«      «       y )Nr-   r   r   rê   rï   ©rñ   rÑ   rõ   r~  rì   s         rA   Útest_binary_dilation15z,TestNdimageMorphology.test_binary_dilation150  sf   € ä�x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨FØ-/¸aôAˆä! # r§z¡z²/Ó'BÕCrC   c                 óª   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  dgg«      «       y rr  ry  rÍ   s        rA   Útest_binary_dilation16z,TestNdimageMorphology.test_binary_dilation16:  sK   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°A°3°%Ó'8Õ9rC   c                 óª   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  dgg«      «       y rÔ   ru  rÍ   s        rA   Útest_binary_dilation17z,TestNdimageMorphology.test_binary_dilation17A  sK   € ä˜˜EÓ"ˆØ�x‰x˜˜A˜ eˆxÓ,ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°A°3°%Ó'8Õ9rC   c                 ó¬   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g«      «       y )Nr   r)   r   r²   ry  rÍ   s        rA   Útest_binary_dilation18z,TestNdimageMorphology.test_binary_dilation18H  sI   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²9°+Ó'>Õ?rC   c           	      ó¸   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g d¢g d¢g«      «       y rx  ry  rÍ   s        rA   Útest_binary_dilation19z,TestNdimageMorphology.test_binary_dilation19O  sW   € ä˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@rC   c           	      óÔ   — t        j                  ddg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢g d¢g d¢g«      «       y )Nr)   r   r   ©r   r   r¶   r²   r~  rÍ   s        rA   Útest_binary_dilation20z,TestNdimageMorphology.test_binary_dilation20X  s`   € ä�x‰x˜˜A˜ eÔ,ˆØˆˆT‰
Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@rC   c           	      ó$  — t        j                  dd«      }|j                  |«      }t        j                  ddg|¬«      }d|d<   |j                  |«      }t        j
                  ||«      }t        ||j                  g d¢g d¢g d¢g«      «       y )Nr"   r)   r   r   r�  r²   )r   r­   r8   r]   rY   rm  r	   )r;   r   r<   r¯   r=   r>   s         rA   Útest_binary_dilation21z,TestNdimageMorphology.test_binary_dilation21b  s‚   € ä×2Ñ2°1°aÓ8ˆØ—‘˜FÓ#ˆÜ�x‰x˜˜A˜ eÔ,ˆØˆˆT‰
Ø�z‰z˜$ÓˆÜ×%Ñ% d¨FÓ3ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@rC   c                 ó
  — t        ||«      }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|¬«      }t        j                  |«      }t	        ||«       y )Nr  ©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   ©r7   r8   r   rm  r	   r  s         rA   Útest_binary_dilation22z,TestNdimageMorphology.test_binary_dilation22n  s�   € ä˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% dÓ+ˆÜ! # xÕ0rC   c                 ó  — t        ||«      }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|¬«      }t        j                  |d¬«      }t	        ||«       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   r	  r  r
  r  r  r   r   rÐ   r¥  r  s         rA   Útest_binary_dilation23z,TestNdimageMorphology.test_binary_dilation23…  s’   € ä˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d¸Ô;ˆÜ! # xÕ0rC   c                 ó  — t        ||«      }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|¬«      }t        j                  |d¬«      }t	        ||«       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  s         rA   Útest_binary_dilation24z,TestNdimageMorphology.test_binary_dilation24œ  s’   € ä˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d°6Ô:ˆÜ! # xÕ0rC   c                 ó  — t        ||«      }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|¬«      }t        j                  |dd¬«      }t	        ||«       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  s         rA   Útest_binary_dilation25z,TestNdimageMorphology.test_binary_dilation25³  s”   € ä˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d°6ÈÔJˆÜ! # xÕ0rC   c                 óZ  — t        ||«      }t        j                  dd«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g|¬«      }t        j                  ||«      }t        ||«       y )Nr"   r¢  )r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r  r	  r  r
  r  r  r   )r7   r   r­   r8   rm  r	   r  s          rA   Útest_binary_dilation26z,TestNdimageMorphology.test_binary_dilation26Ê  s²   € ä˜˜EÓ"ˆÜ×2Ñ2°1°aÓ8ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d¨FÓ3ˆÜ! # xÕ0rC   c                 ó>  — t        ||«      }ddgddgg}g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d	¢g}|j                  |«      }|j                  |«      }|j                  g d	¢g d¢g d	¢g d¢g d
¢g d¢g d	¢g d	¢g|¬«      }t        j                  ||«      }t	        ||«       y )Nr   r   r  r«  r
  r  r  ©r   r   r   r   r   r   r   r   r	  r  r  r   r¥  r  s          rA   Útest_binary_dilation27z,TestNdimageMorphology.test_binary_dilation27ã  sµ   € ä˜˜EÓ"ˆØ�a�&Ø�a�&ðˆâ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d¨FÓ3ˆÜ! # xÕ0rC   c                 óÞ   — t        ||«      }g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d¢g|¬«      }t        j                  |d¬«      }t	        ||«       y )N)r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   rÐ   r¥  r  s         rA   Útest_binary_dilation28z,TestNdimageMorphology.test_binary_dilation28ý  sw   € ä˜˜EÓ"ˆÚ Ú Ú Ú ð"ˆð —:‘:˜hÓ'ˆØ�z‰zš<Ú'Ú'Ú'ð)ð 16ð ó 7ˆô ×%Ñ% d¸Ô;ˆÜ! # xÕ0rC   c                 óx  — t        |«      rt        j                  d«       ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t	        j                  g d¢g d¢g d¢g d¢g d¢gt
        ¬«      }|j                  |«      }t        j                  ||d	¬
«      }t        ||«       y )Nr*  r   r   rä   ©r   r   r   r   r   ©r   r   r   r   r   r½   r   r"   ra  ©	r   rp   rq   r8   r]   rÁ   r   rm  r	   r2  s         rA   Útest_binary_dilation29z,TestNdimageMorphology.test_binary_dilation29  ó³   € Ü�2Œ;Ü�L‰LÐPÔQà�a�&Ø�a�&ðˆâ#Ú#Ú#Ú#Ú#ð	%ˆð
 —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆÜ�z‰zš?Ú*Ú*Ú*Ú*ð	,ô 48ô	9ˆð
 �z‰z˜$ÓˆÜ×%Ñ% d¨F¸qÔAˆÜ! # xÕ0rC   z!output= arrays are numpy-specificc                 óÞ  — t        |«      rt        j                  d«       ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||d	|¬
«       t        ||«       y )Nr*  r   r   rä   r¼  r½  r½   r   r"   ©r0  r6  )r   rp   rq   r8   rÁ   r]   rY   rZ   r   rm  r	   r2  s         rA   Útest_binary_dilation30z,TestNdimageMorphology.test_binary_dilation30"  sÙ   € ä�2Œ;Ü�L‰LÐPÔQØ�a�&Ø�a�&ðˆâ#Ú#Ú#Ú#Ú#ð	%ˆð
 —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zš?Ú*Ú*Ú*Ú*ð	,ô 48ð	 ó 9ˆð
 �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ  f¸À3ÕGÜ! # xÕ0rC   c                 óx  — t        |«      rt        j                  d«       ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t	        j                  g d¢g d¢g d¢g d¢g d¢gt
        ¬	«      }|j                  |«      }t        j                  ||d
¬«      }t        ||«       y )Nr*  r   r   r¼  r½  r½   ©r   r   r   r   r   rä   r   r)   ra  r¾  r2  s         rA   Útest_binary_dilation31z,TestNdimageMorphology.test_binary_dilation31:  rÀ  rC   c                 óæ  — t        |«      rt        j                  d«       ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t	        j                  g d¢g d¢g d¢g d¢g d¢gt
        ¬	«      }|j                  |«      }t	        j                  |j                  t
        ¬	«      }|j                  |«      }t        j                  ||d
|¬«       t        ||«       y )Nr*  r   r   r¼  r½  r½   rÅ  rä   r   r)   rÂ  ©r   rp   rq   r8   r]   rÁ   rY   rZ   r   rm  r	   r2  s         rA   Útest_binary_dilation32z,TestNdimageMorphology.test_binary_dilation32P  sÔ   € ä�2Œ;Ü�L‰LÐPÔQà�a�&Ø�a�&ðˆâ#Ú#Ú#Ú#Ú#ð	%ˆð
 —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆÜ�z‰zš?Ú*Ú*Ú*Ú*ð	,ô 48ô	9ˆð
 �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ  f¸À3ÕGÜ! # xÕ0rC   c                 ó`  — t        |«      rt        j                  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                  |«      }t	        j                  g d¢g d¢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¢g d¢gt
        ¬	«      }|j                  |«      }t        j                  ||d|d¬«      }t        ||«       y )Nr*  r¶   r²   r  r	  ©r   r   r   r   r   r   r   r   rW  r·  r   ©r   r   r   r   r   r   r   r   rï   r   ©r0  rJ  rÑ   r¾  rK  s          rA   Útest_binary_dilation33z,TestNdimageMorphology.test_binary_dilation33i  s#  € Ü�2Œ;Ü�L‰LÐPÔQÚÚÚðˆð —‘˜FÓ#ˆÜ—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$Óˆä×%Ñ% d¨F¸rØ+/¸aôAˆä! # xÕ0rC   z)inplace output= arrays are numpy-specificc                 óð  — t        |«      rt        j                  d«       g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢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 d¢g d¢gt
        ¬«      }|j                  |«      }t	        j                  |j                  t
        ¬«      }|j                  |«      }t        j                  ||d|d¬«      }t        ||«       y )Nr*  r¶   r²   r  ©r   r   r   r   r   r   r   r   r$  r	  r
  r  r  r   rï   r   rÍ  rÈ  rK  s          rA   Útest_binary_dilation34z,TestNdimageMorphology.test_binary_dilation34�  sã   € ô �2Œ;Ü�L‰LÐPÔQâÚÚðˆð —‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆô �z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�x‰x˜Ÿ
™
¬$Ô/ˆØ�z‰z˜$ÓˆÜ×%Ñ% d¨F¸rØ+/¸aôAˆä! # xÕ0rC   c                 ó¢  — t        ||«      }g d¢g d¢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 d¢g d¢g«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                  |t        ¬«      }t        j                  ||«      }t        j                  |t        j
                  |«      «      }t        j                  ||«      }|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  ||dd¬«      }t        ||«       y )Nr®  r¯  r  r°  r¨  r±  r	  r  r
  r  r  r  r   r�  r   )rJ  rñ   rÑ   )
r7   r]   r8   rÁ   rQ  rR  rS  r   rm  r	   )r;   r   r<   rT  r=   rJ  r@   r>   s           rA   Útest_binary_dilation35z,TestNdimageMorphology.test_binary_dilation35²  s?  € ä˜˜EÓ"ˆÚ'Ú'Ú'Ú'Ú'Ú'Ú'Ú'ð)ˆô �z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ó 6ˆò )Ú(Ú(Ú(Ú(Ú(Ú(Ú(ð*ˆô �z‰z˜$¤dÔ+ˆä—>‘> # tÓ,ˆÜ�n‰n˜T¤2§>¡>°$Ó#7Ó8ˆÜ—=‘= ¨3Ó/ˆà�z‰z˜$ÓˆØ—:‘:˜hÓ'ˆà�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d°Ø-3À!ôEˆä! # xÕ0rC   c                 ó¶   — t        j                  g t        ¬«      }|j                  |«      }t	        j
                  |d¬«      }||j                  d«      k(  sJ ‚y )Nr   rï   ra  F)r]   rY   rÁ   r8   r   rm  )r;   r<   r=   r>   s       rA   Útest_binary_dilation36z,TestNdimageMorphology.test_binary_dilation36ã  sI   € ä�x‰x˜¤$Ô'ˆØ�z‰z˜$ÓˆÜ×%Ñ% d°rÔ:ˆØ�b—j‘j Ó'Ò'Ð'Ñ'rC   c                 ó  — 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                  |«      }t        j                   g d¢g d¢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¢g d¢gt        ¬«      }|j                  |«      }t        j                  |||d
¬«      }t        ||«       y )Nr¶   r²   r  r	  rË  rW  r·  r   rÌ  r   ©rJ  rÑ   )r8   r]   rÁ   r   Úbinary_propagationr	   rK  s          rA   Útest_binary_propagation01z/TestNdimageMorphology.test_binary_propagation01ê  s  € ÚÚÚðˆð —‘˜FÓ#ˆÜ—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ×(Ñ(¨¨vØ.2ÀôDˆä! # xÕ0rC   c                 óÐ  — g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d	¢g d¢g d¢gt        ¬
«      }|j                  |«      }t        j                  |j                  t        ¬
«      }|j                  |«      }t        j                  |||d¬«      }t        ||«       y )Nr¶   r²   r  rÐ  r$  r	  r
  r  r  r   r   r×  )r8   r]   rÁ   rY   rZ   r   rØ  r	   rK  s          rA   Útest_binary_propagation02z/TestNdimageMorphology.test_binary_propagation02  sÙ   € ÚÚÚðˆò -Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ—‘˜FÓ#ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�x‰x˜Ÿ
™
¬$Ô/ˆØ�z‰z˜$ÓˆÜ×(Ñ(¨¨vØ.2ÀôDˆä! # xÕ0rC   c                 óä   — |j                  t        j                  g t        ¬«      «      }|j                  t        j                  g t        ¬«      «      }t	        j
                  |«      }||k(  sJ ‚y )Nr   )r8   r]   rY   rÁ   r   rØ  )r;   r<   r=   r@   r>   s        rA   Útest_binary_propagation03z/TestNdimageMorphology.test_binary_propagation03+  sP   € à�z‰zœ"Ÿ(™( 2¬TÔ2Ó3ˆØ—:‘:œbŸh™h r´Ô6Ó7ˆÜ×(Ñ(¨Ó.ˆØ�hŠÐ‰rC   c                 ó
  — t        ||«      }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|¬
«      }t        j                  |«      }t	        ||«       y )Nr  r¢  r£  ©r   r   r   r   r   r   r   r   r  r  r	  r¤  ©r   r   r   r   r   r   r   r   r   )r7   r8   r   Úbinary_openingr	   r  s         rA   Útest_binary_opening01z+TestNdimageMorphology.test_binary_opening012  ó�   € ä˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ TÓ*ˆÜ! # xÕ0rC   c                 óZ  — t        ||«      }t        j                  dd«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|¬	«      }t        j                  ||«      }t        ||«       y )
Nr"   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   )r7   r   r­   r8   rá  r	   r  s          rA   Útest_binary_opening02z+TestNdimageMorphology.test_binary_opening02I  ó²   € ä˜˜EÓ"ˆÜ×2Ñ2°1°aÓ8ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ—‘˜FÓ#ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6Ó2ˆÜ! # xÕ0rC   c                 ó
  — t        ||«      }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|¬«      }t        j                  |«      }t	        ||«       y )Nr	  rÐ  )r   r   r   r   r   r   r   r   r´  r  r  r  r  r¢  r£  r¤  rà  r   )r7   r8   r   Úbinary_closingr	   r  s         rA   Útest_binary_closing01z+TestNdimageMorphology.test_binary_closing01b  rã  rC   c                 óZ  — t        ||«      }t        j                  dd«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|¬	«      }t        j                  ||«      }t        ||«       y )
Nr"   r	  rÐ  r  r¢  rå  r´  ræ  r   )r7   r   r­   r8   rê  r	   r  s          rA   Útest_binary_closing02z+TestNdimageMorphology.test_binary_closing02y  rè  rC   c           
      óJ  — t        j                  g d¢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¢gt        ¬«      }|j                  |«      }t        j                  |«      }t        ||«       y )Nr	  r  r   r  ©r]   r8   rÁ   r   Úbinary_fill_holesr	   ©r;   r<   r@   r=   r>   s        rA   Útest_binary_fill_holes01z.TestNdimageMorphology.test_binary_fill_holes01’  s›   € Ü—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆä�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$Óˆä×'Ñ'¨Ó-ˆÜ! # xÕ0rC   c           
      óJ  — t        j                  g d¢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¢gt        ¬«      }|j                  |«      }t        j                  |«      }t        ||«       y )Nr	  r  r  r   r  rï  rñ  s        rA   Útest_binary_fill_holes02z.TestNdimageMorphology.test_binary_fill_holes02¨  ó›   € Ü—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ×'Ñ'¨Ó-ˆÜ! # xÕ0rC   c           
      óJ  — t        j                  g d¢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¢gt        ¬«      }|j                  |«      }t        j                  |«      }t        ||«       y )Nr	  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        rA   Útest_binary_fill_holes03z.TestNdimageMorphology.test_binary_fill_holes03¼  rõ  rC   )r   z2these filters do not yet have axes support in CuPyr   z.these filters are not implemented in JAX.numpyrÑ   r   r   rñ   )r   r   )rï   r   Úexpand_axis©r   r   r"   Ú	func_name)rÌ   rm  rá  rê  Úbinary_hit_or_missrØ  rð  c           
      ó  — t        j                  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¢gt        «      }|j                  |«      }|dk(  rt        ||¬	«      }nt        |¬
«      }|dv}	|	r||d<   n|dk7  rt	        j
                  d«       t        t        |«      }
 |
||fi |¤Ž}d}|j                  |g|z  |¬«      }|j                  |g|z  |¬«      }g d¢}|j                  |«       t        |«      st        |«      rA|j                  t        j                  |j                  t        «      «      } |
||f||dœ|¤Ž n |
||fd|i|¤Ž}t        ||«       y )Nr¶   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û  )Úorigin1Úorigin2r†  )rû  rð  rÑ   r   z-border_value !=0 unsupported by this functionr-   r‘   rù  ©r6  Úaxesr   )r]   r8   rÁ   Údictrp   Úskipr7   r   ÚstackÚremover   r   rY   rZ   r   )r;   r<   rú  rø  rñ   rÑ   r¯   r=   ÚkwargsÚborder_supportedÚfuncr@   Ún_repsr   r>   s                  rA   Útest_binary_axesz&TestNdimageMorphology.test_binary_axesÐ  sŒ  € ô  —‘šYÚ&Ú&ð(ä)-ó/ˆð —‘˜FÓ#ˆä�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô 48ó9ˆð �z‰z˜$ÓˆØÐ,Ò,Ü &°&Ô9‰Fä Ô(ˆFØ$ð -Bð BÐáØ%1ˆF�>Ò"Ø˜QÒÜ�K‰KÐGÔHÜ”w 	Ó*ˆÙ˜˜fÑ/¨Ñ/ˆð ˆØ—8‘8˜X˜J¨Ñ/°k�8ÓBˆØ�x‰x˜˜ ™¨kˆxÓ:ˆò ˆØ�‰�KÔ Ü�BŒ<œ7 2œ;Ø—*‘*œRŸX™X d§j¡j´$Ó7Ó8ˆCÙ��vÐ? c°Ñ?¸Ó?ñ �t˜VÑ9¨$Ð9°&Ñ9ˆCÜ˜˜XÕ&rC   c           	      óÜ   — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        ||j                  g d¢g d¢g d	¢g«      «       y )
N©r)   r"   r-   r   r#   ©r.   r+   rm   r)   r-   ©r-   r%   r)   r.   r   rê   ©r   r   r   ©Ú	footprint©r"   r"   r   r   r   ©r"   r)   r   r)   r   ©r-   r-   r)   r)   r   ©r8   r   Úgrey_erosionr	   ©r;   r<   Úarrayr  r6  s        rA   Útest_grey_erosion01z)TestNdimageMorphology.test_grey_erosion01
	  si   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×%Ñ% e°yÔAˆÜ! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	ArC   zoutput array is read-only.z(https://github.com/cupy/cupy/issues/8398c           	      óÞ   — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«       t        ||j                  g d¢g d¢g d	¢g«      «       y )
Nr  r  r  rê   r  )r  r6  r  r  r  r  )r;   r<   r  r  s       rA   Útest_grey_erosion01_overlapz1TestNdimageMorphology.test_grey_erosion01_overlap	  sj   € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×Ñ˜U¨iÀÕFÜ! %Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
rC   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  rê   r  r   ©r  rZ  r  r  r  r  ©r;   r<   r  r  rZ  r6  s         rA   Útest_grey_erosion02z)TestNdimageMorphology.test_grey_erosion02$	  ó€   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×%Ñ% e°yØ09ô;ˆä! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
rC   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  rê   r  r²   r  r‰  )r   r"   r   r"   r   )r#   r#   r"   r"   r   r  r  s         rA   Útest_grey_erosion03z)TestNdimageMorphology.test_grey_erosion032	  r  rC   c           	      óÜ   — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        ||j                  g d¢g d¢g d	¢g«      «       y )
Nr  r  r  rÅ   rê   r  ©r.   r.   rm   rm   r-   ©r.   rm   r%   rm   r.   ©r%   r%   r%   r.   r.   ©r8   r   Úgrey_dilationr	   r  s        rA   Útest_grey_dilation01z*TestNdimageMorphology.test_grey_dilation01@	  sh   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×&Ñ& u¸	ÔBˆÜ! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
rC   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  rÅ   rê   r   r  r#  r$  r%  r&  r  s         rA   Útest_grey_dilation02z*TestNdimageMorphology.test_grey_dilation02L	  s€   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×&Ñ& u¸	Ø1:ô<ˆä! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
rC   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  rÅ   rê   r²   r  )r%   r%   é
   r,  r+   )r%   r,  rm   r,  r%   )rm   rm   rm   r%   r%   r&  r  s         rA   Útest_grey_dilation03z*TestNdimageMorphology.test_grey_dilation03Z	  s�   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×&Ñ& u¸	Ø1:ô<ˆä! &Ø"$§*¡*Ò.?Ú.?Ú.=ð.?ó #@õ	
rC   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        j                  ||¬«      }t        j                  ||¬«      }t        ||«       y ©Nr  r  r  rê   r  r  ©r8   r   r  r'  Úgrey_openingr	   ©r;   r<   r  r  rT  r@   r6  s          rA   Útest_grey_opening01z)TestNdimageMorphology.test_grey_opening01h	  sr   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IÔ>ˆÜ×(Ñ(¨¸	ÔBˆÜ×%Ñ% e°yÔAˆÜ! &¨(Õ3rC   c                 ó<  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }t        j                  |||¬«      }t        ||«       y ©Nr  r  r  rê   r  r   r  r0  ©r;   r<   r  r  rZ  rT  r@   r6  s           rA   Útest_grey_opening02z)TestNdimageMorphology.test_grey_opening02r	  s”   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆä×(Ñ(¨¸	Ø3<ô>ˆä×%Ñ% e°yØ09ô;ˆä! &¨(Õ3rC   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        j                  ||¬«      }t        j                  ||¬«      }t        ||«       y r/  ©r8   r   r'  r  Úgrey_closingr	   r2  s          rA   Útest_grey_closing01z)TestNdimageMorphology.test_grey_closing01€	  sr   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×#Ñ# E°YÔ?ˆÜ×'Ñ'¨°yÔAˆÜ×%Ñ% e°yÔAˆÜ! (¨FÕ3rC   c                 ó<  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }t        j                  |||¬«      }t        ||«       y r5  r9  r6  s           rA   Útest_grey_closing02z)TestNdimageMorphology.test_grey_closing02Š	  s”   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×#Ñ# E°YØ.7ô9ˆä×'Ñ'¨°yØ2;ô=ˆä×%Ñ% e°yØ09ô;ˆä! (¨FÕ3rC   c                 ó–  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z
  }|j	                  |j
                  |j                  ¬«      }t        j                  ||||¬	«       t        ||«       y ©
Nr  r  r  rê   r  r   r  r   ©r  rZ  r6  )	r8   r   r'  r  rY   rZ   r   Úmorphological_gradientr	   ©	r;   r<   r  r  rZ  Útmp1Útmp2r@   r6  s	            rA   Útest_morphological_gradient01z3TestNdimageMorphology.test_morphological_gradient01˜	  s¸   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×&Ñ& u¸	Ø1:À6õ	Kä! (¨FÕ3rC   c                 óF  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z
  }t        j                  |||¬«      }t        ||«       y r5  )r8   r   r'  r  rA  r	   rB  s	            rA   Útest_morphological_gradient02z3TestNdimageMorphology.test_morphological_gradient02©	  sž   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;ˆÜ×/Ñ/°ÀØ:CôEˆä! (¨FÕ3rC   c                 ó¢  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z   d|z  z
  }|j	                  |j
                  |j                  ¬	«      }t        j                  ||||¬
«       t        ||«       y )Nr  r  r  rê   r  r   r  r"   r   r@  )	r8   r   r'  r  rY   rZ   r   Úmorphological_laplacer	   rB  s	            rA   Útest_morphological_laplace01z2TestNdimageMorphology.test_morphological_laplace01¸	  sÁ   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;  U¡Ñ*ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×%Ñ% e°yØ09À&õ	Jä! (¨FÕ3rC   c                 óR  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z   d|z  z
  }t        j                  |||¬«      }t        ||«       y )	Nr  r  r  rê   r  r   r  r"   )r8   r   r'  r  rI  r	   rB  s	            rA   Útest_morphological_laplace02z2TestNdimageMorphology.test_morphological_laplace02É	  s§   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;  U¡Ñ*ˆÜ×.Ñ.¨uÀ	Ø9BôDˆä! (¨FÕ3rC   c                 óf  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }|j                  |j                  |j
                  ¬«      }t        j                  ||||¬	«       t        ||«       y r?  )r8   r   r1  rY   rZ   r   Úwhite_tophatr	   r6  s           rA   Útest_white_tophat01z)TestNdimageMorphology.test_white_tophat01Ø	  s¡   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜3‘;ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×Ñ˜U¨iØ'0¸õ	Aä! (¨FÕ3rC   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }t        j                  |||¬«      }t	        ||«       y r5  )r8   r   r1  rN  r	   r6  s           rA   Útest_white_tophat02z)TestNdimageMorphology.test_white_tophat02ç	  s†   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜3‘;ˆÜ×%Ñ% e°yØ09ô;ˆä! (¨FÕ3rC   z	cupy#8399c           
      ó¦  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  dt        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d	¢g d
¢g d	¢g d¢gt        ¬«      }|j                  |«      }t	        j
                  ||¬«      }t        ||«       y )N©r   r   r   r   r   r   r   r.  ©r   r   r   r   r   r   r   rH  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  )r]   r8   rÁ   rŠ   r   rN  r   ©r;   r<   r  rZ  r@   r6  s         rA   Útest_white_tophat03z)TestNdimageMorphology.test_white_tophat03ô	  ó»   € ô —
‘
Ò1Ú1Ú1Ú1Ú1Ú1Ú1ð3ô ;?ô@ˆð —
‘
˜5Ó!ˆÜ—G‘G˜F¬$Ô/ˆ	Ø—J‘J˜yÓ)ˆ	Ü—:‘:Ò4Ú4Ú4Ú4Ú4Ú4Ú4ð6ô >BôCˆð —:‘:˜hÓ'ˆä×%Ñ% e°yÔAˆÜ˜ &Õ)rC   c                 ó  — t        j                  dt        ¬«      }t        j                  dt        ¬«      }|j	                  |«      }|j	                  |«      }|j                  ||j                  ¬«      }t        j                  |||¬«       y ©Nr-   r   r‡   )rZ  r6  )	r]   ÚeyerÁ   rŠ   r8   Ú
empty_liker[   r   rN  ©r;   r<   r  rZ  r6  s        rA   Útest_white_tophat04z)TestNdimageMorphology.test_white_tophat04
  sh   € ä—‘�q¤Ô%ˆÜ—G‘G˜F¬$Ô/ˆ	à—
‘
˜5Ó!ˆØ—J‘J˜yÓ)ˆ	ð —‘˜u¨B¯J©J�Ó7ˆÜ×Ñ˜U¨iÀÖGrC   c                 óf  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }|j                  |j                  |j
                  ¬«      }t        j                  ||||¬	«       t        ||«       y r?  )r8   r   r:  rY   rZ   r   Úblack_tophatr	   r6  s           rA   Útest_black_tophat01z)TestNdimageMorphology.test_black_tophat01
  s¡   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜‘;ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×Ñ˜U¨iØ'0¸õ	Aä! (¨FÕ3rC   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }t        j                  |||¬«      }t	        ||«       y r5  )r8   r   r:  r`  r	   r6  s           rA   Útest_black_tophat02z)TestNdimageMorphology.test_black_tophat02(
  s†   € Ø—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜‘;ˆÜ×%Ñ% e°yØ09ô;ˆä! (¨FÕ3rC   zcupy/cupy#8399c           
      ó¦  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  dt        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d¢g d	¢g d¢g d
¢gt        ¬«      }|j                  |«      }t	        j
                  ||¬«      }t        ||«       y )NrS  r.  rT  rH  r   r‡   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   rI  rU  )r]   r8   rÁ   rŠ   r   r`  r   rV  s         rA   Útest_black_tophat03z)TestNdimageMorphology.test_black_tophat035
  rX  rC   c                 ó  — |j                  t        j                  dt        ¬«      «      }|j                  t        j                  dt        ¬«      «      }|j                  ||j                  ¬«      }t        j                  |||¬«       y rZ  )	r8   r]   r[  rÁ   rŠ   r\  r[   r   r`  r]  s        rA   Útest_black_tophat04z)TestNdimageMorphology.test_black_tophat04N
  s^   € à—
‘
œ2Ÿ6™6 !¬4Ô0Ó1ˆØ—J‘JœrŸw™w v´TÔ:Ó;ˆ	ð —‘˜u¨B¯J©J�Ó7ˆÜ×Ñ˜U¨iÀÖGrC   Úmode)ÚreflectÚconstantÚnearestÚmirrorÚwrapÚfootprint_mode)Úsizer  rZ  )r  r'  r1  r:  rI  rA  rN  r`  c           
      ój  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        ||¬«      }|d	k(  rd
|d	<   n|j                  g d¢g d¢g«      |d<   |dk(  r|j                  |d   «      |d<   t        t        |«      }	 |	|fi |¤Ž}
d}|j                  |
g|z  |¬«      }
|j                  |g|z  |¬«      }g d¢}|j                  |«       t        |«      st        |«      r4|j                  |
j                  |
j                  ¬«      } |	|f||dœ|¤Ž n |	|fd|i|¤Ž}t        ||
«       y )Nr,  )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   rm   r)   r   r   r   )r   r   r   r"   r   r   r   )rñ   rh  ro  )r"   r)   rê   r  r  rZ  r-   r‘   rù  r   rÿ  r   )r8   r  Ú	ones_liker7   r   r  r  r   r   rY   rZ   r   r   )r;   r<   rú  rø  rñ   rn  rh  r=   r  r  r@   r  r   r>   s                 rA   Útest_grey_axesz$TestNdimageMorphology.test_grey_axesW
  sD  € ð, �z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ó 3ˆô ˜V¨$Ô/ˆØ˜VÒ#Ø#ˆF�6ŠNà"$§*¡*ªiºÐ-CÓ"DˆF�;ÑØ˜[Ò(Ø"$§,¡,¨v°kÑ/BÓ"CˆF�;ÑÜ”w 	Ó*ˆÙ˜Ñ' Ñ'ˆð ˆØ—8‘8˜X˜J¨Ñ/°k�8ÓBˆØ�x‰x˜˜ ™¨kˆxÓ:ˆò ˆØ�‰�KÔ ä�BŒ<œ7 2œ;Ø—(‘(˜8Ÿ>™>°·±�(Ó@ˆCÙ�Ð7˜c¨Ñ7°Ó7ñ �tÑ1 $Ð1¨&Ñ1ˆCÜ˜˜XÕ&rC   c                 ó  — t        |«      s t        |«      st        j                  d«       t	        ||«      }g d¢g d¢g d¢g}|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                  |j                  t        ¬«      «      }t        j                  |||¬«       t        ||«       y )Nú!inplace output= is numpy-specificr¶   r²   rä   )r   r   r   r   r   rƒ  rò   )r   r   r   r   r   r½   )r   r   r   r   r   r   ©r6  )r   r   rp   rq   r7   r8   r]   rY   rZ   rÁ   r   rû  r	   r  s          rA   Útest_hit_or_miss01z(TestNdimageMorphology.test_hit_or_miss01�
  sæ   € ä˜”¤¨¤Ü�L‰LÐ<Ô=ä˜˜EÓ"ˆÚÚÚðˆð —‘˜FÓ#ˆÚ#Ú#Ú#Ú#Ú#Ú#Ú#Ú#ð%ˆð —:‘:˜hÓ'ˆØ�z‰zš?Ú*Ú*Ú*Ú*Ú*Ú*Ú*ð,ð 49ð ó :ˆð �j‰jœŸ™ $§*¡*´DÔ9Ó:ˆÜ×"Ñ" 4¨¸Õ<Ü! (¨CÕ0rC   c                 ó  — t        ||«      }g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g|¬«      }t        j                  ||«      }t	        ||«       y )	Nr¶   r²   r	  r  ©r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r  r   ©r7   r8   r   rû  r	   r  s          rA   Útest_hit_or_miss02z(TestNdimageMorphology.test_hit_or_miss02®
  sš   € ä˜˜EÓ"ˆÚÚÚðˆò -Ú,Ú,Ú,ð.ˆð —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×(Ñ(¨¨vÓ6ˆÜ! (¨CÕ0rC   c                 ó~  — t        ||«      }g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  |||«      }t	        ||«       y )Nr   r²   r
  r	  r$  rx  r¢  r  r´  ræ  rß  r  r   ry  )r;   r   r<   Ústruct1Ústruct2r@   r=   r>   s           rA   Útest_hit_or_miss03z(TestNdimageMorphology.test_hit_or_miss03Á
  sÔ   € ä˜˜EÓ"ˆÚÚÚðˆò ÚÚðˆò -Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —*‘*˜WÓ%ˆØ—*‘*˜WÓ%ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×(Ñ(¨¨w¸Ó@ˆÜ! (¨CÕ0rC   N)”Ú__name__Ú
__module__Ú__qualname__r   rp   ÚmarkÚparametrizer   rB   rH   rM   r   re   rk   rn   rt   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  r8  r;  r>  rD  rF  rL  rO  rU  rX  r_  rd  rh  rk  rn  rp  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º  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  r7  r;  r=  rE  rG  rJ  rL  rO  rQ  rW  r^  ra  rc  re  rg  rr  rv  rz  r~  © rC   rA   r   r      s¶  „ á�vÐ&QÔRØ‡[�[×Ñ˜W eÓ,ñ.0ó -ó Sð.0ñ` �vÐ&QÔRØ‡[�[×Ñ˜W eÓ,ñ.0ó -ó Sð.0ñ` �vÐ&QÔRØ‡[�[×Ñ˜W eÓ,ñ.0ó -ó Sð.0ñ` ØÐKôð ‡[�[×Ñ˜W eÓ,ñ0/ó -óð0/ñd �vÐ&QÔRØ‡[�[×Ñ˜W eÓ,ñ-0ó -ó Sð-0ñ^ �vÐ&QÔRØ‡[�[×Ñ˜W eÓ,ñ-0ó -ó Sð-0ò^ð& ‡[�[×Ñ˜W eÓ,ñ'0ó -ð'0ðR ‡[�[×Ñ˜W eÓ,ñ&0ó -ð&0ñP ØÐIôð ‡[�[×Ñ˜W eÓ,ñ//ó -óð//ñb ØÐRôñóðð( ‡[�[×Ñ˜W eÓ,ñ%ó -ð%ð* ‡[�[×Ñ˜W eÓ,ñ*ó -ð*ñ< ØÐDôð ‡[�[×Ñ˜W eÓ,ñ:/ó -óð:/ðx ‡[�[×Ñ˜W eÓ,ñ,ó -ð,ð$ ‡[�[×Ñ˜W eÓ,ñ,ó -ð,ò$-ñ
 ØÐRôñóðò(ò5ò7ò7ò1ò1ò ð  ‡[�[×Ñ˜W eÓ,ñ5ó -ð5ð ‡[�[×Ñ˜W eÓ,ñ5ó -ð5ð ‡[�[×Ñ˜W eÓ,ñ8ó -ð8ð ‡[�[×Ñ˜W eÓ,ñ8ó -ð8ð ‡[�[×Ñ˜W eÓ,ñ>ó -ð>ð ‡[�[×Ñ˜W eÓ,ñ>ó -ð>ð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñ:ó -ð:ð ‡[�[×Ñ˜W eÓ,ñ:ó -ð:ð ‡[�[×Ñ˜W eÓ,ñ@ó -ð@ð ‡[�[×Ñ˜W eÓ,ñ@ó -ð@ð ‡[�[×Ñ˜W eÓ,ñ@ó -ð@ð ‡[�[×Ñ˜W eÓ,ñ@ó -ð@ð ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð, ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð0 ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð0 ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð4 ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ò61ñ8 ØÐHôñ1óð1ò81ñ8 ØÐHôñ"2óð"2ñH ØÐHôñ1óð1ò81ò8"1òH1ñB ØÐHôñ'1óð'1òR*1ñX ØÐHôñóðòDñ ØÐHôñ1óð1ñ: ØÐHôñ1óð1ð: ‡[�[×Ñ˜W eÓ,ñ5ó -ð5ð ‡[�[×Ñ˜W eÓ,ñ(ó -ð(ð ‡[�[×Ñ˜W eÓ,ñIó -ðIð ‡[�[×Ñ˜W eÓ,ñ8ó -ð8ð ‡[�[×Ñ˜W eÓ,ñ>ó -ð>ð ‡[�[×Ñ˜W eÓ,ñ>ó -ð>ð ‡[�[×Ñ˜W eÓ,ñ>ó -ð>ð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñDó -ðDð ‡[�[×Ñ˜W eÓ,ñ:ó -ð:ð ‡[�[×Ñ˜W eÓ,ñ:ó -ð:ð ‡[�[×Ñ˜W eÓ,ñ@ó -ð@ð ‡[�[×Ñ˜W eÓ,ñ@ó -ð@ð ‡[�[×Ñ˜W eÓ,ñ@ó -ð@ð ‡[�[×Ñ˜W eÓ,ñ	@ó -ð	@ð ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð, ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð, ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð, ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð, ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð0 ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð2 ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ò1ñ, ˜dÐ+NÔOñ1ó Pð1ò.1ñ, ˜dÐ+NÔOñ1ó Pð1ò0%1ñN ØÐHôñ1óð1ð> ‡[�[×Ñ˜W eÓ,ñ.1ó -ð.1ò`(ò"1òH1ò:ð ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð, ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð0 ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð, ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ò01ò,1ò(1ñ( ˜tÔ$ÙØÐKôMáØÐLôNà‡[�[×Ñ˜^¨Q°¨FÓ3Ø‡[�[×Ñ˜X¨°Ð'8Ó9Ø‡[�[×Ñ˜]ªIÓ6Ø‡[�[×Ñ˜[ò +@ó Añ)'óAó 7ó :ó 4óNóMó %ð)'òV	Añ �kÐ*FÔGÙ�vÐ&PÔQñ
ó Ró Hð
ò
ò
ò

ò
ò
ò4ò4ò4ò4ñ ˜dÐ+NÔOñ4ó Pð4ò 4ñ ˜dÐ+NÔOñ4ó Pð4ò 4ñ �kÐ*FÔGñ4ó Hð4ò4ñ �v kÔ2ñ*ó 3ð*ñ0 �kÐ*FÔGñ	Hó Hð	Hñ �kÐ*FÔGñ4ó Hð4ò4ñ �vÐ&6Ô7ñ*ó 8ð*ñ0 �kÐ*FÔGñHó HðHñ ˜tÔ$ÙØÐKôMáØÐLôNà‡[�[×Ñ˜X¨°Ð'8Ó9Ø‡[�[×Ñ˜]ªIÓ6Ø‡[�[×Ñ˜Vò &8ó 9à‡[�[×ÑÐ-ò 0=ó >à‡[�[×Ñ˜[ò +;ó <ñ#'ó<ó>ó9ó 7ó :óNóMó %ð&#'ðJ ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð< ‡[�[×Ñ˜W eÓ,ñ1ó -ð1ð$ ‡[�[×Ñ˜W eÓ,ñ1ó -ñ1rC   r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestDilateFixc                 óš  — |j                  g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      | _        |j                  d«      | _        t        j                  | j                  | j                  ¬«      }t        |«      r!|j                  |j                  «      | _	        y t        |«      j                  } |||j                  «      | _	        y )Nrä   r¼  r½  r   r‡   rU  )r8   Úuint8r  rŠ   Úsq3x3r   rm  r   ÚviewÚ
dilated3x3r   r”   )r;   r<   r‹  r”   s       rA   Ú_setupzTestDilateFix._setupå
  sœ   € à—Z‘Z¢Ú!0Ú!0Ú!0Ú!0ð	!2ð :<¿¹ð	  ó CˆŒ
ð —W‘W˜V“_ˆŒ
Ü×,Ñ,¨T¯Z©ZÀ4Ç:Á:ÔNˆ
ä�BŒ<Ø(Ÿo™o¨b¯h©hÓ7ˆD�Oä$ ZÓ0×7Ñ7ˆFÙ$ Z°·±Ó:ˆD�OrC   c                 ó®   — | j                  |«       t        j                  | j                  | j                  ¬«      }t        || j                  dz   «       y )NrU  r   )rŒ  r   r'  r  r‰  r	   r‹  ©r;   r<   Úresults      rA   Útest_dilation_square_structurez,TestDilateFix.test_dilation_square_structure÷
  s:   € Ø�‰�BŒÜ×&Ñ& t§z¡z¸T¿Z¹ZÔHˆä! &¨$¯/©/¸AÑ*=Õ>rC   c                 ó”   — | j                  |«       t        j                  | j                  d¬«      }t	        || j
                  «       y )Nr)   )ro  )rŒ  r   r'  r  r	   r‹  rŽ  s      rA   Útest_dilation_scalar_sizez'TestDilateFix.test_dilation_scalar_sizeý
  s1   € Ø�‰�BŒÜ×&Ñ& t§z¡z¸Ô:ˆÜ! &¨$¯/©/Õ:rC   N)r  r€  r�  rŒ  r�  r’  r„  rC   rA   r†  r†  á
  s   „ ò;ò$?ó;rC   r†  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestBinaryOpeningClosingc                 óz  — t        j                  dt        ¬«      }d|dd…dd…f<   d|d<   |j                  |«      | _        |j                  d«      | _        t        j                  | j                  | j                  dd d«      | _	        t        j                  | j                  | j                  dd d«      | _        y )	N©r-   r-   r   Tr   r#   )r#   r#   r‡   r   )r]   rY   rÁ   r8   r  rŠ   r‰  r   rá  Ú
opened_oldrê  Ú
closed_old)r;   r<   r]  s      rA   rŒ  zTestBinaryOpeningClosing._setup  s˜   € Ü�H‰H�V¤4Ô(ˆØˆˆ!ˆAˆ#ˆq�ˆsˆ(‰Øˆˆ$‰Ø—Z‘Z “]ˆŒ
Ø—W‘W˜V“_ˆŒ
Ü!×0Ñ0°·±¸T¿Z¹ZØ12°D¸!ó=ˆŒä!×0Ñ0°·±¸T¿Z¹ZØ12°D¸!ó=ˆ�rC   c           
      ó²   — | j                  |«       t        j                  | j                  | j                  dd dd dd«      }t        || j                  «       y ©Nr   r   F)rŒ  r   rá  r  r‰  r   r—  )r;   r<   Ú
opened_news      rA   Útest_opening_new_argumentsz3TestBinaryOpeningClosing.test_opening_new_arguments  óD   € Ø�‰�BŒÜ×+Ñ+¨D¯J©J¸¿
¹
ÀAÀtØ,-¨t°Q¸ó?ˆ
ä˜
 D§O¡OÕ4rC   c           
      ó²   — | j                  |«       t        j                  | j                  | j                  dd dd dd«      }t        || j                  «       y rš  )rŒ  r   rê  r  r‰  r   r˜  )r;   r<   Ú
closed_news      rA   Útest_closing_new_argumentsz3TestBinaryOpeningClosing.test_closing_new_arguments  r�  rC   N)r  r€  r�  rŒ  rœ  r   r„  rC   rA   r”  r”    s   „ ò	=ò5ó5rC   r”  c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y ©Nr   g      à?ra  ç      ø?)rŠ   rr   rb  r   rÌ   ©r<   r=   s     rA   Ú)test_binary_erosion_noninteger_iterationsr¥    ó;   € ð �7‰7�A�3‹<€DÜ”)œW×3Ñ3°TÀcÕJÜ”)œW×3Ñ3°TÀcÖJrC   c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y r¢  )rŠ   rr   rb  r   rm  r¤  s     rA   Ú*test_binary_dilation_noninteger_iterationsr¨  %  s;   € ð �7‰7�A�3‹<€DÜ”)œW×4Ñ4°dÀsÕKÜ”)œW×4Ñ4°dÀsÖKrC   c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y r¢  )rŠ   rr   rb  r   rá  r¤  s     rA   Ú)test_binary_opening_noninteger_iterationsrª  -  r¦  rC   c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y r¢  )rŠ   rr   rb  r   rê  r¤  s     rA   Ú)test_binary_closing_noninteger_iterationsr¬  5  r¦  rC   c           
      ól  — t        | «      rt        j                  d«       | j                  dg«      }t	        t        j                  |dd¬«      t        j                  |dt        d«      ¬«      «       t	        t        j                  |dd¬«      t        j                  |dt        d«      ¬«      «       y )Nr*  r   r"   r£  )r0  r[  r§   )r   rp   rq   rŠ   r   r   rÌ   rÁ   r¤  s     rA   Ú;test_binary_closing_noninteger_brute_force_passes_when_truer®  =  s‰   € ô ˆr„{Ü�‰ÐLÔMà�7‰7�A�3‹<€Dä”G×*Ñ*¨4¸AÈ3ÔOÜ×*Ñ*¨4¸AÌ4ÐPSË9ÔUôô ”G×*Ñ*¨4¸AÈ3ÔOÜ×*Ñ*¨4¸AÌ4ÐPSË9ÔUõrC   Úfunction)rÌ   rm  rá  rê  r0  r-   r[  Fc                 ó.  — t         j                  j                  d«      }|j                  ddd¬«      j	                  t
        «      }t        t        | «      }|j                  «       } ||||¬«      }t        ||«        |||||¬«       t        ||«       y )Né{   r   r"   éd   ©ÚlowÚhighro  )r[  r0  )r[  r0  r6  )
r]   ÚrandomÚRandomStateÚrandintr”   rÁ   r7   r   Úcopyr   )	r¯  r0  r[  r<   Úrstater=   Úndi_funcÚ	data_origr@   s	            rA   Útest_binary_input_as_outputr½  M  s‚   € ô �Y‰Y×"Ñ" 3Ó'€FØ�>‰>˜a a¨cˆ>Ó2×9Ñ9¼$Ó?€DÜ”w Ó)€Hð —	‘	“€IÙ˜¨+À*ÔM€HÜ�D˜)Ô$ñ ˆT˜{°zÈ$ÕOÜ�H˜dÕ#rC   c                 óŽ  — t        | «      s t        | «      st        j                  d«       t        j
                  j                  d«      }|j                  ddd¬«      j                  t        «      }|j                  «       }t        j                  |«      }t        ||«       t        j                  ||¬«       t        ||«       y )Nrt  r±  r   r"   r²  r³  ru  )r   r   rp   rq   r]   r¶  r·  r¸  r”   rÁ   r¹  r   rû  r   )r<   rº  r=   r¼  r@   s        rA   Ú'test_binary_hit_or_miss_input_as_outputr¿  b  s’   € Ü�RŒLœG BœKÜ�‰Ð8Ô9ä�Y‰Y×"Ñ" 3Ó'€FØ�>‰>˜a a¨cˆ>Ó2×9Ñ9¼$Ó?€Dð —	‘	“€IÜ×)Ñ)¨$Ó/€HÜ�D˜)Ô$ô ×Ñ˜t¨DÕ1Ü�H˜dÕ#rC   c                 óô   — t        | «      rt        j                  d«       d}t        j                  t        |¬«      5  t        j                  | j                  d«      d¬«       d d d «       y # 1 sw Y   y xY w)Nz)CuPy does not have distance_transform_cdtzinvalid metric provided)Úmatchr–  Úgarbagerˆ   )r   rp   rq   r
   Ú
ValueErrorr   rz   rŠ   )r<   Úmsgs     rA   Ú*test_distance_transform_cdt_invalid_metricrÅ  s  sY   € Üˆr„{Ü�‰Ð@ÔAà
#€CÜ	�‰”z¨Ô	-ñ 9Ü×&Ñ& r§w¡w¨v£Ø.7õ	9÷9÷ 9ñ 9ús   ¾'A.Á.A7)$Únumpyr]   Úscipy._lib._array_apir   r   r   r   r   r   r	   rp   r
   rr   Úscipyr   Ú r   Úscipy.conftestr   r‚  r   r   ÚusefixturesÚ
pytestmarkr   r†  r”  r¥  r¨  rª  r¬  r®  rƒ  r½  r¿  rÅ  r„  rC   rA   ú<module>rÍ     s6  ðÛ ÷÷ ñ ó Ý *å å å /Ø—;‘;×/Ñ/Ð Ø—K‘K×1Ñ1Ð Ø" F§K¡K×$;Ñ$;Ð<NÓ$OØ�k‰k×%Ñ%Ð&9Ó:Ù¨¸&À+Ð9NÔPðR€
÷
I+1ñ I+1÷XV;ñ ;÷D5ñ 5ò4KòLòKòKòð  ‡�×ÑØÚMóð ‡�×Ñ˜¨¨1 vÓ.Ø‡�×Ñ˜¨°¨Ó6ñ$ó 7ó /ó	ð$ò$ó"9rC   