Ë
    èÿæiâ  ã                   óØ   — 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*                  «        yy)é    N)Únjit)Úoverload)ÚConfigStack)ÚFlagsÚDEFAULT_FLAGS)Útypes)Údefault_mangler)ÚTestCaseÚunittestc                   ó   — e Zd Zd„ Zy)ÚTestCompilerFlagsc                 ó€   — t        «       }d}| j                  t        |«      5  d|_        d d d «       y # 1 sw Y   y xY w)Nz<'Flags' object has no attribute 'this_really_does_not_exist'T)r   ÚassertRaisesRegexÚAttributeErrorÚthis_really_does_not_exist)ÚselfÚflagsÚmsgs      út/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_compiler_flags.pyÚtest_setting_invalid_attributez0TestCompilerFlags.test_setting_invalid_attribute   s2   € Ü“ˆØLˆØ×#Ñ#¤N°CÕ8Ø/3ˆEÔ,÷ 9×8Ñ8ús   £4´=N)Ú__name__Ú
__module__Ú__qualname__r   © ó    r   r   r      s   „ ó4r   r   c                   ó   — 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 ©Nr   r   r   r   Ú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)r   r'   r&   s     @r   Úov_fastmath_statuszTTestCompilerFlagCachedOverload.test_fastmath_in_overload.<locals>.ov_fastmath_status   s,   ø€ ä“M×%Ñ%Ó'ˆEØ$)§N¢N‘.¸ˆ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Ø�q�6ˆMr   r$   r#   )r   r   ÚassertEqual)r   r*   r0   r.   r/   r!   r,   s        @@r   Útest_fastmath_in_overloadz8TestCompilerFlagCachedOverload.test_fastmath_in_overload   s}   ù€ ò	ô 
�/Ó	"ñ	ó 
#ð	ô 
�tÔ	ó	%ó 
ð	%ô 
‹ô	ó 
ð	ñ
 ‹u‰ˆˆ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y)ÚTestFlagManglingc                 óš   ‡ — ˆ fd„}t        «       } ||«        |t        «       t        «       }d|_        d|_        d|_         ||«       y )Nc                 óˆ   •— | j                  «       }| j                  |«      }‰j                  || j                  «       «       y r    )Úget_mangle_stringÚdemangler1   Úsummary)r   ÚmangledÚoutr   s      €r   Úcheckz-TestFlagMangling.test_demangle.<locals>.check7   s5   ø€ Ø×-Ñ-Ó/ˆGØ—.‘. Ó)ˆCà×Ñ˜S %§-¡-£/Õ2r   T)r   r   Úno_cpython_wrapperÚnrtr)   )r   r<   r   s   `  r   Útest_demanglezTestFlagMangling.test_demangle5   sH   ø€ ô	3ô “ˆÙˆeŒñ 	ŒmÔô “ˆØ#'ˆÔ ØˆŒ	ØˆŒÙˆe�r   c                 ó´   — t        «       }d|_        d|_        | j                  t	        |j                  «       «      t	        |j                  «       «      «       y )NT)r   r>   Úauto_parallelÚ
assertLessÚlenr7   r9   )r   r   s     r   Útest_mangled_flags_is_shorterz.TestFlagMangling.test_mangled_flags_is_shorterK   s?   € ä“ˆØˆŒ	Ø"ˆÔØ�‰œ˜E×3Ñ3Ó5Ó6¼¸E¿M¹M»OÓ8LÕMr   c                 ó2  — t        «       }d|_        d|_        d|_        d|_        | j                  t        |j                  «       «      t        |j                  «       «      «       |j                  |j                  «       «      }| j                  d|«       y )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   st   € ä“ˆØˆŒ	Ø"ˆÔØˆŒØˆŒØ�‰œ˜E×3Ñ3Ó5Ó6¼¸E¿M¹M»OÓ8LÔMØ—N‘N 5×#:Ñ#:Ó#<Ó=ˆ	à×Ñ˜˜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 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À   € ð ˆÜ—;‘;�<ˆÜ“ˆØˆŒ	ØˆŒÜØ�8 u×'>Ñ'>Ó'@Ð&Aô
ˆð ˆä�H‰H�X˜t¤C¨£K LÐ1Ó2ˆØ�w‰w�q‹zˆä�6‹{œS ›YÑ&ˆØ˜4 ¤s¨4£yÑ 0Ð1ˆä—N‘N ;Ó/ˆ	Ø×Ñ˜ E§M¡M£OÕ4r   N)r   r   r   r?   rD   rK   r\   r   r   r   r4   r4   3   s   „ òò,Nò
*ó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      s^   ðÛ 	å Ý )Ý /ß 4Ý Ý /ç 2ô4˜ô 4ô, Xô ,ô<@5�xô @5ðF ˆzÒØ€H‡M�M…Oð r   