o
    h3                     @   s6  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$eegZ%e$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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$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*d+ Z+ej'(d,d-d.gd/d0 Z,ej'(dddgej'(dddgej'(d1eegddgddgej-dgfegg d2g d3g d4fe#gg dg dg d5fegg d6g d7g d8feegdgdgej-gfgd9d: Z.ej'j/ej0d;k d<d=ej'(dddgej'(dddgej'(d>e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 dAg dBej-ej-ej-dddgd ej-gdC g dD fegg d6g d7g d8g dEfeeeeegdgdgej-gej-gfgdFdG Z1dHdI Z2ej'(dddgej'(dJg 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dKdL Z3dMdN Z4dOdP Z5dQdR Z6ej'(dddgdSdT Z7ej'(dddgej'(dUg egdedge&geegeggej'(dVddgdWdX Z8dYdZ Z9d[d\ Z:d]d^ Z;d_d` Z<ej'(daeegdbdc Z=ej'(daeegddde Z>ej'(dfedfedfgdgdh Z?didj Z@dqdkdlZAdmdn ZBdodp ZCdS )r    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                 C   s"   t t| tj}||ksJ d S N)r   nparrayobject_)geomscountactual r.   Y/var/www/html/scripts/venv/lib/python3.10/site-packages/shapely/tests/test_coordinates.pytest_count_coords&   s   r0   	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    @皙@r4   r3   r3   )
r   r   r    r    r   r3   r3   r4   r4   r3   )3   4   1   )r8   r!   )r5   r6   r7   r!   )r8   r8   r!   r&   )r5   r6   r7   r!   r!   )r8   r8   r!   r&   r&   c                 C   sd   t | ||d}||g}|r|tjgt|  |r%|tjgt|  t|t|tjj d S N)r2   r1   	r   appendr(   nanlenr   r)   float64T)r+   xyr2   r1   r-   expectedr.   r.   r/   test_get_coords@   s   #rC   zgeoms,indexr   r    r    r    )r   r   r   r    )r   r   r   r    r    r    r    r    c                 C   s8   t t| tjdd\}}tj|tjd}t|| d S )NTreturn_indexdtype)r   r(   r)   r*   intpr   )r+   index_r-   rB   r.   r.   r/   test_get_coords_indexl   s   rL   orderCFc                 C   s@   t jttgttgg| d}g d}t|dd\}}t|| d S )N)rM   rD   TrE   )r(   r)   r   r   r   r   r   )rM   geometryrB   rK   r-   r.   r.   r/   test_get_coords_index_multidim   s   rQ   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                 C   sX   t | ||d}||g}|r|| |r|tjgt|  t|t|tjj d S r9   r:   )r+   r@   rA   zr2   r1   r-   rB   r.   r.   r/   test_get_coords_z   s   
rS   )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           	      C   sL   t | ||d}||g}|r|| |r|| t|t|tjj d S r9   )r   r;   r   r(   r)   r>   r?   )	r+   r@   rA   rR   mr2   r1   r-   rB   r.   r.   r/   test_get_coords_zm   s   %

rX   c                   C   st   t jdd ttd W d    n1 sw   Y  t jdd ttdd W d    d S 1 s3w   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   r.   r.   r.   r/   $test_get_coords_deprecate_positional   s   "r]   zgeoms,count,has_ringc                 C   sV   t | t j}|rdnd}t||dt jd|f }t||}t|t||d d S )Nr&   r!   r2   r    )r(   r)   r*   r   randomr   r   )r+   r,   has_ringr2   	arr_geomsncoords	new_geomsr.   r.   r/   test_set_coords   s
   
re   c                  C   s<   t tg} t t jt jgg}t| |}t|t| d S r'   )r(   r)   r   r<   infr   r   r   )r+   rc   rd   r.   r.   r/   test_set_coords_nan   s   
rg   c                   C   sD   t tj tttjd W d    d S 1 sw   Y  d S )N)r#   r!   )r[   raisesshapelyGEOSExceptionr   r   r(   r_   r.   r.   r.   r/   test_set_coords_breaks_ring  s   "rk   c                  C   sX   t tddgg} t| tjsJ t ttddgg} t| tjs#J | jdks*J d S )Nr    r   )	r   r   
isinstanceri   Geometryr(   asarrayndarrayndimr-   r.   r.   r/   test_set_coords_0dim  s
   rr   c                 C   sn   t jttgtd}t|| d}t||d }| r,t|d r!J t|d s*J d S t|	 r5J d S )NrG   r^   r!   r   r    )
