
    /hhWo                     p   S r SSKrSSKJrJrJr  / SQr/ rS rSr	Sr
0 r\" \	\" 5       \5        \ H  r\" \
\-  \" 5       \5        M     \" S\4\5      rCC	CC
 " S	 S
\R$                  5      rSSKJr  Sr " S S5      r " S S5      r " S S\R$                  5      r\S:X  a  \R6                  " 5         gg)z@Test the functionality of Python classes implementing operators.    N)cpython_onlyimport_helperscript_helper)$addraddsubrsubmulrmulmatmulrmatmultruedivrtruedivfloordiv	rfloordivmodrmoddivmodrdivmodpowrpowrshiftrrshiftlshiftrlshiftandrandorrorxorrxorcontainsgetitemsetitemdelitemnegposabsinitc                    ^  U 4S jnU$ )Nc                  V   > [         R                  TR                  U 45        T" U 0 UD6$ N)callLstappend__name__)argskwargsfs     8/opt/python-3.13.8/usr/lib/python3.13/test/test_class.pytracktrackCall.<locals>.trackC   s(    

D)*$!&!!     )r2   r4   s   ` r3   	trackCallr8   B   s    " Lr6   a  
@trackCall
def __hash__(self, *args):
    return hash(id(self))

@trackCall
def __str__(self, *args):
    return "AllTests"

@trackCall
def __repr__(self, *args):
    return "AllTests"

@trackCall
def __int__(self, *args):
    return 1

@trackCall
def __index__(self, *args):
    return 1

@trackCall
def __float__(self, *args):
    return 1.0

@trackCall
def __eq__(self, *args):
    return True

@trackCall
def __ne__(self, *args):
    return False

@trackCall
def __lt__(self, *args):
    return False

@trackCall
def __le__(self, *args):
    return True

@trackCall
def __gt__(self, *args):
    return False

@trackCall
def __ge__(self, *args):
    return True
z-@trackCall
def __%s__(self, *args):
    pass
AllTestsc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)
ClassTests   c                     / [         S S & g r,   )r-   selfs    r3   setUpClassTests.setUp   s    
r6   c                 T    [         S S  nX:w  a  U R                  SU< SU< 35        g g )NzExpected call list:
  z#
does not match actual call list
  )r-   fail)r?   expected_callsactualCallLists      r3   assertCallStackClassTests.assertCallStack   s,     +II%~7 8 ,r6   c                 B    [        5       nU R                  SU44/5        g )N__init__)r9   rF   )r?   foos     r3   testInitClassTests.testInit   s!    jzC6234r6   c                    [        5       n/ [        S S & US-     U R                  SUS44/5        / [        S S & SU-     U R                  SUS44/5        / [        S S & US-
    U R                  SUS44/5        / [        S S & SU-
    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  S	US44/5        / [        S S & US-    U R                  S
US44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & [        US5        U R                  SUS44/5        / [        S S & [        SU5        U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & US-	    U R                  SUS44/5        / [        S S & SU-	    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        / [        S S & US-    U R                  SUS44/5        / [        S S & SU-    U R                  SUS44/5        g )N   __add____radd____sub____rsub____mul____rmul__
__matmul____rmatmul____truediv____rtruediv____floordiv____rfloordiv____mod____rmod__
__divmod____rdivmod____pow____rpow__
__rshift____rrshift__
__lshift____rlshift____and____rand____or____ror____xor____rxor__)r9   r-   rF   r   r?   testmes     r3   testBinaryOpsClassTests.testBinaryOps   s    

y61+678
	F
zFA;789

y61+678
	F
zFA;789

y61+678
	F
zFA;789

|fa[9:;
	F
}vqk:;<

}vqk:;< 
	F
~{;<=
!~{;<= 
	V<=>

y61+678
	F
zFA;789 
va|fa[9:;
q&}vqk:;<
!y61+678
	VzFA;789
!|fa[9:;
	V}vqk:;<
!|fa[9:;
	V}vqk:;<

y61+678
	F
zFA;789

x&!567
	F
y61+678

y61+678
	F
zFA;789r6   c                    [        5       n " S S5      n SU" 5       ;     U R                  S5        / [        S S & SU;     U R	                  SUS44/5        / [        S S & US     U R	                  SUS44/5        / [        S S & SUS'   U R	                  SUSS44/5        / [        S S & US	 U R	                  SUS44/5        / [        S S & US S	   U R	                  SU[        S S	5      44/5        / [        S S & S
US S	& U R	                  SU[        S S	5      S
44/5        / [        S S & US S	2	 U R	                  SU[        S S	5      44/5        / [        S S & USSS2     U R	                  SU[        SSS5      44/5        / [        S S & SUSSS2'   U R	                  SU[        SSS5      S44/5        / [        S S & USSS2	 U R	                  SU[        SSS5      44/5        / [        S S & US S	2SS S2SS4     U R	                  SU[        S S	S 5      [        [        S SS 5      SS444/5        / [        S S & SUS S	2SS S2SS4'   U R	                  SU[        S S	S 5      [        [        S SS 5      SS4S44/5        / [        S S & US S	2SS S2SS4	 U R	                  SU[        S S	S 5      [        [        S SS 5      SS444/5        g ! [         a     GNf = f)Nc                       \ rS rSrSrg),ClassTests.testListAndDictOps.<locals>.Emptyi  r7   Nr/   
__module____qualname____firstlineno____static_attributes__r7   r6   r3   Emptyrq     s    Tr6   rw   rN   z$failed, should have raised TypeError__contains____getitem____setitem____delitem__*   z
The Answer   i   
   zA lot.   d   Strange)r9   rC   	TypeErrorr-   rF   sliceEllipsis)r?   rl   rw   s      r3   testListAndDictOpsClassTests.testListAndDictOps  s    		LII<= 
	V~{;<=
q	}vqk:;<
q	}vq!n=>?
1I}vqk:;<
s}vuT2.GHIJ
"s}vuT2/;/= > ? 	@ 
3B3K}vuT2.GHIJ
qby}vuQb7I.JKLM
#qby}vuQb7IDK/M N O 	P
1T"9}vuQb7I.JKLM
ssC"r3&'}vdB8M8@8=dB8M8:C8A /B C D 	E 
*3ssC"r3&'}vdB8M8@8=dB8M8:C8A CL/M N O 	P 
3B3TbT2s*+}vdB8M8@8=dB8M8:C8A /B C D 	Eu  		s   K 
KKc                 6   [        5       n/ [        S S & U*   U R                  SU44/5        / [        S S & U7  U R                  SU44/5        / [        S S & [        U5        U R                  SU44/5        / [        S S & [	        U5        U R                  SU44/5        / [        S S & [        U5        U R                  SU44/5        / [        S S & [        U5        U R                  SU44/5        / [        S S & [        U5        U R                  SU44/5        g )N__neg____pos____abs____int__	__float__	__index__)r9   r-   rF   r(   intfloatocthexrk   s     r3   testUnaryOpsClassTests.testUnaryOpsX  s   
	y6)456
	y6)456
Fy6)456
Fy6)456
f{VI678
F{VI678
F{VI678r6   c                 N   [        5       n/ [        S S & [        U5        U R                  SU44/5        / [        S S & [	        U5        U R                  SU44/5        / [        S S & [        U5        U R                  SU44/5        / [        S S & US:H    U R                  SUS44/5        / [        S S & US:    U R                  SUS44/5        / [        S S & US:    U R                  SUS44/5        / [        S S & US:g    U R                  SUS44/5        / [        S S & SU:H    U R                  SSU44/5        / [        S S & SU:    U R                  SSU44/5        / [        S S & SU:    U R                  SSU44/5        / [        S S & SU:g    U R                  SSU44/5        g )	N__hash____repr____str__rN   __eq____lt____gt____ne__)r9   r-   hashrF   reprstrrk   s     r3   testMiscClassTests.testMiscr  s   
VzF9567
VzF9567
Fy6)456
!x&!567

x&!567

x&!567
!x&!567
	Vx!V567
	F
x!V567
	F
x!V567
	Vx!V567r6   c                     " S S[         5      nU" 5       n/ [        S S & UR                    U R                  SUS44/5        / [        S S & SUl        U R                  SUSS44/5        / [        S S & U?U R                  SUS	44/5        g )
Nc                   D    \ rS rSr\S 5       r\S 5       r\S 5       rSrg)/ClassTests.testGetSetAndDel.<locals>.ExtraTestsi  c                     g)NSomeValr7   r?   r0   s     r3   __getattr__;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__getattr__  s     r6   c                     g r,   r7   r   s     r3   __setattr__;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__setattr__      r6   c                     g r,   r7   r   s     r3   __delattr__;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__delattr__  r   r6   r7   N)	r/   rs   rt   ru   r8   r   r   r   rv   r7   r6   r3   
ExtraTestsr     s<    ! !    r6   r   r   spamzspam, spam, spam and hamr   eggsr   cardinal)r9   r-   r   rF   r   r   )r?   r   rl   s      r3   testGetSetAndDelClassTests.testGetSetAndDel  s    	 	 
}vv.>?@A
0}vv/I/K L M 	N 
O}vz.BCDEr6   c                 $   SS K nSSKJn  UR                  " S5      n " S S5      nU" 5       nU R	                  UR                  US5      S5        U R	                  UR                  US5      S5        U R                  UR                  5       5        g )	Nr   )r   _testlimitedcapic                       \ rS rSrS rSrg)'ClassTests.testHasAttrString.<locals>.Ai  c                     SU l         g NrN   attrr>   s    r3   rI   0ClassTests.testHasAttrString.<locals>.A.__init__  s	    	r6   r   Nr/   rs   rt   ru   rI   rv   r7   r6   r3   Ar     s    r6   r   s   attrrN   s   noattr)systest.supportr   import_moduleassertEqualobject_hasattrstringassertIsNone	exception)r?   r   r   r   r   as         r3   testHasAttrStringClassTests.testHasAttrString  s}    .(667IJ	 	 C)>>q'JAN)>>q)LaP#--/*r6   c                    ^ / m " U4S jS5      nU" 5       nASS K nUR                  5         U R                  S/T5        g )Nc                   "   > \ rS rSrU 4S jrSrg)#ClassTests.testDel.<locals>.DelTesti  c                 (   > TR                  S5        g )Ncrab people, crab people)r.   r?   xs    r3   __del__+ClassTests.testDel.<locals>.DelTest.__del__  s    34r6   r7   Nr/   rs   rt   ru   r   rv   r   s   r3   DelTestr     s    5 5r6   r   r   r   )gccollectr   )r?   r   rl   r   r   s       @r3   testDelClassTests.testDel  s>    	5 	5 


45q9r6   c           
           " S S5      nS n[         [        [        [        [        [
        [        [        [        U4
 H  nU R                  [        X1" 5       5        M      g )Nc                   6    \ rS rSrS r\r\r\r\r\r	\r
\rSrg)4ClassTests.testBadTypeReturned.<locals>.BadTypeClassi  c                     g r,   r7   r>   s    r3   r   <ClassTests.testBadTypeReturned.<locals>.BadTypeClass.__int__      r6   r7   N)r/   rs   rt   ru   r   r   __complex__r   r   	__bytes____bool__r   rv   r7   r6   r3   BadTypeClassr     s*    I!KGHIHIr6   r   c                     / U    $ r,   r7   r   s    r3   index-ClassTests.testBadTypeReturned.<locals>.index  s    a5Lr6   )r   complexr   r   bytesbinr   r   boolassertRaisesr   )r?   r   r   r2   s       r3   testBadTypeReturnedClassTests.testBadTypeReturned  sG    		  		 	 #tUCc4OAiLN; Pr6   c                      " S S5      n[        U" 5       5         " S S5      nU R                  [        [         U" 5       5        g )Nc                       \ rS rSrSrg)$ClassTests.testHashStuff.<locals>.C0i  r7   Nrr   r7   r6   r3   C0r         r6   r   c                       \ rS rSrS rSrg)$ClassTests.testHashStuff.<locals>.C2i  c                     gr   r7   r?   others     r3   r   +ClassTests.testHashStuff.<locals>.C2.__eq__  s    Ar6   r7   N)r/   rs   rt   ru   r   rv   r7   r6   r3   C2r     s    -r6   r   )r   r   r   )r?   r   r   s      r3   testHashStuffClassTests.testHashStuff  s7    	 	 	RT
	. 	. 	)T240r6   c                 n   [        5       n " S S5      nU" 5       nSnU H  nU R                  U5         U R                  [        [	        [         US 5      5      5        U R                  [        [	        XS 5      5      5        U R                  [        [	        X%S 5      5      5        U R                  [        [	        X5S 5      5      5        S S S 5        M     / SQnSnUR                  [        SR                  U5      5        UR                  [        SR                  U5      5        UR                  [        SR                  U5      5        U H  nU R                  U5         U R                  [        [         U5      5        U R                  [        X5      5        U R                  [        X%5      5        U R                  [        X55      5        S S S 5        M     U R                  [        US	5      5        U R                  [        US	5      5        g ! , (       d  f       GM  = f! , (       d  f       M  = f)
Nc                       \ rS rSrSrg).ClassTests.testPredefinedAttrs.<locals>.Customi  r7   Nrr   r7   r6   r3   Customr     r   r6   r   )	__class__r   __dir__r   
__format____ge____getattribute____getstate__r   r   rI   __init_subclass____le__r   r   __new__
__reduce____reduce_ex__r   r   
__sizeof__r   __subclasshook__)'r   
__aenter__	__aexit__	__aiter__	__anext__	__await__r   r   __ceil__r   rx   r   
__delete__r{   r]   	__enter____exit__r   	__floor____get__r   ry   r   r   
__invert____iter____len____length_hint____missing__r   __next____objclass__r   r^   __reversed__	__round____set__rz   	__trunc__)r   r   r   r   r   r   r
   r   r   r   r   r    z__{}__z__r{}__z__i{}____call__)
objectsubTest
assertTruecallablegetattrextendmapformatassertFalsehasattr)r?   or   cmethodsnamenot_definedaugments           r3   testPredefinedAttrsClassTests.testPredefinedAttrs  s   H	 	 H
 Dd#t)D EF$)? @At)D EF$)? @A	 $# 


 	3x893y//9:3y//9:Dd#  !67  !12  !67  !12	 $#   	J/0J/0C $#2 $#s   BH!A.H%
H"	%
H4	c                      " S S5      nU" 5       Ul         U" 5       n U" 5         U R                  S5        g ! [         a     g f = f)Nc                       \ rS rSrSrg)%ClassTests.testSFBug532646.<locals>.Ai0  r7   Nrr   r7   r6   r3   r   r9  0  r   r6   r   zFailed to raise RecursionError)r$  rC   RecursionError)r?   r   r   s      r3   testSFBug532646ClassTests.testSFBug532646-  sI    	 	S
C	8C II67  		s   8 
AAc                 b  ^ S m " U4S jS5      n U" 5       R                      " U4S jS5      nU" 5       U" 5       :H     " U4S jS	5      n U" 5         U R                  S
5        g ! [         a-  n[        U5      S:w  a  U R                  SU-  5         S nANuS nAff = f! [         a     g f = f)Nc                     [        S5      e)Nbooh)AttributeErrorr>   s    r3   r?  BClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.booh?  s     ((r6   c                   (   > \ rS rSr\"  Y 5      rSrg)?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.AiB  r7   N)r/   rs   rt   ru   propertyr   rv   r?  s   r3   r   rC  B  s    Ar6   r   r?  z(attribute error for A().a got masked: %sc                   (   > \ rS rSr\"  Y 5      rSrg)?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.EiJ  r7   N)r/   rs   rt   ru   rD  r   rv   rE  s   r3   ErG  J  s    d^Fr6   rH  c                   (   > \ rS rSr\"  Y 5      rSrg)?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.IiN  r7   N)r/   rs   rt   ru   rD  rI   rv   rE  s   r3   IrJ  N  s    ~Hr6   rK  z)attribute error for I.__init__ got masked)r   r@  r   rC   )r?   r   r   rH  rK  r?  s        @r3   )testForExceptionsRaisedInInstanceGetattr24ClassTests.testForExceptionsRaisedInInstanceGetattr2<  s    	)	 		JCEE
	$ 	$	qs
	& 	&	C C IIAB#  	J1v		DqHI	J  		s)   A' B! '
B1#BB!
B.-B.c                    U R                  [        5         X:    S S S 5        U R                  [        5         X:    S S S 5        U R                  [        5         X:*    S S S 5        U R                  [        5         X:    S S S 5        g ! , (       d  f       Nu= f! , (       d  f       Nd= f! , (       d  f       NS= f! , (       d  f       g = fr,   )r   r   )r?   r   bs      r3   assertNotOrderableClassTests.assertNotOrderableY  s    y)E *y)E *y)F *y)F *) *)))))))s.   B
BB,<B=

B
B),
B:=
Cc                     " S S5      n " S SU5      nU" S5      nU" S5      nU R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R	                  UR                  UR                  5        U R                  [        UR                  5      [        UR                  5      5        U R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R                  UR                  UR                  :H  5        U R                  UR                  UR                  :g  5        U R	                  UR                  UR                  5        U R                  [        UR                  5      [        UR                  5      5        U" [        UR                  5      S-  5      n[        UR                  5        g )Nc                   2    \ rS rSrS rS rS rS rS rSr	g)	1ClassTests.testHashComparisonOfMethods.<locals>.Aie  c                     Xl         g r,   r   r   s     r3   rI   :ClassTests.testHashComparisonOfMethods.<locals>.A.__init__f  s    r6   c                     g r,   r7   r>   s    r3   r2   3ClassTests.testHashComparisonOfMethods.<locals>.A.fh      r6   c                     g r,   r7   r>   s    r3   g3ClassTests.testHashComparisonOfMethods.<locals>.A.gj  rY  r6   c                     g)NTr7   r   s     r3   r   8ClassTests.testHashComparisonOfMethods.<locals>.A.__eq__l  r   r6   c                     [         er,   )r   r>   s    r3   r   :ClassTests.testHashComparisonOfMethods.<locals>.A.__hash__n  s    r6   r   N)
r/   rs   rt   ru   rI   r2   r[  r   r   rv   r7   r6   r3   r   rT  e  s     r6   r   c                       \ rS rSrSrg)1ClassTests.testHashComparisonOfMethods.<locals>.Bip  r7   Nrr   r7   r6   r3   Brb  p  r   r6   rc  rN   )r'  r2   r-  r[  rP  r   r   )r?   r   rc  a1a2r   s         r3   testHashComparisonOfMethods&ClassTests.testHashComparisonOfMethodsc  s   
	  
	 	 	 qTqT%&&%&%bdd+bddT"$$Z0%rtt$$qss
#qss
#$QSS)accDI. d133inQSS	r6   c                     " S S5      nS n[        SS5      nU R                  US5        [        R                  XU5        U R	                  U" 5       S-   S5        [        SS5      nU R                  US5        U R                  XC5        [        R                  X5        U R                  [        5         U" 5       S-     S S S 5        g ! , (       d  f       g = f)	Nc                       \ rS rSrSrg)2ClassTests.testSetattrWrapperNameIntern.<locals>.Ai  r7   Nrr   r7   r6   r3   r   rk    r   r6   r   c                     g)Nsummar7   r   s     r3   r   4ClassTests.testSetattrWrapperNameIntern.<locals>.add  s    r6   s   __add__asciirO   rN   rm  )r   assertIsNottyper   r   r   r   r   )r?   r   r   r2  name2s        r3   testSetattrWrapperNameIntern'ClassTests.testSetattrWrapperNameIntern  s    	 		 :w'y)#&q'*J(	*%"y)C!G *))s   5C		
Cc                      " S S5      nU R                  [        5         [        R                  USS 5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg).ClassTests.testSetattrNonStringName.<locals>.Ai  r7   Nrr   r7   r6   r3   r   rw    r   r6   r      x)r   r   rq  r   )r?   r   s     r3   testSetattrNonStringName#ClassTests.testSetattrNonStringName  s:    	 	 y)Qd+ *))s   A
Ac                      " S S5      nSnU R                  [        U5         UR                    S S S 5        U R                  [        U5         U?S S S 5        g ! , (       d  f       N0= f! , (       d  f       g = f)Nc                       \ rS rSrSrg):ClassTests.testTypeAttributeAccessErrorMessages.<locals>.Ai  r7   Nrr   r7   r6   r3   r   r}    r   r6   r   z$type object 'A' has no attribute 'x')assertRaisesRegexr@  r   )r?   r   	error_msgs      r3   $testTypeAttributeAccessErrorMessages/ClassTests.testTypeAttributeAccessErrorMessages  s\    	 	 ;	##NI>CC ?##NI> ?> ?>>>s   AA+
A(+
A9c                     " S S5      n " S S5      n " S S5      nSnU R                  [        U5         U" 5       R                    S S S 5        U R                  [        U5         U" 5       ?S S S 5        SnU R                  [        U5         U" 5       R                    S S S 5        U R                  [        U5         U" 5       ?S S S 5        U R                  [        S	5         S
U" 5       l        S S S 5        U R                  [        S5         S
U" 5       l        S S S 5        SnU R                  [        U5         U" 5       ?S S S 5        U R                  [        U5         S
U" 5       l        S S S 5        SnU R                  [        U5         U" 5       R                    S S S 5        U R                  [        U5         U" 5       ?S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN{= f! , (       d  f       GN[= f! , (       d  f       GNG= f! , (       d  f       GN.= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)<ClassTests.testObjectAttributeAccessErrorMessages.<locals>.Ai  r7   Nrr   r7   r6   r3   r   r    r   r6   r   c                       \ rS rSrSrSrSrg)<ClassTests.testObjectAttributeAccessErrorMessages.<locals>.Bi  r   )zr7   N)r/   rs   rt   ru   y	__slots__rv   r7   r6   r3   rc  r    s    AIr6   rc  c                   0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )<ClassTests.testObjectAttributeAccessErrorMessages.<locals>.Ci  )r  c                 R   > US:X  a  [         TU ]  SS5        g [         TU ]  X5        g )Nr  r  rN   )superr   )r?   r2  valuer  s      r3   r   HClassTests.testObjectAttributeAccessErrorMessages.<locals>.C.__setattr__  s&    3;G'Q/G'4r6   r7   )returnN)r/   rs   rt   ru   r  r   rv   __classcell__r  s   @r3   Cr    s    I5 5r6   r  z'A' object has no attribute 'x'z'B' object has no attribute 'x'zJ'B' object has no attribute 'x' and no __dict__ for setting new attributesr   z'C' object has no attribute 'x'z%'B' object attribute 'y' is read-onlyr  )r~  r@  r   r  r  )r?   r   rc  r  r  s        r3   &testObjectAttributeAccessErrorMessages1ClassTests.testObjectAttributeAccessErrorMessages  s   	 		 		5 	5 6	##NI>CEE ?##NI> ? 6	##NI>CEE ?##NI> ?##X
 ACE	

 ##-
 ACE	
 <	##NI> ?##NI>ACE ? 	##NI>CEE ?##NI> ?>= ?>>> ?>>>
 


 
 ?>>> ?>>>sw   G'G#G5?H%HH+=H=#II I0
G #
G25
H
H
H(+
H:=
I
I
I-0
I>c                     " S S5      nSnU R                  [        S5         U" S5        S S S 5        U R                  [        S5         UR                  US5        S S S 5        U R                  [        U5         U" 5       R                  S5        S S S 5        U R                  [        S5         [        R                  US5        S S S 5        U R                  [        U5         [        R                  U" 5       S5        S S S 5         " S S5      nSnU R                  [        U5         U" S5        S S S 5        U R                  [        U5         UR                  US5        S S S 5        U R                  [        U5         [        R                  US5        S S S 5         " S	 S
5      nSnU R                  [        U5         U" 5       R                  S5        S S S 5        U R                  [        U5         [        R                  U" 5       S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNl= f! , (       d  f       GNK= f! , (       d  f       GN,= f! , (       d  f       GN	= f! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)2ClassTests.testConstructorErrorMessages.<locals>.Ci  r7   Nrr   r7   r6   r3   r  r    r   r6   r  zHC.__init__\(\) takes exactly one argument \(the instance to initialize\)zC\(\) takes no argumentsr|   c                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )2ClassTests.testConstructorErrorMessages.<locals>.Di  c                 .   > [         TU ]  " U /UQ70 UD6  g r,   )r  r	  )clsr0   r1   r  s      r3   r	  :ClassTests.testConstructorErrorMessages.<locals>.D.__new__  s    5d5f5r6   c                 &   > [         TU ]  " U0 UD6  g r,   r  rI   r?   r0   r1   r  s      r3   rI   ;ClassTests.testConstructorErrorMessages.<locals>.D.__init__       $1&1r6   r7   )r/   rs   rt   ru   r	  rI   rv   r  r  s   @r3   Dr    s    62 2r6   r  zIobject.__new__\(\) takes exactly one argument \(the type to instantiate\)c                   (   ^  \ rS rSrU 4S jrSrU =r$ )2ClassTests.testConstructorErrorMessages.<locals>.Ei  c                 &   > [         TU ]  " U0 UD6  g r,   r  r  s      r3   rI   ;ClassTests.testConstructorErrorMessages.<locals>.E.__init__  r  r6   r7   )r/   rs   rt   ru   rI   rv   r  r  s   @r3   rH  r    s    2 2r6   rH  zMobject.__init__\(\) takes exactly one argument \(the instance to initialize\))r~  r   r	  rI   r%  )r?   r  r  r  rH  s        r3   testConstructorErrorMessages'ClassTests.testConstructorErrorMessages  s   	 	 `	##I/JKbE L ##I/JKIIa L ##Iy9CLL : ##I/JKNN1b! L ##Iy9OOAC$ :	2 	2 b	##Iy9bE : ##Iy9IIa : ##Iy9NN1b! :	2 	2 e	##Iy9CLL : ##Iy9OOAC$ :9W LK LK :9 LK :9 :9 :9 :9 :9 :9sw   	H
H0;I0I%I&+	I8J
JJ.9J?
H-0
H?
I
I#&
I58
J

