
    piE]                     l   d dl Z d dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
 d dlmZmZ d dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZ  G d de      Z G d	 d
e      Z  G d de      Z! G d de      Z" G d dee      Z# G d de      Z$e G d de             Z%e&dk(  r ejN                          yy)    N)product)njittypedobjmodeprange)ir_utilsir)CompilerErrorNumbaPerformanceWarningTypingErrorUnsupportedBytecodeError)
TestCaseunittestcaptured_stdoutMemoryLeakMixinskip_parfors_unsupportedskip_unless_scipyexpected_failure_py311expected_failure_py312expected_failure_py313expected_failure_py314c                       e Zd Zy)MyErrorN)__name__
__module____qualname__     ]/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/numba/tests/test_try_except.pyr   r      s    r   r   c                   t    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zed        Zd Zd Zd Zy)TestTryBareExceptzhTest the following pattern:

        try:
            <body>
        except:
            <handling>
    c                     t         d        t         fd       }| j                   |d      d       | j                   |d      d       y )Nc                     | rt         y Nr   xs    r   innerz5TestTryBareExcept.test_try_inner_raise.<locals>.inner!   s     r   c                 &    	  |        y#  Y yxY w)N
not raisedcaughtr   )r'   r(   s    r   udtz3TestTryBareExcept.test_try_inner_raise.<locals>.udt&   s     a# s    Fr*   Tr+   r   assertEqual)selfr,   r(   s     @r   test_try_inner_raisez&TestTryBareExcept.test_try_inner_raise    sS    		 
	 
	  
	  	U\2TH-r   c                 H   t         d        t         fd       }| j                  t              5 } |d       d d d        | j                  t	        j
                        d       | j                   |d      d       | j                   |d      d       y # 1 sw Y   _xY w)	Nc                 D    | dk(  rt        d      | dk(  rt        d      y )N   one   twor%   r&   s    r   r(   z5TestTryBareExcept.test_try_state_reset.<locals>.inner2   s)    Aven$aen$ r   c                 J    	  |        d}| dk(  r d       |S #  d}Y xY w)Nr*   r+   r   r5   r   )r'   resr(   s     r   r,   z3TestTryBareExcept.test_try_state_reset.<locals>.udt9   s5    a" AvaJ	s   
 "r   r6   r3   r+   r*   )r   assertRaisesr   r.   str	exception)r/   r,   raisesr(   s      @r   test_try_state_resetz&TestTryBareExcept.test_try_state_reset1   s    		% 
	% 
	 
	 w' 	6F	V--.6Q*R,/		 	s   	BB!c                     t         d        }|S )Nc                     | dk(  rt        d       t        d      | dk(  rt        d       t        d      | dk(  rt        d       t        d	      t        d
       y )Nr3   call_oner4   r5   call_twor6      
call_threethree
call_otherprintr   r&   s    r   r(   z-TestTryBareExcept._multi_inner.<locals>.innerK   sV    Avj!en$aj!en$al#g&&l#r   )r   )r/   r(   s     r   _multi_innerzTestTryBareExcept._multi_innerJ   s    		$ 
	$ r   c                    | j                         t        fd       }| j                  t              5 }t	               5 } |ddd       d d d        d d d        | j                  j                         j                         g d       | j                  t        j                        d       t	               5 } |ddd       d d d        | j                  |j                         j                         g d       t	               5 } |ddd       d d d        | j                  |j                         j                         g d	       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w)
