
    xKg                         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edk(  r ej(                          yy)    N)njit)overload)ConfigStack)FlagsDEFAULT_FLAGS)types)default_mangler)TestCaseunittestc                       e Zd Zd Zy)TestCompilerFlagCachedOverloadc                     d t              d        }t        d      fd       t               fd       } |       \  }}| j                  |d       | j                  |d       y )	Nc                       y N r       c/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_compiler_flags.pyfastmath_statuszQTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.fastmath_status   s    r   c                  b    t               j                         } | 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)flagsr   r   s     @r   ov_fastmath_statuszTTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status   s,    M%%'E$)NN.C Nr   T)r   c                               S r   r   )r   s   r   set_fastmathzNTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.set_fastmath   s    "$$r   c                  (            }         }| |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)selfr   r$   r"   r#   r   r    s        @@r   test_fastmath_in_overloadz8TestCompilerFlagCachedOverload.test_fastmath_in_overload   s}    	 
/	"	 
#	 
t		% 
	% 
	 
	
 u1M*N+r   N)__name__
__module____qualname__r'   r   r   r   r   r      s    ,r   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestFlagManglingc                       fd}t               } ||        |t               t               }d|_        d|_        d|_         ||       y )Nc                     | j                         }| j                  |      }j                  || j                                y r   )get_mangle_stringdemangler%   summary)r   mangledoutr&   s      r   checkz-TestFlagMangling.test_demangle.<locals>.check/   s5    --/G..)CS%--/2r   T)r   r   no_cpython_wrappernrtr   )r&   r4   r   s   `  r   test_demanglezTestFlagMangling.test_demangle-   sH    	3 e 	m #' 	er   c                     t               }d|_        d|_        | j                  t	        |j                               t	        |j                                      y )NT)r   r6   auto_parallel
assertLesslenr/   r1   )r&   r   s     r   test_mangled_flags_is_shorterz.TestFlagMangling.test_mangled_flags_is_shorterC   s?    	"E3356EMMO8LMr   c                 2   t               }d|_        d|_        d|_        d|_        | j                  t        |j                               t        |j                                      |j                  |j                               }| j                  d|       y )NTalways0x)r   r6   r9   r   inliner:   r;   r/   r1   r0   assertNotIn)r&   r   	demangleds      r   /test_mangled_flags_with_fastmath_parfors_inlinez@TestFlagMangling.test_mangled_flags_with_fastmath_parfors_inlineJ   st    	"E3356EMMO8LMNN5#:#:#<=	y)r   c                    d}t         j                  f}t               }d|_        d|_        t        |||j                         g      }d}t        j                  d|t        |      d       }|j                  d      }t        |      t        |      z   }|||t        |      z    }	t        j                  |	      }
| j                  |
|j                                y)	z,Test demangling of flags from mangled symbolr$   Tr>   )abi_tags_Z3fooBz[0-9]+Nr   )r   int32r   r6   r@   r	   r/   rematchr;   groupintr0   r%   r1   )r&   fnameargtypesr   nameprefixmsizebaseabi_mangledrB   s              r   $test_demangling_from_mangled_symbolsz5TestFlagMangling.test_demangling_from_mangled_symbolsV   s     ;;<	8u'>'>'@&A
 HHXtCKL12wwqz6{SY&4s4y 01NN;/	EMMO4r   N)r(   r)   r*   r7   r<   rC   rT   r   r   r   r,   r,   +   s    ,N
*5r   r,   __main__)rH   numbar   numba.core.extendingr   numba.core.targetconfigr   numba.core.compilerr   r   
numba.corer   numba.core.funcdescr	   numba.tests.supportr
   r   r   r,   r(   mainr   r   r   <module>r^      sR    	  ) / 4  / 2,X ,<@5x @5F zHMMO r   