
    9i                        S SK rS SKrS SKJrJr  S SKJr  S SKJ	r	  S SK
JrJr  S rS r\R                  R!                  S/ S	Q5      \R                  R!                  S
/ S	Q5      S 5       5       r\R                  R!                  S/ SQ5      \R                  R!                  S
/ SQ5      S 5       5       rS r\R                  R!                  S/ SQ5      \R                  R!                  S
/ SQ5      S 5       5       rS rg)    N)assert_almost_equalassert_array_equal)distance)expected_warnings)hausdorff_distancehausdorff_pairc                     [         R                  " S[        S9n [         R                  " S[        S9n[        X5      S:X  d   e[        XSS9S:X  d   e[	        S/5         [        [        X5      SS/5        S S S 5        [        X5      S:X  d   e[        XSS9S:X  d   e[	        S/5         [        [        X5      SS/5        S S S 5        [        X5      S:X  d   e[        XSS9S:X  d   e[	        S/5         [        [        X5      SS/5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nm= f! , (       d  f       g = f)	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/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/metrics/tests/test_set_metrics.pytest_hausdorff_emptyr   
   s0   HHV4(Et,Ie/36665J?3FF	@A	B>%;b"XF 
Ci/36669J?3FF	@A	B>);b"XF 
Ce/36665J?3FF	@A	B>%;b"XF 
C	B 
C	B 
C	B 
C	Bs$    D-D,:D=
D),
D:=
Ec            
      H   Sn SnSn[         R                  " U[        S9n[         R                  " U[        S9nSX0'   SXA'   [         R                  " [	        S [        X5       5       5      5      n[        R                  " U /U/5      n[        [         R                  " [         R                  " USS95      [         R                  " [         R                  " US	S95      5      n[        [        X45      U5        [        [        X45      X45        [        [        UUS
S9U5        g )Nr   r      r         r   Tc              3   4   #    U  H  u  pX-
  S -  v   M     g7fr
   Nr   .0cacbs      r   	<genexpr>(test_hausdorff_simple.<locals>.<genexpr>)        L4K&"A~4K   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=   !   s    HHExxT*HxxT*HHH773LC4KLLMDzH:.Aqq 12BGGBFF11<M4NOM*8>E~h9H;OP	

 	    r5   ))r   r   r   )r      )r?   r   r6   c           
      >   Sn[         R                  " U[        S9n[         R                  " U[        S9nSX0'   SXA'   [         R                  " [	        S [        X5       5       5      5      n[        R                  " U /U/5      n[        [         R                  " [         R                  " USS95      [         R                  " [         R                  " USS95      5      n[        [        X45      U5        [        [        X45      X45        [        [        X4SS	9U5        g )
N)   rA   r   Tc              3   4   #    U  H  u  pX-
  S -  v   M     g7fr!   r   r"   s      r   r&   /test_hausdorff_region_single.<locals>.<genexpr>A   r(   r)   r   r*   r   r   r   r,   r4   s           r   test_hausdorff_region_singlerD   8        ExxT*HxxT*HHH773LC4KLLMDzH:.Aqq 12BGGBFF11<M4NOM*8>E~h9H;OP8jA=r>   ))rA   r?   )r?   rA   )r   r?   )r?   r   ))r   r?   )r
   r   )r
   r?   )r?   r   c           
      >   Sn[         R                  " U[        S9n[         R                  " U[        S9nSX0'   SXA'   [         R                  " [	        S [        X5       5       5      5      n[        R                  " U /U/5      n[        [         R                  " [         R                  " USS95      [         R                  " [         R                  " USS95      5      n[        [        X45      U5        [        [        X45      X45        [        [        X4SS	9U5        g )
N)r   r   r   Tc              3   4   #    U  H  u  pX-
  S -  v   M     g7fr!   r   r"   s      r   r&   9test_hausdorff_region_different_points.<locals>.<genexpr>T   r(   r)   r   r*   r   r   r   r,   r4   s           r   &test_hausdorff_region_different_pointsrI   K   rE   r>   c                     Sn SnSnSn/ SQn/ SQnU Vs/ s H	  oaX6-  -   PM     nnU Vs/ s H	  oX8-  -   PM     n	nSn
SnSnSnU Vs/ s H	  ojX-  -   PM     nnU Vs/ s H	  oX-  -   PM     nn[         R                  " U [        S9n[         R                  " U [        S9n[        Xy5       H  u  phS	UXh4'   M     [        X5       H  u  phS	UXh4'   M     [	        [        UU5      S
5        [        UU5      n[         R                  " US5      R                  5       (       d,  [         R                  " US5      R                  5       (       d   e[	        [        UUSS9S5        g s  snf s  snf s  snf s  snf )N)<   rK      
   )r   r   r   )r   r   rN   r         r   Tg      $@))rL   rP   )rL   rM   ))rL   (   )rL   2   r   r   g      @)	r   r   r   r/   r   r   r   equalall)r7   	x_diamond	y_diamondrplt_xplt_yxset_axyset_ayx_kitey_kitex_ry_rset_bxset_byr8   r9   	hd_pointss                      r   test_galleryre   ^   s   E II
AEE+015a15 5F1+015a15 5F1 FF
C
C*/0%Q%F0*/0%Q%F0 xxT*HxxT*HF#! $ F#! $ *8X>E x2I
01557788I3488::	; *8XjQSVWO 21 10s   E%E*	E/E4))r   r   r   )r   r   r   )r   r   r   ))r   r   r
   )r   r
   r   )r
   r   r   c           
      >   Sn[         R                  " U[        S9n[         R                  " U[        S9nSX0'   SXA'   [         R                  " [	        S [        X5       5       5      5      n[        R                  " U /U/5      n[        [         R                  " [         R                  " USS95      [         R                  " [         R                  " USS95      5      n[        [        X45      U5        [        [        X45      X45        [        [        X4SS	9U5        g )
N)r   r   r   r   Tc              3   4   #    U  H  u  pX-
  S -  v   M     g7fr!   r   r"   s      r   r&   +test_3d_hausdorff_region.<locals>.<genexpr>   r(   r)   r   r*   r   r   r   r,   r4   s           r   test_3d_hausdorff_regionri      s     ExxT*HxxT*HHH773LC4KLLMDzH:.Aqq 12BGGBFF11<M4NOM*8>E~h9H;OP8jA=r>   c                     Sn SnSn[         R                  " U[        S9n[         R                  " U[        S9nSX0'   SXA'   [        [	        X45      X45        [
        R                  " X5      n[        U[        X45      5        g )Nr   r   r   r   T)	r   r   r   r   r   r   	euclideanr   r   )r5   r6   r7   r8   r9   euclidean_distances         r   test_hausdorff_metrics_matchrm      sw     HHExxT*HxxT*HHH~h9H;OP!++H?*,>x,RSr>   )numpyr   pytestnumpy.testingr   r   scipy.spatialr   skimage._shared._warningsr   skimage.metricsr   r   r   r=   markparametrizerD   rI   re   ri   rm   r   r>   r   <module>rv      s      A " 7 >G.. %EF%EF G G" %EF%EF G G"3Xl %FG%FG H H"Tr>   