o
    Zqi$                     @   s  d dl Zd dlZd dlZd dlmZmZmZmZmZ d dl	m
Z
mZmZmZ ee
e ee
e   Zejde
e dd Zejddd	 eD ed
dged
dgfed
dged
dgfed
dgedd
gfed
dgeg dfed
dgeg dfeddgddggeddgddggfejededejjejdk dddejededejjejdk dddg dd Ze ~ eddejfgeddejfgfedejejfgedejejfgfeejdfdgeejdfdgfed ejfdged ejfdgfeejejfejejfgeejejfejejfgfed dd!ejfged dd!ejfgfgZW d   n	1 sOw   Y  ejded"d# Ze 8 ed dejfdd!ejfged dejfdd!ejfgfed dejfd$ged dejfd$gfgZW d   n	1 sw   Y  ejded%d& Ze p ed ejfdgeddgfeddejfgeddgfed dejfd$ged d$gfed dd!ejfged d$gfejeded'ejjejdk dddejeded(ejjejdk dddgZW d   n	1 s%w   Y  ejded)d* Zd+d, Z d-d. Z!d/d0 Z"d1d2 Z#ejde
d3d4 Z$d5d6 Z%ejde
e&ejejef d7d8 Z'ejded9d: Z(dS );    N)
LinearRing
LineStringMultiLineStringPointPolygon)	all_typesall_types_zempty_pointignore_invalidgeomc                 C   sf   | | ksJ t j| dd dd}t jdk r%t| tr%| jr%| js%t | }| |ks+J | |kr1J d S )Nc                 S      | S N xr   r   k/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/shapely/tests/geometry/test_equality.py<lambda>       ztest_equality.<locals>.<lambda>T)Z	include_z)   	   r   )shapely	transformgeos_version
isinstancer   is_emptyZhas_zZforce_2d)r   Ztransformedr   r   r   test_equality   s   

r   zleft, rightc                 C   s    g | ]}|t |d d fqS )c                 S      | d S N   r   r   r   r   r   r   !       z<listcomp>.<lambda>)r   r   ).0r   r   r   r   
<listcomp>!   s     r!   r   r   r   r   )r      )r   g    ?)r"   r#   r#   )r"   )      ?r%   r#   )r$   r$   )r   r   zPOINT M (0 0 0)zPOINT M (0 0 1)r      r   zGEOS < 3.12)reason)ZmarkszPOINT ZM (0 0 0 0)zPOINT ZM (0 0 0 1)c                 C   s   | |ksJ | |krJ d S r   r   leftrightr   r   r   test_equality_false   s   $r,   r   r   r$   r   )r$   r   )r   r   r$   r   c                 C      | |ksJ | |krJ d S r   r   r)   r   r   r   test_equality_with_nand      r/   r$   r      c                 C   r.   r   r   r)   r   r   r   test_equality_with_nan_zw   r0   r3   zPOINT M (0 0 NaN)zPOINT ZM (0 0 0 NaN)c                 C   s   | |ksJ d S r   r   r)   r   r   r   test_equality_with_nan_false   s   r4   c                  C   s   t    tddtjfddtjfg} tddtjfdg}W d    n1 s&w   Y  tjdk r8| |ks6J d S tjdk rE| |ksCJ d S | |ksKJ d S )Nr   r   r$   r   r1   )r   
   r   r&   )r
   r   npnanr   r   r)   r   r   r   test_equality_with_nan_z_false   s   

r8   c                  C   sZ   t dd} t ddd}| |ksJ t ddtj}tjdk r%| |ks#J d S | |ks+J d S )Nr   r   r&   )r   r6   r7   r   r   geom1geom2r   r   r   test_equality_z   s   

r<   c                  C   sl   t g d} tg d}tg d}| |ksJ | |ksJ ||ks$J td} td}| |ks4J d S )N)r"   r#   r-   r"   zPOINT EMPTYzLINESTRING EMPTY)r   r   r   r   from_wkt)r:   r;   Zgeom3r   r   r   test_equality_exact_type   s   

r>   c                  C   sd   t d} t d}| |ksJ t d} t d}| |ks J t d} t d}| |ks0J d S )Nz'POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))z'POLYGON ((0 0, 10 0, 10 10, 0 15, 0 0))z=POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (1 1, 2 1, 2 2, 1 1))zSPOLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (1 1, 2 1, 2 2, 1 1), (3 3, 4 3, 4 4, 3 3))zSPOLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (3 3, 4 3, 4 4, 3 3), (1 1, 2 1, 2 2, 1 1)))r   r=   r9   r   r   r   test_equality_polygon   s"   

r?   c                 C   s   |  dtu s	J tj| | gtd}|| k}t|tjsJ | s$J | |k}t|tjs0J | s6J || k}t|tjsBJ | rHJ | |k}t|tjsTJ | rZJ d S )Nr   )Zdtype)	__eq__NotImplementedr6   arrayobjectr   Zndarrayallany)r   Zarrresultr   r   r   test_comparison_notimplemented   s   rG   c                  C   s  t dd} t dd}tjtdd | |ksJ W d    n1 s"w   Y  tjtdd | |k s5J W d    n1 s?w   Y  tjtdd | |ksRJ W d    n1 s\w   Y  tjtdd | |ksoJ W d    d S 1 szw   Y  d S )Nr   r$   znot supported between instances)match)r   pytestZraises	TypeErrorr9   r   r   r   test_comparison_not_supported   s   

"rK   c                 C   s0   t | }t t| dd }||ksJ | d S )Nc                 S   r   r   r   r   r   r   r   r     r   z&test_hash_same_equal.<locals>.<lambda>hashr   r   )r   Zhash1Zhash2r   r   r   test_hash_same_equal  s   rN   c                 C   s$   t | t t| dd ksJ d S )Nc                 S   r   r   r   r   r   r   r   r     r   z*test_hash_same_not_equal.<locals>.<lambda>rL   )r   r   r   r   test_hash_same_not_equal  s   $rO   ))numpyr6   rI   r   r   r   r   r   r   Zshapely.tests.commonr   r   r	   r
   rB   r   Zall_non_empty_typesmarkZparametrizer   paramr=   Zskipifr   r,   r7   Zcases1r/   Zcases2r3   Zcases3r4   r8   r<   r>   r?   rG   rK   ZpointsrN   rO   r   r   r   r   <module>   s    



#"""






