
    daf{                     |    d dl Z d dlmZ d dlmZ  G d de j
                        Zedk(  r e j                          yy)    N)support)
ann_modulec                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)

OpcodeTestc                     d}t        d      D ]  }||z   }ddz   	 	 	 ||z   } |dk7  r| j	                  d       y y # t        $ r Y -t        $ r Y 7t        $ r Y Aw xY w#  Y HxY w# w xY w)Nr   
      Z   ztry inside for)range	NameErrorZeroDivisionError	TypeErrorfail)selfnis      ,/root/Python-3.12.4/Lib/test/test_opcodes.pytest_try_inside_for_loopz#OpcodeTest.test_try_inside_for_loop	   s    r 
	A!A1 !A
	 7II&'  "d$*d"d"Ds'   =	AAAA A$'A)c                    	 t        t        j                  d      5 }|j                         }d d d        t	        t        j                  d      }| j                  |j                  d       y # 1 sw Y   AxY w# t        $ r Y y w xY w)Nzutf-8)encodingexecr	   )openr   __file__readcompileassertEqualco_firstlinenoOSError)r   ftxtcos       r   test_setup_annotations_linez&OpcodeTest.test_setup_annotations_line   sv    	j))G< ffhj116:BR..2   		s'   A: A.?A: .A73A: :	BBc                 P     G d d      }| j                  |j                  i        y )Nc                       e Zd Zy)4OpcodeTest.test_default_annotations_exist.<locals>.CN__name__
__module____qualname__     r   Cr%   $       r+   r,   )r   __annotations__r   r,   s     r   test_default_annotations_existz)OpcodeTest.test_default_annotations_exist#   s    **B/r+   c                 `    dddii}t        d|       | j                  |d   t        dd       y )Nr.   r	      zx: int)xr	   )r   r   int)r   nss     r   test_use_existing_annotationsz(OpcodeTest.test_use_existing_annotations'   s5    !Q(Xr-.ca0@Ar+   c                      t        j                  t               di       5  t               d=  G  fdd      }d d d        y # 1 sw Y   y xY w)Nr.   c                   j    e Zd ZU [W  j	                  e      5  eed<   ddd       y# 1 sw Y   yxY w)6OpcodeTest.test_do_not_recreate_annotations.<locals>.Cr3   N)r'   r(   r)   r.   assertRaisesr   r4   )r   s   r   r,   r9   0   s.    #&&y1 F  s   )2r,   )r   	swap_itemglobalsr/   s   ` r    test_do_not_recreate_annotationsz+OpcodeTest.test_do_not_recreate_annotations,   sB    wy*;R@ 		+, 	 	 	s   AAc                     G d dt               } G d d|      } G d dt               } G d d|      } |       #  Y nxY w |       # |$ r Y nw xY w |       # |$ r Y nw xY w |       # |$ r | j                          Y n Y nxY w |       } |       }	 |# |$ r}| j                  ||       Y d }~nd }~ww xY w ||      # |$ r}| j                  ||       Y d }~y d }~ww xY w)	Nc                       e Zd Zy)6OpcodeTest.test_raise_class_exceptions.<locals>.AClassNr&   r*   r+   r   AClassr@   7   r-   r+   rA   c                       e Zd Zy)6OpcodeTest.test_raise_class_exceptions.<locals>.BClassNr&   r*   r+   r   BClassrC   8   r-   r+   rD   c                       e Zd Zy)6OpcodeTest.test_raise_class_exceptions.<locals>.CClassNr&   r*   r+   r   CClassrF   9   r-   r+   rG   c                       e Zd Zd Zy)6OpcodeTest.test_raise_class_exceptions.<locals>.DClassc                      y )Nr*   )r   ignores     r   __init__z?OpcodeTest.test_raise_class_exceptions.<locals>.DClass.__init__;   s    r+   N)r'   r(   r)   rL   r*   r+   r   DClassrI   :   s    r+   rM   )	Exceptionr   r   assertIsInstance)r   rA   rD   rG   rM   abvs           r   test_raise_class_exceptionsz&OpcodeTest.test_raise_class_exceptions5   s    %Y%"V"%Y%	V 	 8^8^t8^t8^"tyy{HH	&G 	#Q""	# 1Io 	-!!!V,,	-so   < A A
 
AAA A$#A$'A. .BBB B=!B88B= C C)C$$C)c                    t        d      }t        d      }| j                  ||       t        d      }t        d      }| j                  ||       t        d      }t        d      }| j                  ||       t        d      }t        d      }| j                  ||       t        d      }t        d      }| j                  ||       t        d      }t        d      }| j                  ||       t        d      }t        d      }| j                  ||       t        d	      }t        d
      }| j                  ||       y )Nzlambda: Nonezlambda a: azlambda a=1: az	lambda: 0z	lambda: 1zlambda a: Nonezlambda b: Nonezlambda a=None: Nonezlambda a=0: Nonezlambda a=1: None)evalassertNotEqual)r   r   gs      r   test_compare_function_objectsz(OpcodeTest.test_compare_function_objects`   s)     Aq!Aq!!!Aq!Aq! !"Aq!!"!"Aq!!"&'Aq!#$#$Aq!r+   c                 V     G d dt               }| j                   |       dz  d       y )Nc                       e Zd Zd Zy)=OpcodeTest.test_modulo_of_string_subclasses.<locals>.MyStringc                      y)N*   r*   )r   values     r   __mod__zEOpcodeTest.test_modulo_of_string_subclasses.<locals>.MyString.__mod__   s    r+   N)r'   r(   r)   r_   r*   r+   r   MyStringr[      s    r+   r`      r]   )strr   )r   r`   s     r    test_modulo_of_string_subclassesz+OpcodeTest.test_modulo_of_string_subclasses   s&    	s 	 	a,r+   N)r'   r(   r)   r   r"   r0   r6   r=   rS   rX   rc   r*   r+   r   r   r      s-    ( 0B
)&V "D-r+   r   __main__)	unittesttestr   test.typinganndatar   TestCaser   r'   mainr*   r+   r   <module>rj      s?      )-"" -D zHMMO r+   