
    _Mh'                     P    d dl Z d dlZd dlZd dlZd dlZd dlZ G d d          ZdS )    Nc                       e Zd ZdZd Zd Zd Zej        j	        ej        
                    d          d                         ZdS )	TestGILzECheck if the GIL is properly released by scipy.interpolate functions.c                     g | _         d S N)messages)selfs    `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/interpolate/tests/test_gil.pysetup_methodzTestGIL.setup_method   s        c                 :    | j                             |           d S r   )r   append)r   messages     r	   logzTestGIL.log   s    W%%%%%r   c                 b    | j          G fddt          j                  } |            S )Nc                       e Zd Z fdZdS )0TestGIL.make_worker_thread.<locals>.WorkerThreadc                 >     d               d           d S )Ninterpolation startedinterpolation complete )r   argsr   targets    r	   runz4TestGIL.make_worker_thread.<locals>.WorkerThread.run   s6    +,,,,-----r   N)__name__
__module____qualname__r   )r   r   r   s   r	   WorkerThreadr      s8        . . . . . . . . .r   r   )r   	threadingThread)r   r   r   r   r   s    `` @r	   make_worker_threadzTestGIL.make_worker_thread   s[    h	. 	. 	. 	. 	. 	. 	. 	. 	.9+ 	. 	. 	. |~~r   z*race conditions, may depend on system load)reasonc                 J   d fd}d  |d          }|                      |          }|                                 t          d          D ]+}t          j        d           |                     d           ,|                                 | j        g dk    sJ d S )	Nc                 v    t          j        dd|           x}}t          j        ||          \  }}||z  }|||fS )Nr     )nplinspacemeshgrid)n_pointsxyx_gridy_gridzs         r	   generate_paramsz9TestGIL.test_rectbivariatespline.<locals>.generate_params!   sC    K4222A[A..NFFAa7Nr   c                     t          j        dd          D ]C} |          }t          j                    } |  t          j                    |z
  | k    r|c S Dd S )Ni  r$   )	itertoolscounttime)requested_timer(   r   time_startedr.   interpolates       r	   calibrate_delayz9TestGIL.test_rectbivariatespline.<locals>.calibrate_delay'   ss    %OD$77    &x00#y{{T""9;;->>KKK ?	   r   c                 H    t           j                            | ||           d S r   )scipyr5   RectBivariateSpline)r)   r*   r-   s      r	   r5   z5TestGIL.test_rectbivariatespline.<locals>.interpolate/   s#    11!Q:::::r      )r3   g      ?working)r   r;   r;   r;   r   )r    startranger2   sleepr   joinr   )r   r6   r   worker_threadir.   r5   s        @@r	   test_rectbivariatesplinez TestGIL.test_rectbivariatespline   s    	 	 		  	  	  	  	  	 	; 	; 	; a000//TBBq 	  	 AJsOOOHHY} !
 !
 !
 
 
 
 
 
 
r   N)r   r   r   __doc__r
   r   r    pytestmarkxslowxfailrB   r   r   r	   r   r   
   s        OO  & & &	 	 	 [[JKK
 
 LK 
 
 
r   r   )	r0   r   r2   numpyr%   rD   scipy.interpolater8   r   r   r   r	   <module>rJ      sy                     5
 5
 5
 5
 5
 5
 5
 5
 5
 5
r   