
    ge                       d dl Z d dl Zd dl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  G d d          Z G d	 d
          Z G d d          Zd Zd Zd Zd Zd Zej                            dg d          ej                            dddg          ej                            dddg          d                                     Zd Zd ZdS )    N)assert_assert_equalassert_array_equalassert_array_almost_equal)raises)ndimage   )typesc                      e Zd Zej                            de          d             Zej                            de          d             Zej                            de          d             Z	ej                            de          d             Z
ej                            de          d             Zej                            de          d             Zd Zej                            de          d	             Zej                            de          d
             Zej                            de          d             Zd Zej                            de          d             Zej                            de          d             Zej                            de          d             Zej                            de          d             Zej                            de          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                            de          d             Z ej                            de          d             Z!ej                            de          d             Z"ej                            de          d             Z#ej                            de          d             Z$ej                            de          d              Z%ej                            de          d!             Z&ej                            de          d"             Z'ej                            de          d#             Z(ej                            de          d$             Z)ej                            de          d%             Z*ej                            de          d&             Z+ej                            de          d'             Z,ej                            de          d(             Z-ej                            de          d)             Z.ej                            de          d*             Z/ej                            de          d+             Z0ej                            de          d,             Z1ej                            de          d-             Z2ej                            de          d.             Z3ej                            de          d/             Z4ej                            de          d0             Z5ej                            de          d1             Z6ej                            de          d2             Z7ej                            de          d3             Z8ej                            de          d4             Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGej                            de          dC             ZHej                            de          dD             ZIej                            de          dE             ZJej                            de          dF             ZKej                            de          dG             ZLej                            de          dH             ZMej                            de          dI             ZNej                            de          dJ             ZOej                            de          dK             ZPej                            de          dL             ZQej                            de          dM             ZRej                            de          dN             ZSej                            de          dO             ZTej                            de          dP             ZUej                            de          dQ             ZVej                            de          dR             ZWej                            de          dS             ZXej                            de          dT             ZYej                            de          dU             ZZej                            de          dV             Z[ej                            de          dW             Z\ej                            de          dX             Z]ej                            de          dY             Z^ej                            de          dZ             Z_ej                            de          d[             Z`ej                            de          d\             Zaej                            de          d]             Zbej                            de          d^             Zcd_ Zdd` Zeda Zfdb Zgdc Zhdd Ziej                            de          de             Zjdf Zkdg Zlej                            de          dh             Zmej                            de          di             Znej                            de          dj             Zoej                            de          dk             Zpdl Zqdm Zrdn Zsdo Ztdp Zudq Zvdr Zwds Zxdt Zydu Zzdv Z{dw Z|dx Z}dy Z~dz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zej                            de          d             Zej                            de          d             Zej                            de          d             ZdS )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	}t	          ||z  |           g dg d	g d
g dg dg dg dg dg dg	g dg dg dg dg dg dg dg dg dg	g}t	          ||           d S )N	r   r   r   r   r   r   r   r   r   	r   r   r   r	   r	   r	   r   r   r   	r   r   r	   r	   r	   r	   r	   r   r   	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   numpyarrayr   distance_transform_bfr   selfr   dataoutftexpecteds         Clib/python3.11/site-packages/scipy/ndimage/tests/test_morphology.pytest_distance_transform_bf01z2TestNdimageMorphology.test_distance_transform_bf01   s    {7777777777777777777777777779 ;@A A /k?CE E ER///////////////////////////1 	"#)X6660000000000000000000000000002 10000000000000000000000000023$ 	""h/////    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	}t	          ||           g dg d	g d
g dg dg dg dg dg dg	g dg dg dg dg dg dg dg dg dg	g}t	          ||           d S )Nr   r   r   	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)   r-   s         r3   test_distance_transform_bf02z2TestNdimageMorphology.test_distance_transform_bf02<   s   {7777777777777777777777777779 ;@A A /k?CE E ER 0//////////////////////////1 	"#x0000000000000000000000000000002 10000000000000000000000000023$ 	"(B/////r5   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	}t	          ||           g dg d	g d
g dg dg dg dg dg dg	g dg dg dg dg dg dg dg dg dg	g}t	          ||           d S )Nr   r   r   
chessboardTr   )	r   r   r	   r	   r   r	   r	   r   r   r8   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r    r   r   r   r    r   r   r   r"   r#   r$   r%   	r   r	   r   r   r    r   r   r!   r   	r   r	   r	   r   r   r   r!   r!   r   )	r   r	   r	   r   r   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         r3   test_distance_transform_bf03z2TestNdimageMorphology.test_distance_transform_bf03i   s   {7777777777777777777777777779 ;@A A /l?CE E ER 0//////////////////////////1 	"#x0000000000000000000000000000002 10000000000000000000000000023$ 	""h/////r5   c                    t          j        g dg dg dg dg dg dg dg dg dg	|          }t          j        |d          \  }}g }g }t          j        |j        t           j                  }t          j        ||           |                    |           t          j        |dd	          }|                    |           t          j        |j        t           j	                  }t          j        |dd
|           |                    |           t          j        |d          \  }}|                    |           |                    |           t          j        |j        t           j                  }t          j        ||d
          }|                    |           |                    |           t          j        |j        t           j	                  }t          j        |d
|          }|                    |           |                    |           t          j        |j        t           j                  }t          j        |j        t           j	                  }t          j        ||d
|           |                    |           |                    |           |D ]}t          ||           |D ]}t          ||           d S )Nr   r   r   r	   r   r   	distancesFreturn_distancesr   TrE   r   indicesrC   r   r   rG   rC   r   rG   )r*   r+   r   r,   zerosshapefloat64appendrG   int32r   	r.   r   r/   tdttftdtsftsdtr1   s	            r3   test_distance_transform_bf04z2TestNdimageMorphology.test_distance_transform_bf04   s   {7777777777777777777777777779 ;@A A 0aHHHS[5=999%db9999

2*5< < <

2]4:U[999%5r	K 	K 	K 	K

2.$ $ $B

2

2[5=999*Bt5 5 5

2

2]4:U[999*r3 3 3

2

2[5=999]4:U[999%BtR	A 	A 	A 	A

2

2 	/ 	/B%c2.... 	/ 	/B%c2....	/ 	/r5   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	}t	          ||z  |           g dg dg dg dg dg dg dg dg dg	g dg dg dg dg dg dg dg dg dg	g}t	          ||           d S )Nr   r   r   r   Tr   r   sampling)	r   r   r   r   r   r   r   r   r   )	r   r   r   r      r   r   r   r   )	r   r   r   rZ       rZ   r   r   r   r   r   r   r   r   r"   r#   r$   r%   r&   r'   r(   r)   r-   s         r3   test_distance_transform_bf05z2TestNdimageMorphology.test_distance_transform_bf05   s   {7777777777777777777777777779 ;@A A /+daVE E ER/////////000222000/////////1 	"#)X6660000000000000000000000000002 10000000000000000000000000023$ 	""h/////r5   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	}t	          ||z  |           g dg dg dg dg dg dg dg dg dg	g dg dg dg dg dg dg dg dg dg	g}t	          ||           d S )Nr   r   r   r   Tr   r	   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    r    r    r    r   r    r    r    r    )	r   r   r   r   r!   r   r   r   r   r#   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         r3   test_distance_transform_bf06z2TestNdimageMorphology.test_distance_transform_bf06   s   {7777777777777777777777777779 ;@A A /+daVE E ER///////////////////////////1 	"#)X6660000000000000000000000000002 10000000000000000000000000023$ 	""h/////r5   c                     t          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            d S # 1 swxY w Y   d S )Nr   r   r   FrD   )r*   r+   assert_raisesRuntimeErrorr   r,   )r.   r/   s     r3   test_distance_transform_bf07z2TestNdimageMorphology.test_distance_transform_bf07  s    {7777777777777777777777777779 : : <(( 	 	)uU   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A))A-0A-c                 x   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}t          ||           d S )Nr   r   r   r7   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%   r9   )	r   r	   r	   r	   r   r    r   r!   r   )	r   r	   r   r   r   r    r   r!   r   r*   r+   r   distance_transform_cdtr,   r   r.   r   r/   r0   r1   bfr2   s          r3   test_distance_transform_cdt01z3TestNdimageMorphology.test_distance_transform_cdt01/  s    {7777777777777777777777777779 ;@A A 0+d4 4 4R*4==!"c***0000000000000000000000000002 10000000000000000000000000023$ 	""h/////r5   c                 x   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}t          ||           d S )Nr   r   r   r<   Tr   r   re   )	r   r   r   r   r	   r   r   r   r   )	r   r   r   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=   rg   ri   s          r3   test_distance_transform_cdt02z3TestNdimageMorphology.test_distance_transform_cdt02T  s   {7777777777777777777777777779 ;@A A 0|@DF F FR*4>>!"c***0000000000000000000000000002 10000000000000000000000000023$ 	""h/////r5   c                    t          j        g dg dg dg dg dg dg dg dg dg	|          }t          j        |d          \  }}g }g }t          j        |j        t           j                  }t          j        ||           |                    |           t          j        |dd	          }|                    |           t          j        |j        t           j                  }t          j        |dd|
           |                    |           t          j        |d          \  }}|                    |           |                    |           t          j        |j        t           j                  }t          j        ||d          }|                    |           |                    |           t          j        |j        t           j                  }t          j        |d|          }|                    |           |                    |           t          j        |j        t           j                  }t          j        |j        t           j                  }t          j        ||d|           |                    |           |                    |           |D ]}t          ||           |D ]}t          ||           d S )Nr   r   r   Tr   rA   rB   FrD   rF   rH   rI   rJ   )
