o
    Jf.                     @   sz  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%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   k/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/site-packages/shapely/tests/test_ragged_array.pytest_roundtrip3   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_z9   s   "r)   c                 C   s.   t j| | gdd\}}}|jd dksJ d S )NFr       r"   )r   r   shaper&   r   r   r   test_include_z_false@   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_defaultG   s   r/   c                 C   sN   t | | g\}}}d|j_|D ]}d|j_qt |||}t|| | g d S )NF)r   r   flags	writeabler   r   )r   typr(   offsetsarrresultr   r   r   test_read_only_arraysX   s   
r6   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_typec   s   "r:   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tjtjgg}|t jjks9J t|t| ksCJ t	|| t|dksPJ t 
||}t d| d< t||  d S )N)zPOINT (0 0)zPOINT (1 1)POINT EMPTYr;   zPOINT (4 4)Nr;   r   r*      r;   )r   r.   r   r#   arraynanGeometryTypePOINTlenr   r   r   )r4   r2   r5   r3   expectedgeomsr   r   r   test_pointsi   s*   




rE   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	| d
< t
||  d S )N)z LINESTRING (30 10, 10 30, 40 40)z'LINESTRING (40 40, 30 30, 40 20, 30 10)LINESTRING EMPTYrF   z LINESTRING (10 10, 20 20, 10 40)NrF         >@      $@      D@      4@)r   r-      rK   rK   
   rL   rL   r*   r   rF   r=   )r   r.   r   r#   r>   r@   
LINESTRINGr   rB   r   r   r4   r2   r(   r3   rC   expected_offsetsr5   r   r   r   test_linestrings   s2   
rP   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| d< 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 EMPTYrR   rQ   NrR   rG   rH   rI   rJ        A@     F@      .@)r      rL         r   r*   r-   r-   r-   r<   r<   r<   r"   r   r*   rR   r=   )r   r.   r   r#   r>   r@   POLYGONr   rB   r   r   r4   r2   r(   r3   rC   expected_offsets1expected_offsets2r5   r   r   r   test_polygons   sH   
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g}tg d}|t jjks;J t|| t|dksHJ t|d | t 	|||}t d	| d
< 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)Nr_   rH   rI   rG   rJ   )r   r<   rV   rV   rV      r`   r`   r*   r   r_   r=   )r   r.   r   r#   r>   r@   
MULTIPOINTr   rB   r   r   rN   r   r   r   test_multipoints   s.   
rb   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| d< 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 EMPTYrc   zGMULTILINESTRING ((35 10, 45 45), (15 40, 10 20), (30 10, 10 30, 40 40))Nrc   rG   rH   rI   rJ   rS   rT   rU   )r   r-      rL      rW      )r   r*   r-   r-   r-   rd   rd   rd   r"   r   r*   rc   r=   )r   r.   r   r#   r>   r@   MULTILINESTRINGr   rB   r   r   r[   r   r   r   test_multilinestrings  sD   
rh   c            	      C   sr  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| d< 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 EMPTYri   z-MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)))Nri   rS   rH   rT   rU   rI   rJ   rG   g      @g      9@)r   rV   	      rX         )r   r"   r-   rV   rd   rY   r-   r   r*   r"   ri   r=   )r   r.   r   r#   r>   r@   MULTIPOLYGONr   rB   r   r   )	r4   r2   r(   r3   rC   r\   r]   expected_offsets3r5   r   r   r   test_multipolygons=  s\   
rp   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   r@   ra   r   r#   r>   r   r   r2   r(   r3   r5   rC   r   r   r   test_mixture_point_multipointz  
   rs   c                  C   rq   r   )r   r   r
   r   r@   rg   r   r#   r>   r   r   rr   r   r   r   'test_mixture_linestring_multilinestring  rt   ru   c                  C   rq   r   )r   r   r   r   r@   rn   r   r#   r>   r   r   rr   r   r   r   !test_mixture_polygon_multipolygon  rt   rv   )0numpyr#   r7   numpy.testingr   r   r   r   r   shapely.testingr   shapely.tests.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/   r6   r:   rE   rP   r^   rb   rh   rp   rs   ru   rv   r   r   r   r   <module>   sX    H







#'3&1=