
    6bhX                         d Z ddlZg dZg Zd ZdZdZi Z ee e	       e       eD ]  Z
 eee
z   e	       e         edefe      Z[[[
[ G d d	ej                        Zed
k(  r ej"                          yy)z@Test the functionality of Python classes implementing operators.    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containsgetitemsetitemdelitemnegposabsinitc                       fd}|S )Nc                  V    t         j                  j                  | f        | i |S N)callLstappend__name__)argskwargsfs     9/opt/python-3.12.12/usr/lib/python3.12/test/test_class.pytrackztrackCall.<locals>.trackC   s(    

D)*$!&!!     )r/   r1   s   ` r0   	trackCallr4   B   s    " Lr2   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                       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d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)
ClassTestsc                     g t         d d  y r)   )r*   selfs    r0   setUpzClassTests.setUp   s    
r2   c                 P    t         d d  }||k7  r| j                  d|d|       y y )NzExpected call list:
  z#
does not match actual call list
  )r*   fail)r:   expected_callsactualCallLists      r0   assertCallStackzClassTests.assertCallStack   s.     ^+II%~7 8 ,r2   c                 B    t               }| j                  d|ffg       y )N__init__)r5   r@   )r:   foos     r0   testInitzClassTests.testInit   s!    jzC6234r2   c                    t               }g t        d d  |dz    | j                  d|dffg       g t        d d  d|z    | j                  d|dffg       g t        d d  |dz
   | j                  d|dffg       g t        d d  d|z
   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d	|dffg       g t        d d  |dz   | j                  d
|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  t        |d       | j                  d|dffg       g t        d d  t        d|       | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  |dz	   | j                  d|dffg       g t        d d  d|z	   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       g t        d d  |dz   | j                  d|dffg       g t        d d  d|z   | j                  d|dffg       y )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__)r5   r*   r@   r   r:   testmes     r0   testBinaryOpsz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9r2   c                    t               } G d d      }	 d |       v  | j                  d       g t        d d  d|v  | j	                  d|dffg       g t        d d  |d    | j	                  d|dffg       g t        d d  d|d<   | j	                  d|ddffg       g t        d d  |d= | j	                  d|dffg       g t        d d  |d d	  | j	                  d|t        d d	      ffg       g t        d d  d
|d d	 | j	                  d|t        d d	      d
ffg       g t        d d  |d d	= | j	                  d|t        d d	      ffg       g t        d d  |ddd    | j	                  d|t        ddd      ffg       g t        d d  d|ddd<   | j	                  d|t        ddd      dffg       g t        d d  |ddd= | j	                  d|t        ddd      ffg       g t        d d  |d d	dd dddf    | j	                  d|t        d d	d       t        t        d dd       ddfffg       g t        d d  d|d d	dd dddf<   | j	                  d|t        d d	d       t        t        d dd       ddfdffg       g t        d d  |d d	dd dddf= | j	                  d|t        d d	d       t        t        d dd       ddfffg       y # t        $ r Y w xY w)Nc                       e Zd Zy),ClassTests.testListAndDictOps.<locals>.EmptyNr,   
__module____qualname__r3   r2   r0   Emptyrh         r2   rl   rF   z$failed, should have raised TypeError__contains____getitem____setitem____delitem__*   z
The Answer   i   
   zA lot.   d   Strange)r5   r=   	TypeErrorr*   r@   sliceEllipsis)r:   rd   rl   s      r0   testListAndDictOpsz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   t               }g t        d d  |  | j                  d|ffg       g t        d d  | | j                  d|ffg       g t        d d  t        |       | j                  d|ffg       g t        d d  t	        |       | j                  d|ffg       g t        d d  t        |       | j                  d|ffg       g t        d d  t        |       | j                  d|ffg       g t        d d  t        |       | j                  d|ffg       y )N__neg____pos____abs____int__	__float__	__index__)r5   r*   r@   r%   intfloatocthexrc   s     r0   testUnaryOpsz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8r2   c                 N   t               }g t        d d  t        |       | j                  d|ffg       g t        d d  t	        |       | j                  d|ffg       g t        d d  t        |       | j                  d|ffg       g t        d d  |dk(   | j                  d|dffg       g t        d d  |dk   | j                  d|dffg       g t        d d  |dkD   | j                  d|dffg       g t        d d  |dk7   | j                  d|dffg       g t        d d  d|k(   | j                  dd|ffg       g t        d d  d|k   | j                  dd|ffg       g t        d d  d|kD   | j                  dd|ffg       g t        d d  d|k7   | j                  dd|ffg       y )	N__hash____repr____str__rF   __eq____lt____gt____ne__)r5   r*   hashr@   reprstrrc   s     r0   testMiscz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7r2   c                     G d dt               } |       }g t        d d  |j                   | j                  d|dffg       g t        d d  d|_        | j                  d|ddffg       g t        d d  |`| j                  d|d	ffg       y )
Nc                   <    e Zd Zed        Zed        Zed        Zy)/ClassTests.testGetSetAndDel.<locals>.ExtraTestsc                      y)NSomeValr3   r:   r-   s     r0   __getattr__z;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__getattr__  s     r2   c                      y r)   r3   r   s     r0   __setattr__z;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__setattr__      r2   c                      y r)   r3   r   s     r0   __delattr__z;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__delattr__  r   r2   N)r,   rj   rk   r4   r   r   r   r3   r2   r0   
ExtraTestsr     s<    ! !    r2   r   r   spamzspam, spam, spam and hamr   eggsr   cardinal)r5   r*   r   r@   r   r   )r:   r   rd   s      r0   testGetSetAndDelzClassTests.testGetSetAndDel  s    	 	 
}vv.>?@A
0}vv/I/K L M 	N 
O}vz.BCDEr2   c                 "   dd l }ddlm} |j                  d      } G d d      } |       }| j	                  |j                  |d      d       | j	                  |j                  |d      d       | j                  |j                                y )	Nr   )import_helper	_testcapic                       e Zd Zd Zy)'ClassTests.testHasAttrString.<locals>.Ac                     d| _         y NrF   )attrr9   s    r0   rB   z0ClassTests.testHasAttrString.<locals>.A.__init__  s	    	r2   N)r,   rj   rk   rB   r3   r2   r0   Ar     s    r2   r   s   attrrF   s   noattr)systest.supportr   import_moduleassertEqualobject_hasattrstringassertIsNone	exception)r:   r   r   r   r   as         r0   testHasAttrStringzClassTests.testHasAttrString  sy    .!//<		 	 C777CQG779EqI#--/*r2   c                     g  G fdd      } |       }~dd l }|j                          | j                  dg       y )Nc                       e Zd Z fdZy)#ClassTests.testDel.<locals>.DelTestc                 (    j                  d       y )Ncrab people, crab people)r+   r:   xs    r0   __del__z+ClassTests.testDel.<locals>.DelTest.__del__  s    34r2   N)r,   rj   rk   r   r   s   r0   DelTestr     s    5r2   r   r   r   )gccollectr   )r:   r   rd   r   r   s       @r0   testDelzClassTests.testDel  s>    	5 	5 


