
    \iKR                        S SK rS SKrS SKJr  S SKrS SKJrJr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JrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,  \%\\)\\\!4r-\'\\+\\\#4r.\&\\*\\\"4r/\(\\,\ \\$4r0\-\.-   r1\Rd                  S:  a  \1\/-   \0-   r1\\4r3\Rh                  Rk                  S\-\.-   5      S 5       r6\Rh                  Rk                  S	/ S
Q5      \Rh                  Rk                  S/ S
Q5      \Rh                  Rk                  S\15      S 5       5       5       r7S r8\Rh                  Rs                  \Rd                  S:  SS9S 5       r:\Rh                  Rk                  S\-5      S 5       r;\Rh                  Rk                  S\35      S 5       r<S r=S r>S r?S r@S rAS rBS rCS rDS rES rFS rGS rHS rIS  rJg)!    N)assert_allclose)MultiLineString
MultiPointMultiPolygon)assert_geometries_equal)!empty_line_stringempty_line_string_mempty_line_string_zempty_line_string_zmempty_multi_polygon_mempty_multi_polygon_zempty_multi_polygon_zmgeometry_collectionline_stringline_string_mline_string_zline_string_zmlinear_ringmulti_line_stringmulti_line_string_mmulti_line_string_zmulti_line_string_zmmulti_pointmulti_point_mmulti_point_zmulti_point_zmmulti_polygonmulti_polygon_mmulti_polygon_zmulti_polygon_zmpointpoint_mpoint_zpoint_zmpolygon	polygon_m	polygon_z
polygon_zm      r   geomc                 n    [         R                  " [         R                  " X /5      6 n[        XU /5        g N)shapelyfrom_ragged_arrayto_ragged_arrayr   )r,   actuals     b/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_ragged_array.pytest_roundtripr4   Z   s+    &&(?(?(MNFF4L1    	include_m)NTF	include_zc                    [         R                  " X /XS9u  p4n[        R                  " [        R                  " U5      SS9R                  5       nSS/nU R                  nU(       d
  Uc  U(       a  UR                  U(       + 5        [         R                  S:  a  U R                  nOSnU(       d
  Uc  U(       a  UR                  U(       + 5        XV:X  d   eg )N)r7   r6   r   )axisFr)   )
r/   r1   npallisnantolisthas_zappendgeos_versionhas_m)	r,   r7   r6   _coordsnan_dimsexpectedr>   rA   s	            r3   test_to_ragged_arrayrF   `   s     **		LAq vvbhhv&Q/668Hu~HJJEY&5E	"z)

Y&5E	"r5   c                     [         R                  " [        [        /5      u  pn UR                  S   S:X  d   e[         R                  " [
        /5      u  pn UR                  S   S:X  d   e[         R                  " [        /5      u  pn UR                  S   S:X  d   e[         R                  " [        /5      u  pn UR                  S   S:X  d   eg )N   r*      )r/   r1   r   r   shaper   r
   r   rB   rC   s     r3   test_include_z_defaultrL   u   s     **K+GHLAq<<?a **,=+>?LAq<<?a**,?+@ALAq<<?a**,A+BCLAq<<?ar5   zGEOS < 3.12)reasonc                     [         R                  " [        [        /5      u  pn UR                  S   S:X  d   e[         R                  " [        [        [
        /5      u  pn UR                  S   S:X  d   e[         R                  " [        /5      u  pn UR                  S   S:X  d   e[         R                  " [        /5      u  pn UR                  S   S:X  d   e[         R                  " [        /5      u  pn UR                  S   S:X  d   e[         R                  " [        /5      u  pn UR                  S   S:X  d   eg )NrH   r*      rI   )
r/   r1   r   r   rJ   r   r	   r   r   r   rK   s     r3   test_include_m_defaultrP      s    
 **K+GHLAq<<?a **K+WXLAq<<?a **,?+@ALAq<<?a**,@+ABLAq<<?a**,A+BCLAq<<?a**,B+CDLAq<<?ar5   c                     [         R                  " X /5      u  pnSUR                  l        U H  nSUR                  l        M     [         R                  " XU5      n[        XPU /5        g )NF)r/   r1   flags	writeabler0   r   )r,   typrC   offsetsarrresults         r3   test_read_only_arraysrX      s[     #22D<@C"FLL#		 &&sG<FF4L1r5   c                     [         R                  " [        5         [        R                  " X /5        S S S 5        g ! , (       d  f       g = fr.   )pytestraises
ValueErrorr/   r1   )r,   s    r3   test_raise_geometry_typer]      s*    	z	"- 
#	"	"s	   <
A
c            
         [         R                  " / SQ5      n [         R                  " U 5      u  pn[        R                  " SS/SS/[        R
                  [        R
                  /[        R
                  [        R
                  /SS/[        R
                  [        R
                  /[        R
                  [        R
                  //5      nU[         R                  R                  :X  d   e[        U5      [        U 5      :X  d   e[        X$5        [        U5      S:X  d   e[         R                  " X5      n[         R                  " S5      U S'   [        XP5        g )N)zPOINT (0 0)zPOINT (1 1)POINT EMPTYr_   zPOINT (4 4)Nr_   r   rH   rO   r_   )r/   from_wktr1   r:   arraynanGeometryTypePOINTlenr   r0   r   )rV   rT   rW   rU   rE   geomss         r3   test_pointsrh      s   


	

C #2237CxxFFVVRVVVVRVVFVVRVVVVRVV	

H '&&,,,,,v;#c("""F%w<1%%c2E}-CGE'r5   c                     [         R                  " / SQ5      n [         R                  " U 5      u  pn[        R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//
5      n[        R                  " / SQSS9nU[         R
                  R                  :X  d   e[        X$5        [        U5      S	:X  d   eUS
   R                  [        R                  :X  d   e[        US
   U5        [         R                  " XU5      n[         R                  " S5      U S'   [        X`5        US
   S	S  4n[         R                  " XU5      n[        X`S	S  5        US
   S S 4n[         R                  " XU5      n[        X`S S 5        g )N)z LINESTRING (30 10, 10 30, 40 40)z'LINESTRING (40 40, 30 30, 40 20, 30 10)LINESTRING EMPTYrj   z LINESTRING (10 10, 20 20, 10 40)Nrj         >@      $@      D@      4@)r   r*      ro   ro   
   rp   rp   int32dtyperH   r   rj   r`   )r/   ra   r1   r:   rb   rd   
LINESTRINGr   rf   rs   rq   r0   r   rV   rT   rC   rU   rE   expected_offsetsrW   offsets_sliceds           r3   test_linestringsry      s   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L	
H xx ;7K'&&11111F%w<11:rxx'''GAJ 01&&sG<F12CGF( ajn&N&&sNCFFG,aj"o'N&&sNCFFH-r5   c                     [         R                  " / SQ5      n [         R                  " U 5      u  pn[        R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//5      n[        R                  " / S	Q5      n[        R                  " / S
Q5      nU[         R
                  R                  :X  d   e[        X$5        [        U5      S:X  d   eUS   R                  [        R                  :X  d   eUS   R                  [        R                  :X  d   e[        US   U5        [        US   U5        [         R                  " XU5      n[         R                  " S5      U S'   [        Xp5        US   US   SS  4n[         R                  " XU5      n[        XpSS  5        US   US   S S 4n[         R                  " XU5      n[        XpS S 5        g )N)-POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))zKPOLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30))POLYGON EMPTYr|   r{   Nr|   rk   rl   rm   rn        A@     F@      .@)r      rp         r   rH   r*   r*   r*   rO   rO   rO   rI   r   rH   r|   r`   rt   )r/   ra   r1   r:   rb   rd   POLYGONr   rf   rs   rq   r0   r   	rV   rT   rC   rU   rE   expected_offsets1expected_offsets2rW   rx   s	            r3   test_polygonsr     s   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L'	
H. !34!9:'&&.....F%w<11:rxx'''1:rxx'''GAJ 12GAJ 12&&sG<F/CGF(
 aj'!*QR.1N&&sNCFFG,aj'!*Sb/2N&&sNCFFH-r5   c                     [         R                  " / SQ5      n [         R                  " U 5      u  pn[        R                  " SS/SS/SS/SS/SS/SS/SS/SS//5      n[        R                  " / SQ5      nU[         R
                  R                  :X  d   e[        X$5        [        U5      S:X  d   eUS   R                  [        R                  :X  d   e[        US   U5        [         R                  " XU5      n[         R                  " S	5      U S
'   [        X`5        US   SS  4n[         R                  " XU5      n[        X`SS  5        US   S S 4n[         R                  " XU5      n[        X`S S 5        g )N)z'MULTIPOINT (10 40, 40 30, 20 20, 30 10)zMULTIPOINT (30 10)MULTIPOINT EMPTYr   z MULTIPOINT (30 10, 10 30, 40 40)Nr   rl   rm   rk   rn   )r   rO   r   r   r      r   r   rH   r   r   r`   rt   )r/   ra   r1   r:   rb   rd   
MULTIPOINTr   rf   rs   rq   r0   r   rv   s           r3   test_multipointsr   C  s   


	

C #2237Cxx4L4L4L4L4L4L4L4L		
H xx 89'&&11111F%w<11:rxx'''GAJ 01&&sG<F12CGF( ajn&N&&sNCFFG,aj"o'N&&sNCFFH-r5   c                     [         R                  " / SQ5      n [         R                  " U 5      u  pn[        R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//5      n[        R                  " / S	Q5      n[        R                  " / S
Q5      nU[         R
                  R                  :X  d   e[        X$5        [        U5      S:X  d   eUS   R                  [        R                  :X  d   eUS   R                  [        R                  :X  d   e[        US   U5        [        US   U5        [         R                  " XU5      n[         R                  " S5      U S'   [        Xp5        US   US   SS  4n[         R                  " XU5      n[        XpSS  5        US   US   S S 4n[         R                  " XU5      n[        XpS S 5        g )N)z'MULTILINESTRING ((30 10, 10 30, 40 40))zEMULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))MULTILINESTRING EMPTYr   zGMULTILINESTRING ((35 10, 45 45), (15 40, 10 20), (30 10, 10 30, 40 40))Nr   rk   rl   rm   rn   r}   r~   r   )r   r*      rp   r+   r      )r   rH   r*   r*   r*   r   r   r   rI   r   rH   r   r`   rt   )r/   ra   r1   r:   rb   rd   MULTILINESTRINGr   rf   rs   rq   r0   r   r   s	            r3   test_multilinestringsr   s  s   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L#	
H* !:;!9:'&&66666F%w<11:rxx'''1:rxx'''GAJ 12GAJ 12&&sG<F67CGF(
 aj'!*QR.1N&&sNCFFG,aj'!*Sb/2N&&sNCFFH-r5   c                     [         R                  " / SQ5      n [         R                  " U 5      u  pn[        R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS	/SS/SS/SS/SS/SS
/SS/SS/SS/SS/SS//5      n[        R                  " / SQ5      n[        R                  " / SQ5      n[        R                  " / SQ5      nU[         R
                  R                  :X  d   e[        X$5        [        U5      S:X  d   eUS   R                  [        R                  :X  d   eUS   R                  [        R                  :X  d   eUS   R                  [        R                  :X  d   e[        US   U5        [        US   U5        [        US   U5        [         R                  " XU5      n[         R                  " S5      U S'   [        X5        US   US   US   SS  4n	[         R                  " XU	5      n[        XSS  5        US   US   US   S S 4n	[         R                  " XU	5      n[        XS S 5        [        U5        g )N)zRMULTIPOLYGON (((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)))zxMULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))MULTIPOLYGON EMPTYr   z-MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)))Nr   r}   rl   r~   r   rm   rn   rk   g      @g      9@)r   r   	      r         )r   rI   r*   r   r   r   r*   r   rH   rI   r   r`   )r/   ra   r1   r:   rb   rd   MULTIPOLYGONr   rf   rs   rq   r0   r   print)
rV   rT   rC   rU   rE   r   r   expected_offsets3rW   rx   s
             r3   test_multipolygonsr     s   


	

C #2237Cxx4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L4L3K4L4L4L4L4L4L4L4L4L4L7	
H> !:;1!9:'&&33333F%w<11:rxx'''1:rxx'''1:rxx'''GAJ 12GAJ 12GAJ 12&&sG<F34CGF( aj'!*gajn=N&&sNCFFG,aj'!*gaj"o>N&&sNCFFH-	&Mr5   c                  "   [         R                  " [        [        /5      u  pnU [         R                  R
                  :X  d   e[         R                  " XU5      n[        R                  " [        [        /5      [        /5      n[        X45        g r.   )r/   r1   r!   r   rd   r   r0   r:   rb   r   r   rT   rC   rU   rW   rE   s        r3   test_mixture_point_multipointr     sj    "22E;3GHC'&&11111&&sG<FxxUG,k:;HF-r5   c                  "   [         R                  " [        [        /5      u  pnU [         R                  R
                  :X  d   e[         R                  " XU5      n[        R                  " [        [        /5      [        /5      n[        X45        g r.   )r/   r1   r   r   rd   r   r0   r:   rb   r   r   r   s        r3   'test_mixture_linestring_multilinestringr     sl    "22KAR3STC'&&66666&&sG<Fxx+79JKLHF-r5   c                  "   [         R                  " [        [        /5      u  pnU [         R                  R
                  :X  d   e[         R                  " XU5      n[        R                  " [        [        /5      [        /5      n[        X45        g r.   )r/   r1   r%   r   rd   r   r0   r:   rb   r   r   r   s        r3   !test_mixture_polygon_multipolygonr     sj    "22G]3KLC'&&33333&&sG<Fxxwi0-@AHF-r5   c                  Z   [         R                  " SS/SS//SS9n [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " SS/5      n[        R                  " [        SS9   [
        R                  " [
        R                  R                  XX#45        S S S 5        [        R                  " [        SS9   [
        R                  " [
        R                  R                  XU45        S S S 5        g ! , (       d  f       Nb= f! , (       d  f       g = f)Nr   rH   float64rr   rI   z,A linearring requires at least 4 coordinatesmatch)
r:   rb   rZ   r[   r\   r/   r0   rd   r   r   rC   offsets1offsets2offsets3s       r3   &test_from_ragged_incorrect_rings_shortr     s    XX1v1v&i8FxxAHxxAHxxAH	H
 	!!  --v(7U	

 
H
 	!!  ((&X2F	

 

 

 
s   =2D2D
D
D*c                     [         R                  " S[         R                  5      n [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " SS/5      n[        R
                  " [        R                  SS9   [        R                  " [        R                  R                  XX#45        S S S 5        [        R
                  " [        R                  SS9   [        R                  " [        R                  R                  XU45        S S S 5        g ! , (       d  f       Nl= f! , (       d  f       g = f)N)rO   rI   r   rO   rH   z4Points of LinearRing do not form a closed linestringr   )r:   fullrc   rb   rZ   r[   r/   GEOSExceptionr0   rd   r   r   r   s       r3   )test_from_ragged_incorrect_rings_unclosedr   )  s    WWVRVV$FxxAHxxAHxxAH	D
 	!!  --v(7U	
	
 
D
 	!!  ((&X2F	
	
 

 

 
s   2D).2D:)
D7:
Ec            	          [         R                  " [        SS9   [        R                  " [        R
                  R                  [        R                  " SS/SS//5      5        S S S 5        [         R                  " [        SS9   [        R                  " [        R
                  R                  [        R                  " SS/SS//5      [        R                  " SS/5      4S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz'offsets' must be providedr   r   rH   z 'offsets' should not be provided)rU   )
rZ   r[   r\   r/   r0   rd   ru   r:   rb   re    r5   r3   test_from_ragged_wrong_offsetsr   A  s    	z)E	F!!  ++RXX1v1v6F-G	
 
G
 
z)K	L!!  &&HHq!fq!f%&XXq!f%'	
 
M	L 
G	F
 
M	Ls   A
C.A C?.
C<?
Dc                  \   [         R                  R                  5       R                  S5      R                  S5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        S5       HE  n[        R                  " [        R                  R                  XU45      n[        U5      S:X  a  ME   e   [         R                  " SS/5      n[        S5       HE  n[        R                  " [        R                  R                  XX%45      n[        U5      S:X  a  ME   e   g )	Nx   )<   rI   )r   rp         (   2   r   )r   rH   r   r   rp   r*   r   rH   )r:   randomdefault_rngreshaperb   ranger/   r0   rd   r   rf   r   )rC   r   r   rB   polygonsr   s         r3   test_from_ragged_crash_2284r   O  s    
 YY""$++C088AFxx34Hxx%H2Y,,  ((&X2F
 8}!!!  xxAH2Y,,  --v(7U
 8}!!! r5   c                  h   [         R                  R                  5       R                  S5      R                  S5      n [         R                  " / SQ[         R
                  S9n[         R                  " / SQ[         R
                  S9n[         R                  " SS/5      n[        R                  " [        SS	9   [        R                  " [        R                  R                  XU45        S S S 5        [        R                  " [        S
S	9   [        R                  " [        R                  R                  XX#45        S S S 5        [         R                  R                  5       R                  S5      R                  S5      n [         R                  " / SQ[         R
                  S9n[         R                  " / SQ[         R
                  S9n[        R                  " [        SS	9   [        R                  " [        R                  R                  XU45        S S S 5        [        R                  " [        SS	9   [        R                  " [        R                  R                  XX#45        S S S 5        [         R                  " SS/5      n[        R                  " [        SS	9   [        R                  " [        R                  R                  XX#45        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NF   )#   rI   )r   rp   r   rr   )r   rH   r   r   rI   z1Number of rings indicated by the geometry offsetsr   z-Number of rings indicated by the part offsets)r   rp   r   )r   rH   rI   z5Number of coordinates indicated by the linear offsetsr*   z:Number of geometry parts indicated by the geometry offsets)r:   r   r   r   rb   uint32rZ   r[   r\   r/   r0   rd   r   r   r   s       r3   %test_from_ragged_wrong_offsets_valuesr   h  s>    YY""$++B/77@Fxx2995Hxx	3HxxAH	M
 	!!  ((&X2F	

 
I
 	!!  --v(7U	

 YY""$++B/77@Fxx2995Hxx	3H	Q
 	!!  ((&X2F	

 
Q
 	!!  --v(7U	

 xxAH	V
 	!!  --v(7U	

 
G
 

 

 

 

 
s<   82K2K/$2L72L"2L#
K,/
K>
L
L #
L1)Knumpyr:   rZ   numpy.testingr   r/   r   r   r   shapely.testingr   shapely.tests.commonr   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%   r&   r'   r(   	all_typesall_types_zall_types_mall_types_zmall_types_dims_combosr@   all_types_not_supportedmarkparametrizer4   rF   rL   skipifrP   rX   r]   rh   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r3   <module>r      sD     )  = = 3" " " " " " " " "J 
	    "K/ 
:%1K?,N   [!892 :2
 &9:&9:!67  8 ; ; $ " G((:5mL  M . +2 ,2 !89. :.
 (F..b=.@-.`;.|GT...
,
0
"21
r5   