§
    µ³ÙgÐö ã                   óp  — 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                             d¦  «        e
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                              dg d¢¦  «        e
j                              dddg¦  «        e
j                              ddd
g¦  «        d„ ¦   «         ¦   «         ¦   «         Z!d „ Z"d!„ Z#dS )"é    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                             de¦  «        d„ ¦   «         ¦   «         Z edd¬¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Z	 edd¬¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Z
 edd	¬
¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Z edd¬¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Z edd¬¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Zd„ Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Z edd¬
¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Z edd¬
¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Z edd¬
¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Zej                             de¦  «        d„ ¦   «         Ze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                             de¦  «        d$„ ¦   «         Z"ej                             de¦  «        d%„ ¦   «         Z#ej                             de¦  «        d&„ ¦   «         Z$ej                             de¦  «        d'„ ¦   «         Z%ej                             de¦  «        d(„ ¦   «         Z&ej                             de¦  «        d)„ ¦   «         Z'ej                             de¦  «        d*„ ¦   «         Z(ej                             de¦  «        d+„ ¦   «         Z)ej                             de¦  «        d,„ ¦   «         Z*ej                             de¦  «        d-„ ¦   «         Z+ej                             de¦  «        d.„ ¦   «         Z,ej                             de¦  «        d/„ ¦   «         Z-ej                             de¦  «        d0„ ¦   «         Z.ej                             de¦  «        d1„ ¦   «         Z/ej                             de¦  «        d2„ ¦   «         Z0ej                             de¦  «        d3„ ¦   «         Z1ej                             de¦  «        d4„ ¦   «         Z2ej                             de¦  «        d5„ ¦   «         Z3ej                             de¦  «        d6„ ¦   «         Z4ej                             de¦  «        d7„ ¦   «         Z5ej                             de¦  «        d8„ ¦   «         Z6ej                             de¦  «        d9„ ¦   «         Z7ej                             de¦  «        d:„ ¦   «         Z8ej                             de¦  «        d;„ ¦   «         Z9ej                             de¦  «        d<„ ¦   «         Z:e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                             de¦  «        dM„ ¦   «         ZJej                             de¦  «        dN„ ¦   «         ZKej                             de¦  «        dO„ ¦   «         ZLej                             de¦  «        dP„ ¦   «         ZMej                             de¦  «        dQ„ ¦   «         ZNej                             de¦  «        dR„ ¦   «         ZOej                             de¦  «        dS„ ¦   «         ZPej                             de¦  «        dT„ ¦   «         ZQej                             de¦  «        dU„ ¦   «         ZRej                             de¦  «        dV„ ¦   «         ZSej                             de¦  «        dW„ ¦   «         ZTej                             de¦  «        dX„ ¦   «         ZUej                             de¦  «        dY„ ¦   «         ZVej                             de¦  «        dZ„ ¦   «         ZWej                             de¦  «        d[„ ¦   «         ZXej                             de¦  «        d\„ ¦   «         ZYej                             de¦  «        d]„ ¦   «         ZZej                             de¦  «        d^„ ¦   «         Z[ej                             de¦  «        d_„ ¦   «         Z\ej                             de¦  «        d`„ ¦   «         Z]ej                             de¦  «        da„ ¦   «         Z^ej                             de¦  «        db„ ¦   «         Z_ej                             de¦  «        dc„ ¦   «         Z`ej                             de¦  «        dd„ ¦   «         Zaej                             de¦  «        de„ ¦   «         Zbej                             de¦  «        df„ ¦   «         Zcej                             de¦  «        dg„ ¦   «         Zdej                             de¦  «        dh„ ¦   «         Zedi„ Zf eddj¬
¦  «        dk„ ¦   «         Zgdl„ Zh eddj¬
¦  «        dm„ ¦   «         Zidn„ Zj eddo¬
¦  «        dp„ ¦   «         Zkej                             de¦  «        dq„ ¦   «         Zldr„ Zmds„ Zndt„ Zodu„ Zpej                             de¦  «        dv„ ¦   «         Zqej                             de¦  «        dw„ ¦   «         Zrej                             de¦  «        dx„ ¦   «         Zsej                             de¦  «        dy„ ¦   «         Ztdz„ Zud{„ Zvd|„ Zw ed¬}¦  «         edd~¬¦  «         edd€¬¦  «        ej                             d�d‚dƒg¦  «        ej                             d„d…d†g¦  «        ej                             d‡g dˆ¢¦  «        e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                             d„d…d†g¦  «        ej                             d‡g dˆ¢¦  «        ej                             d§g d¨¢¦  «        ej                             d©g dª¢¦  «        ej                             d‰g d«¢¦  «        d¬„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z�ej                             de¦  «        d­„ ¦   «         Z‘ej                             de¦  «        d®„ ¦   «         Z’ej                             de¦  «        d¯„ ¦   «         Z“d°S )±ÚTestNdimageMorphologyr   ú)CuPy does not have distance_transform_bf.)ÚreasonÚdtypec                 ó  — t          ||¦  «        }|                     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	}|                     |¦  «        }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}|                     |¦  «        }t	          ||¦  «         d S )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          úY/granary/edev/quantum/lib/python3.11/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Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô/°°kØ?CðEñ Eô E‰ˆˆRà/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/ð1ˆð —:’:˜hÑ'Ô'ˆÝ! #¨¡)¨XÑ6Ô6Ð6à0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð3ˆð$ —:’:˜hÑ'Ô'ˆÝ! " hÑ/Ô/Ð/Ð/Ð/ó    c                 ó   — t          ||¦  «        }|                     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	}|                     |¦  «        }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}|                     |¦  «        }t	          ||¦  «         d S )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Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô/°°kØ?CðEñ Eô E‰ˆˆRð 0Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/ð1ˆð —:’:˜hÑ'Ô'ˆÝ! # xÑ0Ô0Ð0à0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð3ˆð$ —:’:˜hÑ'Ô'ˆÝ! (¨BÑ/Ô/Ð/Ð/Ð/rC   c                 ó   — t          ||¦  «        }|                     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	}|                     |¦  «        }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}|                     |¦  «        }t	          ||¦  «         d S )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Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô/°°lØ?CðEñ Eô E‰ˆˆRð 0Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/ð1ˆð —:’:˜hÑ'Ô'ˆÝ! # xÑ0Ô0Ð0à0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð3ˆð$ —:’:˜hÑ'Ô'ˆÝ! " hÑ/Ô/Ð/Ð/Ð/rC   Tz,inplace distances= arrays are numpy-specific)Únp_onlyr   c                 ó´  — t          ||¦  «        }|                     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        ¬¦  «        }t          j        ||¬¦  «         |                     |¦  «         t          j        |dd¬	¦  «        }	|                     |	¦  «         t          j	        |j        |j
        ¬¦  «        }	t          j        |dd
|	¬¦  «         |                     |	¦  «         t          j        |d¬¦  «        \  }}	|                     |¦  «         |                     |	¦  «         |                     |j        |j        ¬¦  «        }t          j        ||d
¬¦  «        }	|                     |¦  «         |                     |	¦  «         t          j	        |j        |j
        ¬¦  «        }	t          j        |d
|	¬¦  «        }|                     |¦  «         |                     |	¦  «         |                     |j        |j        ¬¦  «        }t          j	        |j        |j
        ¬¦  «        }	t          j        ||d
|	¬¦  «         |                     |¦  «         |                     |	¦  «         |D ]}t          ||¦  «         Œ|D ]}	t          ||	¦  «         Œd S )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­   s  € õ
 ˜˜EÑ"Ô"ˆà�zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô0°ÀaÐHÑHÔH‰ˆˆSØˆØˆØ�XŠX�d”j¨¬
ˆXÑ3Ô3ˆÝÔ% d°bÐ9Ñ9Ô9Ð9Ø�
Š
�2‰ŒˆÝÔ*Ø 5¸ð<ñ <ô <ˆà�
Š
�2‰ŒˆÝŒZ˜œ
¨"¬(Ð3Ñ3Ô3ˆÝÔ%Ø 5¸Àrð	Kñ 	Kô 	Kð 	Kà�
Š
�2‰ŒˆÝÔ.Ø ð$ñ $ô $‰ˆˆBà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØ�XŠX�d”j¨¬
ˆXÑ3Ô3ˆÝÔ*Ø˜B¨tð5ñ 5ô 5ˆà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆÝŒZ˜œ
¨"¬(Ð3Ñ3Ô3ˆÝÔ*Ø ¨rð3ñ 3ô 3ˆà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØ�XŠX�d”j¨¬
ˆXÑ3Ô3ˆÝŒZ˜œ
¨"¬(Ð3Ñ3Ô3ˆÝÔ%Ø˜B¨t¸Rð	Añ 	Aô 	Að 	Aà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØð 	/ð 	/ˆBÝ% c¨2Ñ.Ô.Ð.Ð.Øð 	/ð 	/ˆBÝ% c¨2Ñ.Ô.Ð.Ð.ð	/ð 	/rC   c                 ó  — t          ||¦  «        }|                     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	}|                     |¦  «        }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}|                     |¦  «        }t	          ||¦  «         d S )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Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô/Ø�+¨d¸aÀ¸VðEñ Eô E‰ˆˆRà/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø0Ð0Ð0Ø2Ð2Ð2Ø0Ð0Ð0Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/ð1ˆð —:’:˜hÑ'Ô'ˆÝ! #¨¡)¨XÑ6Ô6Ð6à0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð3ˆð$ —:’:˜hÑ'Ô'ˆÝ! " hÑ/Ô/Ð/Ð/Ð/rC   c                 ó  — t          ||¦  «        }|                     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	}|                     |¦  «        }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}|                     |¦  «        }t	          ||¦  «         d S )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Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô/Ø�+¨d¸aÀ¸VðEñ Eô E‰ˆˆRà/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/ð1ˆð —:’:˜hÑ'Ô'ˆÝ! #¨¡)¨XÑ6Ô6Ð6à0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð3ˆð$ —:’:˜hÑ'Ô'ˆÝ! " hÑ/Ô/Ð/Ð/Ð/rC   c                 ó4  — t          |¦  «        rt          j        d¦  «         |                     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 ¦  «         d S # 1 swxY w Y   d S )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  s"  € Ý�2‰;Œ;ð 	FÝŒLÐDÑEÔEÐEð �zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ñ 9ô 9ˆõ �<Ñ(Ô(ð 	ð 	ÝÔ)Ø u¸Uðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á(BÂBÂBc                 ó  — t          ||¦  «        }t          |¦  «        rt          j        d¦  «         |                     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}|                     |¦  «        }t          ||¦  «         d S )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‰;Œ;ð 	GÝŒLÐEÑFÔFÐFð �zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô0Ø�+¨dð4ñ 4ô 4‰ˆˆRåÔ*¨4°Ñ=Ô=ˆÝ! " cÑ*Ô*Ð*à0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð3ˆð$ —:’:˜hÑ'Ô'ˆÝ! " hÑ/Ô/Ð/Ð/Ð/rC   c                 ó  — t          ||¦  «        }t          |¦  «        rt          j        d¦  «         |                     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}|                     |¦  «        }t          ||¦  «         d S )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‰;Œ;ð 	GÝŒLÐEÑFÔFÐFà�zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô0°°|Ø@DðFñ Fô F‰ˆˆRåÔ*¨4°Ñ>Ô>ˆÝ! " cÑ*Ô*Ð*à0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ð3ˆð$ —:’:˜hÑ'Ô'ˆÝ! " hÑ/Ô/Ð/Ð/Ð/rC   z*inplace indices= arrays are numpy-specificc                 óD  — t          ||¦  «        }|                     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        ¬¦  «        }t          j        ||¬¦  «         |                     |¦  «         t          j        |dd¬	¦  «        }	|                     |	¦  «         |                     t          j	        |j        t          j        ¬¦  «        ¦  «        }	t          j        |dd|	¬
¦  «         |                     |	¦  «         t          j        |d¬¦  «        \  }}	|                     |¦  «         |                     |	¦  «         |                     |j        |j        ¬¦  «        }t          j        ||d¬¦  «        }	|                     |¦  «         |                     |	¦  «         |                     t          j	        |j        t          j        ¬¦  «        ¦  «        }	t          j        |d|	¬¦  «        }|                     |¦  «         |                     |	¦  «         |                     |j        |j        ¬¦  «        }|                     t          j	        |j        t          j        ¬¦  «        ¦  «        }	t          j        ||d|	¬¦  «         |                     |¦  «         |                     |	¦  «         |D ]}t          ||¦  «         Œ|D ]}	t          ||	¦  «         Œd S )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«  s7  € õ
 ˜˜EÑ"Ô"ˆØ�zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô1°$ÀtÐLÑLÔL‰ˆˆSØˆØˆØ�XŠX�d”j¨¬ˆXÑ1Ô1ˆÝÔ& t°rÐ:Ñ:Ô:Ð:Ø�
Š
�2‰ŒˆÝÔ+Ø 5¸ð?ñ ?ô ?ˆà�
Š
�2‰ŒˆØ�ZŠZ�œ
 4¤:µR´XÐ>Ñ>Ô>Ñ?Ô?ˆÝÔ&Ø 5¸Àrð	Kñ 	Kô 	Kð 	Kà�
Š
�2‰ŒˆÝÔ/Ø ð'ñ 'ô '‰ˆˆBà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØ�XŠX�d”j¨¬ˆXÑ1Ô1ˆÝÔ+Ø˜B¨tð5ñ 5ô 5ˆà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØ�ZŠZ�œ
 4¤:µR´XÐ>Ñ>Ô>Ñ?Ô?ˆÝÔ+Ø ¨rð3ñ 3ô 3ˆà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØ�XŠX�d”j¨¬ˆXÑ1Ô1ˆØ�ZŠZ�œ
 4¤:µR´XÐ>Ñ>Ô>Ñ?Ô?ˆÝÔ& t°rØ6:ÀBð	Hñ 	Hô 	Hð 	Hà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØð 	/ð 	/ˆBÝ% c¨2Ñ.Ô.Ð.Ð.Øð 	/ð 	/ˆBÝ% c¨2Ñ.Ô.Ð.Ð.ð	/ð 	/rC   z3XXX: does not raise unless indices is a numpy arrayc                 óD  — |                      g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	¦  «        }|                     |j        f|j        z   |j        ¬¦  «        }t          t          ¦  «        5  t          j        |dd|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ñ 9ô 9ˆð —h’h ¤	˜|¨d¬jÑ8ÀÄ�hÑIÔIˆÝ�<Ñ(Ô(ð 	ð 	ÝÔ)ØØ!%Ø$Ø#ð	ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á/BÂBÂBc                 ó¤  — t          ||¦  «        }t          |¦  «        rt          j        d¦  «         n#t	          |¦  «        rt          j        d¦  «         |                     g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬¦  «        }|                     d¦  «        }t          j        ||¬¦  «        }| 	                    |¦  «        d	k    sJ ‚d S )
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ÐEÑFÔFÐFÐFÝ�b‰\Œ\ð 	)ÝŒL˜Ñ(Ô(Ð(ð �zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆð —W’W˜V‘_”_ˆ
ÝÔ/°¸ZÐHÑHÔHˆØ�vŠv�f‰~Œ~ Ò$Ð$Ð$Ð$Ð$Ð$rC   c                 óê  — t          ||¦  «        }t          |¦  «        rt          j        d¦  «         |                     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
  }|                     t          j        ¦  «        }t          j        |||¦  «         t          j                             |d
¬¦  «        }t          j        ||¦  «         |                     |¦  «        }t          ||¦  «         d S )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‰;Œ;ð 	EÝŒLÐCÑDÔDÐDð �zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô0°ÀdÐKÑKÔK‰ˆˆRÝÔ*¨4°Ñ=Ô=ˆÝ! " cÑ*Ô*Ð*õ ”
˜2‘”ˆØ•R”Z ¤¨A¨B¨B¤°u´{ÐCÑCÔCÑCˆØ�YŠY•r”zÑ"Ô"ˆÝ
Œ�B˜˜BÑÔÐÝŒV�]Š]˜2 Aˆ]Ñ&Ô&ˆÝ
Œ��B‰Œˆà�ZŠZ˜‰^Œ^ˆÝ! " bÑ)Ô)Ð)Ð)Ð)rC   z%inplace distances= are numpy-specificc                 ó2  — t          ||¦  «        }|                     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        ¬¦  «        }t          j        ||¬¦  «         |                     |¦  «         t          j        |dd¬	¦  «        }	|                     |	¦  «         t          j	        |j        |j
        ¬¦  «        }	|                     |	¦  «        }	t          j        |d
d|	¬¦  «         |                     |	¦  «         t          j        |d¬¦  «        \  }}	|                     |¦  «         |                     |	¦  «         |                     |j        |j        ¬¦  «        }t          j        ||d¬¦  «        }	|                     |¦  «         |                     |	¦  «         t          j	        |j        |j
        ¬¦  «        }	|                     |	¦  «        }	t          j        |d|	¬¦  «        }|                     |¦  «         |                     |	¦  «         |                     |j        |j        ¬¦  «        }t          j	        |j        |j
        ¬¦  «        }	|                     |	¦  «        }	t          j        ||d|	¬¦  «         |                     |¦  «         |                     |	¦  «         |D ]}t          ||¦  «         Œ|D ]}	t          ||	¦  «         Œd S )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,  s@  € õ
 ˜˜EÑ"Ô"ˆØ�zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô1°$ÀtÐLÑLÔL‰ˆˆSØˆØˆà�XŠX�d”j¨¬
ˆXÑ3Ô3ˆÝÔ& t°rÐ:Ñ:Ô:Ð:Ø�
Š
�2‰ŒˆåÔ+Ø 1°Tð;ñ ;ô ;ˆà�
Š
�2‰ŒˆåŒZ˜œ
¨"¬(Ð3Ñ3Ô3ˆØ�ZŠZ˜‰^Œ^ˆÝÔ&Ø 5¸Àrð	Kñ 	Kô 	Kð 	Kà�
Š
�2‰ŒˆåÔ/Ø ð'ñ 'ô '‰ˆˆBà�
Š
�2‰ŒˆØ�
Š
�2‰Œˆà�XŠX�d”j¨¬
ˆXÑ3Ô3ˆÝÔ+Ø˜B¨tð5ñ 5ô 5ˆà�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆåŒZ˜œ
¨"¬(Ð3Ñ3Ô3ˆØ�ZŠZ˜‰^Œ^ˆÝÔ+Ø ¨rð3ñ 3ô 3ˆà�
Š
�2‰ŒˆØ�
Š
�2‰Œˆà�XŠX�d”j¨¬
ˆXÑ3Ô3ˆÝŒZ˜œ
¨"¬(Ð3Ñ3Ô3ˆØ�ZŠZ˜‰^Œ^ˆÝÔ&Ø˜B¨t¸Rð	Añ 	Aô 	Að 	Aà�
Š
�2‰ŒˆØ�
Š
�2‰Œˆàð 	/ð 	/ˆBÝ% c¨2Ñ.Ô.Ð.Ð.Øð 	/ð 	/ˆBÝ% c¨2Ñ.Ô.Ð.Ð.ð	/ð 	/rC   c                 óR  — t          ||¦  «        }t          |¦  «        rt          j        d¦  «         |                     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          ||¦  «         d S )	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‰;Œ;ð 	EÝŒLÐCÑDÔDÐDà�zŠzÐ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ð @Eð ñ Fô Fˆõ Ô+¨D°+ÈÈAÈÐOÑOÔOˆÝÔ,¨T¸QÀ¸FÐCÑCÔCˆÝ! # sÑ+Ô+Ð+Ð+Ð+rC   c                 óR  — t          ||¦  «        }t          |¦  «        rt          j        d¦  «         |                     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          ||¦  «         d S )
Nr�   r   r   r   r   r   r"   r   rž   rŸ   r    s         rA   Útest_distance_transform_edt4z2TestNdimageMorphology.test_distance_transform_edt4  r£   rC   c                 óP   — t          j        d¦  «        }t          |dg¦  «         d S )NFç        )r   r“   r	   )r;   r<   r>   s      rA   Útest_distance_transform_edt5z2TestNdimageMorphology.test_distance_transform_edt5’  s*   € åÔ,¨UÑ3Ô3ˆÝ! #¨ tÑ,Ô,Ð,Ð,Ð,rC   c                 ó2  — |                      g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	¦  «        }|                     |j        |j        ¬¦  «        }t	          t
          ¦  «        5  t          j        |dd|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ñ 9ô 9ˆð Ÿš ¤°2´:˜Ñ>Ô>ˆÝ�<Ñ(Ô(ð 	ð 	ÝÔ)ØØ#Ø!&Ø'ð	ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á&BÂBÂBc                 ó@   — t          j        dd¦  «        }|dk    sJ ‚d S )Nr   r   )r   Úgenerate_binary_structure©r;   r<   Ústructs      rA   Útest_generate_structure01z/TestNdimageMorphology.test_generate_structure01®  s%   € ÝÔ2°1°aÑ8Ô8ˆØ˜Š{ˆ{ˆ{ˆ{ˆ{ˆ{rC   c                 óT   — t          j        dd¦  «        }t          |g d¢¦  «         d S )Nr   ©r   r   r   ©r   r­   r	   r®   s      rA   Útest_generate_structure02z/TestNdimageMorphology.test_generate_structure02²  s.   € ÝÔ2°1°aÑ8Ô8ˆÝ! &¨)¨)¨)Ñ4Ô4Ð4Ð4Ð4rC   c                 ób   — t          j        dd¦  «        }t          |g d¢g d¢g d¢g¦  «         d S )Nr"   r   ©r   r   r   r²   r³   r®   s      rA   Útest_generate_structure03z/TestNdimageMorphology.test_generate_structure03¶  óK   € ÝÔ2°1°aÑ8Ô8ˆÝ! &¨9¨9¨9Ø+4¨9¨9Ø+4¨9¨9ð+6ñ 	7ô 	7ð 	7ð 	7ð 	7rC   c                 ób   — t          j        dd¦  «        }t          |g d¢g d¢g d¢g¦  «         d S )Nr"   r²   r³   r®   s      rA   Útest_generate_structure04z/TestNdimageMorphology.test_generate_structure04¼  r¸   rC   c                 ó  — g d¢g d¢g d¢g}|                      |¦  «        }t          j        |d¦  «        }t          j         g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                      |¦  «        }t          ||¦  «         d S )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Â  s®   € Ø�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆÝÔ'¨°Ñ2Ô2ˆÝ”:˜˜˜Ø.˜˜Ø.˜˜Ø.˜˜Ø.˜˜ð	0õ 8<ð	=ñ =ô =ˆð
 —:’:˜hÑ'Ô'ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó  — ddgddgddgg}|                      |¦  «        }t          j        |d¦  «        }t          j         g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                      |¦  «        }t          ||¦  «         d S )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Ô2ˆÝ”:˜y˜y˜yØ(˜y˜yØ(˜y˜yØ(˜y˜yØ(˜y˜yð	*õ 26ð	7ñ 7ô 7ˆð
 —:’:˜hÑ'Ô'ˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó@  — g d¢g d¢g d¢g}|                      |¦  «        }t          j        |dd¦  «        }g d¢g d¢g d¢g d¢g d¢g}t          j         |t          ¬¦  «        }|                      |¦  «        }t          |d	         |¦  «         |d         ddgk    sJ ‚d S )
