
    0-Ph                        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 Zd Zej                            dg d	          ej                            d
g d	          d                         Zej                            dg d          ej                            d
g d          d                         Zd Zej                            dg d          ej                            d
g d          d                         Zd ZdS )    N)assert_almost_equalassert_array_equal)distance)expected_warnings)hausdorff_distancehausdorff_pairc                  8   t          j        dt                    } t          j        dt                    }t          | |          dk    sJ t          | |d          dk    sJ t	          dg          5  t          t          | |          ddg           d d d            n# 1 swxY w Y   t          ||           dk    sJ t          || d          dk    sJ t	          dg          5  t          t          ||           ddg           d d d            n# 1 swxY w Y   t          | |          dk    sJ t          | |d          dk    sJ t	          dg          5  t          t          | |          ddg           d d d            d S # 1 swxY w Y   d S )	N)r      dtype)   r
   g        modifiedmethodz"One or both of the images is empty )npzerosboolr   r   r   r   )empty	non_emptys     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/metrics/tests/test_set_metrics.pytest_hausdorff_emptyr   
   s   HV4(((Et,,,IeY//366665)J???3FFFF	@A	B	B G G>%;;b"XFFFG G G G G G G G G G G G G G Gi//366669eJ???3FFFF	@A	B	B G G>)U;;b"XFFFG G G G G G G G G G G G G G GeY//366665)J???3FFFF	@A	B	B G G>%;;b"XFFFG G G G G G G G G G G G G G G G G Gs6   5!B""B&)B&+!DDD!!FFFc            	         d} d}d}t          j        |t                    }t          j        |t                    }d|| <   d||<   t          j        t	          d t          | |          D                                 }t          j        | g|g          }t          t          j	        t          j
        |d                    t          j	        t          j
        |d	                              }t          t          ||          |           t          t          ||          | |f           t          t          ||d
          |           d S )Nr   r      r         r   Tc              3   ,   K   | ]\  }}||z
  d z  V  dS r
   Nr   .0cacbs      r   	<genexpr>z(test_hausdorff_simple.<locals>.<genexpr>)   .      LL&"bRA~LLLLLL    r   axisr   r   r   r   r   r   sqrtsumzipr   cdistmaxmeanminr   r   r   r   points_apoints_bshapecoords_acoords_bdistddist_modifieds           r   test_hausdorff_simpler<   !   sI   HHExT***HxT***HHXHX73LLC(4K4KLLLLLMMDzH:..Aqq 1 1 122BGBF11<M<M<M4N4NOOM*8X>>EEE~h99Hh;OPPP	
 	
 	

 	    r(   r4   ))r   r   r   )r      )r=   r   r5   c           	         d}t          j        |t                    }t          j        |t                    }d|| <   d||<   t          j        t	          d t          | |          D                                 }t          j        | g|g          }t          t          j	        t          j
        |d                    t          j	        t          j
        |d                              }t          t          ||          |           t          t          ||          | |f           t          t          ||d	          |           d S )
N)   r?   r   Tc              3   ,   K   | ]\  }}||z
  d z  V  dS r!   r   r"   s      r   r&   z/test_hausdorff_region_single.<locals>.<genexpr>A   r'   r(   r   r)   r   r   r   r+   r3   s           r   test_hausdorff_region_singlerA   8   5    ExT***HxT***HHXHX73LLC(4K4KLLLLLMMDzH:..Aqq 1 1 122BGBF11<M<M<M4N4NOOM*8X>>EEE~h99Hh;OPPP8XjAAA=    r(   ))r?   r=   )r=   r?   )r   r=   )r=   r   ))r   r=   )r
   r   )r
   r=   )r=   r   c           	         d}t          j        |t                    }t          j        |t                    }d|| <   d||<   t          j        t	          d t          | |          D                                 }t          j        | g|g          }t          t          j	        t          j
        |d                    t          j	        t          j
        |d                              }t          t          ||          |           t          t          ||          | |f           t          t          ||d	          |           d S )
