+
    :i</                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
HtHtHtHt ^ RIHtHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RItR tR	 t ! R
 R]4      tR]P@                  3.t!R t"R t#R t$R t% ! R R]4      t& ! R R]&4      t' ! R R]'4      t( ! R R]&4      t) ! R R]&4      t* ! R R]'4      t+ ! R R]4      t,]-R8X  d   ]P\                  ! 4        R# R# )     N)TestCaseoverride_configoverride_env_configcaptured_stdoutforbid_codegenskip_parfors_unsupported
needs_blas)jitnjit)typescompilerutils)NumbaPerformanceWarning)prange)jitclassc                     V ^,           pV# )    )someargretvals   & T/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_debug.pysimple_nopythonr      s    q[FM    c              #      "   V x  Vx  R # 5iNr   )xys   &&r   
simple_genr      s     
G
Gs   c                   &   a  ] tR t^t o R tRtV tR# )SimpleClassc                    ^V n         R# )   Nh)selfs   &r   __init__SimpleClass.__init__   s	    r   r#   N)__name__
__module____qualname____firstlineno__r&   __static_attributes____classdictcell____classdict__s   @r   r    r       s      r   r    r$   c                     V P                   # r   r#   )objs   &r   simple_class_userr2   #   s    55Lr   c                 .    \         P                  ! W4      # r   )npdot)abs   &&r   unsupported_parforr8   &   s    66!<r   c                     \         P                  ! V 4      p\        V 4       F(  pW,          \         P                  ! V4      ,           W&   K*  	  V# r   r4   onesr   sinnr6   is   &  r   supported_parforr@   )   s8    

AAYtbffQi Hr   c                     \         P                  ! V 4      p\        V 4       F8  pW,          \         P                  ! V4      ,           W&   V^,           R8  d   K8  Q h	  V# )   i r:   r=   s   &  r   unsupported_prangerC   /   sJ    

AAYtbffQi2v  Hr   c                   p   a  ] tR t^7t o ]! . RO4      tR tR tR tR t	R t
R tR tR tR	 tR
 tRtV tR# )DebugTestBasec                :    V P                   ! \        .VO5/ VB  R # r   )assertRaisesAssertionError)r%   argskwargss   &*,r   assert_failsDebugTestBase.assert_fails<   s    .:4:6:r   c                    \         P                  V P                  R 4      pV F  pWC9   g   Q hRW4&   K  	  \        VP	                  4       4       F;  w  rE\        V RV,          4      pV'       d   V! V4       K*  V P                  Wa4       K=  	  R# )FTz_check_dump_%sN)dictfromkeys	all_dumpssorteditemsgetattrrK   )r%   out
dump_namesenabled_dumpsnameenabled
check_meths   &&&    r   check_debug_output DebugTestBase.check_debug_output?   sz    dnne<D((("&M  $M$7$7$9:MD '7$'>?J3!!*2 ;r   c                    \         P                  R9   d   V P                  RV4       R# \         P                  R9   d   V P                  RV4       R# \        \         P                  4      h)   	BINARY_OP
BINARY_ADDN))r]      )r]      )r]   rB   )r]      ))r]   
   )r   	PYVERSIONassertInNotImplementedErrorr%   rT   s   &&r   _check_dump_bytecode"DebugTestBase._check_dump_bytecodeK   sF    ??BBMM+s+__