Nc                     	 	 t        d        |        t        d       y #  t        d        |       t        d       Y y xY w#  t        d        |       t        d       Y y xY w)NABCDEF)rH   )r'   yzr(   s      r   r,   z.TestTryBareExcept.test_nested_try.<locals>.udt^   sY    #J!H#J#J!H#Jc
ac
s   #  AA A  A*r3   r5   rC   )rL   rA   rN   rB   rP   rD   rE   r   )rL   rA   rN   rF   rO   )rL   rA   rN   rB   rP   rF   rQ   )
rI   r   r:   r   r   r.   getvaluesplitr;   r<   )r/   r,   r=   stdoutr(   s       @r   test_nested_tryz!TestTryBareExcept.test_nested_try[   sQ   !!#		 
	  w' 	6 " fAq!	 	OO##%A	
 	V--.8  	&1aL	OO##%5	
  	&1aL	OO##%F	
' 	 		 		 	s;   E EE:E%E1E	EE"%E.1E:c                    | j                         t        fd       }t               5 } |dd      }d d d        | j                  j	                         j                         g d       | j                  d       t               5 } |dd      }d d d        | j                  |j	                         j                         g d       | j                  |d       t               5 } |dd      }d d d        | j                  |j	                         j                         g d       | j                  |d	       y # 1 sw Y   	xY w# 1 sw Y   xY w# 1 sw Y   exY w)
Nc                     	 t        d       t        |      D ]  }t        |       || k(  s |        	 S #  t        d       Y S xY w)NrL   rM   )rH   range)r'   nir(   s      r   r,   z/TestTryBareExcept.test_loop_in_try.<locals>.udt   sQ    c
q !A!HAva! Hc
Hs   ): 
: A
rC      )rL   0123rD   rM   r3   )rL   r^   r_   rA   rM   r   )rL   r^   rF   r_   r`   r5   )rI   r   r   r.   rT   rU   )r/   r,   rV   r8   r(   s       @r   test_loop_in_tryz"TestTryBareExcept.test_loop_in_try   sC   !!#			 
		  	&a)C	OO##%8	
 	a   	&a)C	OO##%,	
 	a   	&a)C	OO##%.	
 	a 1	 		 		 	s#   
D;
E&
E;EEEc                    t         d        }t               5 } |d      }d d d        | j                  j                         j	                         ddg       | j                  d       t               5 } |d      }d d d        | j                  |j                         j	                         ddg       | j                  |d       y # 1 sw Y   xY w# 1 sw Y   XxY w)	Nc                 p    	 t        d       | rt        d      t        d       y#  t        d       Y yxY w)NrL   my_errorrM   rN   A  {   rG   r&   s    r   r,   z0TestTryBareExcept.test_raise_in_try.<locals>.udt   s9    c
!*--c
 c
s   #& 5TrL   rN   rf   FrM   rg   r   r   r.   rT   rU   r/   r,   rV   r8   s       r   test_raise_in_tryz#TestTryBareExcept.test_raise_in_try   s    			 
		  	&d)C	 	OO##%#J	
 	c"  	&e*C	 	OO##%#J	
 	c"#	 		 	   	C4	CCCc                     t         fd       t               5 } d      }d d d        | j                         | j                  j	                         j                         dg       y # 1 sw Y   JxY w)Nc                 l    | dkD  r	  | dz
         | dk(  rt        d      y #  t        d       Y yxY w)Nr   r3   CAUGHT   r<   )rH   
ValueError)r'   foos    r   rq   z-TestTryBareExcept.test_recursion.<locals>.foo   sD    1uAJ Av -- (Os   $ 3
   rn   )r   r   assertIsNoner.   rT   rU   )r/   rV   r8   rq   s      @r   test_recursionz TestTryBareExcept.test_recursion   so    		. 
	.  	&b'C	 	#*002XKA		 	s   	A,,A5c                    t         d        t         fd       }t               5 } |d      }d d d        | j                  d       | j                  j                         j	                         g        y # 1 sw Y   JxY w)Nc              3   j   K   | dkD  r	 d t        d      y # t        $ r t        d       Y y w xY ww)Nr      r<   rn   )rp   	ExceptionrH   r&   s    r   rq   z)TestTryBareExcept.test_yield.<locals>.foo   s>     1u$G$[11  ! $(O$s   3 30303c                 &    t         |             S r$   )next)rS   rq   s    r   barz)TestTryBareExcept.test_yield.<locals>.bar   s    A<r   rr   rw   rh   )r/   r{   rV   r8   rq   s       @r   
test_yieldzTestTryBareExcept.test_yield   s    		$ 
	$ 
	  
	   	&b'C	 	a *002B7		 	s   	A88Bc                     t         d        }t               5 } |d       d d d        | j                  j                         j	                         dg       y # 1 sw Y   9xY w)Nc                     d } |        y )Nc                  >    	 t        d      #  t        d       Y yxY w)Nr<   rn   ro   rp   rH   r   r   r   r{   z9TestTryBareExcept.test_closure2.<locals>.foo.<locals>.bar   s#    $[11(Os    r   r'   r{   s     r   rq   z,TestTryBareExcept.test_closure2.<locals>.foo   s     Er   rr   rn   rh   r/   rq   rV   s      r   test_closure2zTestTryBareExcept.test_closure2   s^    		 
	  	&G	 	*002XKA	 	s   	AA!c                     t         d        }t               5 } |d      }d d d        | j                  g d       | j                  j                         j	                         dgdz         y # 1 sw Y   PxY w)Nc                 J    d }t        |g d      D  cg c]  } |  c} S c c} w )Nc                 B    	 t        d      #  t        d       | cY S xY w)Nr<   rn   r   rS   s    r   r{   z9TestTryBareExcept.test_closure3.<locals>.foo.<locals>.bar  s%    $[11(OHs    r3   r5   rC   )mapr   s     r   rq   z,TestTryBareExcept.test_closure3.<locals>.foo
  s$      #3	23!A333s   	 rr   r   rn   rC   rh   r/   rq   rV   r8   s       r   test_closure3zTestTryBareExcept.test_closure3	  st    		4 
	4  	&b'C	 	i(*002XK!OE		 	s   	A//A8c                    t         d        }t               5 } |d      }d d d        | j                  j                         j	                         d       | j                         t               5 } |d      }d d d        | j                  |j                         d       | j                  |g d       y # 1 sw Y   xY w# 1 sw Y   JxY w)Nc                 t    d }	 t        |ddd| g      D  cg c]  } |  c} S c c} w #  t        d       Y y xY w)Nc                 &    | dk  rt        d      | S )Nr   r<   rp   r   s    r   r{   z9TestTryBareExcept.test_closure4.<locals>.foo.<locals>.bar  s    q5$[11r   r3   r5   rC   rn   )r   rH   r   s     r   rq   z,TestTryBareExcept.test_closure4.<locals>.foo  s=    
 #&sQ1aL#9:a::: hs   ( 	#( ( 7r9   rn       )r3   r5   rC   r   )r   r   r.   rT   striprs   r   s       r   test_closure4zTestTryBareExcept.test_closure4  s    			  
		   	&b'C	 	*002H=# 	&a&C	*B/l+	 		 	s   	B71	C7C Cc                     t         d        }t               5 } |        d d d        | j                  j                         j	                         dg       y # 1 sw Y   9xY w)Nc                      t        j                  d      } 	 t         j                  j                  |       }y #  t	        d       cY S xY w)N)r   r   rn   )npzeroslinalgcholeskyrH   )achols     r   rq   z0TestTryBareExcept.test_real_problem.<locals>.foo4  s<     Ayy))!,hs	   7 Arn   rh   r   s      r   test_real_problemz#TestTryBareExcept.test_real_problem2  s\    		 
	  	&E	 	*002XK@	 	s   AA c           	         t         d        }t               5 } |d       d d d        | j                  j                         j	                         dgdz  t        dd      D cg c]  }d|z  	 c}z          y # 1 sw Y   ZxY wc c}w )Nc                     t        |       D ]  }	 |dkD  rt         	 	 	 dkD  rt        y #  t        d       Y /xY w#  t        d       t        xY w#  t        d       t        xY w#  t        d       Y y xY w)Nr]   rn   CAUGHT1CAUGHT2CAUGHT3)rZ   rp   rH   )r[   r\   s     r   rq   z,TestTryBareExcept.test_for_loop.<locals>.fooC  s     1X %$1u(( %%	)- 1u&0 0  %$(O-!),",,)i(((%)$s)   ,> ;AA A''A* *A9rr   rn   r   r3   zCAUGHT%s)r   r   r.   rT   rU   rZ   )r/   rq   rV   r\   s       r   test_for_loopzTestTryBareExcept.test_for_loopB  s    		% 
	%.  	&G	 	OO##%K!OuQ{C!zA~CC	
	 	
 Ds   	A9#B9Bc                 P    t         d        } |d      }| j                  |d       y )Nc                     	 	 | S #  Y | S xY wr$   r   r&   s    r   rq   z,TestTryBareExcept.test_try_pass.<locals>.food  s      HHs   
rg   r-   )r/   rq   r8   s      r   test_try_passzTestTryBareExcept.test_try_passc  s/    		 
	 #hc"r   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  &    	 t        d      #   xY wNERRORr   r   r   r   r,   z6TestTryBareExcept.test_try_except_reraise.<locals>.udtp  s     ))s    4The re-raising of an exception is not yet supported.r   r:   r   assertInr;   r<   r/   r,   r=   s      r   test_try_except_reraisez)TestTryBareExcept.test_try_except_reraiseo  ^    		 
	 78 	FE	B  !	
	 	   AA!N)r   r   r   __doc__r0   r>   rI   rW   rb   rj   rt   r|   r   r   r   r   r   r   r   r   r   r   r   r!   r!      sj    ."02"+
Z(!T#BB$8(B F",0 A A
B
#
r   r!   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestTryExceptCaughtc                 x   t         d        }t               5 } |d       d d d        | j                  j                         j	                         g d       t               5 } |d       d d d        | j                  |j                         j	                         g d       y # 1 sw Y   xY w# 1 sw Y   FxY w)Nc                     	 t        d       | rt        d      t        d       t        d       y # t        $ r t        d       Y "w xY w)NrL   321rM   rN   rO   rH   ZeroDivisionErrorrx   r&   s    r   r,   z5TestTryExceptCaught.test_catch_exception.<locals>.udt  sD    c
+E22c
 #J  c
s   #1 AAT)rL   rN   rO   FrL   rM   rO   rh   )r/   r,   rV   s      r   test_catch_exceptionz(TestTryExceptCaught.test_catch_exception  s    		 
	  	&I	 	OO##%	
  	&J	 	OO##%	
	 		 	s   	B$"	B0$B-0B9c                    t         d        }t               5 } |d      }d d d        | j                  j                         j	                         ddg       | j                  d       t               5 } |d      }d d d        | j                  |j                         j	                         g d       | j                  |d       y # 1 sw Y   xY w# 1 sw Y   XxY w)	Nc                     	 t        d       | rt        t        d       d}t        d       |S # t        $ r t        d       d}|cY S w xY w)NrL   rM   rg   rN   rf   rO   r   )r'   rs     r   r,   z5TestTryExceptCaught.test_return_in_catch.<locals>.udt  sS    	c
++c

 #JH  c
s    / A
	A
TrL   rN   rf   Fr   rg   rh   ri   s       r   test_return_in_catchz(TestTryExceptCaught.test_return_in_catch  s    		 
	  	&d)C	 	OO##%#J	
 	c"  	&e*C	 	OO##%	
 	c"#	 		 	rk   c                     t         d        }| j                  t              5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                 P    	 | rt         d}|S # t        $ r}d}|cY d }~S d }~ww xY w)Nrg   rf   )r   rx   )r'   r   es      r   r,   z1TestTryExceptCaught.test_save_caught.<locals>.udt  s8    ++ H  s   
 	% %%Tz3Exception object cannot be stored into variable (e)r   r   s      r   test_save_caughtz$TestTryExceptCaught.test_save_caught  s`    		 
	 78 	FI	A  !	
	 	s   	AA"c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  6    	 t        d      # t        $ r  w xY wr   rp   rx   r   r   r   r,   z8TestTryExceptCaught.test_try_except_reraise.<locals>.udt  s$     )) s    r   r   r   s      r   r   z+TestTryExceptCaught.test_try_except_reraise  r   r   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  T    	 t        d      # t        $ r 	  # t        $ r  w xY ww xY wr   r   r   r   r   r,   z>TestTryExceptCaught.test_try_except_reraise_chain.<locals>.udt  s;     ))   s    	'#'r   r   r   s      r   test_try_except_reraise_chainz1TestTryExceptCaught.test_try_except_reraise_chain  s^    		 
	 78 	FE	B  !	
	 	r   c                 |    t         d        }| j                   |d      d       | j                   |d      d       y )Nc                 6    	 d| z   d| z  S # t         $ r Y yw xY w)Nr3     )rx   rR   s    r   r,   z7TestTryExceptCaught.test_division_operator.<locals>.udt  s-    A 1u  s    	r   r   r5   g      ?r-   r/   r,   s     r   test_division_operatorz*TestTryExceptCaught.test_division_operator  s@     
	 
	 	Q(Q%r   N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r     s!    
<"#H
&

$&r   r   c                   "    e Zd ZdZd Zd Zd Zy)TestTryExceptNestedzTests for complicated nestingc                 (   t               5 } ||i | d d d        j                         }t               5 } ||i | d d d        |j                         }| j                  ||dj                  ||             y # 1 sw Y   ixY w# 1 sw Y   JxY w)Nzargs={} kwargs={})msg)r   rT   r.   format)r/   cfuncpyfuncargskwargsrV   expectgots           r   check_comparez!TestTryExceptNested.check_compare	  s     	$&D#F#	$" 	#&4"6"	#ooC#**48 	 	
	$ 	$	# 	#s   	A<	B<BBc           	          t         d        }t        t        ddgd            }| j                  |       |D ](  \  }}}}| j	                  ||j
                  ||||       * y )Nc                 ,   t        d       | rPt        d       	 t        d       |rt        d       t        d      t        d       t        d       t        d       t        d       y # t        $ r t        d       	 t        d	       	 t        d
       |rt        d       t        d      t        d       t        d       n# t        $ r t        d       Y nw xY wt        d       n# t        $ r t        d       Y nw xY wt        d       Y w xY w)NrL   rM   rN   rO   rR   rP   GrQ   HIJrS   KMLONPQRrH   r   rx   r'   rR   rS   ps       r   r,   z5TestTryExceptNested.test_try_except_else.<locals>.udt  s    #Jc
