python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_fractions.cpython-311.opt-2.pyc

eN	ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZm
Z
ddlZddlmZmZejZGddeZGdd	eZGd
dejZdZGd
dejZedkrejdSdS))Decimal)requires_IEEE_754N)copydeepcopy)dumpsloadscJeZdZ	dZdZdZdZdZdZdZ	dZ
d	ZeZd
S)
DummyFloatc\t|tstd||_dS)Nz-DummyFloat can only be initialized from float)
isinstancefloat	TypeErrorvalueselfrs  G/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_fractions.py__init__zDummyFloat.__init__s/%''	MKLLL


ct|tjr)|t|j|St|tr||j|jStSN)rnumbersRationalF
from_floatrr
NotImplemented)rotherops   r_richcmpzDummyFloat._richcmpseeW-..	"2all4:..666
z
*
*	"2dj%+...!!rcB||tjSr)roperatoreqrrs  r__eq__zDummyFloat.__eq__#DMM%$E$EErcB||tjSr)rr ler"s  r__le__zDummyFloat.__le__$r$rcB||tjSr)rr ltr"s  r__lt__zDummyFloat.__lt__%r$rcB||tjSr)rr ger"s  r__ge__zDummyFloat.__ge__&r$rcB||tjSr)rr gtr"s  r__gt__zDummyFloat.__gt__'r$rcdSrrs r	__float__zDummyFloat.__float__*rcdSrr2r"s  r__sub__zDummyFloat.__sub__.r5rN)
__name__
__module____qualname__rrr#r'r*r-r0r4r7__rsub__r2rrr
r
sB
"""FEEEEEEEEEEEEEEHHHFFFHHHrr
c:eZdZ	dZdZdZdZdZdZdZ	dS)	
DummyRationalcXtj||}||z|_||z|_dSr)mathgcdnumden)rrArBgs    rrzDummyRational.__init__6s-HS#!8!8rct|tjr |j|jko|j|jkStSr)r	fractionsFractionrA
_numeratorrB_denominatorrr"s  rr#zDummyRational.__eq__;sCeY/00	"H 003H 22
4"!rcB|j|jz|j|jzkSrrArHrBrGr"s  rr*zDummyRational.__lt__B!x%,,tx%:J/JJKrcB|j|jz|j|jzkSrrJr"s  rr0zDummyRational.__gt__ErKrcB|j|jz|j|jzkSrrJr"s  rr'zDummyRational.__le__H!x%,,5;K0KKLrcB|j|jz|j|jzkSrrJr"s  rr-zDummyRational.__ge__KrNrcdSrr2r3s rr4zDummyRational.__float__Pr5rN)
r8r9r:rr#r*r0r'r-r4r2rrr=r=3sK
"""LLLLLLMMMMMM
88888rr=ceZdZdS)
DummyFractionN)r8r9r:r2rrrRrRSs@@rrRc|j|jfSr)	numeratordenominator)rs r_componentsrWWs
K''rceZdZdZdZdZdZedZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'd%S)&FractionTestc	|t|t||||dSr)assertEqualtyperexpectedactuals   rassertTypedEqualszFractionTest.assertTypedEquals]sCBhf6666*****rc		||||ttt|ttt|dSr)assertTupleEqualassertListEquallistmapr\r]s   rassertTypedTupleEqualsz#FractionTest.assertTypedTupleEqualsbs[Ph///T#dH"5"566Sv=N=N8O8OPPPPPrc		||i||d|jzdS#|$r.}||t|Yd}~dSd}~wwxYw)Nz
%s not raised)failr8r[str)rexc_typemessagecallableargskwargses       rassertRaisesMessagez FractionTest.assertRaisesMessagegsN	;Hd%f%%%
IIo(99:::::	.	.	.Wc!ff---------	.s*A#AAc|dtt|dttd|dtttdd|dttdd|dttdd|d	ttd
d
|dttdd
|dttdd|dttd|dtttddd|dttdtdd|dtttddtdd|tdtdd|ttd|ttd d|ttdd!|ttdd"|ttddddS)#Nr)rsrtrtrv)rsrwrs)rsrs)rs
)rtr|)m+?Rrsr})rvM)rzry	)i	i	cqzFraction(12, 0)ry?@3/2yy?)r[rWrrpZeroDivisionErrorassertRaisesrr3s rtestInitzFractionTest.testInitqsQSS!1!1222QqTT!2!2333QqAwwZZ!8!8999+aAhh"7"7888+a2hh"7"7888Qr2YY!7!7888Qq"XX!6!6777+a2hh"7"7888k!F))&<&<===+a!Qnn"="=>>>+a1S!99oo">">???{1Qr1XXqc{{3K3K'L'LMMM  !24E!"B	+	+	+)Q111)Qq111)Q2...)Q2...)Q1a00000rc:|dttd|dttd|dttd|tttd|tttd|tttd	dS)
N)rzry@rr)L33fl皙?naninf-inf)r[rWrr
ValueErrorr

OverflowErrorr3s rtestInitFromFloatzFractionTest.testInitFromFloatsQsVV!4!4555QtWW!5!5666>$QsVV,,	.	.	.	
*au666-E%LL999-E&MM:::::rc
|dtttd|dtttd|dtttd|t
ttd|t
ttd|tttd	|tttd
dS)N)rr{z1.1)rtz3.5e-2rrz.000e20rsnanrr)r[rWrrrrrr3s rtestInitFromDecimalz FractionTest.testInitFromDecimals$Qwu~~%6%677	9	9	9$Qwx'8'8%9%9::	<	<	<$Qwy'9'9%:%:;;	=	=	=	
*a888*a999-GENN;;;-GFOO<<<<<rc<|dttd|dttd|dttd|dttd|dttd	|d
ttd|dttd
|dttd|dttd|dttd|dttd|dttd|dttd|dttd|dttd|dttd|dttd |d!ttd"|d#ttd$|d#ttd%|td&td'|t
d(td)|t
d*td+|t
d,td-|t
d.td/|t
d0td1|t
d2td3|t
d4td5|t
d6td7|t
d8td9|t
d:td;|t
d<td=|t
d>td?|t
d@tdA|t
dBtdC|t
dDtdE|t
dFtdG|t
dHtdI|t
dJtdK|t
dLtdM|t
dNtdO|t
dPtdQ|t
dRtdS|t
dTtdUdV}|t
dW|zdXzt||t
dY|zdXztdZ|z|t
d[|zdXztd\|z|t
d]|zdXztd^|zdS)_N)rzrs5)rvryrz 
  +3/2)ryz-3/2  )
