o
    h$                     @   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   _/var/www/html/scripts/venv/lib/python3.10/site-packages/shapely/tests/geometry/test_equality.py<lambda>       ztest_equality.<locals>.<lambda>T)	include_z)   	   r   )shapely	transformgeos_version
isinstancer   is_emptyhas_zforce_2d)r   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)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   $r1   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      r4   r(   r      c                 C   r3   r   r   r.   r   r   r   test_equality_with_nan_zw   r5   r8   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   r9   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   r6   )r   
   r   r*   )r
   r   npnanr   r   r.   r   r   r   test_equality_with_nan_z_false   s   

r=   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   r;   r<   r   r   geom1geom2r   r   r   test_equality_z   s   

rA   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'   r2   r&   zPOINT EMPTYzLINESTRING EMPTY)r   r   r   r   from_wkt)r?   r@   geom3r   r   r   test_equality_exact_type   s   

rD   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   rB   r>   r   r   r   test_equality_polygon   s"   

rE   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"   )dtype)	__eq__NotImplementedr;   arrayobjectr   ndarrayallany)r   arrresultr   r   r   test_comparison_notimplemented   s   rP   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   pytestraises	TypeErrorr>   r   r   r   test_comparison_not_supported   s   

"rU   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   hash1hash2r   r   r   test_hash_same_equal  s   rZ   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>rV   )r   r   r   r   test_hash_same_not_equal  s   $r[   ))numpyr;   rR   r   r   r   r   r   r   shapely.tests.commonr   r   r	   r
   rI   r   all_non_empty_typesmarkparametrizer   paramrB   skipifr   r1   r<   cases1r4   cases2r8   cases3r9   r=   rA   rD   rE   rP   rU   pointsrZ   r[   r   r   r   r   <module>   s    



#"""






