U
    9%e                     @   sd   d dl Zd dlZd dlZd dlZd dlmZ ddlm	Z	 eG dd de	Z
eG dd de	ZdS )	    N)skip_parfors_unsupported   )DispatcherCacheUsecasesTestc                   @   sL   e Zd ZejeZejedZ	dZ
dddZdd Zdd	 Zd
d ZdS )TestParforsCacheparfors_cache_usecases.pyparfors_caching_test_fodderr   c                 C   s   |   }| d t||}td}tj|||| dd |j	 D }|j	 \}| 
|dg | |d  |   d S )Nr   
   c                 S   s   g | ]}|j jqS  )ZlibraryZhas_dynamic_globals).0cresr	   r	   _/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/numba/tests/test_parfors_caching.py
<listcomp>   s   z-TestParforsCache.run_test.<locals>.<listcomp>F   )import_modulecheck_pycachegetattrnpZonestestingZassert_allcloseZpy_funcZ	overloadsvaluesassertEqualrun_in_separate_process)selffname	num_funcsmodfZaryZdynamic_globalsr   r	   r	   r   run_test   s    


zTestParforsCache.run_testc                 C   s   d}|  | d S )NZarrayexprs_caser   r   r   r	   r	   r   test_arrayexprs#   s    z TestParforsCache.test_arrayexprsc                 C   s   d}|  | d S )NZprange_caser   r   r	   r	   r   test_prange'   s    zTestParforsCache.test_prangec                 C   s   d}| j |dd d S )NZcaller_case   )r   r   r   r	   r	   r   test_caller+   s    zTestParforsCache.test_callerN)r   )__name__
__module____qualname__ospathdirname__file__herejoinusecases_filemodnamer   r   r    r"   r	   r	   r	   r   r      s   
r   c                   @   s:   e Zd ZejeZejedZ	dZ
dd Zdd ZdS )TestParforsCacheChangingThreadsr   r   c                 C   sz   dt | j| jd }tjdt|i}tjtj	d|gtj
tj
|d}| \}}|jdkrvtd|j d|  d	d S )
Nzif 1:
            import sys

            sys.path.insert(0, %(tempdir)r)
            mod = __import__(%(modname)r)
            mod.self_run()
            )tempdirr-   ZNUMBA_NUM_THREADSz-c)stdoutstderrenvr   zprocess failed with code z:stderr follows

)dictr/   r-   r&   environstr
subprocessPopensys
executablePIPEcommunicate
returncodeAssertionErrordecode)r   Zthread_countcodeZnew_envpopenouterrr	   r	   r   r   ;   s     
z7TestParforsCacheChangingThreads.run_in_separate_processc                 C   s6   |  d | d |  d | d |  d d S )Nr   r      r   )r   r   )r   r	   r	   r   test_cachingN   s
    



z,TestParforsCacheChangingThreads.test_cachingN)r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   rE   r	   r	   r	   r   r.   2   s
   r.   )os.pathr&   r7   r9   numpyr   Znumba.tests.supportr   rE   r   r   r.   r	   r	   r	   r   <module>   s   &