Ë
    0Ò^j¥ ã                   ó€  — d dl Zd dlmZmZmZmZmZmZm	Z	 d dl
Z
d dl
mZ d dlmZ ddlmZ e
j"                  j$                  Ze
j"                  j&                  Z G d„ d«      Z eej*                  ej,                  «       G d	„ d
«      «       Z eej0                  ej2                  «       G d„ d«      «       Z eej6                  «      d„ «       Z eej*                  «      d„ «       Z eej0                  «      d„ «       Z eej2                  «      d„ «       Z edd¬«       eej6                  «      d„ «       «       Z  eddgd¬«       edd¬«      e
j"                  jC                  d e	ej6                  «       e	ej*                  «       e	ej0                  «       e	ej2                  «      g«      e
j"                  jC                  dddg«      e
j"                  jC                  dddg«      d„ «       «       «       «       «       Z" eddgd¬«       eejF                  «      d„ «       «       Z$ eejJ                  «      d „ «       Z&y)!é    N)Úis_cupyÚis_numpyÚxp_assert_closeÚxp_assert_equalÚassert_array_almost_equalÚmake_xp_test_caseÚmake_xp_pytest_param)Úraises)Úndimageé   )Útypesc                   óŒ9  — e Zd Z eej
                  «      ej                  j                  de	«      d„ «       «       Z
 eej
                  «      ej                  j                  de	«      d„ «       «       Z eej
                  «      ej                  j                  de	«      d„ «       «       Z edd¬«       eej
                  «      ej                  j                  de	«      d„ «       «       «       Z ed	d
¬«       eej
                  «      ej                  j                  de	«      d„ «       «       «       Z eej
                  «      ej                  j                  de	«      d„ «       «       Z eej
                  «      d„ «       Z eej
                  ej&                  «      ej                  j                  de	«      d„ «       «       Z eej
                  ej&                  «      ej                  j                  de	«      d„ «       «       Z edd¬«       eej&                  «      ej                  j                  de	«      d„ «       «       «       Z edd¬«       eej&                  «      d„ «       «       Z edd¬«       eej&                  «      ej                  j                  de	«      d„ «       «       «       Z ed	d
¬«       eej2                  ej
                  «      ej                  j                  de	«      d„ «       «       «       Z edd¬«       eej2                  ej
                  «      ej                  j                  de	«      d„ «       «       «       Z eej2                  ej
                  «      ej                  j                  de	«      d„ «       «       Z eej2                  ej
                  «      ej                  j                  de	«      d„ «       «       Z ed	d¬«       eej2                  «      d„ «       «       Z edd¬«       eej2                  «      d„ «       «       Z eej@                  «      d „ «       Z! eej@                  «      d!„ «       Z" eej@                  «      d"„ «       Z# eej@                  «      d#„ «       Z$ eejJ                  «      d$„ «       Z& eejJ                  «      d%„ «       Z' eejJ                  «      d&„ «       Z( eejR                  «      ej                  j                  de	«      d'„ «       «       Z* eejR                  «      ej                  j                  de	«      d(„ «       «       Z+ eejR                  «      ej                  j                  de	«      d)„ «       «       Z, eejR                  «      ej                  j                  de	«      d*„ «       «       Z- eejR                  «      ej                  j                  de	«      d+„ «       «       Z. ed	d,¬«       eejR                  «      ej                  j                  de	«      d-„ «       «       «       Z/ eejR                  «      ej                  j                  de	«      d.„ «       «       Z0 eejR                  «      ej                  j                  de	«      d/„ «       «       Z1 eejR                  «      ej                  j                  de	«      d0„ «       «       Z2 eejR                  «      ej                  j                  de	«      d1„ «       «       Z3 eejR                  «      ej                  j                  de	«      d2„ «       «       Z4 eejR                  «      ej                  j                  de	«      d3„ «       «       Z5 eejR                  «      ej                  j                  de	«      d4„ «       «       Z6 eejR                  «      ej                  j                  de	«      d5„ «       «       Z7 eejR                  «      ej                  j                  de	«      d6„ «       «       Z8 eejR                  «      ej                  j                  de	«      d7„ «       «       Z9 eejR                  «      ej                  j                  de	«      d8„ «       «       Z: eejR                  «      ej                  j                  de	«      d9„ «       «       Z; eejR                  «      ej                  j                  de	«      d:„ «       «       Z< eejR                  «      ej                  j                  de	«      d;„ «       «       Z= eejR                  «      ej                  j                  de	«      d<„ «       «       Z> eejR                  «      ej                  j                  de	«      d=„ «       «       Z? eejR                  «      ej                  j                  de	«      d>„ «       «       Z@ eejR                  «      ej                  j                  de	«      d?„ «       «       ZA eejR                  «      ej                  j                  de	«      d@„ «       «       ZB eejR                  «      ej                  j                  de	«      dA„ «       «       ZC eejR                  «      ej                  j                  de	«      dB„ «       «       ZD ed	dC¬«       eejR                  «      dD„ «       «       ZE edd	gdE¬F«       ed	dG¬«       eejR                  «      dH„ «       «       «       ZF ed	dC¬«       eejR                  «      dI„ «       «       ZG edd	gdE¬F«       ed	dG¬«       eejR                  «      dJ„ «       «       «       ZH edd	gdE¬F«       eejR                  «      dK„ «       «       ZI ed	dG¬«       eejR                  «      dL„ «       «       ZJ ed	dG¬«       eejR                  «      dM„ «       «       ZK eejR                  «      dN„ «       ZL edd	gdE¬F«       eejR                  «      dO„ «       «       ZM ed	dG¬«       eejR                  «      dP„ «       «       ZN edd	gdE¬F«       ed	dG¬«       eejR                  «      dQ„ «       «       «       ZO eejR                  «      dR„ «       ZP edd	gdE¬F«       ed	dG¬«       eejR                  «      dS„ «       «       «       ZQ edd	gdE¬F«       ed	dG¬«       eejR                  «      dT„ «       «       «       ZRej                  j                  de	«       eej¦                  «      dU„ «       «       ZTej                  j                  de	«       eej¦                  «      dV„ «       «       ZUej                  j                  de	«       eej¦                  «      dW„ «       «       ZVej                  j                  de	«       eej¦                  «      dX„ «       «       ZWej                  j                  de	«       eej¦                  «      dY„ «       «       ZXej                  j                  de	«       eej¦                  «      dZ„ «       «       ZYej                  j                  de	«       eej¦                  «      d[„ «       «       ZZej                  j                  de	«       eej¦                  «      d\„ «       «       Z[ej                  j                  de	«       eej¦                  «      d]„ «       «       Z\ej                  j                  de	«       eej¦                  «      d^„ «       «       Z]ej                  j                  de	«       eej¦                  «      d_„ «       «       Z^ej                  j                  de	«       eej¦                  «      d`„ «       «       Z_ej                  j                  de	«       eej¦                  «      da„ «       «       Z`ej                  j                  de	«       eej¦                  «      db„ «       «       Zaej                  j                  de	«       eej¦                  «      dc„ «       «       Zbej                  j                  de	«       eej¦                  «      dd„ «       «       Zcej                  j                  de	«       eej¦                  «      de„ «       «       Zdej                  j                  de	«       eej¦                  «      df„ «       «       Zeej                  j                  de	«       eej¦                  «      dg„ «       «       Zfej                  j                  de	«       eej¦                  «      dh„ «       «       Zgej                  j                  de	«       eej¦                  «      di„ «       «       Zhej                  j                  de	«       eej¦                  «      dj„ «       «       Ziej                  j                  de	«       eej¦                  «      dk„ «       «       Zjej                  j                  de	«       eej¦                  «      dl„ «       «       Zkej                  j                  de	«       eej¦                  «      dm„ «       «       Zlej                  j                  de	«       eej¦                  «      dn„ «       «       Zmej                  j                  de	«       eej¦                  «      do„ «       «       Znej                  j                  de	«       eej¦                  «      dp„ «       «       Zoej                  j                  de	«       eej¦                  «      dq„ «       «       Zp ed	dG¬«       eej¦                  «      dr„ «       «       Zq edd	gds¬F«       ed	dG¬«       eej¦                  «      dt„ «       «       «       Zr ed	dG¬«       eej¦                  «      du„ «       «       Zs edd	gds¬F«       ed	dG¬«       eej¦                  «      dv„ «       «       «       Zt ed	dG¬«       eej¦                  «      dw„ «       «       Zu edd	gdx¬F«       ed	dG¬«       eej¦                  «      dy„ «       «       «       Zvej                  j                  de	«       eej¦                  «      dz„ «       «       Zw eej¦                  «      d{„ «       Zx eejò                  «      d|„ «       Zz eejò                  «      d}„ «       Z{ eejò                  «      d~„ «       Z| eejú                  «      ej                  j                  de	«      d„ «       «       Z~ eejú                  «      ej                  j                  de	«      d€„ «       «       Zej                  j                  de	«       ee�j                   «      d�„ «       «       Z�ej                  j                  de	«       ee�j                   «      d‚„ «       «       Z‚ ee�j                  «      dƒ„ «       Z„ ee�j                  «      d„„ «       Z… ee�j                  «      d…„ «       Z† ed¬†«       ed	d‡¬«       edˆd‰¬«      ej                  j                  dŠd‹dŒg«      ej                  j                  d�dŽd�g«      ej                  j                  d�g d‘¢«      ej                  j                  d’ e‡ejR                  «       e‡ej¦                  «       e‡ejú                  «       e‡e�j                   «       e‡e�j                  «       e‡ejò                  «       e‡e�j                  «      g«      d“„ «       «       «       «       «       «       «       Z‰ ee�j                  «      d”„ «       Z‹ edˆd•¬«       ed–d•¬«       ed	d—¬«       ee�j                  «      d˜„ «       «       «       «       ZŒ ee�j                  «      d™„ «       Z� ee�j                  «      dš„ «       ZŽ ee�j                  «      d›„ «       Z� ee�j                  «      dœ„ «       Z‘ ee�j                  «      d�„ «       Z’ ee�j&                  «      dž„ «       Z” ee�j&                  «      dŸ„ «       Z• ee�j,                  «      d „ «       Z— ee�j,                  «      d¡„ «       Z˜ edds¬«       ee�j                  e�j                  e�j2                  «      d¢„ «       «       Zš ee�j                  e�j                  e�j2                  «      d£„ «       Z› edds¬«       ee�j                  e�j                  e�j8                  «      d¤„ «       «       Z� ee�j                  e�j                  e�j8                  «      d¥„ «       Zž edˆd•¬«       ed–d•¬«       ee�j&                  e�j>                  «      d¦„ «       «       «       Z  ee�j&                  e�j>                  «      d§„ «       Z¡ ed	d¨¬«       ee�j>                  «      d©„ «       «       Z¢ edˆd•¬«       ed–d•¬«       ed	dª¬«       ee�j>                  «      d«„ «       «       «       «       Z£ edˆd•¬«       ed–d•¬«       ee�j,                  e�jH                  «      d¬„ «       «       «       Z¥ ee�j,                  e�jH                  «      d­„ «       Z¦ ed	d®¬«       ee�jH                  «      d¯„ «       «       Z§ edˆd•¬«       ed–d•¬«       ed	dª¬«       ee�jH                  «      d°„ «       «       «       «       Z¨ ed¬†«       ed	d‡¬«       edˆd‰¬«      ej                  j                  d�dŽd�g«      ej                  j                  d�g d‘¢«      ej                  j                  d±g d²¢«      ej                  j                  d³g d´¢«      ej                  j                  d’ e‡e�j                  «       e‡e�j                  «       e‡e�j&                  «       e‡e�j,                  «       e‡e�j8                  «       e‡e�j2                  «       e‡e�j>                  «       e‡e�jH                  «      g«      dµ„ «       «       «       «       «       «       «       «       Z© edd	gd¶¬F«       ee�j                  «      ej                  j                  de	«      d·„ «       «       «       Zª ee�j                  «      ej                  j                  de	«      d¸„ «       «       Z« ee�j                  «      ej                  j                  de	«      d¹„ «       «       Z¬yº)»ÚTestNdimageMorphologyÚdtypec                 óÖ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}g d¢g d¢g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g	}|j                  |«      }t	        ||z  |«       g d¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )N©	r   r   r   r   r   r   r   r   r   ©	r   r   r   r   r   r   r   r   r   ©	r   r   r   r   r   r   r   r   r   ©r   Ú	euclideanT©Úreturn_indices)	r   r   r   é   é   r   r   r   r   ©	r   r   r   r   é   r   r   r   r   ©	r   r   r   r   r   r   r   r   r   ©	r   r   r   r   r   r   r   r   r   ©	é   r    r    r   r   r   r    r    r    ©	r   r   r   r   é   r   r   r   r   ©	é   r$   r"   r"   é   r"   r"   r$   r$   ©	r"   r"   r"   r%   r%   r%   r"   r"   r"   ©	r%   r%   r%   r%   r%   r%   r%   r%   r%   ©	r   r   r   r   r   r   r   r   r   ©	r   r   r   r    r   r$   r"   r%   r   ©	r   r   r   r   r   r"   r"   r%   r   ©	r   r   r   r   r   r"   r%   r%   r   ©	r   r   r   r   r"   r%   r%   r%   r   ©ÚgetattrÚasarrayr   Údistance_transform_bfr   ©Úselfr   ÚxpÚdataÚoutÚftÚexpecteds          ún/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/ndimage/tests/test_morphology.pyÚtest_distance_transform_bf01z2TestNdimageMorphology.test_distance_transform_bf01   s  € ô ˜˜EÓ"ˆð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/°°kØ?CôE‰ˆˆRâ/Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! #¨¡)¨XÔ6â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/ó    c                 óÐ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}g d¢g d¢g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g	}|j                  |«      }t	        ||«       g d¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   Ú	cityblockTr   ©	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r    r   r   r   r   r   r   )	r    r    r    r    r   r    r    r    r    )	r   r   r   r   r%   r   r   r   r   )	r$   r$   r"   r%   r%   r%   r"   r$   r$   r&   r'   r(   r)   r*   ©	r   r   r   r   r   r%   r%   r%   r   r-   r1   s          r8   Útest_distance_transform_bf02z2TestNdimageMorphology.test_distance_transform_bf02H   s
  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/°°kØ?CôE‰ˆˆRò 0Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! # xÔ0â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/r:   c                 óÐ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}g d¢g d¢g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g	}|j                  |«      }t	        ||«       g d¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   Ú
