a
    J5d|                     @   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 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 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'f	Z(ej)ej*ej+ej,ej-fZ.ej /d
eej /de(dd Z0ej /d
eej /de.dd Z1ej /d
eej /dedd Z2ej /de(dd Z3ej /de.dd Z4ej /d
eej /de.dd Z5dd Z6dd Z7dd Z8ej /d
edd  Z9ej j!ej"d!k d"dd#d$ Z:ej j!ej"d!k d"dej /d%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* Z;ej j!ej"d!k d"dd+d, Z<ej j!ej"d!k d"dej /d%eefeg d-e	d.d/gfeg d0eeg d1eg d2gfeefegegfgd3d4 Z=ej j!ej"d!k d"dej /d%eefeg d5eg d0geg d5eeg d6eg d1ggfedegedegfgd7d8 Z>ej /d%eefe	d9d.ge	d.d/gfgd:d; Z?d<d= Z@d>d? ZAd@dA ZBdBdC ZCdDdE ZDej j!ej"dk ddej /d%eg dFedGdHgfeg dIeg dJfeg dKeg dLfeg dMg dNgd(eg dMg dOgd(feeg dPeg dQgeeg dReg dSgfeefeefeefeefeefeefeefgdTdU ZEej j!ej"dVk dWdej /dXeg dRdYggdZd[ ZFej j!ej"dk ddd\d] ZGej j!ej"dk ddej /dXd^d_gd`da ZHej j!ej"dbk dcdej /d%edGddgedddGgfeg dJeg defeg dReg dffeg dMg dOgd(eg dgg dhgd(feje	dGddgdidjgge	dddGgdjdiggej j!ej"dkk dldd	eeg dReg dSgeeg dfeg dmgfeefeefeefeefeefeefeefgdndo ZIej j!ej"dbk dcddpdq ZJej j!ej"dbk dcdej /drdsdgdtdu ZKej /d%ed d e fedvdvedvdvfedvdwe fedGdxge fedydzgedydzgfeg d{e fed|d}ged~dgfgdd ZLej /de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 ZMej /d
edd ZNdd ZOej /dreeegdd ZPdd ZQdd ZRdd ZSej j!ejTdk dddd ZUdd ZVdd ZWdd ZXej j!ejTdk dddd ZYdd ZZej j!ej"dk ddej /d
eej /ddd gdd Z[ej j!ej"dk ddej /d
edd Z\ej j!ej"dk ddej /d
eeeegdd Z]ej j!ej"dk ddej /d
eeegdd Z^ej j!ej"dk dddd Z_ej j!ej"dk ddej /dedGdgdedGdgfeg dMdeg dMfedGdgdeg dfeg dMdeg dfedGdgedGdggdeg dedGdggfedGdgedGdggdgeg dedGdggfedGdgedGdggddgeg deg dgfgdd Z`ej j!ej"d!k d"dej /d
edd Zaej j!ej"d!k d"dej /deg dâe)edddfedHdge)edddfe
ddge)eddYdfedYdYedYdYfe e fgddɄ Zbej j!ej"dk ddej /d
edd̈́ Zcej j!ej"dk ddej /de
g d΢eg dϢfeg dТeg dѢfeg dҢeg dӢfed_dged_dgfedYdYedYdYfe e fgddք Zdej j!ej"dk ddej /de
g d΢eg dϢfeg dТeg dѢfeg dҢeg dӢfed_dged_dgfedYdYedYdYfe e fgdd؄ Zeej j!ej"dk ddddڄ ZfdS )    N)
GeometryGeometryCollectionGEOSException
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)assert_geometries_equal   )
	all_typesemptyempty_line_stringempty_pointempty_polygonignore_invalidline_stringmulti_pointpointpoint_z      r   zGEOS < 3.11)reason)Zmarksgeometryfuncc                 C   s<   || | g}|j dksJ |d d u s8t|d ts8J d S N   r   )shape
isinstancer   r   r   actual r%   [/var/www/html/django/DPS/env/lib/python3.9/site-packages/shapely/tests/test_constructive.pytest_no_args_array:   s    r'   c                 C   s   |t ju rbt | dvrbt jdk rbtjtdd || | gd W d    n1 sT0    Y  d S t|t ju ot | dkot jdk  || | gd}W d    n1 s0    Y  |j	dksJ t
|d tsJ d S )	Nr   r    r   zonly accept linestringsmatch        r   r      r   r   )shapelyoffset_curveget_type_idgeos_versionpytestraisesr   r   voronoi_polygonsr!   r"   r   r#   r%   r%   r&   test_float_arg_arrayB   s$    ,
,r5   	referencec                 C   s<   t j| | g||gdd}|jdks&J t|d ts8J d S )N      ?	tolerancer   r   )r.   snapr!   r"   r   )r   r6   r$   r%   r%   r&   test_snap_arrayY   s    r;   c                 C   s   | d }|d u sJ d S Nr%   r   r$   r%   r%   r&   test_no_args_missinga   s    r>   c                 C   s   | d d}|d u sJ d S )Nr7   r%   r=   r%   r%   r&   test_float_arg_missingg   s    
r?   c                 C   s   || t d}|d u sJ d S )Nnan)floatr#   r%   r%   r&   test_float_arg_nanm   s    rB   c                   C   sB   t jtdd  tjtddd W d    n1 s40    Y  d S )N'invalid' is not a valid optionr)   r   invalid)Z	cap_styler2   r3   
ValueErrorr.   bufferr   r%   r%   r%   r&   test_buffer_cap_style_invalidt   s    rH   c                   C   sB   t jtdd  tjtddd W d    n1 s40    Y  d S )NrC   r)   r   rD   
join_stylerE   r%   r%   r%   r&   test_buffer_join_style_invalidy   s    rK   c                  C   s    t jd tdd} | d u sJ d S )Nr7   r8   )r.   r:   r   r$   r%   r%   r&   test_snap_none~   s    rM   c                 C   s"   t j| ttjd}|d u sJ d S )Nr8   )r.   r:   r   npr@   r   r$   r%   r%   r&   test_snap_nan_float   s    rP   )r      r   z
GEOS < 3.8c                  C   s   t d } | d u sJ d S r<   r.   Z
build_arearL   r%   r%   r&   test_build_area_none   s    
rS   zgeom,expected)r   r   )r   r   r   r   )r   r   rT   )r   r   r    r    r(   rV   )Zholesc                 C   s&   t | }||usJ ||ks"J d S r<   rR   geomexpectedr$   r%   r%   r&   test_build_area   s    
r[   c                  C   s   t d } | d u sJ d S r<   )r.   
make_validrL   r%   r%   r&   test_make_valid_none   s    
r]   )rT   rV   r(   rV   rT   )rV   r(   )rT   rV   )rT   rW   r    r   r   r    rT   )rV   rW   r^   rV   )rT   r_   rV   rT   c                 C   s,   t | }||usJ t ||ks(J d S r<   )r.   r\   	normalizerX   r%   r%   r&   test_make_valid   s    
ra   )rT   rW   r_   rT   )rV   rT   r_   rV   c                 C   s,   t | }tt |t |ks(J d S r<   )r.   r\   rN   allr`   rX   r%   r%   r&   test_make_valid_1d   s    
rc   )rV   rT   c                 C   s   t | }||ksJ d S r<   )r.   r`   rX   r%   r%   r&   test_normalize   s    
rd   c                  C   sL   t tjdk  ttd} W d    n1 s00    Y  t| sHJ d S )Nr,          @)r   r.   r1   r/   r   Zis_emptyrL   r%   r%   r&   test_offset_curve_empty   s    *rf   c                  C   sH   t ttgddg} | d t tdks,J | d t tdksDJ d S )N       g      r   r   r.   r/   r   resultr%   r%   r&    test_offset_curve_distance_array  s    rk   c                  C   s0   t jtddddd} t td}| |ks,J d S )Nrg   r    Zmitrere   )	quad_segsrJ   mitre_limitrh   )result1result2r%   r%   r&   test_offset_curve_kwargs  s
    
rp   c                  C   s   d} t jt| d. tjttgdtddgd W d    n1 sF0    Y  t jt| d( tjttgdddgd	 W d    n1 s0    Y  t jt| d( tjttgdd
dgd W d    n1 s0    Y  d S )Nonly accepts scalar valuesr)   r   rQ   	   )rl   roundZbevelrI   g      @g      @)rm   )r2   r3   	TypeErrorr.   r/   r   rN   arraymsgr%   r%   r&   #test_offset_curve_non_scalar_kwargs  s    <$rx   c                   C   sB   t jtdd  tjtddd W d    n1 s40    Y  d S )NrC   r)   r7   rD   rI   )r2   r3   rF   r.   r/   r   r%   r%   r%   r&   $test_offset_curve_join_style_invalid%  s    ry   )rT   rT   r   r   rT   rz   )rT   r(   r(   r   r   rT   )rT   r(   r{   rT   )rT   rT   rz   rV   rz   rT   )rT   rz   rV   rz   rT   )rT   
   r   r}   r}   r   r}   rT   )rW   rW   r       r   r   r   r    rW   )rW   r   r   r   rW   )rT   rT   rz   rV   r   r   rT   )rW   rW   r    r   rU   r   r    rW   rT   rz   rV   r   rT   )rW   r   rU   r   rW   c                 C   s   t t| d| d S )Nr   )r   r.   remove_repeated_pointsrY   rZ   r%   r%   r&   test_remove_repeated_points*  s    1r   r,   zGEOS < 3.12zgeom, tolerancer    c                 C   s@   t jtjdd t| | W d    n1 s20    Y  d S )NzInvalid number of pointsr)   )r2   r3   r.   r   r   rY   r9   r%   r%   r&   *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s0J tg d} tddg}t d | gd}|d d u shJ t|d | d S )Nr   )rT   rT   rV   rT   rV   r   )r.   r   tolistr   r   r   rZ   rj   r%   r%   r&    test_remove_repeated_points_nonei  s    r   )Not a geometryr   rV   c                 C   s>   t jtdd t| | W d    n1 s00    Y  d S Nz)One of the arguments is of incorrect typer)   )r2   r3   rt   r.   r   r   r%   r%   r&   (test_remove_repeated_points_invalid_typeu  s    r   )r      r   z
GEOS < 3.7r(   )rT   r{   r(   rT   rT   r   rV   rz   rT   )rT   r   r~   r|   rT   )rW   r   r   r   rW   rU   r   )r   rQ   r   zGEOS < 3.8.1)rW   r   rU   r   rW   c                 C   s   t t| | d S r<   )r   r.   reverser   r%   r%   r&   test_reverse|  s    8r   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 sbJ t|d | d S )Nr   r   r   r   )r.   r   r   r   r   r   r%   r%   r&   test_reverse_none  s    r   rY   r   c                 C   s<   t jtdd t|  W d    n1 s.0    Y  d S r   )r2   r3   rt   r.   r   )rY   r%   r%   r&   test_reverse_invalid_type  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   rX   r%   r%   r&   test_clip_by_rect  s    r   zgeom, rect, expected)rT   )r      r   r   )r   r   rT   )r~   r   r}   r   r   r}   r   r~   )r}   r}   r   r   )r~   r   r   r   r~   )rV   )r   r   r   )r   r   rV   )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 r<   r   )rY   rectrZ   r$   r%   r%   r&   test_clip_by_rect_polygon  s    -r   c                 C   sF   t | | gdddd}|jdks$J |d d u sBt|d tsBJ d S )Nr+   r7   r   r   )r.   r   r!   r"   r   rO   r%   r%   r&   test_clip_by_rect_array  s    r   c                  C   s"   t d dddd} | d u sJ d S Nr   r   )r.   r   rL   r%   r%   r&   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   )rY   r$   r%   r%   r&   test_clip_by_rect_empty  s    r   c                  C   sV   d} t jt| d0 tttgdddtddg W d    n1 sH0    Y  d S )Nrq   r)   r   r   )r2   r3   rt   r.   r   r   rN   ru   rv   r%   r%   r&   #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sfJ ttg d	tg d
g}||ksJ d S )NrT   rV   r   rz   r      r   r   r   rT   rV   rz   rT   rV   rT   r   rV   )r   r
   r.   
polygonizer0   r   r   )linesrj   rZ   r%   r%   r&   test_polygonize,  s"    









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|tjsTJ ||ks`J tt| g}t|tj	sJ |j
dksJ |d |ksJ t| | g}|j
dksJ t|}t|tj	sJ |j
dksJ |d |ksJ |d	 |ksJ t| | g| | g| | gg}|j
d
ks2J t|}t|tj	sNJ |j
dks^J | D ]}||ksfJ qfd S )NrT   rV   r   r   r   r   r   r   r   r   r    r   r   )r   r   r   r.   r   rN   ru   r"   r   ndarrayr!   flattenr   rZ   rj   arrresr%   r%   r&   test_polygonize_arrayB  s4    




