
    _ 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j2                  j5                  deeeeeeg      d        Zd Zd Zd	 Zd
 Zej2                  j5                  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jB                  ejB                  ejB                  ejB                  gfdejB                  ejB                  ejB                  ejB                  gfg	      d        Z"ej2                  j5                  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j2                  j5                  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jB                  ejB                  ejB                  ejB                  gfdejB                  ejB                  ejB                  ejB                  gfeedgejB                  ejB                  ejB                  ejB                  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j2                  j5                  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j2                  j5                  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j2                  j5                  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j2                  j5                  d2edfdefd3eefeefeefg      d4        Z1d5 Z2d6 Z3ej2                  j5                  d7g d8      d9        Z4d: Z5d; Z6d< Z7d= Z8ej2                  j5                  d> eg d?      d@f edAdBg      d@f e	dCdDg      df e
dEdE      d f e       d fg      dF        Z9y)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                 8    t        j                  |       dk(  sJ y )N        )shapelyarear   s    z/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/test_measurement.pytest_area_non_polygonr      s     <<$$$    c                  z    t        j                  t        t        t        g      } | j                         g dk(  sJ y )N)      @g      X@g)\(?)r   r   r   r   r   tolistactuals    r   	test_arear$   &   s-    \\7$5}EFF==?////r   c                  x    t        j                  t         } g d}t        j                  j                  | |       y )N)g;f@;f?r   r   r   r&   )r   distancer   nptestingr   r#   expecteds     r   test_distancer,   +   s,    56F4HJJvx0r   c                  f    t        j                  t        d       } t        j                  |       sJ y N)r   r'   r   r(   isnanr"   s    r   test_distance_missingr0   1   s&    eT*F88Fr   c                      t        dd      } t        g d      }t        t        j                  dk        5  t        j
                  | |      }d d d        dk(  sJ y # 1 sw Y   xY w)N      )r   r   r4   )r2   r2         r   g      ?)r   r   r   r   geos_versionr'   abr#   s      r   test_distance_duplicatedr<   6   sb    aA+,A	,,z9	: ( !!!Q'( 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                 B    t        t        j                  |       |       y 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                 L    t        j                  |       j                  |k(  sJ y r.   )r   rB   shape)r   rI   s     r   test_bounds_dimensionsrJ   R   s!     >>$%%...r   )r   r   r3   r6   c                 B    t        t        j                  |       |       y r.   )r   r   total_boundsrC   s     r   test_total_boundsrM   `   s    ( w++D18<r   c                 L    t        j                  |       j                  dk(  sJ y rG   )r   rL   rI   r   s    r   test_total_bounds_dimensionsrO   w   s#     %++t333r   c            	          t        j                  t        t        t        t
        t        t        t        g      } | j                         g dk(  sJ y )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                  \    t        j                  d       } t        j                  |       sJ y r.   )r   rR   r(   r/   r"   s    r   test_length_missingrU      s"    ^^D!F88Fr   c                  H   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        t        j                  dd      k(  sJ y # 1 sw Y   &xY w)	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	: 2 ++Aq12 V]]<T::::	2 2s   BB!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 d        t        j                  dd	
      k(  sJ y # 1 sw Y   &xY w)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 ++Aq%@A V]]4S1111	A As   BB#c                      t        j                  t        d       } t        j                  |       sJ t        j                  t        d d      } t        j                  |       sJ y )Nrc   rd   )r   r^   r   r(   r/   r"   s    r   test_hausdorff_distance_missingri      sL    ''t4F88F''tUCF88Fr   c                      t        j                  t        t        t        j                        } t        j
                  |       sJ y Nrd   )r   r^   r   r(   nanr/   r"   s    r   test_hausdorff_densify_nanrm      s,    ''ubffEF88Fr   c                  n    t        j                  t        t              } t	        j
                  |       sJ y r.   )r   r'   r   r
   r(   r/   r"   s    r   test_distance_emptyro      s&    eU+F88Fr   c                  n    t        j                  t        t              } t	        j
                  |       sJ y r.   r   r^   r   r
   r(   r/   r"   s    r   test_hausdorff_distance_emptyrr      s&    ''u5F88Fr   c                  r    t        j                  t        t        d      } t	        j
                  |       sJ y 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                 h    t        j                  | |      }|t        j                  |d      k(  sJ y N-q=rZ   r   frechet_distancer_   r`   )geom1geom2r+   r#   s       r   test_frechet_distancer      s0    J %%eU3FV]]87777r   zgeom1, geom2, densify, expectedrc   c                 l    t        j                  | ||      }|t        j                  |d      k(  sJ y )Nrd   r}   rZ   r~   )r   r   re   r+   r#   s        r   test_frechet_distance_densifyr      s1     %%eUGDFV]]87777r   zgeom1, geom2)NNc                 ^    t        j                  | |      }t        j                  |      sJ y r.   )r   r   r(   r/   )r   r   r#   s      r   5test_frechet_distance_nan_for_invalid_geometry_inputsr     s(     %%eU3F88F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
                  j                  | |       y )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     sv    %%aVc1X./aVb"XQx89F
 xx;<HJJ((:r   c                      t        j                  t        t        t        j                        } t        j
                  |       sJ y rk   )r   r   r   r(   rl   r/   r"   s    r   test_frechet_densify_nanr     s,    %%k;OF88Fr   re   )r   r?   r3   c                     t        j                  t        j                  d      5  t        j                  t
        t
        |        d d d        y # 1 sw Y   y xY w)NzFraction is not in range)matchrd   )r_   raisesr   GEOSExceptionr   r   rd   s    r   #test_frechet_densify_invalid_valuesr   #  sB    	w,,4N	O L  k7KL L Ls   !AAc                  r    t        j                  t        t        d      } t	        j
                  |       sJ y rt   )r   r   r   r
   r(   r/   r"   s    r   #test_frechet_distance_densify_emptyr   )  s(    %%k5#FF88Fr   c                  h    t        j                  t        t        t        g      } t        | g d       y )N)rQ   rQ   rf   )r   minimum_clearancer   r   r   r   r"   s    r   test_minimum_clearancer   .  s$    &&1BM'RSFFO,r   c                      t        j                  t        t        g      } t	        j
                  |       j                         sJ y r.   )r   r   r   r
   r(   isinfallr"   s    r   "test_minimum_clearance_nonexistentr   3  s1    &&u~6F88F!!!r   c                  \    t        j                  d       } t        j                  |       sJ y 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    t        j                  |       }|t        j                  |d      k(  sJ y 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      s3     =  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



   G!Q#q 23G!Q#q 23	
  G!Q"cS!HsCj3PQ( STG!SC:3x#rQPQF ST	
  G!Q"cS!HsCj3PQ( STG#qC:Qx"cQPQF ST	
  G!Q"cS!HsCj3PQ( STG!Q#rQHsCj1c( ST	
  G!Q#q 23G!Q"bC8 <=	
7 #H8I#H8
 %  G!Q#q 23G!Q"bC8 <=		
88
 	d	{	e		


;
 J/L 0L

-
"

  >?	

 ()	

 '(	

 !QK	

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