
    \i.                     z   S SK rS SKrS SKrS SKJrJrJrJrJr  S SK	J
r
  S SKJr  S SKJrJrJrJrJrJrJrJrJr  S rS rS r\R4                  R7                  S	S
S/5      \R4                  R7                  S\" 5       \" 5       \" 5       \R8                  " S5      \" 5       \" \" 5       \" SS5      /5      /5      S 5       5       r\R4                  R7                  S	S
S/5      \R4                  R7                  S\\\\\\R<                  " \/5      \R<                  " \/5      \R<                  " \/5      \R<                  " \/5      \R<                  " \/5      /
5      S 5       5       rS r S r!S r"S r#S r$\R4                  R7                  S	S
S/5      S 5       r%\R4                  R7                  S	S
S/5      S 5       r&\R4                  R7                  S	S
S/5      S 5       r'S r(S r)\R4                  RU                  \RV                  S:  SS9S 5       r,\R4                  RU                  \RV                  S:  SS9S  5       r-S! r.S" r/S# r0S$ r1\R4                  R7                  S%SS
/5      S& 5       r2\R4                  R7                  S%SS
/5      S' 5       r3\R4                  R7                  S%SS
/5      S( 5       r4g))    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                      [         R                  " [        [        [        /S5      n [        U S   [        SS5      5        [        U S   [        SS5      5        [        U S   [        SS5      SS9  g )	Nr         gTR'?gTR'?gMbP?)	toleranceshapelyline_interpolate_pointr   r   r   r	   r   actuals    \/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_linear.py&test_line_interpolate_point_geom_arrayr      s`    ++	k#45rF F1IuQ{3F1IuQ{3F1IuVV'<N    c                      [         R                  " [        [        [        /SSS9n [        U S   [        SS5      5        [        U S   [        SS5      5        [        U S   [        SS5      5        g )Nr   T
normalizedr   r   r   r   s    r   1test_line_interpolate_point_geom_array_normalizedr#      s_    ++	k#45qTF F1IuQ{3F1IuQ{3F1IuQ{3r   c                      [         R                  " [        / SQ5      n [        U S   [	        SS5      5        [        U S   [	        SS5      5        [        U S   [	        SS5      5        g )N)皙?      ?gɿr   r%   r   g      ?r   g?)r   r   r   r	   r   r   s    r   'test_line_interpolate_point_float_arrayr'   '   sQ    ++K9IJFF1IuS!}5F1IuQ}5F1IuQ}5r   r"   FTgeomz#MULTILINESTRING (EMPTY, (0 0, 1 1))r   c                 L    [        [        R                  " U SUS9[        5        g Nr%   r!   )r	   r   r   r   r(   r"   s     r   !test_line_interpolate_point_emptyr,   .   s      &&tSZH+r   c                     [         R                  " [        5         [        R                  " U SUS9(       d   e S S S 5        g ! , (       d  f       g = fr*   )pytestraises	TypeErrorr   r   r+   s     r   (test_line_interpolate_point_invalid_typer1   @   s4    " 
y	!--dCJOOO 
"	!	!s   A
Ac                  8    [         R                  " S S5      b   eg )Nr%   )r   r    r   r    test_line_interpolate_point_noner4   U   s    ))$4<<<r   c                  \    [         R                  " [        [        R                  5      b   eg N)r   r   r   npnanr3   r   r   test_line_interpolate_point_nanr9   Y   s    ))+rvv>FFFr   c                      [         R                  " SS9   [        R                  " [        SS5        S S S 5        g ! , (       d  f       g = f)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>   ]   s9    			
 	&&{Au=	
 
 
s	   ;
A	c                      [         R                  " SS5      n [         R                  " [        [        /U 5      n[
        R                  R                  USS/5        g )Nr   r           g      @)r   pointsline_locate_pointr   r   r7   testingassert_allclose)r   r   s     r   !test_line_locate_point_geom_arrayrE   e   sA    NN1a E&&['A5IFJJvSz2r   c                      [         R                  " SS/SS//5      n [         R                  " [        U 5      n[        R
                  R                  USS/5        g )Nr   r   r@   g      ?)r   rA   rB   r   r7   rC   rD   )rA   r   s     r   "test_line_locate_point_geom_array2rG   k   sG    ^^aVaV,-F&&{F;FJJvSz2r   c                     [         R                  " [        R                  " [        S U S95      (       d   e[         R                  " [        R                  " S [
        U S95      (       d   eg Nr!   )r7   isnanr   rB   r   r   r!   s    r   test_line_locate_point_nonerK   q   sJ    88G--k4JWXXXX88G--dEjQRRRRr   c                     [         R                  " [        R                  " [        [
        U S95      (       d   e[         R                  " [        R                  " [        [        U S95      (       d   eg rI   )r7   rJ   r   rB   r   r   r
   r   r!   s    r   test_line_locate_point_emptyrM   w   s_    88!!+{zR    88!!"3UzR   r   c                 t   [         R                  " [        R                  5         [        R                  " [
        [
        U S9  S S S 5        [         R                  " [        R                  5         [        R                  " [        [        U S9  S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = frI   )r.   r/   r   GEOSExceptionrB   r   r   r   r!   s    r   'test_line_locate_point_invalid_geometryrP      sk    	w,,	-!!+{zR 
. 
w,,	-!!'5ZH 
.	- 
.	- 
.	-s   B0B)
B&)
B7c                      [         R                  " SS9   [        R                  " [        [
        S5        S S S 5        g ! , (       d  f       g = f)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      s7    			V
 	!!+ue<
 
 
s	   !?
Ac                      [         R                  " [        [        /5      n [	        U S   [        5        [	        U S   [        SS/5      5        g )Nr   r   r   r   )r   r   )r   
line_merger   r   r	   r   r   s    r   test_line_merge_geom_arrayrV      s>    .? @AFF1I{3F1Iz662B'CDr   )      r   zGEOS < 3.11.0)reasonc                      [        SS/SS//5      n [        R                  " U 5      n[        U[	        / SQ5      5        [        R                  " U SS9n[        X5        g )NrT   r   r   rW   r   )r[   rT   r\   Tdirected)r   r   rU   r	   r   )linesresults     r   test_line_merge_directedra      sW    ff-/?@AE&FFJ/G$HI 5FF*r   zGEOS >= 3.11.0c                      [        SS/SS//5      n [        R                  " [        5         [        R
                  " U SS9  S S S 5        g ! , (       d  f       g = f)NrT   r[   r\   Tr]   )r   r.   r/   r   r   rU   )r_   s    r   test_line_merge_errorrc      sD    ff-/?@AE	2	3540 
4	3	3s   A
Ac                      [         R                  " / SQ5      n [         R                  " SS/5      n[         R                  " X5      n[        [         R                  " US5      [         R
                  " U/5      5        g )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	6B			ff-	.B""2*GWa('*B*BB4*Hr   c                      [         R                  " [        S 5      b   e[         R                  " S [        5      b   e[         R                  " S S 5      b   eg r6   )r   rh   r   r3   r   r   test_shared_paths_nonerp      sM    T2:::k2:::d+333r   c                  
   [         R                  " / SQ5      n [         R                  " SS5      n[        R                  " [         R
                  5         [         R                  " X5        S S S 5        g ! , (       d  f       g = f)Nre   r   r   )r   rg   rA   r.   r/   rO   rh   )rk   rl   s     r    test_shared_paths_non_linestringrr      sO    			5	6B	1	B	w,,	-R$ 
.	-	-s   A44
Bc                 t    U(       a0  [         R                  " U S 5      n [         R                  " U 5        U $ U $ )z"Prepare without modifying in-placec                     U $ r6   r3   )xs    r   <lambda> _prepare_input.<locals>.<lambda>   s    r   )r   	transformprepare)geometryry   s     r   _prepare_inputr{      s-    $$X{;!r   ry   c                    [         R                  " / SQ5      n[         R                  " SS/5      n[         R                  " [        X5      U5      n[         R                  " SS/5      n[         R                  " X45      (       d   eg )Nre   )r   rW   r\   rf   )r&   r&   )r   rg   shortest_liner{   equals)ry   rk   rl   r   expecteds        r   test_shortest_liner      si    			5	6B			ff-	.B"">"#>CF""FJ#78H>>&++++r   c                     [         R                  " [        [        U 5      S 5      b   e[         R                  " S [        5      b   e[         R                  " S S 5      b   eg r6   )r   r}   r{   r   )ry   s    r   test_shortest_line_noner      sT      W!EtLTTT  {3;;;  t,444r   c                     [        [        U 5      n[        R                  " U[        5      b   e[        [        U 5      n[        R                  " U[        5      b   e[        R                  " U[        5      b   eg r6   )r{   r   r   r}   r
   )ry   rk   g1_emptys      r   test_shortest_line_emptyr      sh    	W	-B  %67???/9H  ;7???  +<=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   r{   r   r   r   r3   r   r   <module>r      s      V V 6 3
 
 
O46 t}5
>?JL%1+67

 6 t}5
##UG,##WI.##%6$78##[M2##]O4P 6 P
=G>33 t}5S 6S
 t}5 6 t}5I 6I=E G((:5oN+ O+ G((J6?OP1 Q14% T5M2, 3, T5M25 35 T5M2F 3Fr   