L i'HddlZddlZddlZddlZddlZddlZGddZy)NceZdZdZdZdZdZejjejjddZ y) TestGILzECheck if the GIL is properly released by scipy.interpolate functions.cg|_yN)messages)selfs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_gil.py setup_methodzTestGIL.setup_method s  c:|jj|yr)rappend)rmessages r logz TestGIL.logs W%r ch|jGfddtj}|S)NceZdZfdZy)0TestGIL.make_worker_thread..WorkerThreadc0ddy)Ninterpolation startedinterpolation complete)rargsrtargets r runz4TestGIL.make_worker_thread..WorkerThread.runs+, ,-r N)__name__ __module__ __qualname__r)rrrsr WorkerThreadrs .r r)r threadingThread)rrrrrs `` @r make_worker_threadzTestGIL.make_worker_threads-hh . .9++ . ~r z*race conditions, may depend on system load)reasonc(dfd}d|d}|j|}|jtdD](}tjd|j d*|j |jgdk(sJy) Ncztjdd|x}}tj||\}}||z}|||fS)Nr)nplinspacemeshgrid)n_pointsxyx_gridy_gridzs r generate_paramsz9TestGIL.test_rectbivariatespline..generate_params!sAKK42 2A[[A.NFFAa7Nr ctjddD]A}|}tj}|tj|z |kDs?|cSy)Nir$) itertoolscounttime)requested_timer(r time_startedr. interpolates r calibrate_delayz9TestGIL.test_rectbivariatespline..calibrate_delay'sR%OOD$7 &x0#yy{ T"99;->K  r cFtjj|||yr)scipyr5RectBivariateSpline)r)r*r-s r r5z5TestGIL.test_rectbivariatespline..interpolate/s    1 1!Q :r )r3g?working)rr;r;r;r)r startranger2sleeprjoinr)rr6r worker_threadir.r5s @@r test_rectbivariatesplinez TestGIL.test_rectbivariatesplines    ;a0// TB q A JJsO HHY   }}!    r N) rrr__doc__r rr pytestmarkxslowxfailrBrr r rr sNO&  [[ [[JK L r r) r0rr2numpyr%rDscipy.interpolater8rrr r rJs!  5 5 r