a
    J5d`#                     @   s  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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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.d/ Z%ej !dddgej !d0eegddgddgej&dgfegg d1g d2g d3fegg dg dg d4fegg d5g d6g d7feegdgdgej&gfgd8d9 Z'ej !dddgej !d:g 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d;d< Z(d=d> Z)d?d@ Z*dAdB Z+ej !dddgdCdD Z,ej !dddgej !dEg egdedgegeegeggdFdG Z-dHdI Z.dJdK Z/dLdM Z0ej !dNej1eej j2ej3dOk dPdQdRegdSdT Z4ej !dNej1eej j2ej3dOk dPdQdRegdUdV Z5dS )W    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                 C   s"   t t| tj}||ksJ d S N)r   nparrayobject_)geomscountactual r'   Z/var/www/html/django/DPS/env/lib/python3.9/site-packages/shapely/tests/test_coordinates.pytest_count_coords    s    r)   	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   )r0   r   )r-   r.   r/   r   )r0   r0   r   r   )r-   r.   r/   r   r   )r0   r0   r   r   r   c                 C   s`   t t| tj|d}|s0t||gtjj}n"t||tjgt| gtjj}t|| d S Nr*   )	r   r!   r"   r#   float64Tnanlenr   )r$   xyr*   r&   expectedr'   r'   r(   test_get_coords;   s
    "r:   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&   r9   r'   r'   r(   test_get_coords_indexZ   s    r@   orderCFc                 C   s@   t jttgttgg| d}g d}t|dd\}}t|| d S )N)rA   r;   Tr<   )r!   r"   r   r   r	   r   r   )rA   Zgeometryr9   r?   r&   r'   r'   r(   test_get_coords_index_multidimo   s    rD   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   sT   t t| tj|d}|r2t|||gtjj}nt||gtjj}t|| d S r1   )r   r!   r"   r#   r3   r4   r   )r$   r7   r8   zr*   r&   r9   r'   r'   r(   test_get_coords_3dx   s
    rF   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_ringr*   Z	arr_geomsncoords	new_geomsr'   r'   r(   test_set_coords   s
    
rK   c                  C   s<   t tg} t t jt jgg}t| |}t|t| d S r    )r!   r"   r   r5   infr   r   r   )r$   rI   rJ   r'   r'   r(   test_set_coords_nan   s    
rM   c                   C   sB   t tj" tttjd W d    n1 s40    Y  d S )N)r   r   )pytestraisesshapelyZGEOSExceptionr   r   r!   rG   r'   r'   r'   r(   test_set_coords_breaks_ring   s    rQ   c                  C   sX   t tddgg} t| tjs J t ttddgg} t| tjsFJ | jdksTJ d S )Nr   r   )	r   r   
isinstancerP   Geometryr!   asarrayndarrayndimr&   r'   r'   r(   test_set_coords_0dim   s
    rX   c                 C   sl   t jttgtd}t|| d}t||d }| rVt|d rBJ t|d shJ nt|	 rhJ d S )Nr=   r2   r   r   r   )
r!   r"   r   r   objectr   r   rP   Zhas_zany)r*   r$   rI   rJ   r'   r'   r(   test_set_coords_mixed_dimension   s    r[   r$   c                 C   sZ   t | t j} t| |d}t| dd |d}|| us8J t||d}t|d |dd d S )Nr2   c                 S   s   | d S Nr   r'   r7   r'   r'   r(   <lambda>       z test_transform.<locals>.<lambda>r   T)Z	equal_nan)r!   r"   r#   r   r   r   )r$   r*   Zcoordinates_beforerJ   Z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sBJ | jdksPJ d S )Nc                 S   s   | d S r\   r'   r]   r'   r'   r(   r^      r_   z%test_transform_0dim.<locals>.<lambda>c                 S   s   | d S r\   r'   r]   r'   r'   r(   r^      r_   r   )	r   r   rR   rP   rS   r!   rT   rU   rV   rW   r'   r'   r(   test_transform_0dim   s
    ra   c                  C   s@   dd } t t tt|  W d    n1 s20    Y  d S )Nc                 S   s   | d d S )Nr0   r'   )Zarrr'   r'   r(   remove_coord   s    z0test_transform_check_shape.<locals>.remove_coord)rN   rO   
ValueErrorr   r   )rb   r'   r'   r(   test_transform_check_shape   s    rd   c                  C   s>   t } t| dksJ t| dd dd}t|dks:J d S )Nr   c                 S   s   | d S r\   r'   r]   r'   r'   r(   r^      r_   z=test_transform_correct_coordinate_dimension.<locals>.<lambda>Fr2   r   )r   rP   get_coordinate_dimensionr   geomZnew_geomr'   r'   r(   +test_transform_correct_coordinate_dimension   s    rh   rg   )r   	   r   z8Empty points don't have a dimensionality before GEOS 3.9)reason)Zmarksc                 C   s:   t | dksJ t| dd dd}t |dks6J d S )Nr   c                 S   s   | d S r\   r'   r]   r'   r'   r(   r^      r_   z1test_transform_empty_preserve_z.<locals>.<lambda>Tr2   rP   re   r   rf   r'   r'   r(   test_transform_empty_preserve_z   s    rl   c                 C   s:   t | dksJ t| dd dd}t |dks6J d S )Nr   c                 S   s   | d S r\   r'   r]   r'   r'   r(   r^   
  r_   z)test_transform_remove_z.<locals>.<lambda>Fr2   r   rk   rf   r'   r'   r(   test_transform_remove_z  s    rm   )6numpyr!   rN   Znumpy.testingr   r   rP   r   r   r   r   commonr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZgeometrycollectionsZnested_2Znested_3markZparametrizer)   r:   r@   rD   r5   rF   rK   rM   rQ   rX   r[   r`   ra   rd   rh   paramZskipifZgeos_versionrl   rm   r'   r'   r'   r(   <module>   s   L











	












	