r*   r+   r   rh   rK   rL   rO   rN   rG   r   rP   s	            r3   test_distance_transform_cdt03z3TestNdimageMorphology.test_distance_transform_cdt03x  s   {7777777777777777777777777779 ;@A A 1$tLLLS[5;777&tr::::

2+5? ? ?

2]4:U[999&5r	K 	K 	K 	K

2/' ' 'B

2

2[5;777+Bt5 5 5

2

2]4:U[999+r3 3 3

2

2[5;777]4:U[999&tr6:B	H 	H 	H 	H

2

2 	/ 	/B%c2.... 	/ 	/B%c2....	/ 	/r5   c                 J   t          j        g dg dg dg dg dg dg dg dg dg	          }t          j        |j        f|j        z   t           j                  }t          t                    5  t          j	        |dd|           d d d            d S # 1 swxY w Y   d S )Nr   r   r   rA   TFrF   )
r*   r+   rK   ndimrL   rO   ra   rb   r   r,   )r.   r/   indices_outs      r3   test_distance_transform_cdt04z3TestNdimageMorphology.test_distance_transform_cdt04  s$   {7777777777777777777777777779 : : k49,";5;OOO<(( 	 	)!%$#	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   2BBB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k    sJ d S )Nr   r   r   r   r   metrici)r*   r+   nponesr   rh   sum)r.   r   r/   
metric_argactuals        r3   test_distance_transform_cdt05z3TestNdimageMorphology.test_distance_transform_cdt05  s     {7777777777777777777777777779 ;@A A WV__
/ZHHHzz||s""""""r5   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        |j        dd          |j                  z
  }|	                    t           j
                  }t          j        |||           t           j                            |d	
          }t          j        ||           t          ||           d S )Nr   r   r   Tr   r   r	   rA   r   )axis)r*   r+   r   distance_transform_edtr,   r   rG   rL   r   astyperM   multiplyaddreducesqrt)r.   r   r/   r0   r1   rj   rU   s          r3   test_distance_transform_edt01z3TestNdimageMorphology.test_distance_transform_edt01  s>    {7777777777777777777777777779 ;@A A 0dKKKR*4==!"c***%-BH====YYu}%%r2r"""Ybq))
