o
    Jfl#                     @   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'   j/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/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}|st||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return_indexdtype)r   r!   r"   r#   intpr   )r$   index_r&   r9   r'   r'   r(   test_get_coords_indexY   s   rC   orderCFc                 C   s@   t jttgttgg| d}g d}t|dd\}}t|| d S )N)rD   r;   Tr<   )r!   r"   r   r   r   r   r   )rD   geometryr9   rB   r&   r'   r'   r(   test_get_coords_index_multidimn   s   rH   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}|rt|||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_3dw   s
   rJ   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_ringr*   	arr_geomsncoords	new_geomsr'   r'   r(   test_set_coords   s
   
rQ   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$   rO   rP   r'   r'   r(   test_set_coords_nan   s   
rS   c                   C   sD   t tj tttjd W d    d S 1 sw   Y  d S )N)r   r   )pytestraisesshapelyGEOSExceptionr   r   r!   rK   r'   r'   r'   r(   test_set_coords_breaks_ring   s   "rX   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   
isinstancerV   Geometryr!   asarrayndarrayndimr&   r'   r'   r(   test_set_coords_0dim   s
   r_   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 )Nr>   r2   r   r   r   )
r!   r"   r   r   objectr   r   rV   has_zany)r*   r$   rO   rP   r'   r'   r(   test_set_coords_mixed_dimension   s   rc   r$   c                 C   sZ   t | t j} t| |d}t| dd |d}|| usJ t||d}t|d |dd d S )Nr2   c                 S      | d S Nr   r'   r7   r'   r'   r(   <lambda>       z test_transform.<locals>.<lambda>r   T)	equal_nan)r!   r"   r#   r   r   r   )r$   r*   coordinates_beforerP   coordinates_afterr'   r'   r(   test_transform   s   rl   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   rd   re   r'   rf   r'   r'   r(   rg      rh   z%test_transform_0dim.<locals>.<lambda>c                 S   rd   re   r'   rf   r'   r'   r(   rg      rh   r   )	r   r   rY   rV   rZ   r!   r[   r\   r]   r^   r'   r'   r(   test_transform_0dim   s
   rm   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 )Nr0   r'   )arrr'   r'   r(   remove_coord   s   z0test_transform_check_shape.<locals>.remove_coord)rT   rU   
ValueErrorr   r   )ro   r'   r'   r(   test_transform_check_shape   s   "rq   c                  C   s>   t } t| dksJ t| dd dd}t|dksJ d S )Nr   c                 S   rd   re   r'   rf   r'   r'   r(   rg      rh   z=test_transform_correct_coordinate_dimension.<locals>.<lambda>Fr2   r   )r   rV   get_coordinate_dimensionr   geomnew_geomr'   r'   r(   +test_transform_correct_coordinate_dimension   s   rv   rt   )r   	   r   z8Empty points don't have a dimensionality before GEOS 3.9)reason)marksc                 C   s:   t | dks	J t| dd dd}t |dksJ d S )Nr   c                 S   rd   re   r'   rf   r'   r'   r(   rg      rh   z1test_transform_empty_preserve_z.<locals>.<lambda>Tr2   rV   rr   r   rs   r'   r'   r(   test_transform_empty_preserve_z      r{   c                 C   s:   t | dks	J t| dd dd}t |dksJ d S )Nr   c                 S   rd   re   r'   rf   r'   r'   r(   rg   	  rh   z)test_transform_remove_z.<locals>.<lambda>Fr2   r   rz   rs   r'   r'   r(   test_transform_remove_z  r|   r}   )6numpyr!   rT   numpy.testingr   r   rV   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:   rC   rH   r5   rJ   rQ   rS   rX   r_   rc   rl   rm   rq   rv   paramskipifgeos_versionr{   r}   r'   r'   r'   r(   <module>   s    L











	












	

