o
    tBhw                    @   s   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 dZG d	d
 d
ZG dd dZdd Zdd Zdd Zdd Zdd Zejdg dejdddgejdddgdd Zd d! ZdS )"    N)assert_assert_equalassert_array_equalassert_array_almost_equal)raises)ndimage   )typesc                   @   st  e Zd Zejdedd Zejdedd Zejdedd Z	ejdedd	 Z
ejded
d Zejdedd Zdd Zejdedd Zejdedd Zejdedd Zdd Zejdedd Zejdedd Zejdedd Zejdedd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zejded2d3 Zejded4d5 Z ejded6d7 Z!ejded8d9 Z"ejded:d; Z#ejded<d= Z$ejded>d? Z%ejded@dA Z&ejdedBdC Z'ejdedDdE Z(ejdedFdG Z)ejdedHdI Z*ejdedJdK Z+ejdedLdM Z,ejdedNdO Z-ejdedPdQ Z.ejdedRdS Z/ejdedTdU Z0ejdedVdW Z1ejdedXdY Z2ejdedZd[ Z3ejded\d] Z4ejded^d_ Z5ejded`da Z6ejdedbdc Z7ejdeddde Z8dfdg Z9dhdi Z:djdk Z;dldm Z<dndo Z=dpdq Z>drds Z?dtdu Z@dvdw ZAdxdy ZBdzd{ ZCd|d} ZDd~d ZEdd ZFejdedd ZGejdedd ZHejdedd ZIejdedd ZJejdedd ZKejdedd ZLejdedd ZMejdedd ZNejdedd ZOejdedd ZPejdedd ZQejdedd ZRejdedd ZSejdedd ZTejdedd ZUejdedd ZVejdedd ZWejdedd ZXejdedd ZYejdedd ZZejdedd Z[ejdedd Z\ejdedd Z]ejdedd Z^ejdedd Z_ejdedd Z`ejdedd Zaejdedd Zbdd Zcdd Zddd Zedd ZfddÄ Zgddń ZhejdeddǄ ZiddɄ Zjdd˄ Zkejdedd̈́ Zlejdeddτ Zmejdeddф Znejdeddӄ ZoddՄ Zpddׄ Zqddل Zrddۄ Zsdd݄ Ztdd߄ Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d Zdd Zdd Zdd Zejdedd	 Zejded
d Zejdedd ZdS (  TestNdimageMorphologydtypec                 C   s   t g dg dg dg dg dg dg dg dg dg	|}tj|ddd\}}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 )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expected r0   z/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_morphology.pytest_distance_transform_bf01   s`   
	
		z2TestNdimageMorphology.test_distance_transform_bf01c                 C   s  t g dg dg dg dg dg dg dg dg dg	|}tj|ddd\}}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*   r0   r0   r1   test_distance_transform_bf02;   `   
	

		z2TestNdimageMorphology.test_distance_transform_bf02c                 C   s  t g dg dg dg dg dg dg dg dg dg	|}tj|ddd\}}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   r4   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   	r   r   r   r   r   r   r   r   r   	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   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   r0   r1   test_distance_transform_bf03h   r7   z2TestNdimageMorphology.test_distance_transform_bf03c           	      C   s  t g dg dg dg dg dg dg dg dg dg	|}tj|dd\}}g }g }t j|jt jd}tj||d || tj|ddd	}|| t j|jt j	d}tj|dd
|d || tj|dd\}}|| || t j|jt jd}tj||d
d}|| || t j|jt j	d}tj|d
|d}|| || t j|jt jd}t j|jt j	d}tj||d
|d || || |D ]}t
|| q|D ]}t
|| qd S )Nr   r   r   r   r   r   	distancesFreturn_distancesr   Tr@   r   indicesr>   r   r   rB   r>   r   rB   )r'   r(   r   r)   zerosshapefloat64appendrB   int32r   	r+   r   r,   tdttftdtsftsdtr.   r0   r0   r1   test_distance_transform_bf04   p   
	