*MM,,%eoo66r   c                *    V P                  R V4       R# )zCFG dominatorsNre   rg   s   &&r   _check_dump_cfgDebugTestBase._check_dump_cfgS   s    &,r   c                L    V P                  R V P                  ,          V4       R# )z--IR DUMP: %s--Nre   	func_namerg   s   &&r   _check_dump_irDebugTestBase._check_dump_irV   s    '$..8#>r   c                *    V P                  R V4       R# )z--propagate--Nrk   rg   s   &&r   _check_dump_typeinfer#DebugTestBase._check_dump_typeinferY   s    os+r   c                    V P                  R V4       \        P                  P                  R,          P                  P
                  R8X  d   V P                  VRV4       R# R# )z--LLVM DUMPauto_parallelFz#store i64 %\"\.\d", i64\* %"retptr"N)re   r   FlagsoptionsdefaultrX   assertRegexrg   s   &&r   _check_dump_llvmDebugTestBase._check_dump_llvm\   sL    mS)>>!!/2::BBeKS"H#N Lr   c                p    V P                  R V P                  ,          V4       V P                  RV4       R# )z--FUNCTION OPTIMIZED DUMP %sadd nsw i64 %arg.somearg, 1Nro   rg   s   &&r   _check_dump_func_opt_llvm'DebugTestBase._check_dump_func_opt_llvma   s)    4t~~EsK3S9r   c                p    V P                  R V P                  ,          V4       V P                  RV4       R# )z--OPTIMIZED DUMP %sr   Nro   rg   s   &&r   _check_dump_optimized_llvm(DebugTestBase._check_dump_optimized_llvmf   s)    +dnn<cB3S9r   c                    V P                  R V P                  ,          V4       \        P                  ! 4       R9   d   V P                  RV4       R# R# )z--ASSEMBLY %sxorlN)x86_64AMD64i386i686)re   rp   platformmachinerg   s   &&r   _check_dump_assembly"DebugTestBase._check_dump_assemblyj   s?    o6<!DDMM&#& Er   r   N)bytecodecfgir	typeinferllvmfunc_opt_llvmoptimized_llvmassembly)r(   r)   r*   r+   setrP   rK   rZ   rh   rl   rq   rt   r|   r   r   r   r,   r-   r.   s   @r   rE   rE   7   sN      D EI;
37-?,O
:
:' 'r   rE   c                   *   a  ] tR t^pt o RtR tRtV tR# )FunctionDebugTestBaser   c                   \        4       ;_uu_ 4       p\        \        P                  34      ! \        4      pV P                  V! ^4      ^4       RRR4       VP                  4       #   + '       g   i     XP                  4       # ; i   N)r   r   r   int64r   assertPreciseEqualgetvaluer%   rT   cfuncs   &  r   compile_simple_nopython-FunctionDebugTestBase.compile_simple_nopythont   s`    #%++(9E##E!Ha0  ||~	  ||~s   =A((B	r   N)r(   r)   r*   r+   rp   r   r,   r-   r.   s   @r   r   r   p   s     !I r   r   c                   J   a  ] tR t^|t o R tR tR tR tR tR t	R t
RtV tR	# )
TestFunctionDebugOutputc                    \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       R#   + '       g   i     L%; i)DUMP_BYTECODETNr   r   r   rZ   rg   s   & r   test_dump_bytecode*TestFunctionDebugOutput.test_dump_bytecode~   =    _d33..0C 4j\2 43   AA	c                    \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       R#   + '       g   i     L%; i)DUMP_IRTNr   r   rg   s   & r   test_dump_ir$TestFunctionDebugOutput.test_dump_ir   s=    Y--..0C .dV, .-r   c                    \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       R#   + '       g   i     L%; i)DUMP_CFGTNr   r   rg   s   & r   test_dump_cfg%TestFunctionDebugOutput.test_dump_cfg   s=    Z....0C /eW- /.r   c                    \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       R#   + '       g   i     L%; i)	DUMP_LLVMTNr   r   rg   s   & r   test_dump_llvm&TestFunctionDebugOutput.test_dump_llvm   s=    [$//..0C 0fX. 0/r   c                    \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       R#   + '       g   i     L%; i)DUMP_FUNC_OPTTNr   r   rg   s   & r   test_dump_func_opt_llvm/TestFunctionDebugOutput.test_dump_func_opt_llvm   s>    _d33..0C 4o%67 43r   c                    \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       R#   + '       g   i     L%; i)DUMP_OPTIMIZEDTNr   r   rg   s   & r   test_dump_optimized_llvm0TestFunctionDebugOutput.test_dump_optimized_llvm   s@    -t44..0C 5&6%78 54r   c                    \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       R#   + '       g   i     L%; i)DUMP_ASSEMBLYTNr   r   rg   s   & r   test_dump_assembly*TestFunctionDebugOutput.test_dump_assembly   r   r   r   N)r(   r)   r*   r+   r   r   r   r   r   r   r   r,   r-   r.   s   @r   r   r   |   s-     3
-
.
/
8
9
3 3r   r   c                   0   a  ] tR t^t o RtR tR tRtV tR# )TestGeneratorDebugOutputr   c           
     J   \        4       ;_uu_ 4       p\        \        P                  \        P                  34      ! \        4      pV P                  \        V! ^^4      4      ^^.4       RRR4       VP                  4       #   + '       g   i     XP                  4       # ; ir   )r   r   r   r   r   r   listr   r   s   &  r   compile_simple_gen+TestGeneratorDebugOutput.compile_simple_gen   sr    #%++u{{34Z@E##Dq!$51v>  ||~	  ||~s   ABB"	c                @   \        R R4      ;_uu_ 4        V P                  4       pRRR4       V P                  XR.4       V P                  RV P                  ,          V4       \
        P                  ! R4      pV P                  W!4       R#   + '       g   i     Lo; i)r   TNr   z--GENERATOR INFO: %sz
            generator state variables: ['x', 'y']
            yield point #1: live variables = ['y'], weak live variables = ['x']
            yield point #2: live variables = [], weak live variables = ['y']
            )r   r   rZ   re   rp   textwrapdedent)r%   rT   expected_gen_infos   &  r   test_dump_ir_generator/TestGeneratorDebugOutput.test_dump_ir_generator   sx    Y--))+C .dV,,t~~=sC$OO - 
 	'- .-s   BB	r   N)	r(   r)   r*   r+   rp   r   r   r,   r-   r.   s   @r   r   r      s     I
