
    (&hIW                     B   d Z 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	m
Z
mZ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 d Zd Zd	 Zd
 Zd Z ej!        "                    ej#        dd         dvd          d             Z$ej!        "                    ej#        dd         dvd          d             Z%ej!        "                    ej#        dd         dk    d          d             Z&ej!        "                    ej#        dk     d          ej!        '                    d ej(        ej)        ej)        gdej!        "                    ej#        dk     d                     ej(        ej)        ej)        ej)        gdej!        "                    ej#        dk     d                    dej)        gd fej)        dgd!fej)        dej)        gd"fej)        ej)        dgd#fg          d$                         Z*ej!        '                    d%dej)        gd&d'fej)        dgd&d'fdej)        dgd&d(fddej)        gd&d(fddgd)d*fg d+d)d,fdej+        gd&d'fg          d-             Z,ej!        '                    d.dej)        gej)        dgddej)        gdej+        gdej+         gg          d/             Z-d0 Z.d1 Z/d2 Z0d3 Z1ej!        '                    d4dd5g          d6             Z2d7 Z3d8 Z4ej!        '                    d9g d:          d;             Z5d< Z6ej!        '                    d.ddgd e7d=          ggdd e7d=          gdd e7d=          ggg d+dd e7d=          ggdd e7d=          gg d>g e7d=           e7d=          g e7d=           e7d=          ggg          d?             Z8ej!        '                    d.d e7d=          gddgdd5ggddgd e7d=          gdd5ggddgdd5gd e7d=          ggg          d@             Z9dA Z:dB Z;dC Z<dD Z=dE Z>dF Z?dG Z@dH ZAdI ZBej!        '                    d9g dJ          dK             ZCdL ZDdM ZEej!        '                    d4dd5g          ej!        '                    dNdOdPg          dQ                         ZFej!        '                    d.ddgd e7d=          gdd5gddggddg e7d=          dgdd5gddggg dR e7d=          ddSgg dTg dRgg dRdd e7d=          gg dTg dRgg          dU             ZGej!        '                    dVdd e7d=          ddgg dWfg dXd5dY e7d=          dSd5gfdddd e7d=          gg dZf e7d=          ddddgg d[fg          d\             ZHd] ZId^ ZJd_ ZKd` ZLda ZMdb ZNdc ZOdd ZPde ZQdf ZRdg ZSdh ZTdi ZUdj ZVdk ZWdl ZXdm ZYej!        '                    d9g dJ          dn             ZZdo Z[ej!        '                    d9g dJ          dp             Z\ej!        '                    dqej]         e            fej^         e            fej_         e            fej`         e            fg          dr             Zaej!        '                    dsej]        efej^        efej^        efej_        efej`        efej`        efej`        efej`        efej`        efej`        efej`        efej`        efg          dt             Zbej!        '                    dsej]        efej^        efej_        efej`        efg          du             Zcej!        '                    dsej]        efej]        efej]        efej^        efej^        efej^        efej_        efej_        efej_        efg	          dv             Zdej!        '                    dwdxdy eg dz          fdxd{ eg d|          fg          d}             Zeej!        '                    dwddddgddgfdy eg dz           eg d~          gfddddgddgfdyd{g eg dz           eg d          gfg          d             Zfej!        '                    d.ej)        ej)        ej)        ej)        gej)        dddgdej)        ddgddej)        dgdddej)        gg          d             Zgd Zhd Zid Zjej!        '                    ddejk        dg          d             Zlej!        '                    d emd                    d             ZndS )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                 $    ||f||f| |f| |f||ffS N )x1y1x2y2s       V/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/test_creation.pybox_tplr   #   s'    8b"XBx"bB8;;    c                      t          j        ddgddgg          } t          | t          j        dd          t          j        dd          g           d S )Nr      shapelypointsr   Pointactuals    r   test_points_from_coordsr)   '   sQ    ^aVaV,--FFW]1a%8%8'-1:M:M$NOOOOOr    c                      t          j        dddg          } t          | t          j        dd          t          j        dd          g           d S )Nr"   r      r#   r'   s    r   test_points_from_xyr,   ,   sJ    ^A1v&&FFW]1a%8%8'-1:M:M$NOOOOOr    c            	          t          j        ddddg          } t          | t          j        ddd          t          j        ddd          g           d S )Nr+   r   r#   r'   s    r   test_points_from_xyzr.   1   sQ    ^Aq1a&))FFW]1a%;%;W]1aQR=S=S$TUUUUUr    c                  *   t          j        t          d          5  t          j        g d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        dg           d d d            d S # 1 swxY w Y   d S )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	M	M % %|||$$$% % % % % % % % % % % % % % % 
z)L	M	M	M  s                 s!   ?AA%BBBr"   )r2   
   r2      r2      zGEOS not in 3.10, 3.11, 3.12)reasonc                  r    t          j        t          j        t          j                  } | j        dk    sJ d S NPOINT EMPTYr$   r%   npnanwktr'   s    r   %test_points_nan_all_nan_becomes_emptyrF   >   s2    
 ^BFBF++F:&&&&&&r    )r8   r:   zGEOS not in 3.10, 3.11c                      t          j        t          j        t          j        t          j                  } | j        dk    sJ d S r@   rB   r'   s    r   +test_points_nan_3D_all_nan_becomes_empty_2DrH   G   s6    
 ^BFBFBF33F:&&&&&&r    r<   zGEOS != 3.12c                      t          j        t          j        t          j        t          j                  } | j        dk    sJ d S )NPOINT Z EMPTYrB   r'   s    r   (test_points_nan_3D_all_nan_becomes_emptyrK   P   s4    ^BFBFBF3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                 L    t          j        | d          }|j        |k    sJ d S )Nallow
