o
    Jf*                     @   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.d/ Z@d0d1 ZAejjejdk ddd2d3 ZBej3d4ed5fed5fed6fed5fgd7d8 ZCd9d: ZDej3d;edfdefd<gd=d> ZEd?d@ ZFdAdB ZGej3d;edfdefd<gdCdD ZHdEdF ZIej3dGg dHdIdJ ZJdKdL ZKejjejdk ddej3dMeg dNd5feg dOd6feg dNd5feg dOd6feg dPd5feg dQd5fed5fed5fed5fdRg
dSdT ZLdUdV ZMej3de
ej3de/dWdX ZNej3de
ef dYdZ 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   i/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/site-packages/shapely/tests/test_predicates.pytest_unary_array@   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_kwargsH   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_missingP   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_arrayX   s
   r2   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_kwargsc   s   r3   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_missingk   s   "r7   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)   r1   intersectionr0   )r-   br   r   r    test_binary_empty_resultq   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)   r0   r1   r   r   r   r   r   testingassert_allcloser-   r   func_binr   expectedr   r   r    test_xy_arrayz   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)   r0   r1   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   r4   r   rR   nanrS   r?   r@   r6   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)r8   )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)   r1   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)r8   r   r:   rw   r8   )r8   rw   r   r8   )r8   rw   r   )r8   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 in-placec                 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)   r0   r1   r   rP   )r-   r   r   resultr   r   r    test_binary_prepared3  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_falseC  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_properlyH  s   r   )R	functoolsr   numpyr   r   r)   r   r   r   shapely.tests.commonr   r   r   r	   r
   r   r   r   r0   	is_simpleis_ringrl   is_validr+   is_geometryr*   r   paramr   markskipifr1   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,   r2   r3   r7   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    (




	

		



	

	
	

	

