
    ܙd!                         d dl Z d dlZ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
mZmZ d dlmZ d dlmZ  G d dej                  Zedk    r ej                     dS dS )	    N)jit)NumbaWarning
deprecatedNumbaDeprecationWarning)errors)ignore_internal_warningsc                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestBuiltinsc                     d}|                      |j        t                     |                     |t	          |j                             d S )NzbFall-back from the nopython compilation path to the object mode compilation path has been detectedassertEqualcategoryr   assertInstrmessageselfwmsgs      9lib/python3.11/site-packages/numba/tests/test_warnings.py!check_objmode_deprecation_warningz.TestBuiltins.check_objmode_deprecation_warning   sD    9%<===c3qy>>*****    c                     d}|                      |j        t                     |                     |t	          |j                             d S )Nz0The 'nopython' keyword argument was not suppliedr   r   s      r   $check_nopython_kwarg_missing_warningz1TestBuiltins.check_nopython_kwarg_missing_warning   sE     D%<===c3qy>>*****r   c                    d }t          j        d          5 }t          j        dt                     t	                       t          |          } |dd           |                     t          |          d           |                     |d                    |                     |d         j	        t                     | 
                    d	t          |d         j                             |                     |d         j	        t                     | 
                    d
t          |d         j                             |                     |d                    d d d            d S # 1 swxY w Y   d S )Nc                     i }| |z   S N xyas      r   addz1TestBuiltins.test_type_infer_warning.<locals>.add       Aq5Lr   Trecordalways         r   type inferencezobject mode   )warningscatch_warningssimplefilterr   r   r   r   lenr   r   r   r   r   r   r   r#   r   cfuncs       r   test_type_infer_warningz$TestBuiltins.test_type_infer_warning   s   	 	 	 $D111 	9Q!(L999$&&&HHEE!QKKKSVVQ''' 55ad;;; QqT]L999MM*C!,=,=>>> QqT]L999MM-QqT\):):;;; 221Q4888+	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   EE++E/2E/c                 F   t          j        dt           j                  fd}t          j        d          5 }t          j        dt                     t                        t          d          |          } |             | 	                    t          |          d           |                     |d	                    | 	                    |d
         j        t                     |                     dt          |d
         j                             | 	                    |d         j        t                     |                     dt          |d         j                             |                     |d                    d d d            d S # 1 swxY w Y   d S )Nr*   dtypec                       S r   r   r!   s   r   return_external_arrayzDTestBuiltins.test_return_type_warning.<locals>.return_external_array=       Hr   Tr%   r'   F)_nrtr   r(   zreturn typer)   z!object mode without forceobj=Truer,   )nponesfloat32r-   r.   r/   r   r   r   r   r0   r   r   r   r   r   r   r   r9   r   r2   r!   s       @r   test_return_type_warningz%TestBuiltins.test_return_type_warning:   s   GARZ(((	 	 	 	 	 $D111 	9Q!(L999$&&&#CUOOO$9::EEGGGSVVQ''' 55ad;;; QqT]L999MM-QqT\):):;;; QqT]L999MM=adl++- - - 221Q4888-	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   EFFFc                    t          j        dt           j                  fd}t          j        d          5 }t          j        dt                     t                        t          d          |          } |             | 	                    t          |          d           d	d	d	           d	S # 1 swxY w Y   d	S )
z9
        Rerun test_return_type_warning with nrt
        r*   r5   c                       S r   r   r8   s   r   r9   zMTestBuiltins.test_return_type_warning_with_nrt.<locals>.return_external_array^   r:   r   Tr%   r'   )nopythonr   N)r<   r=   r>   r-   r.   r/   r   r   r   r   r0   r?   s       @r   !test_return_type_warning_with_nrtz.TestBuiltins.test_return_type_warning_with_nrtX   s    GARZ(((	 	 	 	 	 $D111 	(Q!(L999$&&&&C&&&'<==EEGGGSVVQ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A/B88B<?B<c                 8   d }t          j        d          5 }t          j        dt                     t	                       t          |d          } |dd           |                     t          |          d           d d d            d S # 1 swxY w Y   d S )	Nc                     g }| |z   S r   r   r   s      r   r#   z7TestBuiltins.test_no_warning_with_forceobj.<locals>.addk   r$   r   Tr%   r'   )forceobjr(   r)   r   )r-   r.   r/   r   r   r   r   r0   r1   s       r   test_no_warning_with_forceobjz*TestBuiltins.test_no_warning_with_forceobjj   s    	 	 	 $D111 	(Q!(L999$&&&d+++EE!QKKKSVVQ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A)BBBc                 ,   d }t          j        d          5 }t          j        dt                     t	                       t          j        dt
          j                  }t          |          } ||           d	                    d |D                       }| 
                    t          |          d	|
           |                     |d                    | 
                    |d         j        t                     |                     dt          |d         j                             |                     dt          |d         j                             | 
                    |d         j        t                     |                     dt          |d         j                             |                     dt          |d         j                             | 
                    |d         j        t                     |                     dt          |d         j                             |                     dt          |d         j                             |                     |d                    d d d            d S # 1 swxY w Y   d S )Nc                 d    i }t          | j        d                   D ]}| |xx         dz  cc<   d S )Nr   r)   )rangeshape)r    r"   is      r   do_loopz1TestBuiltins.test_loop_lift_warn.<locals>.do_loopy   sE    A171:&&  !	 r   Tr%   r'   r*   r5   
