
    S_f                       d dl Z d dl Zd dlmZmZmZmZ d dlZd dlmZ	 d dl
mZ ddlmZ  G d d      Z G d	 d
      Z G d d      Zd Zd Zd Zd Zd Zej,                  j/                  dg d      ej,                  j/                  dddg      ej,                  j/                  dddg      d                      Zd Zd Zy)    N)assert_assert_equalassert_array_equalassert_array_almost_equal)raises)ndimage   )typesc                      e Zd Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Z	ej                  j                  de      d        Z
ej                  j                  de      d        Zej                  j                  de      d        Zd Zej                  j                  de      d	        Zej                  j                  de      d
        Zej                  j                  de      d        Zd Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j                  de      d        Z ej                  j                  de      d        Z!ej                  j                  de      d        Z"ej                  j                  de      d        Z#ej                  j                  de      d        Z$ej                  j                  de      d         Z%ej                  j                  de      d!        Z&ej                  j                  de      d"        Z'ej                  j                  de      d#        Z(ej                  j                  de      d$        Z)ej                  j                  de      d%        Z*ej                  j                  de      d&        Z+ej                  j                  de      d'        Z,ej                  j                  de      d(        Z-ej                  j                  de      d)        Z.ej                  j                  de      d*        Z/ej                  j                  de      d+        Z0ej                  j                  de      d,        Z1ej                  j                  de      d-        Z2ej                  j                  de      d.        Z3ej                  j                  de      d/        Z4ej                  j                  de      d0        Z5ej                  j                  de      d1        Z6ej                  j                  de      d2        Z7ej                  j                  de      d3        Z8ej                  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                  j                  de      dC        ZHej                  j                  de      dD        ZIej                  j                  de      dE        ZJej                  j                  de      dF        ZKej                  j                  de      dG        ZLej                  j                  de      dH        ZMej                  j                  de      dI        ZNej                  j                  de      dJ        ZOej                  j                  de      dK        ZPej                  j                  de      dL        ZQej                  j                  de      dM        ZRej                  j                  de      dN        ZSej                  j                  de      dO        ZTej                  j                  de      dP        ZUej                  j                  de      dQ        ZVej                  j                  de      dR        ZWej                  j                  de      dS        ZXej                  j                  de      dT        ZYej                  j                  de      dU        ZZej                  j                  de      dV        Z[ej                  j                  de      dW        Z\ej                  j                  de      dX        Z]ej                  j                  de      dY        Z^ej                  j                  de      dZ        Z_ej                  j                  de      d[        Z`ej                  j                  de      d\        Zaej                  j                  de      d]        Zbej                  j                  de      d^        Zcd_ Zdd` Zeda Zfdb Zgdc Zhdd Ziej                  j                  de      de        Zjdf Zkdg Zlej                  j                  de      dh        Zmej                  j                  de      di        Znej                  j                  de      dj        Zoej                  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                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zy)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	        ||       y )N	r   r   r   r   r   r   r   r   r   	r   r   r   r	   r	   r	   r   r   r   	r   r   r	   r	   r	   r	   r	   r   r   	euclideanTreturn_indices)	r   r   r	         r   r	   r   r   	r   r   r	   r      r   r	   r   r   	r	   r	   r	   r	   r	   r	   r	   r	   r	   	r   r   r   r   r	   r   r   r   r   	   r   r   r   r	   r   r   r   r   	r   r   r   r      r   r   r   r   	   r    r   r      r   r   r    r    	r   r   r   r!   r!   r!   r   r   r   	r!   r!   r!   r!   r!   r!   r!   r!   r!   	r   r   r   r   r   r   r   r   r   	r   r	   r   r   r   r    r   r!   r   	r   r	   r   r   r   r   r   r!   r   	r   r	   r	   r   r   r   r!   r!   r   	r   r	   r	   r	   r   r!   r!   r!   r   numpyarrayr   distance_transform_bfr   selfr   dataoutftexpecteds         Clib/python3.12/site-packages/scipy/ndimage/tests/test_morphology.pytest_distance_transform_bf01z2TestNdimageMorphology.test_distance_transform_bf01   s     {{7777777779 ;@A //k?CER/////////1 	"#)X60000000002 10000000023$ 	""h/    c                 z   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	        ||       y )Nr   r   r   	cityblockTr   	r   r   r	   r   r   r   r	   r   r   )	r   r   r	   r   r   r   r	   r   r   r   r   )	r   r   r   r   r	   r   r   r   r   )	r   r   r   r   r!   r   r   r   r   )	r    r    r   r!   r!   r!   r   r    r    r"   r#   r$   r%   r&   	r   r	   r	   r	   r   r!   r!   r!   r   r)   r-   s         r3   test_distance_transform_bf02z2TestNdimageMorphology.test_distance_transform_bf02<   s    {{7777777779 ;@A //k?CER 0////////1 	"#x00000000002 10000000023$ 	"(B/r5   c                 z   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	        ||       y )Nr   r   r   
chessboardTr   )	r   r   r	   r	   r   r	   r	   r   r   r8   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r    r   r   r   r    r   r   r   r"   r#   r$   r%   	r   r	   r   r   r    r   r   r!   r   	r   r	   r	   r   r   r   r!   r!   r   )	r   r	   r	   r   r   r!   r!   r!   r   )	r   r	   r   r   r   r   r!   r!   r   )	r   r	   r   r   r    r   r   r!   r   r)   r-   s         r3   test_distance_transform_bf03z2TestNdimageMorphology.test_distance_transform_bf03i   s    {{7777777779 ;@A //l?CER 0////////1 	"#x00000000002 1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                  ||       |j                  |       t        j                  |dd	      }|j                  |       t        j                  |j
                  t         j                        }t        j                  |dd
|       |j                  |       t        j                  |d      \  }}|j                  |       |j                  |       t        j                  |j
                  t         j                        }t        j                  ||d
      }|j                  |       |j                  |       t        j                  |j
                  t         j                        }t        j                  |d
|      }|j                  |       |j                  |       t        j                  |j
                  t         j                        }t        j                  |j
                  t         j                        }t        j                  ||d