Nr¶   r²   r"   r   r¼   r½   r¾   r   r   r¿   rÂ   s        rA   Útest_iterate_structure03z.TestNdimageMorphology.test_iterate_structure03ß  sÉ   € Ø�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆÝÔ'¨°°1Ñ5Ô5ˆØ#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�Oð	%ˆõ
 ”:˜h­dÐ3Ñ3Ô3ˆØ—:’:˜hÑ'Ô'ˆÝ! # a¤&¨(Ñ3Ô3Ð3Ø�1Œv˜!˜Q˜ÒÐÐÐÐÐrC   c                 óÀ   — t          ||¦  «        }|                     g |¬¦  «        }t          j        |¦  «        }||                     d|j        ¬¦  «        k    sJ ‚d S ©Nr   r   ©r7   rŠ   r   Úbinary_erosionr8   r   ©r;   r   r<   r=   r>   s        rA   Útest_binary_erosion01z+TestNdimageMorphology.test_binary_erosion01ï  s_   € å˜˜EÑ"Ô"ˆØ�wŠw�r ˆwÑ'Ô'ˆÝÔ$ TÑ*Ô*ˆØ�b—j’j ¨#¬)�jÑ4Ô4Ò4Ð4Ð4Ð4Ð4Ð4rC   c                 óÄ   — t          ||¦  «        }|                     g |¬¦  «        }t          j        |d¬¦  «        }||                     d|j        ¬¦  «        k    sJ ‚d S )Nr   r   ©Úborder_valuerË   rÍ   s        rA   Útest_binary_erosion02z+TestNdimageMorphology.test_binary_erosion02ö  sd   € å˜˜EÑ"Ô"ˆØ�wŠw�r ˆwÑ'Ô'ˆÝÔ$ T¸Ð:Ñ:Ô:ˆØ�b—j’j ¨#¬)�jÑ4Ô4Ò4Ð4Ð4Ð4Ð4Ð4rC   c                 óÆ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |¦  «        }t	          ||                     dg¦  «        ¦  «         d S ©Nr   r   r   ©r7   rŠ   r   rÌ   r	   r8   rÍ   s        rA   Útest_binary_erosion03z+TestNdimageMorphology.test_binary_erosion03ý  sZ   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ$ TÑ*Ô*ˆÝ! # r§z¢z°1°#¡¤Ñ7Ô7Ð7Ð7Ð7rC   c                 óÊ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |d¬¦  «        }t	          ||                     dg¦  «        ¦  «         d S ©Nr   r   rÐ   rÕ   rÍ   s        rA   Útest_binary_erosion04z+TestNdimageMorphology.test_binary_erosion04  s_   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ$ T¸Ð:Ñ:Ô:ˆÝ! # r§z¢z°1°#¡¤Ñ7Ô7Ð7Ð7Ð7rC   c                 óÈ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S )Nr)   r   r¶   rÕ   rÍ   s        rA   Útest_binary_erosion05z+TestNdimageMorphology.test_binary_erosion05  s^   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ$ TÑ*Ô*ˆÝ! # r§z¢z°)°)°)Ñ'<Ô'<Ñ=Ô=Ð=Ð=Ð=rC   c                 óÌ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |d¬¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S ©Nr)   r   r   rÐ   r²   rÕ   rÍ   s        rA   Útest_binary_erosion06z+TestNdimageMorphology.test_binary_erosion06  sc   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ$ T¸Ð:Ñ:Ô:ˆÝ! # r§z¢z°)°)°)Ñ'<Ô'<Ñ=Ô=Ð=Ð=Ð=rC   c                 óÈ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r½   rÕ   rÍ   s        rA   Útest_binary_erosion07z+TestNdimageMorphology.test_binary_erosion07  s^   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ$ TÑ*Ô*ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÌ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |d¬¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   rÐ   r¾   rÕ   rÍ   s        rA   Útest_binary_erosion08z+TestNdimageMorphology.test_binary_erosion08   sc   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ$ T¸Ð:Ñ:Ô:ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÚ   — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }t          j        |¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )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'  sh   € åŒw˜�s %Ð(Ñ(Ô(ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆÝÔ$ TÑ*Ô*ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÞ   — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }t          j        |d¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   r"   r   rÐ   )r   r   r   r   r   rå   rÍ   s        rA   Útest_binary_erosion10z+TestNdimageMorphology.test_binary_erosion10/  sm   € åŒw˜�s %Ð(Ñ(Ô(ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆÝÔ$ T¸Ð:Ñ:Ô:ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     g d¢¦  «        }t          j        ||d¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )	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˜�s %Ð(Ñ(Ô(ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜I˜I˜IÑ&Ô&ˆÝÔ$ T¨6ÀÐBÑBÔBˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     g d¢¦  «        }t          j        ||dd¬¦  «        }t          ||                     g d	¢¦  «        ¦  «         d S )
Nr-   r   r   r"   rê   r   éÿÿÿÿ©rÑ   Úorigin©r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion12z+TestNdimageMorphology.test_binary_erosion12@  s†   € åŒw˜�s %Ð(Ñ(Ô(ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜I˜I˜IÑ&Ô&ˆÝÔ$ T¨6ÀÈ"ÐMÑMÔMˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     g d¢¦  «        }t          j        ||dd¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )	Nr-   r   r   r"   rê   r   rð   ©r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion13z+TestNdimageMorphology.test_binary_erosion13I  s†   € åŒw˜�s %Ð(Ñ(Ô(ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜I˜I˜IÑ&Ô&ˆÝÔ$ T¨6ÀÈ!ÐLÑLÔLˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     ddg¦  «        }t          j        ||d¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   r"   r   rÐ   )r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion14z+TestNdimageMorphology.test_binary_erosion14R  s„   € åŒw˜�s %Ð(Ñ(Ô(ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜Q ˜FÑ#Ô#ˆÝÔ$ T¨6ÀÐBÑBÔBˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     ddg¦  «        }t          j        ||dd¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )	Nr-   r   r   r"   r   rï   rð   )r   r   r   r   r   rå   rì   s         rA   Útest_binary_erosion15z+TestNdimageMorphology.test_binary_erosion15[  s†   € åŒw˜�s %Ð(Ñ(Ô(ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜Q ˜FÑ#Ô#ˆÝÔ$ T¨6ÀÈ"ÐMÑMÔMˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÎ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |d¬¦  «        }t	          ||                     dgg¦  «        ¦  «         d S rØ   rÕ   rÍ   s        rA   Útest_binary_erosion16z+TestNdimageMorphology.test_binary_erosion16d  se   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ$ T¸Ð:Ñ:Ô:ˆÝ! # r§z¢z°A°3°%Ñ'8Ô'8Ñ9Ô9Ð9Ð9Ð9rC   c                 óÊ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |¦  «        }t	          ||                     dgg¦  «        ¦  «         d S rÔ   rÕ   rÍ   s        rA   Útest_binary_erosion17z+TestNdimageMorphology.test_binary_erosion17k  s`   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ$ TÑ*Ô*ˆÝ! # r§z¢z°A°3°%Ñ'8Ô'8Ñ9Ô9Ð9Ð9Ð9rC   c                 óÌ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢g¦  «        ¦  «         d S )Nr   r)   r   ©r   r   r   rÕ   rÍ   s        rA   Útest_binary_erosion18z+TestNdimageMorphology.test_binary_erosion18r  sb   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ$ TÑ*Ô*ˆÝ! # r§z¢z°9°9°9°+Ñ'>Ô'>Ñ?Ô?Ð?Ð?Ð?rC   c                 óÐ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |d¬¦  «        }t	          ||                     g d¢g¦  «        ¦  «         d S )Nr   r)   r   rÐ   r²   rÕ   rÍ   s        rA   Útest_binary_erosion19z+TestNdimageMorphology.test_binary_erosion19y  sg   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ$ T¸Ð:Ñ:Ô:ˆÝ! # r§z¢z°9°9°9°+Ñ'>Ô'>Ñ?Ô?Ð?Ð?Ð?rC   c           	      óØ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢g d¢g d¢g¦  «        ¦  «         d S )Nr)   r   r   r¶   rÕ   rÍ   s        rA   Útest_binary_erosion20z+TestNdimageMorphology.test_binary_erosion20€  s†   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ$ TÑ*Ô*ˆÝ! # r§z¢z°9°9°9Ø3<°9°9Ø3<°9°9ð3>ñ (?ô (?ñ 	@ô 	@ð 	@ð 	@ð 	@rC   c           	      óÜ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |d¬¦  «        }t	          ||                     g d¢g d¢g d¢g¦  «        ¦  «         d S rÝ   rÕ   rÍ   s        rA   Útest_binary_erosion21z+TestNdimageMorphology.test_binary_erosion21‰  s‹   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ$ T¸Ð:Ñ:Ô:ˆÝ! # r§z¢z°9°9°9Ø3<°9°9Ø3<°9°9ð3>ñ (?ô (?ñ 	@ô 	@ð 	@ð 	@ð 	@rC   c                 ó.  — t          ||¦  «        }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        |d¬¦  «        }t	          ||¦  «         d S )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Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô$ T¸Ð:Ñ:Ô:ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó„  — t          ||¦  «        }t          j        d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|¬
¦  «        }t          j        ||d¬¦  «        }t          ||¦  «         d S )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©  s2  € å˜˜EÑ"Ô"ˆÝÔ2°1°aÑ8Ô8ˆØ—’˜FÑ#Ô#ˆØ,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —:’:˜hÑ'Ô'ˆØ�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô$ T¨6ÀÐBÑBÔBˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óf  — 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}|                     |¦  «        }|                     g d¢g d¢g d¢g d	¢g d¢g d
¢g d¢g d¢g|¬¦  «        }t          j        ||d¬¦  «        }t	          ||¦  «         d S )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Â  s4  € å˜˜EÑ"Ô"ˆØ—’˜a ˜VØ ˜Vð%ñ &ô &ˆà,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —:’:˜hÑ'Ô'ˆØ�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô$ T¨6ÀÐBÑBÔBˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óp  — t          ||¦  «        }g d¢g d¢g d¢g}|                     |¦  «        }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        ||d¬¦  «        }t	          ||¦  «         d S )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Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô$ T¨6ÀÐBÑBÔBˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ór  — t          ||¦  «        }g d¢g d¢g d¢g}|                     |¦  «        }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        ||dd¬¦  «        }t	          ||¦  «         d S )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ö  sG  € å˜˜EÑ"Ô"ˆØ�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —:’:˜hÑ'Ô'ˆØ�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô$ T¨6ÀØ,4ð6ñ 6ô 6ˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      ó¾  — t          |¦  «        rt          j        d¦  «         g d¢g d¢g d¢g}|                     |¦  «        }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
          ¬¦  «        }|                     |¦  «        }t          j        ||d	d
¬¦  «        }t          ||¦  «         d S ©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  sR  € Ý�2‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆð —:’:˜hÑ'Ô'ˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝÔ$ T¨6ÀØ01ð3ñ 3ô 3ˆå! # xÑ0Ô0Ð0Ð0Ð0rC   z)inplace out= arguments are numpy-specificc           
      ó  — g d¢g d¢g d¢g}|                      |¦  «        }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t          j         |t          ¬¦  «        }|                      |¦  «        }t          j         g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                      |¦  «        }t          j        |j        t          ¬¦  «        }|                      |¦  «        }t          j        ||dd	|¬
¦  «         t          ||¦  «         d S )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.  sr  € ð �)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆõ ”:˜h­dÐ3Ñ3Ô3ˆØ—:’:˜hÑ'Ô'ˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ˜t V¸!Ø*+°Cð	9ñ 	9ô 	9ð 	9å! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      ó¾  — t          |¦  «        rt          j        d¦  «         g d¢g d¢g d¢g}|                     |¦  «        }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
          ¬	¦  «        }|                     |¦  «        }t          j        ||d
d¬¦  «        }t          ||¦  «         d S )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  óU  € Ý�2‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆð —:’:˜hÑ'Ô'ˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝÔ$ T¨6Ø23ÀðCñ Cô Cˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      ó²  — t          |¦  «        rt          j        d¦  «         g d¢g d¢g d¢g}|                     |¦  «        }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t	          j        |t
          ¬¦  «        }|                     |¦  «        }t	          j        g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt
          ¬¦  «        }|                     |¦  «        }t	          j        |j        t
          ¬¦  «        }|                     |¦  «        }t          j	        ||d
d|¬¦  «         t          ||¦  «         t          j	        ||d
d|¬¦  «         t          ||¦  «         d S )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‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆõ ”:˜h­dÐ3Ñ3Ô3ˆØ—:’:˜hÑ'Ô'ˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ˜t V¸!Ø*+°Cð	9ñ 	9ô 	9ð 	9å! # xÑ0Ô0Ð0õ 	Ô˜t V¸!Ø*+°Dð	:ñ 	:ô 	:ð 	:å! $¨Ñ1Ô1Ð1Ð1Ð1rC   c           
      ó  — g d¢g d¢g d¢g}|                      |¦  «        }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t          j         |t          ¬¦  «        }|                      |¦  «        }t          j         g d	¢g d
