python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_fractions.cpython-312.opt-2.pyc

ΑeR	ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZm
Z
ddlZddlmZmZej"ZGddeZGdd	eZGd
dej"ZdZGd
dej0Zedk(rej6yy))Decimal)requires_IEEE_754N)copydeepcopy)dumpsloadscHeZdZ	dZdZdZdZdZdZdZ	dZ
d	ZeZy
)
DummyFloatcHt|tstd||_y)Nz-DummyFloat can only be initialized from float)
isinstancefloat	TypeErrorvalueselfrs  G/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_fractions.py__init__zDummyFloat.__init__s%'KLL
ct|tjr&|tj	|j
|St|tr||j
|j
StSN)rnumbersRationalF
from_floatrr
NotImplemented)rotherops   r_richcmpzDummyFloat._richcmpsQeW--.all4::.66
z
*djj%++..!!rcB|j|tjSr)roperatoreqrrs  r__eq__zDummyFloat.__eq__#DMM%$EErcB|j|tjSr)rr ler"s  r__le__zDummyFloat.__le__$r$rcB|j|tjSr)rr ltr"s  r__lt__zDummyFloat.__lt__%r$rcB|j|tjSr)rr ger"s  r__ge__zDummyFloat.__ge__&r$rcB|j|tjSr)rr gtr"s  r__gt__zDummyFloat.__gt__'r$rcyrrs r	__float__zDummyFloat.__float__*rcyrr2r"s  r__sub__zDummyFloat.__sub__.r5rN)
__name__
__module____qualname__rrr#r'r*r-r0r4r7__rsub__r2rrr
r
s2B
"FEEEEHFHrr
c8eZdZ	dZdZdZdZdZdZdZ	y)	
DummyRationalcXtj||}||z|_||z|_yr)mathgcdnumden)rrArBgs    rrzDummyRational.__init__6s(HHS#!8!8rct|tjr4|j|jk(xr|j
|jk(StSr)r	fractionsFractionrA
_numeratorrB_denominatorrr"s  rr#zDummyRational.__eq__;sHeY//0HH 0 003HH 2 22
4"!rch|j|jz|j|jzkSrrArHrBrGr"s  rr*zDummyRational.__lt__B+xx%,,,txx%:J:J/JJKrch|j|jz|j|jzkDSrrJr"s  rr0zDummyRational.__gt__ErKrch|j|jz|j|jzkSrrJr"s  rr'zDummyRational.__le__H+xx%,,,5;K;K0KKLrch|j|jz|j|jzk\SrrJr"s  rr-zDummyRational.__ge__KrNrcyrr2r3s rr4zDummyRational.__float__Pr5rN)
r8r9r:rr#r*r0r'r-r4r2rrr=r=3s,K
"LLMM
8rr=ceZdZy)
DummyFractionN)r8r9r:r2rrrRrRSs@rrRc2|j|jfSr)	numeratordenominator)rs r_componentsrWWs
KK''rceZdZdZdZdZdZedZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'd%Z(d&Z)d'Z*d(Z+d)Z,d*Z-y+),FractionTestcr	|jt|t||j||yr)assertEqualtyperexpectedactuals   rassertTypedEqualszFractionTest.assertTypedEquals]s-Bhf66*rc		|j|||jttt|ttt|yr)assertTupleEqualassertListEquallistmapr\r]s   rassertTypedTupleEqualsz#FractionTest.assertTypedTupleEqualsbs=Ph/T#dH"56Sv=N8OPrc		||i||jd|jzy#|$r%}|j|t|Yd}~yd}~wwxYw)Nz
%s not raised)failr8r[str)rexc_typemessagecallableargskwargses       rassertRaisesMessagez FractionTest.assertRaisesMessagegsYN	;d%f%
IIo(9(99:	.Wc!f--	.s*AAAc(|jdtt|jdttd|jdtttdd|jdttdd|jdttdd|jd	ttd
d
|jdttdd
|jdttdd|jdttd|jdtttddd|jdttdtdd|jdtttddtdd|jtdtdd|jttd|jttd d|jttdd!|jttdd"|jttdddy)#Nr)rsrtrtrv)rsrwrs)rsrs)rs
)rtr|)m+?Rrsr})rvM)rzry	)i	i	cqzFraction(12, 0)ry?@3/2yy?)r[rWrrpZeroDivisionErrorassertRaisesrr3s rtestInitzFractionTest.testInitqsQS!12QqT!23QqAwZ!89+aAh"78+a2h"78Qr2Y!78Qq"X!67+a2h"78k!F)&<=+a!Qn"=>+a1S!9o">?{1Qr1Xqc{3K'LM  !24E!"B	+)Q1)Qq1)Q2.)Q2.)Q1a0rc|jdttd|jdttd|jdttd|jtttd|jtttd|jtttd	y)
N)rzry@rr)L33fl皙?naninf-inf)r[rWrr
ValueErrorr

OverflowErrorr3s rtestInitFromFloatzFractionTest.testInitFromFloatsQsV!45QtW!56>$QsV,	.	
*au6-E%L9-E&M:rc
2|jdtttd|jdtttd|jdtttd|j	t
ttd|j	t
ttd|j	tttd	|j	tttd
y)N)rr{z1.1)rtz3.5e-2rrz.000e20rsnanrr)r[rWrrrrrr3s rtestInitFromDecimalz FractionTest.testInitFromDecimals$Qwu~%67	9$Qwx'8%9:	<$Qwy'9%:;	=	
*a8*a9-GEN;-GFO<rc|jdttd|jdttd|jdttd|jdttd|jdttd|jd	ttd
|jdttd|jd
ttd|jdttd|jdttd|jdttd|jdttd|jdttd|jdttd|jdttd|jdttd|jdttd|jd ttd!|jd"ttd#|jd$ttd%|jd$ttd&|jtd'td(|jt
d)td*|jt
d+td,|jt
d-td.|jt
d/td0|jt
d1td2|jt
d3td4|jt
d5td6|jt
d7td8|jt
d9td:|jt
d;td<|jt
d=td>|jt
d?td@|jt
dAtdB|jt
dCtdD|jt
dEtdF|jt
dGtdH|jt
dItdJ|jt
dKtdL|jt
dMtdN|jt
dOtdP|jt
dQtdR|jt
dStdTdU}|jt
dV|zdWzt||jt
dX|zdWztdY|z|jt
dZ|zdWztd[|z|jt
d\|zdWztd]|zy)^N)rzrs5)rvryrz3 / 2z 
  +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'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$QsV!45QuX!67QwZ!89Q{^!<=+ak":;+a0A.B"CD+aj"9:;q{#;<+aj"9:QvY!78K($<={1W:'>?k!I,&?@Qz]!;<Qz]!;<;qz#:;K-0@$AB{1Y<'@A);q7H+IJ[6%;<[7%<=  /
