ó
    „ñ:iþ  ã                   ó  • S SK r S SKrS SKJr  S SKrS SKJr  S SKJrJrJ	r	J
r
  S SKJr   S SKrSrSr\R"                  " \(       + \5      r\ " S	 S
\5      5       r " S S\5      r\S:X  a  \R,                  " 5         gg! \ a    Sr NXf = f)é    N)Údedent)Úmock)ÚTestCaseÚtemp_directoryÚoverride_env_configÚrun_in_subprocess)ÚconfigTFz*pyyaml needed for configuration file testsc                   ó–   ^ • \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 r\R                  " \R                  S
5      S 5       rSrU =r$ )Ú
TestConfigé   Fc                 óX   >• [        S5      U l        SU l        [        [        U ]  5         g )NÚ
config_tmpiÄ	  )r   ÚtmppathÚmaxDiffÚsuperr   ÚsetUp)ÚselfÚ	__class__s    €ÚZ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_config.pyr   ÚTestConfig.setUp   s#   ø€ ä% lÓ3ˆŒØˆŒÜŒj˜$Ñ%Õ'ó    c                 ó>   • [         R                  " U R                  S9$ )z<
Creates a mock launch location.
Returns the location path.
)Údir)ÚtempfileÚmkdtempr   )r   s    r   Úmock_cfg_locationÚTestConfig.mock_cfg_location    s   € ô
 ×Ò D§L¡LÑ1Ð1r   c                 óÖ   • [         R                  R                  U[        R                  5      n[        US5       n[        R                  " X$SS9  SSS5        g! , (       d  f       g= f)z,
Injects a mock configuration at 'location'
ÚwtF)Údefault_flow_styleN)ÚosÚpathÚjoinr	   Ú_config_fnameÚopenÚyamlÚdump)r   ÚlocationÚcfgÚtmpcfgÚfs        r   Úinject_mock_cfgÚTestConfig.inject_mock_cfg'   sD   € ô —‘—‘˜h¬×(<Ñ(<Ó=ˆÜ�&˜$Ô 1Ü�IŠI�c°Ò7÷  ×Öús   »AÁ
A(c                 ó˜   • [        5       n[        [        5       H,  nUR                  5       (       d  M  [	        [        U5      X'   M.     U$ )z(
Gets the current numba config settings
)Údictr   r	   ÚisupperÚgetattr)r   ÚstoreÚxs      r   Úget_settingsÚTestConfig.get_settings/   s9   € ô “ˆÜ”V–ˆAØ�y‰y�{‹{Ü"¤6¨1Ó-�“ñ ð ˆr   c                 óÞ  • [         R                  " 5       nU R                  5       n[         R                  " U5        [	        SS5         U R                  5       nSSS5        U R                  X15         [	        SS5         U R                  5       nSSS5        [         R                  " U5        WW4$ ! , (       d  f       N_= f! , (       d  f       N9= f! [         R                  " U5        f = f)z·
Returns a config "original" from a location with no config file
and then the impact of applying the supplied cfg dictionary as
a config file at a location in the returned "current".
Ú_N)r!   Úgetcwdr   Úchdirr   r4   r,   )r   r)   Úoriginal_cwdÚ
launch_dirÚoriginalÚcurrents         r   Úcreate_config_effectÚTestConfig.create_config_effect9   sº   € ô —y’y“{ˆð ×+Ñ+Ó-ˆ
ô 	�Š�Ôô !  cÕ*Ø×(Ñ(Ó*ˆH÷ +ð 	×Ñ˜ZÔ-ð	#ô % S¨#Õ.Ø×+Ñ+Ó-�÷ /ô �HŠH�\Ô"Ø˜Ð Ð ÷ +Õ*ú÷ /Õ.ûô �HŠH�\Õ"ús0   ÁB2Á3C Á?CÂC Â2
C Ã
CÃC ÃC,c                 óp  • Sn[         R                  [         R                  4 H�  nU R                  U" U5      S05      u  p4U R	                  X4:g  5        U R	                  X1   XA   :g  5        U R                  XA   S5        UR                  U5        UR                  U5        U R                  X45        M’     g )NÚCOLOR_SCHEMEÚlight_bg)ÚstrÚupperÚlowerr>   Ú
assertTrueÚassertEqualÚpop)r   ÚkeyÚcaseÚorigÚcurrs        r   Útest_configÚTestConfig.test_configZ   s”   € ð ˆÜ—Y‘Y¤§	¡	Ó*ˆDØ×2Ñ2±D¸³I¸zÐ3JÓK‰JˆDØ�O‰O˜D™LÔ)Ø�O‰O˜D™I¨©Ñ2Ô3Ø×Ñ˜T™Y¨
Ô3à�H‰H�SŒMØ�H‰H�SŒMØ×Ñ˜TÖ(ò +r   c                 óL   • U R                  0 5      u  pU R                  X5        g ©N)r>   rG   )r   rK   rL   s      r   Útest_empty_configÚTestConfig.test_empty_configh   s"   € à×.Ñ.¨rÓ2‰
ˆØ×Ñ˜Õ$r   z#test expects NUMBA_ENABLE_AVX==Truec                 ó¤  • [         R                  R                  5       nUR                  SS 5        SUS'   Sn[	        [        U5      US9u  p4UR                  S5      nUR                  S5      nSnU R                  XvUS9  S	US'   S
n[	        [        U5      US9u  p4UR                  S5      nUR                  S5      nSnU R                  XvUS9  g )NÚNUMBA_ENABLE_AVXÚnoconaÚNUMBA_CPU_NAMEzbfrom numba.core import config
print('---->', bool(config.ENABLE_AVX))
assert not config.ENABLE_AVX)Úenvzutf-8z----> False)Úmsgzskylake-avx512z^from numba.core import config
print('---->', bool(config.ENABLE_AVX))
assert config.ENABLE_AVXz
----> True)r!   ÚenvironÚcopyrH   r   r   ÚdecodeÚassertIn)r   Únew_envÚcodeÚoutÚerrÚerr_msgÚout_msgÚex_expecteds           r   Útest_nocona_disables_avxÚ#TestConfig.test_nocona_disables_avxm   sÓ   € ô —*‘*—/‘/Ó#ˆØ�‰Ð&¨Ô-à$,ˆÐ Ñ!ð/ˆô %¤V¨D£\°wÑ?‰ˆØ—*‘*˜WÓ%ˆØ—*‘*˜WÓ%ˆØ#ˆØ�‰�k°ˆÑ8ð %5ˆÐ Ñ!ð+ˆô %¤V¨D£\°wÑ?‰ˆØ—*‘*˜WÓ%ˆØ—*‘*˜WÓ%ˆØ"ˆØ�‰�k°ˆÒ8r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_numba_parallel_test_r   r   r,   r4   r>   rM   rQ   ÚunittestÚ
skipUnlessr	   Ú
ENABLE_AVXrd   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s[   ø† ð "Ðõ(ò2ò8òò!òB)ò%ð
 ×Ò˜×*Ñ*Ø>ó@ñ9ó@ö9r   r   c                   ó  • \ rS rSrS r\R                  " SS0S9S 5       r\R                  " SS0S9S 5       r\R                  " SS	0S9S
 5       r	\R                  " 5       S 5       r
\R                  " SS0S9S 5       rSrg)ÚTestNumbaOptLeveléŠ   c                 óô  ^ ^^	• SSK JnJn  T R                  UR                  U5        T R                  UR                  R
                  U5        SSKJn  Sm	UU U	4S jn[        R                  R                  USUS9   T R                  [        5       nU" S 5      " 5         S S S 5        T R                  T	[        WR                  5      5        S S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)	Nr   )r	   Únjit)Ú
CPUCodegenzexpected side effectc                  ó>   >• TR                  UT5        [        T5      erP   )rG   ÚRuntimeError)ÚargsÚkwargsÚexpectedr   Úside_effect_messages     €€€r   Úside_effectÚ,TestNumbaOptLevel.check.<locals>.side_effectŸ   s   ø€ Ø×Ñ˜V XÔ.ÜÐ2Ó3Ð3r   Ú_module_pass_manager)r|   c                  ó   • g)N.© r€   r   r   Ú<lambda>Ú)TestNumbaOptLevel.check.<locals>.<lambda>¦   s   € ˜cr   )Únumbar	   rt   rG   ÚOPTÚ
_raw_valueÚnumba.core.codegenru   r   ÚpatchÚobjectÚassertRaisesrw   r\   rC   Ú	exception)
r   rz   Ú	opt_valueÚ	raw_valuer	   rt   ru   r|   Úraisesr{   s
   ``       @r   ÚcheckÚTestNumbaOptLevel.checkŽ   s¿   ú€ ç&ð 	×Ñ˜Ÿ™ YÔ/Ø×Ñ˜Ÿ™×.Ñ.°	Ô:õ 	2Ø4Ð÷	4ô �Z‰Z×Ñ˜zÐ+AØ+6ð ò 8à×"Ñ"¤<Ô0°FÙ‘\Ô"Ô$÷ 1ð �M‰MÐ-¬s°6×3CÑ3CÓ/DÔE÷8ð 8ç0Õ0ú÷8õ 8ús$   Á=C)ÂCÂ"-C)Ã
C&	Ã"C)Ã)
C7Ú	NUMBA_OPTÚmax)Úenvvarsc                 ó8   • SSSSS.nU R                  USS5        g )NTFé   Úcheap©Úloop_vectorizeÚslp_vectorizeÚoptÚcostr‘   ©rŽ   ©r   rz   s     r   Útest_opt_maxÚTestNumbaOptLevel.test_opt_maxª   s)   € ð '+Ø%*ØØ#ñ%ˆð 	�
‰
�8˜Q Õ&r   Ú3c                 ó8   • SSSSS.nU R                  USS5        g ©NFr   r•   r–   r”   r›   rœ   s     r   Ú
test_opt_3ÚTestNumbaOptLevel.test_opt_3³   ó)   € ð ',Ø%*ØØ#ñ%ˆð 	�
‰
�8˜Q Õ"r   Ú0c                 ó8   • SSSSS.nU R                  USS5        g )NFr   r•   r–   r›   rœ   s     r   Ú
test_opt_0ÚTestNumbaOptLevel.test_opt_0¼   r¤   r   c                 ó8   • SSSSS.nU R                  USS5        g r¡   r›   rœ   s     r   Útest_opt_defaultÚ"TestNumbaOptLevel.test_opt_defaultÅ   s)   € ð ',Ø%*ØØ#ñ%ˆð 	�
‰
�8˜Q Õ"r   Úinvalidc                 ó8   • SSSSS.nU R                  USS5        g r¡   r›   rœ   s     r   Útest_opt_invalidÚ"TestNumbaOptLevel.test_opt_invalidÏ   r¤   r   r€   N)rf   rg   rh   ri   rŽ   r   Úrun_test_in_subprocessr�   r¢   r§   rª   r®   rn   r€   r   r   rq   rq   Š   s¹   † òFð8 ×$Ò$¨k¸5Ð-AÑBñ'ó Cð'ð ×$Ò$¨k¸3Ð-?Ñ@ñ#ó Að#ð ×$Ò$¨k¸3Ð-?Ñ@ñ#ó Að#ð ×$Ò$Ó&ñ#ó 'ð#ð ×$Ò$¨k¸9Ð-EÑFñ#ó Gó#r   rq   Ú__main__)r!   r   Útextwrapr   rk   r   Únumba.tests.supportr   r   r   r   Ú
numba.corer	   r&   Ú
_HAVE_YAMLÚImportErrorÚ	_skip_msgÚskipIfÚ
needs_yamlr   rq   rf   Úmainr€   r   r   Ú<module>r»      s¤   ðÛ 	Û Ý Û Ý ÷4ó 4å ðÛØ€Jð 9€	Ø�_Š_ œ^¨YÓ7€
ð ôr9�ó r9ó ðr9ôjL#˜ô L#ð^ ˆzÓØ‡M‚M…Oð øðY ó Ø‚Jðús   ¬B  Â BÂ
B