
    \i&                     
   S SK rS SKrS SKJrJr  S SKrS SKJrJrJ	r	J
r
Jr  S SKJrJrJrJrJrJrJrJrJrJrJrJr  \R2                  R5                  S\\\\\\/5      S 5       rS rS rS	 rS
 r\R2                  R5                  S\/ SQ4\\// SQ/ SQ/4\R@                  " S S /S S//5      / SQ4\R@                  " S S /SS //5      / SQ4\/ SQ4\/ SQ4\/ SQ4\\RB                  \RB                  \RB                  \RB                  /4S\RB                  \RB                  \RB                  \RB                  /4/	5      S 5       r"\R2                  R5                  S\S4S\\/S4\\/\\//S4\\//\\///S4/5      S 5       r#\R2                  R5                  S\/ SQ4\R@                  " S S /S S//5      / SQ4\R@                  " S S /SS //5      / SQ4\/ SQ4\/ SQ4\/ SQ4\\RB                  \RB                  \RB                  \RB                  /4S\RB                  \RB                  \RB                  \RB                  /4\\S/\RB                  \RB                  \RB                  \RB                  /4\S// SQ4\\// SQ4\\S// SQ4\\S\// SQ4/5      S 5       r$\R2                  R5                  S\S\\/\\/\\//\\//\\////5      S 5       r%S r&S r'S  r(S! r)S" r*S# r+S$ r,S% r-S& r.\R2                  R5                  S'\R@                  " S S /S(S //5      \R@                  " S S /S(S //5      S 4\R@                  " S S /S)S*/S(S /S+S*/S*S //5      \R@                  " S S*/S*S+/S S(/S*S)/S S //5      S*4\R@                  " S S /S)S*/S(S /S+S*/S*S //5      \R@                  " S*S /S+S*/S(S /S)S*/S S //5      S*4\R@                  " S S /S)S*/S(S /S+S*/S*S //5      \R@                  " S S /S*S)/S S(/S*S+/S S*//5      S,4\R@                  " S S /S(S //5      \R@                  " S S /S)S)/S(S //5      S-4/5      S. 5       r/\R2                  R5                  S/\R@                  " S S /S(S //5      \R@                  " S S /S)S)/S(S //5      S0S)4/5      S1 5       r0\R2                  R5                  S2\S4S\4S3\\4\\4\\4/5      S4 5       r1S5 r2S6 r3\R2                  R5                  S7/ S8Q5      S9 5       r4S: r5S; r6S< r7S= r8\R2                  R5                  S>\" / S?Q5      S@4\" SASB/5      S@4\	" SCSD/5      S4\
" SESE5      S 4\" 5       S 4/5      SF 5       r9g)G    N)assert_allcloseassert_array_equal)GeometryCollection
LineString
MultiPointPointPolygon)emptygeometry_collectionignore_invalidline_stringlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpoint_polygon_testdatapolygonpolygon_with_holegeomc                 <    [         R                  " U 5      S:X  d   eg )N        )shapelyarear   s    a/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_measurement.pytest_area_non_polygonr      s     <<$$$    c                  ~    [         R                  " [        [        [        /5      n U R                  5       / SQ:X  d   eg )N)      @g      X@g)\(?)r   r   r   r   r   tolistactuals    r   	test_arear$   &   s-    \\7$5}EFF==?////r   c                  x    [         R                  " [        6 n / SQn[        R                  R                  X5        g )N)g;f@;f?r   r   r   r&   )r   distancer   nptestingr   r#   expecteds     r   test_distancer,   +   s*    56F4HJJv0r   c                  t    [         R                  " [        S 5      n [        R                  " U 5      (       d   eg N)r   r'   r   r(   isnanr"   s    r   test_distance_missingr0   1   s)    eT*F88Fr   c                      [        SS5      n [        / SQ5      n[        [        R                  S:  5         [        R
                  " X5      nS S S 5        WS:X  d   eg ! , (       d  f       N= f)N      )r   r   r4   )r2   r2         r   g      ?)r   r   r   r   geos_versionr'   abr#   s      r   test_distance_duplicatedr<   6   sY    aA+,A	,,z9	: !!!' 