2r!"b)))))r5   c                    t          j        g dg dg dg dg dg dg dg dg dg	|          }t          j        |d          \  }}g }g }t          j        |j        t           j                  }t          j        ||           |                    |           t          j        |dd	          }|                    |           t          j        |j        t           j	                  }t          j        |d
d|           |                    |           t          j        |d          \  }}|                    |           |                    |           t          j        |j        t           j                  }t          j        ||d          }|                    |           |                    |           t          j        |j        t           j	                  }t          j        |d|          }|                    |           |                    |           t          j        |j        t           j                  }t          j        |j        t           j	                  }t          j        ||d|           |                    |           |                    |           |D ]}t          ||           |D ]}t          ||           d S )Nr   r   r   Tr   rA   rB   r   rD   FrF   rH   rI   rJ   )r*   r+   r   r   rK   rL   rM   rN   rG   rO   r   rP   s	            r3   test_distance_transform_edt02z3TestNdimageMorphology.test_distance_transform_edt02  s   {7777777777777777777777777779 ;@A A 1$tLLLS[5=999&tr::::

2+1T; ; ;

2]4:U[999&5r	K 	K 	K 	K

2/' ' 'B

2

2[5=999+Bt5 5 5

2

2]4:U[999+r3 3 3

2

2[5=999]4:U[999&BtR	A 	A 	A 	A

2

2 	/ 	/B%c2.... 	/ 	/B%c2....	/ 	/r5   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          ||           d S )Nr   r   r   r   r   rY   r*   r+   r   r,   r   r   r.   r   r/   refr0   s        r3   test_distance_transform_edt03z3TestNdimageMorphology.test_distance_transform_edt03      {7777777777777777777777777779 ;@A A +D+AOOO,TQFCCC!#s+++++r5   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          ||           d S )Nr   r   r   r   r   r	   r   r   r   s        r3   test_distance_transform_edt4z2TestNdimageMorphology.test_distance_transform_edt4%  r   r5   c                 P    t          j        d          }t          |dg           d S )NF        )r   r   r   )r.   r0   s     r3   test_distance_transform_edt5z2TestNdimageMorphology.test_distance_transform_edt54  s*    ,U33!#t,,,,,r5   c                 8   t          j        g dg dg dg dg dg dg dg dg dg	          }t          j        |j        t           j                  }t          t                    5  t          j        |dd|           d d d            d S # 1 swxY w Y   d S )Nr   r   r   rA   TF)r   rE   rC   )	r*   r+   rK   rL   rM   ra   rb   r   r,   )r.   r/   distances_outs      r3   test_distance_transform_edt6z2TestNdimageMorphology.test_distance_transform_edt69  s   {7777777777777777777777777779 : : DJemDDD<(( 	 	)#!&'	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   )BBBc                 P    t          j        dd          }t          |d           d S )Nr   r	   r   generate_binary_structurer   r.   structs     r3   test_generate_structure01z/TestNdimageMorphology.test_generate_structure01M  s*    21a88!&!,,,,,r5   c                 T    t          j        dd          }t          |g d           d S )Nr	   r	   r	   r	   r   r   s     r3   test_generate_structure02z/TestNdimageMorphology.test_generate_structure02Q  s.    21a88!&)))44444r5   c                 b    t          j        dd          }t          |g dg dg dg           d S )Nr   r	   r   r	   r   r   r   r   s     r3   test_generate_structure03z/TestNdimageMorphology.test_generate_structure03U  K    21a88!&999+499+499+6 	7 	7 	7 	7 	7r5   c                 b    t          j        dd          }t          |g dg dg dg           d S )Nr   r   r   r   s     r3   test_generate_structure04z/TestNdimageMorphology.test_generate_structure04[  r   r5   c           	          g dg dg dg}t          j        |d          }t          |g dg dg dg dg dg           d S )Nr   r   r   r   r   r	   r   r   r   r	   r	   r	   r   r	   r	   r	   r	   r	   r   iterate_structurer   r.   r   r0   s      r3   test_iterate_structure01z.TestNdimageMorphology.test_iterate_structure01a  sw    )))))) '22!#(7(7(7(7	(9 	: 	: 	: 	: 	:r5   c           	          ddgddgddgg}t          j        |d          }t          |g dg dg dg dg dg           d S )Nr   r	   r   )r   r   r	   r   r	   r	   r   r   r   s      r3   test_iterate_structure02z.TestNdimageMorphology.test_iterate_structure02l  sw    a&a&a& '22!#			(1		(1		(1		(1			(3 	4 	4 	4 	4 	4r5   c                     g dg dg dg}t          j        |dd          }g dg dg dg dg dg}t          |d         |           t          |d         ddg           d S )	Nr   r   r   r	   r   r   r   r   )r   r   r   r   )r.   r   r0   r2   s       r3   test_iterate_structure03z.TestNdimageMorphology.test_iterate_structure03w  s    )))))) '155#OO#OO#OO#OO#OO	%
 	"#a&(333SVaV$$$$$r5   c                 x    t          j        g |          }t          j        |          }t	          |d           d S Nr	   r*   ry   r   binary_erosionr   r.   r   r/   r0   s       r3   test_binary_erosion01z+TestNdimageMorphology.test_binary_erosion01  s9    z"e$$$T**!#q)))))r5   c                 |    t          j        g |          }t          j        |d          }t	          |d           d S Nr	   border_valuer   r   s       r3   test_binary_erosion02z+TestNdimageMorphology.test_binary_erosion02  s>    z"e$$$T:::!#q)))))r5   c                 |    t          j        dg|          }t          j        |          }t	          |dg           d S Nr	   r   r   r   s       r3   test_binary_erosion03z+TestNdimageMorphology.test_binary_erosion03  s=    z1#u%%$T**!#s+++++r5   c                     t          j        dg|          }t          j        |d          }t	          |dg           d S r   r   r   s       r3   test_binary_erosion04z+TestNdimageMorphology.test_binary_erosion04  sB    z1#u%%$T:::!#s+++++r5   c                 ~    t          j        dg|          }t          j        |          }t	          |g d           d S )Nr   r   r   r   s       r3   test_binary_erosion05z+TestNdimageMorphology.test_binary_erosion05  s?    z1#u%%$T**!#yyy11111r5   c                     t          j        dg|          }t          j        |d          }t	          |g d           d S Nr   r	   r   r   r   r   s       r3   test_binary_erosion06z+TestNdimageMorphology.test_binary_erosion06  sD    z1#u%%$T:::!#yyy11111r5   c                 ~    t          j        dg|          }t          j        |          }t	          |g d           d S )Nr    r   r   r   s       r3   test_binary_erosion07z+TestNdimageMorphology.test_binary_erosion07  s?    z1#u%%$T**!#77777r5   c                     t          j        dg|          }t          j        |d          }t	          |g d           d S )Nr    r	   r   r   r   r   s       r3   test_binary_erosion08z+TestNdimageMorphology.test_binary_erosion08  sD    z1#u%%$T:::!#77777r5   c                     t          j        dg|          }d|d<   t          j        |          }t	          |g d           d S )Nr    r   r   r   r   r   r   r   r   r   s       r3   test_binary_erosion09z+TestNdimageMorphology.test_binary_erosion09  sH    z1#u%%Q$T**!#77777r5   c                     t          j        dg|          }d|d<   t          j        |d          }t	          |g d           d S )Nr    r   r   r	   r   )r	   r   r   r   r	   r   r   s       r3   test_binary_erosion10z+TestNdimageMorphology.test_binary_erosion10  sM    z1#u%%Q$T:::!#77777r5   c                     t          j        dg|          }d|d<   g d}t          j        ||d          }t	          |g d           d S )Nr    r   r   r	   r   r	   r	   r   r	   r   r	   r   r	   r   r.   r   r/   r   r0   s        r3   test_binary_erosion11z+TestNdimageMorphology.test_binary_erosion11  sX    z1#u%%Q$T6BBB!#77777r5   c                     t          j        dg|          }d|d<   g d}t          j        ||dd          }t	          |g d           d S )	Nr    r   r   r   r	   r   originr   r	   r   r	   r	   r   r   s        r3   test_binary_erosion12z+TestNdimageMorphology.test_binary_erosion12  sZ    z1#u%%Q$T6"MMM!#77777r5   c                     t          j        dg|          }d|d<   g d}t          j        ||dd          }t	          |g d           d S )Nr    r   r   r   r	   r   r	   r	   r   r	   r   r   r   s        r3   test_binary_erosion13z+TestNdimageMorphology.test_binary_erosion13  sZ    z1#u%%Q$T6!LLL!#77777r5   c                     t          j        dg|          }d|d<   ddg}t          j        ||d          }t	          |g d           d S )Nr    r   r   r	   r   )r	   r	   r   r   r	   r   r   s        r3   test_binary_erosion14z+TestNdimageMorphology.test_binary_erosion14  sX    z1#u%%QQ$T6BBB!#77777r5   c                     t          j        dg|          }d|d<   ddg}t          j        ||dd          }t	          |g d           d S )Nr    r   r   r	   r   r   )r	   r   r   r	   r	   r   r   s        r3   test_binary_erosion15z+TestNdimageMorphology.test_binary_erosion15  sZ    z1#u%%QQ$T6"MMM!#77777r5   c                     t          j        ddg|          }t          j        |d          }t	          |dgg           d S r   r   r   s       r3   test_binary_erosion16z+TestNdimageMorphology.test_binary_erosion16  sF    z1a&%(($T:::!#u-----r5   c                     t          j        ddg|          }t          j        |          }t	          |dgg           d S r   r   r   s       r3   test_binary_erosion17z+TestNdimageMorphology.test_binary_erosion17  sA    z1a&%(($T**!#u-----r5   c                     t          j        ddg|          }t          j        |          }t	          |g dg           d S )Nr	   r   r   r   r   r   r   s       r3   test_binary_erosion18z+TestNdimageMorphology.test_binary_erosion18  sC    z1a&%(($T**!#			{33333r5   c                     t          j        ddg|          }t          j        |d          }t	          |g dg           d S )Nr	   r   r   r   r   r   s       r3   test_binary_erosion19z+TestNdimageMorphology.test_binary_erosion19  sH    z1a&%(($T:::!#			{33333r5   c                     t          j        ddg|          }t          j        |          }t	          |g dg dg dg           d S )Nr   r   r   r   r   s       r3   test_binary_erosion20z+TestNdimageMorphology.test_binary_erosion20  s^    z1a&%(($T**!#			(1		(1		(3 	4 	4 	4 	4 	4r5   c                     t          j        ddg|          }t          j        |d          }t	          |g dg dg dg           d S r   r   r   s       r3   test_binary_erosion21z+TestNdimageMorphology.test_binary_erosion21
  sc    z1a&%(($T:::!#			(1		(1		(3 	4 	4 	4 	4 	4r5   c                     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        |d          }t	          ||           d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r	   r   r   r   r   r   r	   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r   r	   r	   r	   r	   r	   r	   r   r   r	   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r	   r   r   r	   r	   r   r   r	   r	   r   r	   r   r*   r+   r   r   r   r.   r   r2   r/   r0   s        r3   test_binary_erosion22z+TestNdimageMorphology.test_binary_erosion22  s    ,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > $T:::!#x00000r5   c                    t          j        dd          }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        ||d
          }t          ||           d S )Nr   r   r   r   r   r   r   r   r   r	   r   )r   r   r*   r+   r   r   r.   r   r   r2   r/   r0   s         r3   test_binary_erosion23z+TestNdimageMorphology.test_binary_erosion23'  s    21a88,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > $T6BBB!#x00000r5   c                     ddgddgg}g dg dg dg dg dg dg dg dg}t          j        g dg dg dg d	g dg d
g dg dg|          }t          j        ||d          }t	          ||           d S )Nr   r	   r   r   r   r   r   r	   r	   r	   r   r   r   )r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   s         r3   test_binary_erosion24z+TestNdimageMorphology.test_binary_erosion24=  s    a&a&,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > $T6BBB!#x00000r5   c                     g dg dg dg}g dg dg dg dg dg dg dg dg}t          j        g dg dg dg d	g d
g dg dg dg|          }t          j        ||d          }t	          ||           d S )Nr   r   r   r   )r   r   r   r	   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r	   r	   r   r   r	   r   r	   r	   r   r   r   r	   r   r	   r	   r	   r	   r   r   r	   r   r   r   s         r3   test_binary_erosion25z+TestNdimageMorphology.test_binary_erosion25T  s   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > $T6BBB!#x00000r5   c                     g dg dg dg}g dg dg dg dg dg dg dg dg}t          j        g dg dg d	g d
g dg dg dg dg|          }t          j        ||dd          }t	          ||           d S )Nr   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r	   r   r   r	   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r   r   r  r  r  r   r	   r   r   r   r   r   s         r3   test_binary_erosion26z+TestNdimageMorphology.test_binary_erosion26l  s   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > $T6,46 6 6!#x00000r5   c           
          g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        ||dd	          }t          ||           d S 
Nr   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r   r	   r   r   
iterationsr*   r+   boolr   r   r   r.   r   r2   r/   r0   s        r3   test_binary_erosion27z+TestNdimageMorphology.test_binary_erosion27  s    )))))) *))))))))))))))))))))+ {1111111111111111111113 59: : $T6013 3 3!#x00000r5   c           
      8   g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        |j        t                    }t          j        ||dd|	           t          ||           d S )