|       |j                  |       |j                  |       |D ]  }t        ||        |D ]  }t        ||        y )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   s2   {{7777777779 ;@A 00aHS[[5==9%%db9

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

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

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

2

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

2

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

2

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

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

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

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

2

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

2

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

2

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

2

2 	/B%c2.	/ 	/B%c2.	/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                  |j                  f|j                  z   t         j
                        }t        t              5  t        j                  |dd|       d d d        y # 1 sw Y   y xY w)Nr   r   r   rA   TFrF   )
r*   r+   rK   ndimrL   rO   ra   rb   r   r,   )r.   r/   indices_outs      r3   test_distance_transform_cdt04z3TestNdimageMorphology.test_distance_transform_cdt04  s    {{7777777779 : kk499,";5;;O<( 	))!%$#		 	 	s   =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
                  ||      }|j                         dk(  sJ y )Nr   r   r   r   r   metrici)r*   r+   nponesr   rh   sum)r.   r   r/   
metric_argactuals        r3   test_distance_transform_cdt05z3TestNdimageMorphology.test_distance_transform_cdt05  sn     {{7777777779 ;@A WWV_
//ZHzz|s"""r5   c                 2   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
  }|j                  t         j                        }t        j                  |||       t         j                  j                  |d	
      }t        j                  ||       t        ||       y )Nr   r   r   Tr   r   r	   rA   r   )axis)r*   r+   r   distance_transform_edtr,   r   rG   rL   r   astyperM   multiplyaddreducesqrt)r.   r   r/   r0   r1   rj   rU   s          r3   test_distance_transform_edt01z3TestNdimageMorphology.test_distance_transform_edt01  s     {{7777777779 ;@A 00dKR**4=!"c*%--BHH==YYu}}%r2r"YYbq)

2r!"b)r5   c                    t        j                  g dg dg dg dg dg dg dg dg dg	|      }t        j                  |d      \  }}g }g }t        j                  |j
                  t         j                        }t        j                  ||       |j                  |       t        j                  |dd	      }|j                  |       t        j                  |j
                  t         j                        }t        j                  |d
