
    Og                        d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlZd dlZd dlZd dlmZmZ ej$                  d        Zej$                  d        Zd	 Zd
 Zej.                  j1                  ej2                  j5                  d      xr# ej6                  dk(  xs ej6                  dd dk(  d      d        Zd Z G d d      Zd Zej.                  jA                  dg d      d        Z!ej.                  jA                  dg d      d        Z"ej.                  jA                  dddg      d        Z#ej.                  jA                  dddg      d        Z$ed        Z%d  Z&d! Z'd" Z(ej.                  jA                  d# ejR                  d$e*%      fi fd&d' ejR                  d$e*%      ifd(gfi fd&d'd(gifd&d) ejR                  d$e+%      ifd&d* ejR                  d$e+%      ifg      d+        Z,y),    N)cleandoc)chain)ascii_lettersdigits)mock)multithreading_enabledrequires_geosc               #      K   t         j                  j                  t        j                  dd      5  d d d d        y # 1 sw Y   y xY ww)Ngeos_version)         )new3.7.1)r   patchobjectshapelylib     \/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/shapely/tests/test_misc.pymocked_geos_versionr      s<     			7;;I		F   s   1AA	AA
Ac               #   \   K   dt         j                  d<   d  t         j                  d= y w)N1SPHINX_DOC_BUILD)osenvironr   r   r   sphinx_doc_buildr      s%     %(BJJ!"	


%&s   *,c                  D    t        t        j                  t              sJ y N)
isinstancer   __version__strr   r   r   test_versionr$      s    g))3///r   c                  
    dj                   t        j                   } t        j                  }t	        d |D              r=|d   j                         r|j                  t              }|j                  t              }|| k(  sJ y )Nz{}.{}.{}c              3   <   K   | ]  }|j                           y wr    isalpha.0cs     r   	<genexpr>z$test_geos_version.<locals>.<genexpr>%   s     
'1199;
'   )	formatr   r   geos_version_stringany	isnumericrstripr   r   )expectedactuals     r   test_geos_versionr6       so     z  '"6"67H((F 
'
''":!]]6*F}-Xr   win)r      r8      )r   r   z=GEOS_C_API_VERSION broken for GEOS 3.6.6 and 3.7.x on Windows)reasonc                      dj                   t        j                  t        j                  z    } t        j                  j                  d      \  }}t        d |D              r=|d   j                         r|j                  t              }|j                  t              }|j                  t              }| d| | k(  sJ y )Nz{}.{}.{}-CAPI-{}.{}.{}z-CAPI-c              3   <   K   | ]  }|j                           y wr    r'   r)   s     r   r,   z)test_geos_capi_version.<locals>.<genexpr>=   s     
41199;
4r-   r.   )r/   r   r   geos_capi_versiongeos_capi_version_stringsplitr1   r2   r3   r   r   )r4   actual_geos_versionactual_geos_api_versions      r   test_geos_capi_versionrB   -   s     /'..


!:!:
:H 	((..x8 
4 3
44r",,."5"<"<V"D188G-44]C!"&)@(ABhNNNr   c                       y)zKDocstring that will be mocked.
    A multiline.

    Some description.
    Nr   r   r   r   funcrD   F       r   c                       e Zd Zd Zy)	SomeClassc                      y)zWDocstring that will be mocked.
        A multiline.

        Some description.
        Nr   )selfs    r   rD   zSomeClass.funcO   rE   r   N)__name__
__module____qualname__rD   r   r   r   rG   rG   N   s    r   rG   c                  r     dj                   di | }t        j                  d d dk\  rt        |      dz   S |S )NzDocstring that will be mocked.
{indent}A multiline.

{indent}.. note:: 'func' requires at least GEOS {version}.

{indent}Some description.
{indent}r9   )r      
r   )r/   sysversion_infor   )kwdsdocs     r   expected_docstringrT   W   sQ      F C w& }t##Jr   version)z3.7.0r   z3.6.2c                 B     t        |       t              }|t        u sJ y r    )r	   rD   rU   r   wrappeds      r   test_requires_geos_okrY   i   s    $mG$T*Gd??r   )z3.7.23.8.0z3.8.1c                      t        |       t              }t        j                  t        j
                  j                        5   |        d d d        |j                  t        | d      k(  sJ y # 1 sw Y   &xY w)N    rU   indent)	r	   rD   pytestraisesr   errorsUnsupportedGEOSVersionError__doc__rT   rW   s      r   test_requires_geos_not_okrd   o   s_    $mG$T*G	w~~AA	B 	 ??0QQQQ s   A00A9z3.6.0rZ   c                 f     t        |       t              }|j                  t        | d      k(  sJ y)z8The requires_geos decorator always adapts the docstring.r\   r]   N)r	   rD   rc   rT   rU   r   r   rX   s       r   test_requires_geos_doc_buildrg   x   s/     %mG$T*G??0QQQQr   c                 z     t        |       t        j                        }|j                  t	        | d      k(  sJ y)z@The requires_geos decorator adjusts methods docstrings correctlyz        r]   N)r	   rG   rD   rc   rT   rf   s       r   test_requires_geos_methodri      s3     %mG$Y^^4G??0QQQQr   c                 l    t        ||j                               D ]  }t        |d      s| |d<   |c S  y )N__setitem__r   )r   valueshasattr)valueargskwargsargs       r   set_first_elementrr      s6    T6==?+ 3&CFJr   c                      t        j                  dt              } t        j                  t
              5  t        d|        d d d        d| d<   | d   dk(  sJ y # 1 sw Y   xY w)Nr   dtype*   r   )npemptyr   r_   r`   
ValueErrorrr   arrs    r   &test_multithreading_enabled_raises_argr}      sZ    
((4v
&C 
z	" #"c"# CFq6R<<# #s   AA#c                      t        j                  dt              } t        j                  t
              5  t        d|        d d d        | j                  j                  sJ y # 1 sw Y   "xY w)Nrt   ru   rw   r{   )	rx   ry   r   r_   r`   rz   rr   flags	writeabler{   s    r   (test_multithreading_enabled_raises_kwargr      sT    
((4v
&C 
z	" '"#&' 99	' 's   A$$A-c                      t        j                  dt              } d| j                  _        t        j                  t              5  t        d|        d d d        | j                  j                  rJ y # 1 sw Y   "xY w)Nrt   ru   Frw   )	rx   ry   r   r   r   r_   r`   rz   rr   r{   s    r   *test_multithreading_enabled_preserves_flagr      sc    
((4v
&CCII 
z	" #"c"# yy"""""	# #s   A44A=zargs,kwargsrt   ru   r   ar   outwherec                 6    t        dg| i |}|d   dk(  sJ y )Nrw   r   )rr   )ro   rp   results      r   test_multithreading_enabled_okr      s(     r3D3F3F!9??r   )-r   rP   inspectr   	itertoolsr   stringr   r   unittestr   numpyrx   r_   r   shapely.decoratorsr   r	   fixturer   r   r$   r6   markskipifplatform
startswithr   rB   rD   rG   rT   parametrizerY   rd   rg   ri   rr   r}   r   r   ry   floatr   r   r   r   r   <module>r      sS   	 
   (     D  
 ' '0
 LLE" R				*	Pg.B.B2A.F&.PJ  
O
O( $ $?@ A
 $?@R AR Wg$67R 8R Wg$67R 8R  		# 
"((4u
%	',	c8288D./0#	cA3Z	eXRXXd&123hbhht623	

r   