python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_binop.cpython-311.pyc

e8jdZddlZddlmZmZmZddlmZdZdZ	dZ
dZGd	d
eZ
GddejZGd
dZdZGddeZGddeeZGddeZGddeZeeGddejZGddeZGddeZGdd eZGd!d"eZGd#d$eZGd%d&ZGd'd(ejZed)krej dSdS)*z9Tests for binary operators on subtypes of built-in types.N)eqlene)ABCMetac|r	||z|}}|	|S)z1Greatest common divisor using Euclid's algorithm.)abs  C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_binop.pygcdrs&
sA1Hc,t|tS)z-Test whether an object is an instance of int.)
isinstanceintxs risintr
ar
cZtttfD]}t||rdSdS)zATest whether an object is an instance of a built-in numeric type.r)rfloatcomplexr)rTs  risnumrs;
%
 a	11	1r
c,t|tS)z7Test whether an object is an instance of the Rat class.)rRatrs risRatrrr
ceZdZdZddgZddZdZeedZd	Z	ee	dZ
d
ZdZdZ
d
ZdZeZdZdZdZeZdZdZdZdZdZdZdZdZdZdS)rz9Rational number implemented as a normalized pair of ints.	_Rat__num	_Rat__denrrc0t|std|zt|std|z|dkrtdt||}t	||z|_t	||z|_dS)z[Constructor: Rat([num[, den]]).

        The arguments must be ints, and default to (0, 1).zRat numerator must be int (%r)z Rat denominator must be int (%r)rzzero denominatorN)r	TypeErrorZeroDivisionErrorrrrr )selfnumdengs    r__init__zRat.__init__"sSzz	D<sBCCCSzz	F>DEEE!88#$6777SMMa[[
a[[


r
c|jS)z7Accessor function for read-only 'num' attribute of Rat.)rr$s r_get_numzRat._get_num1
zr
Nc|jS)z7Accessor function for read-only 'den' attribute of Rat.)r r*s r_get_denzRat._get_den6r,r
c$d|j|jfzS)z<Convert a Rat to a string resembling a Rat constructor call.zRat(%d, %d)rr r*s r__repr__zRat.__repr__;s
DJ777r
c:tt|S)z=Convert a Rat to a string resembling a decimal numeric value.)strrr*s r__str__zRat.__str__?s5;;r
c&|jdz|jzS)zConvert a Rat to a float.?r0r*s r	__float__z
Rat.__float__Csz#~dj((r
c|jdkrB	t|jS#t$r tdt	|zwxYwtdt	|z)z,Convert a Rat to an int; self.den must be 1.rz%s too large to convert to intzcan't convert %s to int)r rr
OverflowErrorrepr
ValueErrorr*s r__int__zRat.__int__Gsz:??
24:& 
2
2
2#$D&*4jj%1222
22T$ZZ?@@@s	!*Ac t|rt|}t|r:t|j|jz|j|jzz|j|jzSt|rt
||zStS)z$Add two Rats, or a Rat and a number.rrrrr rrNotImplementedr$others  r__add__zRat.__add__Q<<	JJE<<	/tz%+-DJ0FFz%+-//
/<<	';;&&r
c t|rt|}t|r:t|j|jz|j|jzz
|j|jzSt|rt
||z
StS)z)Subtract two Rats, or a Rat and a number.r>r@s  r__sub__zRat.__sub__^rCr
c t|rt|}t|r:t|j|jz|j|jzz
|j|jzSt|r|t
|z
StS)z9Subtract two Rats, or a Rat and a number (reversed args).r>r@s  r__rsub__zRat.__rsub__is<<	JJE<<	/u{4:-
5;0FFz%+-//
/<<	'5;;&&r
ct|r*t|j|jz|j|jzSt	|rt|j|z|jSt|rt
||zStS)z)Multiply two Rats, or a Rat and a number.rrrr rrrr?r@s  r__mul__zRat.__mul__ts<<	Gtz%+-tz%+/EFFF<<	5tz%'444<<	%;;u$$r
ct|r*t|j|jz|j|jzSt	|rt|j|j|zSt|rt
||zStS)z'Divide two Rats, or a Rat and a number.rIr@s  r__truediv__zRat.__truediv__s<<	Gtz%+-tz%+/EFFF<<	5tz4:e#3444<<	';;&&r
ct|r*t|j|jz|j|jzSt	|rt||jz|jSt|r|t
|zStS)z7Divide two Rats, or a Rat and a number (reversed args).rIr@s  r__rtruediv__zRat.__rtruediv__s<<	Gu{4:-u{4:/EFFF<<	5uTZ'444<<	'5;;&&r
ct|rt|}nt|stS||z}|j|jzS)z.Divide two Rats, returning the floored result.)rrrr?rr r$rArs   r__floordiv__zRat.__floordiv__sI<<	"JJEEu	"!!Jw!'!!r
c*||z}|j|jzS)z>Divide two Rats, returning the floored result (reversed args).r0rPs   r
__rfloordiv__zRat.__rfloordiv__s$Jw!'!!r
ct|rt|}nt|stS||z}||||zz
fS)z2Divide two Rats, returning quotient and remainder.)rrrr?rPs   r
__divmod__zRat.__divmod__sN<<	"JJEEu	"!!%K4%!)#$$r
ct|rt|}nt|stSt	||S)zBDivide two Rats, returning quotient and remainder (reversed args).)rrrr?divmodr@s  r__rdivmod__zRat.__rdivmod__sA<<	"JJEEu	"!!eT"""r
c.t||dS)zTake one Rat modulo another.rrWr@s  r__mod__zRat.__mod__sdE""1%%r
c.t||dS)z,Take one Rat modulo another (reversed args).rrZr@s  r__rmod__zRat.__rmod__seT""1%%r
ct|r|jdko
|j|kSt|r |j|jko|j|jkSt	|rt||kStS)zCompare two Rats for equality.r)rr rrrrr?r@s  r__eq__z
Rat.__eq__sy<<	;:?:tzU'::<<	K:,Ju{1JJ<<	(;;%''r
)rr)__name__
__module____qualname____doc__	__slots__r(r+propertyr%r.r&r1r4r7r<rB__radd__rErGrJ__rmul__rLrNrQrSrUrXr[r]r_rr
rrrsCCk*I
!
!
!
!(8T
"
"C(8T
"
"C888   )))AAA			H						H""""""
%%%###&&&&&&r
rcHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)RatTestCasez3Unit tests for Rat class and its support utilities.c|tddd|tddd|tddd|tddd|td	dd
|tdd
d|td	d
d
tddD]}tddD]}|t||dk|t||dk|t||dk|t||dkdS)
N
rdr)assertEqualrrange
assertTrue)r$ijs   rtest_gcdzRatTestCase.test_gcdsRa(((Ra(((Ra(((S"q)))S!b)))Ra(((S"r***q"	1	1A1b\\
1
1Aq		A
...QB

Q///Ar

Q///QBa0000	
1	1	1r
c	Btdd}||jd||jdtdd}||jd||jdtdd}||jd||jdtdd}||jd||jdtd}||jd||jd		td	d
}|dn#t
$rYnwxYwdd
ddgidttf	D]t}	t|}|d|zn#t$rYnwxYw	td	|}|d|ze#t$rYqwxYwdS)Nrkrnrmirsrrrrz(Rat(1, 0) didn't raise ZeroDivisionError0gyrzRat(%r) didn't raise TypeErrorz!Rat(1, %r) didn't raise TypeError)rrur%r&failr#unittestr")r$r	bads   rtest_constructorzRatTestCase.test_constructorsRBKK""""""CLL###"""RLL###"""SMM""""""FF""""""	BAq		A
II@AAAA!			D	RRT3@	E	EC
BHH		:S@AAAA




