
    (&h.                        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 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 d Zd Zd Zej                            d	d
dg          ej                            d e             e             e             ej        d           e             e e             edd          g          g          d                         Zej                            d	d
dg          ej                            deeeee ej        eg           ej        eg           ej        eg           ej        eg           ej        eg          g
          d                         Zd Z d Z!d Z"d Z#d Z$ej                            d	d
dg          d             Z%ej                            d	d
dg          d             Z&ej                            d	d
dg          d             Z'd Z(d Z)ej        *                    ej+        dk     d          d             Z,ej        *                    ej+        dk    d          d              Z-d! Z.d" Z/d# Z0d$ Z1ej                            d%dd
g          d&             Z2ej                            d%dd
g          d'             Z3ej                            d%dd
g          d(             Z4dS ))    N)GeometryCollection
LinearRing
LineStringMultiLineStringPoint)UnsupportedGEOSVersionError)assert_geometries_equal)	empty_line_stringempty_pointline_stringlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpolygonc                  0   t          j        t          t          t          gd          } t          | d         t          dd                     t          | d         t          dd                     t          | d         t          dd          d           d S )	Nr         gTR'?gTR'?gMbP?)	toleranceshapelyline_interpolate_pointr   r   r   r	   r   actuals    T/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/test_linear.py&test_line_interpolate_point_geom_arrayr      s    +	k#45r F F1IuQ{{333F1IuQ{{333F1IuVV'<'<NNNNNN    c                  0   t          j        t          t          t          gdd          } t          | d         t          dd                     t          | d         t          dd                     t          | d         t          dd                     d S )Nr   T
normalizedr   r   r   r   s    r   1test_line_interpolate_point_geom_array_normalizedr#      s    +	k#45qT  F F1IuQ{{333F1IuQ{{333F1IuQ{{33333r   c                     t          j        t          g d          } t          | d         t	          dd                     t          | d         t	          dd                     t          | d         t	          dd                     d S )N)皙?      ?gɿr   r%   r   g      ?r   g?)r   r   r   r	   r   r   s    r   'test_line_interpolate_point_float_arrayr'   '   su    +K9I9I9IJJFF1IuS!}}555F1IuQ}}555F1IuQ}}55555r   r"   FTgeomz#MULTILINESTRING (EMPTY, (0 0, 1 1))r   c                 Z    t          t          j        | d|          t                     d S Nr%   r!   )r	   r   r   r   r(   r"   s     r   !test_line_interpolate_point_emptyr,   .   s7     &tSZHHH+    r   c                     t          j        t                    5  t          j        | d|          sJ 	 d d d            d S # 1 swxY w Y   d S r*   )pytestraises	TypeErrorr   r   r+   s     r   (test_line_interpolate_point_invalid_typer1   @   s    " 
y	!	! P P-dCJOOOOOOOP P P P P P P P P P P P P P P P P Ps   AA	Ac                  4    t          j        d d          J d S )Nr%   )r   r    r   r    test_line_interpolate_point_noner4   U   s!    )$44<<<<<r   c                  R    t          j        t          t          j                  J d S N)r   r   r   npnanr3   r   r   test_line_interpolate_point_nanr9   Y   s#    )+rv>>FFFFFr   c                      t          j        d          5  t          j        t          dd           d d d            d S # 1 swxY w Y   d S )NzKpositional argument `normalized` for `line_interpolate_point` is deprecatedmatchr   F)r.   deprecated_callr   r   r   r3   r   r   0test_line_interpolate_point_deprecate_positionalr>   ]   s    		
 
 
 > > 	&{Au===	> > > > > > > > > > > > > > > > > >s   ?AAc                      t          j        dd          } t          j        t          t          g|           }t
          j                            |ddg           d S )Nr   r           g      @)r   pointsline_locate_pointr   r   r7   testingassert_allclose)r   r   s     r   !test_line_locate_point_geom_arrayrE   e   sL    N1a  E&['A5IIFJvSz22222r   c                      t          j        ddgddgg          } t          j        t          |           }t          j                            |ddg           d S )Nr   r   r@   g      ?)r   rA   rB   r   r7   rC   rD   )rA   r   s     r   "test_line_locate_point_geom_array2rG   k   sR    ^aVaV,--F&{F;;FJvSz22222r   c                     t          j        t          j        t          d |                     sJ t          j        t          j        d t
          |                     sJ d S Nr!   )r7   isnanr   rB   r   r   r!   s    r   test_line_locate_point_nonerK   q   sX    8G-k4JWWWXXXXX8G-dEjQQQRRRRRRRr   c                     t          j        t          j        t          t
          |                     sJ t          j        t          j        t          t          |                     sJ d S rI   )r7   rJ   r   rB   r   r   r
   r   r!   s    r   test_line_locate_point_emptyrM   w   su    8!+{zRRR     8!"3UzRRR      r   c                 d   t          j        t          j                  5  t          j        t
          t
          |            d d d            n# 1 swxY w Y   t          j        t          j                  5  t          j        t          t          |            d d d            d S # 1 swxY w Y   d S rI   )r.   r/   r   GEOSExceptionrB   r   r   r   r!   s    r   'test_line_locate_point_invalid_geometryrP      s8   	w,	-	- S S!+{zRRRRS S S S S S S S S S S S S S S 
w,	-	- I I!'5ZHHHHI I I I I I I I I I I I I I I I I Is#   "AAA6"B%%B),B)c                      t          j        d          5  t          j        t          t
          d           d d d            d S # 1 swxY w Y   d S )NzFpositional argument `normalized` for `line_locate_point` is deprecatedr;   F)r.   r=   r   rB   r   r   r3   r   r   +test_line_locate_point_deprecate_positionalrR      s    		V
 
 
 = = 	!+ue<<<= = = = = = = = = = = = = = = = = =s   !AAAc                      t          j        t          t          g          } t	          | d         t                     t	          | d         t          ddg                     d S )Nr   r   r   r   )r   r   )r   