N)r   r   r   Tc              3   ,   K   | ]\  }}||z
  d z  V  dS r!   r   r"   s      r   r&   z9test_hausdorff_region_different_points.<locals>.<genexpr>T   r'   r(   r   r)   r   r   r   r+   r3   s           r   &test_hausdorff_region_different_pointsrE   K   rB   r(   c                     d} dddg d}g d}fd|D             }fd|D             }dddd	fd
|D             }fd|D             }t          j        | t                    }t          j        | t                    }t          ||          D ]\  }	}
d||	|
f<   t          ||          D ]\  }	}
d||	|
f<   t	          t          ||          d           t          ||          }t          j        |d                                          s)t          j        |d                                          sJ t	          t          ||d          d           d S )N)<   rG      
   )r   r   r   )r   r   rJ   r   c                      g | ]
}|z  z   S r   r   )r#   xr	x_diamonds     r   
<listcomp>z test_gallery.<locals>.<listcomp>j   "    111ay1q5 111r(   c                      g | ]
}|z  z   S r   r   )r#   yrM   	y_diamonds     r   rO   z test_gallery.<locals>.<listcomp>k   rP   r(         c                      g | ]
}|z  z   S r   r   )r#   rL   x_kitex_rs     r   rO   z test_gallery.<locals>.<listcomp>t   "    000Qva000r(   c                      g | ]
}|z  z   S r   r   )r#   rR   y_kitey_rs     r   rO   z test_gallery.<locals>.<listcomp>u   rY   r(   r   Tg      $@))rH   rU   )rH   rI   ))rH   (   )rH   2   r   r   g      @)	r   r   r   r.   r   r   r   equalall)r6   plt_xplt_yset_axset_ayset_bxset_byr7   r8   rL   rR   	hd_pointsrM   rN   rW   rX   rS   r[   r\   s               @@@@@@@r   test_galleryrh   ^   s   E II
AMMEMME111115111F111115111F FF
C
C00000%000F00000%000F xT***HxT***HFF##    1!QFF##    1!Q *8X>>EEE x22I
01155778I34488::   *8XjQQQSVWWWWWr(   ))r   r   r   )r   r   r   )r   r   r   ))r   r   r
   )r   r
   r   )r
   r   r   c           	         d}t          j        |t                    }t          j        |t                    }d|| <   d||<   t          j        t	          d t          | |          D                                 }t          j        | g|g          }t          t          j	        t          j
        |d                    t          j	        t          j
        |d                              }t          t          ||          |           t          t          ||          | |f           t          t          ||d	          |           d S )
N)r   r   r   r   Tc              3   ,   K   | ]\  }}||z
  d z  V  dS r!   r   r"   s      r   r&   z+test_3d_hausdorff_region.<locals>.<genexpr>   r'   r(   r   r)   r   r   r   r+   r3   s           r   test_3d_hausdorff_regionrk      s5    ExT***HxT***HHXHX73LLC(4K4KLLLLLMMDzH:..Aqq 1 1 122BGBF11<M<M<M4N4NOOM*8X>>EEE~h99Hh;OPPP8XjAAA=    r(   c                  8   d} d}d}t          j        |t                    }t          j        |t                    }d|| <   d||<   t          t	          ||          | |f           t          j        | |          }t          |t          ||                     d S )Nr   r   r   r   T)	r   r   r   r   r   r   	euclideanr   r   )r4   r5   r6   r7   r8   euclidean_distances         r   test_hausdorff_metrics_matchro      s     HHExT***HxT***HHXHX~h99Hh;OPPP!+Hh??*,>x,R,RSSSSSr(   )numpyr   pytestnumpy.testingr   r   scipy.spatialr   skimage._shared._warningsr   skimage.metricsr   r   r   r<   markparametrizerA   rE   rh   rk   ro   r   r(   r   <module>rx      s        A A A A A A A A " " " " " " 7 7 7 7 7 7 > > > > > > > >G G G.  . %E%E%EFF%E%E%EFF  GF GF" %E%E%EFF%E%E%EFF  GF GF"3X 3X 3Xl %F%F%FGG%F%F%FGG  HG HG"T T T T Tr(   