¢g d¢g d¢g d¢g d
¢g d	¢gt          ¬¦  «        }|                      |¦  «        }t          j        |j        t          ¬¦  «        }|                      |¦  «        }t          j        ||dd|d¬¦  «         t          ||¦  «         d S )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�  sx  € ð �)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆõ ”:˜h­dÐ3Ñ3Ô3ˆØ—:’:˜hÑ'Ô'ˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ˜t V¸!Ø*+°CÀð	Jñ 	Jô 	Jð 	Jå! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      ó¾  — t          |¦  «        rt          j        d¦  «         g d¢g d¢g d¢g}|                     |¦  «        }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
          ¬¦  «        }|                     |¦  «        }t          j        ||d	d
¬¦  «        }t          ||¦  «         d S 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}|                     |¦  «        }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}|                     |¦  «        }t	          j        g d¢g d
¢g d¢g d¢g d¢g d¢g d¢gt
          ¬¦  «        }|                     |¦  «        }t          j        ||d|d¬¦  «        }t          ||¦  «         d S )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‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆð —:’:˜hÑ'Ô'ˆØ%Ð%Ð%Ø%Ð%Ð%Ø%Ð%Ð%Ø%Ð%Ð%Ø%Ð%Ð%Ø%Ð%Ð%Ø%Ð%Ð%ð'ˆð �zŠz˜$ÑÔˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝÔ$ T¨6Ø23¸$È2ðOñ Oô Oˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      óÐ  — g d¢g d¢g d¢g}|                      |¦  «        }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}|                      |¦  «        }t          j         g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                      |¦  «        }t          j        ||d	|¬
¦  «        }t          ||¦  «         d S )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Ð0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝÔ$ T¨6Ø23¸$ð@ñ @ô @ˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      óV  — g d¢g d¢g d¢g}|                      |¦  «        }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t          j         |t          ¬¦  «        }|                      |¦  «        }t          j         g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt          ¬¦  «        }|                      |¦  «        }g d
¢g d¢g d¢g d¢g d
¢g d¢g d¢g}t          j         |t          ¬¦  «        }|                      |¦  «        }|                     ||¦  «        }|                     ||                     |¦  «        ¦  «        }|                     ||¦  «        }t          j        |j        t          ¬¦  «        }|                      |¦  «        }t          j	        ||dd|d|¬¦  «         t          ||¦  «         d S )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˜$¥dÐ+Ñ+Ô+ˆØ�zŠz˜$ÑÔˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆØ$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$ð&ˆõ Œj˜¥DÐ)Ñ)Ô)ˆØ�jŠj˜‰oŒoˆØ—>’> # tÑ,Ô,ˆØ�nŠn˜T 2§>¢>°$Ñ#7Ô#7Ñ8Ô8ˆØ—=’= ¨3Ñ/Ô/ˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ˜t V¸!Ø*+°CØ&.°Tð	;ñ 	;ô 	;ð 	;õ 	" # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó@  — t          |¦  «        rt          j        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
          ¬¦  «        }|                     |¦  «        }g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g}t	          j        |t
          ¬¦  «        }|                     |¦  «        }t	          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt
          ¬¦  «        }|                     |¦  «        }|                     ||¦  «        }|                     ||                     |¦  «        ¦  «        }|                     ||¦  «        }t          j
        |||dd¬¦  «        }t          ||¦  «         d S )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<  s:  € Ý�2‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð*ˆõ Œz˜$¥dÐ+Ñ+Ô+ˆØ�zŠz˜$ÑÔˆØ'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'ð)ˆõ Œj˜¥DÐ)Ñ)Ô)ˆØ�jŠj˜‰oŒoˆÝŒzÐ3Ð3Ð3Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4ð6õ >BðCñ Cô Cˆð �zŠz˜$ÑÔˆØ—>’> # tÑ,Ô,ˆØ�nŠn˜T 2§>¢>°$Ñ#7Ô#7Ñ8Ô8ˆØ—=’= ¨3Ñ/Ô/ˆÝÔ$ T¨6¸Ø23¸HðFñ Fô Fˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó.  — t          j        g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }|                     |¦  «        }t	          j        |||ddd¬¦  «        }||u sJ ‚t          t	          j        ||dd¬¦  «        |¦  «         d S )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˜	˜	˜	Ø!˜	˜	Ø!˜	˜	ð#å*.ð0ñ 0ô 0ˆð �JŠJ�q‰MŒMˆØ�MŠM˜!ÑÔˆÝÔ$ Q°!¸AÈ!Ø26ÀDðJñ Jô Jˆà�aˆxˆxˆxˆxÝÝÔ" 1°¸aØ04ð6ñ 6ô 6àñ	ô 	ð 	ð 	ð 	rC   c                 ó  — t          j        g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }d}t          t          ¦  «        5  t          j        ||¬¦  «        }d d d ¦  «         d S # 1 swxY w Y   d S )Nrê   r¶   r   g       @©r0  )r]   r8   rÁ   rr   Ú	TypeErrorr   rÌ   )r;   r<   r=   r0  Ú_s        rA   Útest_binary_erosion38z+TestNdimageMorphology.test_binary_erosion38y  sç   € ÝŒz˜9˜9˜9Ø$˜9˜9Ø$˜9˜9ð&å-1ð3ñ 3ô 3ˆð �zŠz˜$ÑÔˆØˆ
Ý�9Ñ%Ô%ð 	Dð 	DÝÔ& t¸
ÐCÑCÔCˆAð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 	Dð 	Ds   ÁA4Á4A8Á;A8c           
      óD  — t          j        d¦  «        }g d¢g d¢g d¢g}|                     |¦  «        }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|                     |t          ¬¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        |j        t          ¬¦  «        }|                     |¦  «        }t          j        ||d
||¬¦  «         t          ||¦  «         d S ©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˜a‘[”[ˆ
Ø�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆð —:’:˜h­d�:Ñ3Ô3ˆØ—:’:˜hÑ'Ô'ˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ˜t V¸!Ø*4¸Sð	Bñ 	Bô 	Bð 	Bå! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      óB  — t          j        d¦  «        }g d¢g d¢g d¢g}|                     |¦  «        }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t          j        |t          ¬¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        |j        t          ¬¦  «        }|                     |¦  «        }t          j        ||d
||¬¦  «         t          ||¦  «         d S rf  )	r]   Úint64r8   rÁ   rY   rZ   r   rÌ   r	   rg  s          rA   Útest_binary_erosion40z+TestNdimageMorphology.test_binary_erosion40¢  sƒ  € õ ”X˜a‘[”[ˆ
Ø�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)ð+ˆõ ”:˜h­dÐ3Ñ3Ô3ˆØ—:’:˜hÑ'Ô'ˆÝŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ :>ð?ñ ?ô ?ˆð �zŠz˜$ÑÔˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ˜t V¸!Ø*4¸Sð	Bñ 	Bô 	Bð 	Bå! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óÀ   — t          ||¦  «        }|                     g |¬¦  «        }t          j        |¦  «        }||                     d|j        ¬¦  «        k    sJ ‚d S rÊ   )r7   rŠ   r   Úbinary_dilationr8   r   rÍ   s        rA   Útest_binary_dilation01z,TestNdimageMorphology.test_binary_dilation01Â  s_   € å˜˜EÑ"Ô"ˆØ�wŠw�r ˆwÑ'Ô'ˆÝÔ% dÑ+Ô+ˆØ�b—j’j ¨#¬)�jÑ4Ô4Ò4Ð4Ð4Ð4Ð4Ð4rC   c                 ó²   — t          ||¦  «        }|                     g |¬¦  «        }t          j        |¦  «        }||                     d¦  «        k    sJ ‚d S )Nr   F)r7   rY   r   rm  r8   rÍ   s        rA   Útest_binary_dilation02z,TestNdimageMorphology.test_binary_dilation02É  sY   € å˜˜EÑ"Ô"ˆØ�xŠx˜ %ˆxÑ(Ô(ˆÝÔ% dÑ+Ô+ˆØ�b—j’j Ñ'Ô'Ò'Ð'Ð'Ð'Ð'Ð'rC   c                 óÔ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |¦  «        }t	          ||                     dg|j        ¬¦  «        ¦  «         d S ©Nr   r   )r7   rŠ   r   rm  r	   r8   r   rÍ   s        rA   Útest_binary_dilation03z,TestNdimageMorphology.test_binary_dilation03Ð  sb   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°1°#¸S¼Y zÑ'GÔ'GÑHÔHÐHÐHÐHrC   c                 óÆ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |¦  «        }t	          ||                     dg¦  «        ¦  «         d S rÔ   ©r7   rY   r   rm  r	   r8   rÍ   s        rA   Útest_binary_dilation04z,TestNdimageMorphology.test_binary_dilation04×  sZ   € å˜˜EÑ"Ô"ˆØ�xŠx˜˜ 5ˆxÑ)Ô)ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°1°#¡¤Ñ7Ô7Ð7Ð7Ð7rC   c                 óÈ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S ©Nr)   r   r²   ©r7   rŠ   r   rm  r	   r8   rÍ   s        rA   Útest_binary_dilation05z,TestNdimageMorphology.test_binary_dilation05Þ  s^   € å˜˜EÑ"Ô"ˆØ�wŠw˜�s %ˆwÑ(Ô(ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°)°)°)Ñ'<Ô'<Ñ=Ô=Ð=Ð=Ð=rC   c                 óÈ   — t          ||¦  «        }|                     dg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢¦  «        ¦  «         d S )Nr)   r   r   ru  rÍ   s        rA   Útest_binary_dilation06z,TestNdimageMorphology.test_binary_dilation06å  s^   € å˜˜EÑ"Ô"ˆØ�xŠx˜˜ 5ˆxÑ)Ô)ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°)°)°)Ñ'<Ô'<Ñ=Ô=Ð=Ð=Ð=rC   c                 óÚ   — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }t          j        |¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr)   r   r   r²   ©r]   rY   r8   r   rm  r	   rÍ   s        rA   Útest_binary_dilation07z,TestNdimageMorphology.test_binary_dilation07ì  sh   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°)°)°)Ñ'<Ô'<Ñ=Ô=Ð=Ð=Ð=rC   c                 óä   — t          j        dg|¬¦  «        }d|d<   d|d<   |                     |¦  «        }t          j        |¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   r)   r¾   r~  rÍ   s        rA   Útest_binary_dilation08z,TestNdimageMorphology.test_binary_dilation08ô  sq   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰ØˆˆQ‰Ø�zŠz˜$ÑÔˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÚ   — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }t          j        |¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   ©r   r   r   r   r   r~  rÍ   s        rA   Útest_binary_dilation09z,TestNdimageMorphology.test_binary_dilation09ý  sh   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÞ   — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }t          j        |d¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   rï   ©rñ   r½   r~  rÍ   s        rA   Útest_binary_dilation10z,TestNdimageMorphology.test_binary_dilation10  sm   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆÝÔ% d°2Ð6Ñ6Ô6ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÞ   — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }t          j        |d¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   r†  ©r   r   r   r   r   r~  rÍ   s        rA   Útest_binary_dilation11z,TestNdimageMorphology.test_binary_dilation11  sm   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆÝÔ% d°1Ð5Ñ5Ô5ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó
  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     g d¢¦  «        }t          j        ||¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   rê   )r   r   r   r   r   r~  rì   s         rA   Útest_binary_dilation12z,TestNdimageMorphology.test_binary_dilation12  s   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜I˜I˜IÑ&Ô&ˆÝÔ% d¨FÑ3Ô3ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     g d¢¦  «        }t          j        ||d¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   rê   rÐ   rë   r~  rì   s         rA   Útest_binary_dilation13z,TestNdimageMorphology.test_binary_dilation13  s„   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜I˜I˜IÑ&Ô&ˆÝÔ% d¨FÀÐCÑCÔCˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     g d¢¦  «        }t          j        ||d¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   rê   rï   r†  )r   r   r   r   r   r~  rì   s         rA   Útest_binary_dilation14z,TestNdimageMorphology.test_binary_dilation14'  s„   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜I˜I˜IÑ&Ô&ˆÝÔ% d¨F¸2Ð>Ñ>Ô>ˆÝ! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 ó  — t          j        dg|¬¦  «        }d|d<   |                     |¦  «        }|                     g d¢¦  «        }t          j        ||dd¬¦  «        }t          ||                     g d¢¦  «        ¦  «         d S )Nr-   r   r   rê   rï   ©rñ   rÑ   rõ   r~  rì   s         rA   Útest_binary_dilation15z,TestNdimageMorphology.test_binary_dilation150  s�   € åŒx˜˜ 5Ð)Ñ)Ô)ˆØˆˆQ‰Ø�zŠz˜$ÑÔˆØ—’˜I˜I˜IÑ&Ô&ˆÝÔ% d¨FØ-/¸aðAñ Aô Aˆå! # r§z¢z°/°/°/Ñ'BÔ'BÑCÔCÐCÐCÐCrC   c                 óÊ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |¦  «        }t	          ||                     dgg¦  «        ¦  «         d S rr  ry  rÍ   s        rA   Útest_binary_dilation16z,TestNdimageMorphology.test_binary_dilation16:  s`   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°A°3°%Ñ'8Ô'8Ñ9Ô9Ð9Ð9Ð9rC   c                 óÊ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |¦  «        }t	          ||                     dgg¦  «        ¦  «         d S rÔ   ru  rÍ   s        rA   Útest_binary_dilation17z,TestNdimageMorphology.test_binary_dilation17A  s`   € å˜˜EÑ"Ô"ˆØ�xŠx˜˜A˜ eˆxÑ,Ô,ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°A°3°%Ñ'8Ô'8Ñ9Ô9Ð9Ð9Ð9rC   c                 óÌ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢g¦  «        ¦  «         d S )Nr   r)   r   r²   ry  rÍ   s        rA   Útest_binary_dilation18z,TestNdimageMorphology.test_binary_dilation18H  sb   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°9°9°9°+Ñ'>Ô'>Ñ?Ô?Ð?Ð?Ð?rC   c           	      óØ   — t          ||¦  «        }|                     ddg|¬¦  «        }t          j        |¦  «        }t	          ||                     g d¢g d¢g d¢g¦  «        ¦  «         d S rx  ry  rÍ   s        rA   Útest_binary_dilation19z,TestNdimageMorphology.test_binary_dilation19O  s†   € å˜˜EÑ"Ô"ˆØ�wŠw˜˜1�v UˆwÑ+Ô+ˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°9°9°9Ø3<°9°9Ø3<°9°9ð3>ñ (?ô (?ñ 	@ô 	@ð 	@ð 	@ð 	@rC   c           	      óê   — t          j        ddg|¬¦  «        }d|d<   |                     |¦  «        }t          j        |¦  «        }t          ||                     g d¢g d¢g d¢g¦  «        ¦  «         d S )Nr)   r   r   ©r   r   r¶   r²   r~  rÍ   s        rA   Útest_binary_dilation20z,TestNdimageMorphology.test_binary_dilation20X  s�   € åŒx˜˜A˜ eÐ,Ñ,Ô,ˆØˆˆT‰
