o
    Jf                     @   sj  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
 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 dd Zdd	 Zd
d Zejdddgejde e e ede ee eddggdd Zejdddgejdeeeeeeegeegeegeegeegg
dd Zdd Z dd Z!dd Z"dd Z#ejdddgdd Z$ejdddgd d! Z%ejdddgd"d# Z&d$d% Z'ejj(ej)d&k d'd(d)d* Z*ejj(ej)d&kd+d(d,d- Z+d.d/ Z,d0d1 Z-d2d3 Z.d4d5 Z/ejd6ddgd7d8 Z0ejd6ddgd9d: Z1ejd6ddgd;d< Z2dS )=    N)GeometryCollection
LinearRing
LineStringMultiLineStringPoint)UnsupportedGEOSVersionError)assert_geometries_equal)	empty_line_stringempty_pointline_stringlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpolygonc                  C   sV   t tttgd} t| d tdd t| d tdd t| d tdddd d S )	Nr         gTR'?gTR'?gMbP?)	toleranceshapelyline_interpolate_pointr   r   r   r   r   actual r   e/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/site-packages/shapely/tests/test_linear.py&test_line_interpolate_point_geom_array   s   
r   c                  C   sV   t jtttgddd} t| d tdd t| d tdd t| d tdd d S )Nr   T
normalizedr   r   r   r   r   r   r   1test_line_interpolate_point_geom_array_normalized   s   r    c                  C   sP   t tg d} t| d tdd t| d tdd t| d tdd d S )N)皙?      ?gɿr   r!   r   g      ?r   g?)r   r   r   r   r   r   r   r   r   'test_line_interpolate_point_float_array'   s   r#   r   FTgeomz#MULTILINESTRING (EMPTY, (0 0, 1 1))r   c                 C   s   t tj| d|dt d S Nr!   r   )r   r   r   r
   r$   r   r   r   r   !test_line_interpolate_point_empty.   s   r'   c                 C   sD   t t tj| d|dsJ W d    d S 1 sw   Y  d S r%   )pytestraises	TypeErrorr   r   r&   r   r   r   (test_line_interpolate_point_invalid_typeC   s   "r+   c                   C   s   t d dd u s
J d S )Nr!   )r   r   r   r   r   r    test_line_interpolate_point_noneX   s   r,   c                   C   s   t ttjd u sJ d S N)r   r   r   npnanr   r   r   r   test_line_interpolate_point_nan\   s   r0   c                  C   s2   t dd} t ttg| }tj|ddg d S )Nr   r           g      @)r   pointsline_locate_pointr   r   r.   testingassert_allclose)r   r   r   r   r   !test_line_locate_point_geom_array`   s   r6   c                  C   s8   t ddgddgg} t t| }tj|ddg d S )Nr   r   r1   g      ?)r   r2   r3   r   r.   r4   r5   )r2   r   r   r   r   "test_line_locate_point_geom_array2f   s   r7   c                 C   s8   t tjtd | dsJ t tjd t| dsJ d S Nr   )r.   isnanr   r3   r   r   r   r   r   r   test_line_locate_point_nonel   s   r:   c                 C   s8   t tjtt| dsJ t tjtt| dsJ d S r8   )r.   r9   r   r3   r   r
   r	   r   r   r   r   r   test_line_locate_point_emptyr   s   r;   c                 C   s~   t tj tjtt| d W d    n1 sw   Y  t tj tjtt| d W d    d S 1 s8w   Y  d S r8   )r(   r)   r   GEOSExceptionr3   r   r   r   r   r   r   r   'test_line_locate_point_invalid_geometry|   s   "r=   c                  C   s6   t ttg} t| d t t| d tddg d S )Nr   r   r   r   )r   r   )r   
line_merger   r   r   r   r   r   r   r   test_line_merge_geom_array   s   r@   )      r   zGEOS < 3.11.0)reasonc                  C   sL   t ddgddgg} t| }t|tg d tj| dd}t||  d S )Nr>   r   r   rA   r   )rD   r>   rE   Tdirected)r   r   r?   r   r   )linesresultr   r   r   test_line_merge_directed   s
   
rJ   zGEOS >= 3.11.0c                  C   sR   t ddgddgg} tt tj| dd W d    d S 1 s"w   Y  d S )Nr>   rD   rE   TrF   )r   r(   r)   r   r   r?   )rH   r   r   r   test_line_merge_error   s   "rK   c                  C   sF   t g d} t ddg}t | |}tt |dt |g d S )Nr>   rD   r   r   r>   rD   r   )r   linestringsshared_pathsr   get_geometrymultilinestrings)g1g2actual1r   r   r   test_shared_paths_linestring   s   rU   c                   C   s@   t td d u s
J t d td u sJ t d d d u sJ d S r-   )r   rO   r   r   r   r   r   test_shared_paths_none   s   rV   c                  C   sX   t g d} t dd}tt j t | | W d    d S 1 s%w   Y  d S )NrL   r   r   )r   rN   r2   r(   r)   r<   rO   )rR   rS   r   r   r    test_shared_paths_non_linestring   s
   "rW   c                 C   s&   |rt | dd } t |  | S | S )z"Prepare without modifying in-placec                 S   s   | S r-   r   )xr   r   r   <lambda>   s    z _prepare_input.<locals>.<lambda>)r   	transformprepare)geometryr[   r   r   r   _prepare_input   s
   
r]   r[   c                 C   sP   t g d}t ddg}t t|| |}t ddg}t ||s&J d S )NrL   )r   rA   rE   rM   )r"   r"   )r   rN   shortest_liner]   equals)r[   rR   rS   r   expectedr   r   r   test_shortest_line   s
   ra   c                 C   sF   t tt| d d u sJ t d td u sJ t d d d u s!J d S r-   )r   r^   r]   r   )r[   r   r   r   test_shortest_line_none   s   rb   c                 C   sT   t t| }t|td u sJ t t| }t|td u sJ t|td u s(J d S r-   )r]   r   r   r^   r	   )r[   rR   g1_emptyr   r   r   test_shortest_line_empty   s
   

rd   )3numpyr.   r(   r   r   r   r   r   r   shapely.errorsr   shapely.testingr   shapely.tests.commonr	   r
   r   r   r   r   r   r   r   r   r    r#   markparametrizefrom_wktr'   geometrycollectionsr+   r,   r0   r6   r7   r:   r;   r=   r@   skipifgeos_versionrJ   rK   rU   rV   rW   r]   ra   rb   rd   r   r   r   r   <module>   s~    ,			






	


	


