o
    j5                     @   s  d dl mZ d dlZd dlZd dlZd dl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 ejejejejjejdk dddejejejejejej ej!ej"ej#ej$fZ%ej&ej'ej(ej)ej*ej+ej,ej-ej.ej/ejeej0d	d
ejjejdk dddej1ej2ej3fZ4e4dd Z5ej6ej+fej7ej(ffZ8ej9de
e ej9de%dd Z:ej9de%dd Z;ej9de%dd Z<ej9de
ej9de4dd Z=ej9de4dd Z>ej9de4dd Z?dd Z@ej9de
ej9de8d d! ZAej9de
ej9de8d"d# ZBej9dd$d% e8D d&d' ZCej9de8d(d) ZDej9dd*d% e8D d+d, ZEej9dd-d% e8D d.d/ ZFd0d1 ZGd2d3 ZHd4d5 ZIejjejdk ddd6d7 ZJej9de
d8d9 ZKej9ded:d; ZLejjejdk d<dej9ded=d> ZMejjejdk d<dej9ded?d@ ZNej9dAedBfedBfedCfedBfgdDdE ZOdFdG ZPej9dHedfdefdIgdJdK ZQdLdM ZRdNdO ZSej9dHedfdefdIgdPdQ ZTdRdS ZUej9dTg dUdVdW ZVdXdY ZWej9dZeg d[dBfeg d\dCfeg d[dBfeg d\dCfeg d]dBfeg d^dBfedBfedBfedBfd_g
d`da ZXdbdc ZYej9de
ej9de5ddde ZZej9de
dfdg Z[ej9de
dh didj Z\dkdl Z]dS )m    )partialN)
LinearRing
LineStringPoint)	all_typesall_types_mall_types_zall_types_zmemptygeometry_collectionignore_invalidline_stringlinear_ringpointpolygon      r   zGEOS < 3.12)reason)Zmarksg      ?Zdistance)r   
   r   zGEOS < 3.10geometryfuncc                 C   s.   || | g}|j dksJ |jtjksJ d S )N   )shapedtypenpbool_)r   r   actual r!   ^/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/shapely/tests/test_predicates.pytest_unary_arrayH   s   r#   c                 C   s<   t jdt jd}| t|d}||u sJ |jt jksJ d S Nr!   r   outr   r
   uint8r   r   r   r'   r    r!   r!   r"   test_unary_with_kwargsP   s   r+   c                 C   s0   | t jt jfv r| d sJ d S | d rJ d S N)shapelyis_valid_input
is_missing)r   r!   r!   r"   test_unary_missingX   s   r0   ac                 C   sh   t t| o
tjdk  || | gt}W d    n1 sw   Y  |jdks*J |jtjks2J d S )Nr   r   )	r   r-   is_emptygeos_versionr   r   r   r   r   )r1   r   r    r!   r!   r"   test_binary_array`   s
   r4   c                 C   s>   t jdt jd}| tt|d}||u sJ |jt jksJ d S r$   r(   r*   r!   r!   r"   test_binary_with_kwargsk   s   r5   c                 C   s4   | t td d gt d td g}|  sJ d S r,   )r   arrayr   allr   r    r!   r!   r"   test_binary_missings   s   "r9   c                  C   s^   t g d} t ddg}ttjdk  t| |jsJ W d    d S 1 s(w   Y  d S )N)r   r   )r   r   )r   r   )r   r   )      )   r<   r   )r   r   r-   r3   intersectionr2   )r1   br!   r!   r"   test_binary_empty_resulty   s
   "r@   zfunc, func_binc                 C   s   t t| o
tjdk  || | gdd}|| | gtdd}W d    n1 s)w   Y  |jdks5J |jtjks=J tj	
|| d S )Nr   r   r   r   )r   r-   r2   r3   r   r   r   r   r   testingassert_allclose)r1   r   func_binr    expectedr!   r!   r"   test_xy_array   s   rE   c                 C   s   t | dd }tt | ot jdk # ||g dg d}|| tddtddtdd	g}W d    n1 s:w   Y  tj|| d S )
Nc                 S      | S r,   r!   xr!   r!   r"   <lambda>       z)test_xy_array_broadcast.<locals>.<lambda>r   r   r<   r   r<   r   r   r   r<   r   r   )	r-   	transformr   r2   r3   r   r   rA   rB   )r1   r   rC   Za2r    rD   r!   r!   r"   test_xy_array_broadcast   s   $rN   c                 C      g | ]}|d  qS r   r!   .0funcsr!   r!   r"   
<listcomp>       rT   c                 C   sR   t tdd }| |g dg d}| |ddgddgddgg}tj|| d S )	Nc                 S   rF   r,   r!   rG   r!   r!   r"   rI      rJ   z"test_xy_array_2D.<locals>.<lambda>rK   rL   r   r<   r   r   )r-   rM   r   r   rA   rB   )r   Zpolygon2r    rD   r!   r!   r"   test_xy_array_2D   s   rV   c                 C   s:   | t ttgdd}|ttgtdd}tj|| d S )Nr   r   )_prepare_with_copyr   r   r   r   rA   rB   )r   rC   r    rD   r!   r!   r"   test_xy_prepared   s   rX   c                 C   rO   rP   r!   rQ   r!   r!   r"   rT      rU   c                 C   sT   t jdt jd}ttdd }| ||j|j|d}||u s J |jt jks(J d S )Nr!   r%   c                 S   rF   r,   r!   rG   r!   r!   r"   rI      rJ   z%test_xy_with_kwargs.<locals>.<lambda>r&   )	r   r
   r)   r-   rM   r   rH   yr   )r   r'   Zpoint2r    r!   r!   r"   test_xy_with_kwargs   s
   rZ   c                 C   rO   rP   r!   rQ   r!   r!   r"   rT      rU   c              	   C   s\   | t tttd gt tjt jtjtjgt tjtjt jtjg}t j|g d d S )N)TFFF)r   r6   r   rH   nanrY   rA   rB   r8   r!   r!   r"   test_xy_missing   s   r\   c                  C   s   t dd} t dd}t j| |d g| dd}tj|g d |jtjks(J t j| |d g| dd}tj|g d	 |jtjksDJ t | |  d