c              3   *   K   | ]}d |j          V  dS )z----------
N)r   ).0r    s     r   	<genexpr>z3TestBuiltins.test_loop_lift_warn.<locals>.<genexpr>   s-      BB161966BBBBBBr      )r   r   r(   r+   zWITH loopliftingr)   zWITHOUT loopliftingr,   z-compiled in object mode without forceobj=Truezbut has lifted loops)r-   r.   r/   r   r   r<   r=   r>   r   joinr   r0   r   r   r   r   r   r   )r   rN   r   r    r2   r   s         r   test_loop_lift_warnz TestBuiltins.test_loop_lift_warnx   s~   	 	 	
 $D111 "	9Q!(L999$&&&,,,ALLEE!HHH))BBBBBBBCSVVQC000 55ad;;; QqT]L999MM*C!,=,=>>>MM,c!A$,.?.?@@@ QqT]L999MM*C!,=,=>>>MM/QqT\1B1BCCC QqT]L999MMIadl++- - -MM0#adl2C2CDDD 221Q4888E"	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9 "	9s   I#J		JJc                 4   t          d          d             }t          j        d          5 }t          j        d           t	                        |             |                     t          |          d           |                     |d         j        t                     | 	                    dt          |d         j                             | 	                    dt          |d         j                             d d d            d S # 1 swxY w Y   d S )	Nfooc                      d S r   r   r   r   r   barz)TestBuiltins.test_deprecated.<locals>.bar   s    Dr   Tr%   r'   r(   r   rY   )r   r-   r.   r/   r   r   r0   r   DeprecationWarningr   r   r   )r   rY   r   s      r   test_deprecatedzTestBuiltins.test_deprecated   s@   	E			 	 
		 $D111 	4Q!(+++$&&&CEEESVVQ'''QqT],>???MM%QqT\!2!2333MM%QqT\!2!2333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   CDDDc                    t          j        t           j                  }|                    dd          5  t	          j        t          j        d                     t	          j        t          j        d                     t                       d d d            n# 1 swxY w Y   t	          j        d          5 }t	          j        d           t                       |	                                 | 
                    t          |          d           | 
                    |d         j        t                     | 
                    |d	         j        t                     |                     dt          |d         j                             |                     dt          |d	         j                             d d d            d S # 1 swxY w Y   d S )
NrW   
   sameTr%   r'   r)   r   r(   )r   WarningsFixerr   r.   r-   warnr   r   r/   flushr   r0   r   r   r   r   )r   wfixr   s      r   test_warnings_fixerz TestBuiltins.test_warnings_fixer   s     #F$788  ++ 	' 	'M&-f55666M&8@@AAA$&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'
 $D111 	5Q!(+++$&&&JJLLLSVVQ''' QqT],CDDDQqT]L999MM&#adl"3"3444MM&#adl"3"3444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s%   ABB #B <DGGGc                    d}d}d}d|d|d|d}t          j        t          j        d|g          }|                                \  }}|                     |j        |           t          t          j	                  }d	|d
<   t          j        t          j        d|g|          }|                                \  }}|                     |j        |           d S )N7   c   z3'parallel=True' was specified but no transformationa  if 1:
            import warnings
            from numba.tests.error_usecases import foo
            import numba
            from numba.tests.support import ignore_internal_warnings
            with warnings.catch_warnings(record=True) as w:
                warnings.simplefilter('always')
                ignore_internal_warnings()
                foo()
            for x in w:
                if x.category == numba.errors.NumbaPerformanceWarning:
                    if "z2" in str(x.message):
                        exit(z)
            exit(z
)
        z-c1"NUMBA_DISABLE_PERFORMANCE_WARNINGS)env)

subprocessPopensys
executablecommunicater   
returncodedictosenviron)	r   not_found_ret_codefound_ret_codeexpectedparallel_codepopenouterrri   s	            r   !test_disable_performance_warningsz.TestBuiltins.test_disable_performance_warnings   s    H& xx);););="  #.$!FGG$$&&S)>::: 2:4701 #.$!FCPPP$$&&S)+=>>>>>r   N)__name__
__module____qualname__r   r   r3   r@   rD   rH   rU   r[   rc   rz   r   r   r   r
   r
      s        + + ++ + +9 9 989 9 9<( ( ($( ( ((9 (9 (9T4 4 45 5 5.#? #? #? #? #?r   r
   __main__)rq   rj   rl   r-   numpyr<   unittestnumbar   numba.core.errorsr   r   r   
numba.corer   numba.tests.supportr   TestCaser
   r{   mainr   r   r   <module>r      s    				     



             O O O O O O O O O O       8 8 8 8 8 8]? ]? ]? ]? ]?8$ ]? ]? ]?@ zHMOOOOO r   