
    ;eWM                        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                     dS dS )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        | f            | i |S N)callLstappend__name__)argskwargsfs     &/usr/lib/python3.11/test/test_class.pytrackztrackCall.<locals>.trackC   s1    
D)***q$!&!!!     )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S )
ClassTestsc                     g t           d d <   d S r)   )r*   selfs    r0   setUpzClassTests.setUp   s    


r2   c                 j    t           d d          }||k    r|                     d|d|           d S d S )NzExpected call list:
  z#
does not match actual call list
  )r*   fail)r:   expected_callsactualCallLists      r0   assertCallStackzClassTests.assertCallStack   sT     ^++III%~~~~7 8 8 8 8 8 ,+r2   c                 T    t                      }|                     d|ffg           d S )N__init__)r5   r@   )r:   foos     r0   testInitzClassTests.testInit   s/    jjzC62344444r2   c                 	   t                      }g t          d d <   |dz    |                     d|dffg           g t          d d <   d|z    |                     d|dffg           g t          d d <   |dz
   |                     d|dffg           g t          d d <   d|z
   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d	|dffg           g t          d d <   |dz   |                     d
|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   t          |d           |                     d|dffg           g t          d d <   t          d|           |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   |dz	   |                     d|dffg           g t          d d <   d|z	   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           g t          d d <   |dz   |                     d|dffg           g t          d d <   d|z   |                     d|dffg           d S )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88
	F

zFA;78999


y61+67888
	F

zFA;78999


y61+67888
	F

zFA;78999


|fa[9:;;;
	F

}vqk:;<<<


}vqk:;<<< 
	F

~{;<===
!~{;<=== 
	V<=>>>


y61+67888
	F

zFA;78999 
va|fa[9:;;;
q&}vqk:;<<<
!y61+67888
	VzFA;78999
!|fa[9:;;;
	V}vqk:;<<<
!|fa[9:;;;
	V}vqk:;<<<


y61+67888
	F

zFA;78999


x&!56777
	F

y61+67888


y61+67888
	F

zFA;7899999r2   c                     t                      } G d d          }	 d |            v  |                     d           n# t          $ r Y nw xY wg t          d d <   d|v  |                     d|dffg           g t          d d <   |d          |                     d|dffg           g t          d d <   d|d<   |                     d|ddffg           g t          d d <   |d= |                     d|dffg           g t          d d <   |d d	          |                     d|t          d d	          ffg           g t          d d <   d
|d d	<   |                     d|t          d d	          d
ffg           g t          d d <   |d d	= |                     d|t          d d	          ffg           g t          d d <   |ddd          |                     d|t          ddd          ffg           g t          d d <   d|ddd<   |                     d|t          ddd          dffg           g t          d d <   |ddd= |                     d|t          ddd          ffg           g t          d d <   |d d	dd dddf          |                     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<   |                     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= |                     d|t          d d	d           t          t          d dd           ddfffg           d S )Nc                       e Zd ZdS ),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    		LLII<==== 	 	 	D	 
	V~{;<===
q		}vqk:;<<<
q	}vq!n=>???
1I}vqk:;<<<
ss}vuT2.GHIJJJ
"ss}vuT2/;/= > ? 	@ 	@ 	@ 
3B3K}vuT2.GHIJJJ
qby}vuQb7I7I.JKLMMM
#qby}vuQb7I7IDK/M N O 	P 	P 	P
1T"9}vuQb7I7I.JKLMMM
ssC"r3&''}vdB8M8M8@8=dB8M8M8:C8A /B C D 	E 	E 	E 
*3ssC"r3&'}vdB8M8M8@8=dB8M8M8:C8A CL/M N O 	P 	P 	P 
3B3TbT2s*+}vdB8M8M8@8=dB8M8M8:C8A /B C D 	E 	E 	E 	E 	Es   !? 
AAc                    t                      }g t          d d <   |  |                     d|ffg           g t          d d <   |
  |                     d|ffg           g t          d d <   t          |           |                     d|ffg           g t          d d <   t	          |           |                     d|ffg           g t          d d <   t          |           |                     d|ffg           g t          d d <   t          |           |                     d|ffg           g t          d d <   t          |           |                     d|ffg           d S )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66
	y6)45666
