o
    h.                     @   sz  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#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(d(d) Z)ejj*ej+d*k d+d,d-d. Z,ejj*ej+d*kd/d,d0d1 Z-d2d3 Z.d4d5 Z/d6d7 Z0d8d9 Z1ejd:ddgd;d< Z2ejd:ddgd=d> Z3ejd:ddgd?d@ Z4dS )A    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   T/var/www/html/scripts/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_type@   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_noneU   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_nanY   s   r0   c                   C   s@   t jdd ttdd W d    d S 1 sw   Y  d S )NzKpositional argument `normalized` for `line_interpolate_point` is deprecatedmatchr   F)r(   deprecated_callr   r   r   r   r   r   r   0test_line_interpolate_point_deprecate_positional]   s
   "r4   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_arraye   s   r:   c                  C   s8   t ddgddgg} t t| }tj|ddg d S )Nr   r   r5   g      ?)r   r6   r7   r   r.   r8   r9   )r6   r   r   r   r   "test_line_locate_point_geom_array2k   s   r;   c                 C   s8   t tjtd | dsJ t tjd t| dsJ d S Nr   )r.   isnanr   r7   r   r   r   r   r   r   test_line_locate_point_noneq   s   r>   c                 C   s8   t tjtt| dsJ t tjtt| dsJ d S r<   )r.   r=   r   r7   r   r
   r	   r   r   r   r   r   test_line_locate_point_emptyw   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 r<   )r(   r)   r   GEOSExceptionr7   r   r   r   r   r   r   r   'test_line_locate_point_invalid_geometry   s   "rA   c                   C   s@   t jdd tttd W d    d S 1 sw   Y  d S )NzFpositional argument `normalized` for `line_locate_point` is deprecatedr1   F)r(   r3   r   r7   r   r   r   r   r   r   +test_line_locate_point_deprecate_positional   s
   "rB   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   rE   )      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 )NrC   r   r   rF   r   )rI   rC   rJ   Tdirected)r   r   rD   r   r   )linesresultr   r   r   test_line_merge_directed   s
   
rO   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 )NrC   rI   rJ   TrK   )r   r(   r)   r   r   rD   )rM   r   r   r   test_line_merge_error   s   "rP   c                  C   sF   t g d} t ddg}t | |}tt |dt |g d S )NrC   rI   r   r   rC   rI   r   )r   linestringsshared_pathsr   get_geometrymultilinestrings)g1g2actual1r   r   r   test_shared_paths_linestring   s   rZ   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   rT   r   r   r   r   r   test_shared_paths_none   s   r[   c                  C   sX   t g d} t dd}tt j t | | W d    d S 1 s%w   Y  d S )NrQ   r   r   )r   rS   r6   r(   r)   r@   rT   )rW   rX   r   r   r    test_shared_paths_non_linestring   s
   "r\   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
   
rb   r`   c                 C   sP   t g d}t ddg}t t|| |}t ddg}t ||s&J d S )NrQ   )r   rF   rJ   rR   )r"   r"   )r   rS   shortest_linerb   equals)r`   rW   rX   r   expectedr   r   r   test_shortest_line   s
   rf   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   rc   rb   r   )r`   r   r   r   test_shortest_line_none   s   rg   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-   )rb   r   r   rc   r	   )r`   rW   g1_emptyr   r   r   test_shortest_line_empty   s
   

ri   )5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   r4   r:   r;   r>   r?   rA   rB   rE   skipifgeos_versionrO   rP   rZ   r[   r\   rb   rf   rg   ri   r   r   r   r   <module>   s    ,		






	


	


