o
    jIW                     @   s  d Z ddlZddlZddlmZ ddlZddlmZmZm	Z	m
Z
mZmZmZmZ ddl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 dd Zd	d
 Zdd Zdd Zdd Z ej!j"ej#dd dvdddd Z$ej!j"ej#dd dvdddd Z%ej!j"ej#dd dkdddd Z&ej!j"ej#dk d dej!'d!ej(ej)ej)gd"ej!j"ej#d#k d$dd%ej(ej)ej)ej)gd&ej!j"ej#d#k d$dd%d'ej)gd(fej)d'gd)fej)d'ej)gd*fej)ej)d'gd+fgd,d- Z*ej!'d.dej)gd/d0fej)dgd/d0fdej)d'gd/d1fdd'ej)gd/d1fdd'gd2d3fg d4d2d5fdej+gd/d0fgd6d7 Z,ej!'d8dej)gej)dgddej)gdej+gdej+ ggd9d: Z-d;d< Z.d=d> Z/d?d@ Z0dAdB Z1ej!'dCddDgdEdF Z2dGdH Z3dIdJ Z4ej!'dKg dLdMdN Z5dOdP Z6ej!'d8dd'gde7dQggdd'e7dQgdde7dQggg d4dde7dQggdd'e7dQgg dRge7dQe7dQge7dQe7dQgggdSdT Z8ej!'d8de7dQgdd'gddDggdd'gde7dQgddDggdd'gddDgde7dQgggdUdV Z9dWdX Z:dYdZ Z;d[d\ Z<d]d^ Z=d_d` Z>dadb Z?dcdd Z@dedf ZAdgdh ZBej!'dKg didjdk ZCdldm ZDdndo ZEej!'dCddDgej!'dpdqdrgdsdt ZFej!'d8ddgd'e7dQgd'dDgddggddge7dQdgd'dDgddggg due7dQddvgg dwg dugg dud'de7dQgg dwg duggdxdy ZGej!'dzdd'e7dQddgg d{fg d|dDd}e7dQdvdDgfdd'dde7dQgg d~fe7dQdd'ddgg dfgdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYej!'dKg didd ZZdd Z[ej!'dKg didd Z\ej!'dej]e fej^e fej_e fej`e fgdd Zaej!'dej]efej^efej^efej_efej`efej`efej`efej`efej`efej`efej`efej`efgdd Zbej!'dej]efej^efej_efej`efgdd Zcej!'dej]efej]efej]efej^efej^efej^efej_efej_efej_efg	dd Zdej!'dddeg dfddeg dfgdd Zeej!'dddd'dgd'dgfdeg deg dgfddd'dgd'dgfddgeg deg dgfgdd Zfej!'d8ej)ej)ej)ej)gej)dd'd'gdej)d'd'gddej)d'gddd'ej)ggdd ZgddÄ Zhddń ZiddǄ Zjej!'ddejkdgdd˄ Zlej!'demd̃dd΄ ZndS )z@See test_creation_indices.py for tests with 'indices' parameter.    N)assert_array_equal)GeometryCollectionGeometryType
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPolygon)assert_geometries_equal)
empty_polygongeometry_collectionignore_invalidline_stringlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpolygonc                 C   s"   ||f||f| |f| |f||ffS N )x1y1Zx2y2r   r   \/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/shapely/tests/test_creation.pybox_tpl#   s   "r   c                  C   s8   t ddgddgg} t| t ddt ddg d S )Nr      shapelypointsr   ZPointactualr   r   r   test_points_from_coords'   s   "r#   c                  C   s2   t dddg} t| t ddt ddg d S )Nr   r      r   r!   r   r   r   test_points_from_xy,   s   "r%   c                  C   s8   t ddddg} t| t dddt dddg d S )Nr$   r   r   r!   r   r   r   test_points_from_xyz1   s   &r&   c                   C   s|   t jtdd tg d W d    n1 sw   Y  t jtdd tdg W d    d S 1 s7w   Y  d S )Nz!dimension should be 2 or 3, got 4match)r   r$   r      z!dimension should be 2 or 3, got 1r   pytestraises
ValueErrorr   r    r   r   r   r   test_points_invalid_ndim6   s   "r.   r   )r)   
   r)      r)      zGEOS not in 3.10, 3.11, 3.12)reasonc                  C   s"   t tjtj} | jdksJ d S NPOINT EMPTYr   r    npnanwktr!   r   r   r   %test_points_nan_all_nan_becomes_empty>   s   r<   )r/   r1   zGEOS not in 3.10, 3.11c                  C   &   t tjtjtj} | jdksJ d S r6   r8   r!   r   r   r   +test_points_nan_3D_all_nan_becomes_empty_2DG   s   r>   r3   zGEOS != 3.12c                  C   r=   )NPOINT Z EMPTYr8   r!   r   r   r   (test_points_nan_3D_all_nan_becomes_emptyP   s   r@   )r)   r4   r   zGEOS < 3.12zcoords,expected_wktzPOINT (NaN NaN))r)      r   zGEOS < 3.13)ZmarkszPOINT Z (NaN NaN NaN)r$   zPOINT (1 NaN)zPOINT (NaN 1)zPOINT Z (NaN 1 NaN)zPOINT Z (NaN NaN 1)c                 C   s    t j| dd}|j|ksJ d S )Nallow