#Jc
%cl*#J* #Jc
#J- ! #J#c
	'!#J  %c
&-cl 2!#J "#J  ) '!#J' c
 % #c
# #J%sY   .A* *D?C+.C9C+CC+CC+D+D?DDDDTFr   repeatr   r   listr   
assertTruer   py_func)r/   r,   casesr'   rR   rS   r   s          r   test_try_except_elsez(TestTryExceptNested.test_try_except_else  st    	 	 
 	D WdE]156 	JAq!QS[[qA  	r   c                     t         d        }t        t        ddgd            }| j                  |       |D ]$  \  }}| j	                  ||j
                  ||       & y )Nc                    	 t        d       | rt        d       t        t        d       	 t        d       |rt        d       t        	 t        d       t        d	       y #  t        d       Y FxY w# t        $ r t        d       Y 4w xY w# t        d	       w xY w# 	 t        d       |rt        d       t        	 t        d       n# t        $ r t        d       Y nw xY wt        d	       w # t        d	       w xY wxY w)
NrL   rM   rN   rO   rP   rQ   r   r   r   r   r   qs     r   r,   z8TestTryExceptNested.test_try_except_finally.<locals>.udtC  s    c
#J!Mc

#Jc
%  #J#Jc
 ! #J
 #J
#Jc
%  #J ! #J
 #JE#Jsv   )A" A4 B "A1/B 4BB 
