
    Ogl#                     J	   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
 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mZmZmZmZmZ  ej:                  eeg      Z ej:                  eeg      Zej@                  jC                  dg d fegd feegdfeeegdfedgdfdedgdfeegdfeegdfeegdfegd	fegd
feegdfegd
fegdfegdfegd	fg      d        Z"ej@                  jC                  dddg      ej@                  jC                  dg g g fegg g feegdgdgfeeegdgdgfedgdgdgfdedgdgdgfeegddgddgfeegg dg dfegg dg dfegg dg dfeegg dg dfegg dg dfegg dg dfegg dg dfegg d g d!fg      d"               Z#ej@                  jC                  d#g g fegg feegd gfeeegdgfedgd gfdedgdgfeegd dgfeegg d$feegg d%feegg d&fg
      d'        Z$ej@                  jC                  d(d)d*g      d+        Z%ej@                  jC                  dddg      ej@                  jC                  d,eegddgddgejL                  dgfegg d-g d.g d/fegg dg dg d0fegg d1g d2g d3feegdgdgejL                  gfg      d4               Z'ej@                  jC                  dddg      ej@                  jC                  d5g d dfegd dfegd dfeegddfeeegddfedgddfdedgddfeegddfeegddfeegddfegddfegd	dfegd	dfegd
dfeegddfegd
dfegddfegddfegddfegd	dfg      d6               Z(d7 Z)d8 Z*d9 Z+ej@                  jC                  dddg      d:        Z,ej@                  jC                  dddg      ej@                  jC                  d;g egdedgegeegegg      d<               Z-d= Z.d> Z/d? Z0ej@                  jC                  d@ ejb                  eej@                  je                  ejf                  dAk  dBC      D      eg      dE        Z4ej@                  jC                  d@ ejb                  eej@                  je                  ejf                  dAk  dBC      D      eg      dF        Z5y)G    N)assert_allcloseassert_equal)count_coordinatesget_coordinatesset_coordinates	transform)emptyempty_line_string_zempty_pointempty_point_zgeometry_collectiongeometry_collection_zline_stringline_string_zlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpoint_zpolygonpolygon_with_hole	polygon_zzgeoms,count            
         c                 l    t        t        j                  | t        j                              }||k(  sJ y N)r   nparrayobject_)geomscountactuals      c/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/shapely/tests/test_coordinates.pytest_count_coordsr*      s)    , rxxrzz:;FU??    	include_zTFz	geoms,x,y)r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )
r   r   r   r   r    @皙@r.   r-   r-   )
r   r   r   r   r   r-   r-   r.   r.   r-   )3   4   1   )r2   r   )r/   r0   r1   r   )r2   r2   r   r    )r/   r0   r1   r   r   )r2   r2   r   r    r    c                 x   t        t        j                  | t        j                        |      }|s1t        j                  ||gt        j                        j
                  }nLt        j                  ||t        j                  gt        |      z  gt        j                        j
                  }t        ||       y Nr,   )	r   r#   r$   r%   float64Tnanlenr   )r&   xyr,   r(   expecteds         r)   test_get_coordsr=   :   sz    , RXXeRZZ8INF88QFBJJ/1188QBFF8c!f#45rzzBDD"r+   zgeoms,indexr   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   c                     t        t        j                  | t        j                        d      \  }}t        j                  |t        j                        }t        ||       y )NTreturn_indexdtype)r   r#   r$   r%   intpr   )r&   index_r(   r<   s        r)   test_get_coords_indexrG   Y   sA       

 ;$OIAvxxRWW-H"r+   orderCFc                     t        j                  t        t        gt        t        gg|       }g d}t        |d      \  }}t        ||       y )N)rH   r>   Tr@   )r#   r$   r   r   r	   r   r   )rH   geometryr<   rF   r(   s        r)   test_get_coords_index_multidimrM   n   s?    xx%-u~>eLHHt<IAv"r+   zgeoms,x,y,z)r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   )r   r   r   r   )r    r   r   r   )r   r   r   r   c                 B   t        t        j                  | t        j                        |      }|r2t        j                  |||gt        j                        j
                  }n0t        j                  ||gt        j                        j
                  }t        ||       y r4   )r   r#   r$   r%   r6   r7   r   )r&   r:   r;   zr,   r(   r<   s          r)   test_get_coords_3drP   w   sj     RXXeRZZ8INF88Q1Irzz24488QFBJJ/11"r+   zgeoms,count,has_ringc                     t        j                  | t         j                        }|rdnd}t        ||      t         j                  j	                  d|f      z   }t        ||      }t        |t        ||             y )Nr    r   r5   r   )r#   r$   r%   r   randomr   r   )r&   r'   has_ringr,   	arr_geomsncoords	new_geomss           r)   test_set_coordsrX      se    6 

+IAAY)<ryy?O?OQRTUPV?WWF	62IiHIr+   c                      t        j                  t        g      } t        j                  t         j                  t         j                  gg      }t        | |      }t        |t        |             y r"   )r#   r$   r   r8   infr   r   r   )r&   rV   rW   s      r)   test_set_coords_nanr[      sK    HHeWEXX'()Fv.I34r+   c                      t        j                  t        j                        5  t	        t
        t        j                  j                  d             d d d        y # 1 sw Y   y xY w)N)r   r   )pytestraisesshapelyGEOSExceptionr   r   r#   rR    r+   r)   test_set_coords_breaks_ringrb      sB    	w,,	- ?RYY%5%5f%=>? ? ?s   .AA$c                     t        t        ddgg      } t        | t        j                        sJ t        t        j                  t              ddgg      } t        | t
        j                        sJ | j                  dk(  sJ y )Nr   r   )	r   r   