z2TestNdimageMorphology.test_distance_transform_bf04c                 C   s&  t g dg dg dg dg dg dg dg dg dg	|}tj|ddddgd\}}g dg dg dg d	g d
g d	g dg dg dg	}t|| | g dg dg dg dg dg dg dg dg dg	g dg dg dg dg dg dg dg dg dg	g}t|| d S )Nr   r   r   r   Tr   r   sampling)	r   r   r   r   r   r   r   r   r   )	r   r   r   r      r   r   r   r   )	r   r   r   rU       rU   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r*   r0   r0   r1   test_distance_transform_bf05   `   
	
		z2TestNdimageMorphology.test_distance_transform_bf05c                 C   s&  t g dg dg dg dg dg dg dg dg dg	|}tj|ddddgd\}}g dg dg d	g d
g dg d
g d	g dg dg	}t|| | g dg dg dg dg dg dg dg dg dg	g dg dg dg dg dg dg dg dg dg	g}t|| d S )Nr   r   r   r   Tr   r   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   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r    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   r0   r1   test_distance_transform_bf06   rX   z2TestNdimageMorphology.test_distance_transform_bf06c                 C   s~   t g dg dg dg dg dg dg dg dg dg	}tt tj|ddd W d    d S 1 s8w   Y  d S )Nr   r   r   Fr?   )r'   r(   assert_raisesRuntimeErrorr   r)   )r+   r,   r0   r0   r1   test_distance_transform_bf07  s   

	"z2TestNdimageMorphology.test_distance_transform_bf07c                 C   s   t g dg dg dg dg dg dg dg dg dg	|}tj|ddd\}}t|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   r3   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"   r5   )	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,   r-   r.   bfr/   r0   r0   r1   test_distance_transform_cdt01.  sN   
	

	z3TestNdimageMorphology.test_distance_transform_cdt01c                 C   s   t g dg dg dg dg dg dg dg dg dg	|}tj|ddd\}}t|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   r8   Tr   r   r^   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r_   r    r!   r"   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r:   r9   r`   rb   r0   r0   r1   test_distance_transform_cdt02S  sN   
	

	z3TestNdimageMorphology.test_distance_transform_cdt02c           	      C   s  t g dg dg dg dg dg dg dg dg dg	|}tj|dd\}}g }g }t j|jt jd}tj||d || tj|ddd	}|| t j|jt jd}tj|dd|d
 || tj|dd\}}|| || t j|jt jd}tj||dd}|| || t j|jt jd}tj|d|d}|| || t j|jt jd}t j|jt jd}tj||d|d || || |D ]}t	|| q|D ]}t	|| qd S )Nr   r   r   Tr   r<   r=   Fr?   rA   rC   rD   rE   )
r'   r(   r   ra   rF   rG   rJ   rI   rB   r   rK   r0   r0   r1   test_distance_transform_cdt03w  sp   
	











z3TestNdimageMorphology.test_distance_transform_cdt03c                 C   s   t g dg dg dg dg dg dg dg dg dg	}t j|jf|j t jd}tt tj	|dd|d W d    d S 1 sFw   Y  d S )Nr   r   r   r<   TFrA   )
r'   r(   rF   ndimrG   rJ   r[   r\   r   r)   )r+   r,   indices_outr0   r0   r1   test_distance_transform_cdt04  s&   
	
"z3TestNdimageMorphology.test_distance_transform_cdt04c                 C   s   t g dg dg dg dg dg dg dg dg dg	|}tj|dd\}}t|d}t|| |t j|jdd  |jd }|	t j
}t ||| t jj|d	d
}t || t|| d S )Nr   r   r   Tr   r   r   r<   r   )axis)r'   r(   r   distance_transform_edtr)   r   rB   rG   r   astyperH   multiplyaddreducesqrt)r+   r   r,   r-   r.   rc   rP   r0   r0   r1   test_distance_transform_edt01  s*   
	
z3TestNdimageMorphology.test_distance_transform_edt01c           	      C   s  t g dg dg dg dg dg dg dg dg dg	|}tj|dd\}}g }g }t j|jt jd}tj||d || tj|ddd	}|| t j|jt j	d}tj|d
d|d || tj|dd\}}|| || t j|jt jd}tj||dd}|| || t j|jt j	d}tj|d|d}|| || t j|jt jd}t j|jt j	d}tj||d|d || || |D ]}t
|| q|D ]}t
|| qd S )Nr   r   r   Tr   r<   r=   r   r?   FrA   rC   rD   rE   )r'   r(   r   rk   rF   rG   rH   rI   rB   rJ   r   rK   r0   r0   r1   test_distance_transform_edt02  rR   z3TestNdimageMorphology.test_distance_transform_edt02c                 C   sv   t g dg dg dg dg dg dg dg dg dg	|}tj|dddgd}tj|ddgd}t|| d S )Nr   r   r   r   r   rT   r'   r(   r   r)   rk   r   r+   r   r,   refr-   r0   r0   r1   test_distance_transform_edt03     
	z3TestNdimageMorphology.test_distance_transform_edt03c                 C   sv   t g dg dg dg dg dg dg dg dg dg	|}tj|dddgd}tj|ddgd}t|| d S )Nr   r   r   r   r   r   rs   rt   ru   r0   r0   r1   test_distance_transform_edt4  rx   z2TestNdimageMorphology.test_distance_transform_edt4c                 C   s   t d}t|dg d S )NF        )r   rk   r   )r+   r-   r0   r0   r1   test_distance_transform_edt5#  s   
z2TestNdimageMorphology.test_distance_transform_edt5c                 C   s   t g dg dg dg dg dg dg dg dg dg	}t j|jt jd}tt tj|dd|d W d    d S 1 sBw   Y  d S )Nr   r   r   r<   TF)r   r@   r>   )	r'   r(   rF   rG   rH   r[   r\   r   r)   )r+   r,   distances_outr0   r0   r1   test_distance_transform_edt6(  s&   
	
"z2TestNdimageMorphology.test_distance_transform_edt6c                 C   s   t dd}t|d d S )Nr   r   r   generate_binary_structurer   r+   structr0   r0   r1   test_generate_structure01<  s   z/TestNdimageMorphology.test_generate_structure01c                 C   s   t dd}t|g d d S )Nr   r   r   r   r~   r   r0   r0   r1   test_generate_structure02@  s   z/TestNdimageMorphology.test_generate_structure02c                 C   s,   t dd}t|g dg dg dg d S )Nr   r   r   r   r   r   r~   r   r0   r0   r1   test_generate_structure03D  
   