45q9r2   c           
           G d d      }d }t         t        t        t        t        t
        t        t        t        |f
D ]  }| j                  t        | |                y )Nc                   .    e Zd Zd ZeZeZeZeZeZeZ	eZ
y)4ClassTests.testBadTypeReturned.<locals>.BadTypeClassc                      y r)   r3   r9   s    r0   r   z<ClassTests.testBadTypeReturned.<locals>.BadTypeClass.__int__      r2   N)r,   rj   rk   r   r   __complex__r   r   	__bytes____bool__r   r3   r2   r0   BadTypeClassr     s*    I!KGHIHIr2   r   c                     g |    S r)   r3   r   s    r0   indexz-ClassTests.testBadTypeReturned.<locals>.index  s    a5Lr2   )r   complexr   r   bytesbinr   r   boolassertRaisesrx   )r:   r   r   r/   s       r0   testBadTypeReturnedzClassTests.testBadTypeReturned  sG    		  		 	 #tUCc4OAiLN; Pr2   c                      G d d      }t         |               G d d      }| j                  t        t          |              y )Nc                       e Zd Zy)$ClassTests.testHashStuff.<locals>.C0Nri   r3   r2   r0   C0r         r2   r   c                       e Zd Zd Zy)$ClassTests.testHashStuff.<locals>.C2c                      yr   r3   r:   others     r0   r   z+ClassTests.testHashStuff.<locals>.C2.__eq__  s    Ar2   N)r,   rj   rk   r   r3   r2   r0   C2r     s    -r2   r   )r   r   rx   )r:   r   r   s      r0   testHashStuffzClassTests.testHashStuff  s7    	 	 	RT
	. 	. 	)T240r2   c                 Z   t               } G d d      } |       }d}|D ]  }| j                  |      5  | j                  t        t	        t         |d                    | j                  t        t	        ||d                    | j                  t        t	        ||d                    | j                  t        t	        ||d                    d d d         g d}d}|j                  t        dj                  |             |j                  t        dj                  |             |j                  t        dj                  |             |D ]  }| j                  |      5  | j                  t        t         |             | j                  t        ||             | j                  t        ||             | j                  t        ||             d d d         | j                  t        |d	             | j                  t        |d	             y # 1 sw Y   xY w# 1 sw Y   xY w)