handle_nanr$   r%   rE   )coordsexpected_wktr(   s      r   test_points_handle_nan_allowrU   V   s1    2 ^Fw777F:%%%%%%r    zcoords,handle_nan,expected_wktskiprA   rJ   errorzPOINT (0 1))r   r+   r"   zPOINT Z (0 1 2)c                 H    t          j        | |          }|j        |v sJ d S )NrP   rR   )rS   rQ   rT   r(   s       r   test_points_handle_nanrY   s   s1     ^Fz:::F:%%%%%%r    rS   c                     t          j        t          d          5  t          j        | d           d d d            d S # 1 swxY w Y   d S )N.*NaN.*r0   rW   rP   r3   rS   s    r   test_points_handle_nan_errorr]      s     
z	3	3	3 3 3v'22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   A  AAc                      t          j        ddgddggddgddggg          } t          | t          ddg          t          ddg          g           d S )Nr   r+   r"   r   r   r+   r+   r"   r"   r$   linestringsr   r   r'   s    r   test_linestrings_from_coordsrd      su     Aq6Aq6"2aVaV4D!EFFF'(('((	
    r    c                  v    t          j        ddgddg          } t          | t          ddg                     d S )Nr   r+   r"   r2   r   r"   r+   r2   rb   r'   s    r   test_linestrings_from_xyrh      s?     !Q!Q00FFJ/?$@$@AAAAAr    c                      ddg} ddgddgf}t          j        | |          }t          |t          ddg          t          d	d
g          g           d S )Nr   r+   r"   r2         rf   rg   )r   rj   )r+   rk   rb   xyr(   s      r   "test_linestrings_from_xy_broadcastro      sr    	
AA	
AAA A&&F'(('((	
    r    c                  x    t          j        ddgddgd          } t          | t          ddg                     d S )Nr   r+   r"   r2   )r   r"   r   )r+   r2   r   rb   r'   s    r   test_linestrings_from_xyzrq      sA     !Q!Q33FFJ	9/E$F$FGGGGGr    dimr2   c           	      (   t           j                            dd|           }t          j        |d          }t	          j        |          }t          j        |d          }t	          j        |          }t          ||           t          j        t          j        t          j        |dd          dd          d          }t          j        t          j        |dd          dd          }t	          j        |          }t          ||           d S )	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    Y__RC((Fjs+++G!'**Gj,,,G!'**GGW--- jR[A%>%>1EESQQQGk"+gq!44a;;G!'**GGW-----r    c                  d    t          j        t          j        d                    } | j        sJ d S Nrf   )r$   rc   rC   emptyis_emptyr'   s    r   test_linestrings_emptyr      0     &!1!122F?r    c                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S Nr`   )r4   r5   r6   r$   rc   r   r    r   %test_linestrings_invalid_shape_scalarr          	z	"	" $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $   <A A shape)r"   r+   r"   r+   r+   r"   r+   r"   c                     t          j        t          j                  5  t          j        t          j        |                      d d d            d S # 1 swxY w Y   d S r   )r4   r5   r$   GEOSExceptionrc   rC   ones)r   s    r   test_linestrings_invalid_shaper      s     