J
J+.
J<?
Kc                 Z    " S S[         5      nSU0n " S S40 UD6nU R                  US0 45         " S S/SQ70 UD6nU R                  U[        [        S	5      5      0 45         " S
 SS/[        SS	5      Q70 UDSS0D6nU R                  U[        [        S	5      5      SS045        g )Nc                        \ rS rSrS rS rSrg)-ClassTests.testClassWithExtCall.<locals>.Metai  c                      g r,   r7   )r0   r1   s     r3   rI   6ClassTests.testClassWithExtCall.<locals>.Meta.__init__  rY  r6   c                     X$4$ r,   r7   )r  r2  basesattrsr1   s        r3   r	  5ClassTests.testClassWithExtCall.<locals>.Meta.__new__  s
    }$r6   r7   N)r/   rs   rt   ru   rI   r	  rv   r7   r6   r3   Metar    s    %r6   r  	metaclassc                       \ rS rSrSrg)*ClassTests.testClassWithExtCall.<locals>.Ai"  r7   Nrr   r7   r6   r3   r   r  "  s    dr6   r   r7   c                       \ rS rSrSrg)r  i$  r7   Nrr   r7   r6   r3   r   r  $  s    dr6   )r   rN   r}                     c                       \ rS rSrSrg)r  i&  r7   Nrr   r7   r6   r3   r   r  &  s    $r6   r   rN   rJ   bar)r   r   tuplerange)r?   r  dr   s       r3   testClassWithExtCallClassTests.testClassWithExtCall  s    	%3 	% $!RH%22!2U58_b1266E!QK616%6U58_uen=>r6   c                   ^  " U4S jS5      mU R                  [        5         T" 5         S S S 5        U4S jnU R                  [        5         U" 5         S S S 5        g ! , (       d  f       N:= f! , (       d  f       g = f)Nc                   "   > \ rS rSrU 4S jrSrg)1ClassTests.testClassCallRecursionLimit.<locals>.Ci*  c                    > T" 5       U l         g r,   r0  )r?   r  s    r3   rI   :ClassTests.testClassCallRecursionLimit.<locals>.C.__init__+  s    r6   r  Nr   r  s   r3   r  r  *  s     r6   r  c                     > T " 5         g r,   r7   r  s   r3   add_one_level=ClassTests.testClassCallRecursionLimit.<locals>.add_one_level1  s    Cr6   )r   r:  )r?   r  r  s     @r3   testClassCallRecursionLimit&ClassTests.testClassCallRecursionLimit)  s[    	 	 ~.C /	 ~.O /. /. /.s   A A1 
A.1
A?c                    ^ Sm " U4S jS[         5      n " S SUS9n[        S5       H  nU" U5        M     U R                  TS5        g )Nr   c                   "   > \ rS rSrU 4S jrSrg)?ClassTests.testMetaclassCallOptimization.<locals>.TypeMetaclassi;  c                 B   > TS-  m[         R                  " U /UQ70 UD6$ r   )rq  r$  )r  r0   r1   callss      r3   r$  HClassTests.testMetaclassCallOptimization.<locals>.TypeMetaclass.__call__<  s%    
}}S:4:6::r6   r7   N)r/   rs   rt   ru   r$  rv   )r  s   r3   TypeMetaclassr  ;  s    ; ;r6   r  c                       \ rS rSrS rSrg)6ClassTests.testMetaclassCallOptimization.<locals>.TypeiA  c                     Xl         g r,   _obj)r?   objs     r3   rI   ?ClassTests.testMetaclassCallOptimization.<locals>.Type.__init__B  s    	r6   r  Nr   r7   r6   r3   Typer  A  s     r6   r  )r  r   )rq  r  r   )r?   r  r  ir  s       @r3   testMetaclassCallOptimization(ClassTests.testMetaclassCallOptimization8  sG    	;D 	;	 ] 	  sAG $r6   r7   N)r/   rs   rt   ru   r@   rF   rK   rm   r   r   r   r   r   r   r   r   r5  r;  rL  rP  rg  rs  ry  r  r  r  r  r  r  rv   r7   r6   r3   r;   r;      s    85u:nGER94-8`F<+
:<$111f8C:&P(,/b5%n?"%r6   r;   )has_inline_valuesr  c                       \ rS rSrSrg)PlainiN  r7   Nrr   r7   r6   r3   r  r  N  s    r6   r  c                       \ rS rSrS rSrg)	WithAttrsiR  c                 <    SU l         SU l        SU l        SU l        g )NrN   r}   r  r  r   rO  r0  r  r>   s    r3   rI   WithAttrs.__init__T  s    r6   r  Nr   r7   r6   r3   r  r  R  s    r6   r  c                   |    \ rS rSrS rS rS rS rS r\	S 5       r
S rS	 rS
 rS rS rS rS r\S 5       rSrg)TestInlineValuesi[  c                     U R                  [        R                  [        -  [        5        U R                  [        R                  [        -  [        5        g r,   )r   r  	__flags__Py_TPFLAGS_MANAGED_DICTr  r>   s    r3   
test_flagsTestInlineValues.test_flags]  s:    +BBD[\,,/FFH_`r6   c                     [        5       nU R                  [        U5      5        U?U R	                  [        U5      5        g r,   )r  r'  r  __dict__r-  )r?   r0  s     r3   test_has_inline_values'TestInlineValues.test_has_inline_valuesa  s4    G)!,-J*1-.r6   c                     U R                  [        [        5       5      5        U R                  [        [        5       5      5        g r,   )r'  r  r  r  r>   s    r3   test_instancesTestInlineValues.test_instancesg  s*    )%'23))+67r6   c                     [         [        4 H0  nU" 5       nUR                    U R                  [	        U5      5        M2     g r,   )r  r  r  r'  r  )r?   r  r0  s      r3   test_inspect_dict"TestInlineValues.test_inspect_dictk  s1    9%CAJJOO-a01 &r6   c                     SSS.n[         [        4 H?  nU" 5       nUR                  R                  U5        U R	                  [        U5      5        MA     g )Nr  r  )er2   )r  r  r  updater'  r  )r?   r  r  r0  s       r3   test_update_dict!TestInlineValues.test_update_dictq  sF    19%CAJJa OO-a01 &r6   c                 H    [        S5       H  n[        U SU 3U5        M     g Nr   r   )r  setattr)r  r  s     r3   set_100TestInlineValues.set_100x  s"    sAC1QC!$ r6   c                 f    [        S5       H"  nU R                  [        USU 35      U5        M$     g r  )r  r   r)  )r?   r  r  s      r3   	check_100TestInlineValues.check_100}  s-    sAWSAaS'2A6 r6   c                     " S S5      nU" 5       nU R                  [        U5      5        U R                  U5        U R                  [        U5      5        U R	                  U5        U" 5       nU R                  [        U5      5        g )Nc                       \ rS rSrSrg)0TestInlineValues.test_many_attributes.<locals>.Ci  r7   Nrr   r7   r6   r3   r  r        r6   r  )r'  r  r  r-  r  )r?   r  r0  s      r3   test_many_attributes%TestInlineValues.test_many_attributes  sd    C)!,-Q*1-.qC)!,-r6   c                      " S S5      nU" 5       nUR                   nU R                  [        U5      5        U R                  U5        U R	                  [        U5      5        U R                  U5        g )Nc                       \ rS rSrSrg):TestInlineValues.test_many_attributes_with_dict.<locals>.Ci  r7   Nrr   r7   r6   r3   r  r    r  r6   r  )r  r'  r  r  r-  r  )r?   r  r0  r  s       r3   test_many_attributes_with_dict/TestInlineValues.test_many_attributes_with_dict  sT    CJJ)!,-Q*1-.qr6   c                      " S S5      nU" 5       nU R                  UR                  0 5        SUl        U R                  UR                  SS05        g)zAborted on 3.13a6c                       \ rS rSrS rSrg)+TestInlineValues.test_bug_117750.<locals>.Ci  c                 8    U R                   R                  5         g r,   )r  clearr>   s    r3   rI   4TestInlineValues.test_bug_117750.<locals>.C.__init__  s    ##%r6   r7   Nr   r7   r6   r3   r  r    s    &r6   r  NrJ   )r   r  rJ   )r?   r  r  s      r3   test_bug_117750 TestInlineValues.test_bug_117750  sH    	& 	& cr*d|4r6   c                 p     " S S5      nU" 5       nU? SUl        U R                  UR                  S5        g )Nc                       \ rS rSrSrg):TestInlineValues.test_store_attr_deleted_dict.<locals>.Fooi  r7   Nrr   r7   r6   r3   Foor    r   r6   r  r  )r  r   r   )r?   r  r2   s      r3   test_store_attr_deleted_dict-TestInlineValues.test_store_attr_deleted_dict  s5    	 	 EJa r6   c                      " S S5      nU" 5       nSUR                   S'   U?  " S S[        5      nU R                  [        X#" S5      5      5         " S S5      nXBl        U R                  X$5        U R                  UR                   0 5        g )	Nc                       \ rS rSrSrg)<TestInlineValues.test_rematerialize_object_dict.<locals>.Fooi  r7   Nrr   r7   r6   r3   r  r$        4r6   r  rN   r   c                       \ rS rSrSrg)DTestInlineValues.test_rematerialize_object_dict.<locals>.StrSubclassi  r7   Nrr   r7   r6   r3   StrSubclassr'    s    r6   r(  c                       \ rS rSrSrg)<TestInlineValues.test_rematerialize_object_dict.<locals>.Bari  r7   Nrr   r7   r6   r3   Barr*    r%  r6   r+  )r  r   r-  r.  r  assertIsInstancer   )r?   r  r2   r(  r+  s        r3   test_rematerialize_object_dict/TestInlineValues.test_rematerialize_object_dict  su     	E