u sPJ t | | du s\J t j| |ddtj	gd}tj|g d d S )N2      I@ffffff@皙?)Z	toleranceTFF皙?TTFTFFTF)
r-   pointsequals_exactr   rA   rB   r   r   itemr[   p1Zp2r    r!   r!   r"   test_equals_exact_tolerance   s   rk   c                  C   s@   t ddg} t ddg}t| |rJ tj| |ddsJ d S )Nr:   r<   r<   T)	normalize)r   r-   rg   l1l2r!   r!   r"   test_equals_exact_normalize   s   rq   c                  C   s   t ddg} t ddg}t| |rJ t ddg} t ddg}t| |r(J t| |s0J t  t dtjfdg} t dtjfdg}W d    n1 sPw   Y  t| |s]J t| |reJ d S )Nr:   rl   )r   r   r   )r<   r<   r   )r   r   r<   )r<   r<   r<   r   )r   r-   equals_identicalrg   r   r   r[   rn   r!   r!   r"   test_equals_identical   s   rs   c                  C   s   t dd} t dd}t j| |d g| dd}tj|g d |jtjks(J t j| |d g| dd}tj|g d	 |jtjksDJ t j| |ddtj	gd}tj|g d
 d S )Nr]   r^   r_   r`   ra   r   rb   rc   rd   re   )
r-   rf   dwithinr   rA   Zassert_equalr   r   rB   r[   ri   r!   r!   r"   test_dwithin   s   ru   c                 C   s.   t | rJ t jdkrt | rJ d S d S Nr   )r-   has_zr3   has_mr   r!   r!   r"   test_has_z_has_m_all_types   s
   
rz   c                 C   sB   t | r
td t | sJ t jdkrt | rJ d S d S )N.GEOSHasZ with EMPTY geometries is inconsistentr   )r-   r2   pytestskiprw   r3   rx   ry   r!   r!   r"   test_has_z_has_m_all_types_z	  s   


r~   z,M coordinates not supported with GEOS < 3.12c                 C   s4   t | r
td t | rJ t | sJ d S )Nz.GEOSHasM with EMPTY geometries is inconsistentr-   r2   r|   r}   rw   rx   ry   r!   r!   r"   test_has_m_all_types_m     

r   c                 C   s4   t | r
td t | sJ t | sJ d S )Nr{   r   ry   r!   r!   r"   test_has_z_has_m_all_types_zm  r   r   zgeometry,expectedFTc                 C      t | |ks	J d S r,   )r-   	is_closed)r   rD   r!   r!   r"   test_is_closed*  s   
r   c                  C   sB   t dd} t dd}t | |}t|tsJ |dksJ d S )Nr   r<   Z	FF0FFF0F2)r-   rf   relate
isinstancestrri   r!   r!   r"   test_relate7  s
   r   zg1, g2)NNc                 C   s   t | |d u s
J d S r,   )r-   r   g1g2r!   r!   r"   test_relate_none?  s   r   c                  C   sl   t g d} t dddd}t | |dksJ t | |ds"J t | |ds+J t | |dr4J d S )N)r:   )r<   r   rl   r   r   Z	11F00F212	*********z	F********)r-   Zlinestringsboxr   relate_pattern)gr   r!   r!   r"   test_relate_patternD  s   r   c                   C   sN   t tjdk  tttd du sJ W d    d S 1 s w   Y  d S )Nr   r   T)r   r-   r3   r   r
   rh   r!   r!   r!   r"   test_relate_pattern_emptyM  s   "r   c                 C   s   t | |d du sJ d S )Nr   F)r-   r   rh   r   r!   r!   r"   test_relate_pattern_noneT  s   r   c                   C   s   t jtjdd tttd W d    n1 sw   Y  t jtjdd tttd W d    d S 1 s:w   Y  d S )NzShould be length 9matchz**z
**********)r|   raisesr-   ZGEOSExceptionr   r   r   r!   r!   r!   r"   $test_relate_pattern_incorrect_lengthY  s   "r   pattern)s	   *********r   Nc                 C   sB   t jtdd ttt|  W d    d S 1 sw   Y  d S )Nzexpected stringr   )r|   r   	TypeErrorr-   r   r   r   )r   r!   r!   r"   test_relate_pattern_non_stringa  s   "r   c                   C   sN   t jtdd ttgd tdgd  W d    d S 1 s w   Y  d S )Nzonly supports scalarr   r   r   )r|   r   
ValueErrorr-   r   r   r   r!   r!   r!   r"   test_relate_pattern_non_scalarg  s   "r   zgeom, expected)r:   r   r<   rl   r:   )r:   rl   r   r:   )r:   rl   r   )r:   r   rl   )NFc                 C   r   r,   )r-   is_ccw)ZgeomrD   r!   r!   r"   test_is_ccwl  s   r   c                 C   s   t | dd } t |  | S )z"Prepare without modifying in-placec                 S   rF   r,   r!   rG   r!   r!   r"   rI     rJ   z$_prepare_with_copy.<locals>.<lambda>)r-   rM   preparery   r!   r!   r"   rW     s   
rW   c                 C   s`   t t| o
tjdk  || t}|t| t}W d    n1 s#w   Y  ||ks.J d S rv   )r   r-   r2   r3   r   rW   )r1   r   r    resultr!   r!   r"   test_binary_prepared  s
   
