o
    h                     @   s  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m	Z	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mZmZ ed d dkZed d dkZ ed d d	kZ!ej"ej#ej$ej%ej&ej'j(ejd
k dddej)ej*ej+ej,ej-ej.ej%ej/ej'j(ejdk dddfZ0ej1ej2ej3ej4ej5fZ6ej'7deej'7de0dd Z8ej'7deej'7de6dd Z9ej'7deej'7dedd Z:ej'7de0dd Z;ej'7de6dd Z<ej'7deej'7de6dd Z=dd  Z>d!d" Z?d#d$ Z@ej'7ded%d& ZAd'd( ZBej'7d)eefeefeeg d*eg d+geg d*g d+gd,feefegegfgd-d. ZCd/d0 ZDej'7d)eefeg d1e	d2d3gfeg d4eeg d5eg d6gfeefegegfgd7d8 ZEej'7d)eefeg d9eg d4geg d9eeg d:eg d5ggfedegedegfgd;d< ZFej'j(ejdk ddej'7d)eefeg d1eg d1feg d4eeg d5eg d6gfeefegegfgd=d> ZGej'j(ejdk ddej'7d)eefeg d1e feg d4eeg d5eg d6gfeefegegfgd?d@ ZHej'j(ejdkdAddBdC ZIej'j(ejdk ddej'7dDeJdEdFgdGeKdHfdEdGdIgeKdJfdKdGeLdLfdEdIeLdMfgdNdO ZMej'7d)eefe	dPd2ge	d2d3gfgdQdR ZNdSdT ZOdUdV ZPdWdX ZQdYdZ ZRd[d\ ZSej'j(ejd
k ddej'7d)eg d]ed^d_gfeg d`eg dafeg dbeg dcfeg ddg degd,eg ddg dfgd,feeg dgeg dhgeeg dieg djgfeefeefeefeefeefeefeefgdkdl ZTej'j(ejdmk dndej'7doeg didggdpdq ZUej'j(ejd
k dddrds ZVej'j(ejd
k ddej'7dodtdugdvdw ZWej'7d)ed^dxgedxd^gfeg daeg dyfeg dieg dzfeg ddg dfgd,eg d{g d|gd,fe	d^dxgd}d~gge	dxd^gd~d}ggfeeg dieg djgeeg dzeg dgfeefeefeefeefeefeefeefgdd ZXdd ZYej'7dddgdd ZZej'7d)ed d e feddeddfedde fed^dge feddgeddgfeg de feddgeddgfgdd Z[ej'7deddgd,de feddgd,de feddgd,deddgd,feg dg dgd,deg dfgdd Z\ej'7dedd Z]dd Z^ej'7deeegdd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhej'j(ejdk ddej'7deej'7ddd gdd Ziej'j(ejdk ddej'7dedd Zjej'j(ejdk ddej'7deeeegdd Zkej'j(ejdk ddej'7deeegdd Zlej'j(ejdk ddddÄ Zmej'j(ejdk ddej'7ded^dgded^dgfeg dddeg ddfed^dgdeg dȢfeg dddeg dɢfed^dged^dggdeg dȢed^dggfed^dged^dggdgeg dȢed^dggfed^dged^dggddgeg dȢeg d̢gfgdd΄ Znej'7deddЄ Zoej'7deg dҢe1eddǃdǡfed_dge1eddǃdǡfe
ddge1edddfeddeddfe e fgdd؄ Zpej'7deddڄ Zqej'7dejrejsgej'7de
g dۢeg dܢfeg dݢeg dޢfeg dߢeg dfedudgedudgfeddeddfe e fgdd Ztej'j(ejdmkddej'7de
g dۢeg dfeg dݢeg dޢfeg dߢeg dfedudgedudgfeddeddfe e fgdd Zudd Zvej'j(ejd
k dddd Zwej'j(ejdk ddG dd dZxej'j(ejdmk dnddd Zyej'j(ejdmkdddd Zzej'7dedd Z{ej'7ddgdd Z|dd Z}dd Z~ej'7dedd Zdd Zd d Zdd Zdd Zdd Zdd	 Zd
d Zdd ZdS (      N)GeometryGeometryCollectionGEOSException
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygongeos_version)UnsupportedGEOSVersionErrorassert_geometries_equal)	ArrayLike	all_typesemptyempty_line_stringempty_pointempty_polygonignore_invalidline_stringmulti_pointpointpoint_z   )   	   )r   
   )r      r   r   r   zGEOS < 3.11)reason)marks)r   r   r   zGEOS < 3.10geometryfuncc                 C   s   | j r t| dkr |tju r trtdk str tdk r td || | g}|j	dks-J |d d u s<t
