
    Og#                        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!ej.                  j1                  ej@                  dk  d      d        Z"ej.                  j1                  ej@                  dk  d      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d0 e)d12      fg      d3        Z*ej.                  j5                  dg d4      d5        Z+ej.                  j5                  dd6d7g      d8        Z,ej.                  j5                  dd9d:g      d;        Z-ej.                  j5                  dd<d=g      d>        Z.d? Z/y)@    N)GeometryCollection
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)ShapelyDeprecationWarning)assert_geometries_equalc                  2    t        t                     du sJ y NF)boolr
        n/var/www/html/public_html/myphp/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   )r<      r   z
GEOS < 3.7c                  v    ddg} t        |       }|j                         }|j                  d d  | d d d   k(  sJ y )Nr   )r      )r   reversecoords)rL   rD   rE   s      r   test_reverserM   _   s@    fFfD\\^F==vdd|+++r   )r<   	   r   z
GEOS < 3.9op)unionintersection
differencesymmetric_difference	grid_size)r   r   rI   c                     t        j                  dddd      }t        j                  dddd      } t        ||       ||      } t        t         |       |||      }||k(  sJ y )Nr   g      @rI   r<   )rT   )r/   boxgetattr)rO   rT   geom1geom2rE   expecteds         r   test_binary_op_grid_sizer[   g   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`   u   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_properlyrf   }   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?   rb   )r   rW   r/   )rO   r    rE   rZ   s       r   test_constructive_propertiesrl      s<     12DT2F#ww#D)HXr   )crossesrd   rc   
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/   pointsrW   
isinstancenpndarrayarrayr   testingassert_array_equalr:   rO   re   r|   rE   prZ   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 rv   r{   )rO   kwargsre   r|   rE   r   rZ   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)rR   rQ   rS   rP   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 )Nrw   rx   r]   ry   r   )r
   r/   bufferr|   rW   r}   r~   r   r   objectr   r   )rO   rV   polygonsrE   grZ   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 )Nrw   rx   float64ry   r   )r
   r/   r|   rW   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   ry   r   )
r   r~   r   rW   r}   r   r   r   r   r	   )rO   rD   	distancesrE   drZ   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   rx   r   ry   r   )r   r/   r|   rW   r}   r~   r   r   r   r   r   r:   r   )rO   rD   r|   rE   r   rZ   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   ry   r   )	r	   r~   r   r   r}   r   r   r   r
   )r_   r   rE   r   rZ   s        r   test_array_argument_bufferr     s    !QKE%I\\)$Ffbjj)))xx)<Qa<FKHFH- \\)A,'Ffg&&& =s   $B<)0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   rM   r[   r`   rf   rl   r   paramdictr   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@ G((94\J, K, G((94\J
I i0 1 K
 G((:5mL, M,* 
W   !   #++$$$$z1- % 	
 
-.	445
   77 
,@AB! C!  8-HI% J%   3Y?@! A!'r   