
    (&h3                        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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'        (                    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'        (                    dddg          ej'        (                    dddg          ej'        (                    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'        (                    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'        (                    d)d*d+g          d,             Z,ej'        (                    dddg          ej'        (                    dddg          ej'        (                    d-eegddgddgej-        dgfegg d.g d/g d0fe#gg dg dg d1fegg d2g d3g d4feegdgdgej-        gfg          d5                                     Z.ej'        /                    ej0        d6k     d78          ej'        (                    dddg          ej'        (                    dddg          ej'        (                    d9eeee gg d:g d;ej-        dej-        dgej-        ej-        d	d	gfeeeegg d<g d=ej-        ej-        ej-        dddgdz  ej-        gd>z  g d?z   fegg d2g d3g d4g d@feeeeegdgdgej-        gej-        gfg          dA                                                 Z1dB Z2ej'        (                    dddg          ej'        (                    dCg 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          dD                         Z3dE Z4dF Z5dG Z6ej'        (                    dddg          dH             Z7ej'        (                    dddg          ej'        (                    dIg egdedge&geegegg          ej'        (                    dJddg          dK                                     Z8dL Z9dM Z:dN Z;dO Z<ej'        (                    dPeeg          dQ             Z=ej'        (                    dPeeg          dR             Z>ej'        (                    dSedfedfg          dT             Z?dU Z@dYdVZAdW ZBdX ZCdS )Z    N)assert_allcloseassert_equal)count_coordinatesget_coordinatesset_coordinates	transform)emptyempty_line_string_zempty_pointempty_point_mempty_point_zempty_point_zmgeometry_collectiongeometry_collection_zgeometry_collection_zmline_stringline_string_mline_string_zline_string_zmlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpoint_mpoint_zpoint_zmpolygonpolygon_with_hole	polygon_zzgeoms,count            
         c                 n    t          t          j        | t          j                            }||k    sJ d S N)r   nparrayobject_)geomscountactuals      Y/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/test_coordinates.pytest_count_coordsr1   &   s0    , rxrz::;;FU??????    	include_mTF	include_zz	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    @皙@r6   r5   r5   )
r   r   r!   r!   r   r5   r5   r6   r6   r5   )3   4   1   )r:   r"   )r7   r8   r9   r"   )r:   r:   r"   r'   )r7   r8   r9   r"   r"   )r:   r:   r"   r'   r'   c                 ^   t          | ||          }||g}|r0|                    t          j        gt	          |          z             |r0|                    t          j        gt	          |          z             t          |t          j        |t          j                  j                   d S N)r4   r3   	r   appendr*   nanlenr   r+   float64T)r-   xyr4   r3   r/   expecteds          r0   test_get_coordsrF   @   s    F Ui9MMMF1vH +3q66)*** +3q66)***(BJ779:::::r2   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          ||           d S )NTreturn_indexdtype)r   r*   r+   r,   intpr   )r-   index_r/   rE   s        r0   test_get_coords_indexrP   l   sT       
 ; ;$OOOIAvxRW---H"""""r2   orderCFc                     t          j        t          t          gt          t          gg|           }g d}t          |d          \  }}t          ||           d S )N)rQ   rG   TrI   )r*   r+   r   r   r	   r   r   )rQ   geometryrE   rO   r/   s        r0   test_get_coords_index_multidimrV      sY    x%-u~>eLLLH||Ht<<<IAv"""""r2   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                 (   t          | ||          }||g}|r|                    |           |r0|                    t          j        gt	          |          z             t          |t          j        |t          j                  j                   d S r<   r=   )r-   rC   rD   zr4   r3   r/   rE   s           r0   test_get_coords_zrY      s     Ui9MMMF1vH  +3q66)***(BJ779:::::r2   )r'      r   zGEOS < 3.12)reasonzgeoms,x,y,z,m)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'   c                     t          | ||          }||g}|r|                    |           |r|                    |           t          |t          j        |t          j                  j                   d S r<   )r   r>   r   r*   r+   rA   rB   )	r-   rC   rD   rX   mr4   r3   r/   rE   s	            r0   test_get_coords_zmr_      s}    J Ui9MMMF1vH  (BJ779:::::r2   c                     t          j        d          5  t          t          d           d d d            n# 1 swxY w Y   t          j        d          5  t          t          dd           d d d            d S # 1 swxY w Y   d S )NzCpositional argument `include_z` for `get_coordinates` is deprecatedmatchFzXpositional arguments `include_z` and `return_index` for `get_coordinates` are deprecated)pytestdeprecated_callr   r    r2   r0   $test_get_coords_deprecate_positionalrf      s   		S
 
 
 & & 	u%%%& & & & & & & & & & & & & & & 
	/
 
 
 - - 	ue,,,	- - - - - - - - - - - - - - - - - -s   8<<A<<B B zgeoms,count,has_ringc                    t          j        | t           j                  }|rdnd}t          ||          t           j                            d|f          z   }t          ||          }t          |t          ||                     d S )Nr'   r"   r4   r!   )r*   r+   r,   r   randomr   r   )r-   r.   has_ringr4   	arr_geomsncoords	new_geomss           r0   test_set_coordsro      s    6 