Ø�zŠz˜$ÑÔˆÝÔ% dÑ+Ô+ˆÝ! # r§z¢z°9°9°9Ø3<°9°9Ø3<°9°9ð3>ñ (?ô (?ñ 	@ô 	@ð 	@ð 	@ð 	@rC   c           	      ó@  — t          j        dd¦  «        }|                     |¦  «        }t          j        ddg|¬¦  «        }d|d<   |                     |¦  «        }t          j        ||¦  «        }t          ||                     g d¢g d¢g d¢g¦  «        ¦  «         d S )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°1°aÑ8Ô8ˆØ—’˜FÑ#Ô#ˆÝŒx˜˜A˜ eÐ,Ñ,Ô,ˆØˆˆT‰
Ø�zŠz˜$ÑÔˆÝÔ% d¨FÑ3Ô3ˆÝ! # r§z¢z°9°9°9Ø3<°9°9Ø3<°9°9ð3>ñ (?ô (?ñ 	@ô 	@ð 	@ð 	@ð 	@rC   c                 ó*  — t          ||¦  «        }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	          ||¦  «         d S )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Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô% dÑ+Ô+ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó.  — t          ||¦  «        }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        |d¬¦  «        }t	          ||¦  «         d S )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Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô% d¸Ð;Ñ;Ô;ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó.  — t          ||¦  «        }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        |d¬¦  «        }t	          ||¦  «         d S )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Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô% d°6Ð:Ñ:Ô:ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó0  — t          ||¦  «        }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        |dd¬¦  «        }t	          ||¦  «         d S )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Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô% d°6ÈÐJÑJÔJˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó€  — t          ||¦  «        }t          j        d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|¬¦  «        }t          j        ||¦  «        }t          ||¦  «         d S )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°1°aÑ8Ô8ˆØ,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —’˜FÑ#Ô#ˆØ—:’:˜hÑ'Ô'ˆØ�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô% d¨FÑ3Ô3ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óf  — 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}|                     |¦  «        }|                     |¦  «        }|                     g d	¢g d¢g d	¢g d¢g d
¢g d¢g d	¢g d	¢g|¬¦  «        }t          j        ||¦  «        }t	          ||¦  «         d S )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ã  s0  € å˜˜EÑ"Ô"ˆØ�a�&Ø�a�&ðˆà,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —’˜FÑ#Ô#ˆØ—:’:˜hÑ'Ô'ˆØ�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô% d¨FÑ3Ô3ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óþ   — t          ||¦  «        }g d¢g d¢g d¢g d¢g}|                     |¦  «        }|                     g d¢g d¢g d¢g d¢g|¬¦  «        }t          j        |d¬¦  «        }t	          ||¦  «         d S )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ý  s±   € å˜˜EÑ"Ô"ˆØ �L�LØ �L�LØ �L�LØ �L�Lð"ˆð —:’:˜hÑ'Ô'ˆØ�zŠz˜<˜<˜<Ø'˜<˜<Ø'˜<˜<Ø'˜<˜<ð)ð 16ð ñ 7ô 7ˆõ Ô% d¸Ð;Ñ;Ô;ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óž  — t          |¦  «        rt          j        d¦  «         ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|                     |¦  «        }|                     |¦  «        }t	          j        g d¢g d¢g d¢g d¢g d¢gt
          ¬¦  «        }|                     |¦  «        }t          j        ||d	¬
¦  «        }t          ||¦  «         d S )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‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�a�&Ø�a�&ðˆà#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�Oð	%ˆð
 —’˜FÑ#Ô#ˆØ—:’:˜hÑ'Ô'ˆÝŒz˜?˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?ð	,õ 48ð	9ñ 9ô 9ˆð
 �zŠz˜$ÑÔˆÝÔ% d¨F¸qÐAÑAÔAˆÝ! # xÑ0Ô0Ð0Ð0Ð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}|                     |¦  «        }|                     |¦  «        }|                     g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        |j        t          ¬¦  «        }|                     |¦  «        }t          j	        ||d	|¬
¦  «         t          ||¦  «         d S )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"  s1  € å�2‰;Œ;ð 	RÝŒLÐPÑQÔQÐQØ�a�&Ø�a�&ðˆà#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�Oð	%ˆð
 —’˜FÑ#Ô#ˆØ—:’:˜hÑ'Ô'ˆØ�zŠz˜?˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?ð	,õ 48ð	 ñ 9ô 9ˆð
 �zŠz˜$ÑÔˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ  f¸À3ÐGÑGÔGÐGÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óž  — t          |¦  «        rt          j        d¦  «         ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|                     |¦  «        }|                     |¦  «        }t	          j        g d¢g d¢g d¢g d¢g d¢gt
          ¬	¦  «        }|                     |¦  «        }t          j        ||d
¬¦  «        }t          ||¦  «         d S )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}|                     |¦  «        }|                     |¦  «        }t	          j        g d¢g d¢g d¢g d¢g d¢gt
          ¬	¦  «        }|                     |¦  «        }t	          j        |j        t
          ¬	¦  «        }|                     |¦  «        }t          j	        ||d
|¬¦  «         t          ||¦  «         d S )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‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�a�&Ø�a�&ðˆà#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�Oð	%ˆð
 —’˜FÑ#Ô#ˆØ—:’:˜hÑ'Ô'ˆÝŒz˜?˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?ð	,õ 48ð	9ñ 9ô 9ˆð
 �zŠz˜$ÑÔˆÝŒh�t”z­Ð.Ñ.Ô.ˆØ�jŠj˜‰oŒoˆÝÔ  f¸À3ÐGÑGÔGÐGÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óŽ  — t          |¦  «        rt          j        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
          ¬	¦  «        }|                     |¦  «        }t	          j        g d¢g d¢g d
¢g d¢g d¢g d¢g d¢g d¢gt
          ¬	¦  «        }|                     |¦  «        }t	          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt
          ¬	¦  «        }|                     |¦  «        }t          j        ||d|d¬¦  «        }t          ||¦  «         d S )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‰;Œ;ð 	RÝŒLÐPÑQÔQÐQØ�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆÝ”:Ð7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7ð9õ AEðFñ Fô Fˆð —:’:˜hÑ'Ô'ˆÝŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆÝŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆåÔ% d¨F¸rØ+/¸aðAñ Aô Aˆå! # xÑ0Ô0Ð0Ð0Ð0rC   z)inplace output= arrays are numpy-specificc                 ó  — t          |¦  «        rt          j        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        g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢gt
          ¬¦  «        }|                     |¦  «        }t	          j        |j        t
          ¬¦  «        }|                     |¦  «        }t          j	        ||d|d¬¦  «        }t          ||¦  «         d S )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‰;Œ;ð 	RÝŒLÐPÑQÔQÐQà�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆõ ŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆÝŒx˜œ
­$Ð/Ñ/Ô/ˆØ�zŠz˜$ÑÔˆÝÔ% d¨F¸rØ+/¸aðAñ Aô Aˆå! # xÑ0Ô0Ð0Ð0Ð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        ||¦  «        }|                     |¦  «        }|                     |¦  «        }|                     g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬¦  «        }t          j        ||dd¬¦  «        }t          ||¦  «         d S )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Ð3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ñ 6ô 6ˆð )Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð*ˆõ Œz˜$¥dÐ+Ñ+Ô+ˆå”> # tÑ,Ô,ˆÝŒn˜T¥2¤>°$Ñ#7Ô#7Ñ8Ô8ˆÝ”= ¨3Ñ/Ô/ˆà�zŠz˜$ÑÔˆØ—:’:˜hÑ'Ô'ˆà�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô% d°Ø-3À!ðEñ Eô Eˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óÈ   — t          j        g t          ¬¦  «        }|                     |¦  «        }t	          j        |d¬¦  «        }||                     d¦  «        k    sJ ‚d S )Nr   rï   ra  F)r]   rY   rÁ   r8   r   rm  )r;   r<   r=   r>   s       rA   Útest_binary_dilation36z,TestNdimageMorphology.test_binary_dilation36ã  s_   € åŒx˜¥$Ð'Ñ'Ô'ˆØ�zŠz˜$ÑÔˆÝÔ% d°rÐ:Ñ:Ô:ˆØ�b—j’j Ñ'Ô'Ò'Ð'Ð'Ð'Ð'Ð'rC   c                 óF  — 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          ¬¦  «        }|                      |¦  «        }t          j         g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                      |¦  «        }t          j         g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                      |¦  «        }t          j        |||d
¬¦  «        }t          ||¦  «         d S )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Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7ð9õ AEðFñ Fô Fˆð —:’:˜hÑ'Ô'ˆÝŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆÝŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆÝÔ(¨¨vØ.2ÀðDñ Dô Dˆå! # xÑ0Ô0Ð0Ð0Ð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}|                      |¦  «        }|                      |¦  «        }t          j         g d¢g d¢g d¢g d¢g d¢g d	¢g d¢g d¢gt          ¬
¦  «        }|                      |¦  «        }t          j        |j        t          ¬
¦  «        }|                      |¦  «        }t          j        |||d¬¦  «        }t          ||¦  «         d S )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  sr  € Ø�)�)Ø�)�)Ø�)�)ðˆð -Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —:’:˜hÑ'Ô'ˆØ—’˜FÑ#Ô#ˆÝŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆÝŒx˜œ
­$Ð/Ñ/Ô/ˆØ�zŠz˜$ÑÔˆÝÔ(¨¨vØ.2ÀðDñ Dô Dˆå! # xÑ0Ô0Ð0Ð0Ð0rC   c                 óö   — |                      t          j        g t          ¬¦  «        ¦  «        }|                      t          j        g t          ¬¦  «        ¦  «        }t	          j        |¦  «        }||k    sJ ‚d S )Nr   )r8   r]   rY   rÁ   r   rØ  )r;   r<   r=   r@   r>   s        rA   Útest_binary_propagation03z/TestNdimageMorphology.test_binary_propagation03+  sc   € à�zŠz�"œ( 2­TÐ2Ñ2Ô2Ñ3Ô3ˆØ—:’:�bœh rµÐ6Ñ6Ô6Ñ7Ô7ˆÝÔ(¨Ñ.Ô.ˆØ�hŠˆˆˆˆˆrC   c                 ó*  — t          ||¦  «        }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	          ||¦  «         d S )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Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô$ TÑ*Ô*ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó€  — t          ||¦  «        }t          j        d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|¬	¦  «        }t          j        ||¦  «        }t          ||¦  «         d S )
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°1°aÑ8Ô8ˆØ,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —:’:˜hÑ'Ô'ˆØ—’˜FÑ#Ô#ˆØ�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô$ T¨6Ñ2Ô2ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c                 ó*  — t          ||¦  «        }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	          ||¦  «         d S )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                 ó€  — t          ||¦  «        }t          j        d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|¬	¦  «        }t          j        ||¦  «        }t          ||¦  «         d S )
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           
      ób  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        |¦  «        }t          ||¦  «         d S )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Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7ð9õ AEðFñ Fô Fˆð —:’:˜hÑ'Ô'ˆåŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆåÔ'¨Ñ-Ô-ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      ób  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        |¦  «        }t          ||¦  «         d S )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Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7ð9õ AEðFñ Fô Fˆð —:’:˜hÑ'Ô'ˆÝŒzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5õ =AðBñ Bô Bˆð �zŠz˜$ÑÔˆÝÔ'¨Ñ-Ô-ˆÝ! # xÑ0Ô0Ð0Ð0Ð0rC   c           
      ób  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        |¦  «        }t          ||¦  «         d S )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           
      ón  — t          j        g d¢g d¢g d¢gt          ¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¦  «        }|                     |¦  «        }|dk    rt          ||¬	¦  «        }nt          |¬