Nc                       e Zd Zy).ClassTests.testPredefinedAttrs.<locals>.CustomNri   r3   r2   r0   Customr     r   r2   r   )	__class__r   __dir__r   
__format____ge____getattribute____getstate__r   r   rB   __init_subclass____le__r   r   __new__
__reduce____reduce_ex__r   r   
__sizeof__r   __subclasshook__)'r   
__aenter__	__aexit__	__aiter__	__anext__	__await__r   r   __ceil__r   rn   r   
__delete__rq   rU   	__enter____exit__r   	__floor____get__r   ro   r   r   
__invert____iter____len____length_hint____missing__r}   __next____objclass__r~   rV   __reversed__	__round____set__rp   	__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           r0   testPredefinedAttrszClassTests.testPredefinedAttrs  s   H	 	 H
 Dd#t)D EFD$)? @At)D EFD$)? @A	 $# 


 	3x893y//9:3y//9:Dd#  !67  D!12  !67  D!12	 $#   	J/0J/0C $#2 $#s   BH"A1H!H	!H*	c                      G d d      } |       |_          |       }	  |        | j                  d       y # t        $ r Y y w xY w)Nc                       e Zd Zy)%ClassTests.testSFBug532646.<locals>.ANri   r3   r2   r0   r   r  0  r   r2   r   zFailed to raise RecursionError)r  r=   RecursionError)r:   r   r   s      r0   testSFBug532646zClassTests.testSFBug532646-  sI    	 	S
C	8C II67  		s   8 	AAc                 V   d  G fdd      }	  |       j                     G fdd      } |        |       k(    G fdd	      }	  |        | j                  d
       y # t        $ r,}t        |      dk7  r| j                  d|z         Y d }~qd }~ww xY w# t        $ r Y y w xY w)Nc                     t        d      )Nbooh)AttributeErrorr9   s    r0   r!  zBClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.booh?  s     ((r2   c                        e Zd Z eW        Zy)?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.AN)r,   rj   rk   propertyr   r!  s   r0   r   r$  B  s    Ar2   r   r!  z(attribute error for A().a got masked: %sc                        e Zd Z eW        Zy)?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.EN)r,   rj   rk   r%  r   r&  s   r0   Er(  J  s    d^Fr2   r)  c                        e Zd Z eW        Zy)?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.IN)r,   rj   rk   r%  rB   r&  s   r0   Ir+  N  s    ~Hr2   r,  z)attribute error for I.__init__ got masked)r   r"  r   r=   )r:   r   r   r)  r,  r!  s        @r0   )testForExceptionsRaisedInInstanceGetattr2z4ClassTests.testForExceptionsRaisedInInstanceGetattr2<  s    	)	 		JCEE
	$ 	$	qs
	& 	&	C C IIAB#  	J1v		DqHI	J  		s)   A$ B $	B-"BB	B('B(c                 |   | j                  t              5  ||k   d d d        | j                  t              5  ||kD   d d d        | j                  t              5  ||k   d d d        | j                  t              5  ||k\   d d d        y # 1 sw Y   sxY w# 1 sw Y   \xY w# 1 sw Y   ExY w# 1 sw Y   y xY wr)   )r   rx   )r:   r   bs      r0   assertNotOrderablezClassTests.assertNotOrderableY  s    y)E *y)E *y)F *y)F *) *)))))))s.   BBB&?B2BB#&B/2B;c                     G d d      } G d d|      } |d      } |d      }| j                  |j                  |j                  k(         | j                  |j                  |j                  k7         | j                  |j                  |j                  k(         | j                  |j                  |j                  k7         | j                  |j                  |j                  k(         | j                  |j                  |j                  k7         | j	                  |j                  |j                         | j                  t        |j                        t        |j                               | j                  |j                  |j                  k(         | j                  |j                  |j                  k7         | j                  |j                  |j                  k(         | j                  |j                  |j                  k7         | j                  |j                  |j                  k(         | j                  |j                  |j                  k7         | j	                  |j                  |j                         | j                  t        |j                        t        |j                                |t        |j                        dz        }t        |j                         y )Nc                   *    e Zd Zd Zd Zd Zd Zd Zy)1ClassTests.testHashComparisonOfMethods.<locals>.Ac                     || _         y r)   r   r   s     r0   rB   z:ClassTests.testHashComparisonOfMethods.<locals>.A.__init__f  s	    r2   c                      y r)   r3   r9   s    r0   r/   z3ClassTests.testHashComparisonOfMethods.<locals>.A.fh      r2   c                      y r)   r3   r9   s    r0   gz3ClassTests.testHashComparisonOfMethods.<locals>.A.gj  r6  r2   c                      y)NTr3   r   s     r0   r   z8ClassTests.testHashComparisonOfMethods.<locals>.A.__eq__l  r   r2   c                     t         r)   )rx   r9   s    r0   r   z:ClassTests.testHashComparisonOfMethods.<locals>.A.__hash__n  s    r2   N)r,   rj   rk   rB   r/   r8  r   r   r3   r2   r0   r   r3  e  s     r2   r   c                       e Zd Zy)1ClassTests.testHashComparisonOfMethods.<locals>.BNri   r3   r2   r0   Br<  p  r   r2   r=  rF   )r  r/   r  r8  r0  r   r   )r:   r   r=  a1a2r   s         r0   testHashComparisonOfMethodsz&ClassTests.testHashComparisonOfMethodsc  s   
	  
	 	 	 qTqT%&&%&%bdd+bddT"$$Z0%rtt$$qss