isinstancer_   Geometryr#   asarrayndarrayndimr(   s    r)   test_set_coords_0dimrj      sk    UaVH-Ffg..///RZZ.!Q9Ffbjj)));;!r+   c                 >   t        j                  t        t        gt              }t        ||       }t        ||dz        }| r5t        j                  |d         rJ t        j                  |d         sJ y t        j                  |      j                         rJ y )NrB   r5   r   r   r   )
r#   r$   r   r   objectr   r   r_   has_zany)r,   r&   rV   rW   s       r)   test_set_coords_mixed_dimensionro      s    HHeW%V4EUi8Fvz2I==1...}}Yq\*** ==+//1111r+   r&   c                     t        j                  | t         j                        } t        | |      }t	        | d |      }|| usJ t        ||      }t        |dz   |d       y )Nr5   c                     | dz   S Nr   ra   r:   s    r)   <lambda>z test_transform.<locals>.<lambda>   s
    1q5 r+   r   T)	equal_nan)r#   r$   r%   r   r   r   )r&   r,   coordinates_beforerW   coordinates_afters        r)   test_transformrx      sa     HHUBJJ'E()D%IFIE!!!'	YG&*,=Nr+   c                      t        t        d       } t        | t        j                        sJ t        t        j                  t              d       } t        | t
        j                        sJ | j                  dk(  sJ y )Nc                     | dz   S rr   ra   rs   s    r)   rt   z%test_transform_0dim.<locals>.<lambda>   s
    A r+   c                     | dz   S rr   ra   rs   s    r)   rt   z%test_transform_0dim.<locals>.<lambda>   s
    AE r+   r   )	r   r   rd   r_   re   r#   rf   rg   rh   ri   s    r)   test_transform_0dimr|      s_    uo.Ffg..///rzz%(/:Ffbjj)));;!r+   c                      d } t        j                  t              5  t        t        |        d d d        y # 1 sw Y   y xY w)Nc                     | d d S )Nr2   ra   )arrs    r)   remove_coordz0test_transform_check_shape.<locals>.remove_coord   s    3Bxr+   )r]   r^   
ValueErrorr   r   )r   s    r)   test_transform_check_shaper      s4     
z	" -+|,- - -s	   7A c                      t         } t        j                  |       dk(  sJ t        | d d      }t        j                  |      dk(  sJ y )Nr    c                     | dz   S rr   ra   rs   s    r)   rt   z=test_transform_correct_coordinate_dimension.<locals>.<lambda>   
    Q r+   Fr5   r   )r   r_   get_coordinate_dimensionr   geomnew_geoms     r)   +test_transform_correct_coordinate_dimensionr      sG    D++D1Q666%@H++H5:::r+   r   )r    	   r   z8Empty points don't have a dimensionality before GEOS 3.9)reason)marksc                     t        j                  |       dk(  sJ t        | d d      }t        j                  |      dk(  sJ y )Nr    c                     | dz   S rr   ra   rs   s    r)   rt   z1test_transform_empty_preserve_z.<locals>.<lambda>   r   r+   Tr5   r_   r   r   r   s     r)   test_transform_empty_preserve_zr      sD    
 ++D1Q666$?H++H5:::r+   c                     t        j                  |       dk(  sJ t        | d d      }t        j                  |      dk(  sJ y )Nr    c                     | dz   S rr   ra   rs   s    r)   rt   z)test_transform_remove_z.<locals>.<lambda>	  r   r+   Fr5   r   r   r   s     r)   test_transform_remove_zr     sD    
 ++D1Q666%@H++H5:::r+   )6numpyr#   r]   numpy.testingr   r   r_   r   r   r   r   shapely.tests.commonr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   geometrycollectionsnested_2nested_3markparametrizer*   r=   rG   rM   r8   rP   rX   r[   rb   rj   ro   rx   r|   r   r   paramskipifgeos_versionr   r   ra   r+   r)   <module>r      s     7  R R    ( '7&&(;U'CD&7&&%'89 	Q
!

	"

t	a 

	1
{	#Q'
A
	b!
(	)1-
"
	"
Q
Q!*+* tUm4	R
"b
!qc"
	aS)
aS!
t	qcA3'
!Q!Q(
{	#%=?WX
O_5
	>@`a
(	)<F
BDlm
	k:
_n5
'):;(#) 5*# 	R
"
!
	$

t	qc"
!Q 
	|,
u	|,
{	#%=>## 3*-# .# tUm4
	Aq6Aq6BFFA;7
)Y	:
oH
	 ,lK
	sQC"&&2	#	 5# tUm4	Q
!U
5!
E"
	5)
5!
t	a'
E"
	1e$
{	#Q-
!T"
At
a
	b$'
(	)1e4
"d#
	5)
	 !U+
Q
Q)2J3 54J5?
 tUm4
2 5
2 tUm4%4%zE73Cm_UO	 5
O-; FLLfkk&8&89M9MPY9Y  c]&8  '^  _" ;	; FLLfkk&8&89M9MPY9Y  c]&8  '^  _" ;	;r+   