o
    ×Ëh»  ã                   @   s^   d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZ G dd„ de jƒZdS )é    N)Úassert_array_equal)ÚGeometryCollectionÚ
LinearRingÚ
LineStringÚMultiLineStringÚ
MultiPointÚMultiPolygonÚPointÚPolygon)Úorientc                   @   s\   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚOrientTestCasec                 C   s2   t ddƒ}t|dƒ|ksJ ‚t|dƒ|ksJ ‚d S )Nr   é   éÿÿÿÿ)r	   r   )ÚselfÚpoint© r   ú[/var/www/html/scripts/venv/lib/python3.10/site-packages/shapely/tests/legacy/test_orient.pyÚ
test_point   s   
zOrientTestCase.test_pointc                 C   ó4   t ddgƒ}t|dƒ|ksJ ‚t|dƒ|ksJ ‚d S ©N©r   r   ©r   r   r   r   )r   r   )r   Ú
multipointr   r   r   Útest_multipoint   ó   zOrientTestCase.test_multipointc                 C   r   r   )r   r   )r   Ú
linestringr   r   r   Útest_linestring   r   zOrientTestCase.test_linestringc                 C   s<   t ddgddggƒ}t|dƒ|ksJ ‚t|dƒ|ksJ ‚d S )Nr   r   ©r   r   ©r   r   r   r   )r   r   )r   Úmultilinestringr   r   r   Útest_multilinestring"   s   z#OrientTestCase.test_multilinestringc                 C   s4   t g d¢ƒ}t|dƒ|ksJ ‚t|dƒ|ksJ ‚d S )N©r   r   r   r   r   )r   r   )r   Ú
linearringr   r   r   Útest_linearring'   r   zOrientTestCase.test_linearringc                 C   s   t ƒ }t|ƒ|ksJ ‚d S )N)r
   r   )r   Úpolygonr   r   r   Útest_empty_polygon,   s   z!OrientTestCase.test_empty_polygonc                 C   sJ   t g d¢ƒ}t |jjd d d… ƒ}t|dƒ|ksJ ‚t|dƒ|ks#J ‚d S ©Nr!   r   r   )r
   ÚexteriorÚcoordsr   )r   r$   Úpolygon_reversedr   r   r   Útest_polygon0   s   zOrientTestCase.test_polygonc                 C   s    t g d¢ƒ}t g d¢ƒ}t |jjd d d… ƒ}t |jjd d d… ƒ}t||gƒ}|jjr.J ‚|jjs4J ‚t|dƒt||gƒksAJ ‚t|dƒt||gƒksNJ ‚d S )Nr!   )r   )é   r   )r+   r   r   r   )r
   r'   r(   r   Úis_ccwr   )r   Úpolygon1Úpolygon2Úpolygon1_reversedÚpolygon2_reversedÚmultipolygonr   r   r   Útest_multipolygon6   s   z OrientTestCase.test_multipolygonc                 C   s`   t g d¢ƒ}t |jjd d d… ƒ}t|gƒ}t|dƒt|gƒks"J ‚t|dƒt|gƒks.J ‚d S r&   )r
   r'   r(   r   r   )r   r$   r)   Ú
collectionr   r   r   Útest_geometrycollectionA   s
   
z&OrientTestCase.test_geometrycollectionc                 C   s¨   t g d¢ƒ}t g d¢ƒ}t g d¢ƒ}t g d¢ƒ}t|||||gƒ}t||| ¡ || ¡ gƒ}tt|dƒ|ƒ tt|dƒ| ¡ ƒ tt|dƒ|ƒ tt|dƒ| ¡ ƒ d S )N)r   r   r   r   )r   )r   é   )r5   r5   r   )r   r   r   r   )r   )r+   r+   )r   r+   r   r   r   )r   r
   Úreverser   r   )r   Úring_cwÚring_cw2Úring_ccwÚ	ring_ccw2Úpolygon_with_holes_mixedÚpolygon_with_holes_ccwr   r   r   Útest_polygon_with_holesH   s$   ÿÿÿÿz&OrientTestCase.test_polygon_with_holesN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r#   r%   r*   r2   r4   r=   r   r   r   r   r      s    r   )ÚunittestÚnumpy.testingr   Úshapely.geometryr   r   r   r   r   r   r	   r
   Úshapely.opsr   ÚTestCaser   r   r   r   r   Ú<module>   s
    (