d|       |j                  |       t        j                  |d      \  }}|j                  |       |j                  |       t        j                  |j
                  t         j                        }t        j                  ||d      }|j                  |       |j                  |       t        j                  |j
                  t         j                        }t        j                  |d|      }|j                  |       |j                  |       t        j                  |j
                  t         j                        }t        j                  |j
                  t         j                        }t        j                  ||d|       |j                  |       |j                  |       |D ]  }t        ||        |D ]  }t        ||        y )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  s2   {{7777777779 ;@A 11$tLS[[5==9&&tr:

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

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

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

2

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

2

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

2

2[[5==9]]4::U[[9&&BtR	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        ||       y )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  q    {{7777777779 ;@A ++D+AO,,TQF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        ||       y )Nr   r   r   r   r   r	   r   r   r   s        r3   test_distance_transform_edt4z2TestNdimageMorphology.test_distance_transform_edt4%  r   r5   c                 H    t        j                  d      }t        |dg       y )NF        )r   r   r   )r.   r0   s     r3   test_distance_transform_edt5z2TestNdimageMorphology.test_distance_transform_edt54  s    ,,U3!#t,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                  |j                  t         j                        }t        t              5  t        j                  |dd|       d d d        y # 1 sw Y   y xY w)Nr   r   r   rA   TF)r   rE   rC   )	r*   r+   rK   rL   rM   ra   rb   r   r,   )r.   r/   distances_outs      r3   test_distance_transform_edt6z2TestNdimageMorphology.test_distance_transform_edt69  s    {{7777777779 : DJJemmD<( 	))#!&'		 	 	s   /BBc                 H    t        j                  dd      }t        |d       y )Nr   r	   r   generate_binary_structurer   r.   structs     r3   test_generate_structure01z/TestNdimageMorphology.test_generate_structure01M  s    221a8!&!,r5   c                 L    t        j                  dd      }t        |g d       y )Nr	   r	   r	   r	   r   r   s     r3   test_generate_structure02z/TestNdimageMorphology.test_generate_structure02Q  s    221a8!&)4r5   c                 Z    t        j                  dd      }t        |g dg dg dg       y )Nr   r	   r   r	   r   r   r   r   s     r3   test_generate_structure03z/TestNdimageMorphology.test_generate_structure03U  +    221a8!&9+4+4+6 	7r5   c                 Z    t        j                  dd      }t        |g dg dg dg       y )Nr   r   r   r   s     r3   test_generate_structure04z/TestNdimageMorphology.test_generate_structure04[  r   r5   c           	      |    g dg dg dg}t        j                  |d      }t        |g dg dg dg dg dg       y )Nr   r   r   r   r   r	   r   r   r   r	   r	   r	   r   r	   r	   r	   r	   r	   r   iterate_structurer   r.   r   r0   s      r3   test_iterate_structure01z.TestNdimageMorphology.test_iterate_structure01a  sC     ''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       y )Nr   r	   r   )r   r   r	   r   r	   r	   r   r   r   s      r3   test_iterate_structure02z.TestNdimageMorphology.test_iterate_structure02l  sO    a&a&a& ''2!#	(1(1(1(1	(3 	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       y )	Nr   r   r   r	   r   r   r   r   )r   r   r   r   )r.   r   r0   r2   s       r3   test_iterate_structure03z.TestNdimageMorphology.test_iterate_structure03w  s`     ''15#####	%
 	"#a&(3SVaV$r5   c                 r    t        j                  g |      }t        j                  |      }t	        |d       y Nr	   r*   ry   r   binary_erosionr   r.   r   r/   r0   s       r3   test_binary_erosion01z+TestNdimageMorphology.test_binary_erosion01  s,    zz"e$$$T*!#q)r5   c                 v    t        j                  g |      }t        j                  |d      }t	        |d       y Nr	   border_valuer   r   s       r3   test_binary_erosion02z+TestNdimageMorphology.test_binary_erosion02  s.    zz"e$$$T:!#q)r5   c                 v    t        j                  dg|      }t        j                  |      }t	        |dg       y Nr	   r   r   r   s       r3   test_binary_erosion03z+TestNdimageMorphology.test_binary_erosion03  s0    zz1#u%$$T*!#s+r5   c                 z    t        j                  dg|      }t        j                  |d      }t	        |dg       y r   r   r   s       r3   test_binary_erosion04z+TestNdimageMorphology.test_binary_erosion04  s2    zz1#u%$$T:!#s+r5   c                 x    t        j                  dg|      }t        j                  |      }t	        |g d       y )Nr   r   r   r   s       r3   test_binary_erosion05z+TestNdimageMorphology.test_binary_erosion05  s.    zz1#u%$$T*!#y1r5   c                 |    t        j                  dg|      }t        j                  |d      }t	        |g d       y Nr   r	   r   r   r   r   s       r3   test_binary_erosion06z+TestNdimageMorphology.test_binary_erosion06  s0    zz1#u%$$T:!#y1r5   c                 x    t        j                  dg|      }t        j                  |      }t	        |g d       y )Nr    r   r   r   s       r3   test_binary_erosion07z+TestNdimageMorphology.test_binary_erosion07  s.    zz1#u%$$T*!#7r5   c                 |    t        j                  dg|      }t        j                  |d      }t	        |g d       y )Nr    r	   r   r   r   r   s       r3   test_binary_erosion08z+TestNdimageMorphology.test_binary_erosion08  s0    zz1#u%$$T:!#7r5   c                     t        j                  dg|      }d|d<   t        j                  |      }t	        |g d       y )Nr    r   r   r   r   r   r   r   r   r   s       r3   test_binary_erosion09z+TestNdimageMorphology.test_binary_erosion09  s7    zz1#u%Q$$T*!#7r5   c                     t        j                  dg|      }d|d<   t        j                  |d      }t	        |g d       y )Nr    r   r   r	   r   )r	   r   r   r   r	   r   r   s       r3   test_binary_erosion10z+TestNdimageMorphology.test_binary_erosion10  s9    zz1#u%Q$$T:!#7r5   c                     t        j                  dg|      }d|d<   g d}t        j                  ||d      }t	        |g d       y )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  s@    zz1#u%Q$$T6B!#7r5   c                     t        j                  dg|      }d|d<   g d}t        j                  ||dd      }t	        |g d       y )	Nr    r   r   r   r	   r   originr   r	   r   r	   r	   r   r   s        r3   test_binary_erosion12z+TestNdimageMorphology.test_binary_erosion12  sB    zz1#u%Q$$T6"M!#7r5   c                     t        j                  dg|      }d|d<   g d}t        j                  ||dd      }t	        |g d       y )Nr    r   r   r   r	   r   r	   r	   r   r	   r   r   r   s        r3   test_binary_erosion13z+TestNdimageMorphology.test_binary_erosion13  sB    zz1#u%Q$$T6!L!#7r5   c                     t        j                  dg|      }d|d<   ddg}t        j                  ||d      }t	        |g d       y )Nr    r   r   r	   r   )r	   r	   r   r   r	   r   r   s        r3   test_binary_erosion14z+TestNdimageMorphology.test_binary_erosion14  sD    zz1#u%QQ$$T6B!#7r5   c                     t        j                  dg|      }d|d<   ddg}t        j                  ||dd      }t	        |g d       y )Nr    r   r   r	   r   r   )r	   r   r   r	   r	   r   r   s        r3   test_binary_erosion15z+TestNdimageMorphology.test_binary_erosion15  sF    zz1#u%QQ$$T6"M!#7r5   c                 ~    t        j                  ddg|      }t        j                  |d      }t	        |dgg       y r   r   r   s       r3   test_binary_erosion16z+TestNdimageMorphology.test_binary_erosion16  s6    zz1a&%($$T:!#u-r5   c                 z    t        j                  ddg|      }t        j                  |      }t	        |dgg       y r   r   r   s       r3   test_binary_erosion17z+TestNdimageMorphology.test_binary_erosion17  s4    zz1a&%($$T*!#u-r5   c                 |    t        j                  ddg|      }t        j                  |      }t	        |g dg       y )Nr	   r   r   r   r   r   r   s       r3   test_binary_erosion18z+TestNdimageMorphology.test_binary_erosion18  s2    zz1a&%($$T*!#	{3r5   c                     t        j                  ddg|      }t        j                  |d      }t	        |g dg       y )Nr	   r   r   r   r   r   s       r3   test_binary_erosion19z+TestNdimageMorphology.test_binary_erosion19  s4    zz1a&%($$T:!#	{3r5   c                     t        j                  ddg|      }t        j                  |      }t	        |g dg dg dg       y )Nr   r   r   r   r   s       r3   test_binary_erosion20z+TestNdimageMorphology.test_binary_erosion20  s=    zz1a&%($$T*!#	(1(1(3 	4r5   c                     t        j                  ddg|      }t        j                  |d      }t	        |g dg dg dg       y r   r   r   s       r3   test_binary_erosion21z+TestNdimageMorphology.test_binary_erosion21
  s?    zz1a&%($$T:!#	(1(1(3 	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	        ||       y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r	   r   r   r   r   r   r	   r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r   r	   r	   r	   r	   r	   r	   r   r   r	   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r	   r   r   r	   r	   r   r   r	   r	   r   r	   r   r*   r+   r   r   r   r.   r   r2   r/   r0   s        r3   test_binary_erosion22z+TestNdimageMorphology.test_binary_erosion22  sq    ,,,,,,,,. {{444444446 8=> $$T:!#x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        ||       y )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    221a8,,,,,,,,. {{444444446 8=> $$T6B!#x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	        ||       y )Nr   r	   r   r   r   r   r   r	   r	   r	   r   r   r   )r   r   r	   r   r   r   r	   r   r   r   r   r   r   r   r   s         r3   test_binary_erosion24z+TestNdimageMorphology.test_binary_erosion24=  s    a&a&,,,,,,,,. {{444444446 8=> $$T6B!#x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	        ||       y )Nr   r   r   r   )r   r   r   r	   r   r   r   r   r   r   r   r   r   r	   r	   r	   r   r	   r	   r   r   r	   r   r	   r	   r   r   r   r	   r   r	   r	   r	   r	   r   r   r	   r   r   r   s         r3   test_binary_erosion25z+TestNdimageMorphology.test_binary_erosion25T  s     -,,,,,,,. {{444444446 8=> $$T6B!#x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	        ||       y )Nr   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r	   r   r   r	   r   r   r	   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r   r   r  r  r  r   r	   r   r   r   r   r   s         r3   test_binary_erosion26z+TestNdimageMorphology.test_binary_erosion26l  s     -,,,,,,,. {{444444446 8=> $$T6,46!#x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        ||       y 
Nr   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r   r	   r   r   
iterationsr*   r+   boolr   r   r   r.   r   r2   r/   r0   s        r3   test_binary_erosion27z+TestNdimageMorphology.test_binary_erosion27  s     *))))))+ {{11111113 59: $$T6013!#x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        ||       y )
Nr   r   r  r  r  r  r	   r   r   r  outputr*   r+   r  rK   rL   r   r   r   r  s        r3   test_binary_erosion28z+TestNdimageMorphology.test_binary_erosion28  s     *))))))+ {{11111113 59: kk$**d+tV!*+C	9!#x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        ||       y )Nr   r   r  r  r  r  r	   r	   r	   r	   r	   r	   r	   r	   r   r  r  r  s        r3   test_binary_erosion29z+TestNdimageMorphology.test_binary_erosion29       *))))))+ {{11111113 59: $$T623C!#x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        ||       y )Nr   r   r  r  r  r  r#  r	   r   r  r   r  s        r3   test_binary_erosion30z+TestNdimageMorphology.test_binary_erosion30  s     *))))))+ {{11111113 59: kk$**d+tV!*+C	9!#x0 	tV!*+D	:!$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        ||       y )Nr   r   r   r   r	   r   r   r   r   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r   r	   r  r   r   r	   r   r   r   r	   r  r  r  r#  r	   r  )r   r  r  r   r   r  s        r3   test_binary_erosion31z+TestNdimageMorphology.test_binary_erosion31  s     *))))))+ {{11111113 59: kk$**d+tV!*+C	J!#x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        ||       y 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        ||       y )Nr   r   )r   r   r   r   r   r	   r	   r   r   r   r   r   r   r	   r  )r	   r	   r	   r	   r	   r   r   r	   r	   r	   r	   r	   r	   r   r#  )r   r   r   r	   r   r   r	   r  r  r	   r   )r   maskr  r  r.   r   r2   r3  r/   r0   s         r3   test_binary_erosion33z+TestNdimageMorphology.test_binary_erosion33  s     *))))))+ &%%%%%%' {{11111113 59: $$T623$2O!#x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        ||       y )
Nr   r   r  r  r  r  r   r   r	   r   r	   r   r   r	   )r   r3  r  r4  s         r3   test_binary_erosion34z+TestNdimageMorphology.test_binary_erosion34.  s     *))))))+ &%%%%%%' {{11111113 59: $$T623$@!#x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        ||       y )Nr   r   r  r  r7  r  r  r#  r)  r*  r+  r,  r	   r  )r   r  r  r   r3  )r*   r+   r  logical_andlogical_not
logical_orrK   rL   r   r   r   )r.   r   r3  r/   tmpr2   r0   s          r3   test_binary_erosion35z+TestNdimageMorphology.test_binary_erosion35K  s     &%%%%%%' {{11111113 59: %$$$$$$& $$S$/e&7&7&=>##Hc2kk$**d+tV!*+C&.T	; 	"#x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        ||       y )Nr   r   r   r   r   r	   r	   r	   r   r   r   )r   r   r	   r   r	   r   r   r   r  r  r  r  r   r   r  r  r  r   r	   r  )r3  r   r   )r*   r+   r:  r;  r<  r   r   r   )r.   r   r3  r=  r/   r2   r0   s          r3   test_binary_erosion36z+TestNdimageMorphology.test_binary_erosion36m  s     )(((((((* (''''''') {{444444446 7 $$S$/e&7&7&=>##Hc2$$T623HF!#x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      |       y )Nr   r   rA   r   T)	structurer  r  r   brute_force)rC  r  r   )r*   r+   r  
zeros_liker   r   r   r   )r.   abr0   s       r3   test_binary_erosion37z+TestNdimageMorphology.test_binary_erosion37  s~    KK""$+/1 Q$$Q!A!26DJq""1a046	r5   c                     t        j                  g dg dg dgt              }d}t        t              5  t        j                  ||      }d d d        y # 1 sw Y   y xY w)Nr   r   rA   g       @r  )r*   r+   r  ra   	TypeErrorr   r   )r.   r/   r  _s       r3   test_binary_erosion38z+TestNdimageMorphology.test_binary_erosion38  sZ    {{I$$&-13 
9% 	D&&t
CA	D 	D 	Ds   AA c           
      d   t        j                  d      }g dg dg dg}g dg dg dg dg dg dg dg}t        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        ||       y Nr   r   r   r  r  r  r  r#  r	   r  )	r*   rO   r+   r  rK   rL   r   r   r   r.   r  r   r2   r/   r0   s         r3   test_binary_erosion39z+TestNdimageMorphology.test_binary_erosion39      [[^
 *))))))+ {{11111113 59: kk$**d+tV!*4S	B!#x0r5   c           
      d   t        j                  d      }g dg dg dg}g dg dg dg dg dg dg dg}t        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        ||       y rO  )	r*   int64r+   r  rK   rL   r   r   r   rP  s         r3   test_binary_erosion40z+TestNdimageMorphology.test_binary_erosion40  rR  r5   c                 r    t        j                  g |      }t        j                  |      }t	        |d       y r   r*   ry   r   binary_dilationr   r   s       r3   test_binary_dilation01z,TestNdimageMorphology.test_binary_dilation01  s,    zz"e$%%d+!#q)r5   c                 r    t        j                  g |      }t        j                  |      }t	        |d       y )Nr   r*   rK   r   rX  r   r   s       r3   test_binary_dilation02z,TestNdimageMorphology.test_binary_dilation02  s,    {{2u%%%d+!#q)r5   c                 v    t        j                  dg|      }t        j                  |      }t	        |dg       y r   rW  r   s       r3   test_binary_dilation03z,TestNdimageMorphology.test_binary_dilation03  s0    zz1#u%%%d+!#s+r5   c                 v    t        j                  dg|      }t        j                  |      }t	        |dg       y r   r[  r   s       r3   test_binary_dilation04z,TestNdimageMorphology.test_binary_dilation04  s0    {{A3&%%d+!#s+r5   c                 x    t        j                  dg|      }t        j                  |      }t	        |g d       y Nr   r   rW  r   s       r3   test_binary_dilation05z,TestNdimageMorphology.test_binary_dilation05  s.    zz1#u%%%d+!#y1r5   c                 x    t        j                  dg|      }t        j                  |      }t	        |g d       y )Nr   r   r[  r   s       r3   test_binary_dilation06z,TestNdimageMorphology.test_binary_dilation06  s.    {{A3&%%d+!#y1r5   c                     t        j                  dg|      }d|d<   t        j                  |      }t	        |g d       y )Nr   r	   r   r[  r   s       r3   test_binary_dilation07z,TestNdimageMorphology.test_binary_dilation07  s7    {{A3&Q%%d+!#y1r5   c                     t        j                  dg|      }d|d<   d|d<   t        j                  |      }t	        |g d       y )Nr    r	   r   r   r[  r   s       r3   test_binary_dilation08z,TestNdimageMorphology.test_binary_dilation08   s@    {{A3&QQ%%d+!#7r5   c                     t        j                  dg|      }d|d<   t        j                  |      }t	        |g d       y )Nr    r	   r	   r	   r	   r   r   r[  r   s       r3   test_binary_dilation09z,TestNdimageMorphology.test_binary_dilation09  s7    {{A3&Q%%d+!#7r5   c                     t        j                  dg|      }d|d<   t        j                  |d      }t	        |g d       y )Nr    r	   r   r   r   r[  r   s       r3   test_binary_dilation10z,TestNdimageMorphology.test_binary_dilation10  s9    {{A3&Q%%d26!#7r5   c                     t        j                  dg|      }d|d<   t        j                  |d      }t	        |g d       y )Nr    r	   rn  r	   r	   r   r   r   r[  r   s       r3   test_binary_dilation11z,TestNdimageMorphology.test_binary_dilation11  s9    {{A3&Q%%d15!#7r5   c                     t        j                  dg|      }d|d<   g d}t        j                  ||      }t	        |g d       y )Nr    r	   r   )r	   r   r	   r   r   r[  r   s        r3   test_binary_dilation12z,TestNdimageMorphology.test_binary_dilation12  s>    {{A3&Q%%dF3!#7r5   c                     t        j                  dg|      }d|d<   g d}t        j                  ||d      }t	        |g d       y )Nr    r	   r   r   r   r[  r   s        r3   test_binary_dilation13z,TestNdimageMorphology.test_binary_dilation13%  s@    {{A3&Q%%dFC!#7r5   c                     t        j                  dg|      }d|d<   g d}t        j                  ||d      }t	        |g d       y )Nr    r	   r   r   rn  )r   r	   r   r	   r   r[  r   s        r3   test_binary_dilation14z,TestNdimageMorphology.test_binary_dilation14-  s@    {{A3&Q%%dF2>!#7r5   c                     t        j                  dg|      }d|d<   g d}t        j                  ||dd      }t	        |g d       y )Nr    r	   r   r   r   r   r   r[  r   s        r3   test_binary_dilation15z,TestNdimageMorphology.test_binary_dilation155  sF    {{A3&Q%%dF-/aA!#7r5   c                 z    t        j                  ddg|      }t        j                  |      }t	        |dgg       y r   rW  r   s       r3   test_binary_dilation16z,TestNdimageMorphology.test_binary_dilation16>  s4    zz1a&%(%%d+!#u-r5   c                 z    t        j                  ddg|      }t        j                  |      }t	        |dgg       y r   r[  r   s       r3   test_binary_dilation17z,TestNdimageMorphology.test_binary_dilation17D  s4    {{Aq65)%%d+!#u-r5   c                 |    t        j                  ddg|      }t        j                  |      }t	        |g dg       y )Nr	   r   r   rW  r   s       r3   test_binary_dilation18z,TestNdimageMorphology.test_binary_dilation18J  s2    zz1a&%(%%d+!#	{3r5   c                     t        j                  ddg|      }t        j                  |      }t	        |g dg dg dg       y rb  rW  r   s       r3   test_binary_dilation19z,TestNdimageMorphology.test_binary_dilation19P  s=    zz1a&%(%%d+!#	(1(1(3 	4r5   c                     t        j                  ddg|      }d|d<   t        j                  |      }t	        |g dg dg dg       y )Nr   r	   r	   r	   r   r   r[  r   s       r3   test_binary_dilation20z,TestNdimageMorphology.test_binary_dilation20X  sF    {{Aq65)T