chessboardTr   )	r   r   r   r   r   r   r   r   r   r=   r   r   )	r    r    r   r   r   r   r   r    r    )	r   r   r$   r"   r"   r"   r$   r   r   r#   r&   r'   r(   r)   ©	r   r   r   r   r$   r"   r"   r%   r   ©	r   r   r   r   r"   r"   r%   r%   r   )	r   r   r   r   r"   r%   r%   r%   r   )	r   r   r   r   r"   r"   r%   r%   r   )	r   r   r   r   r$   r"   r"   r%   r   r-   r1   s          r8   Útest_distance_transform_bf03z2TestNdimageMorphology.test_distance_transform_bf03z   s
  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/°°lØ?CôE‰ˆˆRò 0Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! # xÔ0â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/r:   Tz,inplace distances= arrays are numpy-specific)Únp_onlyÚreasonc                 ó¸  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}g }g }|j	                  |j
                  |j                  ¬«      }t        j                  ||¬«       |j                  |«       t        j                  |dd¬	«      }	|j                  |	«       t        j                  |j
                  |j                  ¬«      }	t        j                  |dd
|	¬«       |j                  |	«       t        j                  |d¬«      \  }}	|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  ||d
¬«      }	|j                  |«       |j                  |	«       t        j                  |j
                  |j                  ¬«      }	t        j                  |d
|	¬«      }|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  |j
                  |j                  ¬«      }	t        j                  ||d
|	¬«       |j                  |«       |j                  |	«       |D ]  }t        ||«       Œ |D ]  }	t        ||	«       Œ y )Nr   r   r   r   r   r   ©Ú	distancesF©Úreturn_distancesr   T©rK   r   Úindices©rI   r   ©r   rM   ©rI   r   rM   )r.   r/   r   r0   ÚzerosÚshapeÚfloat64ÚappendÚnprM   Úint32r   ©
r2   r   r3   r4   ÚtdtÚtftÚdtsÚftsÚdtr6   s
             r8   Útest_distance_transform_bf04z2TestNdimageMorphology.test_distance_transform_bf04­   sL  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0°ÀaÔH‰ˆˆSØˆØˆØ�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×%Ñ% d°bÕ9Ø�
‰
�2ŒÜ×*Ñ*Ø 5¸ô<ˆà�
‰
�2ŒÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆÜ×%Ñ%Ø 5¸Àrõ	Kà�
‰
�2ŒÜ×.Ñ.Ø ô$‰ˆˆBà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×*Ñ*Ø˜B¨tô5ˆà�
‰
�2ŒØ�
‰
�2ŒÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆÜ×*Ñ*Ø ¨rô3ˆà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆÜ×%Ñ%Ø˜B¨t¸Rõ	Aà�
‰
�2ŒØ�
‰
�2ŒØò 	/ˆBÜ% c¨2Õ.ð	/àò 	/ˆBÜ% c¨2Õ.ñ	/r:   Úcupyz(CuPy does not have distance_transform_bf©rF   c                 óÜ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |ddddg¬«      \  }}g d¢g d¢g d	¢g d
¢g d¢g d
¢g d	¢g d¢g d¢g	}|j                  |«      }t	        ||z  |«       g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   r   Tr   ©r   Úsampling)	r   r   r   r   r   r   r   r   r   )	r   r   r   r   é   r   r   r   r   )	r   r   r   rc   é    rc   r   r   r   r   r   r   r!   r#   r&   r'   r(   r)   r*   r+   r,   r-   r1   s          r8   Útest_distance_transform_bf05z2TestNdimageMorphology.test_distance_transform_bf05ä   s  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/Ø�+¨d¸aÀ¸VôE‰ˆˆRâ/Ú/Ú/Ú0Ú2Ú0Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! #¨¡)¨XÔ6â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/r:   c                 óÜ  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |ddddg¬	«      \  }}g d¢g d¢g d
¢g d¢g d¢g d¢g d
¢g d¢g d¢g	}|j                  |«      }t	        ||z  |«       g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t	        ||«       y )Nr   r   r   r   r   Tr   r   ra   )	r   r   r   r   r   r   r   r   r   r   )	r   r   r   r   é	   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r    r    r    r    r   r    r    r    r    )	r   r   r   r   r   r   r   r   r   )	r$   r$   r$   r$   r"   r$   r$   r$   r$   )	r"   r"   r"   r"   r%   r"   r"   r"   r"   r'   r(   r)   )	r   r   r   r   r"   r"   r"   r%   r   r,   )	r   r   r   r   r%   r%   r%   r%   r   r*   r-   r1   s          r8   Útest_distance_transform_bf06z2TestNdimageMorphology.test_distance_transform_bf06  s  € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×/Ñ/Ø�+¨d¸aÀ¸VôE‰ˆˆRâ/Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð1ˆð —:‘:˜hÓ'ˆÜ! #¨¡)¨XÔ6â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/r:   c                 óÔ   — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	«      }t        t        «      5  t        j                  |dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   FrJ   )r/   Úassert_raisesÚRuntimeErrorr   r0   )r2   r3   r4   s      r8   Útest_distance_transform_bf07z2TestNdimageMorphology.test_distance_transform_bf07G  sf   € ð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ó 9ˆô œ<Ó(ñ 	Ü×)Ñ)Ø u¸Uõ÷	÷ 	ñ 	ús   ¼AÁA'c                 ó   — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}t        j                  |d«      }t        ||«       g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t        ||«       y )Nr   r   r   r   r<   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"   r'   r(   r)   r>   )	r   r   r   r   r   r$   r"   r%   r   )	r   r   r   r   r   r$   r"   r%   r   ©r.   r/   r   Údistance_transform_cdtr0   r   ©r2   r   r3   r4   r5   r6   Úbfr7   s           r8   Útest_distance_transform_cdt01z3TestNdimageMorphology.test_distance_transform_cdt01X  sé   € ô ˜˜EÓ"ˆð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0Ø�+¨dô4‰ˆˆRä×*Ñ*¨4°Ó=ˆÜ! " cÔ*â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/r:   c                 ó   — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dd¬«      \  }}t        j                  |d«      }t        ||«       g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g	g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g}|j                  |«      }t        ||«       y )Nr   r   r   r   rA   Tr   r   rn   )	r    r    r   r   r   r   r   r    r    )	r   r   r    r   r   r   r    r   r   )	r$   r$   r   r"   r%   r"   r   r$   r$   ro   r'   r(   r)   )	r   r   r   r   r    r   r"   r%   r   )	r   r   r   r   r   r"   r"   r%   r   )	r   r   r   r   r   r"   r%   r%   r   rC   rB   rp   rr   s           r8   Útest_distance_transform_cdt02z3TestNdimageMorphology.test_distance_transform_cdt02‚  sè   € ô ˜˜EÓ"ˆØ�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0°°|Ø@DôF‰ˆˆRä×*Ñ*¨4°Ó>ˆÜ! " cÔ*â0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ò 1Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð2ð3ˆð$ —:‘:˜hÓ'ˆÜ! " hÕ/r:   z*inplace indices= arrays are numpy-specificc                 ó*  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}g }g }|j	                  |j
                  |j                  ¬«      }t        j                  ||¬«       |j                  |«       t        j                  |dd¬	«      }	|j                  |	«       |j                  t        j                  |j
                  t        j                  ¬«      «      }	t        j                  |dd|	¬
«       |j                  |	«       t        j                  |d¬«      \  }}	|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  ||d¬«      }	|j                  |«       |j                  |	«       |j                  t        j                  |j
                  t        j                  ¬«      «      }	t        j                  |d|	¬«      }|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }|j                  t        j                  |j
                  t        j                  ¬«      «      }	t        j                  ||d|	¬«       |j                  |«       |j                  |	«       |D ]  }t        ||«       Œ |D ]  }	t        ||	«       Œ y )Nr   r   r   r   Tr   rH   FrJ   rL   rN   rO   rP   )r.   r/   r   rq   rQ   rR   rV   rT   rU   rM   r   rW   s
             r8   Útest_distance_transform_cdt03z3TestNdimageMorphology.test_distance_transform_cdt03ª  sg  € ô ˜˜EÓ"ˆØ�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×1Ñ1°$ÀtÔL‰ˆˆSØˆØˆØ�X‰X�d—j‘j¨¯©ˆXÓ1ˆÜ×&Ñ& t°rÕ:Ø�
‰
�2ŒÜ×+Ñ+Ø 5¸ô?ˆà�
‰
�2ŒØ�Z‰ZœŸ
™
 4§:¡:´R·X±XÔ>Ó?ˆÜ×&Ñ&Ø 5¸Àrõ	Kà�
‰
�2ŒÜ×/Ñ/Ø ô'‰ˆˆBà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯©ˆXÓ1ˆÜ×+Ñ+Ø˜B¨tô5ˆà�
‰
�2ŒØ�
‰
�2ŒØ�Z‰ZœŸ
™
 4§:¡:´R·X±XÔ>Ó?ˆÜ×+Ñ+Ø ¨rô3ˆà�
‰
�2ŒØ�
‰
�2ŒØ�X‰X�d—j‘j¨¯©ˆXÓ1ˆØ�Z‰ZœŸ
™
 4§:¡:´R·X±XÔ>Ó?ˆÜ×&Ñ& t°rØ6:ÀBõ	Hà�
‰
�2ŒØ�
‰
�2ŒØò 	/ˆBÜ% c¨2Õ.ð	/àò 	/ˆBÜ% c¨2Õ.ñ	/r:   z3XXX: does not raise unless indices is a numpy arrayc                 ó@  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	«      }|j                  |j                  f|j                  z   |j                  ¬«      }t        t        «      5  t        j                  |dd|¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   r   TFrL   )	r/   rQ   ÚndimrR   rV   rj   rk   r   r0   )r2   r3   r4   Úindices_outs       r8   Útest_distance_transform_cdt04z3TestNdimageMorphology.test_distance_transform_cdt04à  s�   € ð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ó 9ˆð —h‘h §	¡	˜|¨d¯j©jÑ8ÀÇÁ�hÓIˆÜœ<Ó(ñ 	Ü×)Ñ)ØØ!%Ø$Ø#õ	÷	÷ 	ñ 	ús   Á1BÂBÚtorchzint overflowc                 óô   — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }|j                  d«      }t        j                  ||¬«      }|j                  |«      dk(  sJ ‚y )Nr   r   r   r   ©r    r    ©Úmetriciëÿÿÿ)r.   r/   Úonesr   rq   Úsum)r2   r   r3   r4   Ú
metric_argÚactuals         r8   Útest_distance_transform_cdt05z3TestNdimageMorphology.test_distance_transform_cdt05ø  s„   € ô ˜˜EÓ"ˆð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆð —W‘W˜V“_ˆ
Ü×/Ñ/°¸ZÔHˆØ�v‰v�f‹~ Ò$Ð$Ñ$r:   c                 ó�  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}t        j                  |d«      }t        ||«       t        j                  |«      }|t        j                  |j                  dd  |j                  ¬«      z
  }|j                  t        j                  «      }t        j                  |||«       t        j                  j                  |d	¬
«      }t        j                  ||«       |j                  |«      }t        ||«       y )Nr   r   r   r   Tr   r   r   r   ©Úaxis)r.   r/   r   Údistance_transform_edtr0   r   rU   rM   rR   r   ÚastyperS   ÚmultiplyÚaddÚreduceÚsqrt)	r2   r   r3   r4   r5   r6   rs   Únp_ftr\   s	            r8   Útest_distance_transform_edt01z3TestNdimageMorphology.test_distance_transform_edt01  s  € ô
 ˜˜EÓ"ˆð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×0Ñ0°ÀdÔK‰ˆˆRÜ×*Ñ*¨4°Ó=ˆÜ! " cÔ*ô —
‘
˜2“ˆØ”R—Z‘Z §¡¨A¨B °u·{±{ÔCÑCˆØ�Y‰Y”r—z‘zÓ"ˆÜ
�‰�B˜˜BÔÜ�V‰V�]‰]˜2 Aˆ]Ó&ˆÜ
�‰��BŒà�Z‰Z˜‹^ˆÜ! " bÕ)r:   z%inplace distances= are numpy-specificc                 ó  — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |d¬«      \  }}g }g }|j	                  |j
                  |j                  ¬«      }t        j                  ||¬«       |j                  |«       t        j                  |dd¬	«      }	|j                  |	«       t        j                  |j
                  |j                  ¬«      }	|j                  |	«      }	t        j                  |d
d|	¬«       |j                  |	«       t        j                  |d¬«      \  }}	|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  ||d¬«      }	|j                  |«       |j                  |	«       t        j                  |j
                  |j                  ¬«      }	|j                  |	«      }	t        j                  |d|	¬«      }|j                  |«       |j                  |	«       |j	                  |j
                  |j                  ¬«      }t        j                  |j
                  |j                  ¬«      }	|j                  |	«      }	t        j                  ||d|	¬«       |j                  |«       |j                  |	«       |D ]  }t        ||«       Œ |D ]  }	t        ||	«       Œ y )Nr   r   r   r   Tr   rH   r   rJ   FrL   rN   rO   rP   )r.   r/   r   rŠ   rQ   rR   rS   rT   rU   rM   rV   r   rW   s
             r8   Útest_distance_transform_edt02z3TestNdimageMorphology.test_distance_transform_edt02,  ss  € ô ˜˜EÓ"ˆØ�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×1Ñ1°$ÀtÔL‰ˆˆSØˆØˆà�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×&Ñ& t°rÕ:Ø�
