
    Ug                       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   nparrayr   distance_transform_bfr   selfr   dataoutftexpecteds         b/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/ndimage/tests/test_morphology.pytest_distance_transform_bf01z2TestNdimageMorphology.test_distance_transform_bf01   s    x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6 8=> > /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   x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6 8=> > /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_bf03h   s   x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6 8=> > /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   x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6 8=> > 0aHHHSXdj
333%db9999

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

2Z
"(333%5r	K 	K 	K 	K

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

2

2Xdj
333*Bt5 5 5

2

2Z
"(333*r3 3 3

2

2Xdj
333Z
"(333%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   x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6 8=> > /+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   x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6 8=> > /+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    x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6 7 7 <(( 	 	)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    x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6 8=> > 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_cdt02S  s   x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6 8=> > 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_cdt03w  s   x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6 8=> > 1$tLLLSXdj111&tr::::

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

2Z
"(333&5r	K 	K 	K 	K

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

2

2Xdj111+Bt5 5 5

2

2Z
"(333+r3 3 3

2

2Xdj111Z
"(333&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$   x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6 7 7 h	|dj8III<(( 	 	)!%$#	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	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+   onesr   rh   sum)r.   r   r/   
metric_argactuals        r3   test_distance_transform_cdt05z3TestNdimageMorphology.test_distance_transform_cdt05  s     x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6 8=> > 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  s5    x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6 8=> > 0dKKKR*4==!"c***"*RXabb\::::YYrz""
BBV]]2A]&&
B!"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   x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6 8=> > 1$tLLLSXdj
333&tr::::

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

2Z
"(333&5r	K 	K 	K 	K

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

2

2Xdj
333+Bt5 5 5

2

2Z
"(333+r3 3 3

2