w,	-	- , ,BGENN+++, , , , , , , , , , , , , , , , , ,s   'AAAc                  P   d} t          j        dd          }t          j        t          |                     d                    5  t          j        |           d d d            n# 1 swxY w Y   t          j        dd          }t          j        t          |                     d                    5  t          j        |           d d d            n# 1 swxY w Y   t          j        t          j        t          j        d          dd	          d
d          }t          j        t          j        t          j	        |d          dd	          d
d	          }t          j        t          |                     d                    5  t          j        |           d d d            n# 1 swxY w Y   t          j        d          }t          j        t          |                     d
                    5  t          j        |           d d d            d S # 1 swxY w Y   d S )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      s   
ECWZs+++F	zA	7	7	7 $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ WZs+++F	zA	7	7	7 $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ [RWZ%8%8!Q??AFFF[RZc%B%B%BAqII1aPPF	zA	7	7	7 $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ WZ  F	zA	7	7	7 $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $sH   A((A,/A,7CCCF,,F03F09HH"HrD   )r"   r"   r2   c                     t                      5  t          j        | d          }d d d            n# 1 swxY w Y   t          j        |t	          | d                   dk              }t          ||            d S NrO   rP   r   r2   )	include_z)r   r$   rc   get_coordinateslenr   rS   r(   s     r   !test_linestrings_handle_nan_allowr      s     
		 A A$V@@@A A A A A A A A A A A A A A A$Vs6!9~~7JKKKFvv&&&&&   266c                 p    t          j        | d          }t          |t          ddg                     d S )NrV   rP   r   r+   )r"   r2   rb   r   s     r    test_linestrings_handle_nan_skipr     s<      F;;;FFJ/?$@$@AAAAAr    c                      t          j        t          j                  5  t          j        ddgdt          d          ggd           d d d            d S # 1 swxY w Y   d S )Nr   r+   r"   rD   rV   rP   )r4   r5   r$   r   rc   floatr   r    r   (test_linestrings_handle_nan_skip_invalidr     s    	w,	-	- L LaVau%67FKKKKL L L L L L L L L L L L L L L L L Ls   *AAAc                      t          j        t          j        dt          j                  d          } | j        sJ d S )N)r2   r"   