‰
�2Œä×+Ñ+Ø 1°Tô;ˆà�
‰
�2Œä�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆØ�Z‰Z˜‹^ˆÜ×&Ñ&Ø 5¸Àrõ	Kà�
‰
�2Œä×/Ñ/Ø ô'‰ˆˆBà�
‰
�2ŒØ�
‰
�2Œà�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ×+Ñ+Ø˜B¨tô5ˆà�
‰
�2ŒØ�
‰
�2Œä�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆØ�Z‰Z˜‹^ˆÜ×+Ñ+Ø ¨rô3ˆà�
‰
�2ŒØ�
‰
�2Œà�X‰X�d—j‘j¨¯
©
ˆXÓ3ˆÜ�Z‰Z˜Ÿ
™
¨"¯(©(Ô3ˆØ�Z‰Z˜‹^ˆÜ×&Ñ&Ø˜B¨t¸Rõ	Aà�
‰
�2ŒØ�
‰
�2Œàò 	/ˆBÜ% c¨2Õ.ð	/àò 	/ˆBÜ% c¨2Õ.ñ	/r:   c                 óö   — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dddg¬«      }t        j                  |ddg¬«      }t        ||«       y )Nr   r   r   r   r   r   ©rb   ©r.   r/   r   r0   rŠ   r   ©r2   r   r3   r4   Úrefr5   s         r8   Útest_distance_transform_edt03z3TestNdimageMorphology.test_distance_transform_edt03n  ó…   € ô ˜˜EÓ"ˆà�z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ð @Eð ó Fˆô ×+Ñ+¨D°+ÈÈAÈÔOˆÜ×,Ñ,¨T¸QÀ¸FÔCˆÜ! # sÕ+r:   c                 óö   — t        ||«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	|¬«      }t        j                  |dddg¬«      }t        j                  |ddg¬«      }t        ||«       y )	Nr   r   r   r   r   r   r   r•   r–   r—   s         r8   Útest_distance_transform_edt4z2TestNdimageMorphology.test_distance_transform_edt4�  rš   r:   z8Only 2D and 3D distance transforms are supported in CuPyc                 ó„   — t        j                  |j                  d«      «      }t        ||j                  dg«      «       y )NFç        )r   rŠ   r/   r   )r2   r3   r5   s      r8   Útest_distance_transform_edt5z2TestNdimageMorphology.test_distance_transform_edt5”  s2   € ô ×,Ñ,¨R¯Z©Z¸Ó->Ó?ˆÜ! # r§z¡z°2°$Ó'7Õ8r:   c                 ó$  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	«      }|j                  |j                  |j                  ¬«      }t	        t
        «      5  t        j                  |dd|¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   r   TF)r   rK   rI   )r/   rQ   rR   rS   rj   rk   r   r0   )r2   r3   r4   Údistances_outs       r8   Útest_distance_transform_edt6z2TestNdimageMorphology.test_distance_transform_edt6�  s…   € ð �z‰zÒ6Ú6Ú6Ú6Ú6Ú6Ú6Ú6Ú6ð8ó 9ˆð Ÿ™ §¡°2·:±:˜Ó>ˆÜœ<Ó(ñ 	Ü×)Ñ)ØØ#Ø!&Ø'õ	÷	÷ 	ñ 	ús   Á#BÂBc                 ó>   — t        j                  dd«      }|dk(  sJ ‚y )Nr   r   )r   Úgenerate_binary_structure©r2   r3   Ústructs      r8   Útest_generate_structure01z/TestNdimageMorphology.test_generate_structure01µ  s    € ä×2Ñ2°1°aÓ8ˆØ˜Š{Ð‰{r:   c                 óL   — t        j                  dd«      }t        |g d¢«       y )Nr   ©r   r   r   ©r   r¤   r   r¥   s      r8   Útest_generate_structure02z/TestNdimageMorphology.test_generate_structure02º  s   € ä×2Ñ2°1°aÓ8ˆÜ! &ª)Õ4r:   c                 óZ   — t        j                  dd«      }t        |g d¢g d¢g d¢g«       y )Nr   r   ©r   r   r   r©   rª   r¥   s      r8   Útest_generate_structure03z/TestNdimageMorphology.test_generate_structure03¿  ó+   € ä×2Ñ2°1°aÓ8ˆÜ! &ª9Ú+4Ú+4ð+6õ 	7r:   c                 óZ   — t        j                  dd«      }t        |g d¢g d¢g d¢g«       y )Nr   r©   rª   r¥   s      r8   Útest_generate_structure04z/TestNdimageMorphology.test_generate_structure04Æ  r¯   r:   c                 óö   — g d¢g d¢g d¢g}|j                  |«      }t        j                  |d«      }t        j                   g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        ||«       y )Nr­   r©   r   ©r   r   r   r   r   ©r   r   r   r   r   ©r   r   r   r   r   r   ©r/   r   Úiterate_structurerU   Úboolr   ©r2   r3   r¦   r5   r7   s        r8   Útest_iterate_structure01z.TestNdimageMorphology.test_iterate_structure01Í  st   € âÚÚðˆð —‘˜FÓ#ˆÜ×'Ñ'¨°Ó2ˆÜ—:‘:šÚ.Ú.Ú.Ú.ð	0ô 8<ô	=ˆð
 —:‘:˜hÓ'ˆÜ! # xÕ0r:   c                 óö   — ddgddgddgg}|j                  |«      }t        j                  |d«      }t        j                   g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        ||«       y )Nr   r   r   )r   r   r   ©r   r   r   r©   r   r¶   r¹   s        r8   Útest_iterate_structure02z.TestNdimageMorphology.test_iterate_structure02Ü  s€   € à�a�&Ø�a�&Ø�a�&ðˆð —‘˜FÓ#ˆÜ×'Ñ'¨°Ó2ˆÜ—:‘:šyÚ(Ú(Ú(Ú(ð	*ô 26ô	7ˆð
 —:‘:˜hÓ'ˆä! # xÕ0r:   c                 ó  — g d¢g d¢g d¢g}|j                  |«      }t        j                  |dd«      }g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        |d	   |«       |d   ddgk(  sJ ‚y )
Nr­   r©   r   r   r³   r´   rµ   r   r   r¶   r¹   s        r8   Útest_iterate_structure03z.TestNdimageMorphology.test_iterate_structure03ì  s�   € âÚÚðˆð —‘˜FÓ#ˆÜ×'Ñ'¨°°1Ó5ˆÚ#Ú#Ú#Ú#Ú#ð	%ˆô
 —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ! # a¡&¨(Ô3Ø�1‰v˜!˜Q˜ÒÐÑr:   c                 ó°   — t        ||«      }|j                  g |¬«      }t        j                  |«      }||j	                  d|j
                  ¬«      k(  sJ ‚y ©Nr   r   ©r.   r‚   r   Úbinary_erosionr/   r   ©r2   r   r3   r4   r5   s        r8   Útest_binary_erosion01z+TestNdimageMorphology.test_binary_erosion01ý  sQ   € ô ˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×$Ñ$ TÓ*ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4r:   c                 ó´   — t        ||«      }|j                  g |¬«      }t        j                  |d¬«      }||j	                  d|j
                  ¬«      k(  sJ ‚y )Nr   r   ©Úborder_valuerÂ   rÄ   s        r8   Útest_binary_erosion02z+TestNdimageMorphology.test_binary_erosion02  sS   € ô ˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×$Ñ$ T¸Ô:ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4r:   c                 ó¦   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  dg«      «       y ©Nr   r   r   ©r.   r‚   r   rÃ   r   r/   rÄ   s        r8   Útest_binary_erosion03z+TestNdimageMorphology.test_binary_erosion03  sH   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z°1°#£Õ7r:   c                 óª   — t        ||«      }|j                  dg|¬«      }t        j                  |d¬«      }t	        ||j                  dg«      «       y ©Nr   r   rÇ   rÌ   rÄ   s        r8   Útest_binary_erosion04z+TestNdimageMorphology.test_binary_erosion04  sJ   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z°1°#£Õ7r:   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y )Nr    r   r­   rÌ   rÄ   s        r8   Útest_binary_erosion05z+TestNdimageMorphology.test_binary_erosion05  sG   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²)Ó'<Õ=r:   z(https://github.com/cupy/cupy/issues/8912c                 óÊ   — t        ||«      }|j                  d|¬«      }|j                  |d«      }t        j                  |«      }t        ||j                  g d¢«      «       y )N©r   r   ©r    r­   )r.   r‚   Úbroadcast_tor   rÃ   r   r/   rÄ   s        r8   Ú!test_binary_erosion05_broadcastedz7TestNdimageMorphology.test_binary_erosion05_broadcasted&  sU   € ô ˜˜EÓ"ˆØ�w‰w�u EˆwÓ*ˆØ�‰˜t UÓ+ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²)Ó'<Õ=r:   c                 ó¬   — t        ||«      }|j                  dg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢«      «       y ©Nr    r   r   rÇ   r©   rÌ   rÄ   s        r8   Útest_binary_erosion06z+TestNdimageMorphology.test_binary_erosion060  sI   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²)Ó'<Õ=r:   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y )Nr$   r   r´   rÌ   rÄ   s        r8   Útest_binary_erosion07z+TestNdimageMorphology.test_binary_erosion078  sG   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 ó¬   — t        ||«      }|j                  dg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢«      «       y )Nr$   r   r   rÇ   rµ   rÌ   rÄ   s        r8   Útest_binary_erosion08z+TestNdimageMorphology.test_binary_erosion08@  sI   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óÄ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr$   r   r   r   ©r   r   r   r   r   ©rU   r‚   r/   r   rÃ   r   rÄ   s        r8   Útest_binary_erosion09z+TestNdimageMorphology.test_binary_erosion09H  sP   € ô �w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óÈ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |d¬«      }t        ||j                  g d¢«      «       y )Nr$   r   r   r   r   rÇ   )r   r   r   r   r   rá   rÄ   s        r8   Útest_binary_erosion10z+TestNdimageMorphology.test_binary_erosion10Q  sR   € ô �w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )	Nr$   r   r   r   ©r   r   r   r   rÇ   ©r   r   r   r   r   rá   ©r2   r   r3   r4   r¦   r5   s         r8   Útest_binary_erosion11z+TestNdimageMorphology.test_binary_erosion11Z  sb   € ô �w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×$Ñ$ T¨6ÀÔBˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||dd¬«      }t        ||j                  g d	¢«      «       y )
Nr$   r   r   r   ræ   r   éÿÿÿÿ©rÈ   Úorigin©r   r   r   r   r   rá   rè   s         r8   Útest_binary_erosion12z+TestNdimageMorphology.test_binary_erosion12d  sd   € ô �w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×$Ñ$ T¨6ÀÈ"ÔMˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||dd¬«      }t        ||j                  g d¢«      «       y )	Nr$   r   r   r   ræ   r   rì   ©r   r   r   r   r   rá   rè   s         r8   Útest_binary_erosion13z+TestNdimageMorphology.test_binary_erosion13n  sd   € ô �w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×$Ñ$ T¨6ÀÈ!ÔLˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  ddg«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )Nr$   r   r   r   r   rÇ   )r   r   r   r   r   rá   rè   s         r8   Útest_binary_erosion14z+TestNdimageMorphology.test_binary_erosion14x  sf   € ô �w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘˜Q ˜FÓ#ˆÜ×$Ñ$ T¨6ÀÔBˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  ddg«      }t        j                  ||dd¬«      }t        ||j                  g d¢«      «       y )	Nr$   r   r   r   r   rë   rì   )r   r   r   r   r   rá   rè   s         r8   Útest_binary_erosion15z+TestNdimageMorphology.test_binary_erosion15‚  sh   € ô �w‰w˜�s %Ô(ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘˜Q ˜FÓ#ˆÜ×$Ñ$ T¨6ÀÈ"ÔMˆÜ! # r§z¡z²/Ó'BÕCr:   c                 ó®   — t        ||«      }|j                  ddg|¬«      }t        j                  |d¬«      }t	        ||j                  dgg«      «       y rÏ   rÌ   rÄ   s        r8   Útest_binary_erosion16z+TestNdimageMorphology.test_binary_erosion16Œ  sO   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z°A°3°%Ó'8Õ9r:   c                 óª   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  dgg«      «       y rË   rÌ   rÄ   s        r8   Útest_binary_erosion17z+TestNdimageMorphology.test_binary_erosion17”  sM   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z°A°3°%Ó'8Õ9r:   c                 ó¬   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g«      «       y )Nr   r    r   ©r   r   r   rÌ   rÄ   s        r8   Útest_binary_erosion18z+TestNdimageMorphology.test_binary_erosion18œ  sK   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²9°+Ó'>Õ?r:   c                 ó°   — t        ||«      }|j                  ddg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢g«      «       y )Nr   r    r   rÇ   r©   rÌ   rÄ   s        r8   Útest_binary_erosion19z+TestNdimageMorphology.test_binary_erosion19¤  sM   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²9°+Ó'>Õ?r:   c           	      ó¸   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g d¢g d¢g«      «       y )Nr    r   rü   r­   rÌ   rÄ   s        r8   Útest_binary_erosion20z+TestNdimageMorphology.test_binary_erosion20¬  sY   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ TÓ*ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@r:   c           	      ó¼   — t        ||«      }|j                  ddg|¬«      }t        j                  |d¬«      }t	        ||j                  g d¢g d¢g d¢g«      «       y rÙ   rÌ   rÄ   s        r8   Útest_binary_erosion21z+TestNdimageMorphology.test_binary_erosion21¶  s[   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×$Ñ$ T¸Ô:ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@r:   c                 ó  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g|¬«      }t        j                  |d¬«      }t	        ||«       y )N©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r   r   rÇ   ©r.   r/   r   rÃ   r   ©r2   r   r3   r7   r4   r5   s         r8   Útest_binary_erosion22z+TestNdimageMorphology.test_binary_erosion22À  s”   € ô ˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¸Ô:ˆÜ! # xÕ0r:   c                 ó^  — t        ||«      }t        j                  dd«      }|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d¢g|¬
«      }t        j                  ||d¬«      }t        ||«       y )Nr   r  r  r	  r
  r  r  r  r  r   r   rÇ   )r.   r   r¤   r/   rÃ   r   ©r2   r   r3   r¦   r7   r4   r5   s          r8   Útest_binary_erosion23z+TestNdimageMorphology.test_binary_erosion23Ø  s¶   € ô ˜˜EÓ"ˆÜ×2Ñ2°1°aÓ8ˆØ—‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀÔBˆÜ! # xÕ0r:   c                 ó>  — t        ||«      }|j                  ddgddgg«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d¢g d
¢g d¢g d¢g|¬«      }t        j                  ||d¬«      }t	        ||«       y )Nr   r   r  r
  ©r   r   r   r   r   r   r   r   r  )r   r   r   r   r   r   r   r   r	  r  r  r  r   rÇ   r  r  s          r8   Útest_binary_erosion24z+TestNdimageMorphology.test_binary_erosion24ò  s¶   € ô ˜˜EÓ"ˆØ—‘˜a ˜VØ ˜Vð%ó &ˆâ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀÔBˆÜ! # xÕ0r:   c                 óH  — t        ||«      }g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  ||d¬«      }t	        ||«       y )Nr­   ræ   r  r  )r   r   r   r   r   r   r   r   r  r	  r
  ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r  r   r   rÇ   r  r  s          r8   Útest_binary_erosion25z+TestNdimageMorphology.test_binary_erosion25  s¶   € ô ˜˜EÓ"ˆÚÚÚðˆð —‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀÔBˆÜ! # xÕ0r:   c                 óJ  — t        ||«      }g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g|¬«      }t        j                  ||dd¬«      }t	        ||«       y )Nr­   ræ   r  ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r	  r
  r  r  r  r  r   r   ©rë   rë   rì   r  r  s          r8   Útest_binary_erosion26z+TestNdimageMorphology.test_binary_erosion26(  s»   € ô ˜˜EÓ"ˆÚÚÚðˆð —‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6ÀØ,4ô6ˆä! # xÕ0r:   ú5CuPy: NotImplementedError: only brute_force iterationc           
      óX  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||dd	¬
«      }t        ||«       y ©Nr­   r©   ©r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r   r   ©rÈ   Ú
iterations©r/   rU   r¸   r   rÃ   r   ©r2   r3   r¦   r7   r4   r5   s         r8   Útest_binary_erosion27z+TestNdimageMorphology.test_binary_erosion27E  s°   € ò
 ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6ÀØ01ô3ˆä! # xÕ0r:   z)inplace out= arguments are numpy-specific©rE   Ú
