o
    j3                     @   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.   _/var/www/html/Deteccion_Ine/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Zreturn_indexZdtype)r   r(   r)   r*   Zintpr   )r+   index_r-   rB   r.   r.   r/   test_get_coords_indexl   s   rI   orderCFc                 C   s@   t jttgttgg| d}g d}t|dd\}}t|| d S )N)rJ   rD   TrE   )r(   r)   r   r   r   r   r   )rJ   ZgeometryrB   rH   r-   r.   r.   r/   test_get_coords_index_multidim   s   rM   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   
rO   )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   rN   mr2   r1   r-   rB   r.   r.   r/   test_get_coords_zm   s   %

rT   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   "rY   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,   Zhas_ringr2   Z	arr_geomsncoords	new_geomsr.   r.   r/   test_set_coords   s
   
r_   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+   r]   r^   r.   r.   r/   test_set_coords_nan   s   
ra   c                   C   sD   t tj tttjd W d    d S 1 sw   Y  d S )N)r#   r!   )rW   raisesshapelyZGEOSExceptionr   r   r(   r[   r.   r.   r.   r/   test_set_coords_breaks_ring  s   "rd   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   
isinstancerc   Geometryr(   asarrayndarrayndimr-   r.   r.   r/   test_set_coords_0dim  s
   rk   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 )NrF   rZ   r!   r   r    )
r(   r)   r   r   objectr   r   rc   Zhas_zany)r2   r+   r]   r^   r.   r.   r/   test_set_coords_mixed_dimension  s   rn   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 )
NrZ   c                 S      | d S Nr    r.   )r]   r.   r.   r/   <lambda>)      z test_transform.<locals>.<lambda>c                 S   s   | d |d fS rq   r.   )r@   rA   r.   r.   r/   rr   +  s    c                 S   s   | d |d |d fS rq   r.   r@   rA   rN   r.   r.   r/   rr   -  s    r2   ro   r    T)Z	equal_nan)r(   r)   r*   r   r   r   )r+   r2   ro   Zcoordinates_beforeZtransformationr^   Zcoordinates_afterr.   r.   r/   test_transform  s   

rv   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   rp   rq   r.   r@   r.   r.   r/   rr   8  rs   z%test_transform_0dim.<locals>.<lambda>c                 S   rp   rq   r.   rw   r.   r.   r/   rr   ;  rs   r   )	r   r   re   rc   rf   r(   rg   rh   ri   rj   r.   r.   r/   test_transform_0dim6  s
   rx   c                  C   s    t g dd } | jdksJ d S )Nc                 S   rp   rq   r.   rw   r.   r.   r/   rr   B  rs   z)test_transform_no_geoms.<locals>.<lambda>)r   )r   shaperj   r.   r.   r/   test_transform_no_geoms@  s   rz   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.   )Zarrr.   r.   r/   remove_coordG  s   z0test_transform_check_shape.<locals>.remove_coord)rW   rb   
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   rp   rq   r.   rw   r.   r.   r/   rr   R  rs   z=test_transform_correct_coordinate_dimension.<locals>.<lambda>FrZ   r!   )r   rc   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   rp   rq   r.   rw   r.   r.   r/   rr   _  rs   z1test_transform_empty_preserve_z.<locals>.<lambda>TrZ   rc   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   rp   rq   r.   rw   r.   r.   r/   rr   l  rs   z)test_transform_remove_z.<locals>.<lambda>FrZ   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   rp   rq   r.   rw   r.   r.   r/   rr   x  rs   z:test_transform_auto_coordinate_dimension.<locals>.<lambda>rZ   )r   rc   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   rp   rq   r.   rw   r.   r.   r/   rr   }  rs   z@test_transform_auto_coordinate_dimension_mixed.<locals>.<lambda>rZ   r!   r&   Fr    r   T)r   r   r   r   rc   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.   rt   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 )
NFru   r!   r&   rZ   r    r   T)r    r!   r&   )r   r   r   r   r   rc   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 deprecatedrU   c                 S   rp   rq   r.   rw   r.   r.   r/   rr     rs   z5test_transform_deprecate_positional.<locals>.<lambda>F)rW   rX   r   r   r.   r.   r.   r/   #test_transform_deprecate_positional  s
   "r   r'   )Dnumpyr(   rW   Znumpy.testingr   r   rc   r   r   r   r   Z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   ZgeometrycollectionsZnested_2Znested_3markZparametrizer0   rC   rI   rM   r<   rO   ZskipifZgeos_versionrT   rY   r_   ra   rd   rk   rn   rv   rx   rz   r}   r   r   r   r   r   r   r   r   r.   r.   r.   r/   <module>   sz   h







 






!













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