; S==	 
;	:s   A
A,zgeom,expected)r3   r6   r3   r6   )r   r   r2   r3   r2   )r   r   r   r2   )r   r   r2   r   )r   r   皙@r=   )1   4   r3   c                 D    [        [        R                  " U 5      U5        g r.   )r   r   boundsr   r+   s     r   test_boundsrD   @   s     w~~d+X6r   z
geom,shape   NrE   )r3   rF   )r3   r3   rF   )r3   r2   r3   rF   c                 P    [         R                  " U 5      R                  U:X  d   eg r.   )r   rB   shape)r   rI   s     r   test_bounds_dimensionsrJ   R   s!     >>$%%...r   )r   r   r3   r6   c                 D    [        [        R                  " U 5      U5        g r.   )r   r   total_boundsrC   s     r   test_total_boundsrM   `   s    ( w++D18<r   c                 P    [         R                  " U 5      R                  S:X  d   eg rG   )r   rL   rI   r   s    r   test_total_bounds_dimensionsrO   w   s#     %++t333r   c            	          [         R                  " [        [        [        [
        [        [        [        /5      n U R                  5       / SQ:X  d   eg )N)r          @r    g       @g      H@r   g@)
r   lengthr   r   r   r   r   r   r   r!   r"   s    r   test_lengthrS      sA    ^^	

F ==?BBBBr   c                  j    [         R                  " S 5      n [        R                  " U 5      (       d   eg r.   )r   rR   r(   r/   r"   s    r   test_length_missingrU      s%    ^^D!F88Fr   c                  T   [         R                  " SS/SS/SS/SS//5      n [         R                  " SS/SS/SS//5      n[        [         R                  S:  5         [         R                  " X5      nS S S 5        W[
        R                  " SSS9:X  d   eg ! , (       d  f       N*= f)	Nr   d   
   P   r5   g"}U\6@gHz>absr   linestringsr   r8   hausdorff_distancepytestapproxr9   s      r   test_hausdorff_distancera      s    aVc1XCy2s)DEAaX2wR9:A	,,z9	: ++A1 
; V]]<T::::	 
;	:s   B
B'c                  R   [         R                  " SS/SS/SS/SS//5      n [         R                  " SS/SS/SS//5      n[        [         R                  S:  5         [         R                  " XSS9nS S S 5        W[
        R                  " SS	S
9:X  d   eg ! , (       d  f       N*= f)Nr   rW   rX   rY   r5   MbP?densifygfffffG@皙?rZ   r\   r9   s      r   test_hausdorff_distance_densifyrg      s    aVc1XCy2s)DEAaX2wR9:A	,,z9	: ++A%@ 
; V]]4S1111	 
;	:s   B
B&c                      [         R                  " [        S 5      n [        R                  " U 5      (       d   e[         R                  " [        S SS9n [        R                  " U 5      (       d   eg )Nrc   rd   )r   r^   r   r(   r/   r"   s    r   test_hausdorff_distance_missingri      sR    ''t4F88F''tUCF88Fr   c                      [         R                  " [        [        [        R                  S9n [        R
                  " U 5      (       d   eg Nrd   )r   r^   r   r(   nanr/   r"   s    r   test_hausdorff_densify_nanrm      s/    ''ubffEF88Fr   c                  |    [         R                  " [        [        5      n [        R
                  " U 5      (       d   eg r.   )r   r'   r   r
   r(   r/   r"   s    r   test_distance_emptyro      s)    eU+F88Fr   c                  |    [         R                  " [        [        5      n [        R
                  " U 5      (       d   eg r.   r   r^   r   r
   r(   r/   r"   s    r   test_hausdorff_distance_emptyrr      s)    ''u5F88Fr   c                  z    [         R                  " [        [        SS9n [        R
                  " U 5      (       d   eg N皙?rd   rq   r"   s    r   %test_hausdorff_distance_densify_emptyrv      s+    ''ucBF88Fr   zgeom1, geom2, expectedrW   2         gf{q@f{Q@c                 f    [         R                  " X5      nU[        R                  " USS9:X  d   eg N-q=rZ   r   frechet_distancer_   r`   )geom1geom2r+   r#   s       r   test_frechet_distancer      s.    J %%e3FV]]87777r   zgeom1, geom2, densify, expectedgMb`?c                 d    [         R                  " XUS9nU[        R                  " USS9:X  d   eg )Nrd   r}   rZ   r~   )r   r   re   r+   r#   s        r   test_frechet_distance_densifyr      s/     %%eGDFV]]87777r   zgeom1, geom2)NNc                 j    [         R                  " X5      n[        R                  " U5      (       d   eg r.   )r   r   r(   r/   )r   r   r#   s      r   5test_frechet_distance_nan_for_invalid_geometry_inputsr     s)     %%e3F88Fr   c            	         [         R                  " [         R                  " SS/SS//5      [         R                  " SS/SS/SS//5      / SQS9n [        R                  " / SQ5      n[        R
                  R                  X5        g )Nr   rW   rw   )rf   ru   r2   rd   )rw   gz߶~I@rz   )r   r   r]   r(   arrayr)   assert_array_almost_equalr*   s     r   test_frechet_densify_ndarrayr     st    %%aVc1X./aVb"XQx89F
 xx;<HJJ((:r   c                      [         R                  " [        [        [        R                  S9n [        R
                  " U 5      (       d   eg rk   )r   r   r   r(   rl   r/   r"   s    r   test_frechet_densify_nanr     s/    %%k;OF88Fr   re   )r   r?   r3   c                     [         R                  " [        R                  SS9   [        R                  " [
        [
        U S9  S S S 5        g ! , (       d  f       g = f)NzFraction is not in range)matchrd   )r_   raisesr   GEOSExceptionr   r   rd   s    r   #test_frechet_densify_invalid_valuesr   #  s6    	w,,4N	O  k7K 
P	O	Os   A
Ac                  z    [         R                  " [        [        SS9n [        R
                  " U 5      (       d   eg rt   )r   r   r   r
   r(   r/   r"   s    r   #test_frechet_distance_densify_emptyr   )  s+    %%k5#FF88Fr   c                  j    [         R                  " [        [        [        /5      n [        U / SQ5        g )N)rQ   rQ   rf   )r   minimum_clearancer   r   r   r   r"   s    r   test_minimum_clearancer   .  s$    &&1BM'RSFFO,r   c                      [         R                  " [        [        /5      n [        R
                  " U 5      R                  5       (       d   eg r.   )r   r   r   r
   r(   isinfallr"   s    r   "test_minimum_clearance_nonexistentr   3  s4    &&u~6F88F!!!!r   c                  j    [         R                  " S 5      n [        R                  " U 5      (       d   eg r.   )r   r   r(   r/   r"   s    r   test_minimum_clearance_missingr   8  s'    &&t,F88Fr   zgeometry, expected)r      )r   rX   )rX   r   )r   r   r   r   )r2   r   )r2   rX   )r3   r3   )rF   r3   r3   c                 f    [         R                  " U 5      nU[        R                  " USS9:X  d   eg r|   )r   minimum_bounding_radiusr_   r`   )geometryr+   r#   s      r   test_minimum_bounding_radiusr   =  s-    4 ,,X6FV]]87777r   ):numpyr(   r_   numpy.testingr   r   r   r   r   r   r   r	   shapely.tests.commonr
   r   r   r   r   r   r   r   r   r   r   r   markparametrizer   r$   r,   r0   r<   r]   rl   rD   rJ   rM   rO   rS   rU   ra   rg   ri   rm   ro   rr   rv   r   r   r   r   r   r   r   r   r   r   r    r   r   <module>r      s     =  N N     

%
%0
1
 	
	l;<			q!fq!f-	.=			q!fq!f-	.=	l#	()	o.	01	/0
77 	
	v&+
% 0	19=;
 GU#3"4	5|D	/	/ 				q!fq!f-	.=			q!fq!f-	.=	l#	()	o.	01	/0
	?@
%
&
	|,
k	*L9&='&= 
	
	/0+
	7E"2!34	4	4C
;2



  !Q#q 23!Q#q 23	
 !Q"cS!HsCj3PQ( ST!SC:3x#rQPQF ST	
 !Q"cS!HsCj3PQ( ST#qC:Qx"cQPQF ST	
 !Q"cS!HsCj3PQ( ST!Q#rQHsCj1c( ST	
 !Q#q 23!Q"bC8 <=	
7 #H8I#H8
 % !Q#q 23!Q"bC8 <=		
88
 	d	{	e		


;
 J/L 0L

-
"

  >?	

 ()	

 '(	

 !QK	

  	
#28328r   