r   z1.15z8axis keyword for generalized ufunc introduced in np 1.15c                  C   sl   t ddgt ddgt ddgg} t| | g}tj|dd}|jdksLJ tj|dd}|jdkshJ d S )	NrT   rV   r   r   Zaxisr   r   r   )r   rN   ru   r.   r   r!   r   r   rj   r%   r%   r&   test_polygonize_array_axisc  s    


r   c                  C   s    t d d g} | t ksJ d S r<   )r.   r   r   ri   r%   r%   r&   test_polygonize_missingt  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srJ td
d |D sJ |\}}}}ttg dtg dg}||ksJ |t ksJ tt ddgt ddgg}||ksJ |t ksJ d S )NrT   rV   r   rz   r   r   )d   r   r   r   c                 s   s   | ]}t |d kV  qdS )r   N)r.   r0   .0rY   r%   r%   r&   	<genexpr>      z'test_polygonize_full.<locals>.<genexpr>r   r   )r   r
   r.   polygonize_fulllenrb   r   r   )r   rj   ZpolygonscutsZdanglesrD   Zexpected_polygonsZexpected_danglesr%   r%   r&   test_polygonize_fullz  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sTJ tdd |D sjJ |d |kszJ td	d |d
d  D sJ tt| g}t|dksJ tdd |D sJ tdd |D sJ |d d |ksJ tdd |d
d  D sJ t| | g}|j	dks8J t|}t|dksTJ tdd |D slJ 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 s0J tdd |D sHJ |d 
 D ]}||ksTJ qT|d