handle_nanr   r    r;   )coordsexpected_wktr"   r   r   r   test_points_handle_nan_allowV   s   rH   zcoords,handle_nan,expected_wktskipr7   r?   errorzPOINT (0 1))r   r$   r   zPOINT Z (0 1 2)c                 C   s    t j| |d}|j|v sJ d S )NrC   rE   )rF   rD   rG   r"   r   r   r   test_points_handle_nans   s   rK   rF   c                 C   sB   t jtdd tj| dd W d    d S 1 sw   Y  d S )N.*NaN.*r'   rJ   rC   r*   rF   r   r   r   test_points_handle_nan_error   s   "rN   c                  C   sH   t ddgddggddgddggg} t| tddgtddgg d S )Nr   r$   r   r   r   r$   r$   r   r   r   linestringsr   r   r!   r   r   r   test_linestrings_from_coords   s   &

rT   c                  C   s*   t ddgddg} t| tddg d S )Nr   r$   r   r)   r   r   r$   r)   rR   r!   r   r   r   test_linestrings_from_xy      rW   c                  C   sF   ddg} ddgddgf}t | |}t|tddgtd	d
gg d S )Nr   r$   r   r)         rU   rV   )r   rY   )r$   rZ   rR   xyr"   r   r   r   "test_linestrings_from_xy_broadcast   s   