¦  «        }|dv}	|	r||d<   n|dk    rt	          j        d¦  «         t          t          |¦  «        }
 |
||fi |¤Ž}d}|                     |g|z  |¬¦  «        }|                     |g|z  |¬¦  «        }g d¢}| 	                    |¦  «         t          |¦  «        st          |¦  «        r@|                     t          j        |j        t          ¦  «        ¦  «        } |
||f||dœ|¤Ž n |
||fd|i|¤Ž}t          ||¦  «         d S )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˜Y˜YØ&˜Y˜YØ&˜Y˜Yð(å)-ñ/ô /ˆð —’˜FÑ#Ô#ˆåŒzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2õ 48ñ9ô 9ˆð �zŠz˜$ÑÔˆØÐ,Ò,Ð,Ý &°&Ð9Ñ9Ô9ˆFˆFå Ð(Ñ(Ô(ˆFØ$ð -Bð BÐàð 	IØ%1ˆF�>Ñ"Ð"Ø˜QÒÐÝŒKÐGÑHÔHÐHÝ•w 	Ñ*Ô*ˆØ�4˜˜fÐ/Ð/¨Ð/Ð/ˆð ˆØ—8’8˜X˜J¨Ñ/°k�8ÑBÔBˆØ�xŠx˜˜ ™¨kˆxÑ:Ô:ˆð ˆyˆyˆØ�Š�KÑ Ô Ð Ý�B‰<Œ<ð 	:�7 2™;œ;ð 	:Ø—*’*�RœX d¤jµ$Ñ7Ô7Ñ8Ô8ˆCØˆD��vÐ? c°Ð?Ð?¸Ð?Ð?Ð?Ð?ð �$�t˜VÐ9Ð9¨$Ð9°&Ð9Ð9ˆCÝ˜˜XÑ&Ô&Ð&Ð&Ð&rC   c           	      óü   — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        ||¬¦  «        }t          ||                      g d¢g d¢g d	¢g¦  «        ¦  «         d S )
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
	  s²   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ% e°yÐAÑAÔAˆÝ! &Ø"$§*¢*¨o¨o¨oØ.=¨o¨oØ.=¨o¨oð.?ñ #@ô #@ñ	Aô 	Að 	Að 	Að 	ArC   zoutput array is read-only.z(https://github.com/cupy/cupy/issues/8398c           	      óþ   — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «         t          ||                      g d¢g d¢g d	¢g¦  «        ¦  «         d S )
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	  s²   € ð —
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ˜U¨iÀÐFÑFÔFÐFÝ! %Ø"$§*¢*¨o¨o¨oØ.=¨o¨oØ.=¨o¨oð.?ñ #@ô #@ñ	
ô 	
ð 	
ð 	
ð 	
rC   c           	      ó4  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          ||                      g d¢g d	¢g d
¢g¦  «        ¦  «         d S )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˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ% e°yØ09ð;ñ ;ô ;ˆå! &Ø"$§*¢*¨o¨o¨oØ.=¨o¨oØ.=¨o¨oð.?ñ #@ô #@ñ	
ô 	
ð 	
ð 	
ð 	
rC   c           	      ó4  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          ||                      g d¢g d	¢g d
¢g¦  «        ¦  «         d S )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           	      óü   — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        ||¬¦  «        }t          ||                      g d¢g d¢g d	¢g¦  «        ¦  «         d S )
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@	  s­   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ& u¸	ÐBÑBÔBˆÝ! &Ø"$§*¢*¨o¨o¨oØ.=¨o¨oØ.=¨o¨oð.?ñ #@ô #@ñ	
ô 	
ð 	
ð 	
ð 	
rC   c           	      ó4  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          ||                      g d¢g d	¢g d
¢g¦  «        ¦  «         d S )Nr  r  r  rÅ   rê   r   r  r#  r$  r%  r&  r  s         rA   Útest_grey_dilation02z*TestNdimageMorphology.test_grey_dilation02L	  sÔ   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ& u¸	Ø1:ð<ñ <ô <ˆå! &Ø"$§*¢*¨o¨o¨oØ.=¨o¨oØ.=¨o¨oð.?ñ #@ô #@ñ	
ô 	
ð 	
ð 	
ð 	
rC   c           	      ó4  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          ||                      g d¢g d	¢g d
¢g¦  «        ¦  «         d S )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˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ& u¸	Ø1:ð<ñ <ô <ˆå! &Ø"$§*¢*Ð.?Ð.?Ð.?Ø.?Ð.?Ð.?Ø.=¨o¨oð.?ñ #@ô #@ñ	
ô 	
ð 	
ð 	
ð 	
rC   c                 ó  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        ||¬¦  «        }t          j        ||¬¦  «        }t          j        ||¬¦  «        }t          ||¦  «         d S ©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	  s£   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ" 5°IÐ>Ñ>Ô>ˆÝÔ(¨¸	ÐBÑBÔBˆÝÔ% e°yÐAÑAÔAˆÝ! &¨(Ñ3Ô3Ð3Ð3Ð3rC   c                 óX  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }t          ||¦  «         d S ©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˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ" 5°IØ-6ð8ñ 8ô 8ˆåÔ(¨¸	Ø3<ð>ñ >ô >ˆåÔ% e°yØ09ð;ñ ;ô ;ˆå! &¨(Ñ3Ô3Ð3Ð3Ð3rC   c                 ó  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        ||¬¦  «        }t          j        ||¬¦  «        }t          j        ||¬¦  «        }t          ||¦  «         d S r/  ©r8   r   r'  r  Úgrey_closingr	   r2  s          rA   Útest_grey_closing01z)TestNdimageMorphology.test_grey_closing01€	  s£   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ# E°YÐ?Ñ?Ô?ˆÝÔ'¨°yÐAÑAÔAˆÝÔ% e°yÐAÑAÔAˆÝ! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 óX  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }t          ||¦  «         d S r5  r9  r6  s           rA   Útest_grey_closing02z)TestNdimageMorphology.test_grey_closing02Š	  sÜ   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ# E°YØ.7ð9ñ 9ô 9ˆåÔ'¨°yØ2;ð=ñ =ô =ˆåÔ% e°yØ09ð;ñ ;ô ;ˆå! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 ó¦  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }||z
  }|                     |j        |j        ¬¦  «        }t          j        ||||¬	¦  «         t          ||¦  «         d S ©
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˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ$ U°iØ/8ð:ñ :ô :ˆåÔ# E°YØ.7ð9ñ 9ô 9ˆà˜$‘;ˆØ—’˜%œ+¨U¬[�Ñ9Ô9ˆÝÔ& u¸	Ø1:À6ð	Kñ 	Kô 	Kð 	Kå! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 ób  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }||z
  }t          j        |||¬¦  «        }t          ||¦  «         d S r5  )r8   r   r'  r  rA  r	   rB  s	            rA   Útest_morphological_gradient02z3TestNdimageMorphology.test_morphological_gradient02©	  sè   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ$ U°iØ/8ð:ñ :ô :ˆåÔ# E°YØ.7ð9ñ 9ô 9ˆà˜$‘;ˆÝÔ/°ÀØ:CðEñ Eô Eˆå! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 ó²  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }||z   d|z  z
  }|                     |j        |j        ¬	¦  «        }t          j        ||||¬
¦  «         t          ||¦  «         d S )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˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ$ U°iØ/8ð:ñ :ô :ˆåÔ# E°YØ.7ð9ñ 9ô 9ˆà˜$‘;  U¡Ñ*ˆØ—’˜%œ+¨U¬[�Ñ9Ô9ˆÝÔ% e°yØ09À&ð	Jñ 	Jô 	Jð 	Jå! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 ón  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }t          j        |||¬¦  «        }||z   d|z  z
  }t          j        |||¬¦  «        }t          ||¦  «         d S )	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˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ$ U°iØ/8ð:ñ :ô :ˆåÔ# E°YØ.7ð9ñ 9ô 9ˆà˜$‘;  U¡Ñ*ˆÝÔ.¨uÀ	Ø9BðDñ Dô Dˆå! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 óx  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }||z
  }|                     |j        |j        ¬¦  «        }t          j        ||||¬	¦  «         t          ||¦  «         d S r?  )r8   r   r1  rY   rZ   r   Úwhite_tophatr	   r6  s           rA   Útest_white_tophat01z)TestNdimageMorphology.test_white_tophat01Ø	  sé   € à—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ" 5°IØ-6ð8ñ 8ô 8ˆà˜3‘;ˆØ—’˜%œ+¨U¬[�Ñ9Ô9ˆÝÔ˜U¨iØ'0¸ð	Añ 	Aô 	Að 	Aå! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 ó4  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }||z
  }t          j        |||¬¦  «        }t	          ||¦  «         d S r5  )r8   r   r1  rN  r	   r6  s           rA   Útest_white_tophat02z)TestNdimageMorphology.test_white_tophat02ç	  sÇ   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ" 5°IØ-6ð8ñ 8ô 8ˆà˜3‘;ˆÝÔ% e°yØ09ð;ñ ;ô ;ˆå! (¨FÑ3Ô3Ð3Ð3Ð3rC   z	cupy#8399c           
      óÆ  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        dt          ¬¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d	¢g d
¢g d	¢g d¢gt          ¬¦  «        }|                     |¦  «        }t	          j        ||¬¦  «        }t          ||¦  «         d S )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Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1ð3õ ;?ð@ñ @ô @ˆð —
’
˜5Ñ!Ô!ˆÝ”G˜F­$Ð/Ñ/Ô/ˆ	Ø—J’J˜yÑ)Ô)ˆ	Ý”:Ð4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4ð6õ >BðCñ Cô Cˆð —:’:˜hÑ'Ô'ˆåÔ% e°yÐAÑAÔAˆÝ˜ &Ñ)Ô)Ð)Ð)Ð)rC   c                 ó,  — t          j        dt          ¬¦  «        }t          j        dt          ¬¦  «        }|                     |¦  «        }|                     |¦  «        }|                     ||j        ¬¦  «        }t          j        |||¬¦  «         d S ©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
  sƒ   € å”�q¥Ð%Ñ%Ô%ˆÝ”G˜F­$Ð/Ñ/Ô/ˆ	à—