%%d+!#	(1(1(3 	4r5   c                     t        j                  dd      }t        j                  ddg|      }d|d<   t        j                  ||      }t        |g dg dg dg       y )Nr   r   r	   r  r   )r   r   r*   rK   rX  r   )r.   r   r   r/   r0   s        r3   test_binary_dilation21z,TestNdimageMorphology.test_binary_dilation21a  sZ    221a8{{Aq65)T
%%dF3!#	(1(1(3 	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	        ||       y )Nr   r	   r	   r	   r   r   r   r   r   r   r	   r   r   r   r	   r   r   r   r   r   r	   r	   r	   r	   r   r   r   r   r   r   r   r*   r+   r   rX  r   r   s        r3   test_binary_dilation22z,TestNdimageMorphology.test_binary_dilation22k  so    ,,,,,,,,. {{444444446 8=> %%d+!#x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	        ||       y )Nr	   r	   r	   r	   r	   r	   r	   r	   )r	   r	   r	   r   r   r   r   r	   )r	   r	   r   r   r   r	   r   r	   )r	   r   r   r	   r	   r	   r	   r	   )r	   r   r	   r	   r	   r	   r   r	   )r	   r   r	   r   r   r	   r   r	   r   r   r   r   r   r	   r   r  r   s        r3   test_binary_dilation23z,TestNdimageMorphology.test_binary_dilation23  sq    ,,,,,,,,. {{444444446 8=> %%d;!#x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	        ||       y )Nr	   r	   r   r   r   r   r   r   )r	   r   r   r   r	   r   r   r   r   )r   r	   r	   r	   r	   r   r   r   )r	   r	   r	   r	   r	   r	   r   r   r  r   r   r   r   r   r  rn  r  r   s        r3   test_binary_dilation24z,TestNdimageMorphology.test_binary_dilation24  sq    ,,,,,,,,. {{444444446 8=> %%d6:!#x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	        ||       y )Nr	   r	   r   r   r   r   r	   r	   r	   r   r   r   r	   r   r	   r	   r   r   r	   r	   r	   r	   r   r	   r	   r  r   r	   r   r   r	   r   r	   r	   r   r   r   r   r   r  r	   rz  r  r   s        r3   test_binary_dilation25z,TestNdimageMorphology.test_binary_dilation25  ss    ,,,,,,,,. {{444444446 8=> %%d6J!#x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        ||       y )Nr   r  )r	   r	   r	   r   r	   r	   r	   r   r   r   r	   r	   r	   r	   r	   r   r   r   r   r   r   r   )r   r   r*   r+   rX  r   r   s         r3   test_binary_dilation26z,TestNdimageMorphology.test_binary_dilation26  s    221a8,,,,,,,,. {{444444446 8=> %%dF3!#x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	        ||       y )Nr   r	   r   r  r   r  r   r   r	   r	   r   r	   r	   r   r   r   r   r   r  r   s         r3   test_binary_dilation27z,TestNdimageMorphology.test_binary_dilation27  s    a&a&,,,,,,,,. {{444444446 8=> %%dF3!#x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	        ||       y )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  sX        " {{L(((* ,12 %%d;!#x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        ||       y )	Nr   r	   r   r   r   r   r	   r   r   r   r	   r	   r   r   r   rJ  r*   r+   r  r   rX  r   r  s        r3   test_binary_dilation29z,TestNdimageMorphology.test_binary_dilation29  u    a&a&#####	% {{O++++	- /3	4
 %%dFqA!#x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        ||       y )	Nr   r	   r   r  r  r   r   r  r  r*   r+   r  rK   rL   r   rX  r   r  s        r3   test_binary_dilation30z,TestNdimageMorphology.test_binary_dilation30
      a&a&#####	% {{O++++	- /3	4
 kk$**d+f3G!#x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        ||       y )
