o
    hH                     @   sn
  d dl Zd dlZd dlmZ d dlZd dlmZmZ d dlm	Z	 d dl
mZmZmZmZmZ ejZejZejZejdejejejgejdeded	ed
dejddedgdd Zejdejejejejgejdej ddgej!dde eggdgdd Z"ejdejejejgejdegdd dgdggdd Z#ejdedZ$de$j%_&ejdejejejgejdg dede$ejdedejd edejdedgd!d" Z'd#d$ Z(d%d& Z)d'd( Z*ejd)d dgeeedgfd dgedeegfddgddeegfgd*d+ Z+ejd,ddgddggd d geddgddgggfg d-g d.gd d geg d-g d.ggfddgddgddgddggg d/eddgddggeddgddgggfgd0d1 Z,d2d3 Z-ejd)g d4eeedgfg d5edeegfg d6ddeegfgd7d8 Z.ejdddgde/d9gddgggd:d; Z0ejd,ddgde/d9gddggg d<eddgddgggfgd=d> Z1d?d@ Z2dAdB Z3dCdD Z4ejdddgddgddgddggddgddgddgggdEdF Z5ejdddgddggdej6gddgddgddgggdGdH Z7dIdJ Z8ejd)g dKeddegfg dLdedegfg dMdddegfgdNdO Z9ejdPddgejdQdRdSgdTdU Z:ejdddgddgde/d9gddgggdVdW Z;ejdddgddgddgde/d9gddggddgddgde/d9gddggddgddgddgddgde/d9ggde/d9gddgddgddgddggddgddgddgde/d9ggde/d9gddgddgddgggdXdY Z<dZd[ Z=d\d] Z>d^d_ Z?eg d`Z@eg daZAeBeZCe ZDejBee@gdbZEejBeeAgdbZFejBee@eAgdbZGejdceegd dgeCeCgfdegd dgeDeCgfdeddgg d/eCeDgfee@egg ddeEeCgfeee@gg deeCeEgfdeee@gg d/eCeEgfedee@gg d/eCeEgfedee@gg dfeCeEgfeede@gg dfeCeEgfeee@dgg dfeCeEgfee@eAegg dgeGeCgfee@eeAgg d/eEeFgfeee@eAgg dfeCeGgfee@deAegg dheGeCgfee@deeAgg dieEeFgfee@edeAgg djeEeFgfgdkdl ZHejd)d dgeCeCedgfd dgeCdeeCgfddgddeCeCgfgdmdn ZIejdejBejejejejgejde egdd dgdggdodp ZJejdqeegd d geeeggfeegd dgeegeeggfedgd d geeggfedgd dgeegeg gfdeddgg d/eegeg gfedegg d<eeeggfgdrds ZKdtdu ZLejd)d d geeegddegfddgdddeeeggfgdvdw ZMdxdy ZNdzd{ ZOd|d} ZPd~d ZQejdegejBfegejBfegejBfegejfegejfegejfegejfegejfegejfg	dd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdS )    N)assert_array_equal)
LinearRingPolygon)assert_geometries_equal)empty_pointline_stringlinear_ringpointpolygonfunccoordinates)   )r         )r   r   )r   r   foodtypec                 C   D   t ttf | |ddgd W d    d S 1 sw   Y  d S Nr   r   indicespytestraises	TypeError
ValueError)r   r    r   ^/var/www/html/scripts/venv/lib/python3.10/site-packages/shapely/tests/test_creation_indices.pytest_invalid_coordinates   s   "r   
geometriesr   r   helloc                 C   r   r   r   )r   r   r   r   r   test_invalid_geometries!   s   "r!   r   z helloc                 C   sF   t ttf | ddgg|d W d    d S 1 sw   Y  d S )N皙?333333?r   r   r   r   r   r   r   test_invalid_indices_simple2   s   "r&      Fout)NNNr'   r   r   c                 C   s   | t ju rddgddgg}ddg}n&| t ju r0ddgddgddgddgdd	gd	d	gg}g d
}nttg}ddg}tttf | |||d W d    d S 1 sRw   Y  d S )Nr#   r$   皙?g      ?r   r   r   r'   r   )r   r   r   r   r   r   r   r(   )	shapelypointslinestringsr	   r   r   r   r   r   )r   r(   xr   r   r   r   test_invalid_out?   s   


(
"r0   c                   C   sP   t tj tjddgddggddgd W d    d S 1 s!w   Y  d S Nr   r   r   r   )r   r   r,   GEOSExceptionr-   r   r   r   r   test_points_invalid[       "r3   c                  C   sF   t jtjddgddggtdtjddgtjdd} t| ttg d S )Nr   r'   r   r   r   r   )r,   r-   nparrayfloatintpr   r	   actualr   r   r   test_pointsa   s
   r;   c                   C   sd   t t# tjtjddgddggtdtjddgtjdd W d    d S 1 s+w   Y  d S )Nr   r'   r   r   r   )	r   r   r   r,   r-   r5   r6   r7   r8   r   r   r   r   test_points_no_index_raisesi   s   "r<   zindices,expectedc                 C   sL   t jdtd}t|d< tjddgddgg| |d}t|| ||u s$J d S )Nr   r   r   r'   r+   )r5   emptyobjectr   r,   r-   r   r   expectedr(   r:   r   r   r   test_points_outq   s   	
rA   zcoordinates,indices,expected)r   r   r   )r   r   r   r   r   r   r   c                 C   2   t jtj| tdtj|tjdd}t|| d S Nr   r   r,   r.   r5   r6   r7   r8   r   r   r   r@   r:   r   r   r   test_linestrings   s   rG   c                   C   sP   t tj tjddgddggddgd W d    d S 1 s!w   Y  d S r1   )r   r   r,   r2   r.   r   r   r   r   test_linestrings_invalid   r4   rH   )r   r   r   r   r   r   )r   r   r   r'   r'   r'   )r   r   r   r'   r'   r'   c                 C   D   t jdtd}t|d< tjg d| |d}t|| ||u s J d S )Nr   r   r   )r   r   r   r   r   r   rJ   rK   rL   r+   )r5   r=   r>   r   r,   r.   r   r?   r   r   r   test_linestrings_out      	
rM   nanc                 C   <   t jtj| tdtjt| tjdd}tt 	||  d S rD   )
r,   r.   r5   r6   r7   zeroslenr8   r   get_coordinatesr   r:   r   r   r   test_linestrings_allow_nan   
   rU   r   r   r   c                 C   s4   t jtj| tdtj|tjddd}t|| d S )Nr   skipr   
handle_nanrE   rF   r   r   r    test_linestrings_handle_nan_skip   s   r[   c                   C   sV   t tj tjddgdtdggddgdd W d    d S 1 s$w   Y  d S )Nr   r   rO   r   rX   rY   )r   r   r,   r2   r.   r7   r   r   r   r   (test_linestrings_handle_nan_skip_invalid   s
   "r\   c                  C   s2   t jtjdtjdg ddd} | d jsJ d S )Nr)   
fill_valuerW   rX   rY   r   )r,   r.   r5   fullrO   is_emptyr9   r   r   r   )test_linestrings_handle_nan_skip_only_nan   s   ra   c                   C   s^   t jtdd tjddgtddgddggg ddd W d    d S 1 s(w   Y  d S )	N.*NaN.*matchr   rO   r   rW   errorrY   )r   r   r   r,   r.   r7   r   r   r   r   !test_linestrings_handle_nan_error   s
    "rf   c                 C   s>   t jtj| tjdtjt| tjdd}t|t |  d S rD   	r,   linearringsr5   r6   float64rQ   rR   r8   r   rT   r   r   r   test_linearrings   s
   rj   c                 C   sN   t tjtf tj| tt| d W d    d S 1 s w   Y  d S Nr   )	r   r   r,   r2   r   rh   r5   rQ   rR   )r   r   r   r   test_linearrings_invalid   s   "rl   c                  C   s.   t jg dtdd} t| tg d d S )N)rJ   rJ   rJ   r'   r   )rJ   rJ   rJ   rJ   )r,   rh   r5   rQ   r   r   r9   r   r   r   *test_linearrings_unclosed_all_coords_equal   s   rm   r   r   r   r   r   )r   r   r   r   r   )r'   r'   r'   r'   r'   c                 C   rI   )Nr   r   r'   )rJ   rK   rL   )r   r   rJ   r+   )r5   r=   r>   r   r,   rh   r   r?   r   r   r   test_linearrings_out  rN   ro   dimorderCFc           	      C   s   t jdd| }t j|d| |d}t tdd}tj||d}t 	||d d dgd d f f}t j|d| |d}t tdd}tj||d}t
|| d S )	N
   r   (   )rq   r   r   2      )r5   randomrandnasarrayreshaperepeatranger,   rh   hstackr   )	rp   rq   coordscoords1indices1result1coords2indices2result2r   r   r   test_linearrings_buffer  s   "r   c                 C   rP   rD   )
r,   rh   r5   r6   r7   rQ   rR   r8   r   rS   rT   r   r   r   test_linearrings_allow_nan%  rV   r   c                 C   sD   t jtj| tjdtjt| tjddd}t|t j| dd d S )Nr   rX   rY   )rZ   rg   rT   r   r   r    test_linearrings_handle_nan_skip3  s   r   c                   C   sZ   t t tjddgtddgddggg ddd W d    d S 1 s&w   Y  d S )Nr   rO   rW   rX   rY   r   r   r   r,   rh   r7   r   r   r   r   (test_linearrings_handle_nan_skip_invalidG  s
    "r   c                  C   s4   t jtjdtjddgd dd} | d jsJ d S )N)rw   r   r]   r   rw   rX   rY   )r,   rh   r5   r_   rO   r`   r9   r   r   r   )test_linearrings_handle_nan_skip_only_nanO  s   r   c                   C   sj   t jtdd$ tjddgddgddgdtdgddggg ddd W d    d S 1 s.w   Y  d S )	Nrb   rc   r   r   rO   rn   re   rY   r   r   r   r   r   !test_linearrings_handle_nan_errorW  s   $"r   ))r#   r#   )r#   r*   )r*   r*   ))333333?r   )r   皙?)r   r   )holeszrings,indices,expected)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   c                 C   rC   rD   )r,   polygonsr5   r6   r>   r8   r   )ringsr   r@   r:   r   r   r   test_polygonsi  s   .r   c                 C   sD   t jdtd}t|d< tjttg| |d}t|| ||u s J d S )Nr   r   r   r+   )r5   r=   r>   r   r,   r   r   r   r?   r   r   r   test_polygons_out  s
   	