BB BD C?C1C"C1!C""C1%D1C>>DTFr5   r   r   r   )r/   r,   r   r   r   s        r   test_try_except_finallyz+TestTryExceptNested.test_try_except_finallyB  sk    		 
	, WdE]156 	DAqS[[q  	r   N)r   r   r   r   r   r   r   r   r   r   r   r     s    #
*Xr   r   c                       e Zd Zd Zd Zd Zy)TestTryExceptRefctc                     t         d        } |dd      }| j                  t        |      t        t        d                    |dd      }| j                  t        |      t        t        d                   y )Nc                     t        j                         }	 t        |       D ]  }||k(  rt        |j	                  |         	 |S # t
        $ r |cY S w xY wr$   )r   ListrZ   
IndexErrorappendrx   )r[   raise_atlstr\   s       r   r,   z6TestTryExceptRefct.test_list_direct_raise.<locals>.udte  sZ    **,Cq "AH}((JJqM" 
  
s   ,A AArr   r]   r   r   r.   r   rZ   )r/   r,   outs      r   test_list_direct_raisez)TestTryExceptRefct.test_list_direct_raised  sf    	
	 

	 "q!cDqN3"r"cDrO4r   c           	      &   t         d        t         fd       } |dd      }| j                  t        |      dgt        t        d            z           |dd      }| j                  t        |      dgt        t        d            z          y )Nc                 ^    t        |      D ]  }||k(  rt        | j                  |         | S r$   )rZ   r   r   )r  r[   r   r\   s       r   appenderz=TestTryExceptRefct.test_list_indirect_raise.<locals>.appenderx  s4    1X =$$