Fy6)45666
Fy6)45666
f{VI67888
F{VI67888
F{VI6788888r2   c                    t                      }g t          d d <   t          |           |                     d|ffg           g t          d d <   t	          |           |                     d|ffg           g t          d d <   t          |           |                     d|ffg           g t          d d <   |dk     |                     d|dffg           g t          d d <   |dk      |                     d|dffg           g t          d d <   |dk     |                     d|dffg           g t          d d <   |dk     |                     d|dffg           g t          d d <   d|k     |                     dd|ffg           g t          d d <   d|k      |                     dd|ffg           g t          d d <   d|k     |                     dd|ffg           g t          d d <   d|k     |                     dd|ffg           d S )	N__hash____repr____str__rF   __eq____lt____gt____ne__)r5   r*   hashr@   reprstrrc   s     r0   testMisczClassTests.testMiscr  sc   
VzF956777
VzF956777
Fy6)45666
!x&!56777


x&!56777


x&!56777
!x&!56777
	Vx!V56777
	F

x!V56777
	F

x!V56777
	Vx!V5677777r2   c                 F    G d dt                     } |            }g t          d d <   |j         |                     d|dffg           g t          d d <   d|_        |                     d|ddffg           g t          d d <   |`|                     d|d	ffg           d S )
Nc                   P    e Zd Zed             Zed             Zed             ZdS )/ClassTests.testGetSetAndDel.<locals>.ExtraTestsc                     dS )NSomeValr3   r:   r-   s     r0   __getattr__z;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__getattr__  s     yr2   c                     d S r)   r3   r   s     r0   __setattr__z;ClassTests.testGetSetAndDel.<locals>.ExtraTests.__setattr__      r2   c                     d S 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     sc        ! ! Y!   Y   Y  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AA
0}vv/I/K L M 	N 	N 	N 
O}vz.BCDEEEEEr2   c                     g  G fdd          } |            }~dd l }|                                 |                     dg           d S )Nc                       e Zd Z fdZdS )#ClassTests.testDel.<locals>.DelTestc                 2                         d           d S )Ncrab people, crab people)r+   r:   xs    r0   __del__z+ClassTests.testDel.<locals>.DelTest.__del__  s    344444r2   N)r,   rj   rk   r   r   s   r0   DelTestr     s.        5 5 5 5 5 5 5r2   r   r   r   )gccollectassertEqual)r:   r   rd   r   r   s       @r0   testDelzClassTests.testDel  s    	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 			


45q99999r2   c           
           G d d          }d }t           t          t          t          t          t
          t          t          t          |f
D ]&}| 	                    t          | |                       'd S )Nc                   0    e Zd Zd ZeZeZeZeZeZeZ	eZ
dS )4ClassTests.testBadTypeReturned.<locals>.BadTypeClassc                     d S r)   r3   r9   s    r0   r   z<ClassTests.testBadTypeReturned.<locals>.BadTypeClass.__int__      tr2   N)r,   rj   rk   r   r   __complex__r   r   	__bytes____bool__r   r3   r2   r0   BadTypeClassr     s@          I!KGHIHIIIr2   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  s    		  		  		  		  		  		  		  		 	 	 	 #tUCc4O 	< 	<AiLLNN;;;;	< 	<r2   c                      G d d          }t           |                        G d d          }|                     t          t            |                       d S )Nc                       e Zd ZdS )$ClassTests.testHashStuff.<locals>.C0Nri   r3   r2   r0   C0r             Dr2   r   c                       e Zd Zd ZdS )$ClassTests.testHashStuff.<locals>.C2c                     dS )NrF   r3   r:   others     r0   r   z+ClassTests.testHashStuff.<locals>.C2.__eq__  s    AAr2   N)r,   rj   rk   r   r3   r2   r0   C2r     s        -----r2   r   )r   r   rx   )r:   r   r   s      r0   testHashStuffzClassTests.testHashStuff  s    	 	 	 	 	 	 	 	 	RRTT


	. 	. 	. 	. 	. 	. 	. 	. 	)T224400000r2   c                      G d d          } |            |_          |            }	  |             |                     d           d S # t          $ r Y d S w xY w)Nc                       e Zd ZdS )%ClassTests.testSFBug532646.<locals>.ANri   r3   r2   r0   Ar     r   r2   r   zFailed to raise RecursionError)__call__r=   RecursionError)r:   r   as      r0   testSFBug532646zClassTests.testSFBug532646  s    	 	 	 	 	 	 	 	QSS
ACC	8ACCC II677777  	 	 	DD	s   
A	 	
AAc                    d  G fdd          }	  |            j          nB# t          $ r5}t          |          dk    r|                     d|z             Y d }~nd }~ww xY w G fdd          } |             |            k      G fdd	          }	  |             |                     d
           d S # t          $ r Y d S 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           ZdS )?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.AN)r,   rj   rk   propertyr   r   s   r0   r   r     s        AAAr2   r   r   z(attribute error for A().a got masked: %sc                   &    e Zd Z e           ZdS )?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.EN)r,   rj   rk   r   r   r   s   r0   Er   
  s        Xd^^FFFr2   r   c                   &    e Zd Z e           ZdS )?ClassTests.testForExceptionsRaisedInInstanceGetattr2.<locals>.IN)r,   rj   rk   r   rB   r   s   r0   Ir     s        x~~HHHr2   r   z)attribute error for I.__init__ got masked)r   r   r   r=   )r:   r   r   r   r   r   s        @r0   )testForExceptionsRaisedInInstanceGetattr2z4ClassTests.testForExceptionsRaisedInInstanceGetattr2  su   	) 	) 	)	 	 	 	 	 	 	 	 	 		JACCEEE 	J 	J 	J1vv		DqHIII	J	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$	qqss

	& 	& 	& 	& 	& 	& 	& 	& 	& 	&	C ACCC IIABBBBB  	 	 	DD	s&   % 
A$+AA$
B= =
C
Cc                    |                      t                    5  ||k      d d d            n# 1 swxY w Y   |                      t                    5  ||k     d d d            n# 1 swxY w Y   |                      t                    5  ||k     d d d            n# 1 swxY w Y   |                      t                    5  ||k     d d d            d S # 1 swxY w Y   d S r)   )r   rx   )r:   r   bs      r0   assertNotOrderablezClassTests.assertNotOrderable  s   y)) 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sB   .22A&&A*-A*BB"%B"CCCc                     G d d          } G d d|          } |d          } |d          }|                      |j        |j        k               |                     |j        |j        k               |                     |j        |j        k               |                      |j        |j        k               |                     |j        |j        k               |                      |j        |j        k               |                     |j        |j                   |                     t          |j                  t          |j                             |                     |j        |j        k               |                      |j        |j        k               |                     |j        |j        k               |                      |j        |j        k               |                      |j        |j        k               |                     |j        |j        k               |                     |j        |j                   |                     t          |j                  t          |j                              |t          |j                  dz            }t          |j                   d S )Nc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )1ClassTests.testHashComparisonOfMethods.<locals>.Ac                     || _         d S r)   r   r   s     r0   rB   z:ClassTests.testHashComparisonOfMethods.<locals>.A.__init__&  s    r2   c                     d S r)   r3   r9   s    r0   r/   z3ClassTests.testHashComparisonOfMethods.<locals>.A.f(      r2   c                     d S r)   r3   r9   s    r0   gz3ClassTests.testHashComparisonOfMethods.<locals>.A.g*  r   r2   c                     dS )NTr3   r   s     r0   r   z8ClassTests.testHashComparisonOfMethods.<locals>.A.__eq__,  r   r2   c                     t           r)   )rx   r9   s    r0   r   z:ClassTests.testHashComparisonOfMethods.<locals>.A.__hash__.  s    r2   N)r,   rj   rk   rB   r/   r   r   r   r3   r2   r0   r   r   %  s_                         r2   r   c                       e Zd ZdS )1ClassTests.testHashComparisonOfMethods.<locals>.BNri   r3   r2   r0   Br   0  r   r2   r   rF   )
assertTruer/   assertFalser   r   r   r   )r:   r   r   a1a2r   s         r0   testHashComparisonOfMethodsz&ClassTests.testHashComparisonOfMethods#  sb   
	  
	  
	  
	  
	  
	  
	  
	 	 	 	 	 	 	 	 	 QqTTQqTT%%%&&&&&&%%%&&&%%%bd+++bdT"$ZZ000%%%rt$$$$$$qs
###qs
###$$$QS)))acDII... Ad13iinQS					r2   c                     G d d          }d }t          dd          }|                     |d           t                              |||           |                      |            dz   d           t          dd          }|                     |d           |                     ||           t                              ||           |                     t                    5   |            dz    d d d            d S # 1 swxY w Y   d S )	Nc                       e Zd ZdS )2ClassTests.testSetattrWrapperNameIntern.<locals>.ANri   r3   r2   r0   r   r   M  r   r2   r   c                     dS )Nsummar3   r   s     r0   r   z4ClassTests.testSetattrWrapperNameIntern.<locals>.addP  s    7r2   s   __add__asciirG   rF   r  )r   assertIsNottyper   r   r   r   rx   )r:   r   r   namename2s        r0   testSetattrWrapperNameInternz'ClassTests.testSetattrWrapperNameInternK  sp   	 	 	 	 	 	 	 		 	 	 :w''y)))D#&&&q'***J((	***%%%E"""y)) 	 	ACC!GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   %D  DDc                      G d d          }|                      t                    5  t                              |dd            d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS ).ClassTests.testSetattrNonStringName.<locals>.ANri   r3   r2   r0   r   r
  `  r   r2   r      x)r   rx   r  r   )r:   r   s     r0   testSetattrNonStringNamez#ClassTests.testSetattrNonStringName_  s    	 	 	 	 	 	 	 	 y)) 	, 	,Qd+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   AAAc                     G d d          }d}|                      t          |          5  |j         d d d            n# 1 swxY w Y   |                      t          |          5  |`d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS ):ClassTests.testTypeAttributeAccessErrorMessages.<locals>.ANri   r3   r2   r0   r   r  g  r   r2   r   z$type object 'A' has no attribute 'x')assertRaisesRegexr   r   )r:   r   	error_msgs      r0   $testTypeAttributeAccessErrorMessagesz/ClassTests.testTypeAttributeAccessErrorMessagesf  s"   	 	 	 	 	 	 	 	 ;	##NI>> 	 	CC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NI>> 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s!   ?AA%A55A9<A9c                     G d d          } G d d          }d}|                      t          |          5   |            j         d d d            n# 1 swxY w Y   |                      t          |          5   |            `d d d            n# 1 swxY w Y   d}|                      t          |          5   |            j         d d d            n# 1 swxY w Y   |                      t          |          5   |            `d d d            n# 1 swxY w Y   |                      t          |          5  d |            _        d d d            n# 1 swxY w Y   d}|                      t          |          5   |            `d d d            n# 1 swxY w Y   |                      t          |          5  d |            _        d d d            n# 1 swxY w Y   d	}|                      t          |          5   |            j         d d d            n# 1 swxY w Y   |                      t          |          5   |            `d d d            d S # 1 swxY w Y   d S )