z/TestNdimageMorphology.test_generate_structure03c                 C   s,   t dd}t|g dg dg dg d S )Nr   r   r~   r   r0   r0   r1   test_generate_structure04J  r   z/TestNdimageMorphology.test_generate_structure04c                 C   sN   g dg dg dg}t |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   r-   r0   r0   r1   test_iterate_structure01P     

z.TestNdimageMorphology.test_iterate_structure01c                 C   sN   ddgddgddgg}t |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   r0   r0   r1   test_iterate_structure02[  r   z.TestNdimageMorphology.test_iterate_structure02c                 C   sj   g dg dg dg}t |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   r-   r/   r0   r0   r1   test_iterate_structure03f  s   z.TestNdimageMorphology.test_iterate_structure03c                 C   $   t g |}t|}t|d d S Nr   r'   onesr   binary_erosionr   r+   r   r,   r-   r0   r0   r1   test_binary_erosion01s     
z+TestNdimageMorphology.test_binary_erosion01c                 C   s(   t g |}tj|dd}t|d d S Nr   border_valuer   r   r0   r0   r1   test_binary_erosion02y  s   z+TestNdimageMorphology.test_binary_erosion02c                 C   (   t dg|}t|}t|dg d S Nr   r   r   r   r0   r0   r1   test_binary_erosion03     
z+TestNdimageMorphology.test_binary_erosion03c                 C   s,   t dg|}tj|dd}t|dg d S r   r   r   r0   r0   r1   test_binary_erosion04  s   z+TestNdimageMorphology.test_binary_erosion04c                 C   *   t dg|}t|}t|g d d S )Nr   r   r   r   r0   r0   r1   test_binary_erosion05     
z+TestNdimageMorphology.test_binary_erosion05c                 C   .   t dg|}tj|dd}t|g d d S Nr   r   r   r   r   r   r0   r0   r1   test_binary_erosion06     z+TestNdimageMorphology.test_binary_erosion06c                 C   r   )Nr   r   r   r   r0   r0   r1   test_binary_erosion07  r   z+TestNdimageMorphology.test_binary_erosion07c                 C   r   )Nr   r   r   r   r   r   r0   r0   r1   test_binary_erosion08  r   z+TestNdimageMorphology.test_binary_erosion08c                 C   s2   t dg|}d|d< t|}t|g d d S )Nr   r   r   r   r   r   r   r   r   r   r0   r0   r1   test_binary_erosion09     
z+TestNdimageMorphology.test_binary_erosion09c                 C   s6   t dg|}d|d< tj|dd}t|g d d S )Nr   r   r   r   r   )r   r   r   r   r   r   r   r0   r0   r1   test_binary_erosion10     z+TestNdimageMorphology.test_binary_erosion10c                 C   s@   t dg|}d|d< g d}tj||dd}t|g d d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r+   r   r,   r   r-   r0   r0   r1   test_binary_erosion11  
   z+TestNdimageMorphology.test_binary_erosion11c                 C   sB   t dg|}d|d< g d}tj||ddd}t|g d d S )	Nr   r   r   r   r   r   originr   r   r   r   r   r   r   r0   r0   r1   test_binary_erosion12  
   z+TestNdimageMorphology.test_binary_erosion12c                 C   sB   t dg|}d|d< g d}tj||ddd}t|g d d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r0   r0   r1   test_binary_erosion13  r   z+TestNdimageMorphology.test_binary_erosion13c                 C   s@   t 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   r0   r0   r1   test_binary_erosion14  r   z+TestNdimageMorphology.test_binary_erosion14c                 C   sB   t dg|}d|d< ddg}tj||ddd}t|g d d S )Nr   r   r   r   r   r   )r   r   r   r   r   r   r   r0   r0   r1   test_binary_erosion15  r   z+TestNdimageMorphology.test_binary_erosion15c                 C   s0   t ddg|}tj|dd}t|dgg d S r   r   r   r0   r0   r1   test_binary_erosion16  s   z+TestNdimageMorphology.test_binary_erosion16c                 C   ,   t ddg|}t|}t|dgg d S r   r   r   r0   r0   r1   test_binary_erosion17     
z+TestNdimageMorphology.test_binary_erosion17c                 C   .   t ddg|}t|}t|g dg d S )Nr   r   r   r   r   r   r   r0   r0   r1   test_binary_erosion18     
z+TestNdimageMorphology.test_binary_erosion18c                 C   s2   t ddg|}tj|dd}t|g dg d S )Nr   r   r   r   r   r   r0   r0   r1   test_binary_erosion19  s   z+TestNdimageMorphology.test_binary_erosion19c                 C   s:   t ddg|}t|}t|g dg dg dg d S )Nr   r   r   r   r   r0   r0   r1   test_binary_erosion20     


z+TestNdimageMorphology.test_binary_erosion20c                 C   s>   t ddg|}tj|dd}t|g dg dg dg d S r   r   r   r0   r0   r1   test_binary_erosion21  s   