exceptionsrF   ú/NotImplementedError: only brute_force iterationc           
      óü  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||dd	|¬
«       t        ||«       y )Nr­   r©   r'  r(  r   r)  r*  r   r   ©rÈ   r,  Úoutput©r/   rU   r¸   rQ   rR   r   rÃ   r   r.  s         r8   Útest_binary_erosion28z+TestNdimageMorphology.test_binary_erosion28b  sá   € ò ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°Cõ	9ä! # xÕ0r:   c           
      óX  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||d	d
¬«      }t        ||«       y )Nr­   r©   r'  r(  r)  r*  ©r   r   r   r   r   r   r   r   r   r    r+  r-  r.  s         r8   Útest_binary_erosion29z+TestNdimageMorphology.test_binary_erosion29ƒ  s±   € ò
 ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6Ø23ÀôCˆä! # xÕ0r:   c           
      óH  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||d	d
|¬«       t        ||«       t        j                  ||d	d
|¬«       t        ||«       y )Nr­   r©   r'  r(  r   r)  r*  r9  r   r    r4  r6  r.  s         r8   Útest_binary_erosion30z+TestNdimageMorphology.test_binary_erosion30   s  € ò ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°Cõ	9ä! # xÔ0ô 	×Ñ˜t V¸!Ø*+°Dõ	:ä! $¨Õ1r:   c           
      óþ  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d	¢g d
¢g d¢g d¢g d¢g d
¢g d	¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||dd|d¬«       t        ||«       y )Nr­   r©   ©r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r'  ©r   r   r   r   r   r   r   r   r(  r)  r*  r9  r   r"  )rÈ   r,  r5  rí   r6  r.  s         r8   Útest_binary_erosion31z+TestNdimageMorphology.test_binary_erosion31Æ  sä   € ò ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°CÀõ	Jä! # xÕ0r:   c           
      óX  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||dd	¬
«      }t        ||«       y r&  r-  r.  s         r8   Útest_binary_erosion32z+TestNdimageMorphology.test_binary_erosion32å  s±   € ò ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6Ø23ÀôCˆä! # xÕ0r:   c           
      óª  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }t        j                   g d¢g d	¢g d
¢g d
¢g d
¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||d|d¬«      }t        ||«       y )Nr­   r©   )r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r'  )r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r9  )r   r   r   r   r   r   r   r)  r(  r   r   rë   )rÈ   Úmaskr,  r-  ©r2   r3   r¦   r7   rH  r4   r5   s          r8   Útest_binary_erosion33z+TestNdimageMorphology.test_binary_erosion33  sß   € ò ÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÚ%Ú%Ú%Ú%Ú%Ú%Ú%ð'ˆð �z‰z˜$ÓˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6Ø23¸$È2ôOˆä! # xÕ0r:   c           
      ó¨  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||d	|¬
«      }t        ||«       y )Nr­   r©   r'  r(  r*  r)  ©r   r   r   r   r   r   r   r   r   )rÈ   rH  r-  rI  s          r8   Útest_binary_erosion34z+TestNdimageMorphology.test_binary_erosion34%  sÛ   € âÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜hÓ'ˆÚ%Ú%Ú%Ú%Ú%Ú%Ú%ð'ˆð �z‰z˜$ÓˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ×$Ñ$ T¨6Ø23¸$ô@ˆä! # xÕ0r:   c           
      ó  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }g d
¢g d¢g d¢g d¢g d
¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }|j                  ||«      }|j                  ||j	                  |«      «      }|j                  ||«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||dd|d|¬«       t        ||«       y )Nr­   r©   r'  r)  rL  r   r(  r*  r9  r>  r?  r@  rA  r   r"  )rÈ   r,  r5  rí   rH  )r/   rU   r¸   Úlogical_andÚlogical_notÚ
logical_orrQ   rR   r   rÃ   r   )r2   r3   r¦   rH  r4   Útmpr7   r5   s           r8   Útest_binary_erosion35z+TestNdimageMorphology.test_binary_erosion35G  s\  € ò ÚÚðˆð —‘˜FÓ#ˆÚ%Ú%Ú%Ú%Ú%Ú%Ú%ð'ˆô �z‰z˜$¤dÔ+ˆØ�z‰z˜$ÓˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÚ$Ú$Ú$Ú$Ú$Ú$Ú$ð&ˆô �j‰j˜¤DÔ)ˆØ�j‰j˜‹oˆØ—>‘> # tÓ,ˆØ�n‰n˜T 2§>¡>°$Ó#7Ó8ˆØ—=‘= ¨3Ó/ˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*+°CØ&.°Tõ	;ô 	" # xÕ0r:   c                 ó²  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g}t        j                   |t        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }|j                  ||«      }|j                  ||j	                  |«      «      }|j                  ||«      }t        j                  |||dd¬«      }t        ||«       y )Nr­   ræ   r  ©r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r  r  r   r!  r	  r
  r  r  r  r  r   r"  )rH  rÈ   rí   )	r/   rU   r¸   rO  rP  rQ  r   rÃ   r   )r2   r3   r¦   rH  rR  r4   r7   r5   s           r8   Útest_binary_erosion36z+TestNdimageMorphology.test_binary_erosion36s  sB  € ò ÚÚðˆð —‘˜FÓ#ˆÚ(Ú(Ú(Ú(Ú(Ú(Ú(Ú(ð*ˆô �z‰z˜$¤dÔ+ˆØ�z‰z˜$ÓˆÚ'Ú'Ú'Ú'Ú'Ú'Ú'Ú'ð)ˆô �j‰j˜¤DÔ)ˆØ�j‰j˜‹oˆÜ�z‰zÒ3Ú4Ú4Ú4Ú4Ú4Ú4Ú4ð6ô >BôCˆð �z‰z˜$ÓˆØ—>‘> # tÓ,ˆØ�n‰n˜T 2§>¡>°$Ó#7Ó8ˆØ—=‘= ¨3Ó/ˆÜ×$Ñ$ T¨6¸Ø23¸HôFˆä! # xÕ0r:   c                 ó  — t        j                  g d¢g d¢g d¢gt        ¬«      }|j                  |«      }|j                  |«      }t	        j
                  |||ddd¬«      }||u sJ ‚t        t	        j
                  ||dd¬«      |«       y )Nræ   r­   r   r   T)Ú	structurer5  r,  rÈ   Úbrute_force)rX  r,  rÈ   )rU   r/   r¸   Ú
zeros_liker   rÃ   r   )r2   r3   ÚaÚbr5   s        r8   Útest_binary_erosion37z+TestNdimageMorphology.test_binary_erosion37Ÿ  sŠ   € ô �J‰Jš	Ú!Ú!ð#ä*.ô0ˆð �J‰J�q‹MˆØ�M‰M˜!ÓˆÜ×$Ñ$ Q°!¸AÈ!Ø26ÀDôJˆà�a‰xˆˆxÜÜ×"Ñ" 1°¸aØ04ô6àõ	r:   c                 óè   — t        j                  g d¢g d¢g d¢gt        ¬«      }|j                  |«      }d}t        t        «      5  t        j                  ||¬«      }d d d «       y # 1 sw Y   y xY w)Nræ   r­   r   g       @©r,  )rU   r/   r¸   rj   Ú	TypeErrorr   rÃ   )r2   r3   r4   r,  Ú_s        r8   Útest_binary_erosion38z+TestNdimageMorphology.test_binary_erosion38²  sh   € ä�z‰zš9Ú$Ú$ð&ä-1ô3ˆð �z‰z˜$ÓˆØˆ
Üœ9Ó%ñ 	DÜ×&Ñ& t¸
ÔCˆA÷	D÷ 	Dñ 	Dús   ÁA(Á(A1c           
      ó  — t        j                  d«      }g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |t        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j
                  t        ¬«      }|j                  |«      }t        j                  ||d
||¬«       t        ||«       y ©Nr    r­   r©   r'  r(  r   r)  r*  r9  r   r4  )	rU   rV   r/   r¸   rQ   rR   r   rÃ   r   ©r2   r3   r,  r¦   r7   r4   r5   s          r8   Útest_binary_erosion39z+TestNdimageMorphology.test_binary_erosion39¼  sñ   € ô —X‘X˜a“[ˆ
ÚÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆð —:‘:˜h¬d�:Ó3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*4¸Sõ	Bä! # xÕ0r:   c           
      ó&  — t        j                  d«      }g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                  |t        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d	¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j
                  t        ¬«      }|j                  |«      }t        j                  ||d
||¬«       t        ||«       y rd  )	rU   Úint64r/   r¸   rQ   rR   r   rÃ   r   re  s          r8   Útest_binary_erosion40z+TestNdimageMorphology.test_binary_erosion40Þ  sï   € ô —X‘X˜a“[ˆ
ÚÚÚðˆð —‘˜FÓ#ˆÚ)Ú)Ú)Ú)Ú)Ú)Ú)ð+ˆô —:‘:˜h¬dÔ3ˆØ—:‘:˜hÓ'ˆÜ�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô :>ô?ˆð �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ˜t V¸!Ø*4¸Sõ	Bä! # xÕ0r:   c                 ó°   — t        ||«      }|j                  g |¬«      }t        j                  |«      }||j	                  d|j
                  ¬«      k(  sJ ‚y rÁ   )r.   r‚   r   Úbinary_dilationr/   r   rÄ   s        r8   Útest_binary_dilation01z,TestNdimageMorphology.test_binary_dilation01   sQ   € ô ˜˜EÓ"ˆØ�w‰w�r ˆwÓ'ˆÜ×%Ñ% dÓ+ˆØ�b—j‘j ¨#¯)©)�jÓ4Ò4Ð4Ñ4r:   c                 ó˜   — t        ||«      }|j                  g |¬«      }t        j                  |«      }||j	                  d«      k(  sJ ‚y )Nr   F)r.   rQ   r   rk  r/   rÄ   s        r8   Útest_binary_dilation02z,TestNdimageMorphology.test_binary_dilation02  sI   € ô ˜˜EÓ"ˆØ�x‰x˜ %ˆxÓ(ˆÜ×%Ñ% dÓ+ˆØ�b—j‘j Ó'Ò'Ð'Ñ'r:   c                 ó¾   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  dg|j                  ¬«      «       y ©Nr   r   )r.   r‚   r   rk  r   r/   r   rÄ   s        r8   Útest_binary_dilation03z,TestNdimageMorphology.test_binary_dilation03  sQ   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°1°#¸S¿Y¹Y zÓ'GÕHr:   c                 ó¦   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  dg«      «       y rË   ©r.   rQ   r   rk  r   r/   rÄ   s        r8   Útest_binary_dilation04z,TestNdimageMorphology.test_binary_dilation04  sH   € ô ˜˜EÓ"ˆØ�x‰x˜˜ 5ˆxÓ)ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°1°#£Õ7r:   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y ©Nr    r   r©   ©r.   r‚   r   rk  r   r/   rÄ   s        r8   Útest_binary_dilation05z,TestNdimageMorphology.test_binary_dilation05   sG   € ô ˜˜EÓ"ˆØ�w‰w˜�s %ˆwÓ(ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²)Ó'<Õ=r:   c                 óÊ   — t        ||«      }|j                  d|¬«      }|j                  |d«      }t        j                  |«      }t        ||j                  g d¢«      «       y )NrÔ   r   rÕ   r©   )r.   r‚   rÖ   r   rk  r   r/   rÄ   s        r8   Ú"test_binary_dilation05_broadcastedz8TestNdimageMorphology.test_binary_dilation05_broadcasted(  sU   € ô ˜˜EÓ"ˆØ�w‰w�u EˆwÓ*ˆØ�‰˜t TÓ*ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²)Ó'<Õ=r:   c                 ó¨   — t        ||«      }|j                  dg|¬«      }t        j                  |«      }t	        ||j                  g d¢«      «       y )Nr    r   rü   rs  rÄ   s        r8   Útest_binary_dilation06z,TestNdimageMorphology.test_binary_dilation061  sG   € ô ˜˜EÓ"ˆØ�x‰x˜˜ 5ˆxÓ)ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²)Ó'<Õ=r:   c                 óÄ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr    r   r   r©   ©rU   rQ   r/   r   rk  r   rÄ   s        r8   Útest_binary_dilation07z,TestNdimageMorphology.test_binary_dilation079  sP   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²)Ó'<Õ=r:   c                 óÎ   — t        j                  dg|¬«      }d|d<   d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr$   r   r   r    rµ   r~  rÄ   s        r8   Útest_binary_dilation08z,TestNdimageMorphology.test_binary_dilation08B  sY   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰ØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óÄ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢«      «       y )Nr$   r   r   ©r   r   r   r   r   r~  rÄ   s        r8   Útest_binary_dilation09z,TestNdimageMorphology.test_binary_dilation09L  sP   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óÈ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |d¬«      }t        ||j                  g d¢«      «       y )Nr$   r   r   rë   ©rí   r´   r~  rÄ   s        r8   Útest_binary_dilation10z,TestNdimageMorphology.test_binary_dilation10U  sR   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% d°2Ô6ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óÈ   — t        j                  dg|¬«      }d|d<   |j                  |«      }t        j                  |d¬«      }t        ||j                  g d¢«      «       y )Nr$   r   r   r†  ©r   r   r   r   r   r~  rÄ   s        r8   Útest_binary_dilation11z,TestNdimageMorphology.test_binary_dilation11^  sR   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆÜ×%Ñ% d°1Ô5ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óì   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||«      }t        ||j                  g d¢«      «       y )Nr$   r   r   ræ   )r   r   r   r   r   r~  rè   s         r8   Útest_binary_dilation12z,TestNdimageMorphology.test_binary_dilation12g  s`   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨FÓ3ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )Nr$   r   r   ræ   rÇ   rç   r~  rè   s         r8   Útest_binary_dilation13z,TestNdimageMorphology.test_binary_dilation13q  sb   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨FÀÔCˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óð   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||d¬«      }t        ||j                  g d¢«      «       y )Nr$   r   r   ræ   rë   r†  )r   r   r   r   r   r~  rè   s         r8   Útest_binary_dilation14z,TestNdimageMorphology.test_binary_dilation14{  sb   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨F¸2Ô>ˆÜ! # r§z¡z²/Ó'BÕCr:   c                 óò   — t        j                  dg|¬«      }d|d<   |j                  |«      }|j                  g d¢«      }t        j                  ||dd¬«      }t        ||j                  g d¢«      «       y )Nr$   r   r   ræ   rë   ©rí   rÈ   rñ   r~  rè   s         r8   Útest_binary_dilation15z,TestNdimageMorphology.test_binary_dilation15…  sh   € ô �x‰x˜˜ 5Ô)ˆØˆˆQ‰Ø�z‰z˜$ÓˆØ—‘šIÓ&ˆÜ×%Ñ% d¨FØ-/¸aôAˆä! # r§z¡z²/Ó'BÕCr:   c                 óª   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  dgg«      «       y rp  rw  rÄ   s        r8   Útest_binary_dilation16z,TestNdimageMorphology.test_binary_dilation16�  sM   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°A°3°%Ó'8Õ9r:   c                 óª   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  dgg«      «       y rË   rs  rÄ   s        r8   Útest_binary_dilation17z,TestNdimageMorphology.test_binary_dilation17˜  sM   € ô ˜˜EÓ"ˆØ�x‰x˜˜A˜ eˆxÓ,ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z°A°3°%Ó'8Õ9r:   c                 ó¬   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g«      «       y )Nr   r    r   r©   rw  rÄ   s        r8   Útest_binary_dilation18z,TestNdimageMorphology.test_binary_dilation18   sK   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²9°+Ó'>Õ?r:   c           	      ó¸   — t        ||«      }|j                  ddg|¬«      }t        j                  |«      }t	        ||j                  g d¢g d¢g d¢g«      «       y rv  rw  rÄ   s        r8   Útest_binary_dilation19z,TestNdimageMorphology.test_binary_dilation19¨  sY   € ô ˜˜EÓ"ˆØ�w‰w˜˜1�v UˆwÓ+ˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@r:   c           	      óÔ   — t        j                  ddg|¬«      }d|d<   |j                  |«      }t        j                  |«      }t        ||j                  g d¢g d¢g d¢g«      «       y )Nr    r   r   ©r   r   r­   r©   r~  rÄ   s        r8   Útest_binary_dilation20z,TestNdimageMorphology.test_binary_dilation20²  sb   € ô �x‰x˜˜A˜ eÔ,ˆØˆˆT‰
Ø�z‰z˜$ÓˆÜ×%Ñ% dÓ+ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@r:   c           	      ó$  — t        j                  dd«      }|j                  |«      }t        j                  ddg|¬«      }d|d<   |j                  |«      }t        j
                  ||«      }t        ||j                  g d¢g d¢g d¢g«      «       y )Nr   r    r   r   r�  r©   )r   r¤   r/   rU   rQ   rk  r   )r2   r   r3   r¦   r4   r5   s         r8   Útest_binary_dilation21z,TestNdimageMorphology.test_binary_dilation21½  s„   € ô ×2Ñ2°1°aÓ8ˆØ—‘˜FÓ#ˆÜ�x‰x˜˜A˜ eÔ,ˆØˆˆT‰