r   c                 C   s   t t| s	J d S r,   )r-   is_preparedrW   ry   r!   r!   r"   test_is_prepared_true  s   r   r,   c                 C   s   t | rJ d S r,   )r-   r   ry   r!   r!   r"   test_is_prepared_false  s   r   c                   C   s4   t tt du sJ t tt du sJ d S )NTF)r-   containsr   rh   contains_properlyr!   r!   r!   r"   test_contains_properly  s   r   )^	functoolsr   numpyr   r|   r-   r   r   r   Zshapely.tests.commonr   r   r   r	   r
   r   r   r   r   r   r   rw   paramrx   markZskipifr3   r2   Z	is_simpleZis_ringr   Zis_validr/   Zis_geometryr.   r   r   ZUNARY_PREDICATESZdisjointZtouchesZ
intersectsZcrossesZwithinr   r   overlapsZcoversZ
covered_byrt   equalsrg   rr   ZBINARY_PREDICATESZBINARY_PREPARED_PREDICATESZcontains_xyZintersects_xyZXY_PREDICATESZparametrizer#   r+   r0   r4   r5   r9   r@   rE   rN   rV   rX   rZ   r\   rk   rq   rs   ru   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   rW   r   r   r   r   r!   r!   r!   r"   <module>   s   4





	

	




	




	
	


	