r   c                 C   sB   t ttf | tg|d W d    d S 1 sw   Y  d S rk   )r   r   r   r   r	   r%   r   r   r    test_invalid_indices_collections  s   "r   zgeometries,indices,expectedc                 C   s&   t jtj| td|d}t|| d S rD   )r,   geometrycollectionsr5   r6   r>   r   )r   r   r@   r:   r   r   r   test_geometrycollections  s   r   c                   C   sP   t t tjtjttgt	dddgd W d    d S 1 s!w   Y  d S )Nr   r   r   r   )
r   r   r   r,   r   r5   r6   r	   r   r>   r   r   r   r   (test_geometrycollections_no_index_raises  s
   "r   c                 C   sD   t jdtd}t|d< tjttg| |d}t|| ||u s J d S )Nr   r   r'   r+   )	r5   r=   r>   r   r,   r   r	   r   r   r?   r   r   r   test_geometrycollections_out  s
   
r   c                  C   <   t jtjtgtdtjdtjdd} t| t tg d S Nr   r   r   )	r,   multipointsr5   r6   r	   r>   rQ   r8   r   r9   r   r   r   test_multipoints     r   c                  C   r   r   )	r,   multilinestringsr5   r6   r   r>   rQ   r8   r   r9   r   r   r   test_multilinestrings  r   r   c                  C   r   r   )	r,   r   r5   r6   r   r>   rQ   r8   r   r9   r   r   r   test_multilinearrings  r   r   c                  C   r   r   )	r,   multipolygonsr5   r6   r
   r>   rQ   r8   r   r9   r   r   r   test_multipolygons  r   r   zgeometries,funcc                 C   s>   t t || dgd W d    d S 1 sw   Y  d S )Nr   r   )r   r   r   )r   r   r   r   r   test_incompatible_types  s   "r   c                   C   sR   t jdd tddgddggd d ddg W d    d S 1 s"w   Y  d S )Nz8positional argument `indices` for `points` is deprecatedrc   r   r   r   r'   )r   deprecated_callr,   r-   r   r   r   r    test_points_deprecate_positional  s
   ""r   c                   C   s^   t jdd tddgddgddgd	d