E3KK		=CDDDD



	E	Es6F
FF-G
G"!G"&H
HHc|tddtddzd|tdddztdd|dtddztdd|dtddzd|tdddzddS)Nrmr|rror6?rurr*s rtest_addzRatTestCase.test_addsQSAYY.222QQAq		222SAYYAq		222s1ayy#...QS#.....r
c|tddtddz
tdd|tdddz
tdd|dtddz
tdd|tdddz
d	|dtddz
d	dS)
Nr}rmrorkrr|r6?rr*s rtest_subzRatTestCase.test_subsQSAYY.B<<<QQAq		222SAYYAq		222QS#...s1ayy#.....r
c|tddtddztdd|tdddzd|dtddzd|tdddzd|dtddzddS)	Nrmr|ror}rkrrr6rr*s rtest_mulzRatTestCase.test_mul	sQSAYY.B<<<Ra,,,SQZZ,,,Rc)3///s2qzz)3/////r
c|tddtddztdd|tdddztdd|dtdztdd|dtd	dzd
|td	ddzd
dS)Nrkr|ror}	rm@rrrr*s rtest_divzRatTestCase.test_divsRc!Qii/R<<<RaR444SVVSAYY///s1ayy#...QS#.....r
cn|tdtdzd|tddtddzd|tddzd|dtdzddS)Nrkrmr|rr*s r
test_floordivzRatTestCase.test_floordivsRCFF*A...Rs1ayy0!444RAq)))s1vvq)))))r
c|tdtdd|tdd|dtd|tdd|dtddS)Nrkrtrmg$@rr*s rtest_eqzRatTestCase.test_eqsR#b!**---R"%%%SWW%%%R$'''s2ww'''''r
c@|tddtddztdd|tdddztdd|dtdztdd|dtd	dzd
|td	ddzd
|tdddS)
Nrkr|ror}rrrmrrrz1/2r)rurevalr*s r
test_true_divzRatTestCase.test_true_div$sRc!Qii/R<<<RaR444SVVSAYY///s1ayy#...QS#...ec*****r
N)
r`rarbrcrzrrrrrrrrrr
rriris==
1
1
1"E"E"EH//////000///***(((+++++r
riceZdZdZdZdZdS)OperationLoggerz.Base class for classes with operation logging.c||_dSNlogger)r$rs  rr(zOperationLogger.__init__1s
r
c|j|dSrr)r$argss  r
log_operationzOperationLogger.log_operation3sTr
N)r`rarbrcr(rrr
rrr/s888r
rcg}g}|D]%}|||j&	||n#t$rYnwxYw|S)zvReturn the sequence of operations that results from applying
    the operation `op` to instances of the given classes.)appendr")opclasseslog	instancescs     rop_sequencer6su