Nr   r	   r  r  r   r	   r	   r	   r	   r   r   r   rJ  r  r  s        r3   test_binary_dilation31z,TestNdimageMorphology.test_binary_dilation31  r  r5   c                    ddgddgg}g dg dg dg dg dg}t        j                  g dg dg dg dg dgt              }t        j                  |j                  t              }t        j                  ||d|	       t        ||       y )
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        ||       y )Nr   r   r   r   r   r   r   r   r	   r	   r   r   r@  r  r   r   r   r   r   r   r	   r   r   r   r  r3  r   r  r4  s         r3   test_binary_dilation33z,TestNdimageMorphology.test_binary_dilation33?  s     ;; 8 8 8 8 8 8 8 8 : <@A {{444444446 8<= {{444444446 8<= %%dFr+/aA!#x0r5   c                 F   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        ||       y )Nr   r   r   r   r	   r	   r   r   r   r   r   r  r   r   r   r   r   r	   r  r  r4  s         r3   test_binary_dilation34z,TestNdimageMorphology.test_binary_dilation34`  s     -,,,,,,,. {{444444446 8<= {{4::t,%%dFr+/aA!#x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        ||       y )Nr  r  r   r  r  r  r   r   r   r   r   r   r  r	   )r3  r   r   )r*   r+   r:  r;  r<  r   rX  r   )r.   r   r=  r/   r3  r2   r0   s          r3   test_binary_dilation35z,TestNdimageMorphology.test_binary_dilation35y  s   '''''''') {{444444446 7 )(((((((* $$S$/e&7&7&=>##Hc2{{444444446 8=> %%d-3!E!#x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        ||       y )Nr   r   r   r   r  r@  r  r  r   r3  r   )r*   r+   r  r   binary_propagationr   r4  s         r3   test_binary_propagation01z/TestNdimageMorphology.test_binary_propagation01  s     ;; 8 8 8 8 8 8 8 8 : <@A {{444444446 8<= {{444444446 8<= ((v.2D!#x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
      }t        ||       y )Nr   r   r   r  r  r   r   r   r   r	   r  )r*   r+   r  rK   rL   r   r  r   r4  s         r3   test_binary_propagation02z/TestNdimageMorphology.test_binary_propagation02  s     -,,,,,,,. {{444444446 8<= {{4::t,((v.2D!#x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	        ||       y )
Nr   r  r  r   r   r   r   r	   r	   r	   r   r   r   r   r  r   r   r	   r	   r   r	   r   r   )r*   r+   r   binary_openingr   r   s        r3   test_binary_opening01z+TestNdimageMorphology.test_binary_opening01  o    ,,,,,,,,. {{444444446 8=> $$T*!#x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        ||       y )	Nr   r  r   )r   r	   r	   r	   r   r   r   r   r	   r	   r	   r	   r	   r	   r	   r   r  r   r	   r	   r	   r   r	   r	   r   r   )r   r   r*   r+   r  r   r   s         r3   test_binary_opening02z+TestNdimageMorphology.test_binary_opening02      221a8,,,,,,,,. {{444444446 8=> $$T62!#x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	        ||       y )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        ||       y )	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        ||       y )Nr   r   r   r*   r+   r  r   binary_fill_holesr   r.   r2   r/   r0   s       r3   test_binary_fill_holes01z.TestNdimageMorphology.test_binary_fill_holes012  |    ;; 8 8 8 8 8 8 8 : <@A {{44444446 8<= ''-!#x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        ||       y )Nr   r   r   r   r  r  s       r3   test_binary_fill_holes02z.TestNdimageMorphology.test_binary_fill_holes02D  r  r5   c           
         t        j                  g dg dg dg dg dg dg dgt              }t        j                  g dg dg dg dg dg dg dgt              }t        j                  |      }t        ||       y )Nr   r  )r   r	   r	   r	   r   r	   r	   r	   )r   r   r	   r   r   r	   r	   r	   )r   r	   r   r	   r   r	   r	   r	   )r   r	   r   r	   r   r	   r   r	   r  r  s       r3   test_binary_fill_holes03z.TestNdimageMorphology.test_binary_fill_holes03V  r  r5   c                     t        j                  g dg dg dg      }g dg dg}t        j                  ||      }t	        g dg dg d	g|       y )