line_merger   r   r	   r   r   s    r   test_line_merge_geom_arrayrV      sS    .? @AAFF1I{333F1Iz662B'C'CDDDDDr   )      r   zGEOS < 3.11.0)reasonc                      t          ddgddgg          } t          j        |           }t          |t	          g d                     t          j        | d          }t          ||            d S )NrT   r   r   rW   r   )r[   rT   r\   Tdirected)r   r   rU   r	   r   )linesresults     r   test_line_merge_directedra      sz    ff-/?@AAE&&FFJ/G/G/G$H$HIII 555FFE*****r   zGEOS >= 3.11.0c                      t          ddgddgg          } t          j        t                    5  t	          j        | d           d d d            d S # 1 swxY w Y   d S )NrT   r[   r\   Tr]   )r   r.   r/   r   r   rU   )r_   s    r   test_line_merge_errorrc      s    ff-/?@AAE	2	3	3 1 15400001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   AAAc                      t          j        g d          } t          j        ddg          }t          j        | |          }t          t          j        |d          t          j        |g                     d S )NrT   r[   r   r   rT   r[   r   )r   linestringsshared_pathsr	   get_geometrymultilinestrings)g1g2actual1s      r   test_shared_paths_linestringrn      s{    		555	6	6B		ff-	.	.B"2r**GWa(('*BB4*H*H    r   c                      t          j        t          d           J t          j        d t                    J t          j        d d           J d S r6   )r   rh   r   r3   r   r   test_shared_paths_nonerp      sS    T22:::k22:::d++33333r   c                      t          j        g d          } t          j        dd          }t          j        t           j                  5  t          j        | |           d d d            d S # 1 swxY w Y   d S )Nre   r   r   )r   rg   rA   r.   r/   rO   rh   )rk   rl   s     r    test_shared_paths_non_linestringrr      s    		555	6	6B	1		B	w,	-	- % %R$$$% % % % % % % % % % % % % % % % % %s   
A--A14A1c                 b    |r,t          j        | d           } t          j        |            | S | S )z"Prepare without modifying in-placec                     | S r6   r3   )xs    r   <lambda>z _prepare_input.<locals>.<lambda>   s     r   )r   	transformprepare)geometryrx   s     r   _prepare_inputrz      s8     $X{{;;!!!r   rx   c                     t          j        g d          }t          j        ddg          }t          j        t          ||           |          }t          j        ddg          }t          j        ||          sJ d S )Nre   )r   rW   r\   rf   )r&   r&   )r   rg   shortest_linerz   equals)rx   rk   rl   r   expecteds        r   test_shortest_liner      s}    		555	6	6B		ff-	.	.B">"g#>#>CCF"FJ#788H>&(+++++++r   c                     t          j        t          t          |           d           J t          j        d t                    J t          j        d d           J d S r6   )r   r|   rz   r   )rx   s    r   test_shortest_line_noner      s]     W!E!EtLLTTT {33;;; t,,44444r   c                    t          t          |           }t          j        |t                    J t          t          |           }t          j        |t                    J t          j        |t                    J d S r6   )rz   r   r   r|   r
   )rx   rk   g1_emptys      r   test_shortest_line_emptyr      st    	W	-	-B %677???/99H ;77??? +<==EEEEEr   )5numpyr7   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'   markparametrizefrom_wktr,   geometrycollectionsr1   r4   r9   r>   rE   rG   rK   rM   rP   rR   rV   skipifgeos_versionra   rc   rn   rp   rr   rz   r   r   r   r3   r   r   <module>r      s         V V V V V V V V V V V V V V 6 6 6 6 6 6 3 3 3 3 3 3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
O O O4 4 46 6 6 t}55


>??JJLL%%1++677
 
 
 
 65 t}55
##UG,,##WI..##%6$788##[M22##]O44 P P  65 P
= = =G G G> > >3 3 33 3 3 t}55S S 65S
 t}55  65 t}55I I 65I= = =E E E G(:5oNN+ + ON+ G(J6?OPP1 1 QP1  4 4 4% % %   T5M22, , 32, T5M225 5 325 T5M22F F 32F F Fr   