z+TestNdimageMorphology.test_binary_erosion21c                 C   s   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|}tj|dd}t|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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   r0   r1   test_binary_erosion22  ,   
z+TestNdimageMorphology.test_binary_erosion22c                 C   s   t d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|}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-   r0   r0   r1   test_binary_erosion23  s.   
z+TestNdimageMorphology.test_binary_erosion23c                 C   s   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 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   r0   r0   r1   test_binary_erosion24,  s2   
z+TestNdimageMorphology.test_binary_erosion24c                 C   s   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 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   r0   r0   r1   test_binary_erosion25C  s4   
z+TestNdimageMorphology.test_binary_erosion25c                 C   s   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 g dg dg d	g d
g dg dg dg dg|}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   r   r   r   r   r0   r0   r1   test_binary_erosion26[  s8   

z+TestNdimageMorphology.test_binary_erosion26c              
   C      g dg dg dg}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}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   
iterationsr'   r(   boolr   r   r   r+   r   r/   r,   r-   r0   r0   r1   test_binary_erosion27t  s4   

z+TestNdimageMorphology.test_binary_erosion27c              
   C   s   g dg dg dg}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}t |jt}tj||dd|d	 t|| d S )
Nr   r   r   r   r   r   r   r   r   r   outputr'   r(   r   rF   rG   r   r   r   r   r0   r0   r1   test_binary_erosion28  s6   

z+TestNdimageMorphology.test_binary_erosion28c              
   C   s   g dg dg dg}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}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   r0   r0   r1   test_binary_erosion29  4   
z+TestNdimageMorphology.test_binary_erosion29c              
   C   s   g dg dg dg}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}t |jt}tj||dd	|d
 t|| tj||dd	|d
 t|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r0   r0   r1   test_binary_erosion30  s>   



z+TestNdimageMorphology.test_binary_erosion30c              
   C   s   g dg dg dg}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}t |jt}tj||d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   r0   r0   r1   test_binary_erosion31  s6   

z+TestNdimageMorphology.test_binary_erosion31c              
   C   r   r   r   r   r0   r0   r1   test_binary_erosion32  r   z+TestNdimageMorphology.test_binary_erosion32c              
   C   s   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 g dg d	g d
g d
g d
g dg dg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   )r   maskr   r   r+   r   r/   r  r,   r-   r0   r0   r1   test_binary_erosion33   sD   
z+TestNdimageMorphology.test_binary_erosion33c              
   C   s   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 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  r0   r0   r1   test_binary_erosion34  sD   
z+TestNdimageMorphology.test_binary_erosion34c              
   C   s  g dg dg dg}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}g d	g d
g dg d
g d	g dg dg}t ||}t |t |}t ||}t |jt}tj	||d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   logical_andlogical_not
logical_orrF   rG   r   r   r   )r+   r   r  r,   tmpr/   r-   r0   r0   r1   test_binary_erosion35:  sN   

z+TestNdimageMorphology.test_binary_erosion35c                 C   s  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 g dg d
g dg dg dg dg dg dg}t ||}t |t |}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+   r   r  r  r,   r/   r-   r0   r0   r1   test_binary_erosion36\  sL   

z+TestNdimageMorphology.test_binary_erosion36c                 C   sh   t jg dg dg dgtd}t |}tj|||dddd}t||u  ttj||ddd| d S )Nr   r   r<   r   T)	structurer   r   r   brute_force)r  r   r   )r'   r(   r   
zeros_liker   r   r   r   )r+   abr-   r0   r0   r1   test_binary_erosion37  s"   