++IAAY)<<<ry?O?OQRTUPV?W?WWF	622IiHHHIIIIIr2   c                      t          j        t          g          } t          j        t           j        t           j        gg          }t          | |          }t          |t          |                     d S r)   )r*   r+   r   r?   infr   r   r   )r-   rm   rn   s      r0   test_set_coords_nanrr      s[    HeWEX'())Fv..I3344444r2   c                      t          j        t          j                  5  t	          t
          t          j                            d                     d d d            d S # 1 swxY w Y   d S )N)r$   r"   )rc   raisesshapelyGEOSExceptionr   r   r*   ri   re   r2   r0   test_set_coords_breaks_ringrw     s    	w,	-	- ? ?RY%5%5f%=%=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s   3A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 d S )Nr!   r   )	r   r   
isinstanceru   Geometryr*   asarrayndarrayndimr/   s    r0   test_set_coords_0dimr     s    UaVH--Ffg./////RZ..!Q99Ffbj)))));!r2   c                 d   t          j        t          t          gt                    }t          ||           }t          ||dz            }| r:t          j        |d                   rJ t          j        |d                   sJ d S t          j        |          	                                rJ d S )NrK   rh   r"   r   r!   )
r*   r+   r   r   objectr   r   ru   has_zany)r4   r-   rm   rn   s       r0   test_set_coords_mixed_dimensionr     s    HeW%V444EUi888Fvz22I 2=1.....}Yq\******* =++//1111111r2   r-   interleavedc                    t          j        | t           j                  } t          | |          }|rd }n	|sd }nd }t	          | |||          }|| usJ t          ||          }t          |dz   |d           d S )	Nrh   c                     | dz   S Nr!   re   )rm   s    r0   <lambda>z test_transform.<locals>.<lambda>)  s
    
 r2   c                     | dz   |dz   fS r   re   )rC   rD   s     r0   r   z test_transform.<locals>.<lambda>+  s    q1ua!en r2   c                     | dz   |dz   |dz   fS r   re   rC   rD   rX   s      r0   r   z test_transform.<locals>.<lambda>-  s    !a%QA)> r2   r4   r   r!   T)	equal_nan)r*   r+   r,   r   r   r   )r-   r4   r   coordinates_beforetransformationrn   coordinates_afters          r0   test_transformr     s     HUBJ''E()DDD ?22 ?44>>~  I E!!!!'	YGGG&*,=NNNNNNr2   c                     t          t          d           } t          | t          j                  sJ t          t          j        t                    d           } t          | t
          j                  sJ | j        dk    sJ d S )Nc                     | dz   S r   re   rC   s    r0   r   z%test_transform_0dim.<locals>.<lambda>8  s
    A r2   c                     | dz   S r   re   r   s    r0   r   z%test_transform_0dim.<locals>.<lambda>;  s
    AE r2   r   )	r   r   ry   ru   rz   r*   r{   r|   r}   r~   s    r0   test_transform_0dimr   6  sx    uoo..Ffg./////rz%((//::Ffbj)))));!r2   c                  B    t          g d           } | j        dk    sJ d S )Nc                     | dz   S r   re   r   s    r0   r   z)test_transform_no_geoms.<locals>.<lambda>B  s
    QU r2   )r   )r   shaper~   s    r0   test_transform_no_geomsr   @  s,    r??++F<4r2   c                      d } t          j        t                    5  t          t          |            d d d            d S # 1 swxY w Y   d S )Nc                     | d d         S )Nr:   re   )arrs    r0   remove_coordz0test_transform_check_shape.<locals>.remove_coordG  s    3B3xr2   )rc   rt   
