
    J/Ph                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZ  G d	 d
e          Z G d de          Z G d de          Zedk    r ej                     dS dS )    N)njit)overload)ConfigStack)FlagsDEFAULT_FLAGS)types)default_mangler)TestCaseunittestc                       e Zd Zd ZdS )TestCompilerFlagsc                     t                      }d}|                     t          |          5  d|_        d d d            d S # 1 swxY w Y   d S )Nz<'Flags' object has no attribute 'this_really_does_not_exist'T)r   assertRaisesRegexAttributeErrorthis_really_does_not_exist)selfflagsmsgs      _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_compiler_flags.pytest_setting_invalid_attributez0TestCompilerFlags.test_setting_invalid_attribute   s    L##NC88 	4 	4/3E,	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   AAAN)__name__
__module____qualname__r        r   r   r      s#        4 4 4 4 4r   r   c                       e Zd Zd ZdS )TestCompilerFlagCachedOverloadc                    d t                    d             }t          d          fd            t                      fd            } |            \  }}|                     |d           |                     |d           d S )	Nc                      d S Nr   r   r   r   fastmath_statuszQTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.fastmath_status   s    Dr   c                  h    t                                                      } | j        rdndfd}|S )NHas fastmathNo fastmathc                       S r    r   )vals   r   codegenzeTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status.<locals>.codegen   s    
r   )r   topfastmath)r   r'   r&   s     @r   ov_fastmath_statuszTTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status   sH    MM%%''E$)NE..C     Nr   T)r)   c                                    S r    r   )r!   s   r   set_fastmathzNTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.set_fastmath$   s    "?$$$r   c                  4                 }              }| |fS r    r   )abr!   r,   s     r   foozETestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.foo(   s$    !!AAq6Mr   r$   r#   )r   r   assertEqual)r   r*   r0   r.   r/   r!   r,   s        @@r   test_fastmath_in_overloadz8TestCompilerFlagCachedOverload.test_fastmath_in_overload   s    	 	 	 
/	"	"	 	 
#	"	 
t				% 	% 	% 	% 
		% 
	 	 	 	 	 
	
 suu1M***N+++++r   N)r   r   r   r2   r   r   r   r   r      s#        , , , , ,r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestFlagManglingc                       fd}t                      } ||            |t                     t                      }d|_        d|_        d|_         ||           d S )Nc                     |                                  }|                     |          }                    ||                                            d S r    )get_mangle_stringdemangler1   summary)r   mangledoutr   s      r   checkz-TestFlagMangling.test_demangle.<locals>.check7   sI    --//G..))CS%--//22222r   T)r   r   no_cpython_wrappernrtr)   )r   r<   r   s   `  r   test_demanglezTestFlagMangling.test_demangle5   sx    	3 	3 	3 	3 	3 e 	m #' 	er   c                     t                      }d|_        d|_        |                     t	          |                                          t	          |                                                     d S )NT)r   r>   auto_parallel
assertLesslenr7   r9   )r   r   s     r   test_mangled_flags_is_shorterz.TestFlagMangling.test_mangled_flags_is_shorterK   sX    	"E335566EMMOO8L8LMMMMMr   c                 |   t                      }d|_        d|_        d|_        d|_        |                     t          |                                          t          |                                                     |	                    |                                          }| 
                    d|           d S )NTalways0x)r   r>   rA   r)   inlinerB   rC   r7   r9   r8   assertNotIn)r   r   	demangleds      r   /test_mangled_flags_with_fastmath_parfors_inlinez@TestFlagMangling.test_mangled_flags_with_fastmath_parfors_inlineR   s    	"E335566EMMOO8L8LMMMNN5#:#:#<#<==	y)))))r   c                    d}t           j        f}t                      }d|_        d|_        t          |||                                g          }d}t          j        d|t          |          d                   }|
                    d          }t          |          t          |          z   }|||t          |          z            }	t          j        |	          }
|                     |
|                                           dS )	z,Test demangling of flags from mangled symbolr0   TrF   )abi_tags_Z3fooBz[0-9]+Nr   )r   int32r   r>   rH   r	   r7   rematchrC   groupintr8   r1   r9   )r   fnameargtypesr   nameprefixmsizebaseabi_mangledrJ   s              r   $test_demangling_from_mangled_symbolsz5TestFlagMangling.test_demangling_from_mangled_symbols^   s     ;<	8u'>'>'@'@&A
 
 
 HXtCKKLL122wwqzz6{{SYY&4s4yy 001N;//	EMMOO44444r   N)r   r   r   r?   rD   rK   r\   r   r   r   r4   r4   3   sS          ,N N N
* 
* 
*5 5 5 5 5r   r4   __main__)rP   numbar   numba.core.extendingr   numba.core.targetconfigr   numba.core.compilerr   r   
numba.corer   numba.core.funcdescr	   numba.tests.supportr
   r   r   r   r4   r   mainr   r   r   <module>rf      sE   				       ) ) ) ) ) ) / / / / / / 4 4 4 4 4 4 4 4       / / / / / / 2 2 2 2 2 2 2 24 4 4 4 4 4 4 4, , , , ,X , , ,<@5 @5 @5 @5 @5x @5 @5 @5F zHMOOOOO r   