Nc                       e Zd ZdS )<ClassTests.testObjectAttributeAccessErrorMessages.<locals>.ANri   r3   r2   r0   r   r  q  r   r2   r   c                       e Zd ZdZdZdS )<ClassTests.testObjectAttributeAccessErrorMessages.<locals>.Br   )zN)r,   rj   rk   y	__slots__r3   r2   r0   r   r  s  s        AIIIr2   r   z'A' object has no attribute 'x'z'B' object has no attribute 'x'r   z%'B' object attribute 'y' is read-onlyr  )r  r   r   r  r  )r:   r   r   r  s       r0   &testObjectAttributeAccessErrorMessagesz1ClassTests.testObjectAttributeAccessErrorMessagesp  s   	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 6	##NI>> 	 	ACCEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NI>> 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 6	##NI>> 	 	ACCEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NI>> 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NI>> 	 	AACCE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <	##NI>> 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NI>> 	 	AACCE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NI>> 	 	ACCEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##NI>> 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAA:BBB9CCC;DDD8EEE<FFF9GGG=HH H?IIIc                 N    G d d          }d}|                      t          d          5   |d           d d d            n# 1 swxY w Y   |                      t          d          5  |                    |d           d d d            n# 1 swxY w Y   |                      t          |          5   |                                d           d d d            n# 1 swxY w Y   |                      t          d          5  t                              |d           d d d            n# 1 swxY w Y   |                      t          |          5  t                               |            d           d d d            n# 1 swxY w Y    G d d          }d}|                      t          |          5   |d           d d d            n# 1 swxY w Y   |                      t          |          5  |                    |d           d d d            n# 1 swxY w Y   |                      t          |          5  t                              |d           d d d            n# 1 swxY w Y    G d	 d
          }d}|                      t          |          5   |                                d           d d d            n# 1 swxY w Y   |                      t          |          5  t                               |            d           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )2ClassTests.testConstructorErrorMessages.<locals>.CNri   r3   r2   r0   Cr    r   r2   r  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                 B     t                      j        | g|R i | d S r)   )super__new__)clsr-   r.   	__class__s      r0   r$  z:ClassTests.testConstructorErrorMessages.<locals>.D.__new__  s/    5d555f55555r2   c                 :     t                      j        |i | d S r)   r#  rB   r:   r-   r.   r&  s      r0   rB   z;ClassTests.testConstructorErrorMessages.<locals>.D.__init__  %      $1&11111r2   )r,   rj   rk   r$  rB   __classcell__r&  s   @r0   Dr!    sQ        6 6 6 6 62 2 2 2 2 2 2 2 2r2   r-  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                      j        |i | d S r)   r(  r)  s      r0   rB   z;ClassTests.testConstructorErrorMessages.<locals>.E.__init__  r*  r2   )r,   rj   rk   rB   r+  r,  s   @r0   r   r/    s8        2 2 2 2 2 2 2 2 2r2   r   zMobject.__init__\(\) takes exactly one argument \(the instance to initialize\))r  rx   r$  rB   object)r:   r  r  r-  r   s        r0   testConstructorErrorMessagesz'ClassTests.testConstructorErrorMessages  s   	 	 	 	 	 	 	 	 `	##I/JKK 	 	AbEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I/JKK 	 	IIa	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##Iy99 	 	ACCLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I/JKK 	" 	"NN1b!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ##Iy99 	% 	%OOAACC$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%	2 	2 	2 	2 	2 	2 	2 	2 b	##Iy99 	 	AbEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##Iy99 	 	IIa	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##Iy99 	" 	"NN1b!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"	2 	2 	2 	2 	2 	2 	2 	2 e	##Iy99 	 	ACCLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##Iy99 	% 	%OOAACC$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   AA