. 
.r   r   c                   0   a  ] tR t^t o RtR tR tRtV tR# )TestDisableJITz2
Test the NUMBA_DISABLE_JIT environment variable.
c           	         \        R R4      ;_uu_ 4        \        4       ;_uu_ 4        \        RR7      ! \        4      pV P	                  V! ^4      ^4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; iDISABLE_JITT)nopythonN)r   r   r
   r   r   )r%   r   s   & r   test_jitTestDisableJIT.test_jit   s[    ]D11!!T*?;''a!4 " 21!! 211s"   A</A)	A<)A94A<<B	c           	        \        R R4      ;_uu_ 4        \        4       ;_uu_ 4        \        \        4      ! \        4      pV! 4       pV P                  VP                  ^4       \        RR7      ! \        4      pV P                  V! V4      ^4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir   )	r   r   r   simple_class_specr    r   r$   r
   r2   )r%   SimpleJITClassr1   r   s   &   r   test_jitclassTestDisableJIT.test_jitclass   s    ]D11!!!)*;!<[!I$&''q1T*+<=''c
A6 " 21!! 211s#   B8A+B%	B8%B50B88C		r   N)	r(   r)   r*   r+   __doc__r   r   r,   r-   r.   s   @r   r   r      s     5	7 	7r   r   c                   .   a  ] tR t^t o RtRtR tRtV tR# )TestEnvironmentOverridezF
Test that environment variables are reloaded by Numba when modified.
Fc                2   V P                  4       pV P                  V4       \        R R4      ;_uu_ 4        V P                  4       pV P                  V. RO4       RRR4       V P                  4       pV P                  V4       R#   + '       g   i     L3; i)NUMBA_DEBUG1N)r   r   r   r   r   r   )r   assertFalser   rZ   rg   s   & r   
test_debug"TestEnvironmentOverride.test_debug   s~    **, 44..0C ##C *H I	 5 **, 54s   %BB	r   N)	r(   r)   r*   r+   r   _numba_parallel_test_r   r,   r-   r.   s   @r   r   r      s     
 " r   r   c                   x   a  ] tR t^t o RtRtR tR t]]	R 4       4       t
]]	R 4       4       t]	R 4       tRtV tR	# )
TestParforsDebugz-
Tests debug options associated with parfors
Fc                    R pRpV F!  pV\        VP                  4      9   g   K  Rp M	  V P                  VR4       R# )zX'parallel=True' was specified but no transformation for parallel execution was possible.FT Warning message should be found.Nstrmessage
assertTruer%   	warn_listmsgwarning_foundws   &&   r   check_parfors_warning&TestParforsDebug.check_parfors_warning   sA    2Ac!))n$ $  	'IJr   c                    R pRpV F!  pV\        VP                  4      9   g   K  Rp M	  V P                  VR4       R# )zprange or pndindex loop will not be executed in parallel due to there being more than one entry to or exit from the loop (e.g., an assertion).FTr   Nr   r   s   &&   r   (check_parfors_unsupported_prange_warning9TestParforsDebug.check_parfors_unsupported_prange_warning   sC    , Ac!))n$ $  	'IJr   c                P   \         P                  ! \         P                  ^R4      p\        P                  ! RR7      ;_uu_ 4       p\        P
                  ! R\        4       \        W3RR7      ! \        4       RRR4       V P                  X4       R#   + '       g   i     L#; i)zZ