2Xdj
333Z
"(333&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      x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6 8=> > +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_edt53  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_edt68  s   x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6 7 7 2:>>><(( 	 	)#!&'	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	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_structure01L  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_structure02P  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_structure03T  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_structure04Z  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_structure01`  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_structure02k  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_structure03v  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*   rx   r   binary_erosionr   r.   r   r/   r0   s       r3   test_binary_erosion01z+TestNdimageMorphology.test_binary_erosion01  s9    wr5!!$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>    wr5!!$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=    wsE""$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    wsE""$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?    wsE""$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    wsE""$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?    wsE""$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    wsE""$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    wsE""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    wsE""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    wsE""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    wsE""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    wsE""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    wsE""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    wsE""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    w1vu%%$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    w1vu%%$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    w1vu%%$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    w1vu%%$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^    w1vu%%$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    w1vu%%$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    ,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; $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,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; $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&,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; $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_erosion25S  s   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; $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_erosion26k  s   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; $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    )))))) *))))))))))))))))))))+ x.....................0 267 7 $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   )))))) *))))))))))))))))))))+ x.....................0 267 7 htz4((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      )))))) *))))))))))))))))))))+ x.....................0 267 7 $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   )))))) *))))))))))))))))))))+ x.....................0 267 7 htz4((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   )))))) *))))))))))))))))))))+ x.....................0 267 7 htz4((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   r2  r/   r0   s         r3   test_binary_erosion33z+TestNdimageMorphology.test_binary_erosion33  sG   )))))) *))))))))))))))))))))+ &%%%%%%%%%%%%%%%%%%%%' x.....................0 267 7 $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   r2  r  r3  s         r3   test_binary_erosion34z+TestNdimageMorphology.test_binary_erosion34-  sE   )))))) *))))))))))))))))))))+ &%%%%%%%%%%%%%%%%%%%%' x.....................0 267 7 $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  r6  r  r  r"  r(  r)  r*  r+  r	   r  )r   r  r  r   r2  )r*   r+   r  logical_andlogical_not
logical_orrK   rL   r   r   r   )r.   r   r2  r/   tmpr2   r0   s          r3   test_binary_erosion35z+TestNdimageMorphology.test_binary_erosion35J  s   )))))) &%%%%%%%%%%%%%%%%%%%%' x.....................0 267 7 %$$$$$$$$$$$$$$$$$$$$& >#t,,nT2>$#7#788=3//htz4((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  )r2  r   r   )r*   r+   r9  r:  r;  r   r   r   )r.   r   r2  r<  r/   r2   r0   s          r3   test_binary_erosion36z+TestNdimageMorphology.test_binary_erosion36l  s   )))))) )(((((((((((((((((((((((* (''''''''''''''''''''''') x1111111111111111111111113 4 4 >#t,,nT2>$#7#788=3//$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)rB  r  r   )r*   r+   r  
zeros_liker   r   r   r   )r.   abr0   s       r3   test_binary_erosion37z+TestNdimageMorphology.test_binary_erosion37  s    Hiiiiiii!(,. . . M!$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    x!		!		#*.0 0 0 
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  #   Xa[[
)))))) *))))))))))))))))))))+ x.....................0 267 7 htz4((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 rN  )	r*   int64r+   r  rK   rL   r   r   r   rO  s         r3   test_binary_erosion40z+TestNdimageMorphology.test_binary_erosion40  rQ  r5   c                 x    t          j        g |          }t          j        |          }t	          |d           d S r   r*   rx   r   binary_dilationr   r   s       r3   test_binary_dilation01z,TestNdimageMorphology.test_binary_dilation01  s9    wr5!!%d++!#q)))))r5   c                 x    t          j        g |          }t          j        |          }t	          |d           d S )Nr   r*   rK   r   rW  r   r   s       r3   test_binary_dilation02z,TestNdimageMorphology.test_binary_dilation02  s9    xE""%d++!#q)))))r5   c                 |    t          j        dg|          }t          j        |          }t	          |dg           d S r   rV  r   s       r3   test_binary_dilation03z,TestNdimageMorphology.test_binary_dilation03  s=    wsE""%d++!#s+++++r5   c                 |    t          j        dg|          }t          j        |          }t	          |dg           d S r   rZ  r   s       r3   test_binary_dilation04z,TestNdimageMorphology.test_binary_dilation04  s=    xU##%d++!#s+++++r5   c                 ~    t          j        dg|          }t          j        |          }t	          |g d           d S Nr   r   rV  r   s       r3   test_binary_dilation05z,TestNdimageMorphology.test_binary_dilation05  s?    wsE""%d++!#yyy11111r5   c                 ~    t          j        dg|          }t          j        |          }t	          |g d           d S )Nr   r   rZ  r   s       r3   test_binary_dilation06z,TestNdimageMorphology.test_binary_dilation06  s?    xU##%d++!#yyy11111r5   c                     t          j        dg|          }d|d<   t          j        |          }t	          |g d           d S )Nr   r	   r   rZ  r   s       r3   test_binary_dilation07z,TestNdimageMorphology.test_binary_dilation07  sH    xU##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   rZ  r   s       r3   test_binary_dilation08z,TestNdimageMorphology.test_binary_dilation08  sQ    xU##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   rZ  r   s       r3   test_binary_dilation09z,TestNdimageMorphology.test_binary_dilation09  sH    xU##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   rZ  r   s       r3   test_binary_dilation10z,TestNdimageMorphology.test_binary_dilation10  sM    xU##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	   rm  r	   r	   r   r   r   rZ  r   s       r3   test_binary_dilation11z,TestNdimageMorphology.test_binary_dilation11  sM    xU##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   rZ  r   s        r3   test_binary_dilation12z,TestNdimageMorphology.test_binary_dilation12  sS    xU##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   rZ  r   s        r3   test_binary_dilation13z,TestNdimageMorphology.test_binary_dilation13$  sX    xU##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   rm  )r   r	   r   r	   r   rZ  r   s        r3   test_binary_dilation14z,TestNdimageMorphology.test_binary_dilation14,  sX    xU##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   rZ  r   s        r3   test_binary_dilation15z,TestNdimageMorphology.test_binary_dilation154  sd    xU##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   rV  r   s       r3   test_binary_dilation16z,TestNdimageMorphology.test_binary_dilation16=  sA    w1vu%%%d++!#u-----r5   c                     t          j        ddg|          }t          j        |          }t	          |dgg           d S r   rZ  r   s       r3   test_binary_dilation17z,TestNdimageMorphology.test_binary_dilation17C  sA    xA&&%d++!#u-----r5   c                     t          j        ddg|          }t          j        |          }t	          |g dg           d S )Nr	   r   r   rV  r   s       r3   test_binary_dilation18z,TestNdimageMorphology.test_binary_dilation18I  sC    w1vu%%%d++!#			{33333r5   c                     t          j        ddg|          }t          j        |          }t	          |g dg dg dg           d S ra  rV  r   s       r3   test_binary_dilation19z,TestNdimageMorphology.test_binary_dilation19O  s^    w1vu%%%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   rZ  r   s       r3   test_binary_dilation20z,TestNdimageMorphology.test_binary_dilation20W  sg    xA&&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   rW  r   )r.   r   r   r/   r0   s        r3   test_binary_dilation21z,TestNdimageMorphology.test_binary_dilation21`  s{    21a88xA&&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   rW  r   r   s        r3   test_binary_dilation22z,TestNdimageMorphology.test_binary_dilation22j  s    ,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; %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    ,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; %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  rm  r  r   s        r3   test_binary_dilation24z,TestNdimageMorphology.test_binary_dilation24  s    ,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; %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	   ry  r  r   s        r3   test_binary_dilation25z,TestNdimageMorphology.test_binary_dilation25  s    ,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; %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+   rW  r   r   s         r3   test_binary_dilation26z,TestNdimageMorphology.test_binary_dilation26  s    21a88,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; %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&,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; %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" x%%%' )./ / %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   rI  r*   r+   r  r   rW  r   r  s        r3   test_binary_dilation29z,TestNdimageMorphology.test_binary_dilation29      a&a&#OO#OO#OO#OO#OO	% x((((	* ,0	1 1
 %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   rW  r   r  s        r3   test_binary_dilation30z,TestNdimageMorphology.test_binary_dilation30	      a&a&#OO#OO#OO#OO#OO	% x((((	* ,0	1 1
 htz4((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   rI  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  r2  r   r  r3  s         r3   test_binary_dilation33z,TestNdimageMorphology.test_binary_dilation33>  s   )))))) 85555555555555555555555557 9=> > x1111111111111111111111113 59: : x1111111111111113331113335 7;< < %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  r3  s         r3   test_binary_dilation34z,TestNdimageMorphology.test_binary_dilation34_  s$   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 59: : x
D))%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	   )r2  r   r   )r*   r+   r9  r:  r;  r   rW  r   )r.   r   r<  r/   r2  r2   r0   s          r3   test_binary_dilation35z,TestNdimageMorphology.test_binary_dilation35x  s   '''''''''''''''''''''''') x1111111111111111111111113 4 4 )(((((((((((((((((((((((* >#t,,nT2>$#7#788=3//x1111111111111111111111113 5:; ; %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   r2  r   )r*   r+   r  r   binary_propagationr   r3  s         r3   test_binary_propagation01z/TestNdimageMorphology.test_binary_propagation01  s   )))))) 85555555555555555555555557 9=> > x1111111111111111111111113 59: : x1111111111111111111111113 59: : (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   r3  s         r3   test_binary_propagation02z/TestNdimageMorphology.test_binary_propagation02  s"   )))))) -,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 59: : x
D))(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      ,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; $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,,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; $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_holes011      85555555555555555555557 9=> > x1111111111111111111113 59: : '--!#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_holes02C  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_holes03U  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_erosion01g  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_overlapq  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  rB  r  r  r  r  r.   r+   r  rB  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  rp  )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  rB  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  rB  r  )
r*   r+   r   r  r  rK   rL   r   morphological_gradientr   r.   r+   r  rB  tmp1tmp2r2   r  s           r3   test_morphological_gradient01z3TestNdimageMorphology.test_morphological_gradient01  s    ///)//)//+ , , YY			*	YY			*	$Ui/8: : :#EY.79 9 9$;%+u{33&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{33%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{33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_tophat021  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   r0  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	   rB  )r*   r+   bool_rx   r   r  r   r.   r+   rB  r2   r  s        r3   test_white_tophat03z)TestNdimageMorphology.test_white_tophat03>     /////////////////////1 9;B B B GF"(333	82222222222222222222224 <>8E E E %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   )rB  r  )r*   eyer'  rx   
empty_likerM   r   r  r.   r+   rB  r  s       r3   test_white_tophat04z)TestNdimageMorphology.test_white_tophat04R  d    q)))GF"(333	 uBJ777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_tophat01Z  s    ///)//)//+ , , YY			*	YY			*	"5I-68 8 8;%+u{33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  r3  r   r  s          r3   test_black_tophat02z)TestNdimageMorphology.test_black_tophat02h  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%  r0  rA   ru   )r   r	   r	   r	   r	   r	   r	   )r	   r   r   r   r   r   r	   )r	   r   r   r   r	   r   r	   r1  r&  )r*   r+   r'  rx   r   r3  r   r(  s        r3   test_black_tophat03z)TestNdimageMorphology.test_black_tophat03u  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'  rx   r.  rM   r   r3  r/  s       r3   test_black_tophat04z)TestNdimageMorphology.test_black_tophat04  r1  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   rj  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% x(((((((* ,12 2 htz4(("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    )))))) -,,,,,,,,,,,. x1111111111113 5:; ; (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  r@  r  r  r  r  r  r   rA  )r.   r   struct1struct2r2   r/   r0   s          r3   test_hit_or_miss03z(TestNdimageMorphology.test_hit_or_miss03  s   999999 999999 -,,,,,,,,,,,,,,,,,,,,,,,. x1111111111111111111111113 5:; ; (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.  r4  r7  r=  r@  rG  rL  rP  rT  rX  r[  r]  r_  rb  rd  rf  rh  rk  rn  rq  rs  ru  rw  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r"  r)  r0  r4  r6  r8  r:  r>  rB  rF   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+   uint8rx   sq3x3r   rW  view
dilated3x3)r.   rT  s     r3   setup_methodzTestDilateFix.setup_method  s    X....	0 8:x	A A A
 WV__
,TZ4:NNN
$//"(33r5   c                 v    t          j        | j        | j                  }t	          || j        dz              d S )Nr&  r	   )r   r  r+   rR  r   rT  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   rT  rW  s     r3   test_dilation_scalar_sizez'TestDilateFix.test_dilation_scalar_size  s1    &tz:::!&$/:::::r5   N)rG  rH  rI  rU  rY  r\  rM  r5   r3   rO  rO    sA        
4 
4 
4? ? ?
; ; ; ; ;r5   rO  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+   rx   rR  r   r  
opened_oldr  
closed_old)r.   rE  s     r3   rU  z%TestBinaryOpeningClosing.setup_method  s    HV4(((!A#qs($
WV__
!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+   rR  r   ra  )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 rd  )r   r  r+   rR  r   rb  )r.   
closed_news     r3   test_closing_new_argumentsz3TestBinaryOpeningClosing.test_closing_new_arguments 	  rg  r5   N)rG  rH  rI  rU  rf  rj  rM  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      ?rI        ?)r*   rx   ra   rJ  r   r   r/   s    r3   )test_binary_erosion_noninteger_iterationsro  	  M     7A3<<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 rl  )r*   rx   ra   rJ  r   rW  rn  s    r3   *test_binary_dilation_noninteger_iterationsrr  	  sM     7A3<<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 rl  )r*   rx   ra   rJ  r   r  rn  s    r3   )test_binary_opening_noninteger_iterationsrt  	  rp  r5   c                      t          j        dg          } t          t          t          j        | d           t          t          t          j        | d           d S rl  )r*   rx   ra   rJ  r   r  rn  s    r3   )test_binary_closing_noninteger_iterationsrv  	  rp  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   rm  )r  rC  r   )r*   rx   r   r   r  rn  s    r3   ;test_binary_closing_noninteger_brute_force_passes_when_truerx  &	  s     7A3<<D!  		S			J	J	JK K K K !  		S			J	J	JK K K K K Kr5   function)r   rW  r  r  r  r    rC  FTc                 p   t           j                            d          }|                    ddd                              t
                    }t          t          |           }|                                } ||||          }t          ||            |||||           t          ||           d S )N{   r   r   d   lowhighr[  )rC  r  )rC  r  r  )
r*   randomRandomStaterandintr   r  getattrr   copyr   )ry  r  rC  rstater/   ndi_func	data_origr2   s           r3   test_binary_input_as_outputr  3	  s     Y""3''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  H	  s    Y""3''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)matchr`  garbagerv   )rJ  r   
ValueErrorr   rh   r*   rx   )msgs    r3   *test_distance_transform_cdt_invalid_metricr  V	  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)numpyr*   numpy.testingr   r   r   r   rJ  r   ra   scipyr    r
   r   rO  r^  ro  rr  rt  rv  rx  rK  rL  r  r  r  rM  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   