o
    e                     @   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   r	      gTR'?gTR'?gMbP?)Z	toleranceshapelyline_interpolate_pointr   r   r   r   r   actual r   ID:\Projects\ConvertPro\env\Lib\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))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_typeD   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_noneY   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   r/   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_arraya   s   r5   c                  C   s8   t ddgddgg} t t| }tj|ddg d S )Nr   r	   r0   g      ?)r   r1   r2   r   r-   r3   r4   )r1   r   r   r   r   "test_line_locate_point_geom_array2g   s   r6   c                 C   s8   t tjtd | dsJ t tjd t| dsJ d S Nr   )r-   isnanr   r2   r   r   r   r   r   r   test_line_locate_point_nonem   s   r9   c                 C   s8   t tjtt| dsJ t tjtt| dsJ d S r7   )r-   r8   r   r2   r   r   r
   r   r   r   r   r   test_line_locate_point_emptys   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 r7   )r'   r(   r   GEOSExceptionr2   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   r@   r   )rC   r=   rD   TZdirected)r   r   r>   r   r   )linesresultr   r   r   test_line_merge_directed   s
   
rH   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=   rC   rD   TrE   )r   r'   r(   r   r   r>   )rF   r   r   r   test_line_merge_error   s   "rI   c                  C   sF   t g d} t ddg}t | |}tt |dt |g d S )Nr=   rC   r	   r	   r=   rC   r   )r   linestringsshared_pathsr   Zget_geometryZmultilinestrings)g1g2Zactual1r   r   r   test_shared_paths_linestring   s   rP   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   rM   r   r   r   r   r   test_shared_paths_none   s   rQ   c                  C   sX   t g d} t dd}tt j t | | W d    d S 1 s%w   Y  d S )NrJ   r   r	   )r   rL   r1   r'   r(   r;   rM   )rN   rO   r   r   r    test_shared_paths_non_linestring   s
   "rR   c                 C   s&   |rt | dd } t |  | S | S )z!Prepare without modifying inplacec                 S   s   | S r,   r   )xr   r   r   <lambda>   s    z _prepare_input.<locals>.<lambda>)r   Z	transformprepare)ZgeometryrU   r   r   r   _prepare_input   s
   
rV   rU   c                 C   sP   t g d}t ddg}t t|| |}t ddg}t ||s&J d S )NrJ   )r   r@   rD   rK   )r!   r!   )r   rL   shortest_linerV   equals)rU   rN   rO   r   expectedr   r   r   test_shortest_line   s
   rZ   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   rW   rV   r   )rU   r   r   r   test_shortest_line_none   s   r[   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,   )rV   r   r   rW   r
   )rU   rN   Zg1_emptyr   r   r   test_shortest_line_empty   s
   

r\   )3numpyr-   r'   r   r   r   r   r   r   Zshapely.errorsr   Zshapely.testingr   commonr
   r   r   r   r   r   r   r   r   r   r   r"   markZparametrizeZfrom_wktr&   Zgeometrycollectionsr*   r+   r/   r5   r6   r9   r:   r<   r?   ZskipifZgeos_versionrH   rI   rP   rQ   rR   rV   rZ   r[   r\   r   r   r   r   <module>   s~    ,			






	


	