Nr   r   r  r  r  r  r	   r   r   r  outputr*   r+   r  rK   rL   r   r   r   r  s        r3   test_binary_erosion28z+TestNdimageMorphology.test_binary_erosion28  s   )))))) *))))))))))))))))))))+ {1111111111111111111113 59: : k$*d++tV!*+C	9 	9 	9 	9!#x00000r5   c           
          g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        ||dd	
          }t          ||           d S )Nr   r   r  r  r  r  r	   r	   r	   r	   r	   r	   r	   r	   r   r  r  r  s        r3   test_binary_erosion29z+TestNdimageMorphology.test_binary_erosion29      )))))) *))))))))))))))))))))+ {1111111111111111111113 59: : $T623C C C!#x00000r5   c           
         g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        |j        t                    }t          j        ||dd	|
           t          ||           t          j        ||dd	|
           t          ||           d S )Nr   r   r  r  r  r  r#  r	   r   r  r   r  s        r3   test_binary_erosion30z+TestNdimageMorphology.test_binary_erosion30  sI   )))))) *))))))))))))))))))))+ {1111111111111111111113 59: : k$*d++tV!*+C	9 	9 	9 	9!#x000 	tV!*+D	: 	: 	: 	:!$11111r5   c           
      :   g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg d	g d
g dg d
g d	g dgt                    }t          j        |j        t                    }t          j        ||dd|d           t          ||           d S )Nr   r   r   r   r	   r   r   r   r   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r   r	   r  r   r   r	   r   r   r   r	   r  r  r  r#  r	   r  )r   r  r  r   r   r  s        r3   test_binary_erosion31z+TestNdimageMorphology.test_binary_erosion31  s   )))))) *))))))))))))))))))))+ {1111111111111111111113 59: : k$*d++tV!*+C	J 	J 	J 	J!#x00000r5   c           
          g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        ||dd	          }t          ||           d S r  r  r  s        r3   test_binary_erosion32z+TestNdimageMorphology.test_binary_erosion32  r%  r5   c           
      (   g dg dg dg}g dg dg dg dg dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg d	g d
g d
g d
g dg dgt                    }t          j        ||d|d          }t          ||           d S )Nr   r   )r   r   r   r   r   r	   r	   r   r   r   r   r   r   r	   r  )r	   r	   r	   r	   r	   r   r   r	   r	   r	   r	   r	   r	   r   r#  )r   r   r   r	   r   r   r	   r  r  r	   r   )r   maskr  r  r.   r   r2   r3  r/   r0   s         r3   test_binary_erosion33z+TestNdimageMorphology.test_binary_erosion33  sG   )))))) *))))))))))))))))))))+ &%%%%%%%%%%%%%%%%%%%%' {1111111111111111111113 59: : $T623$2O O O!#x00000r5   c           
      &   g dg dg dg}g dg dg dg dg dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        ||d|	          }t          ||           d S )
Nr   r   r  r  r  r  r   r   r	   r   r	   r   r   r	   )r   r3  r  r4  s         r3   test_binary_erosion34z+TestNdimageMorphology.test_binary_erosion34.  sE   )))))) *))))))))))))))))))))+ &%%%%%%%%%%%%%%%%%%%%' {1111111111111111111113 59: : $T623$@ @ @!#x00000r5   c           
         g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }g d	g d
