
    (&h                     t    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e j                  ZdS )    N)assert_array_equal)GeometryCollection
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)orientc                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )OrientTestCasec                 ~    t          dd          }t          |d          |k    sJ t          |d          |k    sJ d S )Nr      )r
   r   )selfpoints     [/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/legacy/test_orient.py
test_pointzOrientTestCase.test_point   sK    aeQ5((((eR  E))))))    c                     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   
multipoints     r   test_multipointzOrientTestCase.test_multipoint   P     011
j!$$
2222j"%%333333r   c                     t          ddg          }t          |d          |k    sJ t          |d          |k    sJ d S r   )r   r   )r   
linestrings     r   test_linestringzOrientTestCase.test_linestring   r   r   c                     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   multilinestrings     r   test_multilinestringz#OrientTestCase.test_multilinestring"   sZ    )FF+;ff=M*NOOoq))_<<<<or**o======r   c                     t          g d          }t          |d          |k    sJ t          |d          |k    sJ d S )Nr   r#   r"   r   r   )r   r   )r   
linearrings     r   test_linearringzOrientTestCase.test_linearring'   sR     8 8 899
j!$$
2222j"%%333333r   c                 L    t                      }t          |          |k    sJ d S )N)r   r   )r   polygons     r   test_empty_polygonz!OrientTestCase.test_empty_polygon,   s(    ))g'))))))r   c                     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_reverseds      r   test_polygonzOrientTestCase.test_polygon0   sr    22233"7#3#:44R4#@AAw""'77777w##//////r   c                    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        sJ t          |d          t          ||g          k    sJ t          |d          t          ||g          k    sJ d S )Nr'   )r"   )   r   )r4   r   r   r   )r   r/   r0   r	   is_ccwr   )r   polygon1polygon2polygon1_reversedpolygon2_reversedmultipolygons         r   test_multipolygonz OrientTestCase.test_multipolygon6   s    3334433344#H$5$<TTrT$BCC#H$5$<TTrT$BCC#Xx$899$++++ ''''lA&&,8I87T*U*UUUUUlB''<CT8U+V+VVVVVVVr   c                    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/   r0   r   r   )r   r+   r1   
collections       r   test_geometrycollectionz&OrientTestCase.test_geometrycollectionA   s    22233"7#3#:44R4#@AA'	22
j!$$(:<L;M(N(NNNNNj"%%);WI)F)FFFFFFFr   c                 ^   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      )r@   r@   r   )r   r   r#   r   )r   )r4   r4   )r   r4   r   r   r   )r   r   reverser   r   )r   ring_cwring_cw2ring_ccw	ring_ccw2polygon_with_holes_mixedpolygon_with_holes_ccws          r   test_polygon_with_holesz&OrientTestCase.test_polygon_with_holesH   sL   ===>>>>>??>>>?????@@	#*w	8X>$
 $
  ")w	 1 1 3 3Xx?O?O?Q?QR"
 "
 	6"8!<<>TUUU)2..0F0N0N0P0P	
 	
 	
 	6":A>>@VWWW+R002H2P2P2R2R	
 	
 	
 	
 	
r   N)__name__
__module____qualname__r   r   r    r%   r)   r,   r2   r;   r>   rH    r   r   r   r      s        * * *
4 4 4
4 4 4
> > >
4 4 4
* * *0 0 0	W 	W 	WG G G
 
 
 
 
r   r   )unittestnumpy.testingr   shapely.geometryr   r   r   r   r   r	   r
   r   shapely.opsr   TestCaser   rL   r   r   <module>rR      s     , , , , , ,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	      J
 J
 J
 J
 J
X& J
 J
 J
 J
 J
r   