r^   c                  C   s,   t ddgddgd} t| tddg d S )Nr   r$   r   r)   )r   r   r   )r$   r)   r   rR   r!   r   r   r   test_linestrings_from_xyz   s   r_   dimr)   c                 C   s   t jdd| }t j|dd}t|}t j|dd}t|}t|| t jt t |dddddd}t t |dddd}t|}t|| d S )	Nr0   r)   CorderFr   r   r$   )r9   randomrandnasarrayr   rS   r   swapaxes)r`   rF   coords1result1coords2result2coords3result3r   r   r   test_linestrings_buffer   s   


"
ro   c                  C      t td} | jsJ d S NrU   )r   rS   r9   emptyis_emptyr!   r   r   r   test_linestrings_empty      rt   c                   C   :   t t td W d    d S 1 sw   Y  d S NrP   )r+   r,   r-   r   rS   r   r   r   r   %test_linestrings_invalid_shape_scalar      "rx   shape)r   r$   r   r$   r$   r   r$   r   c                 C   sB   t tj tt|  W d    d S 1 sw   Y  d S r   )r+   r,   r   GEOSExceptionrS   r9   ones)rz   r   r   r   test_linestrings_invalid_shape   s   	"r   c                  C   sh  d} t jddd}tjt| dd t| W d    n1 s#w   Y  t jddd}tjt| dd t| W d    n1 sIw   Y  t t t ddd	d
d}t t t j	|dddd	d
d	}tjt| dd t| W d    n1 sw   Y  t d}tjt| d
d t| W d    d S 1 sw   Y  d S )N8The ordinate \(last\) dimension should be 2 or 3, got {})r0   r   rY   ra   rb   rY   r'   rd   r   r   r$   )r0   r   r$   )
r9   r   r+   r,   r-   formatr   rS   rh   rg   )msgrF   r   r   r   test_linestrings_invalid_ndim   s$   "
"r   r:   )r   r   r)   c                 C   \   t   tj| dd}W d    n1 sw   Y  tj|t| d dkd}t||  d S NrB   rC   r   r)   )Z	include_z)r   r   rS   get_coordinateslenr   rF   r"   r   r   r   !test_linestrings_handle_nan_allow   s
   r   c                 C   s$   t j| dd}t|tddg d S )NrI   rC   r   r$   )r   r)   rR   r   r   r   r    test_linestrings_handle_nan_skip  s   	r   c                   C   sP   t tj tjddgdtdggdd W d    d S 1 s!w   Y  d S )Nr   r$   r   r:   rI   rC   )r+   r,   r   r~   rS   floatr   r   r   r   (test_linestrings_handle_nan_skip_invalid  s    "r   c                  C   (   t jtjdtjddd} | jsJ d S )N)r)   r   Z
fill_valuerI   rC   )r   rS   r9   fullr:   rs   r!   r   r   r   )test_linestrings_handle_nan_skip_only_nan  s   r   c                   C   sX   t jtdd tjddgdtdgddggdd	 W d    d S 1 s%w   Y  d S )
NrL   r'   r   r$   r   r:   r)   rJ   rC   )r+   r,   r-   r   rS   r   r   r   r   r   !test_linestrings_handle_nan_error  s   &"r   c                  C   *   t tdddd} t| tg d d S Nr   r$   r$   r   rP   r   rO   r   r   linearringsr   r   r   r!   r   r   r   test_linearrings"  s   r   c                  C   rp   rq   )r   r   r9   rr   rs   r!   r   r   r   test_linearrings_empty)  ru   r   c                  C   s*   t g dg d} t| tg d d S )N)r   r$   r   r   )r)   rY   rZ   r)   r   r)   )r$   rY   )r   rZ   r   r   r   r   r   r!   r   r   r   test_linearrings_from_xy.  rX   r   c                  C   s2   t tddddd d } t| tg d d S )Nr   r$   r   r   r!   r   r   r   test_linearrings_unclosed3  s   r   c                  C   s$   t g d} t| tg d d S )N)rO   rO   rO   )rO   rO   rO   rO   r   r!   r   r   r   *test_linearrings_unclosed_all_coords_equal:  s   r   c                   C   rv   rw   )r+   r,   r-   r   r   r   r   r   r   %test_linearrings_invalid_shape_scalar?  ry   r   )r{   r|   r}   )r   r   r   )r$   r   r   rQ   c                 C      t | }tt t| W d    n1 sw   Y  |d  d7  < tt t| W d    d S 1 s=w   Y  d S N.r$   r$   )r9   r   r+   r,   r-   r   r   rz   rF   r   r   r   test_linearrings_invalid_shapeD     
"r   c                  C   s  d} t jddd}tjt| dd t| W d    n1 s$w   Y  t 	||d d dgd d f f}tjt| dd t| W d    n1 sTw   Y  t jddd}tjt| dd t| W d    d S 1 s|w   Y  d S )Nr   r0   r)   rY   r'   r   r$   )
r9   re   rf   r+   r,   r-   r   r   r   hstack)r   ri   rk   rm   r   r   r   test_linearrings_invalid_ndimZ  s   ""r   c                  C   sJ   t dt j} ttj t|  W d    d S 1 sw   Y  d S )N)rY   r   )r9   r   r:   r+   r,   r   r~   r   rM   r   r   r   test_linearrings_all_nank  s   "r   rc   ra   rd   c                 C   s   t jdd| }t j||d}t|}t ||d d dgd d f f}t j||d}t|}t|| t j|d |d}t|}t||d  d S )Nr0   rY   rb   r   )r9   re   rf   rg   r   r   r   r   )r`   rc   ri   rj   rk   rl   rm   rn   r   r   r   test_linearrings_bufferq  s   
"