6J 	%#$K$789 	a%R(r6   c                    ^ ^^  " UU 4S jS5      m " U4S jS5      mTR                     TR                     T" 5       Tl         T" 5       Tl         g)zZVerifies that the type cache doesn't provide a value which  is
inconsistent from the dict.c                   $   > \ rS rSrU U4S jrSrg)6TestInlineValues.test_store_attr_type_cache.<locals>.Xi  c                 \   > TR                   nTR                  UTR                  S   5        g )Nr   )r   r   r  )
inner_selfvr  r?   s     r3   r   >TestInlineValues.test_store_attr_type_cache.<locals>.X.__del__  s$    CC  AJJsO4r6   r7   Nr   )r  r?   s   r3   Xr1    s    5 5r6   r6  c                   &   > \ rS rSr Y " 5       rSrg)6TestInlineValues.test_store_attr_type_cache.<locals>.Ci  r7   N)r/   rs   rt   ru   r   rv   )r6  s   r3   r  r8    s
    Ar6   r  N)r   )r?   r  r6  s   `@@r3   test_store_attr_type_cache+TestInlineValues.test_store_attr_type_cache  s;    	5 	5
	 	 	
	 ccr6   c                    [         R                  " S5        Sn[        R                  " SU5      u  p#nU R	                  US5        U R                  X3R                  S5      S9  U R                  XDR                  S5      S9  g )N	_testcapiaT  if 1:
            import test.support
            import _testcapi

            class A:
                def __init__(self):
                    self.a = 1
                    self.b = 2
            a = A()
            d = a.__dict__
            with test.support.catch_unraisable_exception() as ex:
                _testcapi.set_nomemory(0, 1)
                del a
                assert ex.unraisable.exc_type is MemoryError
            try:
                d["a"]
            except KeyError:
                pass
            else:
                assert False, "KeyError not raised"
        z-cr   zutf-8)msg)r   r   r   assert_python_okr   r-  decode)r?   codercouterrs        r3   'test_detach_materialized_dict_no_memory8TestInlineValues.test_detach_materialized_dict_no_memory  su     	##K0* %55dDAQ**W"56**W"56r6   r7   N)r/   rs   rt   ru   r  r  r  r  r  staticmethodr  r  r  r  r  r   r-  r9  r   rD  rv   r7   r6   r3   r  r  [  sg    a/822 % %7.	5!)$& 7 7r6   r  __main__)__doc__unittestr   r   r   r   	testmethsr-   r8   statictestsmethod_templater  execglobalsmethodrq  r%  r9   TestCaser;   _testinternalcapir  r  r  r  r  r/   mainr7   r6   r3   <module>rS     s    B  C C-	v 0h  [')Q F6	!79a0 
VIq){FO~
%"" ~
%B 0! 	 	 O7x(( O7b zMMO r6   