§
    ¢éUgS  ã                   ó\   — d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZ	 G d„ d¦  «        Z
dS )é    N)Úassert_equalc                   ó�   — 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/surfInsights/venv3-11/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                 óZ  ‡‡— d„ Šˆˆfd„}d„ Š |d¬¦  «        }|                       ‰|¦  «        }|                     ¦   «          t          d¦  «        D ]+}t          j        d¦  «         |                      d¦  «         Œ,|                     ¦   «          t          | j        g d¢¦  «         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Ð2ˆA�Ýœ[¨¨AÑ.Ô.‰NˆF�FØ˜‘ˆAØ�a˜�7ˆNr   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   ø€ Ý%œO¨D°$Ñ7Ô7ð  ð  �Ø&� xÑ0Ô0�Ý#œy™{œ{�Ø�˜TÐ"Ð"Ý”9‘;”; Ñ-°Ò>Ð>Ø�K�K�Kð ?ð	 ð  r   c                 óH   — t           j                             | ||¦  «         d S r   )Úscipyr6   ÚRectBivariateSpline)r*   r+   r.   s      r
   r6   z5TestGIL.test_rectbivariatespline.<locals>.interpolate0   s#   € ÝÔ×1Ò1°!°Q¸Ñ:Ô:Ð:Ð:Ð:r   é   )r4   g      à?Úworking)r   r<   r<   r<   r   )	r!   ÚstartÚranger3   Úsleepr   Újoinr   r   )r	   r7   r   Úworker_threadÚir/   r6   s        @@r
   Útest_rectbivariatesplinez TestGIL.test_rectbivariatespline   só   øø€ ð	ð 	ð 	ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð	;ð 	;ð 	;ð ˆ¨aÐ0Ñ0Ô0ˆØ×/Ò/°¸TÑBÔBˆØ×ÒÑÔÐÝ�q‘”ð 	 ð 	 ˆAÝŒJ�s‰OŒOˆOØ�HŠH�YÑÔÐÐØ×ÒÑÔÐÝ�T”]ð %
ð %
ð %
ñ 	ô 	ð 	ð 	ð 	r   N)r   r   r   Ú__doc__r   r   r!   ÚpytestÚmarkÚxslowÚxfailrC   r   r   r
   r   r      sˆ   € € € € € ØOÐOðð ð ð&ð &ð &ð	ð 	ð 	ð „[ÔØ„[×ÒÐJÐÑKÔKðð ñ LÔKñ Ôðð ð r   r   )r1   r   r3   Únumpyr&   Únumpy.testingr   rE   Úscipy.interpolater9   r   r   r   r
   ú<module>rL      s‹   ðØ Ð Ð Ð Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø €€€Ø Ð Ð Ð ð5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5r   