ggd d g d W d    d S 1 s(w   Y  d S )Nz=positional argument `indices` for `linestrings` is deprecatedrc   r   r   r   r'   r   rw         rB   )r   r   r,   r.   r   r   r   r   %test_linestrings_deprecate_positional  s
   ."r   c                   C   sX   t jdd tddgddgddggd d g d W d    d S 1 s%w   Y  d S )Nz=positional argument `indices` for `linearrings` is deprecatedrc   r   r   rW   )r   r   r,   rh   r   r   r   r   %test_linearrings_deprecate_positional"  s
   ("r   c                   C   sH   t jdd tttgd ddg W d    d S 1 sw   Y  d S )Nz:positional argument `indices` for `polygons` is deprecatedrc   r   r   )r   r   r,   r   r   r   r   r   r   "test_polygons_deprecate_positional)  s
   "r   c                   C   F   t jdd tttgddg W d    d S 1 sw   Y  d S )Nz=positional argument `indices` for `multipoints` is deprecatedrc   r   r   )r   r   r,   r   r	   r   r   r   r   %test_multipoints_deprecate_positional0  
   "r   c                   C   r   )NzBpositional argument `indices` for `multilinestrings` is deprecatedrc   r   r   )r   r   r,   r   r   r   r   r   r   *test_multilinestrings_deprecate_positional7  r   r   c                   C   r   )Nz?positional argument `indices` for `multipolygons` is deprecatedrc   r   r   )r   r   r,   r   r
   r   r   r   r   'test_multipolygons_deprecate_positional>  r   r   c                   C   sF   t jdd tttgddg W d    d S 1 sw   Y  d S )NzEpositional argument `indices` for `geometrycollections` is deprecatedrc   r   r   )r   r   r,   r   r	   r
   r   r   r   r   -test_geometrycollections_deprecate_positionalE  r   r   )[numpyr5   r   numpy.testingr   r,   r   r   shapely.testingr   shapely.tests.commonr   r   r   r	   r
   r-   pntsr.   lstrsr   	geom_collmarkparametrizerh   r=   r_   r>   r   r   r   r   r6   r8   r!   r&   non_writeableflags	writeabler0   r3   r;   r<   rA   rG   rH   rM   r7   rU   r[   r\   ra   rf   rj   rO   rl   rm   ro   r   r   r   r   r   r   hole_1hole_2r   poly
poly_emptypoly_hole_1poly_hole_2poly_hole_1_2r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   
	&
**&


4
	2



$$$
		




-
"
 "