Nr   r   r    r	   r   r!   r   r^   r   r    r    r   r   r!   r	   r   r	   r	   r   	footprintr   r   r	   r	   r	   r   r   r	   r   r	   r    r    r   r   r	   r*   r+   r   grey_erosionr   r.   r+   r  r  s       r3   test_grey_erosion01z)TestNdimageMorphology.test_grey_erosion01h  sS    _,,. / 	*	%%ey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|       y )
Nr  r  r  r   r  )r  r  r  r  r  r  )r.   r+   r  s      r3   test_grey_erosion01_overlapz1TestNdimageMorphology.test_grey_erosion01_overlapr  sS    _,,. / 	*	Ui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|       y )Nr  r  r  r   r  r   r  rC  r  r  r  r  r.   r+   r  rC  r  s        r3   test_grey_erosion02z)TestNdimageMorphology.test_grey_erosion02|  b    _,,. / 	*		*	%%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|       y )Nr  r  r  r   r  r   r  rq  )r	   r   r   r   r   )r   r   r   r   r   r  r  s        r3   test_grey_erosion03z)TestNdimageMorphology.test_grey_erosion03  r  r5   c                     t        j                  g dg dg dg      }g dg dg}t        j                  ||      }t	        g dg dg d	g|       y )
Nr  r  r  r   r   r  r!   r!   r^   r^   r    r!   r^   r   r^   r!   r   r   r   r!   r!   r*   r+   r   grey_dilationr   r  s       r3   test_grey_dilation01z*TestNdimageMorphology.test_grey_dilation01  sS    _,,. / 	*	&&u	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|       y )Nr  r  r  r   r   r   r  r  r  r  r  r  s        r3   test_grey_dilation02z*TestNdimageMorphology.test_grey_dilation02  sb    _,,. / 	*		*	&&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|       y )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  sc    _,,. / 	*		*	&&u	1:<!#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        ||       y 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  si    _,,. / 	*	""5I>((	B%%eyA!(F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        ||       y Nr  r  r  r   r  r   r  r  r.   r+   r  rC  r=  r2   r  s          r3   test_grey_opening02z)TestNdimageMorphology.test_grey_opening02  s    _,,. / 	*		*	""5I-68((	3<>%%ey09;!(F3r5   c                     t        j                  g dg dg dg      }g dg dg}t        j                  ||      }t        j                  ||      }t        j
                  ||      }t        ||       y r  r*   r+   r   r  r  grey_closingr   r  s         r3   test_grey_closing01z)TestNdimageMorphology.test_grey_closing01  si    _,,. / 	*	##EY?''yA%%eyA!(F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        ||       y r  r  r  s          r3   test_grey_closing02z)TestNdimageMorphology.test_grey_closing02  s    _,,. / 	*		*	##EY.79''y2;=%%ey09;!(F3r5   c                 h   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        ||       y 	Nr  r  r  r   r  r   r  r  rC  r  )
