o
    j                     @   s   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
g dejdg ddd Zejd
g dejdg ddd Zdd Zejd
g dej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   sT  t jdtd} t jdtd}t| |dksJ t| |dddks"J tdg tt| |ddg W d    n1 s<w   Y  t|| dksJJ t|| dddksUJ tdg tt|| ddg W d    n1 sow   Y  t| |dks}J t| |dddksJ tdg tt| |ddg W d    d S 1 sw   Y  d S )	N)r      Zdtype)   r   g        modifiedmethodz"One or both of the images is empty )npzerosboolr   r   r   r   )emptyZ	non_emptyr   r   g/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/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| g|g}tt 	t j
|dd	t 	t j
|d
d	}tt||| tt||| |f tt||dd| 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   Zaxisr   r   r   r   r   r   sqrtsumzipr   Zcdistmaxmeanminr   r   r   r   points_apoints_bshapecoords_acoords_bdistdZdist_modifiedr   r   r   test_hausdorff_simple!   s(   *r3   r,   ))r   r   r   )r      )r4   r   r-   c                 C      d}t j|td}t j|td}d|| < d||< t tdd t| |D }t| g|g}tt 	t j
|ddt 	t j
|dd}tt||| tt||| |f tt||d	d
| d S )N)   r6   r	   Tc                 s   r   r   r   r   r   r   r   r!   A   r"   z/test_hausdorff_region_single.<locals>.<genexpr>r   r#   r   r   r   r$   r+   r   r   r   test_hausdorff_region_single8      *r7   ))r6   r4   )r4   r6   )r
   r4   )r4   r
   ))r   r4   )r   r   )r   r4   )r4   r   c                 C   r5   )N)r   r   r	   Tc                 s   r   r   r   r   r   r   r   r!   T   r"   z9test_hausdorff_region_different_points.<locals>.<genexpr>r   r#   r   r   r   r$   r+   r   r   r   &test_hausdorff_region_different_pointsK   r8   r9   c                     s2  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 tt||ddd d S )N)<   r:      
   )r   r   r   )r   r   r=   r   c                       g | ]} |  qS r   r   r   x)r	x_diamondr   r   
<listcomp>j       z test_gallery.<locals>.<listcomp>c                    r>   r   r   r   y)rA   	y_diamondr   r   rC   k   rD         c                       g | ]} |  qS r   r   r?   )x_kitex_rr   r   rC   t   rD   c                    rJ   r   r   rE   )y_kitey_rr   r   rC   u   rD   r	   Tg      $@))r;   rI   )r;   r<   ))r;   (   )r;   2   r   r   g      @)	r   r   r   r'   r   r   r   equalall)r.   Zplt_xZplt_yZset_axZset_ayZset_bxZset_byr/   r0   r@   rF   Z	hd_pointsr   )rA   rB   rK   rL   rG   rM   rN   r   test_gallery^   s6   
rS   ))r   r   r   )r   r   r   )r   r   r   ))r   r   r   )r   r   r   )r   r   r   c                 C   r5   )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   r$   r+   r   r   r   test_3d_hausdorff_region   r8   rT   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   Z	euclideanr   r   )r,   r-   r.   r/   r0   Zeuclidean_distancer   r   r   test_hausdorff_metrics_match   s   rU   )numpyr   ZpytestZnumpy.testingr   r   Zscipy.spatialr   Zskimage._shared._warningsr   Zskimage.metricsr   r   r   r3   markZparametrizer7   r9   rS   rT   rU   r   r   r   r   <module>   s&    6