
    _ hKR                        d dl Zd dlZd dlmZ d dlZd dlmZmZ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mZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, e%ee)eee!fZ-e'ee+eee#fZ.e&ee*eee"fZ/e(ee,e ee$fZ0e-e.z   Z1ejd                  dk\  re1e/z   e0z   Z1eefZ3ejh                  jk                  de-e.z         d        Z6ejh                  jk                  d	g d
      ejh                  jk                  dg d
      ejh                  jk                  de1      d                      Z7d Z8ejh                  js                  ejd                  dk  d      d        Z:ejh                  jk                  de-      d        Z;ejh                  jk                  de3      d        Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZId  ZJy)!    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    t        j                  t        j                  | | g       }t        || | g       y N)shapelyfrom_ragged_arrayto_ragged_arrayr   )r,   actuals     {/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/tests/test_ragged_array.pytest_roundtripr4   Z   s/    &&(?(?t(MNFFT4L1    	include_m)NTF	include_zc                    t        j                  | | g||      \  }}}t        j                  t        j                  |      d      j                         }ddg}| j                  }|s||r|j                  |        t         j                  dk\  r| j                  }nd}|s||r|j                  |        ||k(  sJ y )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     **	t	YLAvq vvbhhv&Q/668Hu~HJJEY&5E	"z)

Y&5E	"xr5   c                     t        j                  t        t        g      \  } }} |j                  d   dk(  sJ t        j                  t
        g      \  } }} |j                  d   dk(  sJ t        j                  t        g      \  } }} |j                  d   dk(  sJ t        j                  t        g      \  } }} |j                  d   dk(  sJ y )N   r*      )r/   r1   r   r   shaper   r
   r   rB   rC   s     r3   test_include_z_defaultrL   u   s     **K+GHLAvq<<?a **,=+>?LAvq<<?a**,?+@ALAvq<<?a**,A+BCLAvq<<?ar5   zGEOS < 3.12)reasonc                  z   t        j                  t        t        g      \  } }} |j                  d   dk(  sJ t        j                  t        t        t
        g      \  } }} |j                  d   dk(  sJ t        j                  t        g      \  } }} |j                  d   dk(  sJ t        j                  t        g      \  } }} |j                  d   dk(  sJ t        j                  t        g      \  } }} |j                  d   dk(  sJ t        j                  t        g      \  } }} |j                  d   dk(  sJ y )NrH   r*      rI   )
r/   r1   r   r   rJ   r   r	   r   r   r   rK   s     r3   test_include_m_defaultrP      s,   
 **K+GHLAvq<<?a **K+WXLAvq<<?a **,?+@ALAvq<<?a**,@+ABLAvq<<?a**,A+BCLAvq<<?a**,B+CDLAvq<<?ar5   c                     t        j                  | | g      \  }}}d|j                  _        |D ]  }d|j                  _         t        j                  |||      }t        || | g       y )NF)r/   r1   flags	writeabler0   r   )r,   typrC   offsetsarrresults         r3   test_read_only_arraysrX      sh     #22D$<@C"FLL $#		$&&sFG<FFT4L1r5   c                     t        j                  t              5  t        j                  | | g       d d d        y # 1 sw Y   y xY wr.   )pytestraises