d  D ]&}|
 D ]}|t ksJ qqvd S )NrT   rV   r   r   r   c                 s   s   | ]}t |tjV  qd S r<   )r"   r.   r   r   r%   r%   r&   r     r   z-test_polygonize_full_array.<locals>.<genexpr>r   c                 s   s   | ]}|t  kV  qd S r<   r   r   r%   r%   r&   r     r   r   c                 s   s   | ]}t |tjV  qd S r<   r"   rN   r   r   r%   r%   r&   r     r   c                 s   s   | ]}|j d kV  qdS )r   Nr!   r   r%   r%   r&   r     r   c                 s   s   | ]}|d  t  kV  qdS )r   Nr   r   r%   r%   r&   r     r   r   c                 s   s   | ]}t |tjV  qd S r<   r   r   r   r%   r%   r&   r     r   c                 s   s   | ]}|j d kV  qdS r   Nr   r   r%   r%   r&   r     r   c                 s   s"   | ]}|D ]}|t  kV  q
qd S r<   r   )r   rY   gr%   r%   r&   r     r   r   c                 s   s   | ]}t |tjV  qd S r<   r   r   r%   r%   r&   r     r   c                 s   s   | ]}|j d kV  qdS )r   Nr   r   r%   r%   r&   r     r   )r   r   r   r.   r   rN   ru   r   rb   r!   r   r   r%   r%   r&   test_polygonize_full_array  sH    


 
 
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sNJ tdd |D sdJ tj|d	d}t|dksJ td
d |D sJ d S )NrT   rV   r   r   r   r   c                 s   s   | ]}|j d kV  qdS r   r   r   r%   r%   r&   r     r   z2test_polygonize_full_array_axis.<locals>.<genexpr>r   c                 s   s   | ]}|j d kV  qdS )r   Nr   r   r%   r%   r&   r     r   )r   rN   ru   r.   r   r   rb   r   r%   r%   r&   test_polygonize_full_array_axis  s    