r   )r   r   rZ   rZ   )r$   r)   rZ   c                 C   r   r   )r   r   r   r   r   r   r   r   r   r   !test_linearrings_handle_nan_allow  s
   
r   zx,yr)   rY   rZ   rZ   r)   )r   r$   r$   r   r   rY   )r)   rY   rZ   r)   r)   )r)   r)   rY   rZ   r)   c                 C   s&   t j| |dd}t|tg d d S )NrI   rC   r   r   r[   r   r   r    test_linearrings_handle_nan_skip     
r   c                   C   sN   t t tjdtddgg ddd W d    d S 1 s w   Y  d S )Nr   r:   )r)   rY   r)   rI   rC   r+   r,   r-   r   r   r   r   r   r   r   (test_linearrings_handle_nan_skip_invalid  s    "r   c                  C   r   )N)rZ   r   r   rI   rC   )r   r   r9   r   r:   rs   r!   r   r   r   )test_linearrings_handle_nan_skip_only_nan  s   r   c                   C   sV   t jtdd tjddtdddgg ddd	 W d    d S 1 s$w   Y  d S )
NrL   r'   r   r$   r:   r   r   rJ   rC   r   r   r   r   r   !test_linearrings_handle_nan_error  s
   "r   c               	   C   s0   t t tdddd} t| tg d d S r   )r   polygonsr   r   r   r
   r!   r   r   r   test_polygon_from_linearring  s   r   c                   C   s*   t td t t tjd tgdt d S )N)Zholes)r   r   r   r   r   r   r   r   r   test_polygons_none  s   r   c                  C   r   r   )r   r   r   r   r
   r!   r   r   r   test_polygons  rX   r   c                	   C   sP   t t ttddddtdddd W d    d S 1 s!w   Y  d S )Nr   r0   r$   r   )r+   r,   r-   r   r   r   r   r   r   r    test_polygon_no_hole_list_raises  s   ""r   c                   C   s@   t ttjf tt W d    d S 1 sw   Y  d S r   )r+   r,   	TypeErrorr   r~   r   r   r   r   r   r   test_polygon_no_hole_wrong_type  s   "r   c                   C   D   t ttjf tttg W d    d S 1 sw   Y  d S r   )r+   r,   r   r   r~   r   r   r   r   r   r   r   !test_polygon_with_hole_wrong_type     "r   c                   C   r   r   )r+   r,   r   r   r~   r   r   r   r   r   r   r   test_polygon_wrong_hole_type  r   r   c                  C   s8   t tddddtddddg} t | dksJ d S )Nr   r0   r$   r        X@r   r   r   arear!   r   r   r   test_polygon_with_1_hole  s   "r   c               	   C   sD   t tddddtddddtddddg} t | dks J d S Nr   r0   r$   r   r)   rY        X@r   r!   r   r   r   test_polygon_with_2_holes  s   &r   c                  C   sX   t t tddddt tddddd t tddddg} t | dks*J d S r   )r   r   r   r   r   r!   r   r   r   test_polygon_with_none_hole  s   r   c                  C   sN   t tddddtddddgtddddg} t |  ddgks%J d S )Nr   r0   rZ   r$   r   r         8@r   r   r   r   tolistr!   r   r   r   test_2_polygons_with_same_hole  s   (r   c               	   C   sZ   t tddddtddddgtddddtddddg} t |  dd	gks+J d S )