Ø�z‰z˜$ÓˆÜ×%Ñ% d¨FÓ3ˆÜ! # r§z¡z²9Ú3<Ú3<ð3>ó (?õ 	@r:   c                 ó
  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  |«      }t	        ||«       y )Nr	  ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   ©r.   r/   r   rk  r   r  s         r8   Útest_binary_dilation22z,TestNdimageMorphology.test_binary_dilation22Ê  s’   € ô ˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% dÓ+ˆÜ! # xÕ0r:   c                 ó  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  |d¬«      }t	        ||«       y )N©r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r  r	  r  r  r  r   r   rÇ   r¥  r  s         r8   Útest_binary_dilation23z,TestNdimageMorphology.test_binary_dilation23â  s”   € ô ˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d¸Ô;ˆÜ! # xÕ0r:   c                 ó  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  |d¬«      }t	        ||«       y )N©r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r  )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r!  r  r	  r  r  r  r   r�  r†  r¥  r  s         r8   Útest_binary_dilation24z,TestNdimageMorphology.test_binary_dilation24ú  s”   € ô ˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d°6Ô:ˆÜ! # xÕ0r:   c                 ó  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  |dd¬«      }t	        ||«       y )N©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r  ©r   r   r   r   r   r   r   r   r¨  ©r   r   r   r   r   r   r   r   r  r	  r  r  r  r   r�  r   r’  r¥  r  s         r8   Útest_binary_dilation25z,TestNdimageMorphology.test_binary_dilation25  s–   € ô ˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d°6ÈÔJˆÜ! # xÕ0r:   c                 óZ  — t        ||«      }t        j                  dd«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g|¬«      }t        j                  ||«      }t        ||«       y )Nr   r¢  )r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r   )r.   r   r¤   r/   rk  r   r  s          r8   Útest_binary_dilation26z,TestNdimageMorphology.test_binary_dilation26*  s´   € ô ˜˜EÓ"ˆÜ×2Ñ2°1°aÓ8ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d¨FÓ3ˆÜ! # xÕ0r:   c                 ó>  — t        ||«      }ddgddgg}g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d	¢g}|j                  |«      }|j                  |«      }|j                  g d	¢g d¢g d	¢g d¢g d
¢g d¢g d	¢g d	¢g|¬«      }t        j                  ||«      }t	        ||«       y )Nr   r   r	  r«  r  r  r  ©r   r   r   r   r   r   r   r   r  r  r  r   r¥  r  s          r8   Útest_binary_dilation27z,TestNdimageMorphology.test_binary_dilation27D  s·   € ô ˜˜EÓ"ˆØ�a�&Ø�a�&ðˆâ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d¨FÓ3ˆÜ! # xÕ0r:   c                 óÞ   — t        ||«      }g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d¢g|¬«      }t        j                  |d¬«      }t	        ||«       y )N)r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   rÇ   r¥  r  s         r8   Útest_binary_dilation28z,TestNdimageMorphology.test_binary_dilation28_  sy   € ô ˜˜EÓ"ˆÚ Ú Ú Ú ð"ˆð —:‘:˜hÓ'ˆØ�z‰zš<Ú'Ú'Ú'ð)ð 16ð ó 7ˆô ×%Ñ% d¸Ô;ˆÜ! # xÕ0r:   c                 ó8  — ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||d¬	«      }t        ||«       y )
Nr   r   rà   ©r   r   r   r   r   ©r   r   r   r   r   r´   r   r   r_  ©r/   rU   r¸   r   rk  r   r.  s         r8   Útest_binary_dilation29z,TestNdimageMorphology.test_binary_dilation29o  ó¡   € ð �a�&Ø�a�&ðˆâ#Ú#Ú#Ú#Ú#ð	%ˆð
 —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆÜ�z‰zš?Ú*Ú*Ú*Ú*ð	,ô 48ô	9ˆð
 �z‰z˜$ÓˆÜ×%Ñ% d¨F¸qÔAˆÜ! # xÕ0r:   z!output= arrays are numpy-specificc                 óž  — ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||d|¬	«       t        ||«       y )
Nr   r   rà   r¼  r½  r´   r   r   ©r,  r5  )r/   r¸   rU   rQ   rR   r   rk  r   r.  s         r8   Útest_binary_dilation30z,TestNdimageMorphology.test_binary_dilation30…  sÇ   € ð �a�&Ø�a�&ðˆâ#Ú#Ú#Ú#Ú#ð	%ˆð
 —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zš?Ú*Ú*Ú*Ú*ð	,ô 48ð	 ó 9ˆð
 �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ  f¸À3ÕGÜ! # xÕ0r:   c                 ó8  — ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||d	¬
«      }t        ||«       y )Nr   r   r¼  r½  r´   ©r   r   r   r   r   rà   r   r    r_  r¾  r.  s         r8   Útest_binary_dilation31z,TestNdimageMorphology.test_binary_dilation31Ÿ  rÀ  r:   c                 ó¦  — ddgddgg}g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |j                  t        ¬«      }|j                  |«      }t        j                  ||d	|¬
«       t        ||«       y )Nr   r   r¼  r½  r´   rÅ  rà   r   r    rÂ  ©r/   rU   r¸   rQ   rR   r   rk  r   r.  s         r8   Útest_binary_dilation32z,TestNdimageMorphology.test_binary_dilation32µ  sÂ   € ð �a�&Ø�a�&ðˆâ#Ú#Ú#Ú#Ú#ð	%ˆð
 —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆÜ�z‰zš?Ú*Ú*Ú*Ú*ð	,ô 48ô	9ˆð
 �z‰z˜$ÓˆÜ�h‰h�t—z‘z¬Ô.ˆØ�j‰j˜‹oˆÜ×Ñ  f¸À3ÕGÜ! # xÕ0r:   c                 ó   — g d¢g d¢g d¢g}|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  ||d
|d¬«      }t        ||«       y )Nr­   r©   r	  r  ©r   r   r   r   r   r   r   r   rU  r·  r   ©r   r   r   r   r   r   r   r   rë   r   ©r,  rH  rÈ   r¾  rI  s          r8   Útest_binary_dilation33z,TestNdimageMorphology.test_binary_dilation33Ï  s  € ò ÚÚðˆð —‘˜FÓ#ˆÜ—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$Óˆä×%Ñ% d¨F¸rØ+/¸aôAˆä! # xÕ0r:   z)inplace output= arrays are numpy-specificc                 ó°  — g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                   g d¢g d¢g d¢g d¢g d¢g d	¢g d¢g d¢gt        ¬
«      }|j                  |«      }t        j                  |j                  t        ¬
«      }|j                  |«      }t        j                  ||d|d¬«      }t        ||«       y )Nr­   r©   r	  ©r   r   r   r   r   r   r   r   r   r  r  r  r  r   rë   r   rÍ  rÈ  rI  s          r8   Útest_binary_dilation34z,TestNdimageMorphology.test_binary_dilation34÷  sÏ   € ò ÚÚðˆð —‘˜FÓ#ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆô �z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�x‰x˜Ÿ
™
¬$Ô/ˆØ�z‰z˜$ÓˆÜ×%Ñ% d¨F¸rØ+/¸aôAˆä! # xÕ0r:   c                 ó¢  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                  |t        ¬«      }t        j                  ||«      }t        j                  |t        j
                  |«      «      }t        j                  ||«      }|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  ||dd¬«      }t        ||«       y )Nr®  r¯  r  r°  r¨  r±  r  r	  r  r  r  r  r   r�  r   )rH  rí   rÈ   )
r.   rU   r/   r¸   rO  rP  rQ  r   rk  r   )r2   r   r3   rR  r4   rH  r7   r5   s           r8   Útest_binary_dilation35z,TestNdimageMorphology.test_binary_dilation35  sA  € ô ˜˜EÓ"ˆÚ'Ú'Ú'Ú'Ú'Ú'Ú'Ú'ð)ˆô �z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ó 6ˆò )Ú(Ú(Ú(Ú(Ú(Ú(Ú(ð*ˆô �z‰z˜$¤dÔ+ˆä—>‘> # tÓ,ˆÜ�n‰n˜T¤2§>¡>°$Ó#7Ó8ˆÜ—=‘= ¨3Ó/ˆà�z‰z˜$ÓˆØ—:‘:˜hÓ'ˆà�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×%Ñ% d°Ø-3À!ôEˆä! # xÕ0r:   c                 ó¶   — t        j                  g t        ¬«      }|j                  |«      }t	        j
                  |d¬«      }||j                  d«      k(  sJ ‚y )Nr   rë   r_  F)rU   rQ   r¸   r/   r   rk  )r2   r3   r4   r5   s       r8   Útest_binary_dilation36z,TestNdimageMorphology.test_binary_dilation36J  sK   € ô �x‰x˜¤$Ô'ˆØ�z‰z˜$ÓˆÜ×%Ñ% d°rÔ:ˆØ�b—j‘j Ó'Ò'Ð'Ñ'r:   c                 ó  — g d¢g d¢g d¢g}|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d	¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |||d
¬«      }t        ||«       y )Nr­   r©   r	  r  rË  rU  r·  r   rÌ  r   ©rH  rÈ   )r/   rU   r¸   r   Úbinary_propagationr   rI  s          r8   Útest_binary_propagation01z/TestNdimageMorphology.test_binary_propagation01R  s  € âÚÚðˆð —‘˜FÓ#ˆÜ—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ×(Ñ(¨¨vØ.2ÀôDˆä! # xÕ0r:   c                 óÐ  — g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }t        j                   g d¢g d¢g d¢g d¢g d¢g d	¢g d¢g d¢gt        ¬
«      }|j                  |«      }t        j                  |j                  t        ¬
«      }|j                  |«      }t        j                  |||d¬«      }t        ||«       y )Nr­   r©   r	  rÐ  r   r  r  r  r  r   r   r×  )r/   rU   r¸   rQ   rR   r   rØ  r   rI  s          r8   Útest_binary_propagation02z/TestNdimageMorphology.test_binary_propagation02w  sÙ   € âÚÚðˆò -Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ—‘˜FÓ#ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ�x‰x˜Ÿ
™
¬$Ô/ˆØ�z‰z˜$ÓˆÜ×(Ñ(¨¨vØ.2ÀôDˆä! # xÕ0r:   c                 óä   — |j                  t        j                  g t        ¬«      «      }|j                  t        j                  g t        ¬«      «      }t	        j
                  |«      }||k(  sJ ‚y )Nr   )r/   rU   rQ   r¸   r   rØ  )r2   r3   r4   r7   r5   s        r8   Útest_binary_propagation03z/TestNdimageMorphology.test_binary_propagation03•  sR   € ð �z‰zœ"Ÿ(™( 2¬TÔ2Ó3ˆØ—:‘:œbŸh™h r´Ô6Ó7ˆÜ×(Ñ(¨Ó.ˆØ�hŠÐ‰r:   c                 ó
  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d	¢g d¢g d¢g d¢g|¬
