o
    Jfy                     @   s   d dl Z d dlZd dlmZ d dlmZmZ d dlmZm	Z	 ej
dededgdd	 ZG d
d de jZdd Zdd ZdS )    N)geometry)BufferCapStyleBufferJoinStyle)	CAP_STYLE
JOIN_STYLEdistancenaninfc                 C   sJ   t dd}tjtdd ||  W d    d S 1 sw   Y  d S )Nr   zdistance must be finite)match)r   Pointpytestraises
ValueErrorbuffer)r   g r   l/home/deployuser/azure_apps/autowriter/venv/lib/python3.10/site-packages/shapely/tests/legacy/test_buffer.pytest_non_finite_distance
   s   "r   c                   @   sh   e Zd Z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d Zdd ZdS )BufferTestszCTest Buffer Point/Line/Polygon with and without single_sided paramsc                 C   s$   t dd}|d}|jsJ d S )Nr   )r   r   r   is_emptyselfr   hr   r   r   
test_empty   s   
zBufferTests.test_emptyc                 C   s   t dd}|jddd}|jdksJ g d}t|jjD ]"\}}|d t|| d ks1J |d t|| d ks@J qd S )Nr      	quad_segsPolygon      ?        r         )r#   r   )r   r    r   	r   r   r   	geom_type	enumerateexteriorcoordsr   approxr   r   r   expected_coordindexcoordr   r   r   
test_point   s    zBufferTests.test_pointc                 C   s   t dd}|jdddd}|jdksJ g d}t|jjD ]"\}}|d t|| d ks2J |d t|| d ksAJ qd S )Nr   r   Tr   single_sidedr   r   r$   r*   r   r   r   test_point_single_sidedd"   s    z$BufferTests.test_point_single_sideddc                 C   s   t ddgddgg}|jddd}|jdksJ g d}t|jjD ]"\}}|d t|| d ks6J |d t|| d ksEJ q#d S )Nr   r   r   r   )r#   r    )r          @r    r    r   r"   r#   r!   r2   	r   
LineStringr   r%   r&   r'   r(   r   r)   r*   r   r   r   	test_line+   s   	 zBufferTests.test_linec                 C   s   t ddgddgg}|jdddd}|jdksJ g d}t|jjD ]"\}}|d t|| d ks7J |d t|| d ksFJ q$d S )Nr   r   Tr/   r   )r!   r    r!   r!   r5   r2   r9   r6   r*   r   r   r   test_line_single_sideded_left<       z)BufferTests.test_line_single_sideded_leftc                 C   s   t ddgddgg}|jdddd}|jdksJ g d}t|jjD ]"\}}|d t|| d ks7J |d t|| d ksFJ q$d S )Nr   r   Tr/   r   )r:   r9   r4   r   r:   r6   r*   r   r   r   test_line_single_sideded_rightE   r<   z*BufferTests.test_line_single_sideded_rightc                 C   s   t ddgddgddgddgddgg}|jddd}|jdks"J g d}t|jjD ]"\}}|d t|| d ks?J |d t|| d ksNJ q,d S )Nr   r   r   r   	r5   r2   )r!   r3   )r    r3   )r3   r    )r3   r!   )r    r#   )r!   r#   r5   	r   r   r   r%   r&   r'   r(   r   r)   r*   r   r   r   test_polygonN   s   ( zBufferTests.test_polygonc                 C   s   t ddgddgddgddgddgg}|jdddd}|jdks#J g d}t|jjD ]"\}}|d t|| d ks@J |d t|| d ksOJ q-d S )Nr   r   Tr/   r   r?   r@   r*   r   r   r   test_polygon_single_sidededa   s   ( z'BufferTests.test_polygon_single_sidededc                 C   s   t jdksJ t jtjksJ t jdksJ t jtjksJ t jdks%J t jtjks-J tjdks4J tjtjks<J tjdksCJ tjtjksKJ tjdksRJ tjtjksZJ d S )Nr         )	r   roundr   flatsquarer   r   mitrebevel)r   r   r   r   test_enum_valuest   s   zBufferTests.test_enum_valuesc                 C      t ddgddgg}|jdtjd}||jdtjdksJ ||jdddks*J |jdtjd}||jdtjdks>J ||jdddksIJ |jdtjd}||jdtjdks]J ||jdddkshJ d S )Nr   r   )	cap_stylerE   rF   rG   )r   r7   r   r   rE   r   rF   rG   r   r   r   r   test_cap_style      zBufferTests.test_cap_stylec                 C   rK   )Nr   r   )
join_stylerE   rH   rI   )r   r7   r   r   rE   r   rH   rI   r   r   r   r   test_buffer_style   rN   zBufferTests.test_buffer_styleN)__name__
__module____qualname____doc__r   r.   r1   r8   r;   r>   rA   rB   rJ   rM   rP   r   r   r   r   r      s    				r   c                  C   sd   t dd} tt | jddd}W d    n1 sw   Y  | jddd}||s0J d S )Nr   r   )quadsegsr   )r   r   r   warnsFutureWarningr   equalspointresultexpectedr   r   r   test_deprecated_quadsegs   s   r]   c                  C   s:   t dd} | jddd}| jddd}||sJ d S )Nr   r   )
resolutionr   )r   r   r   rX   rY   r   r   r   test_resolution_alias   s   r_   )unittestr   shapelyr   shapely.constructiver   r   shapely.geometry.baser   r   markparametrizefloatr   TestCaser   r]   r_   r   r   r   r   <module>   s    
 