r*   r+   r   r  r  rK   rL   r   morphological_gradientr   r.   r+   r  rC  tmp1tmp2r2   r  s           r3   test_morphological_gradient01z3TestNdimageMorphology.test_morphological_gradient01  s    _,,. / 	*		*	$$Ui/8:##EY.79$;U[[%++6&&u	1:6	K!(F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        ||       y r  )r*   r+   r   r  r  r  r   r  s           r3   test_morphological_gradient02z3TestNdimageMorphology.test_morphological_gradient02  s    _,,. / 	*		*	$$Ui/8:##EY.79$;//:CE!(F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   d|z  z
  }t        j
                  |j                  |j                        }t        j                  ||||	       t        ||       y )
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    _,,. / 	*		*	$$Ui/8:##EY.79$;U*U[[%++6%%ey09&	J!(F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        ||       y )	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    _,,. / 	*		*	$$Ui/8:##EY.79$;U*..u	9BD!(F3r5   c                 8   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        ||       y r  )	r*   r+   r   r  rK   rL   r   white_tophatr   r  s          r3   test_white_tophat01z)TestNdimageMorphology.test_white_tophat01$  s    _,,. / 	*		*	""5I-683;U[[%++6Ui'0	A!(F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        ||       y r  )r*   r+   r   r  r   r   r  s          r3   test_white_tophat02z)TestNdimageMorphology.test_white_tophat022  st    _,,. / 	*		*	""5I-683;%%ey09;!(F3r5   c           
      |   t        j                  g dg dg dg dg dg dg dgt         j                        }t        j                  dt         j                        }t        j                  g dg dg dg d	g d