«      }t        j                  |«      }t	        ||«       y )Nr	  r¢  r£  ©r   r   r   r   r   r   r   r   r  r  r  r¤  ©r   r   r   r   r   r   r   r   r   )r.   r/   r   Úbinary_openingr   r  s         r8   Útest_binary_opening01z+TestNdimageMorphology.test_binary_opening01�  ó’   € ô ˜˜EÓ"ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ TÓ*ˆÜ! # xÕ0r:   c                 óZ  — t        ||«      }t        j                  dd«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|¬	«      }t        j                  ||«      }t        ||«       y )
Nr   r¢  r  )r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r´  ©r   r   r   r   r   r   r   r   r  r   )r.   r   r¤   r/   rá  r   r  s          r8   Útest_binary_opening02z+TestNdimageMorphology.test_binary_opening02µ  ó´   € ô ˜˜EÓ"ˆÜ×2Ñ2°1°aÓ8ˆÚ,Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —:‘:˜hÓ'ˆØ—‘˜FÓ#ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×$Ñ$ T¨6Ó2ˆÜ! # xÕ0r:   c                 ó
  — t        ||«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g|¬«      }t        j                  |«      }t	        ||«       y )Nr  rÐ  )r   r   r   r   r   r   r   r   r´  r  r  r  r	  r¢  r£  r¤  rà  r   )r.   r/   r   Úbinary_closingr   r  s         r8   Útest_binary_closing01z+TestNdimageMorphology.test_binary_closing01Ï  rã  r:   c                 óZ  — t        ||«      }t        j                  dd«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g|¬	«      }t        j                  ||«      }t        ||«       y )
Nr   r  rÐ  r  r¢  rå  r´  ræ  r   )r.   r   r¤   r/   rê  r   r  s          r8   Útest_binary_closing02z+TestNdimageMorphology.test_binary_closing02ç  rè  r:   c           
      óJ  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |«      }t        ||«       y )Nr  r  r   r  ©rU   r/   r¸   r   Úbinary_fill_holesr   ©r2   r3   r7   r4   r5   s        r8   Útest_binary_fill_holes01z.TestNdimageMorphology.test_binary_fill_holes01	  s›   € ä—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆä�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$Óˆä×'Ñ'¨Ó-ˆÜ! # xÕ0r:   c           
      óJ  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |«      }t        ||«       y )Nr  r  r  r   r  rï  rñ  s        r8   Útest_binary_fill_holes02z.TestNdimageMorphology.test_binary_fill_holes02	  ó›   € ä—:‘:Ò7Ú7Ú7Ú7Ú7Ú7Ú7ð9ô AEôFˆð —:‘:˜hÓ'ˆÜ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3ð5ô =AôBˆð �z‰z˜$ÓˆÜ×'Ñ'¨Ó-ˆÜ! # xÕ0r:   c           
      óJ  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  |«      }t        ||«       y )Nr  r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rï  rñ  s        r8   Útest_binary_fill_holes03z.TestNdimageMorphology.test_binary_fill_holes03-	  rõ  r:   )Úcpu_onlyz2these filters do not yet have axes support in CuPyz	jax.numpyz.these filters are not implemented in JAX.numpyrÈ   r   r   rí   )r   r   )rë   r   Úexpand_axis©r   r   r   Úfuncc           
      ó
  — |j                   }t        j                  g d¢g d¢g d¢gt        «      }|j                  |«      }t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        «      }|j                  |«      }|dk(  rt	        ||¬	«      }	nt	        |¬
«      }	|dv}
|
r||	d<   n|dk7  rt        j                  d«        |||fi |	¤Ž}d}|j                  |g|z  |¬«      }|j                  |g|z  |¬«      }g d¢}|j                  |«       t        |«      st        |«      rA|j                  t        j                  |j                  t        «      «      } |||f||dœ|	¤Ž n |||fd|i|	¤Ž}t        ||«       y )Nr­   r©   r(  )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r*  )r   r   r   r   r   r   r   Úbinary_hit_or_miss)Úorigin1Úorigin2r†  )rý  rð  rÈ   r   z-border_value !=0 unsupported by this functionr$   rˆ   rú  ©r5  Úaxesr  )Ú__name__rU   r/   r¸   ÚdictÚpytestÚskipÚstackÚremover   r   rQ   rR   r   )r2   r3   rû  rù  rí   rÈ   Ú	func_namer¦   r4   ÚkwargsÚborder_supportedr7   Ún_repsr  r5   s                  r8   Útest_binary_axesz&TestNdimageMorphology.test_binary_axesB	  s‰  € ð( —M‘Mˆ	Ü—‘šYÚ&Ú&ð(ä)-ó/ˆð —‘˜FÓ#ˆä�z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ô 48ó9ˆð �z‰z˜$ÓˆØÐ,Ò,Ü &°&Ô9‰Fä Ô(ˆFØ$ð -Bð BÐáØ%1ˆF�>Ò"Ø˜QÒÜ�K‰KÐGÔHá˜˜fÑ/¨Ñ/ˆð ˆØ—8‘8˜X˜J¨Ñ/°k�8ÓBˆØ�x‰x˜˜ ™¨kˆxÓ:ˆò ˆØ�‰�KÔ Ü�BŒ<œ7 2œ;Ø—*‘*œRŸX™X d§j¡j´$Ó7Ó8ˆCÙ��vÐ? c°Ñ?¸Ó?ñ �t˜VÑ9¨$Ð9°&Ñ9ˆCÜ˜˜XÕ&r:   c           	      óÜ   — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        ||j                  g d¢g d¢g d	¢g«      «       y )
N©r    r   r$   r   r   ©r%   r"   rg   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   ©r/   r   Úgrey_erosionr   ©r2   r3   Úarrayr  r5  s        r8   Útest_grey_erosion01z)TestNdimageMorphology.test_grey_erosion01�	  si   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×%Ñ% e°yÔAˆÜ! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	Ar:   z!output=array requires buffer viewz
dask.arrayz(https://github.com/cupy/cupy/issues/8398c           	      óÞ   — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«       t        ||j                  g d¢g d¢g d	¢g«      «       y )
Nr  r  r  ræ   r  )r  r5  r  r  r  r  )r2   r3   r  r  s       r8   Útest_grey_erosion01_overlapz1TestNdimageMorphology.test_grey_erosion01_overlap�	  sj   € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×Ñ˜U¨iÀÕFÜ! %Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
r:   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  ræ   r  rü   ©r  rX  r  r  r  r  ©r2   r3   r  r  rX  r5  s         r8   Útest_grey_erosion02z)TestNdimageMorphology.test_grey_erosion02ž	  ó€   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×%Ñ% e°yØ09ô;ˆä! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
r:   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  ræ   r  r©   r  r‰  )r   r   r   r   r   )r   r   r   r   r   r  r   s         r8   Útest_grey_erosion03z)TestNdimageMorphology.test_grey_erosion03­	  r"  r:   c           	      óÜ   — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        ||j                  g d¢g d¢g d	¢g«      «       y )
Nr  r  r  r¼   ræ   r  ©r%   r%   rg   rg   r$   ©r%   rg   r   rg   r%   ©r   r   r   r%   r%   ©r/   r   Úgrey_dilationr   r  s        r8   Útest_grey_dilation01z*TestNdimageMorphology.test_grey_dilation01¼	  sh   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×&Ñ& u¸	ÔBˆÜ! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
r:   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  r¼   ræ   rü   r  r&  r'  r(  r)  r   s         r8   Útest_grey_dilation02z*TestNdimageMorphology.test_grey_dilation02É	  s€   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×&Ñ& u¸	Ø1:ô<ˆä! &Ø"$§*¡*ªoÚ.=Ú.=ð.?ó #@õ	
r:   c           	      ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        ||j                  g d¢g d	¢g d
¢g«      «       y )Nr  r  r  r¼   ræ   r©   r  )r   r   é
   r/  r"   )r   r/  rg   r/  r   )rg   rg   rg   r   r   r)  r   s         r8   Útest_grey_dilation03z*TestNdimageMorphology.test_grey_dilation03Ø	  s�   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×&Ñ& u¸	Ø1:ô<ˆä! &Ø"$§*¡*Ò.?Ú.?Ú.=ð.?ó #@õ	
r:   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        j                  ||¬«      }t        j                  ||¬«      }t        ||«       y ©Nr  r  r  ræ   r  r  ©r/   r   r  r*  Úgrey_openingr   ©r2   r3   r  r  rR  r7   r5  s          r8   Útest_grey_opening01z)TestNdimageMorphology.test_grey_opening01ç	  sr   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IÔ>ˆÜ×(Ñ(¨¸	ÔBˆÜ×%Ñ% e°yÔAˆÜ! &¨(Õ3r:   c                 ó<  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }t        j                  |||¬«      }t        ||«       y ©Nr  r  r  ræ   r  rü   r  r3  ©r2   r3   r  r  rX  rR  r7   r5  s           r8   Útest_grey_opening02z)TestNdimageMorphology.test_grey_opening02ò	  s”   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆä×(Ñ(¨¸	Ø3<ô>ˆä×%Ñ% e°yØ09ô;ˆä! &¨(Õ3r:   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  ||¬«      }t        j                  ||¬«      }t        j                  ||¬«      }t        ||«       y r2  ©r/   r   r*  r  Úgrey_closingr   r5  s          r8   Útest_grey_closing01z)TestNdimageMorphology.test_grey_closing01
  sr   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ü×#Ñ# E°YÔ?ˆÜ×'Ñ'¨°yÔAˆÜ×%Ñ% e°yÔAˆÜ! &¨(Õ3r:   c                 ó<  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }t        j                  |||¬«      }t        ||«       y r8  r<  r9  s           r8   Útest_grey_closing02z)TestNdimageMorphology.test_grey_closing02
  s”   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×#Ñ# E°YØ.7ô9ˆä×'Ñ'¨°yØ2;ô=ˆä×%Ñ% e°yØ09ô;ˆä! &¨(Õ3r:   c                 ó–  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z
  }|j	                  |j
                  |j                  ¬«      }t        j                  ||||¬	«       t        ||«       y ©
Nr  r  r  ræ   r  rü   r  r   ©r  rX  r5  )	r/   r   r*  r  rQ   rR   r   Úmorphological_gradientr   ©	r2   r3   r  r  rX  Útmp1Útmp2r7   r5  s	            r8   Útest_morphological_gradient01z3TestNdimageMorphology.test_morphological_gradient01
  sº   € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×&Ñ& u¸	Ø1:À6õ	Kä! &¨(Õ3r:   c                 óF  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z
  }t        j                  |||¬«      }t        ||«       y r8  )r/   r   r*  r  rD  r   rE  s	            r8   Útest_morphological_gradient02z3TestNdimageMorphology.test_morphological_gradient02.
  s    € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;ˆÜ×/Ñ/°ÀØ:CôEˆä! &¨(Õ3r:   c                 ó¢  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z   d|z  z
  }|j	                  |j
                  |j                  ¬	«      }t        j                  ||||¬
«       t        ||«       y )Nr  r  r  ræ   r  rü   r  r   r   rC  )	r/   r   r*  r  rQ   rR   r   Úmorphological_laplacer   rE  s	            r8   Útest_morphological_laplace01z2TestNdimageMorphology.test_morphological_laplace01?
  sÃ   € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;  U¡Ñ*ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×%Ñ% e°yØ09À&õ	Jä! &¨(Õ3r:   c                 óR  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }t        j                  |||¬«      }||z   d|z  z
  }t        j                  |||¬«      }t        ||«       y )	Nr  r  r  ræ   r  rü   r  r   )r/   r   r*  r  rL  r   rE  s	            r8   Útest_morphological_laplace02z2TestNdimageMorphology.test_morphological_laplace02R
  s©   € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×$Ñ$ U°iØ/8ô:ˆä×#Ñ# E°YØ.7ô9ˆà˜$‘;  U¡Ñ*ˆÜ×.Ñ.¨uÀ	Ø9BôDˆä! &¨(Õ3r:   c                 óf  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }|j                  |j                  |j
                  ¬«      }t        j                  ||||¬	«       t        ||«       y rB  )r/   r   r4  rQ   rR   r   Úwhite_tophatr   r9  s           r8   Útest_white_tophat01z)TestNdimageMorphology.test_white_tophat01c
  s£   € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜3‘;ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×Ñ˜U¨iØ'0¸õ	Aä! &¨(Õ3r:   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }t        j                  |||¬«      }t	        ||«       y r8  )r/   r   r4  rQ  r   r9  s           r8   Útest_white_tophat02z)TestNdimageMorphology.test_white_tophat02t
  s†   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜3‘;ˆÜ×%Ñ% e°yØ09ô;ˆä! &¨(Õ3r:   z	cupy#8399c           
      ó¦  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  dt        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d	¢g d
¢g d	¢g d¢gt        ¬«      }|j                  |«      }t	        j
                  ||¬«      }t        ||«       y )N©r   r   r   r   r   r   r   r*  ©r   r   r   r   r   r   r   rF  r   r   )r   r   r   r   r   r   r   )r   r   r   r   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  )rU   r/   r¸   r‚   r   rQ  r   ©r2   r3   r  rX  r7   r5  s         r8   Útest_white_tophat03z)TestNdimageMorphology.test_white_tophat03‚
  ó»   € ô —
‘
Ò1Ú1Ú1Ú1Ú1Ú1Ú1ð3ô ;?ô@ˆð —
‘
˜5Ó!ˆÜ—G‘G˜F¬$Ô/ˆ	Ø—J‘J˜yÓ)ˆ	Ü—:‘:Ò4Ú4Ú4Ú4Ú4Ú4Ú4ð6ô >BôCˆð —:‘:˜hÓ'ˆä×%Ñ% e°yÔAˆÜ˜ Õ)r:   ú(https://github.com/cupy/cupy/issues/9756c                 ó  — t        j                  dt        ¬«      }t        j                  dt        ¬«      }|j	                  |«      }|j	                  |«      }|j                  ||j                  ¬«      }t        j                  |||¬«       y ©Nr$   r   r   )rX  r5  )	rU   Úeyer¸   r‚   r/   Ú
empty_likerS   r   rQ  ©r2   r3   r  rX  r5  s        r8   Útest_white_tophat04z)TestNdimageMorphology.test_white_tophat04œ
  sj   € ô
 —‘�q¤Ô%ˆÜ—G‘G˜F¬$Ô/ˆ	à—
‘
˜5Ó!ˆØ—J‘J˜yÓ)ˆ	ð —‘˜u¨B¯J©J�Ó7ˆÜ×Ñ˜U¨iÀÖGr:   c                 óf  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }|j                  |j                  |j
                  ¬«      }t        j                  ||||¬	«       t        ||«       y rB  )r/   r   r=  rQ   rR   r   Úblack_tophatr   r9  s           r8   Útest_black_tophat01z)TestNdimageMorphology.test_black_tophat01«
  s£   € ð —
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜‘;ˆØ—‘˜%Ÿ+™+¨U¯[©[�Ó9ˆÜ×Ñ˜U¨iØ'0¸õ	Aä! &¨(Õ3r:   c                 ó  — |j                  g d¢g d¢g d¢g«      }|j                  g d¢g d¢g«      }|j                  g d¢g d¢g«      }t        j                  |||¬«      }||z
  }t        j                  |||¬«      }t	        ||«       y r8  )r/   r   r=  rd  r   r9  s           r8   Útest_black_tophat02z)TestNdimageMorphology.test_black_tophat02¼
  s†   € à—