u		
  <
t		
  <
t		
  >
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}|jdd|jdt||j	t
t|dd|j	t
t|dd	|jdt|d
|_d|_|jdt||jtd
d|y)Nrtrvryr|rurTrrU)rry)
rrr[rWrAttributeErrorsetattrrGrHassertNotEqualrrVs  r
testImmutablezFractionTest.testImmutables
aG	

1bQ0.'1k2F.'1mQGQ0Q0AaGQ'rc|jttjd|j	dttjdd}|j	|dfttj||j	dttjd|j	dttjd|j	d	ttjd
|j	dttjd|j	t
d
t
tjd|j	dttjd|j	dt
tjdd}||z
}|jtdtj||jtdtj||jtdtj|y)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#s)Q\\48+all2.>"?@$&!k!,,v2F&GHQ\\$-?!@A+all4.@"AB+all4.@"AB5$Q\\$%78	:vall4.@(AB=$Q\\#%67	9eALL$567Ci  E
LL#		
  E
LL3$	 	
  =
LL#	rcV|jttjd|j	tddtjd|j	tdtjtd|j	tddtjtd|j	tddtjtd	|j	td
tjtd|j	dtddz
tjtd
|j
tdtjtd|j
tdtjtd|j
tdtjtd|j
tdtjtdy)Nrr{rsr-0rzz0.5z5e-3i5e3l73Me'z 0.999999999999999999999999999999rrrrrr)	rrrfrom_decimalr[rrprrr3s rtestFromDecimalzFractionTest.testFromDecimal?sx)Q^^T:2q1>>"#561q~~gdm<=1b1>>'%.#AB1dQ^^GFO%DE4!.."@AQq&\)(@A	C	
  E
NNGEN	,	
  E
NNGFO	-	
  =
NNGEN	,	
  =
NNGFO	-rc8|jtddj|jtddj|jtddj|jtddj|jtddj|jtddj|jtddj|jtddj|jtddj|jtddjy)Nrsrwryrx)
assertTruer
is_integerassertFalser3s rtest_is_integerzFractionTest.test_is_integerWs!Q**,-"a++-.!R++-.!Q**,-"a++-.!R++-.1a++-.2q,,./1b,,./2r--/0rcT|jtddjd|jtddjd|jtddjd|jtddjdy)	Nrr)ryrv)rxrvirrr)r[ras_integer_ratior3s rtest_as_integer_ratioz"FractionTest.test_as_integer_ratiods~1a113V<2q224g>1b224g>1a113V<rctd}|j|jdtdd|j|jdtdd|j|jdtdd|j|jdtdd|jtd	d
jdtd|jtd	d
jd
tdd
|jtdjdtddD]-}|jtdtdj|/y)Nz3.1415926535897932i'rripiMjrrrsrfr)rrwz$max_denominator should be at least 1)rr[limit_denominatorrpr)rrpiis   rtestLimitDenominatorz!FractionTest.testLimitDenominatorjs5$%..u5qc{C#//66$E..s3QsC[A..s3QsC[A366s;QqTB366s;QsC[I1//6!=	+A$$B!&&
+	+rc*|jdtjtdd|jdtjtdd|jdtjtdd|jdtj
tdd|jdtj
tdd|jdt
tdd|jdttdd|jdttd	d|jdttd
d|jdttdd|jdttdd|jd
ttdd|jdttdd|jttt
d|jdttt
dt
d|jdttddy)Nrwir{rsrrxrrrFTrvryr22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222227gUUUUUU?33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331?)r`r?truncrfloorceilintroundr[boolr
rrassertAlmostEqualcomplexr3s rtestConversionszFractionTest.testConversionsxsr4::aRj#9:q$**Qr2Y"78r4::aRj#9:r499QsBZ#89r499QsBZ#89r3qbz?3q%"b	"23q%"b	"23r53#45r52r#34Qq!W
.tAaG}-sE!Ar(O4	
-K0@Au$Qs;'7[9I%JK	M	
vwq2w'78rctdd}|j|tj|j	t|d|j	t
t|t
y)Nrvryrs)rassertIsInstancetypingSupportsIntr[rr\)rfs  rtestSupportsIntzFractionTest.testSupportsIntsO
aGa!3!34Q#c!fs+rcGfddttdd}|j|j|j|j|j|t
j|jt|d|jtt|ty)NcHeZdZ	edZefdZfdZfdZy):FractionTest.testIntGuaranteesIntReturn.<locals>.CustomIntc|Srr2r3s rrTzDFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.numeratorsrcdSNrsr2)r	CustomInts rrUzFFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.denominators
 |#rc>t|t|zSrrrrrs  r__mul__zBFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__mul__s TSZ!788rc>t|t|zSrrrs  r__floordiv__zGFractionTest.testIntGuaranteesIntReturn.<locals>.CustomInt.__floordiv__s Tc%j!899rN)r8r9r:propertyrTrUrr)rsrrrs:



$
$
9
:rrrrzry)	rrrrTrUrrr[r\)rrrs  @rtestIntGuaranteesIntReturnz'FractionTest.testIntGuaranteesIntReturns
	:	:*
imYq\*akk95ammY7a!3!34Q#c!fs+rcltjGdd}tjj	||d}t|}|j
|j||j
t|d|d}t|}|j
t|dy)Nc6eZdZdZdZdZedZdZeZ	y)=FractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValuersc||_yr)rrs  rrzFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__init__s	"
rc,t|jSr)rrr3s r__bool__zFFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__bool__sDJJ''rc|Srr2r3s rrTzGFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.numerators	rctd)Nz&Avoid comparisons in Fraction.__bool__)AssertionErrorr"s  rr#zDFractionTest.testBoolGuarateesBoolReturn.<locals>.CustomValue.__eq__s$%MNNrN)
r8r9r:rUrrrrTr#r*r2rrCustomValuers2K
#
(


OFrrrsTrF)		functoolstotal_orderingrrregisterrassertIsrTr)rrrTrVs    rtestBoolGuarateesBoolReturnz(FractionTest.testBoolGuarateesBoolReturns
	!	!		
"	(	!!+.N	
iL

akk9-

d1gt$N	
iL

d1gu%rc	|jtdttdd|jtdttdd|jtdttdd|jtddttd	d
d|jtddttdd
dy)
Ni8ijrxirwr{rrrsi)r`rrr3s r	testRoundzFractionTest.testRoundsqwagr(:;qwagr(:;queAbE2&67qRy%#sQ*?@qRy%#sQ*?@rc
	|jtddtddtddz|jtddtddtddz
|jtddtddtddz|jtddtddtdd	z|jtdd	tddtddz|jtd
dtdd	tddz|jttj
tdtd
|j
dtddtddz|j
dtddtdz|jtddtddtddz|jtddtddtddz|jtdtddfttddtdd|jtdtddfttddtdd|jtddtddtdz|jtddtddtdz|j
dtd	tddz|jtddtddttdtdd}|j|jd
|j|jdtddd
z}|j|tdd|j|jd|j|jdtdddz}|j|tdd|j|jd|j|jdtdddz}|j|td	d|j|jd	|j|jdy)Nrsryr{rzrrrvrrrxrrr}rtr@rw)r[rrrr truedivr`divmodpowrrealimagrTrU)rzps   rtestArithmeticzFractionTest.testArithmetics1a!Ar(Qq!W"452rAaHqAw$671b1Q8a1g#561a!Aq'AaG"341a!Ar(Qq!W"453AaGaAh$67+X-=-=qtQqTJq!Ar(a1g"56vq|qt';<1a!Aq'AaG"341a!B(Qq!W"45!A$!Q&1a!Aq'*BC!B%1a)6!B(AaG+DE1b1Q7ad?32q1Q7ae#34sAaDAaGO41a1Q7(+"qAwqvvq)#
b!HMAaG$a(*
b!HNAb!H%b)*
b!HNAaG$a(*rcp|jtddtddzdzdtdddzdz
z|jtddtd	d
zdtdd	d
zz|jd
tddfttddzdzdtdddzdz
|jd	dzdztd	d
zdtdd	d
zz|jdtdd	d
ztdd	d
zz|jdtd	d	d
zfttdd	d
ztdd	d
z|jd	dzdztddfttd	d
zdtdd	d
zy)Nlb;efOpUmnP|}l~Jw5PHyT#/jei4Tr{#rslP~cegrtlryrrvrzl_rr|)r`rrfrr3s rtestLargeArithmeticz FractionTest.testLargeArithmetics
CK
M
b"fQh!AhBq$99	

	

a01
q#vgqMAaCL(	
	
##

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

#XIO
q#vgqMQq!S&\)	
	


aCLAaCL(	
	

!QV1Q3<1af.	
	
##3hY"_
q1
2
41afWa=!Aq#v,/	
rc
*|jtddtdddz|jdtdddz|jdtdddz|jtdddtddz|jddtddz|jddtddz|jtddtdddz
|jd	tdddz
|jd
tdddz
|jtdddtddz
|jddtddz
|jd
dtddz
|jtddtdddz|jdtdddz|jdtdddz|jtdddtddz|jddtddz|jddtddz|jtddtdddz|jdtdddz|jdtdddz|jtdddtddz|jddtddz|jddtddz|jdtdddz|jdtdddz|jddtddz|jddtddz|jddtddz|jtddtdddz|jdtdddz|jtdddtddz|jddtddz|jdtddtdz|jtdtddtdz|jtdtddtdz|jdtddtdz|jdtddft	tddd|jt	ddt	tddd|jdtdft	dtdd|jt	ddt	dtdd|jt	dtdt	tddtd|jt	dtdt	tddtd|jt	dtdt	tddtd|jt	dtdt	tddtd|jtddtdddz|jtddtdddz|jdtdddz|jdtdddz|jddtddztdtdd}|j
d|j|jd|j|jtdddtddz|jd dtddz|jd!d tddz|jddtddz|jttj
tdddy)"Nrr{rsg?g?y?y?rgyrg?y?rrry$@rr}ld&O!g"@g?rrrwgrrxryrrg?)
r`rr
rfrrrrr[rrrr )rrs  rtestMixedArithmeticz FractionTest.testMixedArithmetic)sqRy!Ar(Q,7sAaHsN3x1bX)>?qRy!a2h,7sC!Ar(N3x(a2h)>?qRy!Ar(Q,7tQq"X^4y!Ar(h*?@qBxQq"X6sC!Ar(N3x(a2h)>?qBx1bA6sAaHsN3x1bX)>?qBxQq"X6sC!Ar(N3x(a2h)>?qBx1bA6sAaHsN3x1bX)>?qQxQq"X6tS1Q8^4y8qBx*?@q!Ar(a-0sAaHO4r1!R=1vv1b'9:z3!Ar(?;qBx1bA6sAaHsN3qAwAaH5y#!R.9sAaHuU|$;<uV}a2hv.FGuU|Qr2Yu-EFtQr2Yv%>?##Q!RM6!Ar(A3FG##F3$4fQq"Xs6KL##R1Jq!Ar(0CD##F3$4fS!Ar(6KL##F3e$=va2hPUV[P\?]^##F3f
$>qBxQVW]Q^@_`##F4u$>qRyRWX]R^@_`##F4v$?"b	SXY_S`Aab	
qay!Ar(b.9qay!B(a-8sAaHO4x1bh)?@q1!Q<0AaGq!&&)AFF#qAwaAh7sQ!Aq'\2tSAb!H_5x(qBx)?@+X\\Aq'2	'rc	|jttjt	ddtd|jttjtdt	ddy)Nrvrz	3.1415926)rrr addrrr3s rtestMixingWithDecimalz"FractionTest.testMixingWithDecimalnsN)X\\Ab'7;#7	9)X\\!+.!B	9rc|jtddtddk|jtddtddk|jtddtddk|jtddtddk|jtddtddk|jtddtddk(|jtddtddk(|jtddtddk7|jtddtddk7y)Nrsryrv)rrrr3s rtestComparisonszFractionTest.testComparisonsus!Q!Aq')*1a1Q7*+!Q1Q7*+!Q1Q7*+1aAaG+,!Q1Q7*+1aAaG+,1aAaG+,!Q1Q7*+rc|jtddtddk(|jtddtddk(|jtddtddk(|jtddtddk(|jtddtddk|jtddtddk|jtddtddk|jtddtddkD|jtddtddkD|jtddtddkD|jtddtddk|jtddtddk|jtddtddk|jtddtddk\|jtddtddk\|jtddtddk\|jtddtddk|jtddtddk|jtddtddk|jtddtddkD|jtddtddkD|jtddtddkD|jtddtddk|jtddtddk|jtddtddk|jtddtddk\|jtddtddk\|jtddtddk\y)Nrsryrvrrt)rrr=rr3s rtestComparisonsDummyRationalz)FractionTest.testComparisonsDummyRationalsf!Q=A#667
a+qAw671aM!Q$778q!,!Q78!Q-1"5561a=A#6671a=A#6671a=A#6671a=A#667!Q-1"556!Q=A#667!Q=A#6671aM!Q$7781aM!Q$778!Q=A#667!Q=A#667
a+a1g56q!,qAw67q!,qAw67q!,qAw67q!,qAw67
a+a1g56
a+qAw67
a+qAw67q!,!Q78q!,!Q78
a+qAw67
a+qAw67rctd}tdd}|j||k7|j||kxs||kD|j||k(|j||kxr||k\|j||k7|j||kxs||kD|j||k(|j||kxr||k\y)NgUUUUUU?rsrv)r
rrr)rxys   rtestComparisonsDummyFloatz&FractionTest.testComparisonsDummyFloatsu
aGQAQ'a a*AF+QAQ'a a*AF+rc|jdtddk|jdtddk|jtdddk|jtdddk|jtdddk|jtdddk|jdtddk|jdtddk|jtd	tddk|jtd
tddk|jtd
tddk|jtddtd	k|jtddtd
k|jtddtd
ky)Nryrzrrvrs333333?皙??rrrr{rrrtrrrrr
r3s r
testMixedLesszFractionTest.testMixedLesssdAaG$Qq!W%!Q!$1a1%!Q#
&1a3'a1g
&qAw'u!Q/0f
!R01u"a01!Q%,./2rU6]233uU|34rc|jdtddk|jdtddk|jtdddk|jtdddk|jdtddk|jdtddk|jtdddk|jtdddk|jtd	tddk|jtd
tddk|jtd
tddk|jtddtd	k|jtddtd
k|jtddtd
ky)Nr0rsryr.r/rrvrzrrrr{rrrtr1rr2r3r4r3s rtestMixedLessEqualzFractionTest.testMixedLessEqualsdqAw'!Q(!Q3'1aC(Qq!W%a1g&!Q1%1aA&u1a01f
1b12u2q12!Q5</02reFm343e45rc
`|jtdtdk(|jdtttjddzk|jdttjddzk|jdttjddz
k|jdttjddz
kD|jdttjddzk\y)Nr}rrs)rrr
r?rrr3s rtestBigFloatComparisonsz$FractionTest.testBigFloatComparisonss6eFm34a

4(81(<&= >>?qD!1A!56674::d#3a#7!889qD!1A!56674::d#3a#7!889rc^|jtdtdk(|jtt
jtdtd|jtt
jtdtdtdd}tdd}tdd}|j||k(|j||k7|j||k(|j||k7t
jt
jt
jt
jfD]b}|jt||||jt||||jt||||jt|||dy)Nr}rvrg?r g?)rrrrrr r/r&rr)r,)rr*rwrs     rtestBigComplexComparisonsz&FractionTest.testBigComplexComparisonss<6gfo56)X[[!F)WV_M)X[[!F)WV_M
aGE3E3Qa a Q++x{{HKKD	3BiQ2iQ2iQ2iQ2		3rc|jdtddk(|jdtddk(|jtdddk(|jtdddk(|jdtddk(|jdtddk(|jtdddk(|jtdddk(|jtddtd	k(|jtd	tdd
k(|jtddtdk(|jtdtddk(y)
Nr0rsryr.r/rrvrzrrtrrr4r3s rtestMixedEqualzFractionTest.testMixedEquals.qAw'!Q(!Q3'1aC(Qq!W%a1g&!Q1%1aA&1aE%L01u1a011aE%L01v!Aq'12rc	t|jdttdd|jdttd|jdttdd|jd	ttdd|jd
ttddy)NzFraction(7, 3)rtrvz Fraction(6283185307, 2000000000)3.1415926535z#Fraction(-1, 100000000000000000000)rsl Fx:^Vz7/37)r[reprrrir3s rtestStringificationz FractionTest.testStringifications)4!Q=9;a/0	2>a7m,	.AaG-c!Aq'l+rc	Ztjj}tjj}|j	tdtt
dd|j	tddztt
ddz|jttdtt
d|j	|tt
d||j	tt
dt
djy)	Nrrzryr{2r}rsrw)
sys	hash_infomodulusrr[hashrrr
__hash__)rhmodhinfs   rtestHashzFractionTest.testHashs}}$$}}  cD1aM2b"ftAb"fI7Dv/aiAtAaJ/0	
aeaenn&67rc0td}d|dddddf\}}}}}}}t||z
tddkDr?|}||z|dz}}||z|dz}}||z|z}||z
}t||z
tddkDr?|jtj|y)Nrvrrsʚ;r )rabsrr?pi)	rthreelaststsnnaddas	         rtestApproximatePizFractionTest.testApproximatePi
s!$%uaAq"$<!q!QAr!e)nqE{*EbD"Q$rAbD"R%rAQ!A
FA!e)nqE{*	
tww*rcVtd}ddtddddf\}}}}}}t||z
tddkDrF|}|dz
}|||dz
zz}|||zz}|dz}|||z|zz
}t||z
tddkDrF|jtjd|y)NrsrrPryrw)rrRrr?cos)rr*rrUrWfactrAsigns        rtestApproximateCos1z FractionTest.testApproximateCos1s
aD'(!QqT1a':$5!T3!e)nqE{*E
FAA1ID1q5LCBJD
td""A
!e)nqE{*	
txx{A.rc
tdd}tdd}tdtjdzD]'}|j|t
t||)|jt|tt||jt|tt||jt|tt||jt|tt||j|t||j|t|y)Nrrtrrs)
rrRrangepickleHIGHEST_PROTOCOLr[rridrrrr`)rrVdrprotos    rtest_copy_deepcopy_picklez&FractionTest.test_copy_deepcopy_pickle(s
b!H
2q
!1f559:	8EQeAuo 67	8A47,A8A;0BrFBtBxL1BrFBx|$45r48,r8B<0rcVtdd}|jtt|ddy)Nrrtar{)rrrrrs  r
test_slotszFractionTest.test_slots4s#
b!H.'1c2>rcjGddt}tj|d|d}|j|jd|j|j
d|jt
|j||jt
|j
|y)Nc>eZdZdZdZdZedZedZy)-FractionTest.test_int_subclass.<locals>.myintcNt|t|t|zSrr\rr"s  rrz5FractionTest.test_int_subclass.<locals>.myint.__mul__;s !tDz#d)c%j"899rcNt|t|t|zSrrqr"s  rrz:FractionTest.test_int_subclass.<locals>.myint.__floordiv__=s !tDz#d)s5z"9::rcRt|t|t|z}|Srrq)rrr*s   r__mod__z5FractionTest.test_int_subclass.<locals>.myint.__mod__?s$DJs4y3u:56rc6t|t|Srrqr3s rrTz7FractionTest.test_int_subclass.<locals>.myint.numeratorBs!tDz#d),,rc$t|dSr)r\r3s rrUz9FractionTest.test_int_subclass.<locals>.myint.denominatorEs!tDz!}$rN)	r8r9r:rrrtrrTrUr2rrmyintro:s7
:
;