|d ts>J d S d S )Nr   )r   r   r   )r   r   r   z;GEOS < 3.9.3 or GEOS < 3.10.3 crashes with empty geometriesr   )is_emptyshapelyget_num_geometriesnodegeos39r   geos310pytestxfailshape
isinstancer   r#   r$   actual r2   Z/var/www/html/scripts/venv/lib/python3.10/site-packages/shapely/tests/test_constructive.pytest_no_args_arrayG   s   

&r4   c                 C   s   |t ju r2t | dvr2t jdk r2tjtdd || | gd W d    d S 1 s+w   Y  d S t|t ju oCt | dkoCt jdk  || | gd}W d    n1 sWw   Y  |j	dkscJ t
|d tslJ d S )	N   r   r    zonly accept linestringsmatch        r   r      r   r%   )r'   offset_curveget_type_idr   r,   raisesr   r   voronoi_polygonsr.   r/   r   r0   r2   r2   r3   test_float_arg_arrayY   s&   



r@   	referencec                 C   s<   t j| | g||gdd}|jdksJ t|d tsJ d S )N      ?	tolerancer%   r   )r'   snapr.   r/   r   )r#   rA   r1   r2   r2   r3   test_snap_arrayp   s   rF   c                 C   s   | d }|d u s
J d S Nr2   r$   r1   r2   r2   r3   test_no_args_missingx   s   rI   c                 C   s   | d d}|d u sJ d S )NrB   r2   rH   r2   r2   r3   test_float_arg_missing~   s   
rJ   c                 C   s   || t d}|d u sJ d S )Nnan)floatr0   r2   r2   r3   test_float_arg_nan   s   rM   c                   C   D   t jtdd tjtddd W d    d S 1 sw   Y  d S )N'invalid' is not a valid optionr7   r6   invalid)	cap_styler,   r>   
ValueErrorr'   bufferr   r2   r2   r2   r3   test_buffer_cap_style_invalid      "rU   c                   C   rN   )NrO   r7   r6   rP   
join_stylerR   r2   r2   r2   r3   test_buffer_join_style_invalid   rV   rY   c                  C   s    t jd tdd} | d u sJ d S )NrB   rC   )r'   rE   r   r1   r2   r2   r3   test_snap_none   s   r[   c                 C   s"   t j| ttjd}|d u sJ d S )NrC   )r'   rE   r   nprK   r#   r1   r2   r2   r3   test_snap_nan_float   s   r^   c                  C      t d } | d u sJ d S rG   r'   
build_arearZ   r2   r2   r3   test_build_area_none      
rb   zgeom,expected)r   r   )r   r   r   r   )r   r   rd   )r6   r6   r   r   r5   rf   holesc                 C   s&   t | }||usJ ||ksJ d S rG   r`   geomexpectedr1   r2   r2   r3   test_build_area   s   
rm   c                  C   r_   rG   )r'   
make_validrZ   r2   r2   r3   test_make_valid_none   rc   ro   )rd   rf   r5   rf   rd   )rf   r5   )rd   rf   )rd   rg   r   r   r   r   rd   )rf   rg   rp   rf   )rd   rq   rf   rd   c                 C   s,   t | }||usJ t ||ksJ d S rG   r'   rn   	normalizerj   r2   r2   r3   test_make_valid   s   
rt   )rd   rg   rq   rd   )rf   rd   rq   rf   c                 C   s,   t | }tt |t |ksJ d S rG   )r'   rn   r\   allrs   rj   r2   r2   r3   test_make_valid_1d   s   
"rv   c                 C   s0   t j| dd}||usJ t ||ksJ d S )N	structuremethodrr   rj   r2   r2   r3   test_make_valid_structure  s   rz   c                 C   s2   t j| ddd}||usJ t ||ksJ d S )Nrw   Fry   keep_collapsedrr   rj   r2   r2   r3   .test_make_valid_structure_keep_collapsed_false   s   r}   zGEOS >= 3.10c                  C   sD   t jtdd tjt dd} W d    d S 1 sw   Y  d S )Nz:The 'structure' method is only available in GEOS >= 3.10.0r7   rw   rx   )r,   r>   rS   r'   rn   r
   )_r2   r2   r3   *test_make_valid_structure_unsupported_geos?  s
   "r   z)method, keep_collapsed, error_type, errorlineworkrw   Tz!method only accepts scalar valuesFz)keep_collapsed only accepts scalar valuesunknownzUnknown method: unknownz=The 'linework' method does not support 'keep_collapsed=False'c                 C   sF   t j||d tjt | |d}W d    d S 1 sw   Y  d S )Nr7   r{   )r,   r>   r'   rn   r
   )ry   r|   
error_typeerrorr~   r2   r2   r3   test_make_valid_invalid_paramsG  s   "r   )rf   rd   c                 C   s   t | }||ksJ d S rG   )r'   rs   rj   r2   r2   r3   test_normalizee  s   
r   c                  C   sL   t tjdk  ttd} W d    n1 sw   Y  t| s$J d S )Nr:          @)r   r'   r   r<   r   r&   rZ   r2   r2   r3   test_offset_curve_emptyu  s   r   c                  C   sH   t ttgddg} | d t tdksJ | d t tdks"J d S )N       g      r   r6   r'   r<   r   resultr2   r2   r3    test_offset_curve_distance_array}  s   r   c                  C   s0   t jtddddd} t td}| |ksJ d S )Nr   r   mitrer   )	quad_segsrX   mitre_limitr   )result1result2r2   r2   r3   test_offset_curve_kwargs  s
   
r   c                  C   s   d} t jt| d tjttgdtddgd W d    n1 s#w   Y  t jt| d tjttgdddgd	 W d    n1 sFw   Y  t jt| d tjttgdd
dgd W d    d S 1 sjw   Y  d S )Nonly accepts scalar valuesr7   r6      r   )r   roundbevelrW         @      @)r   )r,   r>   	TypeErrorr'   r<   r   r\   arraymsgr2   r2   r3   #test_offset_curve_non_scalar_kwargs  s    "r   c                   C   rN   )NrO   r7   rB   rP   rW   )r,   r>   rS   r'   r<   r   r2   r2   r2   r3   $test_offset_curve_join_style_invalid  rV   r   )rd   rd   r6   r   rd   r   )rd   r5   r5   r6   r   rd   )rd   r5   r   rd   )rd   rd   r   rf   r   rd   )rd   r   rf   r   rd   )rd   r   r   r   r   r   r   rd   )rg   rg   r      r   r   r   r   rg   rg   r   r   r   rg   )rd   rd   r   rf   r   r6   rd   )rg   rg   r   r   re   r   r   rg   rd   r   rf   r   rd   )rg   r   re   r   rg   c                 C   s   t t| d| d S Nr   )r   r'   remove_repeated_pointsrk   rl   r2   r2   r3   test_remove_repeated_points  s   1r   r:   zGEOS < 3.12zgeom, tolerancec                 C   sB   t jtjdd t| | W d    d S 1 sw   Y  d S )NzInvalid number of pointsr7   )r,   r>   r'   r   r   rk   rD   r2   r2   r3   *test_remove_repeated_points_invalid_result  s   "r   c                  C   sz   t d dd u s
J t d gd d gksJ tg d} tddg}t d | gd}|d d u s4J t|d | d S )Nr6   )rd   rd   rf   rd   rf   r   )r'   r   tolistr   r   r#   rl   r   r2   r2   r3    test_remove_repeated_points_none  s   r   )Not a geometryr6   rf   c                 C   s@   t jtdd t| | W d    d S 1 sw   Y  d S Nz)One of the arguments is of incorrect typer7   )r,   r>   r   r'   r   r   r2   r2   r3   (test_remove_repeated_points_invalid_type  s   "r   r5   )rd   r   r5   rd   rd   r   rf   r   rd   rd   r   r   r   rd   )rg   r   r   r   rg   re   r   )rg   r   re   r   rg   c                 C   s   t t| | d S rG   )r   r'   reverser   r2   r2   r3   test_reverse  s   4r   c                  C   st   t d d u s	J t d g d gksJ tg d} tg d}t d | g}|d d u s1J t|d | d S )Nr   r   r   r6   )r'   r   r   r   r   r   r2   r2   r3   test_reverse_none)  s   r   rk   r   r6   c                 C   s>   t jtdd t|  W d    d S 1 sw   Y  d S r   )r,   r>   r   r'   r   )rk   r2   r2   r3   test_reverse_invalid_type4  s   "r      r   )   )r   r   )   r   )r   r   r   r   r   r   r   )      r   )r   r   c                 C   s    t | dddd}t|| d S )Nr   r   r'   clip_by_rectr   rj   r2   r2   r3   test_clip_by_rect:  s   r   zgeom, rect, expected)rd   )r      r   r   )r   r   rd   )r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   )rf   )r6   r   r   )r   r6   rf   )r   r   (   r   )r   r   r   r   )r   r   )r   r   r   r   r   )r   r   r   c                 C   s    t j| g|R  }t|| d S rG   r   )rk   rectrl   r1   r2   r2   r3   test_clip_by_rect_polygonR  s   -r   c                 C   s   | j rAt| tjjkrAtrtdk strtdk strAtdk rAt	
t t| | gdddd W d    d S 1 s:w   Y  d S t| | gdddd}|jdksSJ |d d u sbt|d tsdJ d S d S )N)r   r   r   )r   r      )r   r   r   r9   rB   r%   r   )r&   r'   r=   GeometryTypePOINTr*   r   r+   geos311r,   r>   r   r   r.   r/   r   r]   r2   r2   r3   test_clip_by_rect_array  s*   
&r   c                  C   s"   t d dddd} | d u sJ d S Nr   r6   )r'   r   rZ   r2   r2   r3   test_clip_by_rect_missing  s   r   c                 C   s$   t | dddd}|t ksJ d S r   )r'   r   r   )rk   r1   r2   r2   r3   test_clip_by_rect_empty  s   r   c                  C   sX   d} t jt| d tttgdddtddg W d    d S 1 s%w   Y  d S )Nr   r7   r   r6   )r,   r>   r   r'   r   r   r\   r   r   r2   r2   r3   #test_clip_by_rect_non_scalar_kwargs  s   ""r   c               	   C   s   t ddgt ddgt ddgt ddgt ddgt ddgtddd g} t| }t|dks3J ttg d	tg d
g}||ksGJ d S )Nrd   rf   r   r   r   r   r   r      rd   rf   r   rd   rf   rd   r   rf   )r   r
   r'   
polygonizer=   r   r   )linesr   rl   r2   r2   r3   test_polygonize  s"   









r   c                  C   st  t ddgt ddgt ddgg} ttg dg}tt| }t|tjs*J ||ks0J tt| g}t|tj	sAJ |j
dksHJ |d |ksPJ t| | g}|j
dks^J t|}t|tj	skJ |j
dksrJ |d |kszJ |d	 |ksJ t| | g| | g| | gg}|j
d
ksJ t|}t|tj	sJ |j
dksJ | D ]}||ksJ qd S )Nrd   rf   r   r   r6   r   r   r%   r6   r   r   r   r   )r   r   r   r'   r   r\   r   r/   r   ndarrayr.   flattenr   rl   r   arrresr2   r2   r3   test_polygonize_array  s6   




r   c                  C   sl   t ddgt ddgt ddgg} t| | g}tj|dd}|jdks&J tj|dd}|jdks4J d S )	Nrd   rf   r   r6   axisr%   r   r   )r   r\   r   r'   r   r.   r   r   r   r2   r2   r3   test_polygonize_array_axis  s   


r   c                  C   s    t d d g} | t ksJ d S rG   )r'   r   r   r   r2   r2   r3   test_polygonize_missing  s   r   c                  C   s  d t ddgt ddgt ddgt ddgd t ddgt ddgt ddgtddd g} t| }t|d	ks9J td
d |D sDJ |\}}}}ttg dtg dg}||ks^J |t kseJ tt ddgt ddgg}||ksyJ |t ksJ d S )Nrd   rf   r   r   r   r   d   r   r   r   c                 s   s    | ]
}t |d kV  qdS )r   N)r'   r=   .0rk   r2   r2   r3   	<genexpr>      z'test_polygonize_full.<locals>.<genexpr>r   r   )r   r
   r'   polygonize_fulllenru   r   r   )r   r   polygonscutsdanglesrP   expected_polygonsexpected_danglesr2   r2   r3   test_polygonize_full  s8   









r   c                  C   s  t ddgt ddgt ddgg} ttg dg}tt| }t|dks*J tdd |D s5J |d |ks=J td	d |d
d  D sLJ tt| g}t|dks]J tdd |D shJ tdd |D ssJ |d d |ks}J tdd |d
d  D sJ t| | g}|j	dksJ t|}t|dksJ tdd |D sJ tdd |D sJ |d d |ksJ |d d
 |ksJ tdd |d
d  D sJ t| | g| | g| | gg}|j	dksJ t|}t|dksJ tdd |D sJ tdd |D sJ |d 
 D ]
}||ks*J q!|d
d  D ]}|
 D ]}|t ksBJ q8q2d S )Nrd   rf   r   r   r   c                 s       | ]	}t |tjV  qd S rG   )r/   r'   r   r   r2   r2   r3   r         z-test_polygonize_full_array.<locals>.<genexpr>r   c                 s       | ]}|t  kV  qd S rG   r   r   r2   r2   r3   r         r6   c                 s   r   rG   r/   r\   r   r   r2   r2   r3   r   #  r  c                 s       | ]}|j d kV  qdS )r   Nr.   r   r2   r2   r3   r   $  r  c                 s   s    | ]
}|d  t  kV  qdS )r   Nr  r   r2   r2   r3   r   &  r   r   c                 s   r   rG   r  r   r   r2   r2   r3   r   ,  r  c                 s   r  r%   Nr  r  r2   r2   r3   r   -  r  c                 s   s$    | ]}|D ]}|t  kV  qqd S rG   r  )r   rk   gr2   r2   r3   r   0  s   " r   c                 s   r   rG   r  r  r2   r2   r3   r   6  r  c                 s   r  )r   Nr  r  r2   r2   r3   r   7  r  )r   r   r   r'   r   r\   r   r   ru   r.   r   r   r2   r2   r3   test_polygonize_full_array  sL   




r  c                  C   s   t ddgt ddgt ddgg} t| | g}tj|dd}t|dks'J tdd |D s2J tj|d	d}t|dksAJ td
d |D sLJ d S )Nrd   rf   r   r6   r   r   c                 s   r  r	  r  r  r2   r2   r3   r   H  r  z2test_polygonize_full_array_axis.<locals>.<genexpr>r   c                 s   r  )r   Nr  r  r2   r2   r3   r   K  r  )r   r\   r   r'   r   r   ru   r   r2   r2   r3   test_polygonize_full_array_axis?  s   


r  c                  C   s8   t d d g} t| dksJ tdd | D sJ d S )Nr   c                 s   r  rG   r  r   r2   r2   r3   r   R  r  z/test_polygonize_full_missing.<locals>.<genexpr>)r'   r   r   ru   r   r2   r2   r3   test_polygonize_full_missingN  s   r  max_segment_lengthc                 C   sB   t jtdd tj| |d W d    d S 1 sw   Y  d S )NIllegalArgumentExceptionr7   r  )r,   r>   r   r'   
segmentize)r#   r  r2   r2   r3   *test_segmentize_invalid_max_segment_lengthU  s   "r  c                 C   s    t j| tjd}|d u sJ d S )Nr  )r'   r  r\   rK   r]   r2   r2   r3   &test_segmentize_max_segment_length_nan]  s   r  c                 C      t j| dd}t||  d S Nr   r  r'   r  r   r]   r2   r2   r3   test_segmentize_emptyd  s   r  c                 C   r  r  r  r]   r2   r2   r3   test_segmentize_no_changem  s   r  c                   C   s   t jd ddd u sJ d S r  )r'   r  r2   r2   r2   r3   test_segmentize_nonet  s   r  zgeometry,tolerance, expectedr   r   r   )rd   r   r   r   )	rd   r   r   r   r   r   r   r   r   r  rd   rq         ?)rd   r   rq   c                 C   s   t | |}t|| d S rG   r  )r#   rD   rl   r1   r2   r2   r3   test_segmentizey  s   Kr  c                 C   T   t | | g}|jdksJ |d d u st|d tsJ t d }|d u s(J d S Nr%   r   )r'   minimum_bounding_circler.   r/   r   r]   r2   r2   r3   &test_minimum_bounding_circle_all_types  
   
r#  zgeometry, expected)r  r  r   r  r  )r6   r   rg   r   r   c                 C   s   t | }t|| d S rG   )r'   r"  r   r#   rl   r1   r2   r2   r3   test_minimum_bounding_circle  s   
r&  c                 C   r   r!  )r'   oriented_enveloper.   r/   r   r]   r2   r2   r3    test_oriented_envelope_all_types  r$  r(  )rB   rB   )rB   r   )      @r   )g      @r   )r   r   )r)  )rB   r   )r   r   )r   rB   r)  )rf   )r   r6   r   )rf   )r   r  )r;   r   r   rf   )rf   )r   r6   )r   r   rf   )r)  )r         "@)g3333330@333333@)gffffff(@gffffffr)  )r   r6   c                 C   s   || }t ||ddd d S NTgMbP?)rs   rD   r   )r#   rl   r$   r1   r2   r2   r3   test_oriented_envelope  s   !r.  zGEOS >= 3.12)gɿgffffff?)r  g      @)gffffff@g333333@)r,  g?r/  )r)  )rB   r+  )      .@r+  )r0  rB   r)  c                 C   s    t j| }t||ddd d S r-  )r'   constructive_oriented_envelope_geosr   r%  r2   r2   r3   #test_oriented_envelope_pre_geos_312  s   !r3  c                  C   sZ   t dddt dddg} tt| }t|tsJ t| }tt|| d S )Nr6   r   )	r
   rT   r'   r'  r   r/   r   r\   asarray)
geometriesr1   rl   r2   r2   r3    test_oriented_evelope_array_likeD  s
    
r6  c                  C   s   t dd} t| djjd d  | djjd d   }tj|dd}t|jdks-J tj|ddd}t|jd	ks>J tj|dd}tj|d	d}t	|t	|k sXJ d S )
Nr   r   r   g      ?)ratior   T)r7  allow_holesr6   )
r
   r   rT   exteriorcoordsr'   concave_hullr   	interiorsget_num_coordinates)pmpr   r   result3result4r2   r2   r3   test_concave_hull_kwargsO  s   
0rB  c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )$TestConstrainedDelaunayTriangulationz
    Only testing the number of triangles and their type here.
    This doesn't actually test the points in the resulting geometries.

    c                 C   sB   t tg d}t|jdksJ |jD ]	}t|tsJ qd S )Nr   )r   r   )Z   rE  )rE  r   r   r   )r'   constrained_delaunay_trianglesr   r   geomsr/   )selfpolysr>  r2   r2   r3   	test_polyf  s   

z.TestConstrainedDelaunayTriangulation.test_polyc                 C   sN   t tdtdg}t|}t|jdksJ |jD ]	}t|ts$J qd S )N)2   r   )<   r   r   rK  rD  r   )r	   r   r'   rF  r   rG  r/   )rH  	multipolyrI  r>  r2   r2   r3   test_multi_polygonn  s   

z7TestConstrainedDelaunayTriangulation.test_multi_polygonc                 C   s*   t dd}t|}t|jdksJ d S )Nr6   r   )r
   r'   rF  r   rG  )rH  r>  rI  r2   r2   r3   
test_pointz  s   

z/TestConstrainedDelaunayTriangulation.test_pointc                 C   s"   t t }t|jdksJ d S r   )r'   rF  r   r   rG  )rH  rI  r2   r2   r3   test_empty_poly  s   z4TestConstrainedDelaunayTriangulation.test_empty_polyN)__name__
__module____qualname____doc__rJ  rO  rP  rQ  r2   r2   r2   r3   rC  ^  s    rC  c                  C   sd   t g d} tj| dd}|jd tg dsJ tj| dd}|jd tg ds0J d S )N)r*  rB   )r*  r   )rB   r   r)  Forderedr   )r  r  )r  r  r   r  r   r  rY  T)r   r  r[  rZ  )r   r  r\  )r   r'   r?   rG  equalsr   )r?  r   result_orderedr2   r2   r3   test_voronoi_polygons_ordered  s   



r_  c                  C   sN   t g d} tjtdd tj| dd W d    d S 1 s w   Y  d S )NrV  z%Ordered Voronoi polygons require GEOSr7   TrW  )r   r,   r>   r   r'   r?   )r?  r2   r2   r3   #test_voronoi_polygons_ordered_raise  s   "r`  c                 C   s   t | dvr&tjtdd t |  W d    d S 1 sw   Y  d S | jrHtjtdd t |  W d    d S 1 sAw   Y  d S t | | g}|jdksVJ |d d u set|d t	seJ t d }|d u spJ d S )N)r   r   zxArgument must be Polygonal or LinearRing|must be a Polygon or MultiPolygon|Operation not supported by GeometryCollectionr7   *Empty input(?: geometry)? is not supportedr%   r   )
r'   r=   r,   r>   r   maximum_inscribed_circler&   r.   r/   r   r]   r2   r2   r3   'test_maximum_inscribed_circle_all_types  s0   
		