z+TestNdimageMorphology.test_binary_erosion37c                 C   s`   t jg dg dg dgtd}d}tt tj||d}W d    d S 1 s)w   Y  d S )Nr   r   r<   g       @r   )r'   r(   r   r[   	TypeErrorr   r   )r+   r,   r   _r0   r0   r1   test_binary_erosion38  s   

"z+TestNdimageMorphology.test_binary_erosion38c              
   C      t d}g dg dg dg}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}t |jt}tj||d	||d
 t|| d S Nr   r   r   r   r   r   r   r   r   r   )	r'   rJ   r(   r   rF   rG   r   r   r   r+   r   r   r/   r,   r-   r0   r0   r1   test_binary_erosion39  8   


z+TestNdimageMorphology.test_binary_erosion39c              
   C   r  r  )	r'   int64r(   r   rF   rG   r   r   r   r  r0   r0   r1   test_binary_erosion40  r   z+TestNdimageMorphology.test_binary_erosion40c                 C   r   r   r'   r   r   binary_dilationr   r   r0   r0   r1   test_binary_dilation01  r   z,TestNdimageMorphology.test_binary_dilation01c                 C   r   )Nr   r'   rF   r   r$  r   r   r0   r0   r1   test_binary_dilation02  r   z,TestNdimageMorphology.test_binary_dilation02c                 C   s(   t dg|}t|}t|dg d S r   r#  r   r0   r0   r1   test_binary_dilation03  r   z,TestNdimageMorphology.test_binary_dilation03c                 C   r   r   r&  r   r0   r0   r1   test_binary_dilation04  r   z,TestNdimageMorphology.test_binary_dilation04c                 C   r   Nr   r   r#  r   r0   r0   r1   test_binary_dilation05  r   z,TestNdimageMorphology.test_binary_dilation05c                 C   r   )Nr   r   r&  r   r0   r0   r1   test_binary_dilation06  r   z,TestNdimageMorphology.test_binary_dilation06c                 C   2   t dg|}d|d< t|}t|g d d S )Nr   r   r   r&  r   r0   r0   r1   test_binary_dilation07  r   z,TestNdimageMorphology.test_binary_dilation07c                 C   s:   t dg|}d|d< d|d< t|}t|g d d S )Nr   r   r   r   r&  r   r0   r0   r1   test_binary_dilation08  s
   
z,TestNdimageMorphology.test_binary_dilation08c                 C   r-  )Nr   r   r   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation09  r   z,TestNdimageMorphology.test_binary_dilation09c                 C   s6   t dg|}d|d< tj|dd}t|g d d S )Nr   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation10  r   z,TestNdimageMorphology.test_binary_dilation10c                 C   s6   t dg|}d|d< tj|dd}t|g d d S )Nr   r   r2  r   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation11  r   z,TestNdimageMorphology.test_binary_dilation11c                 C   s<   t dg|}d|d< g d}t||}t|g d d S )Nr   r   r   )r   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation12  s
   z,TestNdimageMorphology.test_binary_dilation12c                 C   s@   t dg|}d|d< g d}tj||dd}t|g d d S )Nr   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation13  r   z,TestNdimageMorphology.test_binary_dilation13c                 C   s@   t dg|}d|d< g d}tj||dd}t|g d d S )Nr   r   r   r   r2  )r   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation14  r   z,TestNdimageMorphology.test_binary_dilation14c                 C   sB   t dg|}d|d< g d}tj||ddd}t|g d d S )Nr   r   r   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation15$  s   z,TestNdimageMorphology.test_binary_dilation15c                 C   s,   t ddg|}t|}t|dgg d S r   r#  r   r0   r0   r1   test_binary_dilation16-  r   z,TestNdimageMorphology.test_binary_dilation16c                 C   r   r   r&  r   r0   r0   r1   test_binary_dilation173  r   z,TestNdimageMorphology.test_binary_dilation17c                 C   r   )Nr   r   r   r#  r   r0   r0   r1   test_binary_dilation189  r   z,TestNdimageMorphology.test_binary_dilation18c                 C   s:   t ddg|}t|}t|g dg dg dg d S r*  r#  r   r0   r0   r1   test_binary_dilation19?  r   z,TestNdimageMorphology.test_binary_dilation19c                 C   sB   t ddg|}d|d< t|}t|g dg dg dg d S )Nr   r   r   r   r   r   r&  r   r0   r0   r1   test_binary_dilation20G  s   


z,TestNdimageMorphology.test_binary_dilation20c                 C   sP   t dd}tddg|}d|d< t ||}t|g dg dg dg d S )Nr   r   r   r?  r   )r   r   r'   rF   r$  r   )r+   r   r   r,   r-   r0   r0   r1   test_binary_dilation21P  s   

z,TestNdimageMorphology.test_binary_dilation21c                 C   s   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|}t|}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   r0   r0   r1   test_binary_dilation22Z  ,   

z,TestNdimageMorphology.test_binary_dilation22c                 C   s   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|}tj|dd}t|| d S )Nr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE  r   r0   r0   r1   test_binary_dilation23o  r   z,TestNdimageMorphology.test_binary_dilation23c                 C   s   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|}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?  r2  rE  r   r0   r0   r1   test_binary_dilation24  r   z,TestNdimageMorphology.test_binary_dilation24c                 C   s   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|}tj|d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   rH  r   r   r   r   r   r   r   r   r   r   r   r   r   r?  r   r9  rE  r   r0   r0   r1   test_binary_dilation25  s,   
z,TestNdimageMorphology.test_binary_dilation25c                 C   s   t d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|}t ||}t|| d S )Nr   rB  )r   r   r   r   r   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   r0   r1   test_binary_dilation26  .   
z,TestNdimageMorphology.test_binary_dilation26c                 C   s   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 g d	g dg d	g dg d
g dg d	g d	g|}t||}t|| d S )Nr   r   r   rJ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE  r   r0   r0   r1   test_binary_dilation27  s2   
z,TestNdimageMorphology.test_binary_dilation27c                 C   s\   g dg dg dg dg}t 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   rE  r   r0   r0   r1   test_binary_dilation28  s   
z,TestNdimageMorphology.test_binary_dilation28c                 C   sz   ddgddgg}g dg dg dg dg dg}t 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   r0   r0   r1   test_binary_dilation29  &   
z,TestNdimageMorphology.test_binary_dilation29c                 C   s   ddgddgg}g dg dg dg dg dg}t g dg dg dg dg dgt}t |jt}tj||d|d t|| d S )	Nr   r   r   rW  rX  r   r   r   r   r'   r(   r   rF   rG   r   r$  r   r   r0   r0   r1   test_binary_dilation30  (   
z,TestNdimageMorphology.test_binary_dilation30c                 C   sz   ddgddgg}g dg dg dg dg dg}t g dg dg dg dg dgt}tj||dd	}t|| d S )
Nr   r   rW  rX  r   r   r   r   r   r   r   r   r  rY  r   r0   r0   r1   test_binary_dilation31  r[  z,TestNdimageMorphology.test_binary_dilation31c                 C   s   ddgddgg}g dg dg dg dg dg}t g dg dg dg dg dgt}t |jt}tj||d|d	 t|| d S )
Nr   r   rW  rX  r   r`  r   r   r\  r]  r   r0   r0   r1   test_binary_dilation32  r_  z,TestNdimageMorphology.test_binary_dilation32c                 C   s   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t}t g dg dg dg dg dg dg dg dgt}t g dg dg dg dg dg dg dg dgt}tj||d	|d
d}t|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r  rT  r   r   r   r   r   r   r   r   r   r   r   r  r   rY  r  r0   r0   r1   test_binary_dilation33.  sR   



	z,TestNdimageMorphology.test_binary_dilation33c                 C   s   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 g dg dg dg dg dg d	g dg dgt}t |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   re  r]  r  r0   r0   r1   test_binary_dilation34O  s:   