r   c                  C   s8   t d d g} t| dksJ tdd | D s4J d S )Nr   c                 s   s   | ]}|t  kV  qd S r<   r   r   r%   r%   r&   r     r   z/test_polygonize_full_missing.<locals>.<genexpr>)r.   r   r   rb   ri   r%   r%   r&   test_polygonize_full_missing  s    r   )r   r}   r   zGEOS < 3.10max_segment_lengthc                 C   s@   t jtdd tj| |d W d    n1 s20    Y  d S )NZIllegalArgumentExceptionr)   r   )r2   r3   r   r.   
segmentize)r   r   r%   r%   r&   *test_segmentize_invalid_max_segment_length  s    r   c                 C   s    t j| tjd}|d u sJ d S )Nr   )r.   r   rN   r@   rO   r%   r%   r&   &test_segmentize_max_segment_length_nan  s    r   c                 C   s   t j| dd}t||  d S Nr   r   r.   r   r   rO   r%   r%   r&   test_segmentize_empty  s    r   c                 C   s   t j| dd}t||  d S r   r   rO   r%   r%   r&   test_segmentize_no_change  s    r   c                   C   s   t jd ddd u sJ d S r   )r.   r   r%   r%   r%   r&   test_segmentize_none  s    r   zgeometry,tolerance, expectedr   r   r   )rT   r   r   r   )	rT   r   r   r|   r   r~   r   r}   r   r   rT   r_   g      ?)rT   r   r_   c                 C   s   t | |}t|| d S r<   r   )r   r9   rZ   r$   r%   r%   r&   test_segmentize  s    Kr   c                 C   sT   t | | g}|jdksJ |d d u s:t|d ts:J t d }|d u sPJ d S r   )r.   minimum_bounding_circler!   r"   r   rO   r%   r%   r&   &test_minimum_bounding_circle_all_typesS  s
    