rc  )%POLYGON ((0 5, 5 10, 10 5, 5 0, 0 5))zLINESTRING (5 5, 2.5 7.5)c                 C   s.   t | t |} }t | }t|| d S rG   )r'   from_wktrb  r   r%  r2   r2   r3   test_maximum_inscribed_circle  s   

rf  c                  C   s   t d} tjtdd t |  W d    n1 sw   Y  t d} tjtdd t |  W d    d S 1 s>w   Y  d S )NzPOINT EMPTYzJArgument must be Polygonal or LinearRing|must be a Polygon or MultiPolygonr7   zPOLYGON EMPTYra  )r'   re  r,   r>   r   rb  r#   r2   r2   r3   #test_maximum_inscribed_circle_empty  s   

	"rh  c                  C   sL   t d} tjtdd t j| dd W d    d S 1 sw   Y  d S )Nrd  z'tolerance' should be positiver7   r  rC   )r'   re  r,   r>   rS   rb  rg  r2   r2   r3   /test_maximum_inscribed_circle_invalid_tolerance  s   
"ri  c                 C   sH   t | | g}|jdksJ t|d tsJ t d }|d u s"J d S r!  )r'   orient_polygonsr.   r/   r   r]   r2   r2   r3   test_orient_polygons_all_types  s
   