g dg d
g d	g dg dg}t          j        ||          }t          j        |t          j        |                    }t          j        ||          }t          j        |j        t                    }t          j	        ||dd|d|           t          ||           d S )Nr   r   r  r  r7  r  r  r#  r)  r*  r+  r,  r	   r  )r   r  r  r   r3  )r*   r+   r  logical_andlogical_not
logical_orrK   rL   r   r   r   )r.   r   r3  r/   tmpr2   r0   s          r3   test_binary_erosion35z+TestNdimageMorphology.test_binary_erosion35K  s   )))))) &%%%%%%%%%%%%%%%%%%%%' {1111111111111111111113 59: : %$$$$$$$$$$$$$$$$$$$$& $S$//e&7&=&=>>#Hc22k$*d++tV!*+C&.T	; 	; 	; 	; 	"#x00000r5   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}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        |t          j        |                    }t          j        ||          }t          j        |||dd          }t          ||           d S )Nr   r   r   r   r   r	   r	   r	   r   r   r   )r   r   r	   r   r	   r   r   r   r  r  r  r  r   r   r  r  r  r   r	   r  )r3  r   r   )r*   r+   r:  r;  r<  r   r   r   )r.   r   r3  r=  r/   r2   r0   s          r3   test_binary_erosion36z+TestNdimageMorphology.test_binary_erosion36m  s   )))))) )(((((((((((((((((((((((* (''''''''''''''''''''''') {4444444444444444444444446 7 7 $S$//e&7&=&=>>#Hc22$T623HF F F!#x00000r5   c                    t          j        g dg dg dgt                    }t          j        |          }t	          j        |||ddd          }t          ||u            t          t	          j        ||dd          |           d S )Nr   r   rA   r   T)	structurer  r  r   brute_force)rC  r  r   )r*   r+   r  
zeros_liker   r   r   r   )r.   abr0   s       r3   test_binary_erosion37z+TestNdimageMorphology.test_binary_erosion37  s    K""$+/1 1 1 Q$Q!A!26DJ J Jq"1a046 6 6	 	 	 	 	r5   c                     t          j        g dg dg dgt                    }d}t          t                    5  t          j        ||          }d d d            d S # 1 swxY w Y   d S )Nr   r   rA   g       @r  )r*   r+   r  ra   	TypeErrorr   r   )r.   r/   r  _s       r3   test_binary_erosion38z+TestNdimageMorphology.test_binary_erosion38  s    {III$99$99&-13 3 3 
9%% 	D 	D&t
CCCA	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   AA#&A#c           
      `   t          j        d          }g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        |j        t                    }t          j        ||d	||
           t          ||           d S Nr   r   r   r  r  r  r  r#  r	   r  )	r*   rO   r+   r  rK   rL   r   r   r   r.   r  r   r2   r/   r0   s         r3   test_binary_erosion39z+TestNdimageMorphology.test_binary_erosion39  #   [^^
)))))) *))))))))))))))))))))+ {1111111111111111111113 59: : k$*d++tV!*4S	B 	B 	B 	B!#x00000r5   c           
      `   t          j        d          }g dg dg dg}g dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg dg dgt                    }t          j        |j        t                    }t          j        ||d	||
           t          ||           d S rO  )	r*   int64r+   r  rK   rL   r   r   r   rP  s         r3   test_binary_erosion40z+TestNdimageMorphology.test_binary_erosion40  rR  r5   c                 x    t          j        g |          }t          j        |          }t	          |d           d S r   r*   ry   r   binary_dilationr   r   s       r3   test_binary_dilation01z,TestNdimageMorphology.test_binary_dilation01  s9    z"e$$%d++!#q)))))r5   c                 x    t          j        g |          }t          j        |          }t	          |d           d S )Nr   r*   rK   r   rX  r   r   s       r3   test_binary_dilation02z,TestNdimageMorphology.test_binary_dilation02  s9    {2u%%%d++!#q)))))r5   c                 |    t          j        dg|          }t          j        |          }t	          |dg           d S r   rW  r   s       r3   test_binary_dilation03z,TestNdimageMorphology.test_binary_dilation03  s=    z1#u%%%d++!#s+++++r5   c                 |    t          j        dg|          }t          j        |          }t	          |dg           d S r   r[  r   s       r3   test_binary_dilation04z,TestNdimageMorphology.test_binary_dilation04  s=    {A3&&%d++!#s+++++r5   c                 ~    t          j        dg|          }t          j        |          }t	          |g d           d S Nr   r   rW  r   s       r3   test_binary_dilation05z,TestNdimageMorphology.test_binary_dilation05  s?    z1#u%%%d++!#yyy11111r5   c                 ~    t          j        dg|          }t          j        |          }t	          |g d           d S )Nr   r   r[  r   s       r3   test_binary_dilation06z,TestNdimageMorphology.test_binary_dilation06  s?    {A3&&%d++!#yyy11111r5   c                     t          j        dg|          }d|d<   t          j        |          }t	          |g d           d S )Nr   r	   r   r[  r   s       r3   test_binary_dilation07z,TestNdimageMorphology.test_binary_dilation07  sH    {A3&&Q%d++!#yyy11111r5   c                     t          j        dg|          }d|d<   d|d<   t          j        |          }t	          |g d           d S )Nr    r	   r   r   r[  r   s       r3   test_binary_dilation08z,TestNdimageMorphology.test_binary_dilation08   sQ    {A3&&QQ%d++!#77777r5   c                     t          j        dg|          }d|d<   t          j        |          }t	          |g d           d S )Nr    r	   r	   r	   r	   r   r   r[  r   s       r3   test_binary_dilation09z,TestNdimageMorphology.test_binary_dilation09  sH    {A3&&Q%d++!#77777r5   c                     t          j        dg|          }d|d<   t          j        |d          }t	          |g d           d S )Nr    r	   r   r   r   r[  r   s       r3   test_binary_dilation10z,TestNdimageMorphology.test_binary_dilation10  sM    {A3&&Q%d2666!#77777r5   c                     t          j        dg|          }d|d<   t          j        |d          }t	          |g d           d S )Nr    r	   rn  r	   r	   r   r   r   r[  r   s       r3   test_binary_dilation11z,TestNdimageMorphology.test_binary_dilation11  sM    {A3&&Q%d1555!#77777r5   c                     t          j        dg|          }d|d<   g d}t          j        ||          }t	          |g d           d S )Nr    r	   r   )r	   r   r	   r   r   r[  r   s        r3   test_binary_dilation12z,TestNdimageMorphology.test_binary_dilation12  sS    {A3&&Q%dF33!#77777r5   c                     t          j        dg|          }d|d<   g d}t          j        ||d          }t	          |g d           d S )Nr    r	   r   r   r   r[  r   s        r3   test_binary_dilation13z,TestNdimageMorphology.test_binary_dilation13%  sX    {A3&&Q%dFCCC!#77777r5   c                     t          j        dg|          }d|d<   g d}t          j        ||d          }t	          |g d           d S )Nr    r	   r   r   rn  )r   r	   r   r	   r   r[  r   s        r3   test_binary_dilation14z,TestNdimageMorphology.test_binary_dilation14-  sX    {A3&&Q%dF2>>>!#77777r5   c                     t          j        dg|          }d|d<   g d}t          j        ||dd          }t	          |g d           d S )Nr    r	   r   r   r   r   r   r[  r   s        r3   test_binary_dilation15z,TestNdimageMorphology.test_binary_dilation155  sd    {A3&&Q%dF-/aA A A!#77777r5   c                     t          j        ddg|          }t          j        |          }t	          |dgg           d S r   rW  r   s       r3   test_binary_dilation16z,TestNdimageMorphology.test_binary_dilation16>  sA    z1a&%((%d++!#u-----r5   c                     t          j        ddg|          }t          j        |          }t	          |dgg           d S r   r[  r   s       r3   test_binary_dilation17z,TestNdimageMorphology.test_binary_dilation17D  sA    {Aq65))%d++!#u-----r5   c                     t          j        ddg|          }t          j        |          }t	          |g dg           d S )Nr	   r   r   rW  r   s       r3   test_binary_dilation18z,TestNdimageMorphology.test_binary_dilation18J  sC    z1a&%((%d++!#			{33333r5   c                     t          j        ddg|          }t          j        |          }t	          |g dg dg dg           d S rb  rW  r   s       r3   test_binary_dilation19z,TestNdimageMorphology.test_binary_dilation19P  s^    z1a&%((%d++!#			(1		(1		(3 	4 	4 	4 	4 	4r5   c                     t          j        ddg|          }d|d<   t          j        |          }t	          |g dg dg dg           d S )Nr   r	   r	   r	   r   r   r[  r   s       r3   test_binary_dilation20z,TestNdimageMorphology.test_binary_dilation20X  sg    {Aq65))T
%d++!#			(1		(1		(3 	4 	4 	4 	4 	4r5   c                     t          j        dd          }t          j        ddg|          }d|d<   t          j        ||          }t          |g dg dg dg           d S )Nr   r   r	   r  r   )r   r   r*   rK   rX  r   )r.   r   r   r/   r0   s        r3   test_binary_dilation21z,TestNdimageMorphology.test_binary_dilation21a  s{    21a88{Aq65))T
%dF33!#			(1		(1		(3 	4 	4 	4 	4 	4r5   c                     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	          ||           d S )Nr   r	   r	   r	   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r	   r	   r	   r	   r   r   r   r   r   r   r   r*   r+   r   rX  r   r   s        r3   test_binary_dilation22z,TestNdimageMorphology.test_binary_dilation22k  s    ,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > %d++!#x00000r5   c                     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        |d          }t	          ||           d S )Nr	   r	   r	   r	   r	   r	   r	   r	   )r	   r	   r	   r   r   r   r   r	   )r	   r	   r   r   r   r	   r   r	   )r	   r   r   r	   r	   r	   r	   r	   )r	   r   r	   r	   r	   r	   r   r	   )r	   r   r	   r   r   r	   r   r	   r   r   r   r   r   r	   r   r  r   s        r3   test_binary_dilation23z,TestNdimageMorphology.test_binary_dilation23  s    ,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > %d;;;!#x00000r5   c                     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        |d          }t	          ||           d S )Nr	   r	   r   r   r   r   r   r   )r	   r   r   r   r	   r   r   r   r   )r   r	   r	   r	   r	   r   r   r   )r	   r	   r	   r	   r	   r	   r   r   r  r   r   r   r   r   r  rn  r  r   s        r3   test_binary_dilation24z,TestNdimageMorphology.test_binary_dilation24  s    ,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > %d6:::!#x00000r5   c                     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        |dd          }t	          ||           d S )Nr	   r	   r   r   r   r   r	   r	   r	   r   r   r   r	   r   r	   r	   r   r   r	   r	   r	   r	   r   r	   r	   r  r   r	   r   r   r	   r   r	   r	   r   r   r   r   r   r  r	   rz  r  r   s        r3   test_binary_dilation25z,TestNdimageMorphology.test_binary_dilation25  s    ,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > %d6JJJ!#x00000r5   c                    t          j        dd          }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          ||           d S )Nr   r  )r	   r	   r	   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r   r   r   r   r   r   r   )r   r   r*   r+   rX  r   r   s         r3   test_binary_dilation26z,TestNdimageMorphology.test_binary_dilation26  s    21a88,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > %dF33!#x00000r5   c                     ddgddgg}g dg dg dg dg dg dg d	g d	g}t          j        g d	g dg d	g dg d
g dg d	g d	g|          }t          j        ||          }t	          ||           d S )Nr   r	   r   r  r   r  r   r   r	   r	   r   r	   r	   r   r   r   r   r   r  r   s         r3   test_binary_dilation27z,TestNdimageMorphology.test_binary_dilation27  s    a&a&,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > %dF33!#x00000r5   c                     g dg dg dg dg}t          j        g dg dg dg dg|          }t          j        |d          }t	          ||           d S )N)r	   r	   r	   r	   )r	   r   r   r	   )r   r   r   r   r	   r   r  r   s        r3   test_binary_dilation28z,TestNdimageMorphology.test_binary_dilation28  s     LL LL LL LL" {LLL(LL(LL(LL* ,12 2 %d;;;!#x00000r5   c                     ddgddgg}g dg dg dg dg dg}t          j        g dg dg dg dg dgt                    }t          j        ||d          }t          ||           d S )	Nr   r	   r   r   r   r   r	   r   r   r   r	   r	   r   r   r   rJ  r*   r+   r  r   rX  r   r  s        r3   test_binary_dilation29z,TestNdimageMorphology.test_binary_dilation29      a&a&#OO#OO#OO#OO#OO	% {OOO+OO+OO+OO+OO	- /3	4 4
 %dFqAAA!#x00000r5   c                    ddgddgg}g dg dg dg dg dg}t          j        g dg dg dg dg dgt                    }t          j        |j        t                    }t          j        ||d|           t          ||           d S )	Nr   r	   r   r  r  r   r   r  r  r*   r+   r  rK   rL   r   rX  r   r  s        r3   test_binary_dilation30z,TestNdimageMorphology.test_binary_dilation30
      a&a&#OO#OO#OO#OO#OO	% {OOO+OO+OO+OO+OO	- /3	4 4
 k$*d++f3GGGG!#x00000r5   c                     ddgddgg}g dg dg dg dg dg}t          j        g dg dg dg dg dgt                    }t          j        ||d	          }t          ||           d S )
Nr   r	   r  r  r   r	   r	   r	   r	   r   r   r   rJ  r  r  s        r3   test_binary_dilation31z,TestNdimageMorphology.test_binary_dilation31  r  r5   c                    ddgddgg}g dg dg dg dg dg}t          j        g dg dg dg dg dgt                    }t          j        |j        t                    }t          j        ||d|	           t          ||           d S )
Nr   r	   r  r  r   r  r   r   r  r  r  s        r3   test_binary_dilation32z,TestNdimageMorphology.test_binary_dilation32-  r  r5   c                    g dg dg dg}t          j        g dg dg dg dg dg dg dg dgt                    }t          j        g dg dg dg dg dg dg dg dgt                    }t          j        g dg dg dg dg dg dg dg dgt                    }t          j        ||d	|d
          }t          ||           d S )Nr   r   r   r   r   r   r   r   r	   r	   r   r   r@  r  r   r   r   r   r   r   r	   r   r   r   r  r3  r   r  r4  s         r3   test_binary_dilation33z,TestNdimageMorphology.test_binary_dilation33?  s   )))))) ; 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 : <@A A {4444444444444444444444446 8<= = {4444444444444444444444446 8<= = %dFr+/aA A A!#x00000r5   c                 D   g dg dg dg}g dg dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg d	g dg dgt                    }t          j        |j        t                    }t          j        ||d
|d          }t          ||           d S )Nr   r   r   r   r	   r	   r   r   r   r   r   r  r   r   r   r   r   r	   r  r  r4  s         r3   test_binary_dilation34z,TestNdimageMorphology.test_binary_dilation34`  s$   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8<= = {4:t,,%dFr+/aA A A!#x00000r5   c                    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          j        |t          j        |                    }t          j        ||          }t          j        g dg dg dg d	g d
g dg dg dg|          }t          j        ||dd          }t          ||           d S )Nr  r  r   r  r  r  r   r   r   r   r   r   r  r	   )r3  r   r   )r*   r+   r:  r;  r<  r   rX  r   )r.   r   r=  r/   r3  r2   r0   s          r3   test_binary_dilation35z,TestNdimageMorphology.test_binary_dilation35y  s   '''''''''''''''''''''''') {4444444444444444444444446 7 7 )(((((((((((((((((((((((* $S$//e&7&=&=>>#Hc22{4444444444444444444444446 8=> > %d-3!E E E!#x00000r5   c                    g dg dg dg}t          j        g dg dg dg dg dg dg dg dgt                    }t          j        g dg dg dg dg dg dg dg dgt                    }t          j        g dg dg dg dg dg dg dg dgt                    }t          j        |||d	
          }t          ||           d S )Nr   r   r   r   r  r@  r  r  r   r3  r   )r*   r+   r  r   binary_propagationr   r4  s         r3   test_binary_propagation01z/TestNdimageMorphology.test_binary_propagation01  s   )))))) ; 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 : <@A A {4444444444444444444444446 8<= = {4444444444444444444444446 8<= = (v.2D D D!#x00000r5   c                 B   g dg dg dg}g dg dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg d	g dg dgt                    }t          j        |j        t                    }t          j        |||d
          }t          ||           d S )Nr   r   r   r  r  r   r   r   r   r	   r  )r*   r+   r  rK   rL   r   r  r   r4  s         r3   test_binary_propagation02z/TestNdimageMorphology.test_binary_propagation02  s"   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8<= = {4:t,,(v.2D D D!#x00000r5   c                     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	          ||           d S )
Nr   r  r  r   r   r   r   r	   r	   r	   r   r   r   r   r  r   r   r	   r	   r   r	   r   r   )r*   r+   r   binary_openingr   r   s        r3   test_binary_opening01z+TestNdimageMorphology.test_binary_opening01      ,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > $T**!#x00000r5   c                    t          j        dd          }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          ||           d S )	Nr   r  r   )r   r	   r	   r	   r   r   r   r   r	   r	   r	   r	   r	   r	   r	   r   r  r   r	   r	   r	   r   r	   r	   r   r   )r   r   r*   r+   r  r   r   s         r3   test_binary_opening02z+TestNdimageMorphology.test_binary_opening02      21a88,,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > $T622!#x00000r5   c                     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	          ||           d S )Nr   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        r3   test_binary_closing01z+TestNdimageMorphology.test_binary_closing01  r  r5   c                    t          j        dd          }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          ||           d S )	Nr   r   r  r   r  r  r  r  )r   r   r*   r+   r  r   r   s         r3   test_binary_closing02z+TestNdimageMorphology.test_binary_closing02  r  r5   c           
      
   t          j        g dg dg dg dg dg dg dgt                    }t          j        g dg dg dg dg dg dg dgt                    }t          j        |          }t          ||           d S )Nr   r   r   r*   r+   r  r   binary_fill_holesr   r.   r2   r/   r0   s       r3   test_binary_fill_holes01z.TestNdimageMorphology.test_binary_fill_holes012      ; 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 : <@A A {4444444444444444444446 8<= = '--!#x00000r5   c           
      
   t          j        g dg dg dg dg dg dg dgt                    }t          j        g dg dg dg dg dg dg dgt                    }t          j        |          }t          ||           d S )Nr   r   r   r   r  r  s       r3   test_binary_fill_holes02z.TestNdimageMorphology.test_binary_fill_holes02D  r  r5   c           
      
   t          j        g dg dg dg dg dg dg dgt                    }t          j        g dg dg dg dg dg dg dgt                    }t          j        |          }t          ||           d S )Nr   r  )r   r	   r	   r	   r   r	   r	   r	   )r   r   r	   r   r   r	   r	   r	   )r   r	   r   r	   r   r	   r	   r	   )r   r	   r   r	   r   r	   r   r	   r  r  s       r3   test_binary_fill_holes03z.TestNdimageMorphology.test_binary_fill_holes03V  r  r5   c                     t          j        g dg dg dg          }g dg dg}t          j        ||          }t	          g dg dg d	g|           d S )
Nr   r   r    r	   r   r!   r   r^   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+   r   grey_erosionr   r.   r+   r  r  s       r3   test_grey_erosion01z)TestNdimageMorphology.test_grey_erosion01h  s    ___,__,__. / / YY			*	%eyAAA!???#2??#2??#45;	= 	= 	= 	= 	=r5   c                     t          j        g dg dg dg          }g dg dg}t          j        |||           t	          g dg dg d	g|           d S )
Nr  r  r  r   r  )r  r  r  r  r  r  )r.   r+   r  s      r3   test_grey_erosion01_overlapz1TestNdimageMorphology.test_grey_erosion01_overlapr  s    ___,__,__. / / YY			*	UiFFFF!???#2??#2??#45:	< 	< 	< 	< 	<r5   c                     t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t	          g dg d	g d
g|           d S )Nr  r  r  r   r  r   r  rC  r  r  r  r  r.   r+   r  rC  r  s        r3   test_grey_erosion02z)TestNdimageMorphology.test_grey_erosion02|      ___,__,__. / / YY			*	YY			*	%ey09; ; ;!???#2??#2??#45;	= 	= 	= 	= 	=r5   c                     t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t	          g dg d	g d
g|           d S )Nr  r  r  r   r  r   r  rq  )r	   r   r   r   r   )r   r   r   r   r   r  r  s        r3   test_grey_erosion03z)TestNdimageMorphology.test_grey_erosion03  r  r5   c                     t          j        g dg dg dg          }g dg dg}t          j        ||          }t	          g dg dg d	g|           d S )
Nr  r  r  r   r   r  r!   r!   r^   r^   r    r!   r^   r   r^   r!   r   r   r   r!   r!   r*   r+   r   grey_dilationr   r  s       r3   test_grey_dilation01z*TestNdimageMorphology.test_grey_dilation01  s    ___,__,__. / / YY			*	&u	BBB!???#2??#2??#45;	= 	= 	= 	= 	=r5   c                     t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t	          g dg d	g d
g|           d S )Nr  r  r  r   r   r   r  r  r  r  r  r  s        r3   test_grey_dilation02z*TestNdimageMorphology.test_grey_dilation02  s    ___,__,__. / / YY			*	YY			*	&u	1:< < <!???#2??#2??#45;	= 	= 	= 	= 	=r5   c                     t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t	          g dg d	g d
g|           d S )Nr  r  r  r   r   r   r  )r   r   
   r  r   )r   r  r^   r  r   )r^   r^   r^   r   r   r  r  s        r3   test_grey_dilation03z*TestNdimageMorphology.test_grey_dilation03  s    ___,__,__. / / YY			*	YY			*	&u	1:< < <!#4#4#4#4#4#4#2??#45;	= 	= 	= 	= 	=r5   c                     t          j        g dg dg dg          }g dg dg}t          j        ||          }t          j        ||          }t          j        ||          }t          ||           d S Nr  r  r  r   r  r  r*   r+   r   r  r  grey_openingr   r.   r+   r  r=  r2   r  s         r3   test_grey_opening01z)TestNdimageMorphology.test_grey_opening01  s    ___,__,__. / / YY			*	"5I>>>(	BBB%eyAAA!(F33333r5   c                 
   t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t          j        |||          }t          j        |||          }t          ||           d S Nr  r  r  r   r  r   r  r  r.   r+   r  rC  r=  r2   r  s          r3   test_grey_opening02z)TestNdimageMorphology.test_grey_opening02  s    ___,__,__. / / YY			*	YY			*	"5I-68 8 8(	3<> > >%ey09; ; ;!(F33333r5   c                     t          j        g dg dg dg          }g dg dg}t          j        ||          }t          j        ||          }t          j        ||          }t          ||           d S r  r*   r+   r   r  r  grey_closingr   r  s         r3   test_grey_closing01z)TestNdimageMorphology.test_grey_closing01  s    ___,__,__. / / YY			*	#EY???'yAAA%eyAAA!(F33333r5   c                 
   t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t          j        |||          }t          j        |||          }t          ||           d S r  r  r  s          r3   test_grey_closing02z)TestNdimageMorphology.test_grey_closing02  s    ___,__,__. / / YY			*	YY			*	#EY.79 9 9'y2;= = =%ey09; ; ;!(F33333r5   c                 T   t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t          j        |||          }||z
  }t          j        |j        |j                  }t          j        ||||           t          ||           d S 	Nr  r  r  r   r  r   r  r  rC  r  )
r*   r+   r   r  r  rK   rL   r   morphological_gradientr   r.   r+   r  rC  tmp1tmp2r2   r  s           r3   test_morphological_gradient01z3TestNdimageMorphology.test_morphological_gradient01  s    ___,__,__. / / YY			*	YY			*	$Ui/8: : :#EY.79 9 9$;U[%+66&u	1:6	K 	K 	K 	K!(F33333r5   c                    t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t          j        |||          }||z
  }t          j        |||          }t          ||           d S r  )r*   r+   r   r  r  r  r   r  s           r3   test_morphological_gradient02z3TestNdimageMorphology.test_morphological_gradient02  s    ___,__,__. / / YY			*	YY			*	$Ui/8: : :#EY.79 9 9$;/:CE E E!(F33333r5   c                 `   t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t          j        |||          }||z   d|z  z
  }t          j        |j        |j                  }t          j        ||||	           t          ||           d S )
Nr  r  r  r   r  r   r  r   r  )
r*   r+   r   r  r  rK   rL   r   morphological_laplacer   r  s           r3   test_morphological_laplace01z2TestNdimageMorphology.test_morphological_laplace01  s    ___,__,__. / / YY			*	YY			*	$Ui/8: : :#EY.79 9 9$;U*U[%+66%ey09&	J 	J 	J 	J!(F33333r5   c                     t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }t          j        |||          }||z   d|z  z
  }t          j        |||          }t          ||           d S )	Nr  r  r  r   r  r   r  r   )r*   r+   r   r  r  r  r   r  s           r3   test_morphological_laplace02z2TestNdimageMorphology.test_morphological_laplace02  s    ___,__,__. / / YY			*	YY			*	$Ui/8: : :#EY.79 9 9$;U*.u	9BD D D!(F33333r5   c                 &   t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }||z
  }t          j        |j        |j                  }t          j        ||||           t          ||           d S r  )	r*   r+   r   r  rK   rL   r   white_tophatr   r  s          r3   test_white_tophat01z)TestNdimageMorphology.test_white_tophat01$  s    ___,__,__. / / YY			*	YY			*	"5I-68 8 83;U[%+66Ui'0	A 	A 	A 	A!(F33333r5   c                     t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }||z
  }t          j        |||          }t          ||           d S r  )r*   r+   r   r  r   r   r  s          r3   test_white_tophat02z)TestNdimageMorphology.test_white_tophat022  s    ___,__,__. / / YY			*	YY			*	"5I-68 8 83;%ey09; ; ;!(F33333r5   c           
      f   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          ||           d S )Nr	   r   r   r   r   r   r   r  r   r	   r	   r	   r   r	   r   r1  rA   ru   )r   r	   r	   r   r   r   r   )r	   r   r   r	   r	   r	   r   )r   r	   r	   r   r   r   r	   )r   r	   r	   r   r	   r   r	   )r   r   r   r	   r	   r	   r	   rC  )r*   r+   bool_ry   r   r   r   r.   r+   rC  r2   r  s        r3   test_white_tophat03z)TestNdimageMorphology.test_white_tophat03?     2222222222222222222224 <A;H H H JvU[999	; 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 7 ?DkK K K %eyAAA8V,,,,,r5   c                     t          j        dt           j                  }t          j        dt           j                  }t          j        |t           j                  }t          j        |||           d S Nr    rA   ru   )rC  r  )r*   eyer(  ry   
empty_likerM   r   r   r.   r+   rC  r  s       r3   test_white_tophat04z)TestNdimageMorphology.test_white_tophat04S  e    	!5;///JvU[999	 !%u}===UiGGGGGGr5   c                 &   t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }||z
  }t          j        |j        |j                  }t          j        ||||           t          ||           d S r  )	r*   r+   r   r  rK   rL   r   black_tophatr   r  s          r3   test_black_tophat01z)TestNdimageMorphology.test_black_tophat01[  s    ___,__,__. / / YY			*	YY			*	"5I-68 8 8;U[%+66Ui'0	A 	A 	A 	A!(F33333r5   c                     t          j        g dg dg dg          }g dg dg}g dg dg}t          j        |||          }||z
  }t          j        |||          }t          ||           d S r  )r*   r+   r   r  r4  r   r  s          r3   test_black_tophat02z)TestNdimageMorphology.test_black_tophat02i  s    ___,__,__. / / YY			*	YY			*	"5I-68 8 8;%ey09; ; ;!(F33333r5   c           
      f   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          ||           d S )Nr%  r  r&  r1  rA   ru   )r   r	   r	   r	   r	   r	   r	   )r	   r   r   r   r   r   r	   )r	   r   r   r   r	   r   r	   r2  r'  )r*   r+   r(  ry   r   r4  r   r)  s        r3   test_black_tophat03z)TestNdimageMorphology.test_black_tophat03v  r+  r5   c                     t          j        dt           j                  }t          j        dt           j                  }t          j        |t           j                  }t          j        |||           d S r-  )r*   r.  r(  ry   r/  rM   r   r4  r0  s       r3   test_black_tophat04z)TestNdimageMorphology.test_black_tophat04  r2  r5   c                 6   g dg dg dg}g dg dg dg dg dg dg dg dg}t          j        g dg dg dg dg dg d	g d	g dg|          }t          j        |j        t                    }t          j        |||
           t          ||           d S )Nr   r   r   )r   r	   r   r   r   rk  r   )r   r   r	   r	   r	   r   )r   r	   r	   r	   r	   r  )r*   r+   rK   rL   r  r   binary_hit_or_missr   r   s         r3   test_hit_or_miss01z(TestNdimageMorphology.test_hit_or_miss01  s    )))))) $OO#OO#OO#OO#OO#OO#OO#OO% {OOO+OO+OO+OO+OO+OO+OO+OO- /45 5 k$*d++"4<<<<!(C00000r5   c                     g dg dg dg}g dg dg dg dg}t          j        g dg dg dg dg|          }t          j        ||          }t	          ||           d S )Nr   r   r   r   r   r	   r   r   r	   r	   r	   r   )r	   r	   r	   r   r   r	   r   r   r  r*   r+   r   r>  r   r   s         r3   test_hit_or_miss02z(TestNdimageMorphology.test_hit_or_miss02  s    )))))) -,,,,,,,,,,,. {4444444444446 8=> > (v66!(C00000r5   c                    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}t          j        g dg dg dg d	g d
g dg dg dg|          }t          j        |||          }t	          ||           d S )Nr   r   r   r   r  rA  r  r  r  r  r  r   rB  )r.   r   struct1struct2r2   r/   r0   s          r3   test_hit_or_miss03z(TestNdimageMorphology.test_hit_or_miss03  s   999999 999999 -,,,,,,,,,,,,,,,,,,,,,,,. {4444444444444444444444446 8=> > (w@@!(C00000r5   N)__name__
__module____qualname__pytestmarkparametrizer
   r4   r:   r?   rV   r\   r_   rc   rk   rm   ro   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r!  r$  r'  r-  r/  r5  r8  r>  rA  rH  rM  rQ  rU  rY  r\  r^  r`  rc  re  rg  ri  rl  ro  rr  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#  r*  r1  r5  r7  r9  r;  r?  rC  rG   r5   r3   r   r      sG       [We,,*0 *0 -,*0X [We,,*0 *0 -,*0X [We,,*0 *0 -,*0X [We,,./ ./ -,./` [We,,)0 )0 -,)0V [We,,)0 )0 -,)0V    [We,,"0 "0 -,"0H [We,,!0 !0 -,!0F [We,,./ ./ -,./`  ( [We,,# # -,# [We,,* * -,*. [We,,./ ./ -,./` [We,,, , -,, [We,,, , -,,- - -
  (- - -5 5 57 7 77 7 7	: 	: 	:	4 	4 	4% % % [We,,* * -,*
 [We,,* * -,*
 [We,,, , -,,
 [We,,, , -,,
 [We,,2 2 -,2
 [We,,2 2 -,2
 [We,,8 8 -,8
 [We,,8 8 -,8
 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,. . -,.
 [We,,. . -,.
 [We,,4 4 -,4
 [We,,4 4 -,4
 [We,,4 4 -,4 [We,,4 4 -,4 [We,,1 1 -,1( [We,,1 1 -,1* [We,,1 1 -,1, [We,,1 1 -,1. [We,,1 1 -,101 1 1,1 1 1.1 1 1,2 2 281 1 1.1 1 1,1 1 1:1 1 1: 1  1  1D!1 !1 !1F  D D D1 1 101 1 10 [We,,* * -,*
 [We,,* * -,*
 [We,,, , -,,
 [We,,, , -,,
 [We,,2 2 -,2
 [We,,2 2 -,2
 [We,,2 2 -,2 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,8 8 -,8 [We,,. . -,.
 [We,,. . -,.
 [We,,4 4 -,4
 [We,,4 4 -,4 [We,,4 4 -,4 [We,,4 4 -,4 [We,,1 1 -,1( [We,,1 1 -,1( [We,,1 1 -,1( [We,,1 1 -,1( [We,,1 1 -,1* [We,,1 1 -,1, [We,,
1 
1 -,
11 1 1"1 1 1$1 1 1"1 1 1$1 1 1B1 1 12 [We,,&1 &1 -,&1P1 1 1B1 1 12 [We,,1 1 -,1( [We,,1 1 -,1* [We,,1 1 -,1( [We,,1 1 -,1*1 1 1$1 1 1$1 1 1$= = =< < <
= 
= 
=
= 
= 
== = =
= 
= 
=
= 
= 
=4 4 44 4 44 4 44 4 44 4 4 4 4 44 4 4 4 4 44 4 44 4 4- - -(H H H4 4 44 4 4- - -(H H H [We,,1 1 -,10 [We,,1 1 -,1 [We,,1 1 -,1 1 1r5   r   c                        e Zd Zd Zd Zd ZdS )TestDilateFixc                 (   t          j        g dg dg dg dg dgt           j                  | _        t          j        d          | _        t          j        | j        | j                  }|                    t           j                  | _        d S )Nr   r  r  rA   ru   r'  )	r*   r+   uint8ry   sq3x3r   rX  view
dilated3x3)r.   rU  s     r3   setup_methodzTestDilateFix.setup_method  s    [///"1//"1//"1//"1//	"3 ;@+	G G G
 Z''
,TZ4:NNN
$//%+66r5   c                 v    t          j        | j        | j                  }t	          || j        dz              d S )Nr'  r	   )r   r  r+   rS  r   rU  r.   results     r3   test_dilation_square_structurez,TestDilateFix.test_dilation_square_structure  s8    &tzTZHHH!&$/A*=>>>>>r5   c                 f    t          j        | j        d          }t          || j                   d S )Nr   )size)r   r  r+   r   rU  rX  s     r3   test_dilation_scalar_sizez'TestDilateFix.test_dilation_scalar_size  s1    &tz:::!&$/:::::r5   N)rH  rI  rJ  rV  rZ  r]  rN  r5   r3   rP  rP    sA        
7 
7 
7? ? ?
; ; ; ; ;r5   rP  c                        e Zd Zd Zd Zd ZdS )TestBinaryOpeningClosingc                 8   t          j        dt                    }d|ddddf<   d|d<   || _        t          j        d          | _        t          j        | j        | j        dd d          | _        t          j	        | j        | j        dd d          | _
        d S )	Nr    r    rA   Tr	   r   )r   r   ru   r   )r*   rK   r  r+   ry   rS  r   r  
opened_oldr  
closed_old)r.   rF  s     r3   rV  z%TestBinaryOpeningClosing.setup_method  s    Kd+++!A#qs($
Z''
!0TZ12D!= =!0TZ12D!= =r5   c           
      z    t          j        | j        | j        dd dd dd          }t	          || j                   d S Nr	   r   F)r   r  r+   rS  r   rb  )r.   
opened_news     r3   test_opening_new_argumentsz3TestBinaryOpeningClosing.test_opening_new_arguments  A    +DJ
At,-tQ? ?
:t77777r5   c           
      z    t          j        | j        | j        dd dd dd          }t	          || j                   d S re  )r   r  r+   rS  r   rc  )r.   
closed_news     r3   test_closing_new_argumentsz3TestBinaryOpeningClosing.test_closing_new_arguments	  rh  r5   N)rH  rI  rJ  rV  rg  rk  rN  r5   r3   r_  r_    sA        	= 	= 	=8 8 8
8 8 8 8 8r5   r_  c                      t          j        dg          } t          t          t          j        | d           t          t          t          j        | d           d S Nr	   g      ?rJ        ?)r*   ry   ra   rK  r   r   r/   s    r3   )test_binary_erosion_noninteger_iterationsrp  	  M     :qc??D)W3TcJJJJ)W3TcJJJJJJr5   c                      t          j        dg          } t          t          t          j        | d           t          t          t          j        | d           d S rm  )r*   ry   ra   rK  r   rX  ro  s    r3   *test_binary_dilation_noninteger_iterationsrs  	  sM     :qc??D)W4dsKKKK)W4dsKKKKKKr5   c                      t          j        dg          } t          t          t          j        | d           t          t          t          j        | d           d S rm  )r*   ry   ra   rK  r   r  ro  s    r3   )test_binary_opening_noninteger_iterationsru  	  rq  r5   c                      t          j        dg          } t          t          t          j        | d           t          t          t          j        | d           d S rm  )r*   ry   ra   rK  r   r  ro  s    r3   )test_binary_closing_noninteger_iterationsrw  	  rq  r5   c                  ,   t          j        dg          } t          j        | dd          t          j        | dt	          d                    k    sJ t          j        | dd          t          j        | dt	          d                    k    sJ d S )Nr	   r   rn  )r  rD  r   )r*   ry   r   r   r  ro  s    r3   ;test_binary_closing_noninteger_brute_force_passes_when_truery  '	  s     :qc??D!  		S			J	J	JK K K K !  		S			J	J	JK K K K K Kr5   function)r   rX  r  r  r  r    rD  FTc                 p   t           j                            d          }|                    ddd                              t
                    }t          t          |           }|                                } ||||          }t          ||            |||||           t          ||           d S )N{   r   r   d   lowhighr\  )rD  r  )rD  r  r  )
r*   randomRandomStaterandintr   r  getattrr   copyr   )rz  r  rD  rstater/   ndi_func	data_origr2   s           r3   test_binary_input_as_outputr  4	  s     \%%c**F>>aac>2299$??Dw))H 		Ix+*MMMHtY''' HT{z$OOOOx&&&&&r5   c                  `   t           j                            d          } |                     ddd                              t
                    }|                                }t          j        |          }t          ||           t          j        ||           t          ||           d S )Nr|  r   r   r}  r~  r=  )
r*   r  r  r  r   r  r  r   r>  r   )r  r/   r  r2   s       r3   'test_binary_hit_or_miss_input_as_outputr  I	  s    \%%c**F>>aac>2299$??D 		I)$//HtY''' tD1111x&&&&&r5   c                      d} t          j        t          |           5  t          j        t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nzinvalid metric provided)matchra  garbagerv   )rK  r   
ValueErrorr   rh   rx   ry   )msgs    r3   *test_distance_transform_cdt_invalid_metricr  W	  s    
#C	z	-	-	- 9 9&rwv.7	9 	9 	9 	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   )AAA)r*   rx   numpy.testingr   r   r   r   rK  r   ra   scipyr    r
   r   rP  r_  rp  rs  ru  rw  ry  rL  rM  r  r  r  rN  r5   r3   <module>r     s       6 6 6 6 6 6 6 6 6 6 6 6  * * * * * *            G#1 G#1 G#1 G#1 G#1 G#1 G#1 G#1TF; ; ; ; ; ; ; ;08 8 8 8 8 8 8 80K K KL L LK K KK K K
K 
K 
K MMM  1v..66' ' 76 /.	 '' ' '9 9 9 9 9r5   