r   zgeometry, expected)r   r   r   r   r   r   r}   rW   r   r   c                 C   s   t | }t|| d S r<   )r.   r   r   r   rZ   r$   r%   r%   r&   test_minimum_bounding_circle^  s    
r   )r   r   r   z
GEOS < 3.6c                 C   sT   t | | g}|jdksJ |d d u s:t|d ts:J t d }|d u sPJ d S r   )r.   oriented_enveloper!   r"   r   rO   r%   r%   r&    test_oriented_envelope_all_types}  s
    
r   )rT   r|   r~   )rT   )r   r   r   r~   rT   )rV   )r   r   r~   )rV   )r   r   )r-   rQ   r~   rV   )rV   r   r   r   rV   )r   r   r   rV   r   )r}   r   c                 C   s"   t | }t || sJ d S r<   )r.   r   equalsrb   r   r%   r%   r&   test_oriented_envelope  s    
r   c                 C   s"   t | }t || sJ d S r<   )r.   Zminimum_rotated_rectangler   rb   r   r%   r%   r&   test_minimum_rotated_rectangle  s    
r   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sZJ tj|ddd}t|jd	ks|J tj|dd}tj|d	d}t	|t	|k sJ d S )
Nr}   r   r   g      ?)ratior   T)r   Zallow_holesr   )
r
   r   rG   ZexteriorZcoordsr.   concave_hullr   Z	interiorsZget_num_coordinates)pmprn   ro   Zresult3Zresult4r%   r%   r&   test_concave_hull_kwargs  s    
0r   )gnumpyrN   r2   r.   r   r   r   r   r   r   r   r	   r
   r   Zshapely.testingr   commonr   r   r   r   r   r   r   r   r   r   boundaryZcentroidZconvex_hullparamr   markZskipifr1   envelopeZextract_unique_pointsnoder`   Zpoint_on_surfaceZCONSTRUCTIVE_NO_ARGSrG   r/   Zdelaunay_trianglessimplifyr4   ZCONSTRUCTIVE_FLOAT_ARGZparametrizer'   r5   r;   r>   r?   rB   rH   rK   rM   rP   rS   r[   r]   ra   rc   rd   rf   rk   rp   rx   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __version__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r%   r%   r%   r&   <module>   sj  00
	












	








	







/










6




,


!
!+




















I	


	