fill_valuerV   rP   )r$   rc   rC   fullrD   r   r'   s    r   )test_linestrings_handle_nan_skip_only_nanr     s=     BF!C!C!CPVWWWF?r    c                      t          j        t          d          5  t          j        ddgdt          d          gddggd	           d d d            d S # 1 swxY w Y   d S )
Nr[   r0   r   r+   r"   rD   r2   rW   rP   )r4   r5   r6   r$   rc   r   r   r    r   !test_linestrings_handle_nan_errorr     s    	z	3	3	3 U UaVau%6A?GTTTTU U U U U U U U U U U U U U U U U Us   -AAAc                      t          j        t          dddd                    } t          | t	          g d                     d S Nr   r+   r+   r   r`   r   r_   r   r$   linearringsr   r   r   r'   s    r   test_linearringsr   "  sP     Aq!!4!455F
CCCDD    r    c                  d    t          j        t          j        d                    } | j        sJ d S r   )r$   r   rC   r   r   r'   s    r   test_linearrings_emptyr   )  r   r    c                  v    t          j        g dg d          } t          | t          g d                     d S )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   .  sA     |||<<FFJ/O/O/O$P$PQQQQQr    c                      t          j        t          dddd          d d                   } t          | t	          g d                     d S )Nr   r+   r   r   r'   s    r   test_linearrings_unclosedr   3  sY     Aq!!4!4SbS!9::F
CCCDD    r    c                  p    t          j        g d          } t          | t          g d                     d S )N)r_   r_   r_   )r_   r_   r_   r_   r   r'   s    r   *test_linearrings_unclosed_all_coords_equalr   :  s>     !9!9!9::FFJ/O/O/O$P$PQQQQQr    c                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S 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                 d   t          j        |           }t          j        t                    5  t          j        |           d d d            n# 1 swxY w Y   |dxx         dz  cc<   t          j        t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S N.r+   r+   )rC   r   r4   r5   r6   r$   r   r   rS   s     r   test_linearrings_invalid_shaper   D  s$    WU^^F	z	"	" $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 6NNNaNNN	z	"	" $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $#   AAAB%%B),B)c                     d} t           j                            ddd          }t          j        t
          |                     d                    5  t          j        |           d d d            n# 1 swxY w Y   t          j	        ||d d dgd d f         f          }t          j        t
          |                     d                    5  t          j        |           d d d            n# 1 swxY w Y   t           j                            ddd          }t          j        t
          |                     d                    5  t          j        |           d d d            d S # 1 swxY w Y   d S )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ioob!Q''G	zA	7	7	7 % %G$$$% % % % % % % % % % % % % % % i'!!!aS!!!)"4566G	zA	7	7	7 % %G$$$% % % % % % % % % % % % % % % ioob!Q''G	zA	7	7	7 % %G$$$% % % % % % % % % % % % % % % % % %s6   A33A7:A7C11C58C5E--E14E1c                      t          j        dt           j                  } t          j        t
          j                  5  t          j        |            d d d            d S # 1 swxY w Y   d S )N)rj   r"   )rC   r   rD   r4   r5   r$   r   r   r\   s    r   test_linearrings_all_nanr   k  s    WVRV$$F	w,	-	- $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   A  A$'A$rv   rt   rw   c                    t           j                            dd|           }t          j        ||          }t	          j        |          }t          j        ||d d dgd d f         f          }t          j        ||          }t	          j        |          }t          ||           t          j        |d         |          }t	          j        |          }t          ||d                    d S )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     ioob!S))Gj...G!'**G i'!!!aS!!!)"4566Gj...G!'**GGW--- j5111G!'**GGWQZ00000r    )r   r"   rk   rk   )r+   r2   rk   c                     t                      5  t          j        | d          }d d d            n# 1 swxY w Y   t          j        |t	          | d                   dk              }t          ||            d S r   )r   r$   r   r   r   r   r   s     r   !test_linearrings_handle_nan_allowr     s     
		 A A$V@@@A A A A A A A A A A A A A A A$Vs6!9~~7JKKKFvv&&&&&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    t          j        | |d          }t          |t          g d                     d S )NrV   rP   r   r   rl   s      r    test_linearrings_handle_nan_skipr     s@      A&999FFJ/O/O/O$P$PQQQQQr    c                      t          j        t                    5  t          j        dt          d          dgg dd           d d d            d S # 1 swxY w Y   d S )Nr   rD   )r2   rj   r2   rV   rP   r4   r5   r6   r$   r   r   r   r    r   (test_linearrings_handle_nan_skip_invalidr     s    	z	"	" P PQea0)))OOOOP P P P P P P P P P P P P P P P P Ps   *AAAc                      t          j        t          j        dt          j                  d          } | j        sJ d S )N)rk   r"   r   rV   rP   )r$   r   rC   r   rD   r   r'   s    r   )test_linearrings_handle_nan_skip_only_nanr     s=     BF!C!C!CPVWWWF?r    c                      t          j        t          d          5  t          j        ddt          d          ddgg dd	           d d d            d S # 1 swxY w Y   d S )
