o
    ik)                     @   sd  d dl Zd dlZd dlmZ d dlZd dlmZmZm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mZmZmZmZmZmZmZmZ eeeeeefZeeeeeefZeefZej dee dd	 Z!ej ded
d Z"ej dedd Z#dd Z$ej de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 )$    N)assert_allclose)MultiLineString
MultiPointMultiPolygon)assert_geometries_equal   )empty_line_stringempty_line_string_zgeometry_collectionline_stringline_string_zlinear_ringmulti_line_stringmulti_line_string_zmulti_pointmulti_point_zmulti_polygonmulti_polygon_zpointpoint_zpolygon	polygon_zgeomc                 C   s&   t jt | | g }t|| | g d S N)shapelyfrom_ragged_arrayto_ragged_arrayr   )r   actual r   Z/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/shapely/tests/test_ragged_array.pytest_roundtrip4   s   r    c                 C   s:   t j| | gdd\}}}t|d d df  sJ d S )NT	include_z   )r   r   npisnanallr   _coordsr   r   r   test_include_z:   s   "r*   c                 C   s.   t j| | gdd\}}}|jd dksJ d S )NFr!   r   r#   )r   r   shaper'   r   r   r   test_include_z_falseA   s   r,   c                  C   s   t ttg\} }} |jd dksJ t tg\} }} |jd dks%J t tg\} }} |jd dks7J t t dg\} }} |jd dksLJ d S )Nr      r#   zMULTIPOLYGON Z EMPTY)r   r   r   r   r+   r   r	   from_wkt)r(   r)   r   r   r   test_include_z_defaultH   s   r/   c                 C   s>   t t t| | g W d    d S 1 sw   Y  d S r   )pytestraises
ValueErrorr   r   )r   r   r   r   test_raise_geometry_typeY   s   "r3   c               	   C   s   t g d} t | \}}}tddgddgtjtjgtjtjgddgtjtjgg}|t jjks4J t|| t	|dksAJ t 
||}t||  d S )N)zPOINT (0 0)zPOINT (1 1)POINT EMPTYr4   zPOINT (4 4)r4   r   r      )r   r.   r   r$   arraynanGeometryTypePOINTr   lenr   r   )arrtypresultoffsetsexpectedgeomsr   r   r   test_points_   s   
2
rA   c                  C   s   t g d} t | \}}}tddgddgddgddgddgddgddgddgddgddgg
}tg d}|t jjksAJ t|| t|dksNJ t|d | t 	|||}t
||  d S )	N)z LINESTRING (30 10, 10 30, 40 40)z'LINESTRING (40 40, 30 30, 40 20, 30 10)LINESTRING EMPTYrB   z LINESTRING (10 10, 20 20, 10 40)rB         >@      $@      D@      4@)r   r-      rG   rG   
   rH   r   r   )r   r.   r   r$   r6   r8   
LINESTRINGr   r:   r   r   r;   r<   r)   r>   r?   expected_offsetsr=   r   r   r   test_linestringsv   s0   

rL   c                  C   s  t g d} t | \}}}tddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg}tg d	}tg d
}|t jjkscJ t|| t|dkspJ t|d | t|d | t 	|||}t
||  d S )N)-POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))zKPOLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30))POLYGON EMPTYrN   rM   rN   rC   rD   rE   rF        A@     F@      .@)r      rH         r   r   r-   r-   r-   r5   r5   r#   r   r   )r   r.   r   r$   r6   r8   POLYGONr   r:   r   r   r;   r<   r)   r>   r?   expected_offsets1expected_offsets2r=   r   r   r   test_polygons   sF   

rZ   c                  C   s   t g d} t | \}}}tddgddgddgddgddgddgddgddgg}tg d}|t jjks;J t|| t|dksHJ t|d | t 	|||}t
||  d S )	N)z'MULTIPOINT (10 40, 40 30, 20 20, 30 10)zMULTIPOINT (30 10)MULTIPOINT EMPTYr[   z MULTIPOINT (30 10, 10 30, 40 40)r[   rD   rE   rC   rF   )r   r5   rR   rR   rR      r\   r   r   )r   r.   r   r$   r6   r8   
MULTIPOINTr   r:   r   r   rJ   r   r   r   test_multipoints   s,   

r^   c                  C   s  t g d} t | \}}}tddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg}tg d	}tg d
}|t jjks]J t|| t|dksjJ t|d | t|d | t 	|||}t
||  d S )N)z'MULTILINESTRING ((30 10, 10 30, 40 40))zDMULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))MULTILINESTRING EMPTYr_   zGMULTILINESTRING ((35 10, 45 45), (15 40, 10 20), (30 10, 10 30, 40 40))r_   rC   rD   rE   rF   rO   rP   rQ   )r   r-      rH      rS      )r   r   r-   r-   r-   r`   r`   r#   r   r   )r   r.   r   r$   r6   r8   MULTILINESTRINGr   r:   r   r   rW   r   r   r   test_multilinestrings   sB   

rd   c            	      C   sd  t g d} t | \}}}tddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd	gddgddgddgddgdd
gddgddgddgddgddgg}tg d}tg d}tg d}|t jjksJ t|| t|dksJ t|d | t|d | t|d | t 	|||}t
||  d S )N)zRMULTIPOLYGON (((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)))zvMULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))MULTIPOLYGON EMPTYre   z-MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)))re   rO   rD   rP   rQ   rE   rF   rC   g      @g      9@)r   rR   	      rT         )r   r#   r-   rR   r`   rU   r-   r   r   r#   )r   r.   r   r$   r6   r8   MULTIPOLYGONr   r:   r   r   )	r;   r<   r)   r>   r?   rX   rY   expected_offsets3r=   r   r   r   test_multipolygons  sZ   

rl   c                  C   T   t ttg\} }}| t jjksJ t | ||}tt	tgtg}t
|| d S r   )r   r   r   r   r8   r]   r   r$   r6   r   r   r<   r)   r>   r=   r?   r   r   r   test_mixture_point_multipointU  
   ro   c                  C   rm   r   )r   r   r   r   r8   rc   r   r$   r6   r   r   rn   r   r   r   'test_mixture_linestring_multilinestring]  rp   rq   c                  C   rm   r   )r   r   r   r   r8   rj   r   r$   r6   r   r   rn   r   r   r   !test_mixture_polygon_multipolygone  rp   rr   )/numpyr$   r0   numpy.testingr   r   r   r   r   shapely.testingr   commonr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   	all_typesall_types_3dall_types_not_supportedmarkparametrizer    r*   r,   r/   r3   rA   rL   rZ   r^   rd   rl   ro   rq   rr   r   r   r   r   <module>   sT    H





$0#.: