o
    ZqiŽ  ã                   @   sN   d Z ddlZddlZddlZddlmZ ddlmZmZ G dd„ dejƒZ	dS )zTest GEOS predicatesé    N)Úgeos_version)ÚPointÚPolygonc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚPredicatesTestCasec                 C   s  t ddƒ}t ddƒ}| t ddƒ¡sJ ‚| t ddƒ¡rJ ‚| t ddƒ¡r(J ‚| t ddƒ¡r2J ‚| t ddƒ¡r<J ‚| t ddƒ¡rFJ ‚| t ddƒ¡rPJ ‚| t ddƒ¡sZJ ‚| t ddƒ¡sdJ ‚| t ddƒ¡snJ ‚| |¡ruJ ‚| |¡r|J ‚| t ddƒ¡r†J ‚d S )Nç        g       @g      ð¿)	r   ZdisjointZtouchesZcrossesÚwithinÚcontainsÚequalsZcoversZ
covered_by)ÚselfÚpointZpoint2© r   úk/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/shapely/tests/legacy/test_predicates.pyÚtest_binary_predicates   s   

z)PredicatesTestCase.test_binary_predicatesc                 C   s@   t ddƒ}|jr
J ‚|jsJ ‚|jsJ ‚|jrJ ‚|jrJ ‚d S )Nr   )r   Zis_emptyÚis_validZ	is_simpleZis_ringZhas_z)r
   r   r   r   r   Útest_unary_predicates   s   




z(PredicatesTestCase.test_unary_predicatesc                 C   sŠ   g d¢}g d¢}t |ƒ}t |ƒ}|jrJ ‚|jrJ ‚tdk r<t tj¡ | |¡ W d   ƒ d S 1 s5w   Y  d S | |¡rCJ ‚d S )N)
©éS  éZ  )éË  r   )é  é7  )iT  é  )r   é­   )é  éò   )r   éŸ  )r   é}  )éÌ  éÏ   r   )©r   r   )r   r   )r   éŠ   )r   r   )r   r   )r   r   )r   r   )é  r   )i  r   )r!   r   )r   iÂ  r   )é   é   r   )r   r   r   ÚpytestÚraisesÚshapelyÚGEOSExceptionr   )r
   Úp1Úp2Úg1Úg2r   r   r   Ú test_binary_predicate_exceptions(   s   

"ÿz3PredicatesTestCase.test_binary_predicate_exceptionsc                 C   sæ   t g d¢ƒ}t g d¢ƒ}tddƒ}| |¡dksJ ‚| |d¡s"J ‚| |d¡s*J ‚| |d¡s2J ‚| |d¡s:J ‚| |d¡rBJ ‚| |d	¡rJJ ‚| |d
¡sRJ ‚tjtjdd | |d¡ W d   ƒ d S 1 slw   Y  d S )N)©r   r   )r   é   )r"   r.   )r"   r   r-   )©r.   éÿÿÿÿ)r.   é   )r1   r1   )r1   r0   r/   é   Z	212101212z	*********z	2********z	T********Z	112101212z	1********Z	FF2FF10F2ZIllegalArgumentException)ÚmatchZfail)r   r   ZrelateZrelate_patternr$   r%   r&   r'   )r
   r*   r+   Zg3r   r   r   Útest_relate_patternN   s   
"ÿz&PredicatesTestCase.test_relate_patternN)Ú__name__Ú
__module__Ú__qualname__r   r   r,   r4   r   r   r   r   r      s
    	&r   )
Ú__doc__Zunittestr$   r&   r   Zshapely.geometryr   r   ZTestCaser   r   r   r   r   Ú<module>   s    