1 Jr   c                     t        j                         }|j                  d       	  || |       |S # t        $ r |cY S w xY w)N  )r   r   r   rx   )r[   r   r  r  s      r   r,   z8TestTryExceptRefct.test_list_indirect_raise.<locals>.udt  sH    **,CJJva* 
  
s   
4 AArr   r]   r  r
  r  )r/   r,   r  r  s      @r   test_list_indirect_raisez+TestTryExceptRefct.test_list_indirect_raisew  s    		 
	 
	 
	 "q!cVHtE!H~$=>"r"cVHtE"I$>?r   c                     t         d        }| j                  t              5 } |        d d d        | j                  t	        j
                        d       y # 1 sw Y   /xY w)Nc                      	 t        j                         } t        d       | j                  d       t        d       | j                  d       t        d       | S # t        $ r t        d       Y y w xY w)NrL   r   rM   fdarN   rO   )r   r   rH   r   rx   )r  s    r   r,   z<TestTryExceptRefct.test_incompatible_refinement.<locals>.udt  sY    	jjlc


1c


5!c

 c
s   AA A21A2z@Cannot refine type|cannot safely cast unicode_type to int(32|64))r   r:   r   assertRegexr;   r<   r   s      r   test_incompatible_refinementz/TestTryExceptRefct.test_incompatible_refinement  s_    	
	 

	 {+ 	vE	  !O	
	 	r   N)r   r   r   r  r  r  r   r   r   r   r   c  s    5&@2
