
    _ h)                     h   d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlmZ d Zd Zd Zd Z ed	d	       eg d
       eg d
       eg d
       e
dg       e	g d
g       e eg d
      g       e ed	d	      g      gZej.                  j1                   e j2                         dk(  d      ej.                  j5                  de      d               Zej.                  j5                  de      d        Zd Zd Zd Zej.                  j1                  ej@                  dk  d      d        Z!d Z"ej.                  j5                  dg d      ej.                  j5                  dg d      d               Z#ej.                  j1                  ej@                  dk  d      d        Z$d Z%ej.                  j5                  dg d       d!        Z&ej.                  j5                  dg d"      d#        Z'ej.                  j5                  d$ ejP                  d% e)d&'      ej.                  j1                  ej@                  dk  d      (      d) e)d*+      fd, e)d-.      fg      d/        Z*ej.                  j5                  dg d0      d1        Z+ej.                  j5                  dd2d3g      d4        Z,ej.                  j5                  dd5d6g      d7        Z-ej.                  j5                  dd8d9g      d:        Z.d; Z/d< Z0d= Z1d> Z2d? Z3d@ Z4dA Z5dB Z6dC Z7dD Z8dE Z9y)F    N)GeometryCollection
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)ShapelyDeprecationWarning)assert_geometries_equalc                  2    t        t                     du sJ y NF)boolr
        /home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/geometry/test_geometry_base.pytest_polygonr      s    	?e###r   c                  2    t        t                     du sJ y r   )r   r   r   r   r   test_linestringr      s    
&&&r   c                  2    t        t                     du sJ y r   )r   r	   r   r   r   
test_pointr      s    =E!!!r   c                  2    t        t                     du sJ y r   )r   r   r   r   r   test_geometry_collectionr   "   s    "$%...r      )r   r   r   r   r   r   r   r   PyPyz.Setting custom attributes doesn't fail on PyPy)reasongeomc                 n    t        j                  t              5  d| _        d d d        y # 1 sw Y   y xY w)Ntest)pytestraisesAttributeErrorname)r    s    r   test_setattr_disallowedr'   2   s,     
~	& 	  s   +4c                 .    t        j                  |       }y )N)weakrefref)r    _s     r   test_weakrefabler,   <   s    DAr   c                      t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   y xY w)NzPOINT (1 1))r#   r$   	TypeErrorshapelyGeometryr   r   r   test_base_class_not_callabler1   A   s1    	y	! ('( ( (s	   9Ac                      t        dd      } t        j                  t              5  | j	                         }d d d        | j
                  k(  sJ y # 1 sw Y   xY wNr   )r	   r#   warnsr   geometryType	geom_typer    r6   s     r   test_GeometryType_deprecatedr8   F   sQ    A;D	/	0 (%%'	( &&&( (s   AAc                      t        dd      } t        j                  t              5  | j                  }d d d        | j
                  k(  sJ y # 1 sw Y   xY wr3   )r	   r#   r4   r   typer6   r7   s     r   test_type_deprecatedr;   O   sL    A;D	/	0 II	 &&& s   AA)   
   r   zGEOS < 3.10c                  ~    t        ddg      } | j                  d      }|j                  t        g d            sJ y )Nr   r   r=      )max_segment_length)r   )r   r@   r?   )r   