’
˜5Ñ!Ô!ˆØ—J’J˜yÑ)Ô)ˆ	ð —’˜u¨B¬J�Ñ7Ô7ˆÝÔ˜U¨iÀÐGÑGÔGÐGÐGÐGrC   c                 óx  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }||z
  }|                     |j        |j        ¬¦  «        }t          j        ||||¬	¦  «         t          ||¦  «         d S r?  )r8   r   r:  rY   rZ   r   Úblack_tophatr	   r6  s           rA   Útest_black_tophat01z)TestNdimageMorphology.test_black_tophat01
  sé   € à—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ" 5°IØ-6ð8ñ 8ô 8ˆà˜‘;ˆØ—’˜%œ+¨U¬[�Ñ9Ô9ˆÝÔ˜U¨iØ'0¸ð	Añ 	Aô 	Að 	Aå! (¨FÑ3Ô3Ð3Ð3Ð3rC   c                 ó4  — |                      g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }|                      g d¢g d¢g¦  «        }t          j        |||¬¦  «        }||z
  }t          j        |||¬¦  «        }t	          ||¦  «         d S r5  )r8   r   r:  r`  r	   r6  s           rA   Útest_black_tophat02z)TestNdimageMorphology.test_black_tophat02(
  sÇ   € Ø—
’
˜O˜O˜OØ+˜O˜OØ+˜O˜Oð-ñ .ô .ˆð —J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	Ø—J’J 	 	 	¨9¨9¨9Ð5Ñ6Ô6ˆ	ÝÔ" 5°IØ-6ð8ñ 8ô 8ˆà˜‘;ˆÝÔ% e°yØ09ð;ñ ;ô ;ˆå! (¨FÑ3Ô3Ð3Ð3Ð3rC   zcupy/cupy#8399c           
      óÆ  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt          ¬¦  «        }|                     |¦  «        }t          j        dt          ¬¦  «        }|                     |¦  «        }t          j        g d¢g d¢g d¢g d¢g d	¢g d¢g d
¢gt          ¬¦  «        }|                     |¦  «        }t	          j        ||¬¦  «        }t          ||¦  «         d S )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                 ó$  — |                      t          j        dt          ¬¦  «        ¦  «        }|                      t          j        dt          ¬¦  «        ¦  «        }|                     ||j        ¬¦  «        }t          j        |||¬¦  «         d S rZ  )	r8   r]   r[  rÁ   rŠ   r\  r[   r   r`  r]  s        rA   Útest_black_tophat04z)TestNdimageMorphology.test_black_tophat04N
  sy   € à—
’
�2œ6 !­4Ð0Ñ0Ô0Ñ1Ô1ˆØ—J’J�rœw vµTÐ:Ñ:Ô:Ñ;Ô;ˆ	ð —’˜u¨B¬J�Ñ7Ô7ˆÝÔ˜U¨iÀÐGÑGÔGÐGÐGÐGrC   Úmode)ÚreflectÚconstantÚnearestÚmirrorÚwrapÚfootprint_mode)Úsizer  rZ  )r  r'  r1  r:  rI  rA  rN  r`  c           
      óÄ  — |                      g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          ||¬¦  «        }|d	k    rd
|d	<   n|                      g d¢g d¢g¦  «        |d<   |dk    r|                     |d         ¦  «        |d<   t          t          |¦  «        }	 |	|fi |¤Ž}
d}|                     |
g|z  |¬¦  «        }
|                     |g|z  |¬¦  «        }g d¢}|                     |¦  «         t          |¦  «        st          |¦  «        r.| 	                    |
j
        |