r   r   c                   t    e Zd Zd Zeeeed                             Zeeeed                             Z	d Z
y)TestTryExceptOtherControlFlowc                     t         d        }| j                  t         |dd            t        t        d                   | j                  t         |dd            t        t        d                   y )Nc              3   l   K   t        |       D ]  }	 ||k(  rt        |  y # t        $ r Y  y w xY wwr$   )rZ   rp   rx   )r[   r'   r\   s      r   r,   z5TestTryExceptOtherControlFlow.test_yield.<locals>.udt  sC     1X Av((G	
 ! s   4$4	1414rr   r]   r  r   s     r   r|   z(TestTryExceptOtherControlFlow.test_yield  s\    		 
	 	c"aj)4a>:c"bk*DrO<r   c                     t         d        }| j                  t              5 } |        d d d        d}| j                  |t	        j
                               y # 1 sw Y   1xY w)Nc                      	 t               5  t        t                      d d d        y # 1 sw Y   y xY w# t        $ r Y y w xY wr$   )r   rH   objectrx   r   r   r   r,   z7TestTryExceptOtherControlFlow.test_objmode.<locals>.udt  s;    Y $&(O$ $ $ s#   
5 )5 25 5 	A Alunsupported control flow: with-context contains branches (i.e. break/return/raise) that can leave the block r   r:   r
   r   r;   r<   )r/   r,   r=   r   s       r   test_objmodez*TestTryExceptOtherControlFlow.test_objmode  sg    
 
	 
	 }- 	E	E  !	
		 	s   AA#c                     d t         fd       }| j                  t              5 } |        d d d        d}| j                  |t	        j
                               y # 1 sw Y   1xY w)Nc                 l    t        j                  t        t        | j	                                           S r$   )r   asarrayr   reversedtolistr&   s    r   r{   zCTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.bar  s!    ::d8AHHJ#7899r   c                      t        j                  d      } t        j                  |       }	 t        d      5  | |       z  }d d d        |S # 1 sw Y   |S xY w# t        $ r Y |S w xY w)Nr]   zintp[:]r   )r   arange
zeros_liker   rx   )r'   rR   r{   s     r   r  zLTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.test_objmode  sn    		!Aa Ay)  QKA 
 H 
 H  Hs.   A AA AA A 	A)(A)r  r  )r/   r  r=   r   r{   s       @r   test_objmode_output_typez6TestTryExceptOtherControlFlow.test_objmode_output_type  sm    
	: 
		 
		 }- 	N	E  !	
		 	s   A  A)c                    d }t        j                  |      D ]  }|j                  dk(  s n | j                  d       t	        j
                  i |j                        }d}|j                  j                         D ]L  \  }}|j                  t        j                        D ]%  }d}|j                  s||j                  d   v s$d}' N |s| j                  d       y y )	Nc                  @    	 t         # t         $ r t        d      w xY wr   )rx   rp   r   r   r   r   zMTestTryExceptOtherControlFlow.test_reraise_opcode_unreachable.<locals>.pyfunc  s&    * * ))*s    RERAISEz!expected RERAISE opcode not foundFz8Unreachable condition reached (op code RERAISE executed)r   Tz.expected RERAISE unreachable message not found)disget_instructionsopnamefailr   get_ir_of_code__code__blocksitems
