o
    A+ i.                     @   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?)Z	toleranceshapelyline_interpolate_pointr   r   r   r   r   actual r   e/home/app/PaddleOCR-VL-test/.venv_paddleocr/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   r/   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
   "r3   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   r9   c                  C   s8   t ddgddgg} t t| }tj|ddg d S )Nr   r   r4   g      ?)r   r5   r6   r   r-   r7   r8   )r5   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   r6   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   r6   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   GEOSExceptionr6   r   r   r   r   r   r   r   'test_line_locate_point_invalid_geometry   s   "r@   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 deprecatedr0   F)r'   r2   r   r6   r   r   r   r   r   r   +test_line_locate_point_deprecate_positional   s
   "rA   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   rD   )      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 )NrB   r   r   rE   r   )rH   rB   rI   TZdirected)r   r   rC   r   r   )linesresultr   r   r   test_line_merge_directed   s
   
rM   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 )NrB   rH   rI   TrJ   )r   r'   r(   r   r   rC   )rK   r   r   r   test_line_merge_error   s   "rN   c                  C   sF   t g d} t ddg}t | |}tt |dt |g d S )NrB   rH   r   r   rB   rH   r   )r   linestringsshared_pathsr   Zget_geometryZmultilinestrings)g1g2Z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   rR   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 )NrO   r   r   )r   rQ   r5   r'   r(   r?   rR   )rS   rT   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   Z	transformprepare)ZgeometryrZ   r   r   r   _prepare_input   s
   
r[   rZ   c                 C   sP   t g d}t ddg}t t|| |}t ddg}t ||s&J d S )NrO   )r   rE   rI   rP   )r!   r!   )r   rQ   shortest_liner[   equals)rZ   rS   rT   r   expectedr   r   r   test_shortest_line   s
   r_   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   )rZ   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,   )r[   r   r   r\   r	   )rZ   rS   Zg1_emptyr   r   r   test_shortest_line_empty   s
   

ra   )5numpyr-   r'   r   r   r   r   r   r   Zshapely.errorsr   Zshapely.testingr   Zshapely.tests.commonr	   r
   r   r   r   r   r   r   r   r   r   r"   markZparametrizeZfrom_wktr&   Zgeometrycollectionsr*   r+   r/   r3   r9   r:   r=   r>   r@   rA   rD   ZskipifZgeos_versionrM   rN   rU   rV   rW   r[   r_   r`   ra   r   r   r   r   <module>   s    ,		






	


	