segmentizeequals)lineresults     r   test_segmentizerF   X   s9    vw'(D___2F==$=>???r   c                  v    ddg} t        |       }|j                         }|j                  d d  | d d d   k(  sJ y )Nr   )r      )r   reversecoords)rK   rD   rE   s      r   test_reverserL   _   s@    fFfD\\^F==vdd|+++r   op)unionintersection
differencesymmetric_difference	grid_size)r   r   rH   c                     t        j                  dddd      }t        j                  dddd      } t        ||       ||      } t        t         |       |||      }||k(  sJ y )Nr   g      @rH   r<   )rR   )r/   boxgetattr)rM   rR   geom1geom2rE   expecteds         r   test_binary_op_grid_sizerY   f   sf    
 KK1c3'EKK1a#EWUB;F#ww#E5IFHXr   c                      t        dd      } t        ddg      }| j                  |d      du sJ | j                  |d      du sJ y )Nr   r   r?         ?Fg      ?T)r	   r   dwithin)pointrD   s     r   test_dwithinr^   s   sN    !QKEvw'(D==s#u,,,==s#t+++r   c                      t        g d      } t        ddg      }| j                  |      du sJ | j                  |      du sJ y )N)r   r=   r=   )r=   ir   )r=   r   FT)r
   r   contains_properlycontains)polygonrD   s     r   test_contains_properlyrd   {   sN    34Gvw'(D$$T*e333D!T)))r   )convex_hullenvelopeoriented_envelopeminimum_rotated_rectanglec                 p    t        g d      }t        ||       } t        t        |       |      }||k(  sJ y )N)r   r?   r`   )r   rU   r/   )rM   r    rE   rX   s       r   test_constructive_propertiesrj      s<     12DT2F#ww#D)HXr   )crossesrb   ra   
covered_bycoversdisjointrC   
intersectsoverlapstoucheswithinc           
         t        g d      }t        j                  g d      } t        ||       |      }t	        |t
        j                        sJ t        j                  |D cg c]  } t        ||       |       c}t              }t
        j                  j                  ||        t        ||       |d         }t        |      t        u sJ y c c}w Nr   r   r   )r   r   r   r   )r[   r[   r   dtyper   r
   r/   pointsrU   
isinstancenpndarrayarrayr   testingassert_array_equalr:   rM   rc   rz   rE   prX   s         r   %test_array_argument_binary_predicatesr      s    " >?G^^89F!WWb!&)Ffbjj)))xx&AQ-"-a0ANHJJ!!&(3 "WWb!&),F<4 Bs   &Cz
op, kwargsr\   r[   )distance)marksequals_exactg{Gz?)	tolerancerelate_patternz	T*F**F***)patternc           
         t        g d      }t        j                  g d      } t        ||       |fi |}t	        |t
        j                        sJ t        j                  |D cg c]  } t        ||       |fi | c}t              }t
        j                  j                  ||        t        ||       |d   fi |}t        |      t        u sJ y c c}w rt   ry   )rM   kwargsrc   rz   rE   r   rX   s          r   &test_array_argument_binary_predicates2r      s     >?G^^89F!WWb!&3F3Ffbjj)))xxFKq-"-a:6:KSWXHJJ!!&(3 "WWb!&)6v6F<4 Ls   'C)rP   rO   rQ   rN   c           
         t        g d      }t        j                  t        j                  g d      d      } t	        ||       |      }t        |t        j                        sJ t        j                  |D cg c]  } t	        ||       |       c}t              }t        ||        t	        ||       |d         }t        |t         t        f      sJ y c c}w )Nru   rv   r[   rw   r   )r
   r/   bufferrz   rU   r{   r|   r}   r~   objectr   r   )rM   rT   polygonsrE   grX   s         r   test_array_argument_binary_geor      s     :
;C~~gnn-IJCPHWS"h'Ffbjj)))xxh?)b)!,?vNHFH- WS"hqk*Ffw5666 @s   :Cr   hausdorff_distancec           
         t        g d      }t        j                  g d      } t        ||       |      }t	        |t
        j                        sJ t        j                  |D cg c]  } t        ||       |       c}d      }t
        j                  j                  ||        t        ||       |d         }t        |      t        u sJ y c c}w )Nru   rv   float64rw   r   )r
   r/   rz   rU   r{   r|   r}   r~   r   r   r:   floatr   s         r   test_array_argument_floatr      s    >?G^^89F!WWb!&)Ffbjj)))xx&AQ-"-a0ASHJJ!!&(3 "WWb!&),F<5    Bs   &Cline_interpolate_pointinterpolatec                    t        g d      }t        j                  g d      } t        ||       |      }t	        |t        j
                        sJ t        j                  |D cg c]  }|j                  |       c}t              }t        ||        t        ||       |d         }t	        |t              sJ y c c}w )Nr   r   r   r   r[   r   rw   r   )
r   r|   r~   rU   r{   r}   r   r   r   r	   )rM   rD   	distancesrE   drX   s         r    test_array_argument_linear_pointr      s    ./D%IWT2y)Ffbjj)))xx1:;A	$	$Q	';6H FH- WT2y|,Ffe$$$ 	<s   &B?line_locate_pointprojectc                    t        g d      }t        j                  g d      } t        ||       |      }t	        |t
        j                        sJ t        j                  |D cg c]  }|j                  |       c}d      }t
        j                  j                  ||        t        ||       |d         }t        |      t        u sJ y c c}w )Nr   rv   r   rw   r   )r   r/   rz   rU   r{   r|   r}   r~   r   r   r   r:   r   )rM   rD   rz   rE   r   rX   s         r    test_array_argument_linear_floatr      s    ./D^^89FWT2v&Ffbjj)))xxFCq//2C9UHJJ!!&(3 WT2vay)F<5    Ds   &Cc                     t        dd      } t        j                  g d      }| j                  |      }t	        |t        j
                        sJ t        j                  |D cg c]  }| j                  |       c}t              }t        ||       | j                  |d         }t	        |t              sJ y c c}w )Nr   r   rw   r   )	r	   r|   r~   r   r{   r}   r   r   r
   )r]   r   rE   r   rX   s        r   test_array_argument_bufferr     s    !QKE%I\\)$Ffbjj)))xx)<Qa<FKHFH- \\)A,'Ffg&&& =s   $B<c            	         t        dd      } t        j                  d      5  | j                  ddd       d d d        t        j                  d      5  | j                  dddd       d d d        t        j                         5  | j                  ddddd       d d d        t        j                         5  | j                  dddddd	       d d d        y # 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   UxY w# 1 sw Y   y xY w)