ryz    013/02 
  )rzz 3.2 )irzz -3.2 )rrsz -3. )rvrzz .6 )rsi5z32.e-5)i@Brsz1E+06)irsz-1.23e4rrz .0e+0	z-0.000e0){rs1_2_3))kz1_2_3/3_2_1)iz3.14_15)rl@9Hz3.14_15e-1_0)edz1.01z1.0_1zFraction(3, 0)z3/0z"Invalid literal for Fraction: '3/'z3/z"Invalid literal for Fraction: '/2'z/2z$Invalid literal for Fraction: '3 /2'z3 /2z$Invalid literal for Fraction: '3/+2'z3/+2z%Invalid literal for Fraction: '+ 3/2'z+ 3/2z#Invalid literal for Fraction: '3a2'3a2z%Invalid literal for Fraction: '3/7.2'z3/7.2z%Invalid literal for Fraction: '3.2/7'z3.2/7z!Invalid literal for Fraction: '.'.z!Invalid literal for Fraction: '_'_z"Invalid literal for Fraction: '_1'_1z$Invalid literal for Fraction: '1__2'1__2z"Invalid literal for Fraction: '/_'z/_z#Invalid literal for Fraction: '1_/'z1_/z#Invalid literal for Fraction: '_1/'z_1/z%Invalid literal for Fraction: '1__2/'z1__2/z#Invalid literal for Fraction: '1/_'z1/_z$Invalid literal for Fraction: '1/_1'z1/_1z&Invalid literal for Fraction: '1/1__2'z1/1__2z&Invalid literal for Fraction: '1._111'z1._111z&Invalid literal for Fraction: '1.1__1'z1.1__1z'Invalid literal for Fraction: '1.1e+_1'z1.1e+_1z)Invalid literal for Fraction: '1.1e+1__1'z	1.1e+1__1399999999999999999999999999999999999999999999999999_zInvalid literal for Fraction: ''z!Invalid literal for Fraction: '1/z1/z!Invalid literal for Fraction: '1.z1.z$Invalid literal for Fraction: '1.1+ez1.1+e)r[rWrrprr)rvals  rtestFromStringzFractionTest.testFromStrings'QsVV!4!4555QuXX!6!6777Q{^^!<!<===+akk":":;;;+a0A.B.B"C"CDDD+ajj"9"9:::;q{{#;#;<<<+ajj"9"9:::QvYY!7!7888K($<$<==={1W::'>'>???k!I,,&?&?@@@Qz]]!;!;<<<Qz]]!;!;<<<;qzz#:#:;;;K-0@0@$A$ABBB{1Y<<'@'@AAA);q7H7H+I+IJJJ[6%;%;<<<[7%<%<===  /
