o
    h                     @   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   [/var/www/html/scripts/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"   r3   	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   Tr0   r   )r"   r!   r"   r"   r6   r3   r:   r7   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   Tr0   r   )r;   r:   r5   r    r;   r7   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   	r6   r3   )r"   r4   )r!   r4   )r4   r!   )r4   r"   )r!   r$   )r"   r$   r6   	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   Tr0   r   r@   rA   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_stylerF   rG   rH   )r   r8   r   r   rF   r   rG   rH   r   r   r   r   test_cap_style      zBufferTests.test_cap_stylec                 C   rL   )Nr   r   )
join_stylerF   rI   rJ   )r   r8   r   r   rF   r   rI   rJ   r   r   r   r   test_buffer_style   rO   zBufferTests.test_buffer_styleN)__name__
__module____qualname____doc__r   r/   r2   r9   r<   r?   rB   rC   rK   rN   rQ   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   sf   t dd} tjdd | jddd}W d    n1 sw   Y  | jddd}||s1J d S )Nr   zUse 'quad_segs' insteadr
   r   )
resolutionr   )r   r   r   deprecated_callr   rY   rZ   r   r   r   test_deprecated_resolution   s   ra   )unittestr   shapelyr   shapely.constructiver   r   shapely.geometry.baser   r   markparametrizefloatr   TestCaser   r^   ra   r   r   r   r   <module>   s    
 