
    9i)                     8   S SK r S SKrS SKrS SKrS SKrS SKJrJrJrJ	r	J
r
JrJrJr  S SKJr  S SKJr  S rS rS rS r\" S	S	5      \" / S
Q5      \" / S
Q5      \" / S
Q5      \
" S/5      \	" / S
Q/5      \" \" / S
Q5      /5      \" \" S	S	5      /5      /r\R.                  R1                  \ R2                  " 5       S:H  SS9\R.                  R5                  S\5      S 5       5       r\R.                  R5                  S\5      S 5       rS rS rS r\R.                  R1                  \R@                  S:  SS9S 5       r!S r"\R.                  R5                  S/ SQ5      \R.                  R5                  S/ SQ5      S 5       5       r#\R.                  R1                  \R@                  S:  SS9S 5       r$S r%\R.                  R5                  S/ S Q5      S! 5       r&\R.                  R5                  S/ S"Q5      S# 5       r'\R.                  R5                  S$\RP                  " S%\)" S&S'9\R.                  R1                  \R@                  S:  SS9S(9S)\)" S*S+94S,\)" S-S.94/5      S/ 5       r*\R.                  R5                  S/ S0Q5      S1 5       r+\R.                  R5                  SS2S3/5      S4 5       r,\R.                  R5                  SS5S6/5      S7 5       r-\R.                  R5                  SS8S9/5      S: 5       r.S; r/S< r0S= r1S> r2S? r3S@ r4SA r5SB r6SC r7SD r8SE r9g)F    N)GeometryCollection
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)ShapelyDeprecationWarning)assert_geometries_equalc                  4    [        [        5       5      SL d   eg NF)boolr
        i/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/shapely/tests/geometry/test_geometry_base.pytest_polygonr      s    	?e###r   c                  4    [        [        5       5      SL d   eg r   )r   r   r   r   r   test_linestringr      s    
&&&r   c                  4    [        [        5       5      SL d   eg r   )r   r	   r   r   r   
test_pointr      s    =E!!!r   c                  4    [        [        5       5      SL d   eg 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                 z    [         R                  " [        5         SU l        S S S 5        g ! , (       d  f       g = f)Ntest)pytestraisesAttributeErrorname)r    s    r   test_setattr_disallowedr'   2   s#     
~	&	 
'	&	&s   ,
:c                 0    [         R                  " U 5      ng )N)weakrefref)r    _s     r   test_weakrefabler,   <   s    DAr   c                      [         R                  " [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = f)NzPOINT (1 1))r#   r$   	TypeErrorshapelyGeometryr   r   r   test_base_class_not_callabler1   A   s(    	y	!' 
"	!	!s	   ;
A	c                      [        SS5      n [        R                  " [        5         U R	                  5       nS S S 5        WU R
                  :X  d   eg ! , (       d  f       N!= fNr   )r	   r#   warnsr   geometryType	geom_typer    r6   s     r   test_GeometryType_deprecatedr8   F   sJ    A;D	/	0%%'	 
1 &&& 
1	0s   A
A!c                      [        SS5      n [        R                  " [        5         U R                  nS S S 5        WU R
                  :X  d   eg ! , (       d  f       N!= fr3   )r	   r#   r4   r   typer6   r7   s     r   test_type_deprecatedr;   O   sE    A;D	/	0II	 
1 &&& 
1	0s   A
A)   
   r   zGEOS < 3.10c                      [        SS/5      n U R                  SS9nUR                  [        / SQ5      5      (       d   eg )Nr   r   r=      )max_segment_length)r   )r   r@   r?   )r   
segmentizeequals)lineresults     r   test_segmentizerF   X   s<    vw'(D___2F==$=>????r   c                  x    SS/n [        U 5      nUR                  5       nUR                  S S  U S S S2   :X  d   eg )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                     [         R                  " SSSS5      n[         R                  " SSSS5      n[        X 5      " X1S9n[        [         U 5      " X#US9nXE:X  d   eg )Nr   g      @rH   r<   )rR   )r/   boxgetattr)rM   rR   geom1geom2rE   expecteds         r   test_binary_op_grid_sizerY   f   sZ    
 KK1c3'EKK1a#EU;Fw#EIFHr   c                      [        SS5      n [        SS/5      nU R                  US5      SL d   eU R                  US5      SL d   eg )Nr   r   r?         ?Fg      ?T)r	   r   dwithin)pointrD   s     r   test_dwithinr^   s   sN    !QKEvw'(D==s#u,,,==s#t+++r   c                      [        / SQ5      n [        SS/5      nU R                  U5      SL d   eU R                  U5      SL d   eg )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                 n    [        / SQ5      n[        X5      n[        [        U 5      " U5      nX#:X  d   eg )N)r   r?   r`   )r   rU   r/   )rM   r    rE   rX   s       r   test_constructive_propertiesrj      s6     12DTFw#D)Hr   )crossesrb   ra   
covered_bycoversdisjointrC   
intersectsoverlapstoucheswithinc           	         [        / SQ5      n[        R                  " / SQ5      n[        X5      " U5      n[	        U[
        R                  5      (       d   e[
        R                  " U Vs/ s H  n[        X5      " U5      PM     sn[        S9n[
        R                  R                  X55        [        X5      " US   5      n[        U5      [        L d   eg s  snf 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W!&)Ffbjj))))xx&A&Q-a0&ANHJJ!!&3 W!&),F<4 Bs   ,Cz
op, kwargsr\   r[   )distance)marksequals_exactg{Gz?)	tolerancerelate_patternz	T*F**F***)patternc           
         [        / SQ5      n[        R                  " / SQ5      n[        X 5      " U40 UD6n[	        U[
        R                  5      (       d   e[
        R                  " U Vs/ s H  n[        X 5      " U40 UD6PM     sn[        S9n[
        R                  R                  XF5        [        X 5      " US   40 UD6n[        U5      [        L d   eg s  snf rt   ry   )rM   kwargsrc   rz   rE   r   rX   s          r   &test_array_argument_binary_predicates2r      s     >?G^^89FW!&3F3Ffbjj))))xxFKFq-a:6:FKSWXHJJ!!&3 W!&)6v6F<4 Ls   -C)rP   rO   rQ   rN   c           	         [        / SQ5      n[        R                  " [        R                  " / SQ5      S5      n[	        X5      " U5      n[        U[        R                  5      (       d   e[        R                  " U Vs/ s H  n[	        X5      " U5      PM     sn[        S9n[        X55        [	        X5      " US   5      n[        U[         [        45      (       d   eg s  snf )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Sh'Ffbjj))))xxh?h)!,h?vNHF- Shqk*Ffw56666 @s   C#r   hausdorff_distancec           	         [        / SQ5      n[        R                  " / SQ5      n[        X5      " U5      n[	        U[
        R                  5      (       d   e[
        R                  " U Vs/ s H  n[        X5      " U5      PM     snSS9n[
        R                  R                  X55        [        X5      " US   5      n[        U5      [        L d   eg s  snf )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W!&)Ffbjj))))xx&A&Q-a0&ASHJJ!!&3 W!&),F<5    Bs   ,Cline_interpolate_pointinterpolatec                    [        / SQ5      n[        R                  " / SQ5      n[        X5      " U5      n[	        U[        R
                  5      (       d   e[        R                  " U Vs/ s H  oAR                  U5      PM     sn[        S9n[        X55        [        X5      " US   5      n[	        U[        5      (       d   eg s  snf )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Ty)Ffbjj))))xx1:;A	$	$Q	';6H F- Ty|,Ffe$$$$ 	<s   ,Cline_locate_pointprojectc                    [        / SQ5      n[        R                  " / SQ5      n[        X5      " U5      n[	        U[
        R                  5      (       d   e[
        R                  " U Vs/ s H  oAR                  U5      PM     snSS9n[
        R                  R                  X55        [        X5      " US   5      n[        U5      [        L d   eg s  snf )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Tv&Ffbjj))))xxFCFq//2FC9UHJJ!!&3 Tvay)F<5    Ds   ,Cc                     [        SS5      n [        R                  " / SQ5      nU R                  U5      n[	        U[        R
                  5      (       d   e[        R                  " U Vs/ s H  o0R                  U5      PM     sn[        S9n[        X$5        U R                  US   5      n[	        U[        5      (       d   eg s  snf )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F- \\)A,'Ffg&&&& =s   +Cc            	      4   [        SS5      n [        R                  " SS9   U R                  SSS5        S S S 5        [        R                  " SS9   U R                  SSSS5        S S S 5        [        R                  " 5          U R                  SSSSS5        S S S 5        [        R                  " 5          U R                  SSSSSS	5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ne= f! , (       d  f       g = f)
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.	

 
			!S!Wgs3 
"				!S!WgsE: 
"	!
 

 

 
"	!	!	!s/   CC'C86D	
C$'
C58
D	
Dc                      [        SS/5      n [        R                  " SS9   U R                  SS5        S S S 5        g ! , (       d  f       g = f)Nr   r   zDpositional argument `preserve_topology` for `simplify` is deprecatedr   r   T)r   r#   r   simplify)
linestrings    r   "test_simplify_deprecate_positionalr   +  sD    VV,-J			T
 	C&
 
 
	   >
Ac                      [        SS5      n [        R                  " SS9   U R                  U S 5        S S S 5        g ! , (       d  f       g = f)Nr   z>positional argument `grid_size` for `difference` is deprecatedr   )r	   r#   r   rP   r   s    r   $test_difference_deprecate_positionalr   3  s@    !QKE			N
 	%
 
 
	   =
Ac                      [        SS5      n [        R                  " SS9   U R                  U S 5        S S S 5        g ! , (       d  f       g = f)Nr   z@positional argument `grid_size` for `intersection` is deprecatedr   )r	   r#   r   rO   r   s    r   &test_intersection_deprecate_positionalr   ;  s@    !QKE			P
 	5$'
 
 
r   c                      [        SS5      n [        R                  " SS9   U R                  U S 5        S S S 5        g ! , (       d  f       g = f)Nr   zHpositional argument `grid_size` for `symmetric_difference` is deprecatedr   )r	   r#   r   rQ   r   s    r   .test_symmetric_difference_deprecate_positionalr   C  s@    !QKE			X
 	""5$/
 
 
r   c                      [        SS5      n [        R                  " SS9   U R                  U S 5        S S S 5        g ! , (       d  f       g = f)Nr   z9positional argument `grid_size` for `union` is deprecatedr   )r	   r#   r   rN   r   s    r   test_union_deprecate_positionalr   K  s>    !QKE			I
 	E4 
 
 
r   c                      [        SS/5      n [        R                  " SS9   U R                  [	        SS5      S5        S S S 5        g ! , (       d  f       g = f)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  sJ    j*56K			V
 	%%eAqk59
 
 
   A
Ac                      [        SS/5      n [        R                  " SS9   U R                  [	        SS5      S5        S S S 5        g ! , (       d  f       g = f)Nr   r   z<positional argument `normalized` for `project` is deprecatedr   r   F)r   r#   r   r   r	   r   s    r   !test_project_deprecate_positionalr   [  sJ    j*56K			L
 	E!QK/
 
 
r   c                      [        SS/5      n [        R                  " SS9   U R                  SS5        S S S 5        g ! , (       d  f       g = f)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  sF    j*56K			
 	**1e4	
 
 
r   c                      [        SS/5      n [        R                  " SS9   U R                  SS5        S S S 5        g ! , (       d  f       g = f)Nr   r   z@positional argument `normalized` for `interpolate` is deprecatedr   r   F)r   r#   r   r   r   s    r   %test_interpolate_deprecate_positionalr   l  sD    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}%	  ""$.;   !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   