
    i                         S SK r S SKJr  S SKJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJr  S SKJrJr   " S	 S
\5      r " S S\5      r " S S\5      r\S:X  a  \R*                  " 5         gg)    N)njit)overload)ConfigStack)FlagsDEFAULT_FLAGS)types)default_mangler)TestCaseunittestc                       \ rS rSrS rSrg)TestCompilerFlags   c                     [        5       nSnU R                  [        U5         SUl        S S S 5        g ! , (       d  f       g = f)Nz<'Flags' object has no attribute 'this_really_does_not_exist'T)r   assertRaisesRegexAttributeErrorthis_really_does_not_exist)selfflagsmsgs      Z/var/www/html/trading/venv/lib/python3.13/site-packages/numba/tests/test_compiler_flags.pytest_setting_invalid_attribute0TestCompilerFlags.test_setting_invalid_attribute   s2    L##NC8/3E, 988s	   4
A N)__name__
__module____qualname____firstlineno__r   __static_attributes__r       r   r   r      s    4r   r   c                       \ rS rSrS rSrg)TestCompilerFlagCachedOverload   c                    ^^ S m[        T5      S 5       n[        SS9U4S j5       m[        5       UU4S j5       nU" 5       u  p4U R                  US5        U R                  US5        g )	Nc                      g Nr   r   r   r   fastmath_statusQTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.fastmath_status   s    r   c                  n   ^ [        5       R                  5       n U R                  (       a  SOSmU4S jnU$ )NHas fastmathNo fastmathc                     > T $ r%   r   )vals   r   codegeneTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status.<locals>.codegen   s    
r   )r   topfastmath)r   r-   r,   s     @r   ov_fastmath_statusTTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status   s,    M%%'E$)NN.C Nr   T)r0   c                     > T " 5       $ r%   r   )r&   s   r   set_fastmathNTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.set_fastmath$   s    "$$r   c                  &   > T" 5       n T" 5       nX4$ r%   r   )abr&   r4   s     r   fooETestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.foo(   s    !AA6Mr   r*   r)   )r   r   assertEqual)r   r1   r9   r7   r8   r&   r4   s        @@r   test_fastmath_in_overload8TestCompilerFlagCachedOverload.test_fastmath_in_overload   s{    	 
/	"	 
#	 
t		% 
	% 
	 
	
 uM*N+r   r   N)r   r   r   r   r<   r   r   r   r   r!   r!      s    ,r   r!   c                   ,    \ rS rSrS rS rS rS rSrg)TestFlagMangling3   c                    ^  U 4S jn[        5       nU" U5        U" [        5        [        5       nSUl        SUl        SUl        U" U5        g )Nc                    > U R                  5       nU R                  U5      nTR                  X R                  5       5        g r%   )get_mangle_stringdemangler;   summary)r   mangledoutr   s      r   check-TestFlagMangling.test_demangle.<locals>.check7   s3    --/G..)CS--/2r   T)r   r   no_cpython_wrappernrtr0   )r   rH   r   s   `  r   test_demangleTestFlagMangling.test_demangle5   sH    	3 e 	m #' 	er   c                     [        5       nSUl        SUl        U R                  [	        UR                  5       5      [	        UR                  5       5      5        g )NT)r   rK   auto_parallel
assertLesslenrC   rE   )r   r   s     r   test_mangled_flags_is_shorter.TestFlagMangling.test_mangled_flags_is_shorterK   s?    	"E3356EMMO8LMr   c                 2   [        5       nSUl        SUl        SUl        SUl        U R                  [        UR                  5       5      [        UR                  5       5      5        UR                  UR                  5       5      nU R                  SU5        g )NTalways0x)r   rK   rO   r0   inlinerP   rQ   rC   rE   rD   assertNotIn)r   r   	demangleds      r   /test_mangled_flags_with_fastmath_parfors_inline@TestFlagMangling.test_mangled_flags_with_fastmath_parfors_inlineR   st    	"E3356EMMO8LMNN5#:#:#<=	y)r   c                    Sn[         R                  4n[        5       nSUl        SUl        [        XUR                  5       /S9nSn[        R                  " SU[        U5      S 5      nUR                  S5      n[        U5      [        U5      -   nXHU[        U5      -    n	[        R                  " U	5      n
U R                  XR                  5       5        g)	z,Test demangling of flags from mangled symbolr9   TrU   )abi_tags_Z3fooBz[0-9]+Nr   )r   int32r   rK   rW   r	   rC   rematchrQ   groupintrD   r;   rE   )r   fnameargtypesr   nameprefixmsizebaseabi_mangledrY   s              r   $test_demangling_from_mangled_symbols5TestFlagMangling.test_demangling_from_mangled_symbols^   s     ;;<	u'>'>'@&A
 HHXtCKL12wwqz6{SY&s4y 01NN;/	MMO4r   r   N)	r   r   r   r   rL   rR   rZ   rl   r   r   r   r   r?   r?   3   s    ,N
*5r   r?   __main__)r`   numbar   numba.core.extendingr   numba.core.targetconfigr   numba.core.compilerr   r   
numba.corer   numba.core.funcdescr	   numba.tests.supportr
   r   r   r!   r?   r   mainr   r   r   <module>rw      s\    	  ) / 4  / 24 4,X ,<@5x @5F zMMO r   