Nr   r0   rZ   r$   r   r)   rY   r   g      7@r   r!   r   r   r   !test_2_polygons_with_2_same_holes  s
   r   c               	   C   s^   t tddddtddddgtddddgtddddgg} t |  ddgks-J d S )	Nr   r0   rZ   r$   r)   r   g      X@r   r   r!   r   r   r   $test_2_polygons_with_different_holes  s
   r   c                   C   rv   rw   )r+   r,   r-   r   r   r   r   r   r   /test_polygons_not_enough_points_in_shell_scalar  ry   r   c                 C   r   r   r9   r   r+   r,   r-   r   r   r   r   r   r   (test_polygons_not_enough_points_in_shell  r   r   c                   C   sB   t t ttdd W d    d S 1 sw   Y  d S )Nr$   rY   r   rP   )r+   r,   r-   r   r   r9   r   r   r   r   r   /test_polygons_not_enough_points_in_holes_scalar!  s   "r   c                 C   s   t | }tt tt d| W d    n1 sw   Y  |d  d7  < tt tt d| W d    d S 1 sEw   Y  d S )Nr   r   r$   r   r   r   r   r   (test_polygons_not_enough_points_in_holes&  s   
"r   zfunc,expectedc                 C   s"   | t jd gtd}t|| d S )N)Zdtype)r9   arrayobjectr   )funcexpectedr"   r   r   r    test_create_collection_only_none<  s   
r   zfunc,sub_geomc                 C   s"   | ||g}t |dksJ d S Nr   r   Zget_num_geometriesr   sub_geomr"   r   r   r   test_create_collectionJ  s   r   c                 C   s&   | |d d |g}t |dksJ d S r   r   r   r   r   r   !test_create_collection_skips_none`  r   r   c                 C   s:   t t | |g W d    d S 1 sw   Y  d S r   )r+   r,   r   )r   r   r   r   r   &test_create_collection_wrong_geom_typen  s   "r   zcoords,ccw,expected)r   r   r$   r$   Tr   F)rO   r   rP   r   rO   c                 C      t j| d|i}t|| d S Nccwr   boxr   rF   r   r   r"   r   r   r   test_box  s   r   )r   r   rQ   rU   rO   r   )rO   rU   rQ   r   rO   c                 C   r   r   r   r   r   r   r   test_box_array  s   r   c                 C   s   t j|  d u s	J d S r   )r   r   rM   r   r   r   test_box_nan  s   r   c                   C   sD   t jdd tddddd W d    d S 1 sw   Y  d S )Nz1positional argument `ccw` for `box` is deprecatedr'   r   r$   T)r+   Zdeprecated_callr   r   r   r   r   r   test_box_deprecate_positional  s
   "r   c               
   C   s   t tddd tddddg} | d jdksJ | d jdks$J t|  | d jdks2J | d d u s:J | d jdksCJ | d j}t|  | d j|ksVJ d S Nr$   r   r   )r9   r   r   r    r   _geom_preparedprepare)arroriginalr   r   r   test_prepare  s   $


r   c               
   C   s   t tddd tddddg} t|  | d jdks J | d jdks)J t|  | d jdks7J | d d u s?J | d jdksHJ t|  d S r   )r9   r   r   r    r   r   r   Zdestroy_prepared)r   r   r   r   test_destroy_prepared  s   $

r   	geom_typer   c                 C   s$   t jd| d}t | sJ d S N)r   )r   )r   rr   
is_missingallr   r"   r   r   r   test_empty_missing  s   r      c                 C   sN   t jd| d}t |  sJ t | sJ t || k s%J d S r   )r   rr   r   r   rs   Zget_type_idr   r   r   r   
test_empty  s   r   )o__doc__numpyr9   r+   Znumpy.testingr   r   r   r   r   r   r   r   r	   r
   Zshapely.testingr   Zshapely.tests.commonr   r   r   r   r   r   r   r   r   r   r   r#   r%   r&   r.   markZskipifZgeos_versionr<   r>   r@   Zparametrizeparamr:   rH   infrK   rN   rT   rW   r^   r_   ro   rt   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZmultipointsZmultilinestringsZmultipolygonsZgeometrycollectionsr   r   r   r   r   r   r   r   r   r   MISSINGr   ranger   r   r   r   r   <module>   s
   (
0
















  
	
	






	

	




	





