
    \iIW                     ^   S r 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	J
r
Jr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  S rS rS	 rS
 rS r \RB                  RE                  \RF                  SS S;  SS9S 5       r$\RB                  RE                  \RF                  SS S;  SS9S 5       r%\RB                  RE                  \RF                  SS S:g  SS9S 5       r&\RB                  RE                  \RF                  S:  SS9\RB                  RO                  S\RP                  " \RR                  \RR                  /S\RB                  RE                  \RF                  S:  SS9S9\RP                  " \RR                  \RR                  \RR                  /S\RB                  RE                  \RF                  S:  SS9S9S\RR                  /S 4\RR                  S/S!4\RR                  S\RR                  /S"4\RR                  \RR                  S/S#4/5      S$ 5       5       r*\RB                  RO                  S%S\RR                  /S&S'4\RR                  S/S&S'4S\RR                  S/S&S(4SS\RR                  /S&S(4SS/S)S*4/ S+QS)S,4S\RV                  /S&S'4/5      S- 5       r,\RB                  RO                  S.S\RR                  /\RR                  S/SS\RR                  /S\RV                  /S\RV                  * //5      S/ 5       r-S0 r.S1 r/S2 r0S3 r1\RB                  RO                  S4SS5/5      S6 5       r2S7 r3S8 r4\RB                  RO                  S9/ S:Q5      S; 5       r5S< r6\RB                  RO                  S.SS/S\7" S=5      //SS\7" S=5      /SS\7" S=5      /// S+QSS\7" S=5      //SS\7" S=5      // S>Q/\7" S=5      \7" S=5      /\7" S=5      \7" S=5      ///5      S? 5       r8\RB                  RO                  S.S\7" S=5      /SS/SS5//SS/S\7" S=5      /SS5//SS/SS5/S\7" S=5      ///5      S@ 5       r9SA r:SB r;SC r<SD r=SE r>SF r?SG r@SH rASI rB\RB                  RO                  S9/ SJQ5      SK 5       rCSL rDSM rE\RB                  RO                  S4SS5/5      \RB                  RO                  SNSOSP/5      SQ 5       5       rF\RB                  RO                  S.SS/S\7" S=5      /SS5/SS//SS/\7" S=5      S/SS5/SS/// SRQ\7" S=5      SSS// STQ/ SRQ// SRQSS\7" S=5      // STQ/ SRQ//5      SU 5       rG\RB                  RO                  SVSS\7" S=5      SS// SWQ4/ SXQS5SY\7" S=5      SSS5/4SSSS\7" S=5      // SZQ4\7" S=5      SSSS// S[Q4/5      S\ 5       rHS] rIS^ rJS_ rKS` rLSa rMSb rNSc rOSd rPSe rQSf rRSg rSSh rTSi rUSj rVSk rWSl rXSm rY\RB                  RO                  S9/ SJQ5      Sn 5       rZSo r[\RB                  RO                  S9/ SJQ5      Sp 5       r\\RB                  RO                  Sq\R                  \" 5       4\R                  \" 5       4\R                  \" 5       4\R                  \" 5       4/5      Sr 5       ra\RB                  RO                  Ss\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4/5      St 5       rb\RB                  RO                  Ss\R                  \4\R                  \4\R                  \4\R                  \4/5      Su 5       rc\RB                  RO                  Ss\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4\R                  \4/	5      Sv 5       rd\RB                  RO                  SwSxSy\" / SzQ5      4SxS{\" / S|Q5      4/5      S} 5       re\RB                  RO                  SwSSSS/SS/4Sy\" / SzQ5      \" / S~Q5      /4SSSS/SS/4SyS{/\" / SzQ5      \" / SQ5      /4/5      S 5       rf\RB                  RO                  S.\RR                  \RR                  \RR                  \RR                  /\RR                  SSS/S\RR                  SS/SS\RR                  S/SSS\RR                  //5      S 5       rgS rhS riS rj\RB                  RO                  SS\R                  S/5      S 5       rl\RB                  RO                  S\m" S5      5      S 5       rng)z@See test_creation_indices.py for tests with 'indices' parameter.    N)assert_array_equal)GeometryCollectionGeometryType
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPolygon)assert_geometries_equal)
empty_polygongeometry_collectionignore_invalidline_stringlinear_ringmulti_line_stringmulti_pointmulti_polygonpointpolygonc                     X!4X#4X4X4X!44$ N )x1y1x2y2s       ^/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_creation.pybox_tplr   #   s    8bXx"B8;;    c                      [         R                  " SS/SS//5      n [        U [         R                  " SS5      [         R                  " SS5      /5        g )Nr      shapelypointsr   Pointactuals    r   test_points_from_coordsr)   '   sB    ^^aVaV,-FFW]]1a%8'--1:M$NOr    c                      [         R                  " SSS/5      n [        U [         R                  " SS5      [         R                  " SS5      /5        g )Nr"   r      r#   r'   s    r   test_points_from_xyr,   ,   s;    ^^A1v&FFW]]1a%8'--1:M$NOr    c            	          [         R                  " SSSS/5      n [        U [         R                  " SSS5      [         R                  " SSS5      /5        g )Nr+   r   r#   r'   s    r   test_points_from_xyzr.   1   sB    ^^Aq1a&)FFW]]1a%;W]]1aQR=S$TUr    c                  .   [         R                  " [        SS9   [        R                  " / SQ5        S S S 5        [         R                  " [        SS9   [        R                  " S/5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nz!dimension should be 2 or 3, got 4match)r   r+   r"      z!dimension should be 2 or 3, got 1r   pytestraises
ValueErrorr$   r%   r   r    r   test_points_invalid_ndimr7   6   s_    	z)L	M|$ 
N 
z)L	Ms 
N	M 
N	M 
N	Ms   A5B5
B
Br"   )r2   
   r2      r2      zGEOS not in 3.10, 3.11, 3.12)reasonc                      [         R                  " [        R                  [        R                  5      n U R                  S:X  d   eg NPOINT EMPTYr$   r%   npnanwktr'   s    r   %test_points_nan_all_nan_becomes_emptyrF   >   s.    
 ^^BFFBFF+F::&&&r    )r8   r:   zGEOS not in 3.10, 3.11c                      [         R                  " [        R                  [        R                  [        R                  5      n U R                  S:X  d   eg r@   rB   r'   s    r   +test_points_nan_3D_all_nan_becomes_empty_2DrH   G   s4    
 ^^BFFBFFBFF3F::&&&r    r<   zGEOS != 3.12c                      [         R                  " [        R                  [        R                  [        R                  5      n U R                  S:X  d   eg )NPOINT Z EMPTYrB   r'   s    r   (test_points_nan_3D_all_nan_becomes_emptyrK   P   s2    ^^BFFBFFBFF3F::(((r    )r2   r=   r   zGEOS < 3.12zcoords,expected_wktzPOINT (NaN NaN))r2      r   zGEOS < 3.13)markszPOINT Z (NaN NaN NaN)r+   zPOINT (1 NaN)zPOINT (NaN 1)zPOINT Z (NaN 1 NaN)zPOINT Z (NaN NaN 1)c                 R    [         R                  " U SS9nUR                  U:X  d   eg )Nallow
handle_nanr$   r%   rE   )coordsexpected_wktr(   s      r   test_points_handle_nan_allowrU   V   s&    2 ^^Fw7F::%%%r    zcoords,handle_nan,expected_wktskiprA   rJ   errorzPOINT (0 1))r   r+   r"   zPOINT Z (0 1 2)c                 P    [         R                  " XS9nUR                  U;   d   eg )NrP   rR   )rS   rQ   rT   r(   s       r   test_points_handle_nanrY   s   s$     ^^F:F::%%%r    rS   c                     [         R                  " [        SS9   [        R                  " U SS9  S S S 5        g ! , (       d  f       g = f)N.*NaN.*r0   rW   rP   r3   rS   s    r   test_points_handle_nan_errorr]      s,     
z	3v'2 
4	3	3s	   9
Ac                      [         R                  " SS/SS//SS/SS///5      n [        U [        SS/5      [        SS/5      /5        g )Nr   r+   r"   r   r   r+   r+   r"   r"   r$   linestringsr   r   r'   s    r   test_linestrings_from_coordsrd      s[      Aq6Aq6"2aVaV4D!EFF'('(	
r    c                  h    [         R                  " SS/SS/5      n [        U [        SS/5      5        g )Nr   r+   r"   r2   r   r"   r+   r2   rb   r'   s    r   test_linestrings_from_xyrh      s0      !Q!Q0FFJ/?$@Ar    c                      SS/n SS/SS/4n[         R                  " X5      n[        U[        SS/5      [        S	S
/5      /5        g )Nr   r+   r"   r2         rf   rg   )r   rj   )r+   rk   rb   xyr(   s      r   "test_linestrings_from_xy_broadcastro      sV    	
AA	
AAA  &F'('(	
r    c                  j    [         R                  " SS/SS/S5      n [        U [        SS/5      5        g )Nr   r+   r"   r2   )r   r"   r   )r+   r2   r   rb   r'   s    r   test_linestrings_from_xyzrq      s2      !Q!Q3FFJ	9/E$FGr    dimr2   c           	      (   [         R                  R                  SSU 5      n[         R                  " USS9n[        R
                  " U5      n[         R                  " USS9n[        R
                  " U5      n[        X55        [         R                  " [         R                  " [         R                  " USS5      SS5      SS9n[         R                  " [         R                  " USS5      SS5      n[        R
                  " U5      n[        X75        g )	Nr9   r2   CorderFr   r"   r+   )rC   randomrandnasarrayr$   rc   r   swapaxes)rr   rS   coords1result1coords2result2coords3result3s           r   test_linestrings_bufferr      s    YY__RC(Fjjs+G!!'*Gjj,G!!'*GG- jjR[[A%>1ESQGkk"++gq!4a;G!!'*GG-r    c                  ~    [         R                  " [        R                  " S5      5      n U R                  (       d   eg Nrf   )r$   rc   rC   emptyis_emptyr'   s    r   test_linestrings_emptyr      '      &!12F???r    c                      [         R                  " [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = fNr`   )r4   r5   r6   r$   rc   r   r    r   %test_linestrings_invalid_shape_scalarr      (    	z	"F# 
#	"	"	   ;
A	shape)r"   r+   r"   r+   r+   r"   r+   r"   c                     [         R                  " [        R                  5         [        R                  " [
        R                  " U 5      5        S S S 5        g ! , (       d  f       g = fr   )r4   r5   r$   GEOSExceptionrc   rC   ones)r   s    r   test_linestrings_invalid_shaper      s8     
w,,	-BGGEN+ 
.	-	-s   +A
A'c            	      R   Sn [         R                  " SSS9n[        R                  " [        U R                  S5      S9   [        R                  " U5        S S S 5        [         R                  " SSS9n[        R                  " [        U R                  S5      S9   [        R                  " U5        S S S 5        [         R                  " [         R                  " [         R                  " S5      SS	5      S
S5      n[         R                  " [         R                  " [         R                  " USS9SS	5      S
S	5      n[        R                  " [        U R                  S5      S9   [        R                  " U5        S S S 5        [         R                  " S5      n[        R                  " [        U R                  S
5      S9   [        R                  " U5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNI= f! , (       d  f       N= f! , (       d  f       g = f)N8The ordinate \(last\) dimension should be 2 or 3, got {})r9   r"   rj   rt   ru   rj   r0   rw   r   r"   r+   )r9   r"   r+   )
rC   r   r4   r5   r6   formatr$   rc   r{   rz   )msgrS   s     r   test_linestrings_invalid_ndimr      sX   
ECWWZs+F	zA	7F# 
8 WWZs+F	zA	7F# 
8 [[RWWZ%8!Q?AFF[[RZZc%BAqI1aPF	zA	7F# 
8 WWZ F	zA	7F# 
8	7 
8	7 
8	7
 
8	7
 
8	7s0    G#G5&HH#
G25
H
H
H&rD   )r"   r"   r2   c                     [        5          [        R                  " U SS9nS S S 5        [        R                  " W[	        U S   5      S:H  S9n[        X5        g ! , (       d  f       N>= fNrO   rP   r   r2   )	include_z)r   r$   rc   get_coordinateslenr   rS   r(   s     r   !test_linestrings_handle_nan_allowr      sQ     
	$$V@ 
$$Vs6!9~7JKFv&	 
	   A
A'c                 \    [         R                  " U SS9n[        U[        SS/5      5        g )NrV   rP   r   r+   )r"   r2   rb   r   s     r    test_linestrings_handle_nan_skipr     s*       F;FFJ/?$@Ar    c                      [         R                  " [        R                  5         [        R                  " SS/S[        S5      //SS9  S S S 5        g ! , (       d  f       g = f)Nr   r+   r"   rD   rV   rP   )r4   r5   r$   r   rc   floatr   r    r   (test_linestrings_handle_nan_skip_invalidr     sB    	w,,	-aVau%67FK 
.	-	-s   %A
A!c                      [         R                  " [        R                  " S[        R                  S9SS9n U R
                  (       d   eg )N)r2   r"   
fill_valuerV   rP   )r$   rc   rC   fullrD   r   r'   s    r   )test_linestrings_handle_nan_skip_only_nanr     s0      BFF!CPVWF???r    c                      [         R                  " [        SS9   [        R                  " SS/S[        S5      /SS//SS	9  S S S 5        g ! , (       d  f       g = f)
Nr[   r0   r   r+   r"   rD   r2   rW   rP   )r4   r5   r6   r$   rc   r   r   r    r   !test_linestrings_handle_nan_errorr     sD    	z	3aVau%6A?GT 
4	3	3s   (A
Ac                  v    [         R                  " [        SSSS5      5      n [        U [	        / SQ5      5        g Nr   r+   r+   r   r`   r   r_   r   r$   linearringsr   r   r   r'   s    r   test_linearringsr   "  s0      Aq!!45F
CDr    c                  ~    [         R                  " [        R                  " S5      5      n U R                  (       d   eg r   )r$   r   rC   r   r   r'   s    r   test_linearrings_emptyr   )  r   r    c                  h    [         R                  " / SQ/ SQ5      n [        U [        / SQ5      5        g )N)r   r+   r"   r   )r2   rj   rk   r2   r   r2   )r+   rj   )r"   rk   r   r$   r   r   r   r'   s    r   test_linearrings_from_xyr   .  s$      |<FFJ/O$PQr    c                  |    [         R                  " [        SSSS5      S S 5      n [        U [	        / SQ5      5        g )Nr   r+   r   r   r'   s    r   test_linearrings_unclosedr   3  s7      Aq!!4Sb!9:F
CDr    c                  b    [         R                  " / SQ5      n [        U [        / SQ5      5        g )N)r_   r_   r_   )r_   r_   r_   r_   r   r'   s    r   *test_linearrings_unclosed_all_coords_equalr   :  s#      !9:FFJ/O$PQr    c                      [         R                  " [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = fr   )r4   r5   r6   r$   r   r   r    r   %test_linearrings_invalid_shape_scalarr   ?  r   r   )r   r   r   )r"   r"   r"   )r+   r"   r"   ra   c                 r   [         R                  " U 5      n[        R                  " [        5         [
        R                  " U5        S S S 5        US==   S-  ss'   [        R                  " [        5         [
        R                  " U5        S S S 5        g ! , (       d  f       NU= f! , (       d  f       g = fN.r+   r+   )rC   r   r4   r5   r6   r$   r   r   rS   s     r   test_linearrings_invalid_shaper   D  st     WWU^F	z	"F# 
# 6NaN	z	"F# 
#	" 
#	"
 
#	"   B7B(
B%(
B6c                     Sn [         R                  R                  SSS5      n[        R                  " [
        U R                  S5      S9   [        R                  " U5        S S S 5        [         R                  " XS S 2S/S S 24   45      n[        R                  " [
        U R                  S5      S9   [        R                  " U5        S S S 5        [         R                  R                  SSS5      n[        R                  " [
        U R                  S5      S9   [        R                  " U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r9   r2   rj   r0   r   r+   )
rC   rx   ry   r4   r5   r6   r   r$   r   hstack)r   r|   r~   r   s       r   test_linearrings_invalid_ndimr   Z  s    
ECiioob!Q'G	zA	7G$ 
8 ii!aS!)"456G	zA	7G$ 
8 iioob!Q'G	zA	7G$ 
8	7 
8	7 
8	7
 
8	7s$   D=5EE=
E
E
E-c                      [         R                  " S[         R                  5      n [        R                  " [
        R                  5         [
        R                  " U 5        S S S 5        g ! , (       d  f       g = f)N)rj   r"   )rC   r   rD   r4   r5   r$   r   r   r\   s    r   test_linearrings_all_nanr   k  sB    WWVRVV$F	w,,	-F# 
.	-	-s   
A**
A8rv   rt   rw   c                    [         R                  R                  SSU 5      n[         R                  " X!S9n[        R
                  " U5      n[         R                  " X"S S 2S/S S 24   45      n[         R                  " XAS9n[        R
                  " U5      n[        X55        [         R                  " US   US9n[        R
                  " U5      n[        XsS   5        g )Nr9   rj   ru   r   )rC   rx   ry   rz   r$   r   r   r   )rr   rv   r|   r}   r~   r   r   r   s           r   test_linearrings_bufferr   q  s     iioob!S)Gjj.G!!'*G ii!aS!)"456Gjj.G!!'*GG- jj51G!!'*GGQZ0r    )r   r"   rk   rk   )r+   r2   rk   c                     [        5          [        R                  " U SS9nS S S 5        [        R                  " W[	        U S   5      S:H  S9n[        X5        g ! , (       d  f       N>= fr   )r   r$   r   r   r   r   r   s     r   !test_linearrings_handle_nan_allowr     sQ     
	$$V@ 
$$Vs6!9~7JKFv&	 
	r   zx,yr2   rj   rk   rk   r2   )r   r+   r+   r"   r   rj   )r2   rj   rk   r2   r2   )r2   r2   rj   rk   r2   c                 \    [         R                  " XSS9n[        U[        / SQ5      5        g )NrV   rP   r   r   rl   s      r    test_linearrings_handle_nan_skipr     s&       &9FFJ/O$PQr    c                      [         R                  " [        5         [        R                  " S[        S5      S// SQSS9  S S S 5        g ! , (       d  f       g = f)Nr   rD   )r2   rj   r2   rV   rP   r4   r5   r6   r$   r   r   r   r    r   (test_linearrings_handle_nan_skip_invalidr     s7    	z	"Qea0)O 
#	"	"s   %A		
Ac                      [         R                  " [        R                  " S[        R                  S9SS9n U R
                  (       d   eg )N)rk   r"   r   rV   rP   )r$   r   rC   r   rD   r   r'   s    r   )test_linearrings_handle_nan_skip_only_nanr     s0      BFF!CPVWF???r    c                      [         R                  " [        SS9   [        R                  " SS[        S5      SS// SQSS	9  S S S 5        g ! , (       d  f       g = f)
Nr[   r0   r   r+   rD   r"   r   rW   rP   r   r   r    r   !test_linearrings_handle_nan_errorr     s@    	z	35<A&G	
 
4	3	3s   'A


Ac            
          [         R                  " [         R                  " [        SSSS5      5      5      n [	        U [        / SQ5      5        g r   )r$   polygonsr   r   r   r   r'   s    r   test_polygon_from_linearringr     s8    g11'!Q12EFGFFG,T$UVr    c                      [        [        R                  " S 5      [        5        [        [        R                  " S [        /S9[        5        g )N)holes)r   r$   r   r   r   r   r    r   test_polygons_noner     s0    G,,T2MBG,,T+GWr    c                  v    [         R                  " [        SSSS5      5      n [        U [	        / SQ5      5        g r   )r$   r   r   r   r   r'   s    r   test_polygonsr     s-    gaAq12FFG,T$UVr    c            
          [         R                  " [        5         [        R                  " [        SSSS5      [        SSSS5      5        S S S 5        g ! , (       d  f       g = f)Nr   r9   r+   r"   )r4   r5   r6   r$   r   r   r   r    r    test_polygon_no_hole_list_raisesr     s@    	z	"Ar2.1a0CD 
#	"	"s   0A
A"c                      [         R                  " [        [        R                  45         [        R
                  " [        5        S S S 5        g ! , (       d  f       g = fr   )r4   r5   	TypeErrorr$   r   r   r   r   r    r   test_polygon_no_hole_wrong_typer     s3    		7#8#89	: 
;	:	:s   A
Ac                      [         R                  " [        [        R                  45         [        R
                  " [        [        /5        S S S 5        g ! , (       d  f       g = fr   )r4   r5   r   r$   r   r   r   r   r   r    r   !test_polygon_with_hole_wrong_typer     s7    		7#8#89	:. 
;	:	:   !A
A#c                      [         R                  " [        [        R                  45         [        R
                  " [        [        /5        S S S 5        g ! , (       d  f       g = fr   )r4   r5   r   r$   r   r   r   r   r   r    r   test_polygon_wrong_hole_typer     s7    		7#8#89	:ug. 
;	:	:r   c            	          [         R                  " [        SSSS5      [        SSSS5      /5      n [         R                  " U 5      S:X  d   eg )Nr   r9   r+   r"        X@r$   r   r   arear'   s    r   test_polygon_with_1_holer     sD    gaB3gaAq6I5JKF<<4'''r    c            
          [         R                  " [        SSSS5      [        SSSS5      [        SSSS5      /5      n [         R                  " U 5      S:X  d   eg Nr   r9   r+   r"   r2   rj        X@r   r'   s    r   test_polygon_with_2_holesr     sV    1b"1a 3WQ1a5HIF <<4'''r    c                  0   [         R                  " [         R                  " [        SSSS5      5      [         R                  " [        SSSS5      5      S [         R                  " [        SSSS5      5      /5      n [         R                  " U 5      S:X  d   eg r   )r$   r   r   r   r   r'   s    r   test_polygon_with_none_holer     s~    GAq"b121a 341a 34	
F <<4'''r    c            	          [         R                  " [        SSSS5      [        SSSS5      /[        SSSS5      /5      n [         R                  " U 5      R	                  5       SS/:X  d   eg )Nr   r9   rk   r+   r"   r         8@r$   r   r   r   tolistr'   s    r   test_2_polygons_with_same_holer     sf    	Ar2	1a 34wq!Q7J6KF <<&&(T4L888r    c            
          [         R                  " [        SSSS5      [        SSSS5      /[        SSSS5      [        SSSS5      /5      n [         R                  " U 5      R	                  5       SS	/:X  d   eg )
Nr   r9   rk   r+   r"   r2   rj   r   g      7@r   r'   s    r   !test_2_polygons_with_2_same_holesr    st    	Ar2	1a 34	Aq!	gaAq12F <<&&(T4L888r    c            
          [         R                  " [        SSSS5      [        SSSS5      /[        SSSS5      /[        SSSS5      //5      n [         R                  " U 5      R	                  5       SS/:X  d   eg )	Nr   r9   rk   r+   r2   r"   g      X@r   r   r'   s    r   $test_2_polygons_with_different_holesr    sz    	Ar2	1a 34
!Q1
	Aq!!4 56F <<&&(T4L888r    c                      [         R                  " [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = fr   )r4   r5   r6   r$   r   r   r    r   /test_polygons_not_enough_points_in_shell_scalarr    s(    	z	"  
#	"	"r   c                 r   [         R                  " U 5      n[        R                  " [        5         [
        R                  " U5        S S S 5        US==   S-  ss'   [        R                  " [        5         [
        R                  " U5        S S S 5        g ! , (       d  f       NU= f! , (       d  f       g = fr   rC   r   r4   r5   r6   r$   r   r   s     r   (test_polygons_not_enough_points_in_shellr    st     WWU^F	z	"  
# 6NaN	z	"  
#	" 
#	"
 
#	"r   c                      [         R                  " [        5         [        R                  " [
        R                  " S5      S5        S S S 5        g ! , (       d  f       g = f)Nr+   rj   r"   r`   )r4   r5   r6   r$   r   rC   r   r   r    r   /test_polygons_not_enough_points_in_holes_scalarr  !  s3    	z	"+V4 
#	"	"s   ,A
Ac                    [         R                  " U 5      n[        R                  " [        5         [
        R                  " [         R                  " S5      U5        S S S 5        US==   S-  ss'   [        R                  " [        5         [
        R                  " [         R                  " S5      U5        S S S 5        g ! , (       d  f       Nj= f! , (       d  f       g = f)Nr
  r   r+   r  r   s     r   (test_polygons_not_enough_points_in_holesr  &  s     WWU^F	z	"+V4 
# 6NaN	z	"+V4 
#	" 
#	"
 
#	"s   ,C,C
C
C zfunc,expectedc                 Z    U " [         R                  " S /[        S95      n[        X!5        g )N)dtype)rC   arrayobjectr   )funcexpectedr(   s      r    test_create_collection_only_noner  <  s#     "((D601FF-r    zfunc,sub_geomc                 N    U " X/5      n[         R                  " U5      S:X  d   eg Nr"   r$   get_num_geometriesr  sub_geomr(   s      r   test_create_collectionr  J  s*    $ 8&'F%%f-222r    c                 T    U " US S U/5      n[         R                  " U5      S:X  d   eg r  r  r  s      r   !test_create_collection_skips_noner  `  s0     8T423F%%f-222r    c                 ~    [         R                  " [        5         U " U/5        S S S 5        g ! , (       d  f       g = fr   )r4   r5   r   )r  r  s     r   &test_create_collection_wrong_geom_typer  n  s&     
y	!hZ 
"	!	!s   
.
<zcoords,ccw,expected)r   r   r+   r+   Tr   F)r_   r   r`   r   r_   c                 F    [         R                  " U SU06n[        X25        g Nccwr$   boxr   rS   r"  r  r(   s       r   test_boxr&    s     [[&*c*FF-r    )r"   r   ra   rf   r_   r'  )r_   rf   ra   r'  r_   c                 F    [         R                  " U SU06n[        X25        g r!  r#  r%  s       r   test_box_arrayr)    s    , [[&*c*FF-r    c                 0    [         R                  " U 6 b   eg r   )r$   r$  r\   s    r   test_box_nanr+    s     ;;'''r    c                      [         R                  " SS9   [        R                  " SSSSS5        S S S 5        g ! , (       d  f       g = f)Nz1positional argument `ccw` for `box` is deprecatedr0   r   r+   T)r4   deprecated_callr$   r$  r   r    r   test_box_deprecate_positionalr.    s9    			A
 	Aq!Q%
 
 
s	   9
Ac            
         [         R                  " [        R                  " SS5      S [        R                  " SSSS5      /5      n U S   R
                  S:X  d   eU S   R
                  S:X  d   e[        R                  " U 5        U S   R
                  S:w  d   eU S   b   eU S   R
                  S:w  d   eU S   R
                  n[        R                  " U 5        U S   R
                  U:X  d   eg Nr+   r   r"   )rC   r  r$   r%   r$  _geom_preparedprepare)arroriginals     r   test_preparer5    s    
((GNN1a($Aq!Q0GH
ICq6  A%%%q6  A%%%OOCq6  A%%%q6>>q6  A%%% 1v$$HOOCq6  H,,,r    c            
         [         R                  " [        R                  " SS5      S [        R                  " SSSS5      /5      n [        R
                  " U 5        U S   R                  S:w  d   eU S   R                  S:w  d   e[        R                  " U 5        U S   R                  S:X  d   eU S   b   eU S   R                  S:X  d   e[        R                  " U 5        g r0  )rC   r  r$   r%   r$  r2  r1  destroy_prepared)r3  s    r   test_destroy_preparedr8    s    
((GNN1a($Aq!Q0GH
ICOOCq6  A%%%q6  A%%%S!q6  A%%%q6>>q6  A%%%S!r    	geom_typer   c                     [         R                  " SU S9n[         R                  " U5      R                  5       (       d   eg N)r"   )r9  )r$   r   
is_missingallr9  r(   s     r   test_empty_missingr?    s2    ]]495Ff%))++++r       c                 8   [         R                  " SU S9n[         R                  " U5      ) R                  5       (       d   e[         R                  " U5      R                  5       (       d   e[         R
                  " U5      U :H  R                  5       (       d   eg r;  )r$   r   r<  r=  r   get_type_idr>  s     r   
test_emptyrC    sz    ]]495F'',,....F#''))))'9499;;;;r    )o__doc__numpyrC   r4   numpy.testingr   r$   r   r   r   r   r   r	   r
   r   shapely.testingr   shapely.tests.commonr   r   r   r   r   r   r   r   r   r   r   r)   r,   r.   r7   markskipifgeos_versionrF   rH   rK   parametrizeparamrD   rU   infrY   r]   rd   rh   ro   rq   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   r   r   r   r   r   r  r  r  r  r  r  multipointsmultilinestringsmultipolygonsgeometrycollectionsr  r  r  r  r&  r)  r+  r.  r5  r8  MISSINGr?  rangerC  r   r    r   <module>rU     s   F   , 	 	 	 4  <P
P
V
 !$??)  '	'
 !$66#  '	'
 G((!,7O) P)
 G((:5mLVVRVV++$$$$z1- % 	
 	VVRVVRVV$#++$$$$z1- % 	
 RVVo&
&&!o&
&&!RVV	34
&&"&&!	34%.&/ M0&
 $
RVVfm,
&&!fm,
RVVQ1
Q1
Q-(	G./
RVVfm,&&
 	
BFF		
Arvv	
BFF	
RVVG	3	3
B

H
 A'. (. 
$
 ,,
$, 
Q!U5\"#
Qe	1eEl34	Q5<()
Qe	y)
,e	%eeEl'CD	'	' 
U5\	QFQF+
Q!U5\"QF+
Q!Q!U5\*+BB
L
U

R
R
$
 
$
$%"$ A'3*-1 . (1" 
Q!U5\"QFQF3
Q%,"QFQF3	U5\1a()Y?	Q5<()Y?	'' 	
Qea	#_5	1auq!45
Q1eEl	#_5
,1a	#_5	RR
P


W
X
W
E
 
/
/
(
(	(999!
 
!
!5
 
5
5 			jl+		!	!?#45			/		$	$&8&:;	..
 			e$		!	!;/		!	!;/			(		$	$e,		$	$k2		$	$k2		$	$g.		$	$k2		$	$&78		$	$m4		$	$&9:"3#"3
 			e$		!	!;/			(		$	$g.	33
 			k*			12			k*		!	!5)		!	!7+		!	!#45			,			,			.

 	tW%MNO<=	

.
.
  Aq6Aq6"@A@A	
 Aq6Aq6"5M@A@A	
*.+*.
 	(	Aq	
BFFAq	
Arvvq	
Aq"&&	(	(&-	" t\-A-A2&FG, H,
 eAh/< 0<r    