
    (&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                             e j                    dk    d          ej                            de          d                         Zej                            de          d             Zd Zd Zd Zej                            ej         dk     d          d             Z!d Z"ej                            dg d          ej                            dg d          d                         Z#ej                            ej         dk     d          d             Z$d Z%ej                            dg d           d!             Z&ej                            dg d"          d#             Z'ej                            d$ ej(        d% e)d&'          ej                            ej         dk     d          (          d) e)d*+          fd, e)d-.          fg          d/             Z*ej                            dg d0          d1             Z+ej                            dd2d3g          d4             Z,ej                            dd5d6g          d7             Z-ej                            dd8d9g          d:             Z.d; Z/d< Z0d= Z1d> Z2d? Z3d@ Z4dA Z5dB Z6dC Z7dD Z8dE Z9dS )F    N)GeometryCollection
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)ShapelyDeprecationWarning)assert_geometries_equalc                  D    t          t                                du sJ d S NF)boolr
        d/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/geometry/test_geometry_base.pytest_polygonr      s#    		??e######r   c                  D    t          t                                du sJ d S r   )r   r   r   r   r   test_linestringr      s%    
&&&&&&r   c                  D    t          t                                du sJ d S r   )r   r	   r   r   r   
test_pointr      s#    ==E!!!!!!r   c                  D    t          t                                du sJ d S 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                 x    t          j        t                    5  d| _        d d d            d S # 1 swxY w Y   d S )Ntest)pytestraisesAttributeErrorname)r    s    r   test_setattr_disallowedr'   2   s     
~	&	&  	                 s   /33c                 .    t          j        |           }d S )N)weakrefref)r    _s     r   test_weakrefabler,   <   s    DAAAr   c                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzPOINT (1 1))r#   r$   	TypeErrorshapelyGeometryr   r   r   test_base_class_not_callabler1   A   s    	y	!	! ( ('''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   <A A c                      t          dd          } t          j        t                    5  |                                 }d d d            n# 1 swxY w Y   || j        k    sJ d S Nr   )r	   r#   warnsr   geometryType	geom_typer    r6   s     r   test_GeometryType_deprecatedr8   F   s    A;;D	/	0	0 ( (%%''	( ( ( ( ( ( ( ( ( ( ( ( ( ( ( &&&&&&s   AAAc                      t          dd          } t          j        t                    5  | j        }d d d            n# 1 swxY w Y   || j        k    sJ d S r3   )r	   r#   r4   r   typer6   r7   s     r   test_type_deprecatedr;   O   s    A;;D	/	0	0  I	               &&&&&&s   >AA)   
   r   zGEOS < 3.10c                      t          ddg          } |                     d          }|                    t          g d                    sJ d S )Nr   r   r=      )max_segment_length)r   )r   r@   r?   )r   
segmentizeequals)lineresults     r   test_segmentizerF   X   sT    vw'((D___22F==$=$=$=>>???????r   c                      ddg} t          |           }|                                }|j        d d          | d d d         k    sJ d S )Nr   )r      )r   reversecoords)rK   rD   rE   s      r   test_reverserL   _   sR    fFfD\\^^F=vdd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 d S )Nr   g      @rH   r<   )rR   )r/   boxgetattr)rM   rR   geom1geom2rE   expecteds         r   test_binary_op_grid_sizerY   f   s    
 K1c3''EK1a##EWUB;;;F#ww##E5IFFFHXr   c                      t          dd          } t          ddg          }|                     |d          du sJ |                     |d          du sJ d S )Nr   r   r?         ?Fg      ?T)r	   r   dwithin)pointrD   s     r   test_dwithinr^   s   se    !QKKEvw'((D==s##u,,,,==s##t++++++r   c                      t          g d          } t          ddg          }|                     |          du sJ |                     |          du sJ d S )N)r   r=   r=   )r=   ir   )r=   r   FT)r
   r   contains_properlycontains)polygonrD   s     r   test_contains_properlyrd   {   sl    33344Gvw'((D$$T**e3333D!!T))))))r   )convex_hullenvelopeoriented_envelopeminimum_rotated_rectanglec                     t          g d          }t          ||           } t          t          |           |          }||k    sJ d S )N)r   r?   r`   )r   rU   r/   )rM   r    rE   rX   s       r   test_constructive_propertiesrj      sW     1112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         fd|D             t                    }t
          j	        
                    ||            t                     |d                   }t          |          t          u sJ d S )Nr   r   r   )r   r   r   r   )r[   r[   r   c                 B    g | ]} t                    |          S r   rU   .0prM   rc   s     r   
