
    (&h                     F   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d Zd Z G d d          Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dddg          d             Zej                            dddg          d             Z ed             Z!d Z"d Z#d Z$ej                            d ej%        de&          fi fd d! ej%        de&          ifd"gfi fd d!d"gifd d# ej%        de'          ifd d$ ej%        de'          ifg          d%             Z(dS )&    N)cleandoc)chain)ascii_lettersdigits)mock)multithreading_enabledrequires_geosc               #      K   t           j                            t          j        dd          5  dV  d d d            d S # 1 swxY w Y   d S )Ngeos_version)   
      )new3.10.1)r   patchobjectshapelylib     R/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/test_misc.pymocked_geos_versionr      s      			7;J		G	G                   s   AAAc               #   J   K   dt           j        d<   d V  t           j        d= d S )N1SPHINX_DOC_BUILD)osenvironr   r   r   sphinx_doc_buildr      s-      %(BJ!"	EEE

%&&&r   c                  H    t          t          j        t                    sJ d S N)
isinstancer   __version__strr   r   r   test_versionr$      s!    g)3///////r   c                  $    dj         t          j         } t          j        }t	          d |D                       rN|d                                         r|                    t                    }|                    t                    }|| k    sJ d S )Nz{}.{}.{}c              3   >   K   | ]}|                                 V  d S r    isalpha.0cs     r   	<genexpr>z$test_geos_version.<locals>.<genexpr>%   s*      
'
'1199;;
'
'
'
'
'
'r   )	formatr   r   geos_version_stringany	isnumericrstripr   r   )expectedactuals     r   test_geos_versionr5       s     z '"67H(F 
'
'
'
'
''' .":!! 	+]]6**F}--Xr   c                      dj         t          j        t          j        z    } t          j                            d          \  }}t          d |D                       rN|d                                         r|                    t                    }|                    t                    }|                    t                    }| d| | k    sJ d S )Nz{}.{}.{}-CAPI-{}.{}.{}z-CAPI-c              3   >   K   | ]}|                                 V  d S r    r'   r)   s     r   r,   z)test_geos_capi_version.<locals>.<genexpr>8   s*      
4
41199;;
4
4
4
4
4
4r   r-   )r.   r   r   geos_capi_versiongeos_capi_version_stringsplitr0   r1   r2   r   r   )r3   actual_geos_versionactual_geos_api_versions      r   test_geos_capi_versionr=   -   s    .'.

!:
:H 	(..x88 
4
4 3
4
4
444 Hr",,.. 	E"5"<"<V"D"D188GG-44]CC!BB)@BBhNNNNNNr   c                      dS )zKDocstring that will be mocked.
    A multiline.

    Some description.
    Nr   r   r   r   funcr?   A         r   c                       e Zd Zd ZdS )	SomeClassc                     dS )zWDocstring that will be mocked.
        A multiline.

        Some description.
        Nr   )selfs    r   r?   zSomeClass.funcJ   r@   r   N)__name__
__module____qualname__r?   r   r   r   rB   rB   I   s#            r   rB   c                  t     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}   )r      
r   )r.   sysversion_infor   )kwdsdocs     r   expected_docstringrP   R   s]         C w&& }}t##Jr   version)3.10.0r   z3.9.2c                 j     t          |           t                    } |             |t          u sJ d S r    )r	   r?   rQ   r   wrappeds      r   test_requires_geos_okrV   b   s5    $mG$$T**GGIIId??????r   )z3.10.2z3.11.0z3.11.1c                     t          |           t                    }t          j        t          j        j                  5   |             d d d            n# 1 swxY w Y   |j        t          | d          k    sJ d S )N    rQ   indent)	r	   r?   pytestraisesr   errorsUnsupportedGEOSVersionError__doc__rP   rT   s      r   test_requires_geos_not_okr`   i   s    $mG$$T**G	w~A	B	B  			               ?0QQQQQQQQQs   AAAz3.9.0rR   c                 x     t          |           t                    }|j        t          | d          k    sJ dS )z8The requires_geos decorator always adapts the docstring.rX   rY   N)r	   r?   r_   rP   rQ   r   r   rU   s       r   test_requires_geos_doc_buildrc   r   sB     %mG$$T**G?0QQQQQQQQQr   c                      t          |           t          j                  }|j        t	          | d          k    sJ dS )z@The requires_geos decorator adjusts methods docstrings correctlyz        rY   N)r	   rB   r?   r_   rP   rb   s       r   test_requires_geos_methodre   z   sD     %mG$$Y^44G?0QQQQQQQQQr   c                     t          ||                                          D ]}t          |d          r	| |d<   |c S d S )N__setitem__r   )r   valueshasattr)valueargskwargsargs       r   set_first_elementrn      sV    T6==??++  3&& 	CFJJJ	 r   c                      t          j        dt                    } t          j        t
                    5  t          d|            d d d            n# 1 swxY w Y   d| d<   | d         dk    sJ d S )Nr   dtype*   r   )npemptyr   r[   r\   
ValueErrorrn   arrs    r   &test_multithreading_enabled_raises_argry      s    
(4v
&
&
&C 
z	"	" # #"c"""# # # # # # # # # # # # # # # CFq6R<<<<<<s   AAAc                      t          j        dt                    } t          j        t
                    5  t          d|            d d d            n# 1 swxY w Y   | j        j        sJ d S )Nrp   rq   rs   rw   )	rt   ru   r   r[   r\   rv   rn   flags	writeablerw   s    r   (test_multithreading_enabled_raises_kwargr}      s    
(4v
&
&
&C 
z	"	" ' '"#&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 9s   AAAc                      t          j        dt                    } d| j        _        t          j        t                    5  t          d|            d d d            n# 1 swxY w Y   | j        j        rJ d S )Nrp   rq   Frs   )	rt   ru   r   r{   r|   r[   r\   rv   rn   rw   s    r   *test_multithreading_enabled_preserves_flagr      s    
(4v
&
&
&CCI 
z	"	" # #"c"""# # # # # # # # # # # # # # # y""""""s   AA"%A"zargs,kwargsrp   rq   r   ar   outwherec                 B    t          dg| R i |}|d         dk    sJ d S )Nrs   r   )rn   )rk   rl   results      r   test_multithreading_enabled_okr      s6     r3D333F33F!9??????r   ))r   rL   inspectr   	itertoolsr   stringr   r   unittestr   numpyrt   r[   r   shapely.decoratorsr   r	   fixturer   r   r$   r5   r=   r?   rB   rP   markparametrizerV   r`   rc   re   rn   ry   r}   r   ru   floatr   r   r   r   r   <module>r      sC   				 



             ( ( ( ( ( ( ( (             D D D D D D D D   
 ' ' '0 0 0
 
 
O O O(             $A$A$ABB  CB $B$B$BCCR R DCR Wh$788R R 98R Wh$788R R 98R   	 	 	  	# 	# 	# 
"(4u
%
%
%	',	c828D.../0#	cA3Z	eXRXd&11123hbht62223	

     r   