u				
  <
t				
  <
t				
  >
v				
  >
v				
  ?
w				
  =
u				
  ?
w				
  ?
w				
  ;
s				
  ;
s				
  <
t				
  >
v				
  <
t				
  =
u				
  =
u				
  ?
w				
  =
u				
  >
v				
  @
x				
  @
x				
  @
x				
  A
y				
  C
{			  9C?#E
s				
  ;cACG
tcz				
  ;cACG
tcz				
  >DsJ
w}					rctdd}|dd|dt||t
t|dd|t
t|dd	|dt|d
|_d|_|dt||	td
d|dS)Nrtrvryr|rurTrrU)rry)
rrr[rWrAttributeErrorsetattrrGrHassertNotEqualrrVs  r
testImmutablezFractionTest.testImmutables
aGG	

1bQ000.'1k2FFF.'1mQGGGQ000Q000AaGGQ'''''rc|ttjd|dttdd}||dftt||dttd|dttd|d	ttd
|dttd|t
d
t
td|dttd|dt
tdd}||z
}|tdtj||tdtj||tdtj|dS)N@@)r{rsr{l{C	rsrrr$@)ryg)ll+?RrsJ-Dr})rl g	@g(cannot convert Infinity to integer ratio#cannot convert NaN to integer ratio)
rrrrr[rWr
rprr)rbigintrrs    r
testFromFloatzFractionTest.testFromFloat%sB)Q\4888+all2.>.>"?"?@@@$&!k!,,v2F2F&G&GHHHQ\\$-?-?!@!@AAA+all4.@.@"A"ABBB+all4.@.@"A"ABBB5$Q\\$%7%788	:	:	:vall4.@.@(A(ABBB=$Q\\#%6%677	9	9	9eALL$5$566777Ci  E
L#				
  E
L3$	 	 	 	
  =
L#					rcF|ttjd|tddtd|tdttd|tddttd|tddttd	|td
ttd|dtddz
ttd
|tdtjtd|tdtjtd|tdtjtd|tdtjtddS)Nrr{rsrz-0rzz0.5iz5e-3i5e3l73Me'z 0.999999999999999999999999999999rrrrrr)	rrrfrom_decimalr[rrprrr3s rtestFromDecimalzFractionTest.testFromDecimalAs)Q^T:::2q1>>"#5#56661q~~gdmm<<===1b1>>'%..#A#ABBB1dQ^^GFOO%D%DEEE4!.."@"@AAAQq&\\)(@(@AA	C	C	C	
  E
NGENN	,	,	,	
  E
NGFOO	-	-	-	
  =
NGENN	,	,	,	
  =
NGFOO	-	-	-	-	-rc|tddd|tddd|tddd|tddddS)	Nrr)ryrv)rxrvirrr)r[ras_integer_ratior3s rtest_as_integer_ratioz"FractionTest.test_as_integer_ratioYs1a1133V<<<2q2244g>>>1b2244g>>>1a1133V<<<<<rctd}||dtdd||dtdd||dtdd||dtdd|td	d
dtd|td	d
d
tdd
|tddtddD]1}|tdtdj|2dS)Nz3.1415926535897932i'rripiMjrrrsrfr)rrwz$max_denominator should be at least 1)rr[limit_denominatorrpr)rrpiis   rtestLimitDenominatorz!FractionTest.testLimitDenominator_s$%%..u55qc{{CCC#//666$EEE..s33QsC[[AAA..s33QsC[[AAA366s;;QqTTBBB366s;;QsC[[III1//66!===	+	+A$$B!&
+
+
+
+	+	+rc|dtjtdd|dtjtdd|dtjtdd|dtjtdd|dtjtdd|dt
tdd|dttdd|dttd	d|dttd
d|dttdd|dttdd|d
ttdd|dttdd|ttt
d|
dttt
dt
d|dttdddS)Nrwir{rsrrxrrrFTrvryr22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222227gUUUUUU?33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331?)r`r?truncrfloorceilintroundr[boolr
rrassertAlmostEqualcomplexr3s rtestConversionszFractionTest.testConversionsmsr4:aRjj#9#9:::q$*Qr2YY"7"7888r4:aRjj#9#9:::r49QsBZZ#8#8999r49QsBZZ#8#8999r3qbzz??333q%"b		"2"2333q%"b		"2"2333r53#4#4555r52r#3#3444Qq!WW

...tAaGG}}---sE!Ar((OO444	
-K0@0@AAAu$Qs;'7'7[9I9I%J%JKK	M	M	M	
vwq2ww'7'788888rctdd}||tj|t|d|t
t|t
dS)Nrvryrs)rassertIsInstancetypingSupportsIntr[rr\)rfs  rtestSupportsIntzFractionTest.testSupportsIntsl
aGGa!3444Q###c!ffs+++++rcGfddttdd}||j||j||t
j|t|d|tt|tdS)NcVeZdZ	edZefdZfdZfdZdS):FractionTest.testIntGuaranteesIntReturn.<locals>.CustomIntc|Srr2r3s rrTzDFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.numeratorsrcdSNrsr2)r	CustomInts rrUzFFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.denominators y||#rcTt|t|zSrrrrrs  r__mul__zBFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__mul__s$ yTSZZ!7888rcTt|t|zSrrrs  r__floordiv__zGFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__floordiv__s$ yTc%jj!8999rN)r8r9r:propertyrTrUrr)rsrrrs


X

$
$
$
$X
$
9
9
9
9
9
:
:
:
:
:
:
:rrrrzry)	rrrrTrUrrr[r\)rrrs  @rtestIntGuaranteesIntReturnz'FractionTest.testIntGuaranteesIntReturns
	:	:	:	:	:	:	:	:	:	:*
iimmYYq\\**ak9555amY777a!3444Q###c!ffs+++++rctjGdd}tj||d}t|}||j||t|d|d}t|}|t|ddS)Nc>eZdZdZdZdZedZdZeZ	dS)=FractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValuersc||_dSr)rrs  rrzFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__init__s
"


rc*t|jSr)rrr3s r__bool__zFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__bool__sDJ'''rc|Srr2r3s rrTzGFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.numerators	rc td)Nz&Avoid comparisons in Fraction.__bool__)AssertionErrorr"s  rr#zDFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__eq__s$%MNNNrN)
r8r9r:rUrrrrTr#r*r2rrCustomValuerseK
#
#
#
(
(
(

X

O
O
OFFFrrrsTrF)		functoolstotal_orderingrrregisterrassertIsrTr)rrrTrVs    rtestBoolGuarateesBoolReturnz(FractionTest.testBoolGuarateesBoolReturns
	!							
"	!	(	!!+...KNN	
iLL

ak9---

d1ggt$$$KNN	
iLL

d1ggu%%%%%rc	z|tdttdd|tdttdd|tdttdd|tddttd	d
d|tddttdd
ddS)
Ni8ijrxirwr{rrrsi)r`rrr3s r	testRoundzFractionTest.testRoundsqwwaggr(:(:;;;qwwaggr(:(:;;;quueAbEE2&6&6777qRyy%#sQ*?*?@@@qRyy%#sQ*?*?@@@@@rc
|tddtddtddz|tddtddtddz
|tddtddtddz|tddtddtdd	z|tdd	tddtddz|td
dtdd	tddz|dtd
dtddz|dtddtdz|tddtddtddz|tddtddtddz|tdtddfttddtdd|tdtddfttddtdd|tddtddtdz|tddtddtdz|dtd	tddz|tddtdd
t	tdtdd}||jd||jdtdddz}||tdd||jd||j	dtdddz}||tdd||jd||j	dtdddz}||td	d||jd	||j	ddS)Nrsryr{rzrrrvrrrxrr}rtr@rwr)
r[rr`divmodpowrrealimagrTrU)rzps   rtestArithmeticzFractionTest.testArithmetics1a!Ar((Qq!WW"45552rAaHHqAww$67771b1Q88a1gg#56661a!Aq''AaGG"34441a!Ar((Qq!WW"45553AaGGaAhh$6777q!Ar((a1gg"5666vq||qtt';<<<1a!Aq''AaGG"34441a!B((Qq!WW"4555!A$$!Q&1a!Aq''*B*BCCC!B%%1a)6!B((AaGG+D+DEEE1b1Q77add?3332q1Q77aee#3444sAaDDAaGGO4441a1Q77(+++"qAwwqvq)))###
b!HHMAaGG$$$a(((***
b!HHNAb!HH%%%b)))***
b!HHNAaGG$$$a(((*****rcZ|tddtddzdzdtdddzdz
z|tddtd	d
zdtdd	d
zz|d
tddfttddzdzdtdddzdz
|d	dzdztd	d
zdtdd	d
zz|dtdd	d
ztdd	d
zz|dtd	d	d
zfttdd	d
ztdd	d
z|d	dzdztddfttd	d
zdtdd	d
zdS)Nlb;efOpUmnP|}l~Jw5PHyT#/jei4Tr{#rslP~cegrtlryrrvrzl_rr|)r`rrfr
r3s rtestLargeArithmeticz FractionTest.testLargeArithmeticsT
CK
M
M
b"fQh!!AhBq$9$99	
	
	

	

a011
q#vgqMMAaCLL(	
	
	
	
##

DLNN
O
1RVAXx((!Hb"fQh*?*?@@		
	
	
	

#XIO
q#vgqMMQq!S&\\)	
	
	
	


aCLLAaCLL(	
	
	
	

!QV1Q3<<1af..	
	
	
	
##3hY"_
q1
2
2
41afWa==!Aq#v,,//	
	
	
	
	
rc
|tddtdddz|dtdddz|dtdddz|tdddtddz|ddtddz|ddtddz|tddtdddz
|d	tdddz
|d
tdddz
|tdddtddz
|ddtddz
|d
dtddz
|tddtdddz|dtdddz|dtdddz|tdddtddz|ddtddz|ddtddz|tddtdddz|dtdddz|dtdddz|tdddtddz|ddtddz|ddtddz|dtdddz|dtdddz|ddtddz|ddtddz|ddtddz|tddtdddz|dtdddz|tdddtddz|ddtddz|dtddtdz|tdtddtdz|tdtddtdz|dtddtdz|dtddft	tddd|t	ddt	tddd|dtdft	dtdd|t	ddt	dtdd|t	dtdt	tddtd|t	dtdt	tddtd|t	dtdt	tddtd|t	dtdt	tddtd|tddtdddz|tddtdddz|dtdddz|dtdddz|ddtddztdtdd}|d|j|d|j	|tdddtddz|d dtddz|d!d tddz|ddtddz|
ttjtddddS)"Nrr{rsg?g?y?y?rgyrg?y?rrry$@rr}ld&O!g"@g?rrrwgrrxryrrg?)
r`rr
rfr
rrrr[rrrr )rrs  rtestMixedArithmeticz FractionTest.testMixedArithmetics
	qRyy!Ar((Q,777sAaHHsN333x1bX)>???qRyy!a2hh,777sC!Ar((N333x(a2hh)>???qRyy!Ar((Q,777tQq"XX^444y!Ar((h*?@@@qBxxQq"XX666sC!Ar((N333x(a2hh)>???qBxx1bA666sAaHHsN333x1bX)>???qBxxQq"XX666sC!Ar((N333x(a2hh)>???qBxx1bA666sAaHHsN333x1bX)>???qQxxQq"XX666tS1Q88^444y8qBxx*?@@@q!Ar((a-000sAaHHO444r1!R=111vv1b'9:::z3!Ar((?;;;qBxx1bA666sAaHHsN333qAwwAaHH555y#!R.999sAaHHuU||$;<<<uV}}a2hhv.FGGGuU||Qr2YYu-EFFFtQr2YYv%>???##Q!RM6!Ar((A3F3FGGG##F3$4$4fQq"XXs6K6KLLL##R1Jq!Ar((0C0CDDD##F3$4$4fS!Ar((6K6KLLL##F3e$=$=va2hhPUV[P\P\?]?]^^^##F3f

$>$>qBxxQVW]Q^Q^@_@_```##F4u$>$>qRyyRWX]R^R^@_@_```##F4v$?$?"b		SXY_S`S`AaAabbb	
qayy!Ar((b.999qayy!B((a-888sAaHHO444x1bh)?@@@q1!Q<000AaGGq!&)))AF###qAwwaAhh777sQ!Aq''\222tSAb!HH_555x(qBxx)?@@@+X\Aq''2	'	'	'	'	'rc	|ttjt	ddtd|ttjtdt	dddS)Nrvrz	3.1415926)rrr addrrr3s rtestMixingWithDecimalz"FractionTest.testMixingWithDecimalbsr)X\Ab''7;#7#7	9	9	9)X\!+..!B	9	9	9	9	9rc|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddkdS)Nrsryrv)
assertTruerassertFalser3s rtestComparisonszFractionTest.testComparisonsiso!Q!Aq'')***1a1Q77*+++!Q1Q77*+++!Q1Q77*+++1aAaGG+,,,!Q1Q77*+++1aAaGG+,,,1aAaGG+,,,!Q1Q77*+++++rc|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddk|tddtddkdS)Nrsryrvrrt)rrr=rr3s rtestComparisonsDummyRationalz)FractionTest.testComparisonsDummyRationalts!Q=A#6#66777
a++qAww67771aM!Q$7$77888q!,,!Q7888!Q-1"5"556661a=A#6#667771a=A#6#667771a=A#6#667771a=A#6#66777!Q-1"5"55666!Q=A#6#66777!Q=A#6#667771aM!Q$7$778881aM!Q$7$77888!Q=A#6#66777!Q=A#6#66777
a++a1gg5666q!,,qAww6777q!,,qAww6777q!,,qAww6777q!,,qAww6777
a++a1gg5666
a++qAww6777
a++qAww6777q!,,!Q7888q!,,!Q7888
a++qAww6777
a++qAww677777rctd}tdd}|||k|||kp||k|||k|||ko||k|||k|||kp||k|||k|||ko||kdS)NgUUUUUU?rsrv)r
rrr)rxys   rtestComparisonsDummyFloatz&FractionTest.testComparisonsDummyFloatsu
aGGQAQ'''a   a*AF+++QAQ'''a   a*AF+++++rc|dtddk|dtddk|tdddk|tdddk|tdddk|tdddk|dtddk|dtddk|td	tddk|td
tddk|td
tddk|tddtd	k|tddtd
k|tddtd
kdS)Nryrzrrvrs333333?皙??rrrr{rrrtrrrrr
r3s r
testMixedLesszFractionTest.testMixedLesssAaGG$$$Qq!WW%%%!Q!$$$1a1%%%!Q#
&&&1a3'''a1gg
&&&qAww'''u!Q/000f

!R0111u"a0111!Q%,,.///2rU6]]23333uU||344444rc|dtddk|dtddk|tdddk|tdddk|dtddk|dtddk|tdddk|tdddk|td	tddk|td
tddk|td
tddk|tddtd	k|tddtd
k|tddtd
kdS)Nr*rsryr(r)rrvrzrrrr{rrrtr+rr,r-r.r3s rtestMixedLessEqualzFractionTest.testMixedLessEqualsqAww'''!Q(((!Q3'''1aC(((Qq!WW%%%a1gg&&&!Q1%%%1aA&&&u1a0111f

1b1222u2q1222!Q5<</0002reFmm34443e455555rc
|tdtdk|dtttjddzk|dttjddzk|dttjddz
k|dttjddz
k|dttjddzkdS)Nr}rrs)rrr
r?rrr3s rtestBigFloatComparisonsz$FractionTest.testBigFloatComparisonss!6eFmm3444a
4(8(81(<&=&= > >>???qD!1!1A!56667774:d#3#3a#7!8!88999qD!1!1A!56667774:d#3#3a#7!8!8899999rc|tdtdk|tt
jtdtd|tt
jtdtdtdd}tdd}tdd}|||k|||k|||k|||kt
j	t
jt
jt
j
fD]v}|t||||t||||t||||t|||wdS)Nr}rvr
g?rg?)rrrrrr r/r&rr)r,)rr$rwrs     rtestBigComplexComparisonsz&FractionTest.testBigComplexComparisonss6gfoo5666)X[!F))WV__MMM)X[!F))WV__MMM
aGGE3E3Qa   a   Q+x{HKD	3	3BiQ222iQ222iQ222iQ2222		3	3rc|dtddk|dtddk|tdddk|tdddk|dtddk|dtddk|tdddk|tdddk|tddtd	k|td	tdd
k|tddtdk|tdtddkdS)
Nr*rsryr(r)rrvrzrrtrrr.r3s rtestMixedEqualzFractionTest.testMixedEqualsqAww'''!Q(((!Q3'''1aC(((Qq!WW%%%a1gg&&&!Q1%%%1aA&&&1aE%LL0111u1a01111aE%LL0111v!Aq''122222rc	|dttdd|dttd|dttdd|d	ttdd|d
ttdddS)NzFraction(7, 3)rtrvz Fraction(6283185307, 2000000000)z3.1415926535z#Fraction(-1, 100000000000000000000)rsl Fx:^Vz7/37)r[reprrrir3s rtestStringificationz FractionTest.testStringifications)4!Q==999;a//00	2	2	2>a7mm,,	.	.	.AaGG---c!Aq''ll+++++rc	tjj}tjj}|tdtt
dd|tddztt
ddz|ttdtt
d||tt
d||tt
dt
d	dS)	Nrrzryr{2r}rsrw)
sys	hash_infomodulusrr[hashrrr
__hash__)rhmodhinfs   rtestHashzFractionTest.testHashs}$} cD1aMM222b"ftAb"fII777Dv//aiiAAAtAaJJ//000	
aeeaeenn&6&677777rc\td}d|dddddf\}}}}}}}t||z
tddkrG|}||z|dz}}||z|dz}}||z|z}||z
}t||z
tddkG|tj|dS)Nrvrrsʚ;r
 )rabsrr?pi)	rthreelaststsnnaddas	         rtestApproximatePizFractionTest.testApproximatePis!$%uaAq"$<!q!QAr!e)nnqE{{**EbD"Q$rAbD"R%rAQ!A