Test that using parallel=True on a function that does not have parallel
semantics warns.
CTrecordalwaysparallelN)
r   Arrayfloat64warningscatch_warningssimplefilterr   r   r8   r   )r%   arr_tyr   s   &  r   
test_warnsTestParforsDebug.test_warns  so     U]]As3$$D11Q!!(,CD&!D12DE 2 	""1% 21s   4BB%	c                    \         P                  ! RR7      ;_uu_ 4       p\         P                  ! R\        4       \	        \
        P                  3RR7      ! \        4       RRR4       V P                  X4       R#   + '       g   i     L#; i)z7
Test that prange with multiple exits issues a warning
Tr   r   r   N)	r  r  r  r   r   r   r   rC   r   )r%   r   s   & r   test_unsupported_prange_warns.TestParforsDebug.test_unsupported_prange_warns  s\     $$D11Q!!(,CD%++$/0BC 2 	55a8 21s   AA==B	c           	        \        \        P                  3RR7      ! \        4       \	        RR4      ;_uu_ 4        \        4       ;_uu_ 4       p\        \        P                  3RR7      ! \        4       RRR4       XP                  4       P                  R4      pV Uu. uF  pRV9   g   K  VNK  	  uppV Uu. uF  pRV9   g   K  VNK  	  uppV Uu. uF  pR	V9   g   K  VNK  	  upp\        \        P                  ! R
4      P                  V^ ,          4      P                  ^4      4      p\        VV\        V4      ,           4      pRp	Rp
\        WV	4       F(  w  rpV
P!                  W4      pV P#                  W4       K*  	  V^,           V^ ,           3p	Rp
V F$  pV
P                   ! V	!  pV P#                  W4       K&  	  \        P$                  ^\'        V.4      3p	Rp
V F$  pV
P                   ! V	!  pV P#                  W4       K&  	  RRR4       R#   + '       g   i     EL; iu upi u upi u upi   + '       g   i     R# ; i)z=
Test that NUMBA_DEBUG_ARRAY_OPT_STATS produces valid output
Tr   NUMBA_DEBUG_ARRAY_OPT_STATSr   N
zis produced from patternzis fused intozAfter fusion, functionz	#([0-9]+)z6Parallel for-loop #{} is produced from pattern '{}' atz1Parallel for-loop #{} is fused into for-loop #{}.z:After fusion, function {} has {} parallel for-loop(s) #{}.)z"('ones function', 'NumPy mapping'))r   user )r   r   r   r@   r   r   r   splitintrecompilesearchgrouprangelenzipformatre   r(   r   )r%   rT   outputr   parallel_loop_outputfuse_outputafter_fusion_outputparfor_stateboundspatternfmtr?   trialslpatternto_matchs   &              r   test_array_debug_opt_stats+TestParforsDebug.test_array_debug_opt_stats  s    	ekk^d+,<= !>DD ""cekk^d34DE # \\^))$/F"FFq&@A&EFF ! #;Fqo&:F;  #DFq&>!&CFD  
 rzz,7>>$Q' )).q3L<'#.B*CCEF
/GLC'*6+2(4#8::a2h/(4 $a')9:GEC%::w/h/ &
 (00!S,5HIGNC-::w/h/ .Q ED""" G;D EDDsZ   H='H	5+H= 	H..H.4H=;	H3	H3H=	H8$H8*D&H=H+%H==I	r   N)r(   r)   r*   r+   r   r   r   r   r	   r   r  r
  r&  r,   r-   r.   s   @r   r   r      sj     
 "K	K 	&  	& 9  9 40 40r   r   __main__)/osr   r  r   r  numpyr4   numba.tests.supportr   r   r   r   r   r   r	   numbar
   r   
numba.corer   r   r   numba.core.errorsr   r   numba.experimentalr   unittestr   r   objectr    int32r   r2   r8   r@   rC   rE   r   r   r   r   r   r   r(   mainr   r   r   <module>r4     s    	  	   " " "  - - 5  ' 
&  5;;'( 6'H 6'r	M 	#33 #3L.} .07] 7.3 *j0x j0Z zMMO r   