‘
šOÚ+Ú+ð-ó .ˆð —J‘J¢	ª9Ð5Ó6ˆ	Ø—J‘J¢	ª9Ð5Ó6ˆ	Ü×"Ñ" 5°IØ-6ô8ˆà˜‘;ˆÜ×%Ñ% e°yØ09ô;ˆä! &¨(Õ3r:   zcupy/cupy#8399c           
      ó¦  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|j                  |«      }t        j                  dt        ¬«      }|j                  |«      }t        j                  g d¢g d¢g d¢g d¢g d	¢g d¢g d
¢gt        ¬«      }|j                  |«      }t	        j
                  ||¬«      }t        ||«       y )NrV  r*  rW  rF  r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   rG  rX  )rU   r/   r¸   r‚   r   rd  r   rY  s         r8   Útest_black_tophat03z)TestNdimageMorphology.test_black_tophat03Ê
  r[  r:   c                 ó  — |j                  t        j                  dt        ¬«      «      }|j                  t        j                  dt        ¬«      «      }|j                  ||j                  ¬«      }t        j                  |||¬«       y r^  )	r/   rU   r_  r¸   r‚   r`  rS   r   rd  ra  s        r8   Útest_black_tophat04z)TestNdimageMorphology.test_black_tophat04ä
  s`   € ð
 —
‘
œ2Ÿ6™6 !¬4Ô0Ó1ˆØ—J‘JœrŸw™w v´TÔ:Ó;ˆ	ð —‘˜u¨B¯J©J�Ó7ˆÜ×Ñ˜U¨iÀÖGr:   Úmode)ÚreflectÚconstantÚnearestÚmirrorÚwrapÚfootprint_mode)Úsizer  rX  c           
      óJ  — |j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        ||¬«      }|d	k(  rd
|d	<   n|j                  g d¢g d¢g«      |d<   |dk(  r|j                  |d   «      |d<    ||fi |¤Ž}	d}
|j                  |	g|
z  |¬«      }	|j                  |g|
z  |¬«      }g d¢}|j	                  |«       t        |«      st        |«      r4|j                  |	j                  |	j                  ¬«      } ||f||dœ|¤Ž n ||fd|i|¤Ž}t        ||	«       y )Nr(  )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r    r   r"   r$   r   r   )r   r   r$   r    r    r   r   )r   r   rg   r    r   r   r   )r   r   r   r   r   r   r   )rí   rl  rs  )r   r    ræ   r  r  rX  r$   rˆ   rú  r   r   r  )r/   r  Ú	ones_liker  r  r   r   rQ   rR   r   r   )r2   r3   rû  rù  rí   rr  rl  r4   r	  r7   r  r  r5   s                r8   Útest_grey_axesz$TestNdimageMorphology.test_grey_axesð
  s8  € ð4 �z‰zÒ0Ú0Ú0Ú0Ú0Ú0Ú0ð2ó 3ˆô ˜V¨$Ô/ˆØ˜VÒ#Ø#ˆF�6ŠNà"$§*¡*ªiºÐ-CÓ"DˆF�;ÑØ˜[Ò(Ø"$§,¡,¨v°kÑ/BÓ"CˆF�;Ñá˜Ñ' Ñ'ˆð ˆØ—8‘8˜X˜J¨Ñ/°k�8ÓBˆØ�x‰x˜˜ ™¨kˆxÓ:ˆò ˆØ�‰�KÔ ä�BŒ<œ7 2œ;Ø—(‘(˜8Ÿ>™>°·±�(Ó@ˆCÙ�Ð7˜c¨Ñ7°Ó7ñ �tÑ1 $Ð1¨&Ñ1ˆCÜ˜˜XÕ&r:   ú!inplace output= is numpy-specificc                 ó°  — t        ||«      }g d¢g d¢g d¢g}|j                  |«      }g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  g d¢g d¢g d¢g d¢g d¢g d	¢g d	¢g d¢g|¬
«      }|j                  t        j                  |j                  t
        ¬