r(   r)   r   r   objectr   r   ri   has_zany)r2   r+   rc   rd   r.   r.   r/   test_set_coords_mixed_dimension  s   rv   r+   interleavedc                 C   s|   t | t j} t| |d}|rdd }n|sdd }ndd }t| |||d}|| us-J t||d}t|d |dd	 d S )
Nr^   c                 S      | d S Nr    r.   )rc   r.   r.   r/   <lambda>)      z test_transform.<locals>.<lambda>c                 S   s   | d |d fS ry   r.   )r@   rA   r.   r.   r/   rz   +  s    c                 S   s   | d |d |d fS ry   r.   r@   rA   rR   r.   r.   r/   rz   -  s    r2   rw   r    T)	equal_nan)r(   r)   r*   r   r   r   )r+   r2   rw   coordinates_beforetransformationrd   coordinates_afterr.   r.   r/   test_transform  s   

r   c                  C   sT   t tdd } t| tjsJ t ttdd } t| tjs!J | jdks(J d S )Nc                 S   rx   ry   r.   r@   r.   r.   r/   rz   8  r{   z%test_transform_0dim.<locals>.<lambda>c                 S   rx   ry   r.   r   r.   r.   r/   rz   ;  r{   r   )	r   r   rl   ri   rm   r(   rn   ro   rp   rq   r.   r.   r/   test_transform_0dim6  s
   r   c                  C   s    t g dd } | jdksJ d S )Nc                 S   rx   ry   r.   r   r.   r.   r/   rz   B  r{   z)test_transform_no_geoms.<locals>.<lambda>)r   )r   shaperq   r.   r.   r/   test_transform_no_geoms@  s   r   c                  C   sB   dd } t t tt|  W d    d S 1 sw   Y  d S )Nc                 S   s   | d d S )Nr8   r.   )arrr.   r.   r/   remove_coordG  s   z0test_transform_check_shape.<locals>.remove_coord)r[   rh   
ValueErrorr   r   )r   r.   r.   r/   test_transform_check_shapeF  s   "r   c                  C   s>   t } t| dksJ t| dd dd}t|dksJ d S )Nr&   c                 S   rx   ry   r.   r   r.   r.   r/   rz   R  r{   z=test_transform_correct_coordinate_dimension.<locals>.<lambda>Fr^   r!   )r   ri   get_coordinate_dimensionr   geomnew_geomr.   r.   r/   +test_transform_correct_coordinate_dimensionN  s   r   r   c                 C   s:   t | dks	J t| dd dd}t |dksJ d S )Nr&   c                 S   rx   ry   r.   r   r.   r.   r/   rz   _  r{   z1test_transform_empty_preserve_z.<locals>.<lambda>Tr^   ri   r   r   r   r.   r.   r/   test_transform_empty_preserve_zV     r   c                 C   s:   t | dks	J t| dd dd}t |dksJ d S )Nr&   c                 S   rx   ry   r.   r   r.   r.   r/   rz   l  r{   z)test_transform_remove_z.<locals>.<lambda>Fr^   r!   r   r   r.   r.   r/   test_transform_remove_zc  r   r   zgeom,expectedc                 C   s,   t | dd d d}t||k sJ d S )Nc                 S   rx   ry   r.   r   r.   r.   r/   rz   x  r{   z:test_transform_auto_coordinate_dimension.<locals>.<lambda>r^   )r   ri   r   all)r   rB   r   r.   r.   r/   (test_transform_auto_coordinate_dimensionp  s   r   c                  C   sz   t ttgdd d d} tt| ddg ttjtddd tj| d dd ttjtd	dd tj| d d	d d S )
Nc                 S   rx   ry   r.   r   r.   r.   r/   rz   }  r{   z@test_transform_auto_coordinate_dimension_mixed.<locals>.<lambda>r^   r!   r&   Fr    r   T)r   r   r   r   ri   r   r   r   r.   r.   r/   .test_transform_auto_coordinate_dimension_mixed|  s   r   c                 C   s.   |d u r| d |d gS | d |d |d gS )Nr    r!   r&   r.   r|   r.   r.   r/   transform_non_interleaved  s   r   c                  C   s   t ttgtd dd} tt| ddg ttjtddddg tj| d dd ttjtddg d	 tj| d dd d S )
NFr}   r!   r&   r^   r    r   T)r    r!   r&   )r   r   r   r   r   ri   r   r   r   r.   r.   r/   :test_transform_auto_coordinate_dimension_mixed_interleaved  s   r   c                   C   sB   t jdd ttdd d W d    d S 1 sw   Y  d S )Nz=positional argument `include_z` for `transform` is deprecatedrY   c                 S   rx   ry   r.   r   r.   r.   r/   rz     r{   z5test_transform_deprecate_positional.<locals>.<lambda>F)r[   r\   r   r   r.   r.   r.   r/   #test_transform_deprecate_positional  s
   "r   r'   )Dnumpyr(   r[   numpy.testingr   r   ri   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parametrizer0   rC   rL   rQ   r<   rS   skipifgeos_versionrX   r]   re   rg   rk   rr   rv   r   r   r   r   r   r   r   r   r   r   r   r   r.   r.   r.   r/   <module>   sz   h







 






!


















