
    \i                         S SK rS SKrS SKrS SKJrJrJr  S SKJr  S r	S r
S rS rS rS	 rS
 rS rS rS rS rS r\R*                  R-                  S5      S 5       rS r " S S5      rS rS rS rg)    N)
LinearRing
LineStringPoint)CoordinateSequencec                      [        SS/5      n [        U R                  5      S:X  d   eU R                  S S  SS/:X  d   e[        SS/5      n U R                  S S  SS/:X  d   eg )N      ?       @      @      @   )r   lencoordslines    i/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/geometry/test_linestring.pytest_from_coordinate_sequencer   	   sm    z:./Dt{{q   ;;q>j*5555z:./D;;q>j*5555    c                  r    [        SS/5      n U R                  (       d   eU R                  S S  SS/:X  d   eg )Nr	   r
   r   )r   r         @)r   has_zr   r   s    r   test_from_coordinate_sequence_zr      s8    89D:::;;q>o????r   c                      [        [        SS5      [        SS5      /5      n U R                  S S  SS/:X  d   e[        [        SS5      [        SS5      /5      n U R                  S S  SS/:X  d   eg Nr	   r
   r   r   r   r   r   r   r   r   s    r   test_from_pointsr      sn    uS#c389D;;q>j*5555uS#c389D;;q>j*5555r   c                  v    [        [        SS5      S[        SS5      /5      n U R                  S S  / SQ:X  d   eg )Nr	   r
   r
   r   r   r   )r   r    r   r   r   s    r   test_from_mixr!   "   s6    uS#
E#sODED;;q>AAAAr   c                      [        SS/5      n [        U 5      nUR                  S S  SS/:X  d   eUR                  S:X  d   eg )Nr   r   r   r   r   	geom_type)r   copys     r   test_from_linestringr&   (   sH    z:./DdD;;q>j*5555>>\)))r   c                      / SQn [        U 5      n[        U5      nUR                  S S  U :X  d   eUR                  S:X  d   eg )N)        r)   )r	   r)   r	   r	   r(   r   )r   r   r   r$   )r   ringr%   s      r   test_from_linearringr,   0   sC    =FfDdD;;q>V###>>\)))r   c                      SS/n [        U 5      n[        U5      nUR                  S S  U :X  d   eUR                  S:X  d   eg )Nr   )r   r   g      @r   r#   )r   r   r%   s      r   test_from_linestring_zr.   8   sH    /FfDdD;;q>V###>>\)))r   c                  Z    S S 5       n [        U 5      nUR                  S S  SS/:X  d   eg )Nc              3   $   #    U  H  ov   M     g 7fN ).0coords     r   	<genexpr>&test_from_generator.<locals>.<genexpr>A   s     
76U56s   r   r   r   r   )r   r   )genr   s     r   test_from_generatorr9   @   s1    
76
7Cc?D;;q>j*5555r   c                  R   [        5       n U R                  (       d   e[        U R                  [        5      (       d   eU R                  S S  / :X  d   e[        / 5      n U R                  (       d   e[        U R                  [        5      (       d   eU R                  S S  / :X  d   eg r1   )r   is_empty
isinstancer   r   r   s    r   test_from_emptyr=   F   s    <D===dkk#56666;;q>Rb>D===dkk#56666;;q>Rr   c                  |    [        [        R                  " SS/SS//5      5      n U R                  S S  SS/:X  d   eg r   )r   nparrayr   r   s    r   test_from_numpyrA   R   s=    bhhc
S#J789D;;q>j*5555r   c                  ~    [        / 5      n [        R                  " U R                  5      nUR                  S:X  d   eg )N)r   r   )r   r?   asarrayr   shape)r   las     r   "test_numpy_empty_linestring_coordsrF   X   s/    b>D	DKK	 B88vr   c                  v    [        SS/5      n [        R                  " S[        5      nU /US S & US   U :X  d   eg )Nr(   )r)   r	      r   )r   r?   emptyobject)geomars     r   test_numpy_object_arrayrM   `   s<    z:./D	!V	BFBqEa5D==r   z8ignore:Creating an ndarray from ragged nested sequences:c                     [         R                  " [        R                  5         [	        S/5        S S S 5        [         R                  " [
        [        45         [	        SS/5        S S S 5        [         R                  " [
        [        45         [	        SS/5        S S S 5        Sn [         R                  " [
        U R                  S5      S9   [	        SS	/5        S S S 5        [         R                  " [
        U R                  S
5      S9   [	        SS/5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N)rH   r   )rH   r      )      )rO   rP   rQ   z8The ordinate \(last\) dimension should be 2 or 3, got {}rP   match)rH   r   rO   rP   )rP   rQ         rH   )rH   )rP   )pytestraisesshapelyGEOSExceptionr   
ValueError	TypeErrorformat)msgs    r   test_from_invalid_dimr^   g   s     
w,,	-F8 
. 

I.	/Iv&' 
0 

I.	/FI&' 
0 FC	zA	7L,/0 
8 
zA	7D$<  
8	7 
.	- 
0	/ 
0	/ 
8	7 
8	7s;   D%D6EEE)%
D36
E
E
E&)
E7c                      SS//n [         R                  " [        R                  5         [	        U 5      nUR
                    SSS5        g! , (       d  f       g= f)zTest for issue #486gS^g8tB@N)rV   rW   rX   rY   r   r$   )r   lss     r   test_from_single_coordinatera      s?     "234F	w,,	-
 
.	-	-s   A
Ac                   ,    \ rS rSrS rS rS rS rSrg)TestLineString   c                    [        SS/5      n[        UR                  5      S:X  d   eUR                  S S  SS/:X  d   eUR                  S:X  d   e[	        UR                  5      S:X  d   eUR                  S   S:X  d   eUR                  S   S:X  d   e[
        R                  " [        5         UR                  S     S S S 5        UR                  SSS	.:X  d   eg ! , (       d  f       N$= f)
Nr   r   r   )r	   r
   r   r   r7   r   rH   r   )typecoordinates)	r   r   r   boundstuplerV   rW   
IndexError__geo_interface__)selfr   s     r   test_linestringTestLineString.test_linestring   s    :z234;;1$$${{1~*j!9999 {{2222 T[[!%===={{1~+++{{1~+++]]:&KKN ' %% 3*
 
 	
 
	 '&s   1C
C-c                 `    [        5       nUR                  S:X  d   eUR                  S:X  d   eg )NzLINESTRING EMPTYr)   )r   wktlength)rl   l_nulls     r   test_linestring_empty$TestLineString.test_linestring_empty   s.    zz////}}###r   c                 X   Sn[        U5      n[        U5      nUR                  U5      SL d   eUR                  U5      SL d   eX#:H  SL d   eX2:H  SL d   e[        U5      n[        U5      nUR                  U5      SL d   eUR                  U5      SL d   eX$:H  SL d   eX5:H  SL d   eg)zb
Test equals predicate functions correctly regardless of the order
of the inputs. See issue #317.
)r   r   )rH   r   )rH   rH   rv   FTN)r   r   __eq__)rl   r   r`   lrls_clonelr_clones         r   test_equals_argument_order)TestLineString.test_equals_argument_order   s    
 2yy}%%%yy}%%%U"""U"""f%f%yy"d***yy"d***4'''4'''r   c                     SSK Jn  [        SS/5      n[        R                  " SS/SS//5      n[        R
                  " UR                  5      nU" XC5        g )	Nr   )assert_array_equalr   r   r	   r
   r   r   )numpy.testingr~   r   r?   r@   rC   r   )rl   r~   r   expectedrE   s        r   test_numpy_linestring_coords+TestLineString.test_numpy_linestring_coords   sK    4:z2388c3Z#s45 ZZ$2(r   r2   N)	__name__
__module____qualname____firstlineno__rm   rs   r{   r   __static_attributes__r2   r   r   rc   rc      s    
,$(,)r   rc   c                     [        SS/5      n [        R                  " [        5         SS/U l        S S S 5        [        R                  " [
        5         SU R                  S'   S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nr   r   )      r   r*   r   )r   rV   rW   AttributeErrorr   r[   r   s    r   test_linestring_immutabler      sc    z:./D	~	&#Z0 
' 
y	!%A 
"	! 
'	& 
"	!s   
A-A>-
A;>
Bc                  
   [        SS/5      n [        R                  " U 5      nUR                  S:X  d   eUR                  S:X  d   eUR
                  [        R
                  " S5      :X  d   eUR                  5       U :X  d   eg )Nr   r   r   rH   rJ   )r   r?   r@   ndimsizedtypeitem)r   arrs     r   test_linestring_array_coercionr      sm    z:./D
((4.C88q==88q==99****88:r   c                     [        SS/5      n [        R                  " SS9   U R                  SS5        S S S 5        [        R                  " SS9   U R                  SSS5        S S S 5        [        R                  " S	S9   U R                  SSSS
5        S S S 5        g ! , (       d  f       Np= f! , (       d  f       NQ= f! , (       d  f       g = f)Nr   r   z@positional argument `quad_segs` for `offset_curve` is deprecatedrR   r	      zSpositional arguments `quad_segs` and `join_style` for `offset_curve` are deprecatedroundzcpositional arguments `quad_segs`, `join_style`, and `mitre_limit` for `offset_curve` are deprecatedr   )r   rV   deprecated_calloffset_curve)line_strings    r   &test_offset_curve_deprecate_positionalr      s    j*56K			P
 	  a(
 
		,
 	  a1	

 
		,
 	  a#6	
 

 

 


 
s#   BB0C
B-0
B>
C)numpyr?   rV   rX   r   r   r   shapely.coordsr   r   r   r   r!   r&   r,   r.   r9   r=   rA   rF   rM   markfilterwarningsr^   ra   rc   r   r   r   r2   r   r   <module>r      s       1 1 -6@6B***6	 6 VW! X!.;) ;)|&7r   