g d	g dgt         j                        }t	        j
                  ||      }t        ||       y )Nr	   r   r   r   r   r   r   r  r   r	   r	   r	   r   r	   r   r1  rA   ru   )r   r	   r	   r   r   r   r   )r	   r   r   r	   r	   r	   r   )r   r	   r	   r   r   r   r	   )r   r	   r	   r   r	   r   r	   )r   r   r   r	   r	   r	   r	   rC  )r*   r+   bool_ry   r   r   r   r.   r+   rC  r2   r  s        r3   test_white_tophat03z)TestNdimageMorphology.test_white_tophat03?      22222224 <A;;H JJvU[[9	;; 5 5 5 5 5 5 5 7 ?DkkK %%eyA8V,r5   c                    t        j                  dt         j                        }t        j                  dt         j                        }t        j                  |t         j
                        }t        j                  |||       y Nr    rA   ru   )rC  r  )r*   eyer(  ry   
empty_likerM   r   r   r.   r+   rC  r  s       r3   test_white_tophat04z)TestNdimageMorphology.test_white_tophat04S  T    		!5;;/JJvU[[9	 !!%u}}=UiGr5   c                 8   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        ||       y r  )	r*   r+   r   r  rK   rL   r   black_tophatr   r  s          r3   test_black_tophat01z)TestNdimageMorphology.test_black_tophat01[  s    _,,. / 	*		*	""5I-68;U[[%++6Ui'0	A!(F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        ||       y r  )r*   r+   r   r  r4  r   r  s          r3   test_black_tophat02z)TestNdimageMorphology.test_black_tophat02i  st    _,,. / 	*		*	""5I-68;%%ey09;!(F3r5   c           
      |   t        j                  g dg dg dg dg dg dg dgt         j                        }t        j                  dt         j                        }t        j                  g dg dg dg dg d	g dg d
gt         j                        }t	        j
                  ||      }t        ||       y )Nr%  r  r&  r1  rA   ru   )r   r	   r	   r	   r	   r	   r	   )r	   r   r   r   r   r   r	   )r	   r   r   r   r	   r   r	   r2  r'  )r*   r+   r(  ry   r   r4  r   r)  s        r3   test_black_tophat03z)TestNdimageMorphology.test_black_tophat03v  r+  r5   c                    t        j                  dt         j                        }t        j                  dt         j                        }t        j                  |t         j
                        }t        j                  |||       y r-  )r*   r.  r(  ry   r/  rM   r   r4  r0  s       r3   test_black_tophat04z)TestNdimageMorphology.test_black_tophat04  r2  r5   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                  |j                  t              }t        j                  |||
       t        ||       y )Nr   r   r   )r   r	   r   r   r   rk  r   )r   r   r	   r	   r	   r   )r   r	   r	   r	   r	   r  )r*   r+   rK   rL   r  r   binary_hit_or_missr   r   s         r3   test_hit_or_miss01z(TestNdimageMorphology.test_hit_or_miss01  s     $#######% {{O+++++++- /45 kk$**d+""4<!(C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	        ||       y )Nr   r   r   r   r   r	   r   r   r	   r	   r	   r   )r	   r	   r	   r   r   r	   r   r   r  r*   r+   r   r>  r   r   s         r3   test_hit_or_miss02z(TestNdimageMorphology.test_hit_or_miss02  sk     -,,,. {{44446 8=> ((v6!(C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	        ||       y )Nr   r   r   r   r  rA  r  r  r  r  r  r   rB  )r.   r   struct1struct2r2   r/   r0   s          r3   test_hit_or_miss03z(TestNdimageMorphology.test_hit_or_miss03  s      -,,,,,,,. {{444444446 8=> ((w@!(C0r5   N)__name__
__module____qualname__pytestmarkparametrizer
   r4   r:   r?   rV   r\   r_   rc   rk   rm   ro   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r!  r$  r'  r-  r/  r5  r8  r>  rA  rH  rM  rQ  rU  rY  r\  r^  r`  rc  re  rg  ri  rl  ro  rr  rt  rv  rx  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r!  r#  r*  r1  r5  r7  r9  r;  r?  rC  rG   r5   r3   r   r      s5   [[We,*0 -*0X [[We,*0 -*0X [[We,*0 -*0X [[We,./ -./` [[We,)0 -)0V [[We,)0 -)0V  [[We,"0 -"0H [[We,!0 -!0F [[We,./ -./`( [[We,# -# [[We,* -*. [[We,./ -./` [[We,, -, [[We,, -,-
(-577	:	4% [[We,* -*
 [[We,* -*
 [[We,, -,
 [[We,, -,
 [[We,2 -2
 [[We,2 -2
 [[We,8 -8
 [[We,8 -8
 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,. -.
 [[We,. -.
 [[We,4 -4
 [[We,4 -4
 [[We,4 -4 [[We,4 -4 [[We,1 -1( [[We,1 -1* [[We,1 -1, [[We,1 -1. [[We,1 -101,1.1,281.1,1:1: 1D!1FD1010 [[We,* -*
 [[We,* -*
 [[We,, -,
 [[We,, -,
 [[We,2 -2
 [[We,2 -2
 [[We,2 -2 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,8 -8 [[We,. -.
 [[We,. -.
 [[We,4 -4
 [[We,4 -4 [[We,4 -4 [[We,4 -4 [[We,1 -1( [[We,1 -1( [[We,1 -1( [[We,1 -1( [[We,1 -1* [[We,1 -1, [[We,
1 -
11"1$1"1$1B12 [[We,&1 -&1P1B12 [[We,1 -1( [[We,1 -1* [[We,1 -1( [[We,1 -1*1$1$1$=<
=
==
=
=44444 44 444-(H44-(H [[We,1 -10 [[We,1 -1 [[We,1 -1r5   r   c                       e Zd Zd Zd Zd Zy)TestDilateFixc                 H   t        j                  g dg dg dg dg dgt         j                        | _        t        j                  d      | _        t        j                  | j                  | j                        }|j                  t         j                        | _        y )Nr   r  r  rA   ru   r'  )	r*   r+   uint8ry   sq3x3r   rX  view
dilated3x3)r.   rU  s     r3   setup_methodzTestDilateFix.setup_method  sp    [[/"1"1"1"1	"3 ;@++	G
 ZZ'
,,TZZ4::N
$//%++6r5   c                     t        j                  | j                  | j                        }t	        || j
                  dz          y )Nr'  r	   )r   r  r+   rS  r   rU  r.   results     r3   test_dilation_square_structurez,TestDilateFix.test_dilation_square_structure  s/    &&tzzTZZH!&$//A*=>r5   c                 r    t        j                  | j                  d      }t        || j                         y )Nr   )size)r   r  r+   r   rU  rX  s     r3   test_dilation_scalar_sizez'TestDilateFix.test_dilation_scalar_size  s&    &&tzz:!&$//:r5   N)rH  rI  rJ  rV  rZ  r]  rN  r5   r3   rP  rP    s    
7?
;r5   rP  c                       e Zd Zd Zd Zd Zy)TestBinaryOpeningClosingc                 d   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      | _
        y )	Nr    r    rA   Tr	   r   )r   r   ru   r   )r*   rK   r  r+   ry   rS  r   r  
opened_oldr  
closed_old)r.   rF  s     r3   rV  z%TestBinaryOpeningClosing.setup_method  s    KKd+!A#qs($
ZZ'
!00TZZ12D!=!00TZZ12D!=r5   c           
          t        j                  | j                  | j                  dd dd dd      }t	        || j
                         y Nr	   r   F)r   r  r+   rS  r   rb  )r.   
opened_news     r3   test_opening_new_argumentsz3TestBinaryOpeningClosing.test_opening_new_arguments  9    ++DJJ

At,-tQ?
:t7r5   c           
          t        j                  | j                  | j                  dd dd dd      }t	        || j
                         y re  )r   r  r+   rS  r   rc  )r.   
closed_news     r3   test_closing_new_argumentsz3TestBinaryOpeningClosing.test_closing_new_arguments	  rh  r5   N)rH  rI  rJ  rV  rg  rk  rN  r5   r3   r_  r_    s    	=8
8r5   r_  c                      t        j                  dg      } t        t        t        j
                  | d       t        t        t        j
                  | d       y Nr	   g      ?rJ        ?)r*   ry   ra   rK  r   r   r/   s    r3   )test_binary_erosion_noninteger_iterationsrp  	  ;     ::qc?D)W33TcJ)W33TcJr5   c                      t        j                  dg      } t        t        t        j
                  | d       t        t        t        j
                  | d       y rm  )r*   ry   ra   rK  r   rX  ro  s    r3   *test_binary_dilation_noninteger_iterationsrs  	  s;     ::qc?D)W44dsK)W44dsKr5   c                      t        j                  dg      } t        t        t        j
                  | d       t        t        t        j
                  | d       y rm  )r*   ry   ra   rK  r   r  ro  s    r3   )test_binary_opening_noninteger_iterationsru  	  rq  r5   c                      t        j                  dg      } t        t        t        j
                  | d       t        t        t        j
                  | d       y rm  )r*   ry   ra   rK  r   r  ro  s    r3   )test_binary_closing_noninteger_iterationsrw  	  rq  r5   c                      t        j                  dg      } t        j                  | dd      t        j                  | dt	        d            k(  sJ t        j                  | dd      t        j                  | dt	        d            k(  sJ y )Nr	   r   rn  )r  rD  r   )r*   ry   r   r   r  ro  s    r3   ;test_binary_closing_noninteger_brute_force_passes_when_truery  '	  s     ::qc?D!!			S		JK K K !!			S		JK K Kr5   function)r   rX  r  r  r  r    rD  FTc                 .   t         j                  j                  d      }|j                  ddd      j	                  t
              }t        t        |       }|j                         } ||||      }t        ||        |||||       t        ||       y )N{   r   r   d   lowhighr\  )rD  r  )rD  r  r  )
r*   randomRandomStaterandintr   r  getattrr   copyr   )rz  r  rD  rstater/   ndi_func	data_origr2   s           r3   test_binary_input_as_outputr  4	  s     \\%%c*F>>aac>299$?Dw)H 		I+*MHtY' T{z$Ox&r5   c                  8   t         j                  j                  d      } | j                  ddd      j	                  t
              }|j                         }t        j                  |      }t        ||       t        j                  ||       t        ||       y )Nr|  r   r   r}  r~  r=  )
r*   r  r  r  r   r  r  r   r>  r   )r  r/   r  r2   s       r3   'test_binary_hit_or_miss_input_as_outputr  I	  sx    \\%%c*F>>aac>299$?D 		I))$/HtY' tD1x&r5   c                      d} t        j                  t        |       5  t        j                  t        j                  d      d       d d d        y # 1 sw Y   y xY w)Nzinvalid metric provided)matchra  garbagerv   )rK  r   
ValueErrorr   rh   rx   ry   )msgs    r3   *test_distance_transform_cdt_invalid_metricr  W	  sE    
#C	z	- 9&&rwwv.7	99 9 9s   +AA)r*   rx   numpy.testingr   r   r   r   rK  r   ra   scipyr    r
   r   rP  r_  rp  rs  ru  rw  ry  rL  rM  r  r  r  rN  r5   r3   <module>r     s     6 6  *  G#1 G#1TF; ;08 80KLKK
K M 1v.6' 7 /	''9r5   