a
    J5d*                     @   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)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   Y/var/www/html/django/DPS/env/lib/python3.9/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s8J d S Nr   )r   )outr   r   uint8r   r   r   r"   r   r   r   r   test_unary_with_kwargsI   s    r&   c                 C   s.   | t jt jfv r| d s*J n| 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<0    Y  |jdksTJ |jtjksdJ 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    ,r1   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    r2   c                 C   s4   | t td d gt d td g}|  s0J d S r'   )r   arrayr   allr   r   r   r   r   test_binary_missingl   s    "r6   c                  C   s\   t g d} t ddg}ttjdk " t| |js:J W d    n1 sN0    Y  d S )N)r   r   )r   r   )r   r   )r   r   )   r   )   r   r-   )r   r
   r(   r0   intersectionr/   )r,   br   r   r   test_binary_empty_resultr   s    r<   zfunc, func_binc                 C   s   t t| otjdk 4 || | gdd}|| | gtdd}W d    n1 sR0    Y  |jdksjJ |jtjkszJ tj	
|| d S )Nr-   r   r   r   )r
   r(   r/   r0   r   r   r   r   r   testingassert_allcloser,   r   func_binr   expectedr   r   r   test_xy_array{   s    2rB   c                 C   s   t t| otjdk F || g dg d}|| tddtddtddg}W d    n1 sd0    Y  tj|| d S )Nr-   r   r   r   r   r   r   r   r   r   r   )r
   r(   r/   r0   r   r   r=   r>   r?   r   r   r   test_xy_array_broadcast   s    @rE   c                 C   s   g | ]}|d  qS r   r   .0funcsr   r   r   
<listcomp>       rJ   c                 C   sB   | t g dg d}| t ddgddgddgg}tj|| d S )NrC   rD   r   r   r   r   )r   r   r=   r>   )r   r   rA   r   r   r   test_xy_array_2D   s    rL   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   r@   r   rA   r   r   r   test_xy_prepared   s    rN   c                 C   s   g | ]}|d  qS rF   r   rG   r   r   r   rJ      rK   c                 C   sD   t jdt jd}| ttjtj|d}||u s0J |jt jks@J d S r!   )r   r   r$   r   xyr   r%   r   r   r   test_xy_with_kwargs   s    rQ   c                 C   s   g | ]}|d  qS rF   r   rG   r   r   r   rJ      rK   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   r3   r   rO   nanrP   r=   r>   r5   r   r   r   test_xy_missing   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sPJ t j| |d g| dd}tj|g d	 |jtjksJ t | |  d
u sJ t | | du sJ 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   r=   r>   r   r   itemrR   p1p2r   r   r   r   test_equals_exact_tolerance   s    rc   c                  C   s   t dd} t dd}t j| |d g| dd}tj|g d |jtjksPJ t j| |d g| dd}tj|g d	 |jtjksJ t j| |ddtj	gd}tj|g d
 d S )NrT   rU   rV   rW   rX   r   rY   rZ   r[   r\   )
r(   r]   dwithinr   r=   Zassert_equalr   r   r>   rR   r`   r   r   r   test_dwithin   s    re   zgeometry,expectedFTc                 C   s   t | |ksJ d S r'   )r(   	is_closed)r   rA   r   r   r   test_is_closed   s    
rg   c                  C   sB   t dd} t dd}t | |}t|ts2J |dks>J d S )Nr   r   Z	FF0FFF0F2)r(   r]   relate
isinstancestrr`   r   r   r   test_relate   s
    rk   zg1, g2)NNc                 C   s   t | |d u sJ d S r'   )r(   rh   g1g2r   r   r   test_relate_none   s    ro   c                  C   sl   t g d} t dddd}t | |dks2J t | |dsDJ t | |dsVJ t | |drhJ d S )N)r7   )r   r   r   r   r   r   Z	11F00F212	*********z	F********)r(   Zlinestringsboxrh   relate_pattern)gr   r   r   r   test_relate_pattern   s    ru   c                   C   sL   t tjdk * tttd du s*J W d    n1 s>0    Y  d S )Nr-   rq   T)r
   r(   r0   rs   r   r_   r   r   r   r   test_relate_pattern_empty   s    rv   c                 C   s   t | |d du sJ d S )Nrq   F)r(   rs   r_   rl   r   r   r   test_relate_pattern_none  s    rw   c                   C   s   t jtjdd tttd W d    n1 s40    Y  t jtjdd tttd W d    n1 sr0    Y  d S )NzShould be length 9matchz**z
**********)pytestraisesr(   ZGEOSExceptionrs   r   r   r   r   r   r   $test_relate_pattern_incorrect_length  s    ,r|   pattern)s	   *********r   Nc                 C   s@   t jtdd ttt|  W d    n1 s20    Y  d S )Nzexpected stringrx   )rz   r{   	TypeErrorr(   rs   r   r   )r}   r   r   r   test_relate_pattern_non_string  s    r   c                   C   sL   t jtdd* ttgd tdgd  W d    n1 s>0    Y  d S )Nzonly supports scalarrx   r   rq   )rz   r{   
ValueErrorr(   rs   r   r   r   r   r   r   test_relate_pattern_non_scalar  s    r   zgeom, expected)r7   r   r   rp   r7   )r7   rp   r   r7   )r7   rp   r   )r7   r   rp   )NFc                 C   s   t | |ksJ d S r'   )r(   is_ccw)ZgeomrA   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   )rO   r   r   r   <lambda>/  rK   z$_prepare_with_copy.<locals>.<lambda>)r(   Z	transformpreparer   r   r   r   rM   -  s    
rM   c                 C   s`   t t| otjdk ( || t}|t| t}W d    n1 sF0    Y  ||ks\J d S )Nr-   )r
   r(   r/   r0   r   rM   )r,   r   r   resultr   r   r   test_binary_prepared4  s    
,r   c                 C   s   t t| sJ d S r'   )r(   is_preparedrM   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 s0J d S )NTF)r(   containsr   r_   contains_properlyr   r   r   r   test_contains_properlyI  s    r   )R	functoolsr   numpyr   rz   r(   r   r   r   commonr   r   r	   r
   r   r   r   r   r/   Z	is_simpleZis_ringrf   Zis_validr*   Zis_geometryr)   r   paramr   markZskipifr0   ZUNARY_PREDICATESZdisjointZtouchesZ
intersectsZcrossesZwithinr   r   overlapsZcoversZ
covered_byrd   equalsr^   ZBINARY_PREDICATESZBINARY_PREPARED_PREDICATESZcontains_xyZintersects_xyZXY_PREDICATESZparametrizer    r&   r+   r1   r2   r6   r<   rB   rE   rL   rN   rQ   rS   rc   re   rg   rk   ro   ru   rv   rw   r|   r   r   r   rM   r   r   r   r   r   r   r   r   <module>   s   (




	

		



	
	

	

	