z,TestNdimageMorphology.test_binary_dilation34c                 C   s(  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}g dg dg dg dg dg dg dg dg}t ||}t |t |}t ||}t g dg dg dg d	g d
g dg dg dg|}tj||ddd}t|| d S )NrL  rM  r   rN  rH  rO  r   r   r   r   r   r   r?  r   )r  r   r   )r'   r(   r  r  r  r   r$  r   )r+   r   r  r,   r  r/   r-   r0   r0   r1   test_binary_dilation35h  sZ   

z,TestNdimageMorphology.test_binary_dilation35c                 C   s   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t}t g dg dg dg dg dg dg dg dgt}t 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   rc  r  rT  rd  r   r  r   )r'   r(   r   r   binary_propagationr   r  r0   r0   r1   test_binary_propagation01  sR   


	z/TestNdimageMorphology.test_binary_propagation01c                 C   s   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 g dg dg dg dg dg d	g dg dgt}t |jt}tj|||d
d}t|| d S )Nr   r   r   rg  r   r   r   r   r   r   rj  )r'   r(   r   rF   rG   r   rk  r   r  r0   r0   r1   test_binary_propagation02  s:   
z/TestNdimageMorphology.test_binary_propagation02c                 C   s   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|}t|}t|| d S )
Nr   rB  rC  r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   r   r   r   )r'   r(   r   binary_openingr   r   r0   r0   r1   test_binary_opening01  rG  z+TestNdimageMorphology.test_binary_opening01c                 C   s   t d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|}t ||}t|| d S )	Nr   rB  r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rQ  r   r   r   r   r   r   r   r   r   )r   r   r'   r(   rp  r   r   r0   r0   r1   test_binary_opening02  rS  z+TestNdimageMorphology.test_binary_opening02c                 C   s   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|}t|}t|| d S )Nr   rg  )r   r   r   r   r   r   r   r   rQ  r   r   r   r   rB  rC  rD  ro  )r'   r(   r   binary_closingr   r   r0   r0   r1   test_binary_closing01  rG  z+TestNdimageMorphology.test_binary_closing01c                 C   s   t d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|}t ||}t|| d S )	Nr   r   rg  r   rB  rr  rQ  rs  )r   r   r'   r(   ru  r   r   r0   r0   r1   test_binary_closing02  rS  z+TestNdimageMorphology.test_binary_closing02c              
   C   s   t g dg dg dg dg dg dg dgt}t g dg dg dg dg dg dg dgt}t|}t|| d S )Nr   r   r   r'   r(   r   r   binary_fill_holesr   r+   r/   r,   r-   r0   r0   r1   test_binary_fill_holes01!  ,   


z.TestNdimageMorphology.test_binary_fill_holes01c              
   C   s   t g dg dg dg dg dg dg dgt}t g dg dg dg dg dg dg dgt}t|}t|| d S )Nr   r   r   r   rx  rz  r0   r0   r1   test_binary_fill_holes023  r|  z.TestNdimageMorphology.test_binary_fill_holes02c              
   C   s   t g dg dg dg dg dg dg dgt}t g dg dg dg dg dg dg dgt}t|}t|| d S )Nr   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rx  rz  r0   r0   r1   test_binary_fill_holes03E  r|  z.TestNdimageMorphology.test_binary_fill_holes03c                 C   Z   t g dg dg dg}g dg dg}tj||d}tg dg dg d	g| d S )
Nr   r   r   r   r   r   r   rY   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   r0   r0   r1   test_grey_erosion01W     
z)TestNdimageMorphology.test_grey_erosion01c                 C   s\   t g dg dg dg}g dg dg}tj|||d tg dg dg d	g| d S )
Nr  r  r  r   r  )r  r   r  r  r  r  )r+   r(   r  r0   r0   r1   test_grey_erosion01_overlapa  s   
z1TestNdimageMorphology.test_grey_erosion01_overlapc                 C   l   t g dg dg dg}g dg dg}g dg dg}tj|||d}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   r0   r0   r1   test_grey_erosion02k     
z)TestNdimageMorphology.test_grey_erosion02c                 C   r  )Nr  r  r  r   r  r   r  r4  )r   r   r   r   r   )r   r   r   r   r   r  r  r0   r0   r1   test_grey_erosion03w  r  z)TestNdimageMorphology.test_grey_erosion03c                 C   r  )
Nr  r  r  r   r   r  r   r   rY   rY   r   r   rY   r   rY   r   r   r   r   r   r   r'   r(   r   grey_dilationr   r  r0   r0   r1   test_grey_dilation01  r  z*TestNdimageMorphology.test_grey_dilation01c                 C   r  )Nr  r  r  r   r   r   r  r  r  r  r  r  r0   r0   r1   test_grey_dilation02  r  z*TestNdimageMorphology.test_grey_dilation02c                 C   r  )Nr  r  r  r   r   r   r  )r   r   
   r  r   )r   r  rY   r  r   )rY   rY   rY   r   r   r  r  r0   r0   r1   test_grey_dilation03  r  z*TestNdimageMorphology.test_grey_dilation03c                 C   d   t g dg dg dg}g dg dg}tj||d}tj||d}tj||d}t|| d S Nr  r  r  r   r  r  r'   r(   r   r  r  grey_openingr   r+   r(   r  r  r/   r   r0   r0   r1   test_grey_opening01     