ValueErrorr   r   )r   s    r0   test_transform_check_shaper   F  s       
z	"	" - -+|,,,- - - - - - - - - - - - - - - - - -s   A  AAc                      t           } t          j        |           dk    sJ t          | d d          }t          j        |          dk    sJ d S )Nr'   c                     | dz   S r   re   r   s    r0   r   z=test_transform_correct_coordinate_dimension.<locals>.<lambda>R  
    Q r2   Frh   r"   )r   ru   get_coordinate_dimensionr   geomnew_geoms     r0   +test_transform_correct_coordinate_dimensionr   N  s[    D+D11Q6666%@@@H+H55::::::r2   r   c                     t          j        |           dk    sJ t          | d d          }t          j        |          dk    sJ d S )Nr'   c                     | dz   S r   re   r   s    r0   r   z1test_transform_empty_preserve_z.<locals>.<lambda>_  r   r2   Trh   ru   r   r   r   s     r0   test_transform_empty_preserve_zr   V  sX     +D11Q6666$???H+H55::::::r2   c                     t          j        |           dk    sJ t          | d d          }t          j        |          dk    sJ d S )Nr'   c                     | dz   S r   re   r   s    r0   r   z)test_transform_remove_z.<locals>.<lambda>l  r   r2   Frh   r"   r   r   s     r0   test_transform_remove_zr   c  sX     +D11Q6666%@@@H+H55::::::r2   zgeom,expectedc                     t          | d d           }t          j        |          |k                                    sJ d S )Nc                     | dz   S r   re   r   s    r0   r   z:test_transform_auto_coordinate_dimension.<locals>.<lambda>x  r   r2   rh   )r   ru   r   all)r   rE   r   s      r0   (test_transform_auto_coordinate_dimensionr   p  sH     $???H,X66(BGGIIIIIIIr2   c                     t          t          t          gd d           } t          t	          j        |           ddg           t          t	          j        t          d          dz   t	          j        | d         d                     t          t	          j        t          d          dz   t	          j        | d         d                     d S )	Nc                     | dz   S r   re   r   s    r0   r   z@test_transform_auto_coordinate_dimension_mixed.<locals>.<lambda>}  s
    Q r2   rh   r"   r'   Fr!   r   T)r   r   r   r   ru   r   r   r   s    r0   .test_transform_auto_coordinate_dimension_mixedr   |  s    +}5RVWWWH1(;;aVDDDu===Au===   >>>Bt<<<    r2   c                 6    |
| dz   |dz   gS | dz   |dz   |dz   gS )Nr!   r"   r'   re   r   s      r0   transform_non_interleavedr     s2    yAq1u~Aq1ua!e$$r2   c                     t          t          t          gt          d d          } t	          t          j        |           ddg           t	          t          j        t          d          ddgz   t          j        | d         d                     t	          t          j        t          d          g d	z   t          j        | d         d                     d S )
NFr   r"   r'   rh   r!   r   T)r!   r"   r'   )r   r   r   r   r   ru   r   r   r   s    r0   :test_transform_auto_coordinate_dimension_mixed_interleavedr     s    	m$!	  H 1(;;aVDDDu===AFu===   >>>Jt<<<    r2   c                      t          j        d          5  t          t          d d           d d d            d S # 1 swxY w Y   d S )Nz=positional argument `include_z` for `transform` is deprecatedra   c                     | dz   S r   re   r   s    r0   r   z5test_transform_deprecate_positional.<locals>.<lambda>  s
    1q5 r2   F)rc   rd   r   r   re   r2   r0   #test_transform_deprecate_positionalr     s    		M
 
 
 9 9 	-%8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   ;??r)   )Dnumpyr*   rc   numpy.testingr   r   ru   r   r   r   r   shapely.tests.commonr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    geometrycollectionsnested_2nested_3markparametrizer1   rF   rP   rV   r?   rY   skipifgeos_versionr_   rf   ro   rr   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   r2   r0   <module>r      s        7 7 7 7 7 7 7 7  R R R R R R R R R R R R                                                   6 '7&(;U'CDD&7&%'899 	Q
!

	"

t	a 

	1
{	#Q'
A
	b!
(	)1-
"
	"
Q
Q! * + *
 tUm44tUm44	R
"b
!qc"
	aS)
aS!
t	qcA3'
!Q!Q(+&$$$$$$	

 OOO___5,,,,,,	

 (	)<<<FO444444	

 	kkk:
___nnn5
'''):):):;7 @; ;A  54 54D; 	R
"
!
	$

t	qc"
!Q 
	|||,
u	|||,
{	#%=%=%=> # # # 3*--# # .-# tUm44tUm44
	Aq6Aq6BFA;7
)))YYY			:
oooH
	 ,,,lllK
	sQC"&2	 	; ;	 	 54 54; G(:5mLLtUm44tUm44 GWh/LLLLVQ"VRVQ"	
 -G000000VRVRVQ1-1VHqL----	
 $$LLLLLLLL	
 K~NCCVHVH	
-   B; ;C    54 54 MLH;	- 	- 	- tUm4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 J3  544J5 5 5? ? ?
   tUm44
2 
2 54
2 tUm44%4%zE73Cm_U  u66O O 76	  54O"       - - -; ; ; 
 ; ; ; 
 ; ; ; 	a	 J J J

 
 
% % % %  $9 9 9 9 9r2   