rk  c                  C   s  t g dg dgd} t| }|jjsJ |jd jrJ tj| dd}|jjr+J |jd js3J t| | g}t|}t|jdksGJ |jD ]}|jjsRJ |jd jrZJ qJtj|gddd }t|jdksnJ |jD ]}|jjryJ |jd jsJ qqt	t
dd| |g}t|}t|jd	ksJ |jd t
ddksJ |jd t| ksJ |jd t|ksJ d S )
Nr   r   rh   r   T)exterior_cwr   r6   r   )r   r'   rj  r9  is_ccwr<  r	   r   rG  r   r
   )polygonr   r?  rk   gcr2   r2   r3   test_orient_polygons  s6   




rp  c                  C   s6   t tddtddgd g} t| }t||  d S )Nr   rd   rf   )r\   r   r
   r   r'   rj  r   )r   r   r2   r2   r3   (test_orient_polygons_non_polygonal_input  s   
rq  c                  C   sr   t g dg dgd} t| gd gd }t|}t|tjs#J |jdks*J t| }||k s7J d S )Nr   r   rh   r   r   r   )	r   r\   r   r'   rj  r/   r   r.   ru   rn  r5  r1   rl   r2   r2   r3   test_orient_polygons_array  s   

rs  c                  C   sd   t g dg dgd} | tdddg}tt|}t|ts#J t|}tt	|| d S )Nr   r   rh   r   r6   )
r   r
   rT   r'   rj  r   r/   r   r\   r4  rr  r2   r2   r3   test_orient_polygons_array_like%  s   