A)BBB2CC #C D**D.1D.$F  FF5GGG3HHH<I$$I(+I(KK
K)$LL!Lc                     G d dt                     }d|i} G d dfi |}|                     |di f            G d dgdR i |}|                     |t          t          d	                    i f            G d
 ddgt          dd	          R i |ddi}|                     |t          t          d	                    ddif           d S )Nc                       e Zd Zd Zd ZdS )-ClassTests.testClassWithExtCall.<locals>.Metac                      d S r)   r3   )r-   r.   s     r0   rB   z6ClassTests.testClassWithExtCall.<locals>.Meta.__init__  r   r2   c                 
    ||fS r)   r3   )r%  r  basesattrsr.   s        r0   r$  z5ClassTests.testClassWithExtCall.<locals>.Meta.__new__  s    f}$r2   N)r,   rj   rk   rB   r$  r3   r2   r0   Metar5    s2          % % % % %r2   r:  	metaclassc                       e Zd ZdS *ClassTests.testClassWithExtCall.<locals>.ANri   r3   r2   r0   r   r>    rm   r2   r   r3   c                       e Zd ZdS r=  ri   r3   r2   r0   r   z*ClassTests.testClassWithExtCall.<locals>.A  rm   r2   )r   rF   rs                     c                       e Zd ZdS 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  s0   	% 	% 	% 	% 	%3 	% 	% 	% $!RH%%%2222222222!222U588__b1222666666E!QKK666166%6666U588__uen=>>>>>r2   N)r,   rj   rk   r;   r@   rD   re   r{   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r2  rK  r3   r2   r0   r7   r7      sd         8 8 85 5 5u: u: u:nGE GE GER9 9 94-8 -8 -8`F F F<
: 
: 
:< < <$1 1 18 8 8C C C:  & & &P  (, , ,    B5% 5% 5%n? ? ? ? ?r2   r7   __main__)__doc__unittest	testmethsr*   r4   statictestsmethod_templaterJ  execglobalsmethodr  r1  r5   TestCaser7   r,   mainr3   r2   r0   <module>rW     s   B B - - -	v   0h  [''))Q    1 1FD6	!7799a00004
VIq)){FON	? N	? N	? N	? N	?" N	? N	? N	?b zHMOOOOO r2   