Nr[   r0   r   r+   rD   r"   r   rW   rP   r   r   r    r   !test_linearrings_handle_nan_errorr     s    	z	3	3	3 
 
5<<A&G	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   ,AAAc            
          t          j        t          j        t          dddd                              } t	          | t          g d                     d S r   )r$   polygonsr   r   r   r   r'   s    r   test_polygon_from_linearringr     sP    g1'!Q12E2EFFGGFFG,T,T,T$U$UVVVVVr    c                      t          t          j        d           t                     t          t          j        d t          g          t                     d S )N)holes)r   r$   r   r   r   r   r    r   test_polygons_noner     sE    G,T22MBBBG,T+GGGWWWWWr    c                      t          j        t          dddd                    } t          | t	          g d                     d S r   )r$   r   r   r   r   r'   s    r   test_polygonsr     sE    gaAq1122FFG,T,T,T$U$UVVVVVr    c            
          t          j        t                    5  t          j        t          dddd          t          dddd                     d d d            d S # 1 swxY w Y   d S )Nr   r9   r+   r"   )r4   r5   r6   r$   r   r   r   r    r    test_polygon_no_hole_list_raisesr     s    	z	"	" E EAr2..1a0C0CDDDE E E E E E E E E E E E E E E E E Es   6AA!$A!c                      t          j        t          t          j        f          5  t          j        t                     d d d            d S # 1 swxY w Y   d S r   )r4   r5   	TypeErrorr$   r   r   r   r   r    r   test_polygon_no_hole_wrong_typer     s    		7#89	:	:                                       s   AAAc                      t          j        t          t          j        f          5  t          j        t          t          g           d d d            d S # 1 swxY w Y   d S r   )r4   r5   r   r$   r   r   r   r   r   r    r   !test_polygon_with_hole_wrong_typer     s    		7#89	:	: / /.../ / / / / / / / / / / / / / / / / /   !AAAc                      t          j        t          t          j        f          5  t          j        t          t          g           d d d            d S # 1 swxY w Y   d S r   )r4   r5   r   r$   r   r   r   r   r   r    r   test_polygon_wrong_hole_typer     s    		7#89	:	: / /ug.../ / / / / / / / / / / / / / / / / /r   c            	          t          j        t          dddd          t          dddd          g          } t          j        |           dk    sJ d S )Nr   r9   r+   r"        X@r$   r   r   arear'   s    r   test_polygon_with_1_holer     sT    gaB33gaAq6I6I5JKKF<4''''''r    c            
          t          j        t          dddd          t          dddd          t          dddd          g          } t          j        |           dk    sJ d S Nr   r9   r+   r"   r2   rj        X@r   r'   s    r   test_polygon_with_2_holesr     sk    1b"1a 3 3WQ1a5H5HI F <4''''''r    c                  6   t          j        t          j        t          dddd                    t          j        t          dddd                    d t          j        t          dddd                    g          } t          j        |           dk    sJ d S r   )r$   r   r   r   r   r'   s    r   test_polygon_with_none_holer     s    GAq"b11221a 3 3441a 3 344	
 F <4''''''r    c            	          t          j        t          dddd          t          dddd          gt          dddd          g          } t          j        |                                           ddgk    sJ d S )Nr   r9   rk   r+   r"   r         8@r$   r   r   r   tolistr'   s    r   test_2_polygons_with_same_holer     s~    	Ar2		1a 3 34wq!Q7J7J6K F <&&((T4L888888r    c            
         t          j        t          dddd          t          dddd          gt          dddd          t          dddd          g          } t          j        |                                           dd	gk    sJ d S )
Nr   r9   rk   r+   r"   r2   rj   r   g      7@r   r'   s    r   !test_2_polygons_with_2_same_holesr    s    	Ar2		1a 3 34	Aq!		gaAq112 F <&&((T4L888888r    c            
         t          j        t          dddd          t          dddd          gt          dddd          gt          dddd          gg          } t          j        |                                           ddgk    sJ d S )	Nr   r9   rk   r+   r2   r"   g      X@r   r   r'   s    r   $test_2_polygons_with_different_holesr    s    	Ar2		1a 3 34