z)TestNdimageMorphology.test_grey_opening01c                 C   z   t g dg dg dg}g dg dg}g dg dg}tj|||d}tj|||d}tj|||d}t|| d S Nr  r  r  r   r  r   r  r  r+   r(   r  r  r  r/   r   r0   r0   r1   test_grey_opening02      
z)TestNdimageMorphology.test_grey_opening02c                 C   r  r  r'   r(   r   r  r  grey_closingr   r  r0   r0   r1   test_grey_closing01  r  z)TestNdimageMorphology.test_grey_closing01c                 C   r  r  r  r  r0   r0   r1   test_grey_closing02  r  z)TestNdimageMorphology.test_grey_closing02c                 C   s   t g dg dg dg}g dg dg}g dg dg}tj|||d}tj|||d}|| }t |j|j}tj||||d t	|| d S 	Nr  r  r  r   r  r   r  r  r  r   )
r'   r(   r   r  r  rF   rG   r   morphological_gradientr   r+   r(   r  r  tmp1tmp2r/   r   r0   r0   r1   test_morphological_gradient01  s$   
z3TestNdimageMorphology.test_morphological_gradient01c                 C   s   t g dg dg dg}g dg dg}g dg dg}tj|||d}tj|||d}|| }tj|||d}t|| d S r  )r'   r(   r   r  r  r  r   r  r0   r0   r1   test_morphological_gradient02  s"   
z3TestNdimageMorphology.test_morphological_gradient02c                 C   s   t g dg dg dg}g dg dg}g dg dg}tj|||d}tj|||d}|| d|  }t |j|j}tj||||d	 t	|| d S )
Nr  r  r  r   r  r   r  r   r  )
r'   r(   r   r  r  rF   rG   r   morphological_laplacer   r  r0   r0   r1   test_morphological_laplace01  s$   
z2TestNdimageMorphology.test_morphological_laplace01c                 C   s   t g dg dg dg}g dg dg}g dg dg}tj|||d}tj|||d}|| d|  }tj|||d}t|| d S )	Nr  r  r  r   r  r   r  r   )r'   r(   r   r  r  r  r   r  r0   r0   r1   test_morphological_laplace02  s"   
z2TestNdimageMorphology.test_morphological_laplace02c                 C   s   t g dg dg dg}g dg dg}g dg dg}tj|||d}|| }t |j|j}tj||||d t|| d S r  )	r'   r(   r   r  rF   rG   r   white_tophatr   r  r0   r0   r1   test_white_tophat01     
z)TestNdimageMorphology.test_white_tophat01c                 C   sr   t g dg dg dg}g dg dg}g dg dg}tj|||d}|| }tj|||d}t|| d S r  )r'   r(   r   r  r  r   r  r0   r0   r1   test_white_tophat02!     
z)TestNdimageMorphology.test_white_tophat02c              	   C   s   t jg dg dg dg dg dg dg dgt jd}t jdt jd}t jg dg dg dg d	g d
g d	g dgt jd}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(   bool_r   r   r  r   r+   r(   r  r/   r   r0   r0   r1   test_white_tophat03.  .   

z)TestNdimageMorphology.test_white_tophat03c                 C   D   t jdt jd}t jdt jd}t j|t jd}tj|||d d S Nr   r<   r  )r  r   )r'   eyer  r   
empty_likerH   r   r  r+   r(   r  r   r0   r0   r1   test_white_tophat04B     z)TestNdimageMorphology.test_white_tophat04c                 C   s   t g dg dg dg}g dg dg}g dg dg}tj|||d}|| }t |j|j}tj||||d t|| d S r  )	r'   r(   r   r  rF   rG   r   black_tophatr   r  r0   r0   r1   test_black_tophat01J  r  z)TestNdimageMorphology.test_black_tophat01c                 C   sr   t g dg dg dg}g dg dg}g dg dg}tj|||d}|| }tj|||d}t|| d S r  )r'   r(   r   r  r  r   r  r0   r0   r1   test_black_tophat02X  r  z)TestNdimageMorphology.test_black_tophat02c              	   C   s   t jg dg dg dg dg dg dg dgt jd}t jdt jd}t jg dg dg dg dg d	g dg d
gt jd}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  r0   r0   r1   test_black_tophat03e  r  z)TestNdimageMorphology.test_black_tophat03c                 C   r  r  )r'   r  r  r   r  rH   r   r  r  r0   r0   r1   test_black_tophat04y  r  z)TestNdimageMorphology.test_black_tophat04c                 C   s   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 g dg dg dg dg dg d	g d	g dg|}t |jt}tj|||d
 t|| d S )Nr   r   r   )r   r   r   r   r   r0  r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r'   r(   rF   rG   r   r   binary_hit_or_missr   r   r0   r0   r1   test_hit_or_miss01  s6   