ValueErrorr/   r1   )r,   s    r3   test_raise_geometry_typer]      s5    	z	" .t-. . .s	   ;Ac            
         t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgt        j
                  t        j
                  gt        j
                  t        j
                  gddgt        j
                  t        j
                  gt        j
                  t        j
                  gg      }|t         j                  j                  k(  sJ t        |      t        |       k(  sJ t        ||       t        |      dk(  sJ t        j                  ||      }t        j                  d      | d<   t        ||        y )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("""FH%w<1%%c62E}-CGE3'r5   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgg
      }t        j                  g dd      }|t         j
                  j                  k(  sJ t        ||       t        |      d	k(  sJ |d
   j                  t        j                  k(  sJ t        |d
   |       t        j                  |||      }t        j                  d      | d<   t        ||        |d
   d	d  f}t        j                  |||      }t        || d	d         |d
   d d f}t        j                  |||      }t        || d d        y )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FH%w<11:rxx'''GAJ 01&&sFG<F12CGFC( ajn&N&&sFNCFFCG,aj"o'N&&sFNCFFCH-r5   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg      }t        j                  g d	      }t        j                  g d
      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ |d   j                  t        j                  k(  sJ |d   j                  t        j                  k(  sJ t        |d   |       t        |d   |       t        j                  |||      }t        j                  d      | d<   t        ||        |d   |d   dd  f}t        j                  |||      }t        || dd         |d   |d   d d f}t        j                  |||      }t        || d d        y )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:'&&.....FH%w<11:rxx'''1:rxx'''GAJ 12GAJ 12&&sFG<F/CGFC(
 aj'!*QR.1N&&sFNCFFCG,aj'!*Sb/2N&&sFNCFFCH-r5   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgg      }t        j                  g d      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ |d   j                  t        j                  k(  sJ t        |d   |       t        j                  |||      }t        j                  d	      | d
<   t        ||        |d   dd  f}t        j                  |||      }t        || dd         |d   d d f}t        j                  |||      }t        || d d        y )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FH%w<11:rxx'''GAJ 01&&sFG<F12CGFC( ajn&N&&sFNCFFCG,aj"o'N&&sFNCFFCH-r5   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg      }t        j                  g d	      }t        j                  g d
      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ |d   j                  t        j                  k(  sJ |d   j                  t        j                  k(  sJ t        |d   |       t        |d   |       t        j                  |||      }t        j                  d      | d<   t        ||        |d   |d   dd  f}t        j                  |||      }t        || dd         |d   |d   d d f}t        j                  |||      }t        || d d        y )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FH%w<11:rxx'''1:rxx'''GAJ 12GAJ 12&&sFG<F67CGFC(
 aj'!*QR.1N&&sFNCFFCG,aj'!*Sb/2N&&sFNCFFCH-r5   c                     t        j                  g d      } t        j                  |       \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd	gddgddgddgddgdd
gddgddgddgddgddgg      }t        j                  g d      }t        j                  g d      }t        j                  g d      }|t         j
                  j                  k(  sJ t        ||       t        |      dk(  sJ |d   j                  t        j                  k(  sJ |d   j                  t        j                  k(  sJ |d   j                  t        j                  k(  sJ t        |d   |       t        |d   |       t        |d   |       t        j                  |||      }t        j                  d      | d<   t        ||        |d   |d   |d   dd  f}	t        j                  |||	      }t        || dd         |d   |d   |d   d d f}	t        j                  |||	      }t        || d d        t        |       y )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FH%w<11:rxx'''1:rxx'''1:rxx'''GAJ 12GAJ 12GAJ 12&&sFG<F34CGFC( aj'!*gajn=N&&sFNCFFCG,aj'!*gaj"o>N&&sFNCFFCH-	&Mr5   c                      t        j                  t        t        g      \  } }}| t         j                  j
                  k(  sJ t        j                  | ||      }t        j                  t        t        g      t        g      }t        ||       y r.   )r/   r1   r!   r   rd   r   r0   r:   rb   r   r   rT   rC   rU   rW   rE   s        r3   test_mixture_point_multipointr     sp    "22E;3GHC'&&11111&&sFG<FxxUG,k:;HFH-r5   c                      t        j                  t        t        g      \  } }}| t         j                  j
                  k(  sJ t        j                  | ||      }t        j                  t        t        g      t        g      }t        ||       y r.   )r/   r1   r   r   rd   r   r0   r:   rb   r   r   r   s        r3   'test_mixture_linestring_multilinestringr     sr    "22KAR3STC'&&66666&&sFG<Fxx+79JKLHFH-r5   c                      t        j                  t        t        g      \  } }}| t         j                  j
                  k(  sJ t        j                  | ||      }t        j                  t        t        g      t        g      }t        ||       y r.   )r/   r1   r%   r   rd   r   r0   r:   rb   r   r   r   s        r3   !test_mixture_polygon_multipolygonr     sp    "22G]3KLC'&&33333&&sFG<Fxxwi0-@AHFH-r5   c                  N   t        j                  ddgddggd      } t        j                  ddg      }t        j                  ddg      }t        j                  ddg      }t        j                  t        d      5  t        j                  t
        j                  j                  | |||f       d d d        t        j                  t        d      5  t        j                  t
        j                  j                  | ||f       d d d        y # 1 sw Y   _xY w# 1 sw Y   y xY w)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(H7U	

 
H
 
 	!!  ((&8X2F	

 

 

 
s   >3D2DDD$c                     t        j                  dt         j                        } t        j                  ddg      }t        j                  ddg      }t        j                  ddg      }t	        j
                  t        j                  d      5  t        j                  t        j                  j                  | |||f       d d d        t	        j
                  t        j                  d      5  t        j                  t        j                  j                  | ||f       d d d        y # 1 sw Y   ixY w# 1 sw Y   y xY w)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(H7U	
	
 
D
 
 	!!  ((&8X2F	
	
 

 

 
s   3D*/2D6*D36D?c            	         t        j                  t        d      5  t        j                  t        j
                  j                  t        j                  ddgddgg             d d d        t        j                  t        d      5  t        j                  t        j
                  j                  t        j                  ddgddgg      t        j                  ddg      f       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)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	


 
z)K	L 
!!  &&HHq!fq!f%&XXq!f%'	

 

 


 
s   AC0A C<0C9<Dc                  L   t         j                  j                         j                  d      j                  d      } t        j                  g d      }t        j                  g d      }t        d      D ]C  }t        j                  t        j                  j                  | ||f      }t        |      dk(  rCJ  t        j                  ddg      }t        d      D ]D  }t        j                  t        j                  j                  | |||f      }t        |      dk(  rDJ  y )	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 ",,  ((&8X2F
 8}!!!" xxAH2Y ",,  --v(H7U
 8}!!!"r5   c                  \   t         j                  j                         j                  d      j                  d      } t        j                  g dt         j
                        }t        j                  g dt         j
                        }t        j                  ddg      }t        j                  t        d	      5  t        j                  t        j                  j                  | ||f       d d d        t        j                  t        d
	      5  t        j                  t        j                  j                  | |||f       d d d        t         j                  j                         j                  d      j                  d      } t        j                  g dt         j
                        }t        j                  g dt         j
                        }t        j                  t        d	      5  t        j                  t        j                  j                  | ||f       d d d        t        j                  t        d	      5  t        j                  t        j                  j                  | |||f       d d d        t        j                  ddg      }t        j                  t        d	      5  t        j                  t        j                  j                  | |||f       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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  sg    YY""$++B/77@Fxx2995Hxx	3HxxAH	M
 
 	!!  ((&8X2F	

 
I
 
 	!!  --v(H7U	

 YY""$++B/77@Fxx2995Hxx	3H	Q
 
 	!!  ((&8X2F	

 
Q
 
 	!!  --v(H7U	

 xxAH	V
 
 	!!  --v(H7U	

 
G
 

 

 

 

 
s<   =2K03K=22L
3L43L"0K:=L
LL"L+)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   