-
-

%
%rrwrvrrsry)rrErFr[rTrUr\)rrwrs   rtest_int_subclasszFractionTest.test_int_subclass9s
	%C
	%
uU|U5\:a(*akk*E2amm,e4rctddddftddddftdddftddd	fg}|D]>\}}}|j||
5|jt|||ddd@y#1swYKxYw)Nrsrvz1/3rwz-1/33r-3fractionspecrsubTestr[formatr	testcasesr~rr^s     r test_format_no_presentation_typez-FractionTest.test_format_no_presentation_typeOsq!Wb% 
r1Xr6"
qT2sO
rUB	
	)2	C$HdHxd;
C  $!7B
C
C	C
C
CsA==B	cgtddddftddddftddddftdddd	ftdd
ddftddddftd
dddftddddftd
dddftddddftddddftdddftddddftddddftddddftddddftdddftdddftdddftddd ftd!dd"ftd#dd"ftd$ddd%ftd&ddd'ftd(dd)ftd*dd+ftd,dd-ftddd.d/ftddd0d1ftd2d3d4ftd5d6d7d8ftd2d9d:ftd5d6d;d8ftd5d6d<d8ftd5d6d=d>ftd?d@dAftdBdCdDftdEd6dzdFdGf}|D]>\}}}|j||H5|jt|||ddd@y#1swYKxYw)INryrvz.6ez6.666667e-01z1.500000e+00rz1.538462e-01z8.695652e-02!z6.060606e-02z6.500000e+00z1.000000e+01z1.150000e+01z1.650000e+01rz.3ez	0.000e+00rsrz	1.000e-03rz	1.000e-02r{z	1.000e-01z	1.000e+00z	1.000e+01z	1.000e+02z	1.000e+03z99.999994999999z9.999999e+01z	99.999995z1.000000e+02z99.999995000001rxz
-6.666667e-01rz
-1.500000e+00iz
-1.000000e+021e1000z1.000e+1000z1e-1000z1.000e-1000z.6Ez6.666667E-01z.1ez6.7e-01z0.995z.0ez1e+00rrtroz3.142857e+00z#.0ez1.e+00z11.6ez12.6ez13.6ez
 3.142857e+00z1234567.123456z,.5e1.23457e+06z