z(TestNdimageMorphology.test_hit_or_miss01c                 C   sp   g dg dg dg}g dg dg dg dg}t g dg dg dg dg|}t||}t|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r'   r(   r   r  r   r   r0   r0   r1   test_hit_or_miss02  s$   
z(TestNdimageMorphology.test_hit_or_miss02c                 C   s   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 g dg dg dg d	g d
g dg dg dg|}t|||}t|| d S )Nr   r   r   r   r   r  rB  r   rQ  rs  rn  r   r  )r+   r   struct1struct2r/   r,   r-   r0   r0   r1   test_hit_or_miss03  s<   
z(TestNdimageMorphology.test_hit_or_miss03N)__name__
__module____qualname__pytestmarkparametrizer	   r2   r6   r;   rQ   rW   rZ   r]   rd   re   rf   ri   rq   rr   rw   ry   r{   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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  r3  r5  r6  r7  r8  r:  r;  r<  r=  r>  r@  rA  rF  rI  rK  rP  rR  rU  rV  rZ  r^  ra  rb  rf  rh  ri  rl  rm  rq  rt  rv  rw  r{  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r0   r0   r0   r1   r
      s   
,
,
,
0
+
+
$
#
0

0



























"#




















	






!
(!








r
   c                   @   $   e Zd Zdd Zdd Zdd ZdS )TestDilateFixc                 C   s`   t jg dg dg dg dg dgt jd| _t d| _tj| j| jd}|t j| _d S )Nr   rW  rX  r<   r  r  )	r'   r(   uint8r   sq3x3r   r$  view
dilated3x3)r+   r  r0   r0   r1   setup_method  s   
zTestDilateFix.setup_methodc                 C   s&   t j| j| jd}t|| jd  d S )Nr  r   )r   r  r(   r  r   r  r+   resultr0   r0   r1   test_dilation_square_structure  s   z,TestDilateFix.test_dilation_square_structurec                 C   s    t j| jdd}t|| j d S )Nr   )size)r   r  r(   r   r  r  r0   r0   r1   test_dilation_scalar_size  s   z'TestDilateFix.test_dilation_scalar_sizeN)r  r  r  r  r  r  r0   r0   r0   r1   r    s    r  c                   @   r  )TestBinaryOpeningClosingc                 C   sp   t jdtd}d|ddddf< d|d< || _t d| _t| j| jdd d| _t	| j| jdd d| _
d S )	N)r   r   r<   Tr   r   )r   r   r  r   )r'   rF   r   r(   r   r  r   rp  
opened_oldru  
closed_old)r+   r  r0   r0   r1   r    s   
z%TestBinaryOpeningClosing.setup_methodc              
   C   ,   t | j| jdd dd dd}t|| j d S Nr   r   F)r   rp  r(   r  r   r  )r+   
opened_newr0   r0   r1   test_opening_new_arguments     z3TestBinaryOpeningClosing.test_opening_new_argumentsc              
   C   r  r  )r   ru  r(   r  r   r  )r+   
closed_newr0   r0   r1   test_closing_new_arguments  r  z3TestBinaryOpeningClosing.test_closing_new_argumentsN)r  r  r  r  r  r  r0   r0   r0   r1   r    s    r  c                  C   4   t dg} tttj| dd tttj| dd d S Nr   g      ?r        ?)r'   r   r[   r  r   r   r,   r0   r0   r1   )test_binary_erosion_noninteger_iterations     r  c                  C   r  r  )r'   r   r[   r  r   r$  r  r0   r0   r1   *test_binary_dilation_noninteger_iterations  r  r  c                  C   r  r  )r'   r   r[   r  r   rp  r  r0   r0   r1   )test_binary_opening_noninteger_iterations	  r  r  c                  C   r  r  )r'   r   r[   r  r   ru  r  r0   r0   r1   )test_binary_closing_noninteger_iterations	  r  r  c                  C   s`   t dg} tj| dddtj| dtddksJ tj| dddtj| dtddks.J d S )Nr   r   r  )r   r  rz   )r'   r   r   r   r   r  r0   r0   r1   ;test_binary_closing_noninteger_brute_force_passes_when_true	  s   r   function)r   r$  rp  ru  r   r   r  FTc                 C   sj   t jd}|jddddt}tt| }| }||||d}t	|| |||||d t	|| d S )N{   r   r   d   lowhighr  )r  r   )r  r   r   )
r'   randomRandomStaterandintrl   r   getattrr   copyr   )r  r   r  rstater,   ndi_func	data_origr/   r0   r0   r1   test_binary_input_as_output#	  s   

r  c                  C   sZ   t jd} | jddddt}| }t|}t	|| tj||d t	|| d S )Nr  r   r   r  r  r  )
r'   r  r  r	  rl   r   r  r   r  r   )r  r,   r  r/   r0   r0   r1   'test_binary_hit_or_miss_input_as_output8	  s   

r  )r'   numpy.testingr   r   r   r   r  r   r[   scipyr    r	   r
   r  r  r  r  r  r  r   r  r  r  r  r0   r0   r0   r1   <module>   sN                     K