rt  c                
   C   s4  t jdd ttdd W d    n1 sw   Y  t jdd ttddd W d    n1 s6w   Y  t jdd ttdddd W d    n1 sUw   Y  t   ttddddd W d    n1 ssw   Y  t   ttdddddd	 W d    d S 1 sw   Y  d S )
Nz:positional argument `quad_segs` for `buffer` is deprecatedr7   rB   r   zLpositional arguments `quad_segs` and `cap_style` for `buffer` are deprecatedr   z[positional arguments `quad_segs`, `cap_style`, and `join_style` for `buffer` are deprecatedr   F)r,   deprecated_callr'   rT   r   r2   r2   r2   r3    test_buffer_deprecate_positional3  s*   

"rv  c                   C   s   t jdd ttdd W d    n1 sw   Y  t jdd ttddd W d    n1 s6w   Y  t jdd ttdddd W d    d S 1 sVw   Y  d S )	Nz@positional argument `quad_segs` for `offset_curve` is deprecatedr7   rB   r   zSpositional arguments `quad_segs` and `join_style` for `offset_curve` are deprecatedr   zcpositional arguments `quad_segs`, `join_style`, and `mitre_limit` for `offset_curve` are deprecatedr   )r,   ru  r'   r<   r   r2   r2   r2   r3   &test_offset_curve_deprecate_positionalH     "rw  c                   C   s@   t jdd ttdd W d    d S 1 sw   Y  d S )NzDpositional argument `preserve_topology` for `simplify` is deprecatedr7   rB   T)r,   ru  r'   simplifyr   r2   r2   r2   r3   "test_simplify_deprecate_positionalY  s
   "rz  c                   C   s   t jdd ttdd  W d    n1 sw   Y  t jdd ttdd d W d    n1 s6w   Y  t jdd ttdd dd W d    d S 1 sVw   Y  d S )NzDpositional argument `extend_to` for `voronoi_polygons` is deprecatedr7   r9   zWpositional arguments `extend_to` and `only_edges` for `voronoi_polygons` are deprecatedFzcpositional arguments `extend_to`, `only_edges`, and `ordered` for `voronoi_polygons` are deprecated)r,   ru  r'   r?   r   r2   r2   r2   r3   *test_voronoi_polygons_deprecate_positional`  rx  r{  )numpyr\   r,   r'   r   r   r   r   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*   r+   r   boundarycentroidconvex_hullparamr;  markskipifenvelopeextract_unique_pointsminimum_clearance_liner)   rs   point_on_surfacerF  CONSTRUCTIVE_NO_ARGSrT   r<   delaunay_trianglesry  r?   CONSTRUCTIVE_FLOAT_ARGparametrizer4   r@   rF   rI   rJ   rM   rU   rY   r[   r^   rb   rm   ro   rt   rv   rz   r}   r   r   r   rS   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r#  r&  r(  r'  minimum_rotated_rectangler.  r3  r6  rB  rC  r_  r`  rc  rf  rh  ri  rk  rp  rq  rs  rt  rv  rw  rz  r{  r2   r2   r2   r3   <module>   s
   44

	











	












	




	





	







/









3





,

!!+



















I
	




	
















%



	
	&