Nr   z:positional argument `cap_style` for `buffer` is deprecatedmatch      ?   roundzMpositional arguments `cap_style` and `join_style` for `buffer` are deprecatedg      @F)r	   r#   deprecated_callr   r]   s    r    test_buffer_deprecate_positionalr     s    !QKE			J
 & 	S!W%& 
		&
 / 	S!Wg.	/
 
			! 4S!Wgs34				! ;S!WgsE:; ;& &/ /
4 4; ;s/   CC$C08C<C!$C-0C9<Dc                      t        ddg      } t        j                  d      5  | j                  dd       d d d        y # 1 sw Y   y xY w)Nr   r   zDpositional argument `preserve_topology` for `simplify` is deprecatedr   r   T)r   r#   r   simplify)
linestrings    r   "test_simplify_deprecate_positionalr   +  sI    VV,-J			T
 ' 	C&' ' '   A  A	c                      t        dd      } t        j                  d      5  | j                  | d        d d d        y # 1 sw Y   y xY w)Nr   z>positional argument `grid_size` for `difference` is deprecatedr   )r	   r#   r   rP   r   s    r   $test_difference_deprecate_positionalr   3  sE    !QKE			N
 & 	%& & &	   ?Ac                      t        dd      } t        j                  d      5  | j                  | d        d d d        y # 1 sw Y   y xY w)Nr   z@positional argument `grid_size` for `intersection` is deprecatedr   )r	   r#   r   rO   r   s    r   &test_intersection_deprecate_positionalr   ;  sE    !QKE			P
 ( 	5$'( ( (r   c                      t        dd      } t        j                  d      5  | j                  | d        d d d        y # 1 sw Y   y xY w)Nr   zHpositional argument `grid_size` for `symmetric_difference` is deprecatedr   )r	   r#   r   rQ   r   s    r   .test_symmetric_difference_deprecate_positionalr   C  sE    !QKE			X
 0 	""5$/0 0 0r   c                      t        dd      } t        j                  d      5  | j                  | d        d d d        y # 1 sw Y   y xY w)Nr   z9positional argument `grid_size` for `union` is deprecatedr   )r	   r#   r   rN   r   s    r   test_union_deprecate_positionalr   K  sC    !QKE			I
 ! 	E4 ! ! !r   c                      t        ddg      } t        j                  d      5  | j                  t	        dd      d       d d d        y # 1 sw Y   y xY w)Nr   g       @g      @g      @zFpositional argument `normalized` for `line_locate_point` is deprecatedr   r   F)r   r#   r   r   r	   line_strings    r   +test_line_locate_point_deprecate_positionalr   S  sO    j*56K			V
 : 	%%eAqk59: : :   A

Ac                      t        ddg      } t        j                  d      5  | j                  t	        dd      d       d d d        y # 1 sw Y   y xY w)Nr   r   z<positional argument `normalized` for `project` is deprecatedr   r   F)r   r#   r   r   r	   r   s    r   !test_project_deprecate_positionalr   [  sO    j*56K			L
 0 	E!QK/0 0 0r   c                      t        ddg      } t        j                  d      5  | j                  dd       d d d        y # 1 sw Y   y xY w)Nr   r   zKpositional argument `normalized` for `line_interpolate_point` is deprecatedr   r   F)r   r#   r   r   r   s    r   0test_line_interpolate_point_deprecate_positionalr   c  sK    j*56K			
 5 	**1e4	5 5 5r   c                      t        ddg      } t        j                  d      5  | j                  dd       d d d        y # 1 sw Y   y xY w)Nr   r   z@positional argument `normalized` for `interpolate` is deprecatedr   r   F)r   r#   r   r   r   s    r   %test_interpolate_deprecate_positionalr   l  sI    j*56K			P
 * 	5)* * *r   ):platformr)   numpyr|   r#   r/   r   r   r   r   r   r   r	   r
   shapely.errorsr   shapely.testingr   r   r   r   r   geometries_all_typesmarkskipifpython_implementationparametrizer'   r,   r1   r8   r;   geos_versionrF   rL   rY   r^   rd   rj   r   paramdictr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s       	 	 	 5 3$'"/
 
!QK/0/0,-x567':;<=a}%	  "H""$.;   !56 7	

 !56 7(
'' G((:5mL@ M@, 
I i0 1 G((:5mL, M,* 
W   !   #++$$$$z1- % 	
 
-.	445
   77 
,@AB! C!  8-HI% J%   3Y?@! A!';"'&(0!:05*r   