
    k h                        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                  j!                  dg d	      ej                  j!                  d
g d	      d               Zej                  j!                  dg d      ej                  j!                  d
g d      d               Zd Zej                  j!                  dg d      ej                  j!                  d
g d      d               Zd Zy)    N)assert_almost_equalassert_array_equal)distance)expected_warnings)hausdorff_distancehausdorff_pairc                     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        t        ||       dk(  sJ t        || d      dk(  sJ t	        dg      5  t        t        ||       ddg       d d d        t        | |      dk(  sJ t        | |d      dk(  sJ t	        dg      5  t        t        | |      ddg       d d d        y # 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY w)	N)r      dtype)   r
   g        modifiedmethodz"One or both of the images is empty )npzerosboolr   r   r   r   )empty	non_emptys     /home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/skimage/metrics/tests/test_set_metrics.pytest_hausdorff_emptyr   
   s`   HHV4(Et,IeY/36665)J?3FF	@A	B G>%;b"XFGi/36669eJ?3FF	@A	B G>)U;b"XFGeY/36665)J?3FF	@A	B G>%;b"XFG GG GG GG Gs$   'D+8D7	E+D47E Ec            	      b   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
      |       y )Nr   r      r         r   Tc              3   2   K   | ]  \  }}||z
  d z    ywr
   Nr   .0cacbs      r   	<genexpr>z(test_hausdorff_simple.<locals>.<genexpr>)        L&"bRA~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<   !   s    HHExxT*HxxT*HHXHX773LC(4KLLMDzH:.Aqq 12BGGBFF11<M4NOM*8X>E~h9Hh;OP	

 	    r4   ))r   r   r   )r      )r>   r   r5   c           	      Z   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	      |       y )
N)   r@   r   Tc              3   2   K   | ]  \  }}||z
  d z    yw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_singlerB   8        ExxT*HxxT*HHXHX773LC(4KLLMDzH:.Aqq 12BGGBFF11<M4NOM*8X>E~h9Hh;OP8XjA=r=   ))r@   r>   )r>   r@   )r   r>   )r>   r   ))r   r>   )r
   r   )r
   r>   )r>   r   c           	      Z   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	      |       y )
N)r   r   r   Tc              3   2   K   | ]  \  }}||z
  d z    yw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_pointsrF   K   rC   r=   c                     d} d}d}d}g d}g d}|D cg c]
  }|||z  z    }}|D cg c]
  }|||z  z    }	}d}
d}d}d}|D cg c]
  }|
||z  z    }}|D cg c]
  }|||z  z    }}t        j                  | t              }t        j                  | t              }t        ||	      D ]  \  }}d	|||f<    t        ||      D ]  \  }}d	|||f<    t	        t        ||      d
       t        ||      }t        j                  |d      j                         s&t        j                  |d      j                         sJ t	        t        ||d      d       y c c}w c c}w c c}w c c}w )N)<   rH      
   )r   r   r   )r   r   rK   r         r   Tg      $@))rI   rM   )rI   rJ   ))rI   (   )rI   2   r   r   g      @)	r   r   r   r.   r   r   r   equalall)r6   	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_byr7   r8   	hd_pointss                      r   test_galleryrb   ^   s   E II
AEE+01ay1q5 1F1+01ay1q5 1F1 FF
C
C*/0Qva0F0*/0Qva0F0 xxT*HxxT*HFF#  1!Q  FF#  1!Q  *8X>E x2I
0155788I3488:	; *8XjQSVWO 21 10s   EE#E(E-))r   r   r   )r   r   r   )r   r   r   ))r   r   r
   )r   r
   r   )r
   r   r   c           	      Z   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	      |       y )
N)r   r   r   r   Tc              3   2   K   | ]  \  }}||z
  d z    yw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_regionre      s     ExxT*HxxT*HHXHX773LC(4KLLMDzH:.Aqq 12BGGBFF11<M4NOM*8X>E~h9Hh;OP8XjA=r=   c                     d} d}d}t        j                  |t              }t        j                  |t              }d|| <   d||<   t        t	        ||      | |f       t        j                  | |      }t        |t        ||             y )Nr   r   r   r   T)	r   r   r   r   r   r   	euclideanr   r   )r4   r5   r6   r7   r8   euclidean_distances         r   test_hausdorff_metrics_matchri      s     HHExxT*HxxT*HHXHX~h9Hh;OP!++Hh?*,>x,RSr=   )numpyr   pytestnumpy.testingr   r   scipy.spatialr   skimage._shared._warningsr   skimage.metricsr   r   r   r<   markparametrizerB   rF   rb   re   ri   r   r=   r   <module>rr      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=   