<listcomp>z9test_array_argument_binary_predicates.<locals>.<listcomp>   .    AAAQ-"--a00AAAr   dtyper   r
   r/   pointsrU   
isinstancenpndarrayarrayr   testingassert_array_equalr:   rM   r   rE   rX   rc   s   `   @r   %test_array_argument_binary_predicatesr      s    " >>>??G^88899F!WWb!!&))Ffbj)))))xAAAAA&AAANNNHJ!!&(333 "WWb!!&),,F<<4r   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         fd|D             t                    }t
          j	        
                    ||            t                     |d         fi }t          |          t          u sJ d S )Nrt   ru   c                 >    g | ]} t                    |fi S r   rw   )ry   rz   kwargsrM   rc   s     r   r{   z:test_array_argument_binary_predicates2.<locals>.<listcomp>   s6    KKKq-"--a::6::KKKr   r}   r   r   )rM   r   r   rE   rX   rc   s   ``   @r   &test_array_argument_binary_predicates2r      s     >>>??G^88899F!WWb!!&33F33Ffbj)))))xKKKKKKFKKKSWXXXHJ!!&(333 "WWb!!&)66v66F<<4r   )rP   rO   rQ   rN   c                     t          g d          t          j        t          j        g d          d          } t	                     |          }t          |t          j                  sJ t          j         fd|D             t                    }t          ||            t	                     |d                   }t          |t           t          f          sJ d S )Nrt   ru   r[   c                 B    g | ]} t                    |          S r   rw   )ry   grT   rM   s     r   r{   z2test_array_argument_binary_geo.<locals>.<listcomp>   s.    ???)b))!,,???r   r}   r   )r
   r/   bufferr   rU   r   r   r   r   objectr   r   )rM   polygonsrE   rX   rT   s   `   @r   test_array_argument_binary_geor      s     :::