«      «      }t        j                  |||¬«       t        ||«       y )Nr­   r©   rà   )r   r   r   r   r   rƒ  rî   )r   r   r   r   r   r´   )r   r   r   r   r   r   ©r5  )	r.   r/   rU   rQ   rR   r¸   r   rý  r   r  s          r8   Útest_hit_or_miss01z(TestNdimageMorphology.test_hit_or_miss01,  sÎ   € ô
 ˜˜EÓ"ˆÚÚÚðˆð —‘˜FÓ#ˆÚ#Ú#Ú#Ú#Ú#Ú#Ú#Ú#ð%ˆð —:‘:˜hÓ'ˆØ�z‰zš?Ú*Ú*Ú*Ú*Ú*Ú*Ú*ð,ð 49ð ó :ˆð �j‰jœŸ™ $§*¡*´DÔ9Ó:ˆÜ×"Ñ" 4¨¸Õ<Ü! # xÕ0r:   c                 ó  — t        ||«      }g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d¢g|¬«      }t        j                  ||«      }t	        ||«       y )	Nr­   r©   r  r	  ©r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r  r   ©r.   r/   r   rý  r   r  s          r8   Útest_hit_or_miss02z(TestNdimageMorphology.test_hit_or_miss02K  sœ   € ô ˜˜EÓ"ˆÚÚÚðˆò -Ú,Ú,Ú,ð.ˆð —‘˜FÓ#ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×(Ñ(¨¨vÓ6ˆÜ! # xÕ0r:   c                 ó~  — t        ||«      }g d¢g d¢g d¢g}g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|j                  |«      }|j                  |«      }|j                  |«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g|¬«      }t        j                  |||«      }t	        ||«       y )Nrü   r©   r  r  r   r|  r¢  r  r´  ræ  rß  r  r   r}  )r2   r   r3   Ústruct1Ústruct2r7   r4   r5   s           r8   Útest_hit_or_miss03z(TestNdimageMorphology.test_hit_or_miss03_  sÖ   € ô ˜˜EÓ"ˆÚÚÚðˆò ÚÚðˆò -Ú,Ú,Ú,Ú,Ú,Ú,Ú,ð.ˆð —*‘*˜WÓ%ˆØ—*‘*˜WÓ%ˆØ—:‘:˜hÓ'ˆØ�z‰zÒ3Ú3Ú3Ú3Ú3Ú3Ú3Ú3ð5ð =Bð ó Cˆô ×(Ñ(¨¨w¸Ó@ˆÜ! # xÕ0r:   N)­r  Ú
__module__Ú__qualname__r   r   r0   r  ÚmarkÚparametrizer   r9   r?   rD   Úskip_xp_backendsr]   Úxfail_xp_backendsre   rh   rl   rq   rt   rv   rx   r|   r†   rŠ   r‘   r“   r™   rœ   rŸ   r¢   r¤   r§   r«   r®   r±   r·   rº   r½   r¿   rÃ   rÅ   rÉ   rÍ   rÐ   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<  rB  rD  rJ  rM  rS  rV  r]  rb  rf  ri  rk  rl  rn  rq  rt  rx  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  r  r  r!  r$  r*  r+  r-  r0  r4  r6  r:  r=  r>  r@  rD  rH  rJ  rL  rM  rO  rQ  rR  rT  rZ  rb  rd  re  rg  ri  rk  rv  rz  r~  r‚  © r:   r8   r   r      sû  „ á�w×4Ñ4Ó5Ø‡[�[×Ñ˜W eÓ,ñ.0ó -ó 6ð.0ñ` �w×4Ñ4Ó5Ø‡[�[×Ñ˜W eÓ,ñ.0ó -ó 6ð.0ñ` �w×4Ñ4Ó5Ø‡[�[×Ñ˜W eÓ,ñ.0ó -ó 6ð.0ñb ØÐKôñ �w×4Ñ4Ó5Ø‡[�[×Ñ˜W eÓ,ñ0/ó -ó 6óð
0/ñd �vÐ&PÔQÙ�w×4Ñ4Ó5Ø‡[�[×Ñ˜W eÓ,ñ-0ó -ó 6ó Rð-0ñ^ �w×4Ñ4Ó5Ø‡[�[×Ñ˜W eÓ,ñ-0ó -ó 6ð-0ñ^ �w×4Ñ4Ó5ñó 6ðñ  �w×4Ñ4Ø×5Ñ5ó7à‡[�[×Ñ˜W eÓ,ñ%0ó -ó7ð%0ñN �w×4Ñ4Ø×5Ñ5ó7à‡[�[×Ñ˜W eÓ,ñ#0ó -ó7ð#0ñJ ØÐIôñ �w×5Ñ5Ó6Ø‡[�[×Ñ˜W eÓ,ñ//ó -ó 7óð
//ñb ØÐRôñ �w×5Ñ5Ó6ñó 7óðñ( �w ~Ô6Ù�w×5Ñ5Ó6Ø‡[�[×Ñ˜W eÓ,ñ%ó -ó 7ó 7ð%ñ" �fÐ%OÔPÙ�w×5Ñ5Ø×4Ñ4ó6à‡[�[×Ñ˜W eÓ,ñ*ó -ó6ó Qð*ñ8 ØÐDôñ �w×5Ñ5Ø×4Ñ4ó6à‡[�[×Ñ˜W eÓ,ñ:/ó -ó6óð:/ñx �w×5Ñ5Ø×4Ñ4ó6à‡[�[×Ñ˜W eÓ,ñ,ó -ó6ð,ñ  �w×5Ñ5Ø×4Ñ4ó6à‡[�[×Ñ˜W eÓ,ñ,ó -ó6ð,ñ  ØÐQôñ �w×5Ñ5Ó6ñ9ó 7óð9ñ
 ØÐRôñ �w×5Ñ5Ó6ñó 7óðñ( �w×8Ñ8Ó9ñó :ðñ �w×8Ñ8Ó9ñ5ó :ð5ñ �w×8Ñ8Ó9ñ7ó :ð7ñ �w×8Ñ8Ó9ñ7ó :ð7ñ �w×0Ñ0Ó1ñ1ó 2ð1ñ �w×0Ñ0Ó1ñ1ó 2ð1ñ �w×0Ñ0Ó1ñ ó 2ð ñ  �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ5ó -ó /ð5ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ5ó -ó /ð5ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ8ó -ó /ð8ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ8ó -ó /ð8ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ>ó -ó /ð>ñ �vÐ&PÔQÙ�w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ>ó -ó /ó Rð>ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ>ó -ó /ð>ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñDó -ó /ðDñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ:ó -ó /ð:ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ:ó -ó /ð:ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ@ó -ó /ð@ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ@ó -ó /ð@ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ@ó -ó /ð@ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ@ó -ó /ð@ñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó /ð1ñ, �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó /ð1ñ0 �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó /ð1ñ0 �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó /ð1ñ4 �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó /ð1ñ6 ØÐNôñ �w×-Ñ-Ó.ñ1ó /óð1ñ2 ˜d°¨xØHôJá�vØOôQá�w×-Ñ-Ó.ñ1ó /óQóJð
1ñ8 ØÐNôñ �w×-Ñ-Ó.ñ1ó /óð1ñ2 ˜d°¨xØHôJá�vØOôQá�w×-Ñ-Ó.ñ2ó /óQóJð
2ñB ˜d°¨xØHôJá�w×-Ñ-Ó.ñ1ó /óJð1ñ8 �vØOôQá�w×-Ñ-Ó.ñ1ó /óQð1ñ2 �vØOôQá�w×-Ñ-Ó.ñ1ó /óQð1ñB �w×-Ñ-Ó.ñ1ó /ð1ñB ˜d°¨xØHôJá�w×-Ñ-Ó.ñ'1ó /óJð'1ñR �vØOôQá�w×-Ñ-Ó.ñ'1ó /óQð'1ñR ˜d°¨xØHôJá�vØOôQá�w×-Ñ-Ó.ñó /óQóJð
ñ �w×-Ñ-Ó.ñDó /ðDñ ˜d°¨xØHôJá�vØOôQá�w×-Ñ-Ó.ñ1ó /óQóJð
1ñ: ˜d°¨xØHôJá�vØOôQá�w×-Ñ-Ó.ñ1ó /óQóJð
1ð: ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ5ó 0ó -ð5ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ(ó 0ó -ð(ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñIó 0ó -ðIð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ8ó 0ó -ð8ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ>ó 0ó -ð>ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ>ó 0ó -ð>ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ>ó 0ó -ð>ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ>ó 0ó -ð>ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñDó 0ó -ðDð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ:ó 0ó -ð:ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ:ó 0ó -ð:ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ@ó 0ó -ð@ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ@ó 0ó -ð@ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ@ó 0ó -ð@ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ	@ó 0ó -ð	@ð ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ1ó 0ó -ð1ð, ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ1ó 0ó -ð1ð, ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ1ó 0ó -ð1ð, ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ1ó 0ó -ð1ð, ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ1ó 0ó -ð1ð0 ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ1ó 0ó -ð1ð2 ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ1ó 0ó -ð1ñ �vØOôQá�w×.Ñ.Ó/ñ1ó 0óQð1ñ& ˜d°¨xØ@ôBá�vØOôQá�w×.Ñ.Ó/ñ1ó 0óQóBð
1ñ* �vØOôQá�w×.Ñ.Ó/ñ1ó 0óQð1ñ& ˜d°¨xØ@ôBá�vØOôQá�w×.Ñ.Ó/ñ1ó 0óQóBð
1ñ* �vØOôQá�w×.Ñ.Ó/ñ#1ó 0óQð#1ñJ ˜d°¨xØHôJá�vØOôQá�w×.Ñ.Ó/ñ1ó 0óQóJð
1ð8 ‡[�[×Ñ˜W eÓ,Ù�w×.Ñ.Ó/ñ.1ó 0ó -ð.1ñ` �w×.Ñ.Ó/ñ(ó 0ð(ñ �w×1Ñ1Ó2ñ"1ó 3ð"1ñH �w×1Ñ1Ó2ñ1ó 3ð1ñ: �w×1Ñ1Ó2ñó 3ðñ �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó /ð1ñ, �w×-Ñ-Ó.Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó /ð1ð0 ‡[�[×Ñ˜W eÓ,Ù�w×-Ò-Ó.ñ1ó /ó -ð1ð, ‡[�[×Ñ˜W eÓ,Ù�w×-Ò-Ó.ñ1ó /ó -ð1ñ0 �w×0Ò0Ó1ñ1ó 2ð1ñ, �w×0Ò0Ó1ñ1ó 2ð1ñ( �w×0Ò0Ó1ñ1ó 2ð1ñ( ˜tÔ$ÙØÐKôMáØÐLôNà‡[�[×Ñ˜^¨Q°¨FÓ3Ø‡[�[×Ñ˜X¨°Ð'8Ó9Ø‡[�[×Ñ˜]ªIÓ6Ø‡[�[×ÑØÙ  ×!7Ñ!7Ó8Ù  ×!8Ñ!8Ó9Ù  ×!7Ñ!7Ó8Ù  ×!7Ò!7Ó8Ù  ×!;Ò!;Ó<Ù  ×!;Ñ!;Ó<Ù  ×!:Ò!:Ó;ð
ó
ñ*'ó
ó 7ó :ó 4óNóMó %ð&*'ñX �w×+Ò+Ó,ñ	Aó -ð	Añ �kÐ*MÔNÙ�lÐ+NÔOÙ�vÐ&PÔQÙ�w×+Ò+Ó,ñ
ó -ó Ró Pó Oð
ñ �w×+Ò+Ó,ñ
ó -ð
ñ �w×+Ò+Ó,ñ
ó -ð
ñ �w×,Ò,Ó-ñ

ó .ð

ñ �w×,Ò,Ó-ñ
ó .ð
ñ �w×,Ò,Ó-ñ
ó .ð
ñ �w×+Ò+Ó,ñ4ó -ð4ñ �w×+Ò+Ó,ñ4ó -ð4ñ �w×+Ò+Ó,ñ4ó -ð4ñ �w×+Ò+Ó,ñ4ó -ð4ñ ˜dÐ+NÔOÙ�w×,Ò,¨g×.BÒ.BØ×5Ò5ó7ñ4ó7ó Pð4ñ  �w×,Ò,¨g×.BÒ.BØ×5Ò5ó7ñ4ó7ð4ñ ˜dÐ+NÔOÙ�w×,Ò,¨g×.BÒ.BØ×4Ò4ó6ñ4ó6ó Pð4ñ  �w×,Ò,¨g×.BÒ.BØ×4Ò4ó6ñ4ó6ð4ñ �kÐ*MÔNÙ�lÐ+NÔOÙ�w×+Ò+¨W×-AÒ-AÓBñ4ó Có Pó Oð4ñ �w×+Ò+¨W×-AÒ-AÓBñ4ó Cð4ñ �v kÔ2Ù�w×+Ò+Ó,ñ*ó -ó 3ð*ñ0 �kÐ*MÔNÙ�lÐ+NÔOÙ�fÐ%OÔPÙ�w×+Ò+Ó,ñ	Hó -ó Qó Pó Oð	Hñ �kÐ*MÔNÙ�lÐ+NÔOÙ�w×+Ò+¨W×-AÒ-AÓBñ4ó Có Pó Oð4ñ �w×+Ò+¨W×-AÒ-AÓBñ4ó Cð4ñ �vÐ&6Ô7Ù�w×+Ò+Ó,ñ*ó -ó 8ð*ñ0 �kÐ*MÔNÙ�lÐ+NÔOÙ�fÐ%OÔPÙ�w×+Ò+Ó,ñHó -ó Qó Pó OðHñ ˜tÔ$ÙØÐKôMáØÐLôNà‡[�[×Ñ˜X¨°Ð'8Ó9Ø‡[�[×Ñ˜]ªIÓ6Ø‡[�[×Ñ˜Vò &8ó 9à‡[�[×ÑÐ-ò 0=ó >à‡[�[×ÑØá  ×!5Ò!5Ó6Ù  ×!6Ò!6Ó7Ù  ×!5Ò!5Ó6Ù  ×!5Ò!5Ó6Ù  ×!>Ò!>Ó?Ù  ×!?Ò!?Ó@Ù  ×!5Ò!5Ó6Ù  ×!5Ò!5Ó6ð		
óñ"'óó>ó9ó 7ó :óNóMó %ð0"'ñH ˜d°¨xØ@ôBá�w×1Ò1Ó2Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó 3óBð1ñ6 �w×1Ò1Ó2Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó 3ð1ñ$ �w×1Ò1Ó2Ø‡[�[×Ñ˜W eÓ,ñ1ó -ó 3ñ1r:   r   c                   ó8   — e Zd Zd„ Z edd¬«      d„ «       Zd„ Zy)ÚTestDilateFixc                 ó‚  — |j                  g d¢g d¢g d¢g d¢g d¢g|j                  ¬«      | _        |j                  d«      | _        t        j                  | j                  | j                  ¬«      }t        |«      r!|j                  |j                  «      | _	        y |j                  ||j                  «      | _	        y )Nrà   r¼  r½  r   r   rX  )r/   Úuint8r  r‚   Úsq3x3r   rk  r   ÚviewÚ
dilated3x3r‹   )r2   r3   r�  s      r8   Ú_setupzTestDilateFix._setup…  s�   € à—Z‘Z¢Ú!0Ú!0Ú!0Ú!0ð	!2ð :<¿¹ð	  ó CˆŒ
ð —W‘W˜V“_ˆŒ
Ü×,Ñ,¨T¯Z©ZÀ4Ç:Á:ÔNˆ
ä�BŒ<Ø(Ÿo™o¨b¯h©hÓ7ˆD�Oà Ÿi™i¨
°B·H±HÓ=ˆD�Or:   r^   r\  r_   c                 ó®   — | j                  |«       t        j                  | j                  | j                  ¬«      }t        || j                  dz   «       y )NrX  r   )r‘  r   r*  r  rŽ  r   r�  ©r2   r3   Úresults      r8   Útest_dilation_square_structurez,TestDilateFix.test_dilation_square_structure•  s:   € à�‰�BŒÜ×&Ñ& t§z¡z¸T¿Z¹ZÔHˆä! &¨$¯/©/¸AÑ*=Õ>r:   c                 ó”   — | j                  |«       t        j                  | j                  d¬«      }t	        || j
                  «       y )Nr    )rs  )r‘  r   r*  r  r   r�  r“  s      r8   Útest_dilation_scalar_sizez'TestDilateFix.test_dilation_scalar_sizeœ  s1   € Ø�‰�BŒÜ×&Ñ& t§z¡z¸Ô:ˆÜ! &¨$¯/©/Õ:r:   N)r  rƒ  r„  r‘  r‡  r•  r—  r‰  r:   r8   r‹  r‹  €  s)   „ ò
>ñ  �fÐ%OÔPñ?ó Qð?ó;r:   r‹  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestBinaryOpeningClosingc                 óz  — t        j                  dt        ¬«      }d|dd…dd…f<   d|d<   |j                  |«      | _        |j                  d«      | _        t        j                  | j                  | j                  dd d«      | _	        t        j                  | j                  | j                  dd d«      | _        y )	N©r$   r$   r   Tr   r   )r   r   r   r   )rU   rQ   r¸   r/   r  r‚   rŽ  r   rá  Ú
opened_oldrê  Ú
closed_old)r2   r3   r[  s      r8   r‘  zTestBinaryOpeningClosing._setup¥  s˜   € Ü�H‰H�V¤4Ô(ˆØˆˆ!ˆAˆ#ˆq�ˆsˆ(‰Øˆˆ$‰Ø—Z‘Z “]ˆŒ
Ø—W‘W˜V“_ˆŒ
Ü!×0Ñ0°·±¸T¿Z¹ZØ12°D¸!ó=ˆŒä!×0Ñ0°·±¸T¿Z¹ZØ12°D¸!ó=ˆ�r:   c           
      ó²   — | j                  |«       t        j                  | j                  | j                  dd dd dd«      }t        || j                  «       y ©Nr   r   F)r‘  r   rá  r  rŽ  r   rœ  )r2   r3   Ú
opened_news      r8   Útest_opening_new_argumentsz3TestBinaryOpeningClosing.test_opening_new_arguments°  óD   € Ø�‰�BŒÜ×+Ñ+¨D¯J©J¸¿
¹
ÀAÀtØ,-¨t°Q¸ó?ˆ
ä˜
 D§O¡OÕ4r:   c           
      ó²   — | j                  |«       t        j                  | j                  | j                  dd dd dd«      }t        || j                  «       y rŸ  )r‘  r   rê  r  rŽ  r   r�  )r2   r3   Ú
closed_news      r8   Útest_closing_new_argumentsz3TestBinaryOpeningClosing.test_closing_new_arguments¶  r¢  r:   N)r  rƒ  r„  r‘  r¡  r¥  r‰  r:   r8   r™  r™  ¢  s   „ ò	=ò5ó5r:   r™  c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y ©Nr   g      à?r_  ç      ø?)r‚   rj   r`  r   rÃ   ©r3   r4   s     r8   Ú)test_binary_erosion_noninteger_iterationsrª  ½  ó;   € ð �7‰7�A�3‹<€DÜ”)œW×3Ñ3°TÀcÕJÜ”)œW×3Ñ3°TÀcÖJr:   c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y r§  )r‚   rj   r`  r   rk  r©  s     r8   Ú*test_binary_dilation_noninteger_iterationsr­  Æ  s;   € ð �7‰7�A�3‹<€DÜ”)œW×4Ñ4°dÀsÕKÜ”)œW×4Ñ4°dÀsÖKr:   c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y r§  )r‚   rj   r`  r   rá  r©  s     r8   Ú)test_binary_opening_noninteger_iterationsr¯  Ï  r«  r:   c                 ó¬   — | j                  dg«      }t        t        t        j                  |d¬«       t        t        t        j                  |d¬«       y r§  )r‚   rj   r`  r   rê  r©  s     r8   Ú)test_binary_closing_noninteger_iterationsr±  Ø  r«  r:   r^   r$  r_   c           
      ó,  — | j                  dg«      }t        t        j                  |dd¬«      t        j                  |dt	        d«      ¬«      «       t        t        j                  |dd¬«      t        j                  |dt	        d«      ¬«      «       y )Nr   r   r¨  )r,  rY  rž   )r‚   r   r   rÃ   r¸   r©  s     r8   Ú;test_binary_closing_noninteger_brute_force_passes_when_truer³  á  su   € ð �7‰7�A�3‹<€DÜ”G×*Ñ*¨4¸AÈ3ÔOÜ×*Ñ*¨4¸AÌ4ÐPSË9ÔUôô ”G×*Ñ*¨4¸AÈ3ÔOÜ×*Ñ*¨4¸AÌ4ÐPSË9ÔUõr:   Trw  r0  r2  rû  r,  r$   rY  Fc                 ó0  — t         j                  j                  d«      }|j                  ddd¬«      j	                  t
        «      }|j                  |«      }|j                  «       } | |||¬«      }t        ||«        | ||||¬«       t        ||«       y )Né{   r   r   éd   ©ÚlowÚhighrs  )rY  r,  )rY  r,  r5  )	rU   ÚrandomÚRandomStateÚrandintr‹   r¸   r/   Úcopyr   )rû  r,  rY  r3   Úrstater4   Ú	data_origr7   s           r8   Útest_binary_input_as_outputrÀ  ð  s„   € ô �Y‰Y×"Ñ" 3Ó'€FØ�>‰>˜a a¨cˆ>Ó2×9Ñ9¼$Ó?€DØ�:‰:�dÓ€Dð —	‘	“€IÙ�D k¸jÔI€HÜ�D˜)Ô$ñ 	ˆ˜;°:ÀdÕKÜ�D˜(Õ#r:   c                 óZ  — t         j                  j                  d«      }|j                  ddd¬«      j	                  t
        «      }| j                  |«      }|j                  «       }t        j                  |«      }t        ||«       t        j                  ||¬«       t        ||«       y )Nrµ  r   r   r¶  r·  ry  )rU   rº  r»  r¼  r‹   r¸   r/   r½  r   rý  r   )r3   r¾  r4   r¿  r7   s        r8   Ú'test_binary_hit_or_miss_input_as_outputrÂ    sˆ   € ô �Y‰Y×"Ñ" 3Ó'€FØ�>‰>˜a a¨cˆ>Ó2×9Ñ9¼$Ó?€DØ�:‰:�dÓ€Dð —	‘	“€IÜ×)Ñ)¨$Ó/€HÜ�D˜)Ô$ô ×Ñ˜t¨DÕ1Ü�D˜(Õ#r:   c                 ó´   — d}t        j                  t        |¬«      5  t        j                  | j                  d«      d¬«       d d d «       y # 1 sw Y   y xY w)Nzinvalid metric provided)Úmatchr›  Úgarbager€   )r  r
   Ú
ValueErrorr   rq   r‚   )r3   Úmsgs     r8   Ú*test_distance_transform_cdt_invalid_metricrÈ    sE   € à
#€CÜ	�‰”z¨Ô	-ñ 9Ü×&Ñ& r§w¡w¨v£Ø.7õ	9÷9÷ 9ñ 9ús   ž'AÁA)'ÚnumpyrU   Úscipy._lib._array_apir   r   r   r   r   r   r	   r  r
   rj   Úscipyr   Ú r   r…  r‡  rˆ  r   rk  r*  r‹  rá  rê  r™  rÃ   rª  r­  r¯  r±  r³  r†  rÀ  rý  rÂ  rq   rÈ  r‰  r:   r8   ú<module>rÍ     s€  ðÛ ÷÷ ñ ó Ý *å å à—;‘;×/Ñ/Ð Ø—K‘K×1Ñ1Ð ÷i-1ñ i-1ñX[ �7×*Ñ*¨G×,AÑ,AÓB÷;ð ;ó Cð;ñB �7×)Ñ)¨7×+AÑ+AÓB÷5ð 5ó Cð5ñ4 �7×)Ñ)Ó*ñKó +ðKñ �7×*Ñ*Ó+ñLó ,ðLñ �7×)Ñ)Ó*ñKó +ðKñ �7×)Ñ)Ó*ñKó +ðKñ Ø
ÐJôñ �7×)Ñ)Ó*ñó +óðñ ˜$¨F¨8Ø<ô>á�6Ð"SÔTØ‡�×ÑØ
á˜W×3Ñ3Ó4Ù˜W×4Ñ4Ó5Ù˜W×3Ñ3Ó4Ù˜W×3Ñ3Ó4ð	óð ‡�×Ñ˜¨¨1 vÓ.Ø‡�×Ñ˜¨°¨Ó6ñ$ó 7ó /óó Uó>ð$ñ ˜$¨F¨8Ø<ô>á�7×-Ñ-Ó.ñ$ó /ó>ð$ñ �7×1Ñ1Ó2ñ9ó 3ñ9r:   