o
    :ήc                     @   s   d dl Z d dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZ dd Zdd	 Zejd
e jg ddddd Zejd
e g dg ddd Zdd Zejd
e g dg ddd Zdd ZdS )    N)assert_almost_equalassert_array_equal)distance)expected_warnings)hausdorff_distancehausdorff_pairc                  C   s  t jdtd} t jdtd}t| |dksJ tdg tt| |ddg W d    n1 s1w   Y  t|| dks?J tdg tt|| ddg W d    n1 sYw   Y  t| |dksgJ tdg tt| |ddg W d    d S 1 sw   Y  d S )N)r      dtype)   r   g        z"One or both of the images is empty )npzerosboolr   r   r   r   )empty	non_emptyr   r   M/tmp/pip-target-vg8gfxp4/lib/python/skimage/metrics/tests/test_set_metrics.pytest_hausdorff_empty   s   "r   c                  C   s~   d} d}d}t j|td}t j|td}d|| < d||< t tdd t| |D }tt||| tt	||| |f d S )Nr   r      r         r	   Tc                 s        | ]\}}|| d  V  qdS r   Nr   .0cacbr   r   r   	<genexpr>"       z(test_hausdorff_simple.<locals>.<genexpr>
r   r   r   sqrtsumzipr   r   r   r   points_apoints_bshapecoords_acoords_bdistr   r   r   test_hausdorff_simple   s   

r-   zpoints_a, points_b))r   r   r   )r      )r.   r   r   )repeatc                 C   v   d}t j|td}t j|td}d|| < d||< t tdd t| |D }tt||| tt	||| |f d S )N)   r1   r	   Tc                 s   r   r   r   r   r   r   r   r    4   r!   z/test_hausdorff_region_single.<locals>.<genexpr>r"   r&   r   r   r   test_hausdorff_region_single)   s   

r2   ))r1   r.   )r.   r1   )r   r.   )r.   r   ))r   r.   )r   r   )r   r.   )r.   r   c                 C   r0   )N)r   r   r	   Tc                 s   r   r   r   r   r   r   r   r    G   r!   z9test_hausdorff_region_different_points.<locals>.<genexpr>r"   r&   r   r   r   &test_hausdorff_region_different_points;      

r3   c                     s"  d} ddd g d}g d} fdd|D } fdd|D }ddd	d
fdd|D }fdd|D }t j| td}t j| td}t||D ]
\}	}
d||	|
f< qSt||D ]
\}	}
d||	|
f< qctt||d t||}t |d st |d sJ d S d S )N)<   r5      
   )r   r   r   )r   r   r8   r   c                       g | ]} |  qS r   r   r   x)r	x_diamondr   r   
<listcomp>Z       z test_gallery.<locals>.<listcomp>c                    r9   r   r   r   y)r<   	y_diamondr   r   r>   [   r?         c                       g | ]} |  qS r   r   r:   )x_kitex_rr   r   r>   d   r?   c                    rE   r   r   r@   )y_kitey_rr   r   r>   e   r?   r	   Tg      $@))r6   rD   )r6   r7   ))r6   (   )r6   2   )	r   r   r   r%   r   r   r   equalall)r)   plt_xplt_yset_axset_ayset_bxset_byr*   r+   r;   rA   	hd_pointsr   )r<   r=   rF   rG   rB   rH   rI   r   test_galleryN   s2   
rU   ))r   r   r   )r   r   r   )r   r   r   ))r   r   r   )r   r   r   )r   r   r   c                 C   r0   )N)r   r   r   r	   Tc                 s   r   r   r   r   r   r   r   r       r!   z+test_3d_hausdorff_region.<locals>.<genexpr>r"   r&   r   r   r   test_3d_hausdorff_region~   r4   rV   c                  C   sl   d} d}d}t j|td}t j|td}d|| < d||< tt||| |f t| |}t|t|| d S )Nr   r   r   r	   T)	r   r   r   r   r   r   	euclideanr   r   )r'   r(   r)   r*   r+   euclidean_distancer   r   r   test_hausdorff_metrics_match   s   
rY   )	itertoolsnumpyr   pytestnumpy.testingr   r   scipy.spatialr   skimage._shared._warningsr   skimage.metricsr   r   r   r-   markparametrizeproductr2   r3   rU   rV   rY   r   r   r   r   <module>   s<    


0

