
    (&h&                     	   d dl Zd dlZd dlmZmZ d dlZd dlmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ ej                            deeeeeeg          d             Zd Zd Zd	 Zd
 Zej                            deg dfeegg dg dgf ej         d d gd dgg          g df ej         d d gdd gg          g dfeg dfeg dfeg dfeej!        ej!        ej!        ej!        gfdej!        ej!        ej!        ej!        gfg	          d             Z"ej                            dedfdeegdfeegeeggdfeeggeegggdfg          d             Z#ej                            deg df ej         d d gd dgg          g df ej         d d gdd gg          g dfeg dfeg dfeg dfeej!        ej!        ej!        ej!        gfdej!        ej!        ej!        ej!        gfeedgej!        ej!        ej!        ej!        gfedgg dfeegg dfeedgg dfeedegg dfg          d             Z$ej                            dedeegeegeeggeeggeegggg          d             Z%d Z&d Z'd  Z(d! Z)d" Z*d# Z+d$ Z,d% Z-d& Z.ej                            d' ej         d d gd(d gg           ej         d d gd(d gg          d f ej         d d gd)d*gd(d gd+d*gd*d gg           ej         d d*gd*d+gd d(gd*d)gd d gg          d*f ej         d d gd)d*gd(d gd+d*gd*d gg           ej         d*d gd+d*gd(d gd)d*gd d gg          d*f ej         d d gd)d*gd(d gd+d*gd*d gg           ej         d d gd*d)gd d(gd*d+gd d*gg          d,f ej         d d gd(d gg           ej         d d gd)d)gd(d gg          d-fg          d.             Z/ej                            d/ ej         d d gd(d gg           ej         d d gd)d)gd(d gg          d0d)fg          d1             Z0ej                            d2edfdefd3eefeefeefg          d4             Z1d5 Z2d6 Z3ej                            d7g d8          d9             Z4d: Z5d; Z6d< Z7d= Z8ej                            d> eg d?          d@f edAdBg          d@f e	dCdDg          df e
dEdE          d f e            d fg          dF             Z9dS )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                 :    t          j        |           dk    sJ d S )N        )shapelyarear   s    Y/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/test_measurement.pytest_area_non_polygonr      s%     <$$$$$$    c                      t          j        t          t          t          g          } |                                 g dk    sJ d S )N)      @g      X@g)\(?)r   r   r   r   r   tolistactuals    r   	test_arear$   &   s?    \7$5}EFFF==??/////////r   c                  t    t          j        t           } g d}t          j                            | |           d S )N)g;f@;f?r   r   r   r&   )r   distancer   nptestingr   r#   expecteds     r   test_distancer,   +   s9    56F444HJvx00000r   c                  f    t          j        t          d           } t          j        |           sJ d S N)r   r'   r   r(   isnanr"   s    r   test_distance_missingr0   1   s0    eT**F8Fr   c                      t          dd          } t          g d          }t          t          j        dk               5  t          j        | |          }d d d            n# 1 swxY w Y   |dk    sJ d S )N      )r   r   r4   )r2   r2         r   g      ?)r   r   r   r   geos_versionr'   abr#   s      r   test_distance_duplicatedr<   6   s    aA+++,,A	,z9	:	: ( ( !!Q''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( S======s   A!!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                 J    t          t          j        |           |           d S r.   )r   r   boundsr   r+   s     r   test_boundsrD   @   s$     w~d++X66666r   z
geom,shape   NrE   )r3   rF   )r3   r3   rF   )r3   r2   r3   rF   c                 D    t          j        |           j        |k    sJ d S r.   )r   rB   shape)r   rI   s     r   test_bounds_dimensionsrJ   R   s(     >$%......r   )r   r   r3   r6   c                 J    t          t          j        |           |           d S r.   )r   r   total_boundsrC   s     r   test_total_boundsrM   `   s%    ( w+D118<<<<<r   c                 D    t          j        |           j        dk    sJ d S rG   )r   rL   rI   r   s    r   test_total_bounds_dimensionsrO   w   s)     %%+t333333r   c            	          t          j        t          t          t          t
          t          t          t          g          } | 	                                g dk    sJ d S )N)r          @r    g       @g      H@r   g@)
r   lengthr   r   r   r   r   r   r   r!   r"   s    r   test_lengthrS      sU    ^	

 
F ==??BBBBBBBBBr   c                  Z    t          j        d           } t          j        |           sJ d S r.   )r   rR   r(   r/   r"   s    r   test_length_missingrU      s-    ^D!!F8Fr   c                  L   t          j        ddgddgddgddgg          } t          j        ddgddgddgg          }t          t           j        dk               5  t          j        | |          }d d d            n# 1 swxY w Y   |t          j        dd          k    sJ d S )	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EEAaX2wR9::A	,z9	:	: 2 2 +Aq112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 V]<T:::::::::s   A==BBc                  P   t          j        ddgddgddgddgg          } t          j        ddgddgddgg          }t          t           j        dk               5  t          j        | |d          }d d d            n# 1 swxY w Y   |t          j        dd	
          k    sJ d S )Nr   rW   rX   rY   r5   MbP?densifygfffffG@皙?rZ   r\   r9   s      r   test_hausdorff_distance_densifyrg      s   aVc1XCy2s)DEEAaX2wR9::A	,z9	:	: A A +Aq%@@@A A A A A A A A A A A A A A A V]4S111111111s   A??BBc                      t          j        t          d           } t          j        |           sJ t          j        t          d d          } t          j        |           sJ d S )Nrc   rd   )r   r^   r   r(   r/   r"   s    r   test_hausdorff_distance_missingri      s]    't44F8F'tUCCCF8Fr   c                      t          j        t          t          t          j                  } t          j        |           sJ d S Nrd   )r   r^   r   r(   nanr/   r"   s    r   test_hausdorff_densify_nanrm      s7    'ubfEEEF8Fr   c                  p    t          j        t          t                    } t	          j        |           sJ d S r.   )r   r'   r   r
   r(   r/   r"   s    r   test_distance_emptyro      s0    eU++F8Fr   c                  p    t          j        t          t                    } t	          j        |           sJ d S r.   r   r^   r   r
   r(   r/   r"   s    r   test_hausdorff_distance_emptyrr      s0    'u55F8Fr   c                  t    t          j        t          t          d          } t	          j        |           sJ d S N皙?rd   rq   r"   s    r   %test_hausdorff_distance_densify_emptyrv      s5    'ucBBBF8Fr   zgeom1, geom2, expectedrW   2         gf{q@f{Q@c                 h    t          j        | |          }|t          j        |d          k    sJ d S N-q=rZ   r   frechet_distancer_   r`   )geom1geom2r+   r#   s       r   test_frechet_distancer      s=    J %eU33FV]8777777777r   zgeom1, geom2, densify, expectedrc   c                 l    t          j        | ||          }|t          j        |d          k    sJ d S )Nrd   r}   rZ   r~   )r   r   re   r+   r#   s        r   test_frechet_distance_densifyr      sA     %eUGDDDFV]8777777777r   zgeom1, geom2)NNc                 \    t          j        | |          }t          j        |          sJ d S r.   )r   r   r(   r/   )r   r   r#   s      r   5test_frechet_distance_nan_for_invalid_geometry_inputsr     s2     %eU33F8Fr   c            	      
   t          j        t          j        ddgddgg          t          j        ddgddgddgg          g d          } t          j        g d          }t          j                            | |           d S )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     s    %aVc1X.//aVb"XQx899  F
 x;;;<<HJ((:::::r   c                      t          j        t          t          t          j                  } t          j        |           sJ d S rk   )r   r   r   r(   rl   r/   r"   s    r   test_frechet_densify_nanr     s7    %k;OOOF8Fr   re   )r   r?   r3   c                     t          j        t          j        d          5  t          j        t
          t
          |            d d d            d S # 1 swxY w Y   d S )NzFraction is not in range)matchrd   )r_   raisesr   GEOSExceptionr   r   rd   s    r   #test_frechet_densify_invalid_valuesr   #  s    	w,4N	O	O	O L L k7KKKKL L L L L L L L L L L L L L L L L Ls   "AAAc                  t    t          j        t          t          d          } t	          j        |           sJ d S rt   )r   r   r   r
   r(   r/   r"   s    r   #test_frechet_distance_densify_emptyr   )  s5    %k5#FFFF8Fr   c                  v    t          j        t          t          t          g          } t          | g d           d S )N)rQ   rQ   rf   )r   minimum_clearancer   r   r   r   r"   s    r   test_minimum_clearancer   .  s4    &1BM'RSSFFOOO,,,,,r   c                      t          j        t          t          g          } t	          j        |                                           sJ d S r.   )r   r   r   r
   r(   isinfallr"   s    r   "test_minimum_clearance_nonexistentr   3  s>    &u~66F8F!!!!!!!r   c                  Z    t          j        d           } t          j        |           sJ d S r.   )r   r   r(   r/   r"   s    r   test_minimum_clearance_missingr   8  s.    &t,,F8Fr   zgeometry, expected)r      )r   rX   )rX   r   )r   r   r   r   )r2   r   )r2   rX   )r3   r3   )rF   r3   r3   c                 f    t          j        |           }|t          j        |d          k    sJ d S r|   )r   minimum_bounding_radiusr_   r`   )geometryr+   r#   s      r   test_minimum_bounding_radiusr   =  s:    4 ,X66FV]877777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 N N N N N N N N N N N N                             

 
% %
 
%0 0 0
1 1 1  
   	
	lll;<		q!fq!f-	.	.=		q!fq!f-	.	.=	lll#	((()	ooo.	01	/0
 7 7 7 	
	v&+
% 0	19=;
 GU#3"4	5|D	 	/ /	 	/ 			q!fq!f-	.	.=		q!fq!f-	.	.=	lll#	((()	ooo.	01	/0
	?@
%
&
	|||,
k	*LLL9 &= =' &= 
	
	/0+
	7E"2!34	 	4 4	 	4C C C  
; ; ;2 2 2    
  
  
  
   G!Q#q 233G!Q#q 233	
  G!Q"cS!HsCj3PQ( STTG!SC:3x#rQPQF STT	
  G!Q"cS!HsCj3PQ( STTG#qC:Qx"cQPQF STT	
  G!Q"cS!HsCj3PQ( STTG!Q#rQHsCj1c( STT	
  G!Q#q 233G!Q"bC8 <==	
7 # #H8 8I# #H8
 %  G!Q#q 233G!Q"bC8 <==		
 8 8 8
 	d	{	e		
 
 
 

; ; ;  
 JJJ//L L 0/L
  
- - -
" " "
  
  G>>>??	

 J())	

 J'((	

 E!QKK	

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