123.123456z012_.2ez0_001.23e+02rwzz.6ez
-3.091690e-85r}rrs     rtest_format_e_presentation_typez,FractionTest.test_format_e_presentation_type[s3

q!We^,3

q!We^,3
q"Xun-3
q"Xun-	3

q"Xun-3
r1Xun-
3
r1Xun-3
r1Xun-3
r1Xun-3
q!We^,3
q!We^,3
qT5+&3
q$Z,3
 q#Y{+!3
"q"Xuk*#3
$q!We[)%3
&rUE;''3
(sVUK()3
*tWe[)+3
. 
!5.9/3
0{^UN313
2 
!5.933
6r1Xuo.73
8r1Xuo.93
:tWe_-;3
>x[%/?3
@y\5-0A3
Dq!We^,E3
Hq!WeY'I3
JwZ(K3
Nr1XsN+O3
RwZ*S3
Vr1Xw/W3
Xr1Xw/Y3
Zr1Xw0[3
^
 &-8_3
`|_i8a3
dr1c6]FO4e3
	h)2	C$HdHxd;
C  $!7B
C
C	C
C
CsI66I?	cgtddddftddddftddddftd	ddd
ftddddftdddd
ftddddftddddftddddftddddftdddftddddftddddftdddftd ddd!ftd"dd#ftd$dd%ftd&dd%ftd'dd(ftd)dd(ftd*dd+ftd,dd+ftd-dd.ftd/dd0ftd1dd2ftd3dd2ftd4dd5ftd6dd5ftd7dd8ftd9dd8ftd:dd;ftddddftddd<dftddd=d>ftddd?d@ftdAdddBftdAdd<dBftdAdd=dBftdAdd?dBftdddCdDftdEddCdFftdddCdGftd ddCdHftdddIdJftdEddIdKftdddIdLftd ddIdMftdNdOdftdNdPdftdNdQdRftdNdSdTftdUdOdftdUdPdftdUdQdRftdUdSdTftdddVdWftdXdVdYftdXdZd[ftddd\dWftddd]d^ftddd_dftddd`dftdddadbftdddcddftdddedfftdddgdhftdAddidjftdddidkftdAddldBftdAddmdnftdAddodpftdAddqdrftdAddsdtftdAddudvftdAddwdxftdAddydzftdAdd{d|ftdAdd}d~ftdAdddftdAdddftdAdddftdAdddftddddftddddftddddftddddftddddftddddftddddftddddftddddftddddftdddftdddftdddftdddftddddftddddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdddftdīddftdīddftddddftddddftddddftddʫddftdd̫ddftddΫddftddЫddftddddftddddftddddftddddftddddftddddftddddftddddftdddd
ftdd߫ddftdd߫ddftdd߫ddftdd֫ddftdd߫ddftdd߫ddftdd߫ddftdd߫ddf}|D]>\}}}|j||5|jt|||ddd@y#1swYKxYw)Nrrsz.2fz0.00rvz0.33ryz0.67rz1.33r0.12z0.38rz0.08z0.01rrrtz.5fz3.14286	399024789z399024789.00iiz.50fz43.14159265392142104470871594159265392142104470871594rz3.142857z0.000000iz	-3.142857z1.225z1.22z1.2250000001z1.23z1.2349999999z1.235z1.24z1.245z1.2450000001z1.25z1.2549999999z1.255z1.26z-1.225z-1.22z
-1.2250000001z-1.23z
-1.2349999999z-1.235z-1.24z-1.245z
-1.2450000001z-1.25z
-1.2549999999z-1.255z-1.26z-.2fz+.2fz+0.67z .2fz 0.67rxz-0.67z.0f0rwrr{r|z#.0fz0.z-0.3.z-3.z-0.001zz.2fz-z.2fz+z.2fz+0.00z z.2fz 0.00z0.001z6.2fz  0.67i90z12345.0012fz12345.000000z>6.2fz<6.2fz0.67  z^3.2fz^4.2fz^5.2fz0.67 z^6.2fz 0.67 z^7.2fz 0.67  z^8.2fz  0.67  z=+8.2fz-   0.67z+   0.67zX>3.2fzX>7.2fzXX-0.67zX<7.2fz-0.67XXzX^7.2fzX-0.67XzX=7.2fz-XX0.67z >7.2fz  -0.67z>7.2fz-0.67z
>7.2fz

-0.67z	>7.2fz		-0.67z>>7.2fz>>-0.67z<>7.2fz<<-0.67u→>7.2fu→→-0.67z07.2fz-000.67z-07.2fz+07.2fz+000.67z 07.2fz 000.67z0.2fz>0.2fz<0.2fz^0.2fz=0.2fz00.2fz,.2fz,.7fz	0.6666667z
123456.789z
123,456.791234567z1,234,567.0012345678z
12,345,678.00z,fz12,345,678.000000z_.2fz_.7fz
123_456.79z1_234_567.00z
12_345_678.00	1234.5678z07,.2fz1,234.57z08,.2fz09,.2fz	01,234.57z010,.2fz
001,234.57z011,.2fz0,001,234.57z012,.2fz013,.2fz
00,001,234.57z014,.2fz000,001,234.57z015,.2fz0,000,001,234.57z016,.2fz
-1234.5678z	-1,234.57z
-01,234.57z-001,234.57z
-0,001,234.57z-00,001,234.57z-000,001,234.57z-0,000,001,234.57z06,.0fz-1,235z07,.0fz-01,235z08,.0fz-001,235z09,.0fz
-0,001,235z0=12,.2fz00001,234.57z12.34zX>0.2fz.5Fz.2%z314.29%z14.29%Fz1.43%iz0.14%iXz0.01%ipz0.00%z.0%z14%z#.0%z14.%rz,.2%z	1,428.57%z7.2%z8.2%z 314.29%z08.2%z0314.29%i	rz2.54i	z2.55iK
z2.64z.1fz0.013z0.1z0.2r}rrs     rtest_format_f_presentation_typez,FractionTest.test_format_f_presentation_types={

q!WeV${
q!WeV${
q!WeV$	{

q!WeV${
q!WeV$
{
q!WeV${
q"Xuf%{
q#Yv&{
q#Yv&{
r1Xui({
{^UN3{
vu
v
C
E{
"r1XsJ'#{
$qT3
#%{
&sAY[)'{
*wZ'+{
,~
v.-{
.~
v./{
0wZ'1{
2wZ'3{
4~
v.5{
6~
v.7{
8wZ'9{
:x[%);{
<
0={
>
0?{
@x[%)A{
Bx[%)C{
D
0E{
F
0G{
Hx[%)I{
Lq!WeV$M{
Nq!Wff%O{
Pq!Wfg&Q{
Rq!Wfg&S{
Tr1Xug&U{
Vr1Xvw'W{
Xr1Xvw'Y{
Zr1Xvw'[{
^q!WeS!_{
`r1Xud#a{
br1Xuc"c{
dsAYt$e{
hq!Wfd#i{
jr1Xvu%k{
lr1Xvt$m{
nsAY&o{
rx[&&)s{
tx['6*u{
vx['7+w{
xx['7+y{
zwZ({{
|wZ&)}{
~wZ'*{
@wZ'*A{
Dq!Wfh'E{
FuXvz*G{
HuXun-I{
Lq!Wgx(M{
Nq!Wgx(O{
Pq!Wgv&Q{
Rq!Wgv&S{
Tq!Wgw'U{
Vq!Wgx(W{
Xq!Wgy)Y{
Zq!Wgz*[{
^r1Xx,_{
`q!Wh
+a{
dr1Xx)e{
fr1Xx+g{
hr1Xx+i{
jr1Xx+k{
lr1Xx+m{
nr1Xx+o{
rr1X{O4s{
tr1Xy+.u{
vr1Xy+.w{
xr1Xx+y{
zr1Xx+{{
|r1Xz=1}{
@r1Xw	*A{
Br1Xx+C{
Dq!Wh	*E{
Fq!Wh	*G{
Lq!Wff%M{
Nq!Wgv&O{
Pq!Wgv&Q{
Rq!Wgv&S{
Tq!Wgv&U{
Xq!Wgv&Y{
\q!Wff%]{
^q!Wfk*_{
`|_fl3a{
by\6>2c{
dz]FO4e{
fz]D"56g{
jq!Wff%k{
lq!Wfk*m{
n|_fl3o{
py\6>2q{
rz]FO4s{
v{^Xz2w{
x{^Xz2y{
z{^X{3{{
|{^Y5}{
~{^Y7{
@{^Y7A{
B{^Y8C{
D{^Y(89E{
F{^Y(:;G{
H{^Y(:;I{
J|_h4K{
L|_h4M{
N|_h4O{
P|_i6Q{
R|_i7S{
T|_i9U{
V|_i9W{
X|_i)9:Y{
Z|_i):;[{
\|_i)<=]{
`|_h1a{
b|_h	2c{
d|_h
3e{
f|_h5g{
r{^Z8s{
|wZ)}{
~wZ7+{
Br1Xui(C{
Fr1Xui(G{
Hq!WeX&I{
Jq"Xug&K{
Lq#Yw'M{
Nq$Z(O{
Pq%[%)Q{
Rq!WeU#S{
Tq!Wff%U{
VsAY,W{
Xr1Xvy)Y{
Zr1Xvz*[{
\r1Xw
+]{
`q!WeV$a{
bq!WeV$c{
dq!WeV$e{
ftT]E6*g{
htT]E6*i{
jtT]E6*k{
lq#Yu%m{
nr4[%'o{
pr4[%'q{
rsD\5%(s{
tsD\5%(u{
	x)2	C$HdHxd;
C  $!7B
C
C	C
C
Cs	c11c:	cBgtdddftdddftdddftddd	ftd
ddftddd
ftdddftdddftdddftdddftdddftdddftdddftdddftddd ftd!d"d#ftd$d"d#ftd%d"d&ftd'd"d&ftd(d"d)ftd*d"d)ftd+d"d,ftd-d"d,ftd.dd/ftd0dd1ftd2dd3ftd4dd5ftd6dd7ftd.d8d9ftd0d8d0ftd2d8d2ftd4d8d4ftd6d8d:ftdd;dftdd;d<ftd=d>d?ftd@dAdBftdCdAdDftdEdAdFftdGdAdHftdGdIdJftdKdAdLftdKdIdMftd@dNdBftdCdNdDftdEdNdFftdGdNdHftdGdOdJftdKdNdLftdPdQdRftdSdTdUzdVdWf}|D]>\}}}|j||X5|jt|||ddd@y#1swYKxYw)YNz0.000012345678z.6gz1.23457e-05z
0.00012345678z0.000123457z0.0012345678z
0.00123457z0.012345678z	0.0123457z
0.12345678z0.123457z	1.2345678z1.23457z	12.345678z12.3457z	123.45678z123.457rz1234.57z	12345.678z12345.7z	123456.78123457z	1234567.8rz
9.99999e+2z.4g1000z
9.99999e-8z1e-07z
9.99999e+8z1e+09z-0.115z.2gz-0.12z-0.125z-0.135z-0.14z-0.145z0.115rz0.125z0.135z0.14z0.145rrz123.400z123.4z123.000123z120.00012012000000z1.2e+07z#.6gz0.00000z1.20000e+07z.6Gz1.23457E+06r@rCz3.14159z0.000031415z.0gz3e-05z
0.00031415z0.0003z0.31415z0.3z3.1415r{z#.0grz31.415z3e+01z3.e+01z.1gz#.1glz_.25g18_446_744_073_709_551_616rwrtrzgz-3.09169e-85r}rrs     rtest_format_g_presentation_typez,FractionTest.test_format_g_presentation_typeWs=


 %7=



6=
~
|4=
}
uk2	=

|_eZ0=
{^UI.
=
{^UI.=
{^UI.=
{^UI.=
{^UI.=
{^UH-=
{^UM2=
|_eV,=
|_eW-=
 |_eW-!=
$x[%)%=
&x[%)'=
(x[%))=
*x[%)+=
,wZ'-=
.wZ'/=
0wZ'1=
2wZ'3=
6qT5#7=
8y\5'*9=
:y\5%(;=
<y\5%(==
>z]E9-?=
BqT69%C=
Dy\69-E=
Fy\69-G=
Hy\69-I=
Jz]FM2K=
N{^UI.O=
P{^UM2Q=
T~
Y/U=
X}
ug.Y=
Z|_eX.[=
\y\5%(]=
^x[%%_=
`x[&$'a=
bx[%)c=
dx[&(+e=
f}
ug.g=
h|_eX.i=
jy\5%(k=
lx[%%m=
nx[&$'o=
px[%)q=
tuXw <=u=
xr1c6]D.1y=
	|)2	C$HdHxd;
C  $!7B
C
C	C
C
Cs-LL	cXtdd}|jt5t|ddddgd}|D]G}|j	|5|jt
5t||ddddddIy#1swYZxYw#1swY xYw#1swYlxYw)Nryrv)Q6fzX>010fzX<010fzX^010fzX=010fz0>010fz0<010fz0^010fz0=010fz>010fz<010fz^010fz=010ez=010fz=010gz=010%z>00.2fz>00f006fz.010fz.02fz.000fz.ez.fz.gz.%zZ.2f)r)rrrrrr)rr~
invalid_specsrs    rtest_invalid_formatsz!FractionTest.test_invalid_formatssQ7


y
)	#8T"	#!

D"	+D4(
+&&z2+8T*+
+
+	+K	#	#N++
+
+s/
BB (
B5B BBB  B)	N).r8r9r:r`rfrprrrrrrrrrrrrrrr
rrrr!r$r&r(r,r5r7r9r<r>rCrMr\rarirlrxrrrrrr2rrrYrY[s+
Q
;12;;=ob( 8-01=+90, ,D"&HA!+F 
DC'J9	,8@
,5$6":3$3,	8+/
1?
5,
C8Ct@CDBCH*+rrY__main__)decimalrtest.supportrr?rr rErrFrunittestrrrdrrrFrobjectr
r=rRrWTestCaserYr8mainr2rr<module>rs!*



@8F8@AI&&A(j+8$$j+Z#zHMMOr