find_instsr	   StaticRaiseexc_args)	r/   r   instfunc_irfoundlblblkstmtr   s	            r   test_reraise_opcode_unreachablez=TestTryExceptOtherControlFlow.test_reraise_opcode_unreachable  s    
	*
 ((0 	;D{{i'	; II9:))"foo>,,. 	!HCr~~6 ! Q==SDMM!,<%< E!	! IIFG r   N)r   r   r   r|   r   r   r   r   r  r#  r8  r   r   r   r  r    se    = 
    
$ 
    
2Hr   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestTryExceptParforsc                     d }dg} || }| j                    t        d      |      | |       | j                    t        d      |      | |       y )Nc                 ^    d}t        |       D ]  }	 |dz  }
 |S # t        $ r |dz  }Y w xY w)Nr   r3   r   rx   r[   cr\   s      r   r,   z>TestTryExceptParfors.test_try_in_prange_reduction.<locals>.udt
  sI    AAY FA
 H ! FAs   ,,rr   FparallelT)r.   r   r/   r,   r   r   s       r   test_try_in_prange_reductionz1TestTryExceptParfors.test_try_in_prange_reduction  sc    	 td2-u-c2D96B1,t,S148&Ar   c                    d }dg} || }| j                    t        d      |      | |       t        j                  d      5 }t        j                  dt
               | j                    t        d      |      | |       d d d        | j                  t              d       | j                  d	t        |d
                y # 1 sw Y   CxY w)Nc                 V    d}	 t        |       D ]  }|dz  }	 	 |S # t        $ r Y yw xY w)Nr   r3   r   r=  r>  s      r   r,   zCTestTryExceptParfors.test_try_outside_prange_reduction.<locals>.udt  sC    A AFA
   s    	((rr   Fr@  T)recordalwaysr3   z5no transformation for parallel execution was possibler   )	r.   r   warningscatch_warningssimplefilterr   lenr   r;   )r/   r,   r   r   ws        r   !test_try_outside_prange_reductionz6TestTryExceptParfors.test_try_outside_prange_reduction  s    	 td2-u-c2D96B$$D1 	FQ!!(,CD50T405t<fE	F 	Q#M!A$i	!		F 	Fs   A C		Cc                     d }t        j                  d      dg} || }| j                    t        d      |      | |       | j                    t        d      |      | |       y )Nc                     | j                         }t        | j                        D ]  }	 ||k(  rt        | |   |z   ||<    |S # t        $ r d||<   Y .w xY wNr9   copyr   sizerp   rx   arrr'   r  r\   s       r   r,   z8TestTryExceptParfors.test_try_in_prange_map.<locals>.udt0  si    ((*CCHH%   Av(( VaZCF	  J !  CF s   AAArr      Fr@  Tr   r!  assertPreciseEqualr   rB  s       r   test_try_in_prange_mapz+TestTryExceptParfors.test_try_in_prange_map/  n    		 		"q!d 9 4e 4S 94 @&I 8 3d 3C 8$ ?Hr   c                     d }t        j                  d      dg} || }| j                    t        d      |      | |       | j                    t        d      |      | |       y )Nc                     | j                         }	 t        | j                        D ]  }||k(  rt        | |   |z   ||<    	 |S # t        $ r	 d|<   Y |S w xY wrP  rQ  rT  s       r   r,   z=TestTryExceptParfors.test_try_outside_prange_map.<locals>.udtA  sn    ((*C) (AAv(( VaZCF( J  AJs   0A AArr   rV  Fr@  TrW  rB  s       r   test_try_outside_prange_mapz0TestTryExceptParfors.test_try_outside_prange_map@  rZ  r   N)r   r   r   rC  rM  rY  r]  r   r   r   r:  r:    s    B !.I"Ir   r:  __main__)(rH  r'  	itertoolsr   numpyr   numbar   r   r   r   
numba.corer   r	   numba.core.errorsr
   r   r   r   numba.tests.supportr   r   r   r   r   r   r   r   r   r   rx   r   r!   r   r   r   r  r:  r   mainr   r   r   <module>rf     s     
   . . #   	i 	d
 d
ND&( D&NZ( Zz@
( @
F\HH \H~ II8 II IIX zHMMO r   