!Q1

	Aq!!4!4 56 F <&&((T4L888888r    c                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S r   )r4   r5   r6   r$   r   r   r    r   /test_polygons_not_enough_points_in_shell_scalarr    s    	z	"	" ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !r   c                 d   t          j        |           }t          j        t                    5  t          j        |           d d d            n# 1 swxY w Y   |dxx         dz  cc<   t          j        t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S r   rC   r   r4   r5   r6   r$   r   r   s     r   (test_polygons_not_enough_points_in_shellr    s$    WU^^F	z	"	" ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 6NNNaNNN	z	"	" ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !r   c                      t          j        t                    5  t          j        t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nr+   rj   r"   r`   )r4   r5   r6   r$   r   rC   r   r   r    r   /test_polygons_not_enough_points_in_holes_scalarr  !  s    	z	"	" 5 5++V4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   (AAAc                    t          j        |           }t          j        t                    5  t          j        t          j        d          |           d d d            n# 1 swxY w Y   |dxx         dz  cc<   t          j        t                    5  t          j        t          j        d          |           d d d            d S # 1 swxY w Y   d S )Nr
  r   r+   r  r   s     r   (test_polygons_not_enough_points_in_holesr  &  s<    WU^^F	z	"	" 5 5++V4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6NNNaNNN	z	"	" 5 5++V4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s#   (A""A&)A&(CCCzfunc,expectedc                 p     | t          j        d gt                              }t          ||           d S )N)dtype)rC   arrayobjectr   )funcexpectedr(   s      r    test_create_collection_only_noner  <  s:     T"(D600011FFH-----r    zfunc,sub_geomc                 T     | ||g          }t          j        |          dk    sJ d S Nr"   r$   get_num_geometriesr  sub_geomr(   s      r   test_create_collectionr  J  s:    $ T8X&''F%f--222222r    c                 X     | |d d |g          }t          j        |          dk    sJ d S r  r  r  s      r   !test_create_collection_skips_noner  `  s>     T8T4233F%f--222222r    c                     t          j        t                    5   | |g           d d d            d S # 1 swxY w Y   d S r   )r4   r5   r   )r  r  s     r   &test_create_collection_wrong_geom_typer  n  s     
y	!	!  hZ                 s   488zcoords,ccw,expected)r   r   r+   r+   Tr   F)r_   r   r`   r   r_   c                 H    t          j        | d|i}t          ||           d S Nccwr$   boxr   rS   r"  r  r(   s       r   test_boxr&    s.     [&*c**FFH-----r    )r"   r   ra   rf   r_   r'  )r_   rf   ra   r'  r_   c                 H    t          j        | d|i}t          ||           d S r!  r#  r%  s       r   test_box_arrayr)    s.    , [&*c**FFH-----r    c                 &    t          j        |  J d S r   )r$   r$  r\   s    r   test_box_nanr+    s     ;'''''r    c                      t          j        d          5  t          j        ddddd           d d d            d S # 1 swxY w Y   d S )Nz1positional argument `ccw` for `box` is deprecatedr0   r   r+   T)r4   deprecated_callr$   r$  r   r    r   test_box_deprecate_positionalr.    s    		A
 
 
 & & 	Aq!Q%%%& & & & & & & & & & & & & & & & & &s   <A A c            
         t          j        t          j        dd          d t          j        dddd          g          } | d         j        dk    sJ | d         j        dk    sJ t          j        |            | d         j        dk    sJ | d         J | d         j        dk    sJ | d         j        }t          j        |            | d         j        |k    sJ d S Nr+   r   r"   )rC   r  r$   r%   r$  _geom_preparedprepare)arroriginals     r   test_preparer5    s    
(GN1a(($Aq!Q0G0GH
I
ICq6 A%%%%q6 A%%%%OCq6 A%%%%q6>>>q6 A%%%% 1v$HOCq6 H,,,,,,r    c            
         t          j        t          j        dd          d t          j        dddd          g          } t          j        |            | d         j        dk    sJ | d         j        dk    sJ t          j        |            | d         j        dk    sJ | d         J | d         j        dk    sJ t          j        |            d S r0  )rC   r  r$   r%   r$  r2  r1  destroy_prepared)r3  s    r   test_destroy_preparedr8    s    
(GN1a(($Aq!Q0G0GH
I
ICOCq6 A%%%%q6 A%%%%S!!!q6 A%%%%q6>>>q6 A%%%%S!!!!!r    	geom_typer   c                     t          j        d|           }t          j        |                                          sJ d S N)r"   )r9  )r$   r   
is_missingallr9  r(   s     r   test_empty_missingr?    s?    ]49555Ff%%))+++++++r       c                 ,   t          j        d|           }t          j        |                                           sJ t          j        |                                          sJ t          j        |          | k                                    sJ d S r;  )r$   r   r<  r=  r   get_type_idr>  s     r   
test_emptyrC    s    ]4955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 F      , , , , , , 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 4 3 3 3 3 3                       < < <P P P
P P P
V V V
   !$??)   ' '	 '
 !$66#   ' '	 '
 G(!,7OO) ) PO)
 G(:5mLLVRV+$$$z1- %  	
 	
 	
 	VRVRV$#+$$$z1- %  	
 	
 	
 RVo&
&!o&
&!RV	34
&"&!	34% .& &/  ML0&
 $
RVfm,
&!fm,
RVQ1
Q1
Q-(	G./
RVfm, & & &
 	
BF		
Arv	
BF	
RVG	 	3 3	 	3
  B B B

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