;
;C~gn-I-I-IJJCPPHWS"h''Ffbj)))))x?????h???vNNNHFH--- WS"hqk**Ffw56666666r   r   hausdorff_distancec                     t          g d          t          j        g d          } t                     |          }t	          |t
          j                  sJ t          j         fd|D             d          }t
          j        	                    ||            t                     |d                   }t          |          t          u sJ d S )Nrt   ru   c                 B    g | ]} t                    |          S r   rw   rx   s     r   r{   z-test_array_argument_float.<locals>.<listcomp>   r|   r   float64r}   r   )r
   r/   r   rU   r   r   r   r   r   r   r:   floatr   s   `   @r   test_array_argument_floatr      s    >>>??G^88899F!WWb!!&))Ffbj)))))xAAAAA&AAASSSHJ!!&(333 "WWb!!&),,F<<5      r   line_interpolate_pointinterpolatec                    t          g d          t          j        g d          } t          |           |          }t	          |t          j                  sJ t          j        fd|D             t                    }t          ||            t          |           |d                   }t	          |t                    sJ d S )Nr   r   r   r   r[   r   c                 :    g | ]}                     |          S r   )r   )ry   drD   s     r   r{   z4test_array_argument_linear_point.<locals>.<listcomp>   s'    ;;;A	$	$Q	'	';;;r   r}   r   )	r   r   r   rU   r   r   r   r   r	   )rM   	distancesrE   rX   rD   s       @r    test_array_argument_linear_pointr      s    ...//D%%IWT2y))Ffbj)))))x;;;;;;;6  H FH--- WT2y|,,Ffe$$$$$$$r   line_locate_pointprojectc                    t          g d          t          j        g d          } t          |           |          }t	          |t
          j                  sJ t          j        fd|D             d          }t
          j        	                    ||            t          |           |d                   }t          |          t          u sJ d S )Nr   ru   c                 :    g | ]}                     |          S r   )r   )ry   rz   rD   s     r   r{   z4test_array_argument_linear_float.<locals>.<listcomp>  s'    CCCq//22CCCr   r   r}   r   )r   r/   r   rU   r   r   r   r   r   r   r:   r   )rM   r   rE   rX   rD   s       @r    test_array_argument_linear_floatr      s    ...//D^88899FWT2v&&Ffbj)))))xCCCCFCCC9UUUHJ!!&(333 WT2vay))F<<5      r   c                     t          dd          t          j        g d          }                     |           }t	          |t          j                  sJ t          j        fd| D             t                    }t          ||                               | d                   }t	          |t                    sJ d S )Nr   r   c                 :    g | ]}                     |          S r   )r   )ry   r   r]   s     r   r{   z.test_array_argument_buffer.<locals>.<listcomp>  s#    <<<Qa<<<r   r}   r   )	r	   r   r   r   r   r   r   r   r
   )r   rE   rX   r]   s      @r   test_array_argument_bufferr     s    !QKKE%%I\\)$$Ffbj)))))x<<<<)<<<FKKKHFH--- \\)A,''Ffg&&&&&&&r   c            	      L   t          dd          } t          j        d          5  |                     ddd           d d d            n# 1 swxY w Y   t          j        d          5  |                     dddd           d d d            n# 1 swxY w Y   t          j                    5  |                     ddddd           d d d            n# 1 swxY w Y   t          j                    5  |                     dddddd	           d d d            d S # 1 swxY w Y   d S )
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     s4   !QKKE		J
 
 
 & & 	S!W%%%& & & & & & & & & & & & & & & 
	&
 
 
 / / 	S!Wg...	/ / / / / / / / / / / / / / /
 
		!	! 4 4S!Wgs3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4			!	! ; ;S!WgsE:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;sG   A

AA*BBB-CCC1DD Dc                      t          ddg          } t          j        d          5  |                     dd           d d d            d S # 1 swxY w Y   d S )Nr   r   zDpositional argument `preserve_topology` for `simplify` is deprecatedr   r   T)r   r#   r   simplify)
linestrings    r   "test_simplify_deprecate_positionalr   +  s    VV,--J		T
 
 
 ' ' 	C&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '   AAAc                      t          dd          } t          j        d          5  |                     | d            d d d            d S # 1 swxY w Y   d S )Nr   z>positional argument `grid_size` for `difference` is deprecatedr   )r	   r#   r   rP   r   s    r   $test_difference_deprecate_positionalr   3  s    !QKKE		N
 
 
 & & 	%%%& & & & & & & & & & & & & & & & & &   A

AAc                      t          dd          } t          j        d          5  |                     | d            d d d            d S # 1 swxY w Y   d S )Nr   z@positional argument `grid_size` for `intersection` is deprecatedr   )r	   r#   r   rO   r   s    r   &test_intersection_deprecate_positionalr   ;  s    !QKKE		P
 
 
 ( ( 	5$'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (r   c                      t          dd          } t          j        d          5  |                     | d            d d d            d S # 1 swxY w Y   d S )Nr   zHpositional argument `grid_size` for `symmetric_difference` is deprecatedr   )r	   r#   r   rQ   r   s    r   .test_symmetric_difference_deprecate_positionalr   C  s    !QKKE		X
 
 
 0 0 	""5$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0r   c                      t          dd          } t          j        d          5  |                     | d            d d d            d S # 1 swxY w Y   d S )Nr   z9positional argument `grid_size` for `union` is deprecatedr   )r	   r#   r   rN   r   s    r   test_union_deprecate_positionalr   K  s    !QKKE		I
 
 
 ! ! 	E4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !r   c                      t          ddg          } t          j        d          5  |                     t	          dd          d           d d d            d S # 1 swxY w Y   d S )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  s    j*566K		V
 
 
 : : 	%%eAqkk5999: : : : : : : : : : : : : : : : : :   %AA Ac                      t          ddg          } t          j        d          5  |                     t	          dd          d           d d d            d S # 1 swxY w Y   d S )Nr   r   z<positional argument `normalized` for `project` is deprecatedr   r   F)r   r#   r   r   r	   r   s    r   !test_project_deprecate_positionalr   [  s    j*566K		L
 
 
 0 0 	E!QKK///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0r   c                      t          ddg          } t          j        d          5  |                     dd           d d d            d S # 1 swxY w Y   d S )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  s    j*566K		
 
 
 5 5 	**1e444	5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5r   c                      t          ddg          } t          j        d          5  |                     dd           d d d            d S # 1 swxY w Y   d S )Nr   r   z@positional argument `normalized` for `interpolate` is deprecatedr   r   F)r   r#   r   r   r   s    r   %test_interpolate_deprecate_positionalr   l  s    j*56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 4 4 4 4 4 3 3 3 3 3 3$ $ $' ' '" " "/ / /
 
E!QKKJ///00J///00G,,,--JxO555677L'':::;;<==a}%%	  "H"$$.;    !566  76	 

 !566  76( ( (
' ' '' ' ' G(:5mLL@ @ ML@, , , 
I
I
I  iii00  10  G(:5mLL, , ML,* * * 
W
W
W           !    D#+$$$z1- %  	
 	
 	
 
---.	444445
          7 7 7 
,@ABB! ! CB!  8-HII% % JI%   3Y?@@! ! A@!' ' '; ; ;"' ' '& & &( ( (0 0 0! ! !: : :0 0 05 5 5* * * * *r   