#qss
#$QSS)accDI. d133inQSS	r2   c                     G d d      }d }t        dd      }| j                  |d       t        j                  |||       | j	                   |       dz   d       t        dd      }| j                  |d       | j                  ||       t        j                  ||       | j                  t              5   |       dz    d d d        y # 1 sw Y   y xY w)	Nc                       e Zd Zy)2ClassTests.testSetattrWrapperNameIntern.<locals>.ANri   r3   r2   r0   r   rD    r   r2   r   c                      y)Nsummar3   r   s     r0   r   z4ClassTests.testSetattrWrapperNameIntern.<locals>.add  s    r2   s   __add__asciirG   rF   rF  )r   assertIsNottyper   r   r   r   rx   )r:   r   r   r  name2s        r0   testSetattrWrapperNameInternz'ClassTests.testSetattrWrapperNameIntern  s    	 		 :w'y)D#&q'*J(	*%E"y)C!G *))s   8CCc                      G d d      }| j                  t              5  t        j                  |dd        d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zy).ClassTests.testSetattrNonStringName.<locals>.ANri   r3   r2   r0   r   rN    r   r2   r      x)r   rx   rI  r   )r:   r   s     r0   testSetattrNonStringNamez#ClassTests.testSetattrNonStringName  s:    	 	 y)Qd+ *))s   AA
c                      G d d      }d}| j                  t        |      5  |j                   d d d        | j                  t        |      5  |`d d d        y # 1 sw Y   +xY w# 1 sw Y   y xY w)Nc                       e Zd Zy):ClassTests.testTypeAttributeAccessErrorMessages.<locals>.ANri   r3   r2   r0   r   rS    r   r2   r   z$type object 'A' has no attribute 'x')assertRaisesRegexr"  r   )r:   r   	error_msgs      r0   $testTypeAttributeAccessErrorMessagesz/ClassTests.testTypeAttributeAccessErrorMessages  s\    	 	 ;	##NI>CC ?##NI> ?> ?>>>s   AA&A#&A/c                     G d d      } G d d      }d}| j                  t        |      5   |       j                   d d d        | j                  t        |      5   |       `d d d        d}| j                  t        |      5   |       j                   d d d        | j                  t        |      5   |       `d d d        | j                  t        |      5  d |       _        d d d        d}| j                  t        |      5   |       `d d d        | j                  t        |      5  d |       _        d d d        d	}| j                  t        |      5   |       j                   d d d        | j                  t        |      5   |       `d d d        y # 1 sw Y   _xY w# 1 sw Y   FxY w# 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# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
Nc                       e Zd Zy)<ClassTests.testObjectAttributeAccessErrorMessages.<locals>.ANri   r3   r2   r0   r   rY    r   r2   r   c                       e Zd ZdZdZy)<ClassTests.testObjectAttributeAccessErrorMessages.<locals>.Br   )zN)r,   rj   rk   y	__slots__r3   r2   r0   r=  r[    s    AIr2   r=  z'A' object has no attribute 'x'z'B' object has no attribute 'x'r   z%'B' object attribute 'y' is read-onlyr\  )rT  r"  r   r]  r\  )r:   r   r=  rU  s       r0   &testObjectAttributeAccessErrorMessagesz1ClassTests.testObjectAttributeAccessErrorMessages  s   	 		 	 6	##NI>CEE ?##NI> ? 6	##NI>CEE ?##NI> ?##NI>ACE ? <	##NI> ?##NI>ACE ? 	##NI>CEE ?##NI> ?>- ?>>> ?>>>>> ?>>> ?>>>sk   FF)F65GGG.G(G4H F&)F36G GGG%(G14G= H	c                 :    G d d      }d}| j                  t        d      5   |d       d d d        | j                  t        d      5  |j                  |d       d d d        | j                  t        |      5   |       j                  d       d d d        | j                  t        d      5  t        j                  |d       d d d        | j                  t        |      5  t        j                   |       d       d d d         G d d      }d}| j                  t        |      5   |d       d d d        | j                  t        |      5  |j                  |d       d d d        | j                  t        |      5  t        j                  |d       d d d         G d	 d
      }d}| j                  t        |      5   |       j                  d       d d d        | j                  t        |      5  t        j                   |       d       d d 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# 1 sw Y   SxY w# 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# 1 sw Y   y xY w)Nc                       e Zd Zy)2ClassTests.testConstructorErrorMessages.<locals>.CNri   r3   r2   r0   Crb    r   r2   rc  zHC.__init__\(\) takes exactly one argument \(the instance to initialize\)zC\(\) takes no argumentsrr   c                   (     e Zd Z fdZ fdZ xZS )2ClassTests.testConstructorErrorMessages.<locals>.Dc                 ,    t        |   | g|i | y r)   )superr   )clsr-   r.   r   s      r0   r   z:ClassTests.testConstructorErrorMessages.<locals>.D.__new__  s    5d5f5r2   c                 $    t        |   |i | y r)   rg  rB   r:   r-   r.   r   s      r0   rB   z;ClassTests.testConstructorErrorMessages.<locals>.D.__init__       $1&1r2   )r,   rj   rk   r   rB   __classcell__r   s   @r0   Dre    s    62 2r2   ro  zIobject.__new__\(\) takes exactly one argument \(the type to instantiate\)c                        e Zd Z fdZ xZS )2ClassTests.testConstructorErrorMessages.<locals>.Ec                 $    t        |   |i | y r)   rj  rk  s      r0   rB   z;ClassTests.testConstructorErrorMessages.<locals>.E.__init__  rl  r2   )r,   rj   rk   rB   rm  rn  s   @r0   r)  rq    s    2 2r2   r)  zMobject.__init__\(\) takes exactly one argument \(the instance to initialize\))rT  rx   r   rB   r	  )r:   rc  rU  ro  r)  s        r0   testConstructorErrorMessagesz'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
H+;H80I%I+	II,I9J9JH(+H58IIII),I69JJJc                 Z    G d dt               }d|i} G d dfi |}| j                  |di f        G d dgdi |}| j                  |t        t        d	            i f        G d
 ddgt        dd	      i |ddi}| j                  |t        t        d	            ddif       y )Nc                       e Zd Zd Zd Zy)-ClassTests.testClassWithExtCall.<locals>.Metac                       y r)   r3   )r-   r.   s     r0   rB   z6ClassTests.testClassWithExtCall.<locals>.Meta.__init__
  r6  r2   c                 
    ||fS r)   r3   )rh  r  basesattrsr.   s        r0   r   z5ClassTests.testClassWithExtCall.<locals>.Meta.__new__  s    f}$r2   N)r,   rj   rk   rB   r   r3   r2   r0   Metarv  	  s    %r2   r{  	metaclassc                       e Zd Zy*ClassTests.testClassWithExtCall.<locals>.ANri   r3   r2   r0   r   r    rm   r2   r   r3   c                       e Zd Zyr~  ri   r3   r2   r0   r   z*ClassTests.testClassWithExtCall.<locals>.A  rm   r2   )r   rF   rs                     c                       e Zd Zyr~  ri   r3   r2   r0   r   z*ClassTests.testClassWithExtCall.<locals>.A  rm   r2   r   rF   rC   bar)r   r   tuplerange)r:   r{  dr   s       r0   testClassWithExtCallzClassTests.testClassWithExtCall  s    	%3 	% $!RH%22!2U58_b1266E!QK616%6U58_uen=>r2   N)r,   rj   rk   r;   r@   rD   re   r{   r   r   r   r   r   r   r   r  r  r-  r0  rA  rK  rP  rV  r_  rs  r  r3   r2   r0   r7   r7      s    85u:nGER94-8`F<+
:<$111f8C:&P(,B5%n?r2   r7   __main__)__doc__unittest	testmethsr*   r4   statictestsmethod_templater  execglobalsmethodrI  r	  r5   TestCaser7   r,   mainr3   r2   r0   <module>r     s    B -	v 0h  [')Q F6	!79a0 
VIq){FON
?"" N
?b zHMMO r2   