+
    :i                     $   ^ RI t ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHtHtH	t	H
t
 ^ RIHt  ^ RItRtRt]P"                  ! ]'       * ]4      t] ! R	 R
]4      4       t ! R R]4      t]R8X  d   ]P,                  ! 4        R# R#   ] d    Rt L\i ; i)    N)dedent)mock)TestCasetemp_directoryoverride_env_configrun_in_subprocess)configTFz*pyyaml needed for configuration file testsc                      a a ] tR t^t oRtV 3R ltR tR tR tR t	R t
R t]P                  ! ]P                  R	4      R
 4       tRtVtV ;t# )
TestConfigFc                Z   < \        R 4      V n        RV n        \        \        V `  4        R# )
config_tmpi	  N)r   tmppathmaxDiffsuperr   setUp)self	__class__s   &U/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_config.pyr   TestConfig.setUp   s#    %l3j$%'    c                D    \         P                  ! V P                  R7      # )z<
Creates a mock launch location.
Returns the location path.
)dir)tempfilemkdtempr   )r   s   &r   mock_cfg_locationTestConfig.mock_cfg_location    s    
 DLL11r   c                    \         P                  P                  V\        P                  4      p\        VR4      ;_uu_ 4       p\        P                  ! W$RR7       RRR4       R#   + '       g   i     R# ; i)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'   sJ     h(<(<=&$1IIc7  s   A&&A7	c                    \        4       p\        \        4       F-  pVP                  4       '       g   K  \	        \        V4      W&   K/  	  V# )z(
Gets the current numba config settings
)dictr   r	   isuppergetattr)r   storexs   &  r   get_settingsTestConfig.get_settings/   s9     VAyy{{"61-  r   c                   \         P                  ! 4       pV P                  4       p\         P                  ! V4       \	        RR4      ;_uu_ 4        V P                  4       pRRR4       V P                  W14        \	        RR4      ;_uu_ 4        V P                  4       pRRR4       \         P                  ! V4       XX3#   + '       g   i     Li; i  + '       g   i     L=; i  \         P                  ! T4       i ; i)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   r3   r+   )r   r(   original_cwd
launch_diroriginalcurrents   &&    r   create_config_effectTestConfig.create_config_effect9   s     yy{ ++-
 	 !c**((*H + 	Z-	# %S#..++- / HH\"   +* /. HH\"s0   C;C( C C( C	C%	 C( (D c                   R p\         P                  \         P                  3 F  pV P                  V! V4      R/4      w  r4V P	                  W48g  4       V P	                  W1,          WA,          8g  4       V P                  WA,          R4       VP                  V4       VP                  V4       V P                  W44       K  	  R# )COLOR_SCHEMElight_bgN)strupperlowerr=   
assertTrueassertEqualpop)r   keycaseorigcurrs   &    r   test_configTestConfig.test_configZ   s     YY		*D22DIz3JKJDOODL)OODI23TY
3HHSMHHSMT( +r   c                N    V P                  / 4      w  rV P                  W4       R # N)r=   rF   )r   rJ   rK   s   &  r   test_empty_configTestConfig.test_empty_configh   s"    ..r2
$r   z#test expects NUMBA_ENABLE_AVX==Truec                   \         P                  P                  4       pVP                  R R4       RVR&   Rp\	        \        V4      VR7      w  r4VP                  R4      pVP                  R4      pRpV P                  WvVR7       R	VR&   R
p\	        \        V4      VR7      w  r4VP                  R4      pVP                  R4      pRpV P                  WvVR7       R# )NUMBA_ENABLE_AVXN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copyrG   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     **//#&-$, !/ %VD\w?**W%**W%#k8 %5 !+ %VD\w?**W%**W%"k8r   )r   r   )__name__
__module____qualname____firstlineno___numba_parallel_test_r   r   r+   r3   r=   rL   rP   unittest
skipUnlessr	   
ENABLE_AVXrc   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r      sb      "(28!B)%
 **>@9@9 9r   r   c                   ,  a  ] tR t^t o R t]P                  ! RR/R7      R 4       t]P                  ! RR/R7      R 4       t]P                  ! RR/R7      R	 4       t	]P                  ! 4       R
 4       t
]P                  ! RR/R7      R 4       tRtV tR# )TestNumbaOptLevelc           	     &  a aa	 ^ RI HpHp S P                  VP                  V4       S P                  VP                  P
                  V4       ^ RIHp Ro	VV V	3R lp\        P                  P                  VRVR7      ;_uu_ 4        S P                  \        4      ;_uu_ 4       pV! R 4      ! 4        RRR4       S P                  S	\        XP                  4      4       RRR4       R#   + '       g   i     L?; i  + '       g   i     R# ; i)	r   )r	   njit)
CPUCodegenzexpected side effectc                  >   < SP                  VS4       \        S4      hrO   )rF   RuntimeError)argskwargsexpectedr   side_effect_messages   *,r   side_effect,TestNumbaOptLevel.check.<locals>.side_effect   s    VX.233r   _module_pass_manager)r|   c                      R # ). r   r   r   <lambda>)TestNumbaOptLevel.check.<locals>.<lambda>   s    cr   N)numbar	   rt   rF   OPT
_raw_valuenumba.core.codegenru   r   patchobjectassertRaisesrw   r[   rB   	exception)
r   rz   	opt_value	raw_valuer	   rt   ru   r|   raisesr{   s
   ff&&     @r   checkTestNumbaOptLevel.check   s    & 	Y/..	: 	24	4 ZZz+A+6  8 8""<00F\"$ 1 MM-s63C3C/DE8 8008 8 8s$   C?&C,	5-C?,C<7C??D		NUMBA_OPTmax)envvarsc                @    R RRRR^RR/pV P                  V^R4       R# )	loop_vectorizeTslp_vectorizeFoptcostcheapr   Nr   r   rz   s   & r   test_opt_maxTestNumbaOptLevel.test_opt_max   s1     %d#U1G% 	

8Q&r   3c                @    R RRRR^ RR/pV P                  V^^4       R# r   Fr   r   r   r   Nr   r   s   & r   
test_opt_3TestNumbaOptLevel.test_opt_3   1     %e#U1G% 	

8Q"r   0c                @    R RRRR^ RR/pV P                  V^ ^ 4       R# r   r   r   s   & r   
test_opt_0TestNumbaOptLevel.test_opt_0   r   r   c                @    R RRRR^ RR/pV P                  V^^4       R# r   r   r   s   & r   test_opt_default"TestNumbaOptLevel.test_opt_default   s1     %e#U1G% 	

8Q"r   invalidc                @    R RRRR^ RR/pV P                  V^^4       R# r   r   r   s   & r   test_opt_invalid"TestNumbaOptLevel.test_opt_invalid   r   r   r   N)re   rf   rg   rh   r   r   run_test_in_subprocessr   r   r   r   r   rm   rn   )rp   s   @r   rr   rr      s     F8 $$k5-AB' C' $$k3-?@# A# $$k3-?@# A# $$&# '# $$k9-EF# G#r   rr   __main__)r    r   textwrapr   rj   r   numba.tests.supportr   r   r   r   
numba.corer	   r%   
_HAVE_YAMLImportError	_skip_msgskipIf
needs_yamlr   rr   re   mainr   r   r   <module>r      s    	    4 4 J 9	__^Y7
 r9 r9 r9jL# L#^ zMMO Y  Js   B 	BB