j        ¬¦  «        } |	|f||dœ|¤Ž n |	|fd|i|¤Ž}t          ||
¦  «         d S )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
  sÙ  € ð, �zŠzÐ0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð2ñ 3ô 3ˆõ ˜V¨$Ð/Ñ/Ô/ˆØ˜VÒ#Ð#Ø#ˆF�6‰NˆNà"$§*¢*¨i¨i¨i¸¸¸Ð-CÑ"DÔ"DˆF�;ÑØ˜[Ò(Ð(Ø"$§,¢,¨v°kÔ/BÑ"CÔ"CˆF�;ÑÝ•w 	Ñ*Ô*ˆØ�4˜Ð'Ð' Ð'Ð'ˆð ˆØ—8’8˜X˜J¨Ñ/°k�8ÑBÔBˆØ�xŠx˜˜ ™¨kˆxÑ:Ô:ˆð ˆyˆyˆØ�Š�KÑ Ô Ð å�B‰<Œ<ð 	2�7 2™;œ;ð 	2Ø—(’(˜8œ>°´�(Ñ@Ô@ˆCØˆD�Ð7˜c¨Ð7Ð7°Ð7Ð7Ð7Ð7ð �$�tÐ1Ð1 $Ð1¨&Ð1Ð1ˆCÝ˜˜XÑ&Ô&Ð&Ð&Ð&rC   c                 ó:  — t          |¦  «        s#t          |¦  «        st          j        d¦  «         t	          ||¦  «        }g d¢g d¢g d¢g}|                     |¦  «        }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        |j        t          ¬¦  «        ¦  «        }t          j        |||¬¦  «         t          ||¦  «         d S )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�
  si  € å˜‘”ð 	>¥¨¡¤ð 	>ÝŒLÐ<Ñ=Ô=Ð=å˜˜EÑ"Ô"ˆØ�)�)Ø�)�)Ø�)�)ðˆð —’˜FÑ#Ô#ˆØ#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�Oð%ˆð —:’:˜hÑ'Ô'ˆØ�zŠz˜?˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?Ø*˜?˜?ð,ð 49ð ñ :ô :ˆð �jŠj�œ $¤*µDÐ9Ñ9Ô9Ñ:Ô:ˆÝÔ" 4¨¸Ð<Ñ<Ô<Ð<Ý! (¨CÑ0Ô0Ð0Ð0Ð0rC   c                 ó<  — t          ||¦  «        }g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}|                     |¦  «        }|                     |¦  «        }|                     g d¢g d¢g d¢g d¢g|¬¦  «        }t          j        ||¦  «        }t	          ||¦  «         d S )	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Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô(¨¨vÑ6Ô6ˆÝ! (¨CÑ0Ô0Ð0Ð0Ð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}|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬¦  «        }t          j        |||¦  «        }t	          ||¦  «         d S )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Á
  sj  € å˜˜EÑ"Ô"ˆØ�9�9Ø�9�9Ø�9�9ðˆð �9�9Ø�9�9Ø�9�9ðˆð -Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð.ˆð —*’*˜WÑ%Ô%ˆØ—*’*˜WÑ%Ô%ˆØ—:’:˜hÑ'Ô'ˆØ�zŠzÐ3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ð =Bð ñ Cô Cˆõ Ô(¨¨w¸Ñ@Ô@ˆÝ! (¨CÑ0Ô0Ð0Ð0Ð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ÑRÔRØ„[×Ò˜W eÑ,Ô,ð.0ð .0ñ -Ô,ñ SÔRð.0ð` Ð�vÐ&QÐRÑRÔRØ„[×Ò˜W eÑ,Ô,ð.0ð .0ñ -Ô,ñ SÔRð.0ð` Ð�vÐ&QÐRÑRÔRØ„[×Ò˜W eÑ,Ô,ð.0ð .0ñ -Ô,ñ SÔRð.0ð` ÐØÐKðñ ô ð „[×Ò˜W eÑ,Ô,ð0/ð 0/ñ -Ô,ñô ð0/ðd Ð�vÐ&QÐRÑRÔRØ„[×Ò˜W eÑ,Ô,ð-0ð -0ñ -Ô,ñ SÔRð-0ð^ Ð�vÐ&QÐRÑRÔRØ„[×Ò˜W eÑ,Ô,ð-0ð -0ñ -Ô,ñ SÔRð-0ð^ð ð ð& „[×Ò˜W eÑ,Ô,ð'0ð '0ñ -Ô,ð'0ðR „[×Ò˜W eÑ,Ô,ð&0ð &0ñ -Ô,ð&0ðP ÐØÐIðñ ô ð „[×Ò˜W eÑ,Ô,ð//ð //ñ -Ô,ñô ð//ðb ÐØÐRðñ ô ðð ñô ðð( „[×Ò˜W eÑ,Ô,ð%ð %ñ -Ô,ð%ð* „[×Ò˜W eÑ,Ô,ð*ð *ñ -Ô,ð*ð< ÐØÐDðñ ô ð „[×Ò˜W eÑ,Ô,ð:/ð :/ñ -Ô,ñô ð:/ðx „[×Ò˜W eÑ,Ô,ð,ð ,ñ -Ô,ð,ð$ „[×Ò˜W eÑ,Ô,ð,ð ,ñ -Ô,ð,ð$-ð -ð -ð
 ÐØÐRðñ ô ðð ñô ðð(ð ð ð5ð 5ð 5ð7ð 7ð 7ð7ð 7ð 7ð1ð 1ð 1ð1ð 1ð 1ð ð  ð  ð  „[×Ò˜W eÑ,Ô,ð5ð 5ñ -Ô,ð5ð „[×Ò˜W eÑ,Ô,ð5ð 5ñ -Ô,ð5ð „[×Ò˜W eÑ,Ô,ð8ð 8ñ -Ô,ð8ð „[×Ò˜W eÑ,Ô,ð8ð 8ñ -Ô,ð8ð „[×Ò˜W eÑ,Ô,ð>ð >ñ -Ô,ð>ð „[×Ò˜W eÑ,Ô,ð>ð >ñ -Ô,ð>ð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ð:ð :ñ -Ô,ð:ð „[×Ò˜W eÑ,Ô,ð:ð :ñ -Ô,ð:ð „[×Ò˜W eÑ,Ô,ð@ð @ñ -Ô,ð@ð „[×Ò˜W eÑ,Ô,ð@ð @ñ -Ô,ð@ð „[×Ò˜W eÑ,Ô,ð@ð @ñ -Ô,ð@ð „[×Ò˜W eÑ,Ô,ð@ð @ñ -Ô,ð@ð „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð, „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð0 „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð0 „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð4 „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð61ð 1ð 1ð8 ÐØÐHðñ ô ð1ð 1ñô ð1ð81ð 1ð 1ð8 ÐØÐHðñ ô ð"2ð "2ñô ð"2ðH ÐØÐHðñ ô ð1ð 1ñô ð1ð81ð 1ð 1ð8"1ð "1ð "1ðH1ð 1ð 1ðB ÐØÐHðñ ô ð'1ð '1ñô ð'1ðR*1ð *1ð *1ðX ÐØÐHðñ ô ðð ñô ððDð Dð Dð ÐØÐHðñ ô ð1ð 1ñô ð1ð: ÐØÐHðñ ô ð1ð 1ñô ð1ð: „[×Ò˜W eÑ,Ô,ð5ð 5ñ -Ô,ð5ð „[×Ò˜W eÑ,Ô,ð(ð (ñ -Ô,ð(ð „[×Ò˜W eÑ,Ô,ðIð Iñ -Ô,ðIð „[×Ò˜W eÑ,Ô,ð8ð 8ñ -Ô,ð8ð „[×Ò˜W eÑ,Ô,ð>ð >ñ -Ô,ð>ð „[×Ò˜W eÑ,Ô,ð>ð >ñ -Ô,ð>ð „[×Ò˜W eÑ,Ô,ð>ð >ñ -Ô,ð>ð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ðDð Dñ -Ô,ðDð „[×Ò˜W eÑ,Ô,ð:ð :ñ -Ô,ð:ð „[×Ò˜W eÑ,Ô,ð:ð :ñ -Ô,ð:ð „[×Ò˜W eÑ,Ô,ð@ð @ñ -Ô,ð@ð „[×Ò˜W eÑ,Ô,ð@ð @ñ -Ô,ð@ð „[×Ò˜W eÑ,Ô,ð@ð @ñ -Ô,ð@ð „[×Ò˜W eÑ,Ô,ð	@ð 	@ñ -Ô,ð	@ð „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð, „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð, „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð, „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð, „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð0 „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð2 „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð1ð 1ð 1ð, Ð˜dÐ+NÐOÑOÔOð1ð 1ñ PÔOð1ð.1ð 1ð 1ð, Ð˜dÐ+NÐOÑOÔOð1ð 1ñ PÔOð1ð0%1ð %1ð %1ðN ÐØÐHðñ ô ð1ð 1ñô ð1ð> „[×Ò˜W eÑ,Ô,ð.1ð .1ñ -Ô,ð.1ð`(ð (ð (ð"1ð "1ð "1ðH1ð 1ð 1ð:ð ð ð „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð, „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð0 „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð, „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð01ð 1ð 1ð,1ð 1ð 1ð(1ð 1ð 1ð( Ð˜tÐ$Ñ$Ô$ØÐØÐKðMñ Mô MàÐØÐLðNñ Nô Nà„[×Ò˜^¨Q°¨FÑ3Ô3Ø„[×Ò˜X¨°Ð'8Ñ9Ô9Ø„[×Ò˜]¨I¨I¨IÑ6Ô6Ø„[×Ò˜[ð +@ð +@ð +@ñ Aô Að)'ð )'ñAô Añ 7Ô6ñ :Ô9ñ 4Ô3ñNô NñMô Mñ %Ô$ð)'ðV	Að 	Að 	Að Ð�kÐ*FÐGÑGÔGØÐ�vÐ&PÐQÑQÔQð
ð 
ñ RÔQñ HÔGð
ð
ð 
ð 
ð
ð 
ð 
ð

ð 

ð 

ð
ð 
ð 
ð
ð 
ð 
ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð Ð˜dÐ+NÐOÑOÔOð4ð 4ñ PÔOð4ð 4ð 4ð 4ð Ð˜dÐ+NÐOÑOÔOð4ð 4ñ PÔOð4ð 4ð 4ð 4ð Ð�kÐ*FÐGÑGÔGð4ð 4ñ HÔGð4ð4ð 4ð 4ð Ð�v kÐ2Ñ2Ô2ð*ð *ñ 3Ô2ð*ð0 Ð�kÐ*FÐGÑGÔGð	Hð 	Hñ HÔGð	Hð Ð�kÐ*FÐGÑGÔGð4ð 4ñ HÔGð4ð4ð 4ð 4ð Ð�vÐ&6Ð7Ñ7Ô7ð*ð *ñ 8Ô7ð*ð0 Ð�kÐ*FÐGÑGÔGðHð Hñ HÔGðHð Ð˜tÐ$Ñ$Ô$ØÐØÐKðMñ Mô MàÐØÐLðNñ Nô Nà„[×Ò˜X¨°Ð'8Ñ9Ô9Ø„[×Ò˜]¨I¨I¨IÑ6Ô6Ø„[×Ò˜Vð &8ð &8ð &8ñ 9ô 9à„[×ÒÐ-ð 0=ð 0=ð 0=ñ >ô >à„[×Ò˜[ð +;ð +;ð +;ñ <ô <ð#'ð #'ñ<ô <ñ>ô >ñ9ô 9ñ 7Ô6ñ :Ô9ñNô NñMô Mñ %Ô$ð&#'ðJ „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð< „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð$ „[×Ò˜W eÑ,Ô,ð1ð 1ñ -Ô,ð1ð 1ð 1rC   r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestDilateFixc                 óŽ  — |                      g d¢g d¢g d¢g d¢g d¢g|j        ¬¦  «        | _        |                     d¦  «        | _        t          j        | j        | j        ¬¦  «        }t          |¦  «        r!|                     |j        ¦  «        | _	        d S t          |¦  «        j        } |||j        ¦  «        | _	        d S )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ô CˆŒ
ð —W’W˜V‘_”_ˆŒ
ÝÔ,¨T¬ZÀ4Ä:ÐNÑNÔNˆ
å�B‰<Œ<ð 	;Ø(Ÿošo¨b¬hÑ7Ô7ˆDŒOˆOˆOå$ ZÑ0Ô0Ô7ˆFØ$˜f Z°´Ñ:Ô:ˆDŒOˆOˆOrC   c                 ó    — |                       |¦  «         t          j        | j        | j        ¬¦  «        }t          || j        dz   ¦  «         d S )NrU  r   )rŒ  r   r'  r  r‰  r	   r‹  ©r;   r<   Úresults      rA   Útest_dilation_square_structurez,TestDilateFix.test_dilation_square_structure÷
  sG   € Ø�Š�B‰ŒˆÝÔ& t¤z¸T¼ZÐHÑHÔHˆå! &¨$¬/¸AÑ*=Ñ>Ô>Ð>Ð>Ð>rC   c                 ó�   — |                       |¦  «         t          j        | j        d¬¦  «        }t	          || j        ¦  «         d S )Nr)   )ro  )rŒ  r   r'  r  r	   r‹  rŽ  s      rA   Útest_dilation_scalar_sizez'TestDilateFix.test_dilation_scalar_sizeý
  s@   € Ø�Š�B‰ŒˆÝÔ& t¤z¸Ð:Ñ:Ô:ˆÝ! &¨$¬/Ñ:Ô:Ð:Ð:Ð:rC   N)r  r€  r�  rŒ  r�  r’  r„  rC   rA   r†  r†  á
  sA   € € € € € ð;ð ;ð ;ð$?ð ?ð ?ð;ð ;ð ;ð ;ð ;rC   r†  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestBinaryOpeningClosingc                 ó`  — t          j        dt          ¬¦  «        }d|dd…dd…f<   d|d<   |                     |¦  «        | _        |                     d¦  «        | _        t          j        | j        | j        dd d¦  «        | _	        t          j
        | j        | j        dd d¦  «        | _        d S )	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�V¥4Ð(Ñ(Ô(ˆØˆˆ!ˆAˆ#ˆq�ˆsˆ(‰Øˆˆ$‰Ø—Z’Z ‘]”]ˆŒ
Ø—W’W˜V‘_”_ˆŒ
Ý!Ô0°´¸T¼ZØ12°D¸!ñ=ô =ˆŒå!Ô0°´¸T¼ZØ12°D¸!ñ=ô =ˆŒˆˆrC   c           
      ó¤   — |                       |¦  «         t          j        | j        | j        dd dd dd¦  «        }t          || j        ¦  «         d S ©Nr   r   F)rŒ  r   rá  r  r‰  r   r—  )r;   r<   Ú
opened_news      rA   Útest_opening_new_argumentsz3TestBinaryOpeningClosing.test_opening_new_arguments  óP   € Ø�Š�B‰ŒˆÝÔ+¨D¬J¸¼
ÀAÀtØ,-¨t°Q¸ñ?ô ?ˆ
å˜
 D¤OÑ4Ô4Ð4Ð4Ð4rC   c           
      ó¤   — |                       |¦  «         t          j        | j        | j        dd dd dd¦  «        }t          || j        ¦  «         d S 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”    sA   € € € € € ð	=ð 	=ð 	=ð5ð 5ð 5ð5ð 5ð 5ð 5ð 5rC   r”  c                 óº   — |                       dg¦  «        }t          t          t          j        |d¬¦  «         t          t          t          j        |d¬¦  «         d S ©Nr   g      à?ra  ç      ø?)rŠ   rr   rb  r   rÌ   ©r<   r=   s     rA   Ú)test_binary_erosion_noninteger_iterationsr¥    óO   € ð �7Š7�A�3‰<Œ<€DÝ•)�WÔ3°TÀcÐJÑJÔJÐJÝ•)�WÔ3°TÀcÐJÑJÔJÐJÐJÐJrC   c                 óº   — |                       dg¦  «        }t          t          t          j        |d¬¦  «         t          t          t          j        |d¬¦  «         d S r¢  )rŠ   rr   rb  r   rm  r¤  s     rA   Ú*test_binary_dilation_noninteger_iterationsr¨  %  sO   € ð �7Š7�A�3‰<Œ<€DÝ•)�WÔ4°dÀsÐKÑKÔKÐKÝ•)�WÔ4°dÀsÐKÑKÔKÐKÐKÐKrC   c                 óº   — |                       dg¦  «        }t          t          t          j        |d¬¦  «         t          t          t          j        |d¬¦  «         d S r¢  )rŠ   rr   rb  r   rá  r¤  s     rA   Ú)test_binary_opening_noninteger_iterationsrª  -  r¦  rC   c                 óº   — |                       dg¦  «        }t          t          t          j        |d¬¦  «         t          t          t          j        |d¬¦  «         d S r¢  )rŠ   rr   rb  r   rê  r¤  s     rA   Ú)test_binary_closing_noninteger_iterationsr¬  5  r¦  rC   c           
      ó”  — t          | ¦  «        rt          j        d¦  «         |                      dg¦  «        }t	          t          j        |dd¬¦  «        t          j        |dt          d¦  «        ¬¦  «        ¦  «         t	          t          j        |dd¬¦  «        t          j        |dt          d¦  «        ¬¦  «        ¦  «         d S )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�{„{ð NÝŒÐLÑMÔMÐMà�7Š7�A�3‰<Œ<€Då•GÔ*¨4¸AÈ3ÐOÑOÔOÝÔ*¨4¸AÍ4ÐPSÉ9Ì9ÐUÑUÔUñô ð õ •GÔ*¨4¸AÈ3ÐOÑOÔOÝÔ*¨4¸AÍ4ÐPSÉ9Ì9ÐUÑUÔUñô ð ð ð rC   Úfunction)rÌ   rm  rá  rê  r0  r-   r[  Fc                 óp  — t           j                             d¦  «        }|                     ddd¬¦  «                             t
          ¦  «        }t          t          | ¦  «        }|                     ¦   «         } ||||¬¦  «        }t          ||¦  «          |||||¬¦  «         t          ||¦  «         d S )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×"Ò" 3Ñ'Ô'€FØ�>Š>˜a a¨cˆ>Ñ2Ô2×9Ò9½$Ñ?Ô?€DÝ•w Ñ)Ô)€Hð —	’	‘”€IØˆx˜¨+À*ÐMÑMÔM€HÝ�D˜)Ñ$Ô$Ð$ð €HˆT˜{°zÈ$ÐOÑOÔOÐOÝ�H˜dÑ#Ô#Ð#Ð#Ð#rC   c                 óÄ  — t          | ¦  «        s#t          | ¦  «        st          j        d¦  «         t          j                             d¦  «        }|                     ddd¬¦  «                             t          ¦  «        }| 
                    ¦   «         }t          j        |¦  «        }t          ||¦  «         t          j        ||¬¦  «         t          ||¦  «         d S )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ŒLð :�G B™KœKð :ÝŒÐ8Ñ9Ô9Ð9åŒY×"Ò" 3Ñ'Ô'€FØ�>Š>˜a a¨cˆ>Ñ2Ô2×9Ò9½$Ñ?Ô?€Dð —	’	‘”€IÝÔ)¨$Ñ/Ô/€HÝ�D˜)Ñ$Ô$Ð$õ Ô˜t¨DÐ1Ñ1Ô1Ð1Ý�H˜dÑ#Ô#Ð#Ð#Ð#rC   c                 ó
  — t          | ¦  «        rt          j        d¦  «         d}t          j        t          |¬¦  «        5  t          j        |                      d¦  «        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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  sÉ   € Ýˆr�{„{ð BÝŒÐ@ÑAÔAÐAà
#€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 9ð 9ÝÔ& r§w¢w¨v¡¤Ø.7ð	9ñ 	9ô 	9ð 	9ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s   Á*A8Á8A<Á?A<)$Ú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Í     s   ðØ Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à /Ð /Ð /Ð /Ð /Ð /Ø”;Ô/Ð Ø”KÔ1Ð Ø" F¤K×$;Ò$;Ð<NÑ$OÔ$OØŒk×%Ò%Ð&9Ñ:Ô:ØÐ¨¸&À+Ð9NÐPÑPÔPðR€
ð
I+1ð I+1ð I+1ð I+1ð I+1ñ I+1ô I+1ð I+1ðXV;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ðD5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ð4Kð Kð KðLð Lð LðKð Kð KðKð Kð Kðð ð ð  „×ÒØØMÐMÐMñô ð „×Ò˜¨¨1 vÑ.Ô.Ø„×Ò˜¨°¨Ñ6Ô6ð$ð $ñ 7Ô6ñ /Ô.ñ	ô ð$ð$ð $ð $ð"9ð 9ð 9ð 9ð 9rC   