FA!e)nnqE{{**	
tw*****rctd}ddtddddf\}}}}}}t||z
tddkrN|}|dz
}|||dz
zz}|||zz}|dz}|||z|zz
}t||z
tddkN|tjd|dS)NrsrrIryrw)rrKrr?cos)rr$rrNrPfactrAsigns        rtestApproximateCos1z FractionTest.testApproximateCos1s
aDD'(!QqTT1a':$5!T3!e)nnqE{{**E
FAA1ID1q5LCBJD
td""A
!e)nnqE{{**	
tx{{A.....rc
\tdd}tdd}tdtjdzD]3}||t
t||4|t|tt||t|tt||t|tt||t|tt|||t|||t|dS)Nrrtrrs)
rrRrangepickleHIGHEST_PROTOCOLr[rridrrrr`)rrVdrprotos    rtest_copy_deepcopy_picklez&FractionTest.test_copy_deepcopy_picklesH
b!HH
2q
!
!1f59::	8	8EQeAuoo 6 67777A477,,,A8A;;000BrFFBtBxxLL111BrFFBx||$4$4555r488,,,r8B<<00000rcltdd}|tt|dddS)Nrrtar{)rrrrrs  r
test_slotszFractionTest.test_slots(s1
b!HH.'1c2>>>>>rcGddt}tj|d|d}||jd||jd|t
|j||t
|j|dS)NcLeZdZdZdZdZedZedZdS)-FractionTest.test_int_subclass.<locals>.myintclt|t|t|zSrr\rr"s  rrz5FractionTest.test_int_subclass.<locals>.myint.__mul__/s)!tDzz#d))c%jj"8999rclt|t|t|zSrrjr"s  rrz:FractionTest.test_int_subclass.<locals>.myint.__floordiv__1s)!tDzz#d))s5zz"9:::rcpt|t|t|z}|Srrj)rrr$s   r__mod__z5FractionTest.test_int_subclass.<locals>.myint.__mod__3s-DJJs4yy3u::566rcLt|t|Srrjr3s rrTz7FractionTest.test_int_subclass.<locals>.myint.numerator6s!tDzz#d)),,,rc2t|dSr)r\r3s rrUz9FractionTest.test_int_subclass.<locals>.myint.denominator9s!tDzz!}}$rN)	r8r9r:rrrmrrTrUr2rrmyintrh.su
:
:
:
;
;
;



-
-X
-

%
%X
%
%
%rrprvrrsry)rrErFr[rTrUr\)rrprs   rtest_int_subclasszFractionTest.test_int_subclass-s
	%
	%
	%
	%
	%C
	%
	%
	%
uuU||UU5\\::a(((***ak**E222am,,e44444rN)(r8r9r:r`rfrprrrrrrrrrrrrrrrrrrrr r"r&r/r1r3r6r8r<rFrUrZrbrerqr2rrrYrY[sP+++
QQQ
;;;1112;;;===qqqf((( 8---0===+++9990,,, , , ,D"&"&"&HAAA + + +D 
 
 
DC'C'C'J999	,	,	,888@
,
,
,555$666":::333$333,,,	8	8	8+++///
1
1
1???
55555rrY__main__)decimalrtest.supportrr?rr rErr?runittestrrr]rrrFrobjectr
r=rRrWTestCaserYr8mainr2rr<module>rys!******












@88888F888@AAAAAI&AAA(((f5f5f5f5f58$f5f5f5RzHMOOOOOr