CI
((3:''''

I



Js4
AAc eZdZdZdZdZdS)Ac:|dtS)NA.__eq__rr?r@s  rr_zA.__eq__E:&&&r
c:|dtS)NA.__le__rr@s  r__le__zA.__le__Hrr
c:|dtS)NA.__ge__rr@s  r__ge__zA.__ge__Krr
Nr`rarbr_rrrr
rrrDAr
rc eZdZdZdZdZdS)Bc:|dtS)NB.__eq__rr@s  rr_zB.__eq__Prr
c:|dtS)NB.__le__rr@s  rrzB.__le__Srr
c:|dtS)NB.__ge__rr@s  rrzB.__ge__Vrr
Nrrr
rrrOrr
r)	metaclassc eZdZdZdZdZdS)Cc:|dtS)NC.__eq__rr@s  rr_zC.__eq__[rr
c:|dtS)NC.__le__rr@s  rrzC.__le__^rr
c:|dtS)NC.__ge__rr@s  rrzC.__ge__arr
Nrrr
rrrZrr
rc$eZdZdZdZdZdZdS)VzVirtual subclass of Bc:|dtS)NV.__eq__rr@s  rr_zV.__eq__grr
c:|dtS)NzV.__le__rr@s  rrzV.__le__jrr
c:|dtS)NV.__ge__rr@s  rrzV.__ge__mrr
N)r`rarbrcr_rrrr
rrresGr
rceZdZdZdS)OperationOrderTestscp|ttttddg|ttttddg|ttttddg|tttt
ddg|ttt
tddg|ttttddg|ttttddg|ttttddg|tttt
ddg|ttt
td	dg|ttt|ttttdd
g|ttttddgdS)Nrrrrrrrrrrr)
rurrrrrrrw
issubclassrr*s rtest_comparison_ordersz*OperationOrderTests.test_comparison_orderstsRA..Z0HIIIRA..Z0HIIIRA..Z0HIIIRA..Z0HIIIRA..Z0HIIIRA..Z0HIIIRA..Z0HIIIRA..Z0HIIIRA..Z0HIIIRA..Z0HIII
1a(()))RA..Z0HIIIRA..Z0HIIIIIr
N)r`rarbrrr
rrrss(JJJJJr
rceZdZdZdZdS)SupEqzClass that can test equalitycdSNTrr@s  rr_zSupEq.__eq__tr
Nr`rarbrcr_rr
rrrs)&&r
rceZdZdZdZdS)Sz"Subclass of SupEq that should failNrrr
rrr,,
FFFr
rceZdZdZdS)Fz'Independent class that should fall backN)r`rarbrcrr
rrrs1111r
rceZdZdZdZdS)Xz"Independent class that should failNrrr
rrrrr
rceZdZdZdZdS)SNz>Subclass of SupEq that can test equality, but not non-equalityN)r`rarbrc__ne__rr
rrrsHH
FFFr
rceZdZdZdZdZdS)XNz>Independent class that can test equality, but not non-equalitycdSrrr@s  rr_z	XN.__eq__rr
N)r`rarbrcr_rrr
rrrs(HH
FFFr
rceZdZdZdZdZdS)FallbackBlockingTestsz#Unit tests for None method blockingcttttf\}}}}|||||||||||||tt|||tt|||tt||dSr)rrrrruassertRaisesr"r)r$efsrs     rtest_fallback_rmethod_blockingz4FallbackBlockingTests.test_fallback_rmethod_blockingsWWacc133+
1aAAAA)RA...)RA...)RA.....r
cttt}}}|||k|t
t|||t
t|||||k|t
t||dSr)rrrassertFalserr"r)r$rsnxns    rtest_fallback_ne_blockingz/FallbackBlockingTests.test_fallback_ne_blockingsGGRTT244r2a   )RB///)RQ///b!!!)RQ/////r
N)r`rarbrcrrrr
rrrs8--
/
/
/00000r
r__main__)!rcroperatorrrrabcrrrrrobjectrTestCaserirrrrrrregisterrrrrrrrrr`mainrr
r<module>rsb??





ggggg&gggRe+e+e+e+e+(#e+e+e+T													7												









1


JJJJJ(+JJJ&F
2222222200000H-000.zHMOOOOOr