o
    i*                     @   sr  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 ejejejejejejejejejejejejjejdk ddd	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j+d
dejjejdk ddd	ej,ej-fZ.e.dd Z/ej0ej&fej1ej#ffZ2ej3de
ej3de dd Z4ej3de dd Z5ej3de dd Z6ej3de
ej3de.dd Z7ej3de.dd Z8ej3de.dd Z9dd Z:ej3de
ej3d e2d!d" Z;ej3de
ej3d e2d#d$ Z<ej3dd%d& e2D d'd( Z=ej3d e2d)d* Z>ej3dd+d& e2D d,d- Z?ej3dd.d& e2D d/d0 Z@d1d2 ZAejjejdk ddd3d4 ZBej3d5ed6fed6fed7fed6fgd8d9 ZCd:d; ZDej3d<edfdefd=gd>d? ZEd@dA ZFdBdC ZGej3d<edfdefd=gdDdE ZHdFdG ZIej3dHg dIdJdK ZJdLdM ZKejjejdk ddej3dNeg dOd6feg dPd7feg dOd6feg dPd7feg dQd6feg dRd6fed6fed6fed6fdSg
dTdU ZLdVdW ZMej3de
ej3de/dXdY ZNej3de
ef dZd[ ZOej3de
edf d\d] ZPd^d_ ZQdS )`    )partialN)
LinearRing
LineStringPoint   )	all_typesemptygeometry_collectionignore_invalidline_stringlinear_ringpointpolygon)      r   z
GEOS < 3.7)reason)marksg      ?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    X/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/shapely/tests/test_predicates.pytest_unary_arrayA   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_kwargsI   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_missingQ   s   r-   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 )Nr      r   r   )	r
   r*   is_emptygeos_versionr   r   r   r   r   )r.   r   r   r    r    r!   test_binary_arrayY   s
   r3   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_kwargsd   s   r4   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_missingl   s   "r8   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
   r*   r2   intersectionr1   )r.   br    r    r!   test_binary_empty_resultr   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*   r1   r2   r   r   r   r   r   testingassert_allcloser.   r   func_binr   expectedr    r    r!   test_xy_array{   s   rD   c                 C   s   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 s2w   Y  tj|| d S )Nr/   r   r   r   r   r   r   r   r   r   r   )r
   r*   r1   r2   r   r   r?   r@   rA   r    r    r!   test_xy_array_broadcast   s
   $rG   c                 C      g | ]}|d  qS r   r    .0funcsr    r    r!   
<listcomp>       rM   c                 C   sB   | t g dg d}| t ddgddgddgg}tj|| d S )NrE   rF   r   r   r   r   )r   r   r?   r@   )r   r   rC   r    r    r!   test_xy_array_2D   s   rO   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   r?   r@   )r   rB   r   rC   r    r    r!   test_xy_prepared   s   rQ   c                 C   rH   rI   r    rJ   r    r    r!   rM      rN   c                 C   sD   t jdt jd}| ttjtj|d}||u sJ |jt jks J d S r#   )r   r   r&   r   xyr   r'   r    r    r!   test_xy_with_kwargs   s   rT   c                 C   rH   rI   r    rJ   r    r    r!   rM      rN   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   r5   r   rR   nanrS   r?   r@   r7   r    r    r!   test_xy_missing   s   rV   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@皙?)	toleranceTFF皙?TTFTFFTF)
r*   pointsequals_exactr   r?   r@   r   r   itemrU   p1p2r   r    r    r!   test_equals_exact_tolerance   s   rg   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 )NrW   rX   rY   rZ   r[   r   r]   r^   r_   r`   )
r*   ra   dwithinr   r?   assert_equalr   r   r@   rU   rd   r    r    r!   test_dwithin   s   rj   zgeometry,expectedFTc                 C      t | |ks	J d S r)   )r*   	is_closed)r   rC   r    r    r!   test_is_closed   s   
rm   c                  C   sB   t dd} t dd}t | |}t|tsJ |dksJ d S )Nr   r   	FF0FFF0F2)r*   ra   relate
isinstancestrrd   r    r    r!   test_relate   s
   rr   zg1, g2)NNc                 C   s   t | |d u s
J d S r)   )r*   ro   g1g2r    r    r!   test_relate_none   s   rv   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)r9   )r   r   r   r   r   r   	11F00F212	*********z	F********)r*   linestringsboxro   relate_pattern)gr   r    r    r!   test_relate_pattern   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/   ry   T)r
   r*   r2   r|   r   rc   r    r    r    r!   test_relate_pattern_empty   s   "r   c                 C   s   t | |d du sJ d S )Nry   F)r*   r|   rc   rs   r    r    r!   test_relate_pattern_none  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
**********)pytestraisesr*   GEOSExceptionr|   r   r   r    r    r    r!   $test_relate_pattern_incorrect_length  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_string  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   ry   )r   r   
ValueErrorr*   r|   r   r   r    r    r    r!   test_relate_pattern_non_scalar  s   "r   zgeom, expected)r9   r   r   rw   r9   )r9   rw   r   r9   )r9   rw   r   )r9   r   rw   )NFc                 C   rk   r)   )r*   is_ccw)geomrC   r    r    r!   test_is_ccw  s   r   c                 C   s   t | dd } t |  | S )z!Prepare without modifying inplacec                 S   s   | S r)   r    )rR   r    r    r!   <lambda>/  s    z$_prepare_with_copy.<locals>.<lambda>)r*   	transformpreparer   r    r    r!   rP   -  s   
rP   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 )Nr/   )r
   r*   r1   r2   r   rP   )r.   r   r   resultr    r    r!   test_binary_prepared4  s
   
r   c                 C   s   t t| s	J d S r)   )r*   is_preparedrP   r   r    r    r!   test_is_prepared_true?  s   r   c                 C   s   t | rJ d S r)   )r*   r   r   r    r    r!   test_is_prepared_falseD  s   r   c                   C   s4   t tt du sJ t tt du sJ d S )NTF)r*   containsr   rc   contains_properlyr    r    r    r!   test_contains_properlyI  s   r   )R	functoolsr   numpyr   r   r*   r   r   r   commonr   r   r	   r
   r   r   r   r   r1   	is_simpleis_ringrl   is_validr,   is_geometryr+   r   paramr   markskipifr2   UNARY_PREDICATESdisjointtouches
intersectscrosseswithinr   r   overlapscovers
covered_byrh   equalsrb   BINARY_PREDICATESBINARY_PREPARED_PREDICATEScontains_xyintersects_xyXY_PREDICATESparametrizer"   r(   r-   r3   r4   r8   r>   rD   rG   rO   rQ   rT   rV   rg   rj   rm   rr   rv   r~   r   r   r   r   r   r   rP   r   r   r   r   r    r    r    r!   <module>   s    (




	

		



	

	
	

	

