python (3.11.7)

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

e}ddlmZmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
dZedZedZedZe
jjZe
jjZd\ZZeezd	kZed
kre
jdZneZe	j epe	j!Z"e	j#e"dZ$e	j#e"dZ%d
Z&dZ'dZ(dZ)dZ*dZ+dZ,d$dZ-GddZ.Gdde/Z0Gdde1Z2GddZ3Gdd ej4Z5Gd!d"ej4Z6d#Z7ed
krej8dSdS)%)verboserequires_IEEE_754)supportNgh㈵>naninf-inf)7yACg):@g7yAC__main__zmath_testcases.txtzcmath_testcases.txtc|	tjdtjd|d}|dkr|dz}|S)Nz<qz<drl)structunpackpack)xns  B/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_math.pyto_ulpsr'sD		
dFKa0011!4A1uugJHc<	|rdt||dz
zzndS)Nr)count_set_bits)rs rrrMs*K,-41~a!a%i((((14rc~	||z
dz	}|sdS|dkr|S||zdz}t||t||zSNr)partial_product)startstop
numfactorsmids    rrrQsa,1$JHq	qz!Q&uc**_S$-G-GGGrc	dx}}tt|D]/}|t||dzz	dzdz||z	dzdzz}||z}0||t	|z
zSr)reversedrange
bit_lengthrr)rinnerouteris    rpy_factorialr%_sEE
eALLNN++
,
,
!q1u*!1A!5Q!|a7GHHH
Q***++rc	tt|t|z
}t||z
}||ks||krdSd}|||||S)NzAerror = {:.3g} ({:d} ulps); permitted error = {:.3g} or {:d} ulps)absrformat)expectedgotulp_tolabs_tol	ulp_error	abs_errorfmts       r
ulp_abs_checkr0jsuGH%%455IHsN##IGyG33t7zz)YAAArc#K	t|d5}|D]}d|vr|d|d}|s8|d\}}|\}}}|}|d}	|dd}
||t	|t	|	|
fV	ddddS#1swxYwYdS)Nutf-8encoding--->rr)openindexstripsplitfloat)fnamefplinelhsrhsidfnarg
rhs_piecesexpflagss           rparse_mtestfilerG|s>
eg	&	&	&:"
	:
	:Dt||-TZZ---.::<<
zz$''HC))++KBCJQ-CqrrNEr5::uSzz599999
	:::::::::::::::::::sB5CCCc
#K	t|d5}|D]}|ds|s,|d\}}|\}}}}|}	|	d|	d}}
|	dd}||t	|t	|t	|
t	||fV	ddddS#1swxYwYdS)Nr2r3r5r6rr)r7
startswithr9r:r;)
r<r=r>r?r@rArBarg_realarg_imagrDexp_realexp_imagrFs
             rparse_testfilerOsT

eg	&	&	&"		Dt$$
DJJLL
zz$''HC),&BHhJ!+A
1
hHqrrNEr??E(OO??E(OO



	sCC11C58C5c	||krdSd}t|tr%t|trt|}n9t|tr$t|trt|}t|tr{t|trftj|rtj|rd}n;tj|stj|rnt
||||}|2d}|||}|d|z
}|SdS)Nz	not equalzexpected {!r}, got {!r}z ({}))
isinstancer;intmathisnanisinfr0r()r)r*r+r,failurefail_fmtfail_msgs       rresult_checkr[sF	htG(E""#z#s';';#Cjj	C		#Jx$=$=#??(E""	Ez#u'='=	E:h	EDJsOO	EGG
Z
!
!	ETZ__	E$Hc7GDDG,??8S11GNN7+++trceZdZdZdZdS)	FloatLikec||_dSNvalueselfras  r__init__zFloatLike.__init__



rc|jSr_r`rcs r	__float__zFloatLike.__float__
zrN)__name__
__module____qualname__rdrhrrr]r]2rr]ceZdZdS)IntSubclassNrjrkrlrmrrrprpsDrrpceZdZdZdZdS)MyIndexablec||_dSr_r`rbs  rrdzMyIndexable.__init__rerc|jSr_r`rgs r	__index__zMyIndexable.__index__rirNrjrkrlrdrvrmrrrsrsrnrrsceZdZddZdS)BadDescrNctr_)
ValueError)rcobjobjtypes   r__get__zBadDescr.__get__srr_)rjrkrlr~rmrrryrys(rryceZdZdMdZdZdZdZdZdZd	Z	d
Z
dZdZd
Z
edZdZejejdkoejdvddZdZdZdZdZdZdZejdZdZ dZ!dZ"eeje#ddZ$d Z%d!Z&eeje#d"d#Z'd$Z(d%Z)d&Z*d'Z+d(Z,d)Z-d*Z.ed+Z/eej0d,dd-Z1d.Z2d/Z3d0Z4d1Z5ed2Z6d3Z7d4Z8d5Z9d6Z:d7Z;ed8Z<d9Z=d:Z>d;Z?d<Z@ed=ZAed>ZBejCeDd?d@ZEedAZFedBZGdCZHdDZIdEZJedFZKedGZLdHZMdIZNdJZOdKZPdLS)N	MathTestsrPrQc	t||||}|+|d||dSdS)Nz{}: {})r[failr()rcnamer*r)r+r,rXs       rftestzMathTests.ftestsP	xgw??IIhoodG4455555rc|dtjd|dtjd|tjdtjzdS)Npig-DT!	@egiW
@rI)rrUrrassertEqualtaurgs r
testConstantszMathTests.testConstantssX

4"<===

3 :;;;1TW9-----rcT|ttj|dtjdtj|dtjdtjdz|dtjdd|ttjt|ttjt|ttjdtz|ttjdtz
|
tjtjtdS)Nzacos(-1)zacos(0)rrIzacos(1)r)
assertRaises	TypeErrorrUacosrrr{INFNINFeps
assertTruerVNANrgs rtestAcoszMathTests.testAcoss)TY///

:ty}}dg666

9dillDGAI666

9dillA...*di555*di666*diS999*dic:::
49S>>2233333rc|ttj|dtjdd|dtjdd|t
tjd|t
tjd|tjtt|t
tjt|	tj
tjtdS)Nzacosh(1)rrzacosh(2)rIg5qB?r)rrrUacoshrr{rrrrrVrrgs r	testAcoshzMathTests.testAcoshs)TZ000

:tz!}}a000

:tz!}}.@AAA*dj!444*dj"555C#...*dj$777
4:c??3344444rc\|ttj|dtjdtjdz|dtjdd|dtjdtjdz|ttjt|ttjt|ttjdtz|ttjdtz
|
tjtjtdS)Nzasin(-1)rrIzasin(0)rzasin(1)r)
rrrUasinrrr{rrrrrVrrgs rtestAsinzMathTests.testAsins)TY///

:ty}}twhqj999

9dillA...

9dillDGAI666*di555*di666*diS999*dic:::
49S>>2233333rc|ttj|dtjdd|dtjdd|dtjdd|tjtt|tjtt|tj	tjtdS)	Nzasinh(0)rzasinh(1)rg'ya64?z	asinh(-1)rg'ya64)rrrUasinhrrrrrrVrrgs r	testAsinhzMathTests.testAsinh&s)TZ000

:tz!}}a000

:tz!}}.ABBB

;
20DEEEC#...D))4000
4:c??3344444rc|ttj|dtjdtjdz|dtjdd|dtjdtjdz|dtjttjd	z|d
tjttjd	z|tj	tjtdS)Nzatan(-1)rzatan(0)rzatan(1)rz	atan(inf)rIz
atan(-inf))rrrUatanrrrrrrVrrgs rtestAtanzMathTests.testAtan/s)TY///

:ty}}twhqj999

9dillA...

9dillDGAI666

;	#	:::

<447(1*===
49S>>2233333rc|ttj|dtjdd|dtjdd|dtjdd|ttjd	|ttjd
|ttjt|ttjt|	tj
tjtdS)Nzatanh(0)rz
atanh(0.5)?gz?zatanh(-0.5)gzrr)rrrUrratanhr{rrrrVrrgs r	testAtanhzMathTests.testAtanh8s
)TY///

:tz!}}a000

<C2EFFF

=$*T"2"24HIII*dj!444*dj"555*dj#666*dj$777
4:c??3344444rc0|ttj|dtjddtjdz|dtjddtjdz|dtjddd|d	tjddtjdz|d
tjddtjdz|dtjdddtjzdz|d
tjdttj|dtjddtj|dtjddtj|tjddd|tjddd|tjdtd|	tj
tjdt|dtjdttj|dtjddtj|dtjddtj|tjddd|tjddd|tjdtd|	tj
tjdt|dtjtttjdzdz|dtjtdtjdz|dtjtdtjdz|dtjtdtjdz|dtjtdtjdz|dtjtttjdz|	tj
tjtt|dtjtttjdzdz|dtjtdtjdz|dtjtdtjdz|d tjtdtjdz|d!tjtdtjdz|d"tjtttjdz|	tj
tjtt|d#tjdttj|d$tjddtjdz|d%tjddtjdz|tjdtd|	tj
tjdt|d&tjdttj|d'tjddtjdz|d(tjddtjdz|tjdtd|	tj
tjdt|	tj
tjtt|	tj
tjtd|	tj
tjtd|	tj
tjtd|	tj
tjtd|	tj
tjtt|	tj
tjttdS))Nzatan2(-1, 0)rrrIzatan2(-1, 1)rrzatan2(0, 1)zatan2(1, 1)zatan2(1, 0)zatan2(1, -1)zatan2(0., -inf)rQzatan2(0., -2.3)ffffffzatan2(0., -0.)ffffff@zatan2(-0., -inf)zatan2(-0., -2.3)zatan2(-0., -0.)zatan2(inf, -inf)zatan2(inf, -2.3)zatan2(inf, -0.)zatan2(inf, 0.)zatan2(inf, 2.3)zatan2(inf, inf)zatan2(-inf, -inf)zatan2(-inf, -2.3)zatan2(-inf, -0.)zatan2(-inf, 0.)zatan2(-inf, 2.3)zatan2(-inf, inf)zatan2(2.3, -inf)zatan2(2.3, -0.)zatan2(2.3, 0.)zatan2(-2.3, -inf)zatan2(-2.3, -0.)zatan2(-2.3, 0.))rrrUatan2rrrrrrrVrrgs r	testAtan2zMathTests.testAtan2Cs)TZ000

>4:b!#4#4twhqjAAA

>4:b!#4#4twhqjAAA

=$*Q"2"2A666

=$*Q"2"2DGAI>>>

=$*Q"2"2DGAI>>>

>4:a#4#4aikBBB	

$djT&:&:DGDDD

$djT&:&:DGDDD

#TZC%8%8$'BBBB++R000B,,b111B,,b111
4:b##6#677888

%tz#t'<'<twhGGG

%tz#t'<'<twhGGG

$djc&:&:TWHEEEC,,c222C--s333C--s333
4:c3#7#788999

%tz#t'<'<dgaikJJJ

%tz#t'<'<dgaiHHH

$djd&;&;TWQYGGG

#TZS%9%94719EEE

$djc&:&:DGAIFFF

$djc&:&:DGAIFFF
4:c3#7#788999

&
4(>(>
1MMM

&
4(>(>
KKK

%tz$'='=xzJJJ

$djs&;&;dgXaZHHH

%tz$'<'<twhqjIII

%tz$'<'<twhqjIII
4:dC#8#899:::

%tz#t'<'<dgFFF

$djc&:&:DGAIFFF

#TZR%8%8$'!)DDDC--r222
4:c3#7#788999

&
4(>(>III

%tz$'<'<twhqjIII

$djr&:&:TWHQJGGGD#..444
4:dC#8#899:::
4:c4#8#899:::
4:c4#8#899:::
4:c3#7#788999
4:c2#6#677888
4:c3#7#788999
4:c3#7#788999
4:c3#7#78899999rc|ttj|dtjdd|dtjdd|dtjdd|dtjd	d	|d
tjdd|dtjd
d|dtjdd|dtjdd|dtjdd|dtjdd|tjtt|tjtt|tj	tjtdS)Nzcbrt(0)rzcbrt(1)rzcbrt(8)rIz	cbrt(0.0)rQz
cbrt(-0.0)rz	cbrt(1.2)g333333?ggAE?z
cbrt(-2.6)ggL]6Hzcbrt(27)rzcbrt(-1)rz	cbrt(-27)i)rrrUcbrtrrrrrrVrrgs rtestCbrtzMathTests.testCbrts)TY///

9dillA...

9dillA...

9dillA...

;	#444

<4$777

;	#0ABBB

<42DEEE

:ty}}a000

:ty}}b111

;	#3333---4$///
49S>>2233333rc,|ttj|t
t
tjd|tjdd|tjdd|tjdd|tjdd|tjdd	|tjd
d	|tjdd|tjddGd
d}Gddt}Gdd}Gdd}|tj|d|tj|d|tjtdd|ttj||ttj||}d|_
|ttj||ttj|d|tjtdd|tjtdddS)Nrr??rIrrrrQrceZdZdZdS)$MathTests.testCeil.<locals>.TestCeilcdSN*rmrgs r__ceil__z-MathTests.testCeil.<locals>.TestCeil.__ceil__rrNrjrkrlrrmrrTestCeilr#




rrceZdZdZdS)%MathTests.testCeil.<locals>.FloatCeilcdSrrmrgs rrz.MathTests.testCeil.<locals>.FloatCeil.__ceil__rrNrrmrr	FloatCeilrrrrceZdZdS)&MathTests.testCeil.<locals>.TestNoCeilNrqrmrr
TestNoCeilrDrrc"eZdZeZdS)'MathTests.testCeil.<locals>.TestBadCeilN)rjrkrlryrrmrrTestBadCeilrsxzzHHHrrrg@E@+c|Sr_rmargss r<lambda>z$MathTests.testCeil.<locals>.<lambda>s4r)rrrUceilrrTtyper;r]r{r)rcrrrrts      rtestCeilzMathTests.testCeils!)TY///d49S>>223333+++3+++3+++4!,,,4"---4"---3+++4!,,,
																									"	"	"	"	"	"	"	"88::..33399;;//4449T??33R888)TY

===*di???JLL''
)TY222)TY15559T??33T:::9T??33T:::::rc	|tjddd|tjddd|tjddd|tjddd|tjd	d
d|ttj|tjddd|tjdd
d|tjt
dt
|tjt
d
t|tjtdt
|tjtd
t|tjdt
d|tjdtd|tjt
t
t
|tjt
tt|tjtt
t
|tjttt|tjtjtd|tjtjtt
|tjtjtt|tjtjtt|tj
tjt
t|ttjdtddS)
NrrrrQirr@@r@)rrUcopysignrrrrrrVrrWr'rgs rtestCopysignzMathTests.testCopysignsVq"--s333r2..444r3//666q"--s333r3//666)T]333r2..333r3//555sB//555sC00$777tR00#666tS114888r3//444r400#666sC00#666sD114888tS113777tT22D999
4=b#9#9::;;;
4=c#:#:;;<<<
4=d#;#;<<===
4=c#:#:;;<<<	

4=c#:#:;;<<<T]2s3344b99999rcv|ttj|dtjtjdzdtjd|dtjdd|dtjtjdzdtjd|dtjtjd		|tjtjt|tjtjtnf#t$rY|ttjt|ttjtYnwxYw|tjtjtdS)
Nz
cos(-pi/2)rIrrr,zcos(0)z	cos(pi/2)zcos(pi)r)
rrrUcosrrulprrVrrr{rrgs rtestCoszMathTests.testCoss)TX...

<47(1*!5!5q$(1++
NNN

8TXa[[!,,,

; 3 3Q
LLL

9dhtw//444	:OODJtx}}55666OODJtx~~667777	:	:	:j$(C888j$(D99999	:	

48C==1122222sA<FA G87G8win32)ARMARM64zEWindows UCRT is off by 2 ULP this test requires accuracy within 1 ULPcn|ttj|dtjdd|dtjddtjddzzz
d|tjtt|tjtt|tj	tjtdS)Nzcosh(0)rrzcosh(2)-2*cosh(1)**2rIr)rrrUcoshrrrrrrVrrgs rtestCoshzMathTests.testCoshs	
)TY///

9dillA...

)49Q<<$)A,,/8I+I2NNN3---4#...
49S>>2233333rc|ttj|dtjtjd|dtjtjdzd|dtjtjdzd|d	tjd
d
dS)Nzdegrees(pi)gf@z
degrees(pi/2)rIgV@zdegrees(-pi/4)rgFz
degrees(0)r)rrrUdegreesrrrgs rtestDegreeszMathTests.testDegreess)T\222

=$,tw"7"7???

?DL$;$;TBBB

#T\47(1*%=%=uEEE

<a!44444rc|ttj|dtjddtjz|dtjdd|dtjdtj|tjtt|tjtd|	tj
tjt|ttjddS)	Nzexp(-1)rrzexp(0)rzexp(1)rQ@B)
rrrUrErrrrrrrVr
OverflowErrorrgs rtestExpzMathTests.testExps)TX...

9dhrllAdfH555

8TXa[[!,,,

8TXa[[$&111#,,,$,,,
48C==11222-7;;;;;rc|ttj|dtjdd|dtjdd|dtjdd|d	tjd
d|tjtt|tjtd|tj	tjt|ttjd
dS)Nzexp2(-1)rrzexp2(0)rrzexp2(1)rIz	exp2(2.3)rg){IJ@rQr)rrrUexp2rrrrrrVrrrgs rtestExp2zMathTests.testExp2s)TY///

:ty}}c222

9dillA...

9dillA...

;	#0ABBB3---4"---
49S>>22333-G<<<<<rcF|ttj|dtjdd|dtjdd|dtjdddS)Nzfabs(-1)rrzfabs(0)rzfabs(1))rrrUfabsrrgs rtestFabszMathTests.testFabssz)TY///

:ty}}a000

9dillA...

9dillA.....rc|tjddd}tddD]d}||z}|tj|||tj|t	|e|ttjd|ttjddzdS)Nrrr
d)rrU	factorialr r%rr{)rctotalr$s   r
testFactorialzMathTests.testFactorials**A...q$	A	AAQJET^A..666T^A..Q@@@@*dnb999*dnr3wh?????rcb|ttjd|ttjd|ttjd|ttjd|ttjt	jd|ttjt	jd|ttjddS)N@g@r}Ô%I5z5.2)rrrUrdecimalDecimalrgs rtestFactorialNonIntegersz"MathTests.testFactorialNonIntegerss)T^S999)T^S999)T^T:::)T^V<<<)T^W_S5I5IJJJ)T^W_U5K5KLLL)T^S99999rc|ttjddz|ttjddS)Nrr}Ô%IT)rrrUrrrgs rtestFactorialHugeInputsz!MathTests.testFactorialHugeInputs(sB	
-SAAA)T^U;;;;;rc|ttj|t
t
tjd|tjdd|tjdd|tjdd|tjdd|tjdd|tjd	d
Gdd}Gd
dt}Gdd}Gdd}|tj|d|tj|d|tjtdd|ttj||ttj||}d|_
|ttj||ttj|d|tjtdd|tjtdddS)NrrrrrrrrrceZdZdZdS)&MathTests.testFloor.<locals>.TestFloorcdSrrmrgs r	__floor__z0MathTests.testFloor.<locals>.TestFloor.__floor__=rrNrjrkrlr
rmrr	TestFloorr<rrrceZdZdZdS)'MathTests.testFloor.<locals>.FloatFloorcdSrrmrgs rr
z1MathTests.testFloor.<locals>.FloatFloor.__floor__@rrNrrmrr
FloatFloorr?rrrceZdZdS)(MathTests.testFloor.<locals>.TestNoFloorNrqrmrrTestNoFloorrBrrrc"eZdZeZdS))MathTests.testFloor.<locals>.TestBadFloorN)rjrkrlryr
rmrrTestBadFloorrD 

IIIrrrg33333D@)c|Sr_rmrs rrz%MathTests.testFloor.<locals>.<lambda>MsDr)rrrUfloorrrTrr;r]r{r
)rcrrrrrs      r	testFloorzMathTests.testFloor/s)TZ000d4:c??33444C!,,,C!,,,C!,,,D))2...D))2...D))2...
																									#	#	#	#	#	#	#	#IIKK00"555JJLL112666IdOO44b999)TZ???*dj,,..AAAKMM(()TZ333)TZA666IdOO44d;;;IdOO44d;;;;;rc|ttj|dtjddd|dtjddd|dtjddd	|d
tjddd|d
tjddd|dtjddd|tjtjtd	|tjtjd	t|tjtjtt|ttjd	d|ttjtd	|ttjtd	|ttjtd|tjdtd|tjdtd|tjdtd|tjdtd|tjddd|tjdtd|ttjttdS)Nzfmod(10, 1)rrrQz
fmod(10, 0.5)rz
fmod(10, 1.5)rrzfmod(-10, 1)rzfmod(-10, 0.5)zfmod(-10, 1.5)rr)rrrUfmodrrrVrr{rrrrgs rtestFmodzMathTests.testFmodTs)TY///

=$)B"2"2C888

?DIb#$6$6<<<

?DIb#$6$6<<<

>49S!#4#4d;;;

#TYsC%8%8$???

#TYsC%8%8$???
49S"#5#566777
49R#5#566777
49S##6#677888*diR888*dib999*dir:::*dib9993,,c2224--t4443--s3334..5553,,c2223--s333*dic:::::rcttjfd}|dtjdd|dtjdd|dtjd	d
|dtjdd
tjt
dt
tjtdttjtjtddS)Nc||c\}}\}}t||z
tks||kr|d|d|dSdSNz
 returned z, expected r'rr)rresultr)mantrEemanteexprcs       r	testfrexpz&MathTests.testFrexp.<locals>.testfrexpnsq)/&KT3%4:$$t		44344444)4rz	frexp(-1)r)rrzfrexp(0)rrrzfrexp(1)r)rrzfrexp(2)rI)rrI)
rrrUfrexprrrrrVr)rcr,s` r	testFrexpzMathTests.testFrexpks)TZ000	4	4	4	4	4		+tz"~~y999	*djmmV444	*djmmX666	*djmmX666C+S111D))!,d333
4:c??1#56677777rz2fsum is not exact on machines with double roundingcddlm}|j|jz
fd}gdfdgdfgddfgddfgdd	fgd
dfgdd
fgddfdt	ddDt
dfdt	ddDt
dfgddfgddfdt	dddDdgzt
dfg
}dt	dD|fd t	d!Dd!gzdft|D]\}\}}	tj
|}nQ#t$r|d"|||fzYn*t$r|d#|||fzYnwxYw|||dd$lm}m}	m}
t	d!D]}gd%d&z}d}t	d'D]6}|	d|d(z|z
}
||
z
}||
7|
|||}|||tj
||tj
d)tjgtj|tjtj
tjd)g|tj
d*t-d)d+dd,t-d-d.gd|ttj
d/d/g|ttj
tjtjg|t0tj
d0g|t0tj
d|ttj
d&d!zgd1}|t2tj
|dS)2Nr)
float_infoc		d\}}|D]^}tj|\}}ttj|	|	z
}}||kr|||z
z}|}n|||z
z}||z
}_t	tt
t|dz
	z
|z
}|dkr3d|dz
z}|d|zzt||zo
|d|zdz
zz}||z
}tj||S)Nr-rIrrr)	rUr.rTldexpmaxlenbinr'bool)
iterabletmanttexprr)rEtailhetinymant_digs
        rmsumz MathTests.testFsum.<locals>.msums

KE4

 JqMM	c
4 : :;;S8^c#::d3h&EDDSX%D

s3s5zz??++A-8%$,GGDaxx$q&M!A#eai.IEAaCEM)J)JJ:eT***rrQ)rrr0.++d~QJrd~Qr@)rrrr@rArrB)@Crgg?C)rCr9g@C)g@CrrDg@C)g?Crg<g?Ccg|]}d|zSrrm.0rs  r
<listcomp>z&MathTests.testFsum.<locals>.<listcomp>s
+
+
+qbd
+
+
+rriz0x1.df11f45f4e61ap+2cg|]
}d|z|zS)rrmrGs  rrIz&MathTests.testFsum.<locals>.<listcomp>s 
1
1
1QsQhqj
1
1
1rz-0x1.62a2af1bd3624p-1)r	rgؗҜ<g7yAC)g7yACg?g7yAgc<g|]}d|zd|dzzz
d|dzzzS)r24rmrGs  rrIz&MathTests.testFsum.<locals>.<listcomp>s6
L
L
L!b!eb1R4j 2":-
L
L
LrirIgz0x1.5555555555555p+970cg|]}d|zS)g333333?rm)rHr$s  rrIz&MathTests.testFsum.<locals>.<listcomp>s---Aa---rc8g|]}|dz|z
Srrm)rHr$termss  rrIz&MathTests.testFsum.<locals>.<listcomp>s*888qU1Q3Z%(
"888rrzDtest %d failed: got OverflowError, expected %r for math.fsum(%.100r)zAtest %d failed: got ValueError, expected %r for math.fsum(%.100r))randomgaussshuffle)rirgh$.5g#B;rrVrrrrArrBspamc3KdVtNr)ZeroDivisionErrorrmrrbad_iterz$MathTests.testFsum.<locals>.bad_itersIII##r)sysr1r>min_expr r;fromhexappend	enumeraterUfsumrrr{rrSrTrUrrrVrr]rrr\)rcr1r?test_valuesr$valsr)actualrSrTrUjsvr]r=r>rRs               @@@rtestFsumzMathTests.testFsum}s$	#"""""&"X-	+	+	+	+	+	+8IUCL
<
<
<fE
:
:
:FC
'
'
'5
&
&
&4
+
+
+\:
)
)
);7
+
+E!TNN
+
+
+
]]1
2
2
4
1
1%4..
1
1
1
]]2
3
3
5


 34
=
=
=sC
L
LuUC7K7K
L
L
L[
]]3
4
4
6!,.-t---8888E$KK888U4[L>I
1XI
			
$-[#9#9		/		/Ah
I4 
I
I
I		256$4GHIIIII
I
I
I		256$4GHIIIII
I
VX....1111111111t
	:
	:A8882=DA3ZZ

E!VVXX&&!+a/QAGDMMMT

ATT$ZZ49999C?33TX>>>
49dh_#=#=>>???E9S>>66$()D//5$BCCDJ	L	L	L-VV4DEEE*di$(TXI1FGGG)TY999)TY222-RXJ???	$	$	$	
+TY

CCCCCs#E88%G$GGctj}||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd	||dd
d	||ddd
d}d}dD]}||z}||z}||||||||||||||||||||||||||||||||||||||||||d||dd||d
d||dddd||dddd|t|d|t|dd|t|dd|t|ddd||tdtdd	dS)NrrrrVxT j9W P)} "o`T"- l8P9cC/
S9bXl	9@{wM275k )	lZ'^%#>;*Q!/61^f^@U@)rUgcdrrrrs)rcrzrycabs       rtestGcdzMathTests.testGcdshQA&&&QA&&&RQ'''QA&&&QQ'''QA&&&QQ'''S"q)))S"r***R+++98::;=	?	?	?
O4V	-	-AAAAASSAYY***SSAYY***SS!QZZ+++SSQBZZ+++SSQBZZ+++SS!QZZ+++SS!aR[[!,,,SS!aR[[!,,,,"""S3'''TC(((S"c**A...S!R!,,,)S%000)S%444)S#t444)S#q$777[--{2??DDDDDrcddlm}ddlm}tj}tjtjt	jdt	j	dt	j
df}tt|dzD]T}|
||d|t	jtd|d|DU||d	d
d||dd
d||ddt	jd||dt!dt	jd|||d|d
d|||dd|d
d|dd||t#dt#dt#dt#dt	jd||ddd||dd||d|dt	jd|d||ddd|ddd|t(5|ddddn#1swxYwY|t(5|ddddddn#1swxYwYdt*jjd
zz}|t0t2f5|d|dddn#1swxYwY||t4t4||dt4t4||dt4t4||d t4t4||t6t4t4||t4t6t4||t8t6t4||t6t8t4||t4t4t4||t4t4t4||dt4t4|t	j|t6|t	j|dt6|t	j|t6d|t	j|dt6|t	j|t6t6|t	j|t6t>d!z}tdD]F}|t	j ||g|z|t	j|zGtdD]A}	tBd|	zz}
|t	jd"|
zd|
zd
|
zB|jt(tjgdgd#zd$RdS)%NrrFractionr@g@rc3 K|]	}|dzV
dS)rINrm)rHrhs  r	<genexpr>z&MathTests.testHypot.<locals>.<genexpr>%s&55qad555555rg(@r*@rprP
rrIrrtrrQ%%@rrrrr皙?string皙@rr rrrY)"rr	fractionsrrUhypotrrsqrtgammasinr r5assertAlmostEqualsumrr]r7rrrr^r1
max_10_expr{rrrrrrV	FLOAT_MAXisclose	FLOAT_MIN)rcrrrrr$int_too_big_for_float	fourthmaxrrEscales           r	testHypotzMathTests.testHypots######&&&&&&
vtw	#
3#Ns4yy{##		A""tBQBx 	#55D!H5555566



	
tS))4000r1r***q"ty||444q)C..1149Q<<@@@wwr{{GGAJJ77<<<xxB//!RAA88BPRCSCSTTTtAwwQa$q''BBDIaLLQQQ	
sC#...ut,,,#&&&M#uuT{{++	
	
	
	
E#sC  E#sC  	
	
	


y
)
)		EAJJJJ															


y
)
)	&	&E#x%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	& "s~'@1'D E



M:
;
;	,	,E!*+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	
sS)))q#,,,r3---sC#...sC#...sC#...tS))3///sD))3///tS))3///tcT**C000rC4#...	

55::..///
55C==11222
55b>>22333
55S>>22333
55c??33444
55::..///O	r	D	DAOODL)Q)@)2TYq\\)ACC
D
D
D
D99	D	DCs
*ETZ%5991U7CCCC)TZEC58EfEEEEEEs6<
MMM:NNN
O00O47O4z7hypot() loses accuracy on machines with double roundingc	Jtj}tj}tjd}dD]\}}t
|}t
|}|||||5tj|5t||dz||dzz	}dddn#1swxYwY|
||||dddn#1swxYwYdS)N)prec))z0x1.10e89518dca48p+29z0x1.1970f7565b7efp+30)z0x1.10106eb4b44a2p+29z0x1.ef0596cdc97f8p+29)z0x1.459c058e20bb7p+30z0x1.993ca009b9178p+29)z0x1.378371ae67c0cp+30z0x1.fbe6619854b4cp+29)z0x1.f4cd0574fb97ap+29z0x1.50fe31669340ep+30)z0x1.494b2cdd3d446p+29z0x1.212a5367b4c7cp+29)z0x1.f84e649f1e46dp+29z0x1.1fa56bef8eec4p+30)z0x1.2e817edd3d6fap+30z0x1.eb0814f1e9602p+29)z0x1.0d3a6e3d04245p+29z0x1.32a62fea52352p+30)z0x1.888e19611bfc5p+29z0x1.52b8e70b24353p+29)z0x1.538816d48a13fp+29z0x1.7967c5ca43e16p+29)z0x1.57b47b7234530p+29z0x1.74e2c7040e772p+29)z0x1.821b685e9b168p+30z0x1.677dc1c1e3dc6p+29)z0x1.9e8247f67097bp+29z0x1.24bd2dc4f4baep+29)z0x1.b73b59e0cb5f9p+29z0x1.da899ab784a97p+28)z0x1.94a8d2842a7cfp+30z0x1.326a51d4d8d8ap+30)z0x1.e930b9cd99035p+29z0x1.5a1030e18dff9p+30)z0x1.1592bbb0e4690p+29z0x1.a9c337b33fb9ap+29)z0x1.1243a50751fd4p+29z0x1.a5a10175622d9p+29)z0x1.57a8596e74722p+30z0x1.42d1af9d04da9p+30)z0x1.ee7dbd9565899p+29z0x1.7ab4d6fc6e4b4p+29)z0x1.5c6bfbec5c4dcp+30z0x1.02511184b4970p+30)z0x1.59dcebba995cap+30z0x1.50ca7e7c38854p+29)z0x1.768cdd94cf5aap+29z0x1.9cfdc5571d38ep+29)z0x1.dcf137d60262ep+29z0x1.1101621990b3ep+30)z0x1.3a2d006e288b0p+30z0x1.e9a240914326cp+29)z0x1.62a32f7f53c61p+29z0x1.47eb6cd72684fp+29)z0x1.d3bcb60748ef2p+29z0x1.3f13c4056312cp+30)z0x1.282bdb82f17f3p+30z0x1.640ba4c4eed3ap+30)z0x1.89d8c423ea0c6p+29z0x1.d35dcfe902bc3p+29)hxhyrr{rI)rUrrrContextr;r`subTestlocalcontextrr)	rcrrhigh_precisionrrrr{zs	         rtestHypotAccuracyzMathTests.testHypotAccuracyhs
/ c222$
*	1*	1FBJ

b!!A

b!!Aa155
1
1).99FFwwqzz1}wwqzz1}<BBDDEEAFFFFFFFFFFFFFFF  q!a000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1O*	1*	1s6D=C D C$$D'C$(#DD	D	cBddlm}ddlm}tj}tj}||ddd||dddtd	D]}td
D]}tdt|D}tdt|D}|
||||td
t||D||gdgdd||tgdtgdd||ddd||ddd||tddfdd||dtddfd||dtdfdd||ddd|||d|df|d|df|d|||dd|ddf|dd|ddf|dd||dd|d ||d!d!d"||d#d#d"|d$t	jd$|d%d&|d$t	jd$|d&d%||d'd(|d)d(Gd*d+t}	|||	ddd|t"5|dd,-dddn#1swxYwY|t"5|ddddn#1swxYwY|t"5|dd,d.dddn#1swxYwY|t"5|dddddn#1swxYwY|t"5|d/ddddn#1swxYwY|t$5|d0d1dddn#1swxYwY|t$5|dd2dddn#1swxYwY|t"5|d3d4dddn#1swxYwY|t"5|d5d6dddn#1swxYwYd7t&jjd
zz}
|t$t,f5|d|
fd8dddn#1swxYwY|t$t,f5|d8d|
fdddn#1swxYwY|t"5|d9ddddn#1swxYwY|t"5|dgddddn#1swxYwYGd:d;}|t$5|dg|gdddn#1swxYwYtd<D]Z}t/jt/j}}|||f|ft1||z
[t2d=d>d"d?t4t6g}t9j|d@AD]}t9j|d@AD]}dBt||D}
t=t?tj |
r&||||t4it=t?tj!|
r1|"t	j!|||ŒtFdCz}tdD]}|f|z}d&|z}|"t	j$||||t	j|z|"t	j$||||t	j|ztdD]s}tJd |zz}dD|zd@|zf}dE}|t	j||d
|z|t	j||d
|ztdS)FNrrr)rrr)rrrr)rrIr)rrIr	rPc3@K|]}tjddVdSrPNrSuniformrHks  rrz%MathTests.testDist.<locals>.<genexpr>.BBA&.Q//BBBBBBrc3@K|]}tjddVdSrrrs  rrz%MathTests.testDist.<locals>.<genexpr>rrc3,K|]\}}||z
dzVdS)rNrmrHpxqxs   rrz%MathTests.testDist.<locals>.<genexpr>s/FF&"bb2g#-FFFFFFr),@r)rrr)r)rIrrr)rrrr)rIi)rrrIrt)TTFTF)TFTTFr)g*@g)@g
rQrmr)r)rQ)rrr)rrr)rrrceZdZdS)MathTests.testDist.<locals>.TNrqrmrrTrrrr)rrPrw)pq)rVrr)rrr)rrIrr)rPrwrV)rrPrwrV)rrrrrrrrrrrrrrrrrrY)rrrrrrrrrrrrrrrrrrabcxyzr)rIrrQc"eZdZeZdS)$MathTests.testDist.<locals>.BadFloatN)rjrkrlryrhrmrrBadFloatrrrrrrrr)repeatcg|]
\}}||z
Srmrmrs   rrIz&MathTests.testDist.<locals>.<listcomp>s 999VRb999rrr)rQrQ)&rrrrrUdistrrr tuplerrzipiterr]rrrr{r^r1rrrSr'rrr	itertoolsproductanymaprWrVrrrr)rcDFrrr$rgrrrrrvaluesdiffsrrrErs                  rtestDistzMathTests.testDists|((((((++++++yy	
o/?@@#FFFi44c:::q		A1XX

BBqBBBBBBBqBBBBB&&DAJJDFFC1IIFFFFFGG
	
ooo/?/?/?@@#FFFd???33T:J:J:J5K5KLLcRRR	
k;77>>>gw//444y~~q17;;R@@@g	#';<<bAAAr9S>>2G<<bAAAh00"555qquuaaddmaaddAAbEE];;QQrUUCCCqqRyy!!Ar((3aa2hh"b		5JKK2r	$	$	$>>@@c	$	$	$
	
2244				
b"s+++M#ttGV4455	
	
	
	
M#ttFG4455	
	
	
	
D),,D),,	
	
	
								aa	llZ993???

y
)
)	+	+D9	****	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+


y
)
)		DOOO															


y
)
)	2	2DIy111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2


y
)
)		DAJJJ															


y
)
)	2	2D%y111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2


z
*
*	*	*Dy)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*


z
*
*	*	*DL)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*


y
)
)	/	/D$g...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/


y
)
)		D															 "s~'@1'D E



M:
;
;	5	5D!*+V444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5



M:
;
;	5	5D!23444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5


y
)
)		DqMMM															


y
)
)		D!aLLL																#	#	#	#	#	#	#	#

z
*
*	$	$D!xxzzl###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$r	;	;A=??FMOOqATT1$--s1q5zz::::tS$S9"6!444	<	<A&va888
<
<99s1ayy999s4:u--..<$$TT!QZZ5555TZ//00<OODJttAqzz$:$:;;;
<O	r	P	PAq A
AOODLaY15MNNOOOOODLaY15MNNOOOO99	7	7Cs
*E5!E'"AATYq!__ag666TYq!__ag6666	7	7s(RR	R'R??SS$S>>TT#
T<<UU!
U::U>U>
V88V<?V<
W66W:=W:
X44X8;X8
Y22Y69Y65[[[<\\\<
]]]:^^^_))_-0_-c|t5tjddggdddddS#1swxYwYdS)NrrI)rrrP)rr{rUrrgs rtest_math_dist_leakzMathTests.test_math_dist_leak(s


z
*
*	)	)Iq!fiii(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)sAA	ActtdttddzdtddDzddzd	d
zgz}|D]}||5tj|}|t
|t|||z||	||dz|dzzdddn#1swxYwY|
t5tjd
dddn#1swxYwYtjd}|t
|t||dtjd}|t
|t||dGddt}tj|d}|t
|t||d|
t5tj|ddddn#1swxYwYddtjddddg}|D]v}||5|
t 5tj|dddn#1swxYwYdddn#1swxYwYwdS)NriX>i(FcDg|]}tddD]
}d|z|zS)i(rI)r )rHrr$s   rrIz'MathTests.testIsqrt.<locals>.<listcomp>2s5HHHAsBHHAq!taxHHHHr<rWri'rir`rrTFrceZdZdZdZdS)(MathTests.testIsqrt.<locals>.IntegerLikec||_dSr_r`rbs  rrdz1MathTests.testIsqrt.<locals>.IntegerLike.__init__Ks
"


rc|jSr_r`rgs rrvz2MathTests.testIsqrt.<locals>.IntegerLike.__index__Ns
z!rNrwrmrrIntegerLikerJs2
#
#
#
"
"
"
"
"rrirrrza stringz3.5y@gY@r)listr rrUisqrtassertIsrrTassertLessEqual
assertLessrr{robjectrrr)rcrdrarhr
bad_valuess      r	testIsqrtzMathTests.testIsqrt-sU
t5|4455
6HHr3HHH
I$wD!
"	!	4	4EE**
4
4Ju%%

d1ggs+++$$QqS%000!ac{333	
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4

z
*
*		JrNNN															
Jt

d1ggs###AJu

d1ggs###A	"	"	"	"	"&	"	"	"
J{{4(())

d1ggs###B


z
*
*	(	(J{{2'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(

W_U33T4

 	&	&EE**
&
&&&y11&&Ju%%%&&&&&&&&&&&&&&&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&	&	&sm;A5C<<D	D	"EE
E:J$$J(+J(#L6>LL6L##L6&L#'L66L:	=L:	ctj}||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||dd	d
||d	dd
||dd
dd}d}dD]}||z}||z}||z|z}||||||||||||||||||||||||||||||||||||||||||d||dd||dd||dd	dd||ddd	d|t|d|t|dd	|t|dd|t|ddd||tdtd	d
dS)NrrrrVrlrmiYrnroiHrqrrrsl ,`aUx-xB:Vn
Ldblme%Y%l};T^	)rul|/Kr2rvi7rxry)rUlcmrrrrs)rcrrr{r|r}r~ds        rtest_lcmzMathTests.test_lcmbshQA&&&QA&&&RQ'''QA&&&QQ'''QA&&&QQ'''S"s+++S"s+++R,,,98::R	T	T	T
! (	-	-AAAAAA	ASSAYY***SSAYY***SS!QZZ+++SSQBZZ+++SSQBZZ+++SS!QZZ+++SS!aR[[!,,,SS!aR[[!,,,,"""S3'''TC(((S"c**E222S!R!,,,)S%000)S%444)S#t444)S#q$777[--{2??EEEEErc		|ttj|ttjdd|dtjddd|dtjddd|dtjdd	d
|dtjd	dd|t
tjd
d|t
tjdd|tjd
dd|tjddd|tjtdt|tjtdt|	tj
tjtddddddzfD]}|tjt|t|tjt|t|tjd
|d|tjd|d|tjd|d|tjd|d|	tj
tjt||t
tjd
||t
tjd||tjd|d|tjd|d|tjt|t|tjt|t|	tj
tjt|dS)Nrrz
ldexp(0,1)rrz
ldexp(1,1)rIzldexp(1,-1)rrzldexp(-1,1)r	rrrirQri+ild(	 Fx:^Vrr)rrrUr3rrrrrrrVrrcrs  r	testLdexpzMathTests.testLdexps)TZ000)TZc:::

<Aa!444

<Aa!444

=$*Qr"2"2C888

=$*R"2"2B777-RAAA-S'BBBB112666C22C888C,,c222D$//666
4:c1#5#566777R0	<	<ATZaR00#666TZqb114888TZQB//444TZaR00#666TZQB//444TZaR00#666OODJtz#r':':;;<<<mTZQ???mTZa@@@TZA..333TZQ//555TZQ//555TZa00$777OODJtz#q'9'9::;;;;	<	<rcH|ttj|ttjddd|dtjdtjzd|dtjdd|dtjtjd|d	tjd
dd|dtjd
dzd
d|dtjd
dzdd|dtjd
dzd|ttjd|ttjd
dz|ttjd
d|ttjt|tjtt|
tjtjtdS)NrrIrzlog(1/e)rzlog(1)rzlog(e)z	log(32,2)rtrPzlog(10**40, 10)rrzlog(10**40, 10**20)rz
log(10**1000)rgO+@rr )
rrrUlogrrr{rrrrrVrrgs rtestLogzMathTests.testLogs)TX...)TXq!Q777

:tx$&112666

8TXa[[!,,,

8TXdf--q111

;A222

$dhr2vr&:&:B???

($(2r66*B*BAFFF

?DHRX$6$6%	'	'	'*dh555*dhT	:::*dhC888*dh555#,,,
48C==1122222rc	|ttjdddzddzfD]I}|tj|tjt|J|ttjd|tjttdS)NrIZi,r)	rrrUlog1prr;r{rrrs  r	testLog1pzMathTests.testLog1ps)TZ000QUAsF#	H	HA""4:a==$*U1XX2F2FGGGG*dj"555C#.....rc`|ttj|tjdd|tjdd|tjdd|tjddzd|tjdd	zd
|tjddzd|t
tjd
|t
tjt|tjtjtdS)NrrQrIrrrig@g@ig@@r)
rrrUlog2rr{rrrVrrgs rtestLog2zMathTests.testLog2sB)TY///	
1s+++1s+++1s+++	
1d7++V4441d7++V4441d7++V444*di666*di666
49S>>2233333rrcdtddD}dtddD}|||dS)Nc\g|])}tjtjd|*SrF)rUrr3rGs  rrIz+MathTests.testLog2Exact.<locals>.<listcomp>s.LLLA$)DJsA..//LLLrrNrc,g|]}t|Srmr;rGs  rrIz+MathTests.testLog2Exact.<locals>.<listcomp>999E!HH999r)r r)rcrfr)s   r
testLog2ExactzMathTests.testLog2Exacts[
MLud9K9KLLL99eE4&8&8999*****rct|ttj|dtjdd|dtjdd|dtjdd|d	tjdd
zd|t
tjd|t
tjdd
z|t
tjt|tjtt|
tjtjtdS)
Nz
log10(0.1)皙?rzlog10(1)rrz	log10(10)rzlog10(10**1000)rg@@r)
rrrUlog10rr{rrrrrrVrrgs r	testLog10zMathTests.testLog10s5)TZ000

<C"555

:tz!}}a000

;
2222

$djT&:&:FCCC*dj$777*dj2t8)<<<*dj$777#,,,
4:c??3344444rcttjfd}|dtjdd|dtjddtjt
dt
ftjtd	tftjt}tj	|d
tj	|ddS)Nc||c\}}\}}t||z
tkst||z
r|d|d|dSdSr&r')rr(r)v1v2e1e2rcs       rtestmodfz$MathTests.testModf.<locals>.testmodfsy!'HRhr22b5zzC3r"u::		44344444 rz	modf(1.5)r)rrz
modf(-1.5)r)rrrQrrr)
rrrUmodfrrrrrrV)rcrmodf_nans`  rtestModfzMathTests.testModfs)TY///	4	4	4	4	4	dinnj999ty===3#s44444,7779S>>
8A;//000
8A;//00000rc(|ttj|dtjddd|dtjddd|dtjddd|dtjddd	|tjtdt|tjtdt|tjdtd
|tjdtd
|tj	tjtd|tj	tjdt|tj	tjdt|tjdtd|ttjdd|tjdtd|tjdd
d|tjddd|tjddd|tjddd
|tjddd
|ttjdd|ttjdd|ttjdd|tjdtt|tj	tjdt|tjttt|tjtd
t|tjtdt|tjtdt|tjtdd
|tjtdd
|tjtdd|tjtdd|tjtdd|tjttd|tj	tjtt|tjdtd|tjdd
d|tjddd|tjddd|tjddd
|tjddd
|ttjdd|ttjdd|ttjdd|tjdtt|tj	tjdt|tjttt|tjtd
t|tjtdt|tjtdt|tjtdd
|tjtdd
|tjtdd|tjtdd|tjtdd|tjttd|tj	tjtt|tjdtd
|tjdd
d|ttjdd|tjddd
|tjddd
|tjddd
|tjddd
|ttjdd|tjddd|tjdtd
|tj	tjdt|tjd
td
|tjd
d
d
|tjd
dd
|tjd
dd
|tjd
dd
|tjd
dd
|tjd
dd
|tjd
dd
|tjd
dd
|tjd
td
|tjd
td
|tjddd
|tjddd
|tjtdd
|tjddd
|tjddd
|tjtdd
|ttjdd|ttjdd|tjdtd|tjdtd|tjdtt|tjdtt|tjdtt|tjdtt|tjdtd|tjdtd|tjdtt|tjdtt|tjdtd|tjdtd|tjdtd|tjdtd|tjdtt|tjdtt|dtjdd
d |d!tjddd"|d#tjdd
d|d$tjddd
|d%tjddd
|d&tjddd'|d(tjddd)|d*tjddd+|ttjdd'|ttjdd	dS),Nzpow(0,1)rrzpow(1,0)zpow(2,1)rIz	pow(2,-1)rrrrrQrrrrgrr!rg.ggffffff?r?rggggffffffz	(-2.)**3.g z	(-2.)**2.rz	(-2.)**1.z	(-2.)**0.z
(-2.)**-0.z
(-2.)**-1.rz
(-2.)**-2.?z
(-2.)**-3.g)
rrrUpowrrrrrrVrrr{rgs rtestPowzMathTests.testPows)TX...

:tx!}}a000

:tx!}}a000

:tx!}}a000

;2444#q))3///$**D111$(1c**R000$(1d++b111
48C#3#344555
48As#3#344555
48As#3#344555!S))1----66BBB	
"c**B///"b))2..."c**B///"b))2..."b))2..."c**B///*dhC888*dhD999*dhC888"d++S111
48B#4#455666	
#s++S111#r**C000#s++S111#r**C000#r**B///#s++R000#s++R000#t,,b111#s++R000#t,,b111
48C#5#566777	
#s++R000#r**C000#s++R000#r**B///#r**B///#s++R000*dhS999*dhT:::*dhS999#t,,c222
48C#5#566777	
$,,c222$++T222$,,c222$++S111$++R000$,,b111$,,b111$--r222$,,c222$--r222
48D##6#677888	
#s++R000#r**C000*dhS999#r**B///#r**B///#s++R000#s++R000*dhT:::#s++S111#t,,b111
48C#5#566777	
"c**B///"b))2..."c**B///"b))2..."b))2..."c**B///"c**B///"d++R000"c**B///"d++R000"c**B///	
#r**B///$++R000#r**B///#s++R000$,,b111#s++R000	
*dhS999*dhd;;;	
#t,,b111#t,,b111#t,,c222#t,,c222$--s333$--s333$--r222$--r222	
#s++S111#s++S111#s++R000#s++R000$,,b111$,,b111$,,c222$,,c222	

;s 3 3T:::

;s 3 3S999

;s 3 3T:::

;s 3 3S999

<$!5!5s;;;

<$!5!5t<<<

<$!5!5t<<<

<$!5!5v>>>*dhd;;;*dhc:::::rc|ttj|dtjdtj|dtjdtjdz|dtjdtjdz|d	tjd
d
dS)Nzradians(180)zradians(90)rrIzradians(-45)irz
radians(0)r)rrrUradiansrrrgs rtestRadianszMathTests.testRadianss)T\222

>4<#4#4dg>>>

=$,r"2"2DGAI>>>

>4<#4#4twhqjAAA

<a!44444rcfddlmfd}gd}|D]}|5|\}}}t|}t|}t|}	||||	t
j||}
|
	|		dddn#1swxYwYtd}tddD]k}|dkr	||z}td	D]M}
|
|z}t
j||}
||||
t
j||}
||||
Nltd
ddd
ttfD]\}t
jt|t
j|t]dD]^}t
j|t|t
j|t|_td
dd
dtfD])}t 5t
jt|dddn#1swxYwYt 5t
jt|dddn#1swxYwYt 5t
j|d
dddn#1swxYwYt 5t
j|ddddn#1swxYwY+dS)Nrrc	|||}}}t|t|dz||z
|z}|t|t|t|dzkr+|dzt|dzdSdS)NrI)rr'rrT)	rr{rfxfyfrrrrcs	       r
validate_specz.MathTests.testRemainder.<locals>.validate_specs
"!hhqkk88A;;BB  R#bd))444bBAQA'''2ww#bd))##  1c!A#hh/////$#r)0z-4.0 1 -0.0z-3.8 1  0.8z-3.0 1 -0.0z-2.8 1 -0.8z-2.0 1 -0.0z-1.8 1  0.8z-1.0 1 -0.0z-0.8 1 -0.8z-0.0 1 -0.0z 0.0 1  0.0z 0.8 1  0.8z 1.0 1  0.0z 1.8 1 -0.8z 2.0 1  0.0z 2.8 1  0.8z 3.0 1  0.0z 3.8 1 -0.8z 4.0 1  0.0z&0x0.0p+0 0x1.921fb54442d18p+2 0x0.0p+0z?0x1.921fb54442d18p+0 0x1.921fb54442d18p+2  0x1.921fb54442d18p+0z?0x1.921fb54442d17p+1 0x1.921fb54442d18p+2  0x1.921fb54442d17p+1z?0x1.921fb54442d18p+1 0x1.921fb54442d18p+2  0x1.921fb54442d18p+1z?0x1.921fb54442d19p+1 0x1.921fb54442d18p+2 -0x1.921fb54442d17p+1z?0x1.921fb54442d17p+2 0x1.921fb54442d18p+2 -0x0.0000000000001p+2z00x1.921fb54442d18p+2 0x1.921fb54442d18p+2  0x0p0z?0x1.921fb54442d19p+2 0x1.921fb54442d18p+2  0x0.0000000000001p+2z?0x1.2d97c7f3321d1p+3 0x1.921fb54442d18p+2  0x1.921fb54442d14p+1z?0x1.2d97c7f3321d2p+3 0x1.921fb54442d18p+2 -0x1.921fb54442d18p+1z?0x1.2d97c7f3321d3p+3 0x1.921fb54442d18p+2 -0x1.921fb54442d14p+1z?0x1.921fb54442d17p+3 0x1.921fb54442d18p+2 -0x0.0000000000001p+3z00x1.921fb54442d18p+3 0x1.921fb54442d18p+2  0x0p0z?0x1.921fb54442d19p+3 0x1.921fb54442d18p+2  0x0.0000000000001p+3z?0x1.f6a7a2955385dp+3 0x1.921fb54442d18p+2  0x1.921fb54442d14p+1z?0x1.f6a7a2955385ep+3 0x1.921fb54442d18p+2  0x1.921fb54442d18p+1z?0x1.f6a7a2955385fp+3 0x1.921fb54442d18p+2 -0x1.921fb54442d14p+1z?0x1.1475cc9eedf00p+5 0x1.921fb54442d18p+2  0x1.921fb54442d10p+1z?0x1.1475cc9eedf01p+5 0x1.921fb54442d18p+2 -0x1.921fb54442d10p+1z 1  0.c  0.4z-1  0.c -0.4z 1 -0.c  0.4z-1 -0.c -0.4z 1.4  0.c -0.4z-1.4  0.c  0.4z 1.4 -0.c -0.4z-1.4 -0.c  0.4z$0x1.dp+1023 0x1.4p+1023  0x0.9p+1023z$0x1.ep+1023 0x1.4p+1023 -0x0.ap+1023z$0x1.fp+1023 0x1.4p+1023 -0x0.9p+1023)casez1p-1074irrQrrr)rrrQrr)rrrr:r;r`rU	remainderrhexr rrrassertIsNaNrr{)rcr!	testcasesr"x_hexy_hexexpected_hexrr{r)rftinyrmrars`              @r
testRemainderzMathTests.testRemainders&&&&&&
	0
	0
	0
	0
	0
	0 9
9
9
	v
	?
	?D4((	
?	
?-1ZZ\\*ulMM%((MM%(( ==66
aH---1--  x||~~>>>	
?	
?	
?	
?	
?	
?	
?	
?	
?	
?	
?	
?	
?	
?	
?}}Y''sB		-		-AAvvDA3ZZ
-
-H1--
aF+++A..
qb!V,,,,
-3c4s;	9	9ET^C77888T^E3778888,	A	AET^E377???T^E488%@@@@D$S#6	,	,E"":..
+
+sE***
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+"":..
,
,tU+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,"":..
+
+uc***
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+"":..
,
,ud+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,	,	,sZCC<<D	D	#K

K	K	/LL	L	;MM!	$M!	N$$N(	+N(	c|ttj|dtjdd|dtjtjdzd|dtjtjdzd	|tjtjt|tjtjtnf#t$rY|ttjt|ttjtYnwxYw|tjtjtdS)Nzsin(0)rz	sin(pi/2)rIrz
sin(-pi/2)r)rrrUrrrrrVrrr{rrgs rtestSinzMathTests.testSin sW)TX...

8TXa[[!,,,

; 3 3Q777

<47(1*!5!5r:::	:OODJtx}}55666OODJtx~~667777	:	:	:j$(C888j$(D99999	:	

48C==1122222s=A<D::A FFc|ttj|dtjdd|dtjddztjddzz
d|dtjdtjdzd|tjtt|tjtt|	tj
tjtdS)Nzsinh(0)rzsinh(1)**2-cosh(1)**2rrIrzsinh(1)+sinh(-1))rrrUsinhrrrrrrrVrrgs rtestSinhzMathTests.testSinh-s)TY///

9dillA...

*DIaLL!ODIaLL!O,KRPPP

%ty||DIbMM'A1EEE3---4$///
49S>>2233333rc|ttj|dtjdd|dtjdd|dtjdd|dtjdd	|d
tjdd|d
tjdd|dtjdd|tjtt|ttjd|ttjt|	tj
tjtdS)Nzsqrt(0)rrQz	sqrt(2.5)g@gS[:XL?z
sqrt(0.25)rrzsqrt(25.25)g@9@g)#L@zsqrt(1)rzsqrt(4)rrIr)rrrUrrrrr{rrrVrrgs rtestSqrtzMathTests.testSqrt6sl)TY///

9dillA...

9dinnc222

;	#0BCCC

<4#666

=$)E"2"24EFFF

9dillA...

9dillA...3---*di444*di666
49S>>2233333rc|ttj|dtjdd|dtjtjdzd|dtjtjdzd	|tjtjt|tjtjtn]#|ttjt|ttjtYnxYw|tjtjtdS)Nztan(0)rz	tan(pi/4)rrz
tan(-pi/4)r)rrrUtanrrrrVrrr{rrgs rtestTanzMathTests.testTanDsC)TX...

8TXa[[!,,,

; 3 3Q777

<47(1*!5!5r:::	:OODJtx}}55666OODJtx~~667777	:j$(C888j$(D99999
48C==1122222s=A<D::AFcz|ttj|dtjdd|dtjdtjdzdtjd|dtjtd|dtjtd|tj	tjtdS)	Nztanh(0)rztanh(1)+tanh(-1)rrrz	tanh(inf)z
tanh(-inf))rrrUtanhrrrrrrVrrgs rtestTanhzMathTests.testTanhQs)TY///

9dillA...

%ty||DIbMM'A18A;;		(	(	(

;	#222

<4"555
49S>>2233333rc|tjdd|tjdtjdtjdddS)Nrr)rrUr9rrgs rtestTanhSignzMathTests.testTanhSignZsi	
3---r49S>>::r3//	1	1	1	1	1rcX|tjdd|tjdd|ttjdt|ttjdt|tjdd|tjdd|tjdd|tjdd|tjdd|tjd	d
Gdd}Gd
dt
}Gdd}Gdd}|tj|d|tj|d|ttj|ttjdd|ttjtd|ttj||ttj|dS)Nrrrrg?gg!rg-?YiceZdZdZdS)'MathTests.test_trunc.<locals>.TestTrunccdSNrmrgs r	__trunc__z1MathTests.test_trunc.<locals>.TestTrunc.__trunc__nrrNrjrkrlrCrmrr	TestTruncr?mrrrEceZdZdZdS)(MathTests.test_trunc.<locals>.FloatTrunccdSrArmrgs rrCz2MathTests.test_trunc.<locals>.FloatTrunc.__trunc__qrrNrDrmrr
FloatTruncrGprrrIceZdZdS))MathTests.test_trunc.<locals>.TestNoTruncNrqrmrrTestNoTruncrKsrrrLc"eZdZeZdS)*MathTests.test_trunc.<locals>.TestBadTruncN)rjrkrlryrCrmrrTestBadTruncrNurrrOrBrIg7@)
rrUtruncrrTr;rrr]r{)rcrErIrLrOs     r
test_trunczMathTests.test_truncasA***B,,,djmm,,c222djoo..444C!,,,D))2...H--q111I..333I..333H--t444																									#	#	#	#	#	#	#	#	
IIKK00"555JJLL112666)TZ000)TZA666)TZ4AAA)TZ???*dj,,..AAAAArcv|tjd|tjd|tjd|tjd|tjt	d|tjt	d|tjt	ddS)NrQrrrrrr)rrUisfiniteassertFalser;rgs rtestIsfinitezMathTests.testIsfinites
c**+++
d++,,,
c**+++
d++,,,uU||44555uU||44555uV}}5566666rcH|tjtd|tjtd|tjtddz|tjtd|tjd|tjddS)Nrz-nanrrQr)rrUrVr;rTrgs r	testIsnanzMathTests.testIsnans
5<<00111
5==11222
5<<"#455666E%LL11222B(((B(((((rcv|tjtd|tjtd|tjd|tjd|tjtd|tjd|tjddS)NrrggrrQr)rrUrWr;rTrgs r	testIsinfzMathTests.testIsinfs
5<<00111
5==11222
5))***
6**+++E%LL11222B(((B(((((rch|tjtjdSr_)rrUrVrrgs rtest_nan_constantzMathTests.test_nan_constants&
48,,-----rc^|tjtj|tjd|tjt
d|tjt
ddS)NrQrr)rrUrWr
assertGreaterrr;rgs rtest_inf_constantzMathTests.test_inf_constants|
48,,---48S)))5<<000$(E&MM22222rzrequires verbose modec	tjd}n#|dYnxYw|dkr|d	tjd}|dn#t$rYnwxYw	tjd}|ddS#t
$rYdSwxYw)	Ni6ez6underflowing exp() should not have raised an exceptionrz)underflowing exp() should have returned 0iʚ;z.overflowing exp() didn't trigger OverflowErrorrz sqrt(-1) didn't raise ValueError)rUrErrrr{rcrs  rtest_exceptionszMathTests.test_exceptionss	(%%AA	(
II'
(
(
(
(
(66IIABBB	H$$A
IIFGGGG			D		:	$A
II899999			DD	s,0A99
BB
B55
CCcdh}d}tjdkr`tjd}	tt	t
|d}n#t$rYnwxYwd}g}ttD]\}}}}	}
}}|	dks|dkr|dvr||dkr||vr)tt|}
d	|vsd
|vrd}
nd|vrd
}
	|
|}n#t$rd}Ynt$rd
}YnwxYwd\}}t|
|||}||||||}|||r-|dd|zdSdS)Ntan0064darwinr.{}: {}({!r}): {}rQ)rectpolar)rrPinvaliddivide-by-zeror{overflowrrPrQzFailures in test_testfile:
  
  )r^platformmac_verrrrTr:r{rO	test_filegetattrrUrr[r(rarjoin)rc
SKIP_ON_TIGERosx_versionversion_txtrYfailuresrArBaraiereirFfuncr(r+r,rXmsgs                   r
test_testfilezMathTests.test_testfiles#
<8##"*,,Q/K
#C[->->s-C-C$D$DEE



&-;I-F-F"	!"	!)BBBESyyB#II&&&&;+@+@&&4$$DE!!%5%>%>!u$$$
)b
&
&
&% 
)
)
)(
) &GW"2vw@@G//"b"g66COOC    	-II6kk(++,
-
-
-
-
-	-	-s)5A&&
A32A3C**D8DDc<d}g}ttD]\}}}}}tt|}d|vsd|vrd}nd|vrd}	||}	n#t$rd}	Ynt
$rd}	YnwxYwd\}
}|dkrd	}
n)|d
krd}n |dkr|d
kr|dkrd}
n|dkrd}
nd}
t
||	|
|}||||||}
||
|r-|	dd
|zdSdS)Nrfrirjr{rkrrlrrlgammagV瞯<erfcrQrr$@rrzFailures in test_mtestfile:
  rm)rGmath_testcasesrqrUr{rr[r(rarrr)rcrYrvrArBrCr)rFr{r*r+r,rXr|s              rtest_mtestfilezMathTests.test_mtestfiles%,;N,K,K8	!8	!(BC54$$DE!!%5%>%>'u$$*
&d3ii
#
#
#" 
&
&
&%
& &GWW}}x
 v#**99 GG4ZZ!GG"G"8S'7CCG//"b#w77COOC    	-II7kk(++,
-
-
-
-
-	-	-sAA0"A0/A0cRddlm}tj}||gd||gdd||tt
ddd||ttt
ddd||t
dd	d	d
||gdd||gd
d||gdd||gdd||d|ddgdGdd}|t5|d|gdddn#1swxYwY||gdd||gdtd|t||t|d|t|gd|t|gdd|t|ddgdtdtd g}|t||td|t|dgdgdgg|t|ddig|t|ddigdzddi|t|dgdgdggg||ddgd!d"||ddgddggd#||gddiddi|t5|d	d$gddddn#1swxYwY||gd%d||gd&d||gd'dd:d(}t
dd)}|||||t
d*d+}|||||t
d,d-}|||dd.t
dd-D}|||||d/t
d,d+D}|||||d0t
d,d-D}|
|||
|dddtd1ddg|
|ddtd1ddg|
|dtd1ddg|
|dtd2td1dg|
|dtd3td1dg|
|dtd1td2dg|
|dtd1td3dg||dddtd2d4d5gtd3||dddtd3d4d5gtd2|
|dddtd2d4d5g|
|dddtd3d4d5g|
|dddtd2d4ddg|
|dddtd3d4ddg|t|gd6t|t|gd7t|t|t
dd)t|t|t
dd)dt|t|dt!jd8dd5dd9gt jdS);NrrrrP)rrIriri_7)rrIrrrPrn)rrrrrrx)rrIrrr)rrrrrPrrrceZdZdZdS)(MathTests.test_prod.<locals>.BadMultiplyctr_)RuntimeError)rcothers  r__rmul__z1MathTests.test_prod.<locals>.BadMultiply.__rmul__Ys""rN)rjrkrlrrmrrBadMultiplyrXs#
#
#
#
#
#rrr)rrrrr)rrrrrr)r}r~r|acrbababababababab)rrIrrIrrIrrIrrIrrIr)rrrIr)rrrIr)rrIrrc|D]}||z}|Sr_rm)r8relems   r_naive_prodz(MathTests.test_prod.<locals>._naive_prod{s! 


Lri'irirc,g|]}t|SrmrrHrs  rrIz'MathTests.test_prod.<locals>.<listcomp>s555E!HH555rc,g|]}t|Srmrrs  rrIz'MathTests.test_prod.<locals>.<listcomp>s777E!HH777rc,g|]}t|Srmrrs  rrIz'MathTests.test_prod.<locals>.<listcomp>rrrrrrr)rrIrrrPrw)rrrrrPrwrrwrQ)rrrUprodrrr rrrr;r	bytearrayr&rrTrr)rcrrrrrr8s       r	test_prodzMathTests.test_prodGs
++++++yb1%%%b***A...d51::..//666d4a

#3#34455t<<<eArll"555w???ooo..44477788%@@@11122E:::33344e<<<r11Q77m,,c222	#	#	#	#	#	#	#	#

|
,
,	'	'D#{{}}%&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	
11122E:::55566eEEE)T***)T2...)T???;;;)T???"EEE)TD$<sCCCD//9T??3)T63HHH)TQC!qc?;;;)TQqE7333)TQqE719QqEBBB)TQC!qc?"EEE	
q!fD111>BBBq!fQF3335Y5Y5YZZZbA///!A777


y
)
)		D"b1																
lll++Q///lll++Q///lll++Q///				E??hX)>)>???$$hX)>)>???%%h+++65eAtnn555hX)>)>???77eE2&6&6777hX)>)>???99eE4&8&8999h(((	
q!Qea;<<===q!U5\\1a899:::q%,,1566777q%,,eQ?@@AAAq%--ua@AABBBq%,,eQ?@@AAAq%,,f

a@AABBBq!QeR:;;U6]]KKKq!Qf

b;<<eEllKKKq1U5\\2q9::;;;q1U6]]B:;;<<<q!Qeb!Q?@@AAAq!Qf

r1a@AABBB	
dd#5#5#56677===dd#7#7#788995AAAdd5E??3344c:::dd5E??#>>>??GGGddAws';';Q1a#HIIJJ 	*	*	*	*	*s$G;;G?G?Q""Q&)Q&ctj}tj}tdD]y}|dkrt|dzn#|dkrtdntdD]:}|||||||||z
z;ztddD]X}td|D]E}||||||dz
|dz
|z||dz
|zFYtddD]k}|||dd|||d|||||||ltdD]S}||||||||d||T|t|dd	|t|dtjd	|t|dd
|t|dd|t|tjdd|t|dd|t||t|ddd
|t||t|dd|t|ddzd|t|dd|t|dddz||ddd||dddzdddz}|||dd|||d||||d||dz
ztjdr|t|||dD]W\}}||||d|
t|||tX||t!dt!dd||t#dt#ddtd
D]}|
t|t!dt!|t|
t|t#dt#|tdS)NrrrrWrrrrr1r10rrrIrTcpython)TT)TF)FFrP)rUpermrr rrrrrr{rcheck_impl_detailrrrrTrprs)rcrrrrs     rtestPermzMathTests.testPermsyN	s	C	CA&'#ggeAElllC5999USUYY
C
C  a!*11q51A1A!ACCCC
C
q#	V	VA1a[[
V
V  aTT!a%Q-?-?!-Cdd1q5RSnn-TUUUU
Vq#	7	7ATT!QZZ+++TT!QZZ+++TT!QZZ16666r	:	:ATT!WWiill333TT!T]]IIaLL9999	
)T2s333)T2ws/C/CDDD)T2s333)T4333)T7?4+@+@!DDD)T4333)T***)T2q!444)T***	
*dB222*dQWHa888*dAr222*dA4x888	
aQ'''aD))1---
tGaQ'''aQ'''aQ!A#Y///$T222	9mT1a888?	1	1DAqTT!QZZ+++MM$ttAqzz**C0000k!nnk!nn==rBBBk!nnk!nn==rBBBq	K	KAMM$ttKNNKNNCCDDcJJJMM$ttKNNKNNCCDDcJJJJ	K	Krc
tj}tj}tdD]}|dkrt|dzn#|dkrtdntdD]F}|||||||||||z
zzGtddD]U}td|D]B}||||||dz
|dz
||dz
|zCVtdD]B}|||dd||||dCtddD]E}|||d|||||dz
|FtdD]D}t|dzD]/}||||||||z
0E|t|dd	|t|dtjd	|t|dd
|t|dd|t|tjdd|t|dd|t|d|t|ddd
|t||t|dd|t|ddzd|t|dd|t|dddz||ddd||dddzdddz}|||dd|||d||||d||dz
zdz||||d||||dz
|||||dz
||dz
zdztjdr |t|||dzdD]W\}}||||d|
t|||tX||t!dt!dd||t#dt#ddtd
D]}|
t|t!dt!|t|
t|t#dt#|tdS)NrrrrWrrrrIrrrrrrrTrrrP)rUcombrr rrrrrr{rrrrrrTrprs)rcrrrrs     rtestCombzMathTests.testCombs}yN	s	:	:A&'#ggeAElllC5999USUYY
:
:  aYYq\\!	!yyQ'7'77.9::::
:
q#	R	RA1a[[
R
R  aTT!a%Q-?-?$$q1ua..-PQQQQ
Rs	,	,ATT!QZZ+++TT!QZZ++++q#	0	0ATT!QZZ+++TT!QU^^Q////s	=	=A16]]
=
=  aTT!QU^^<<<<
=
	
)T2s333)T2ws/C/CDDD)T2s333)T4333)T7?4+@+@!DDD)T4333)T2...)T2q!444)T***	
*dB222*dQWHa888*dAr222*dA4x888	
aQ'''aD))1---
tGaQ'''aQ'''aQ!A#Y!^444aQ'''a1q)))a1qAaCyA~666$T222	<mT1ad;;;?	1	1DAqTT!QZZ+++MM$ttAqzz**C0000k!nnk!nn==rBBBk!nnk!nn==rBBBq	K	KAMM$ttKNNKNNCCDDcJJJMM$ttKNNKNNCCDDcJJJJ	K	KrcF	|tjdtd|tjdtd|tjddd|tjddd|tjd	ttd
|tjd	ttd|tjddd|tjd
dd|tjdd
d
tjj	tjj
z}|tjdt||tjd
t||tjdt||tjd
t||tj|dd|tj|dd
|tj|d
d|tj|d
d
tjj}|tjtd||tjtd||tj|tt|tj|tt|tjtd	|tjd	t|tjttdS)Ng0Cg/Cg0CgCrQgCggrz0x1.fffffffffffffp-1z0x1.0000000000001p+0rr)rrU	nextafterrr;r`assertEqualSignr^r1minepsilonr4r&r)rcsmallest_subnormallargest_normals   rtest_nextafterzMathTests.test_nextafter3s	
(:SDAA+	-	-	-(:C@@+	-	-	-(=sCC.	0	0	0(>DD/	1	1	1	
cT22'=>>	@	@	@S11'=>>	@	@	@	
S113777T^D$77>>>T^D$77>>>!^/#.2HHc224FGGGc224FGGGsd336H5HIIIsd336H5HIIIT^,>EEtLLLT^-?,?FFMMMT^,>EEtLLLT^-?,?FFMMM+S11>BBBc22^ODDD<<cBBB#>>EEE	
S11222S11222S1122222rcR|tjdtjj|tjdd|tjdd|tjdd|tjdtjjtjjz|tjtttjttz
|tjtt|
tjtjddddtfD]k}||5|tj|tj|dddn#1swxYwYldS)	Nrllrlg@rQr)
rrUrr^r1rrrrrr&rrr`s  rtest_ulpzMathTests.test_ulpas#(>???'**C000'**C000'**F333	
#+cn.DD	F	F	F),,"T^It%D%DD	F	F	F	
#,,,$(++,,,sGWc2	<	<A""
<
<  1"tx{{;;;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<	<	<s<HH	"H	cDGdd}tjtjtjfD]n}|}|t
5|d|dddn#1swxYwY|t|ddodS)NceZdZdZdS)$MathTests.test_issue39871.<locals>.Fcd|_ddzdS)NTrr)	convertedrgs rrhz.MathTests.test_issue39871.<locals>.F.__float__|s!%!rN)rjrkrlrhrmrrrr{s#




rrznot a numberrF)rUrrr$rrrTrq)rcrr{r{s    rtest_issue39871zMathTests.test_issue39871xs								J
t~=	=	=DA""9--
(
(^Q'''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

WQU;;<<<<	=	=s
A00A4	7A4	c|ttjd|ttjd|ttjdd|ttjdd|ttjd|ttjddddS)NrYrrr)rrrUrEerfrrgs rtest_input_exceptionszMathTests.test_input_exceptionss)TXv666)TXv666)TZ===)TZf===)TZ555)TZc3?????rctj|s*|d|dSdS)NzExpected a NaN, got {!r}.)rUrVrr(rbs  rr&zMathTests.assertIsNaNsHz%  	AII188??@@@@@	A	Arc	||||tjd|tjd|dSr[)rrUr)rcrr{s   rrzMathTests.assertEqualSignsS		
AsA..
c10E0EFFFFFrNrl)QrjrkrlrrrrrrrrrrrrrrunittestskipIfr^rnmachinerrrrrrrrcpython_onlyrrr#r/HAVE_DOUBLE_ROUNDINGrjrrrrrrrrrrrrequires_mac_verrrrrrr-r/r2r4r7r:r<rQrUrWrYr[r^
skipUnlessrrar}rrrrrrrrr&rrmrrrrs6666...	4	4	4555	4	4	4555444	5	5	5<:<:<:|444 %;%;%;N:::B333X_S\W,W1A1A1C1CGW1W[]]44]]4555<<<	=	=	=///@@@:::
<<<#<#<#<J;;;.888$X_)MOOmDmDOOmD^(E(E(ETMFMFMF^X_)NPP:1:1PP:1x777B)))
3&3&3&j*F*F*FX<<<B333$///444"Wb!$$++%$+
5
5
5111&H;H;H;l555~,~,~,@333444444333444111BBB@777))))))...333X"9::::;::>6-6-6-p@-@-@-Dd*d*d*L>K>K>K@DKDKDKL+3+3+3Z<<<,=== @@@AAAGGGGGrrcveZdZejZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdS)IsCloseTestsc`||j||g|Ri||d|ddS)N and z should be close!r|)rrrcr}r~rkwargss     r
assertIsClosezIsCloseTests.assertIsCloses\Q;D;;;F;;<=AAqqqA		C	C	C	C	Crc`||j||g|Ri||d|ddS)Nrz should not be close!r)rTrrs     rassertIsNotClosezIsCloseTests.assertIsNotCloses^a<T<<<V<<ABAAAF		H	H	H	H	Hrc:|D]\}}|j||g|Ri|dSr_)rrcexamplesrrr}r~s      rassertAllClosezIsCloseTests.assertAllClosesG	6	6DAqDq!5d555f5555	6	6rc:|D]\}}|j||g|Ri|dSr_)rrs      rassertAllNotClosezIsCloseTests.assertAllNotClosesG	9	9DAq!D!!Q88888888	9	9rc2|t5|ddddddn#1swxYwY|t5|ddddddddS#1swxYwYdS)Nrg0.+rel_tolr@g _©rr,)rr{rrgs rtest_negative_tolerancesz%IsCloseTests.test_negative_tolerancess/


z
*
*	6	6q!W555	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6


z
*
*	D	Dq!VUCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	Ds#AAA%BBBc>gd}||dddS)N))rr)N@ir);r)i90g@)rQr)NFrrQrr)rcidentical_exampless  rtest_identicalzIsCloseTests.test_identicals8000	
.SIIIIIrcjgd}||d||ddS)N))gחAgחA)g:0yEgnyE)g	ѭ?gfNӭ?:0yE>r&.>rr)rceight_decimal_places_exampless  rtest_eight_decimal_placesz&IsCloseTests.test_eight_decimal_placessS)C)C)C%	
94HHH<dKKKKKrcjgd}||d||ddS)N))rrQ)g&.rQ)gu?j/ʠrQrrrr)rr)rcnear_zero_exampless  rtest_near_zerozIsCloseTests.test_near_zerosP...	
13???.=====rc|tt|ttd|tt|ttddS)NrQr)rrrrgs rtest_identical_infinitez$IsCloseTests.test_identical_infinitesj3$$$3S1114&&&4s33333rcttftdfdtfttfttfttftdfdtftdfdtfg
}||ddS)Nr@rrXg?r)rrrr)rcnot_close_exampless  rtest_inf_ninf_nanzIsCloseTests.test_inf_ninf_nanss"Cj"Fm%sm"Cj"Cj"Dk"Cj"Cj"El$cl	,	
1;LMMMMMrcrgd}||dgd}||ddS)N))rr)333333r)YnrrQr))rg?)g?r)gZbtigTbtir)rczero_tolerance_close_examples!zero_tolerance_not_close_exampless   rtest_zero_tolerancez IsCloseTests.test_zero_tolerancesg)=)=)=%	
93GGG-N-N-N)	
@#NNNNNrc8|ddgddS)N)rr)rrrrrrgs rtest_asymmetryzIsCloseTests.test_asymmetrys&Wg.<<<<<rcjddg}||d||ddS)N))i[i[rrrr)rcinteger_exampless  r
test_integerszIsCloseTests.test_integerssL224	
,d;;;/>>>>>rcddlm}|d|df|d|df|d|df|d	|d
fg}||d||d
dS)Nrrz
1.00000001z1.0z1.00000001e-20z1.0e-20z1.00000001e-100z1.0e-100z
1.00000001e20z1.0e20rrr)rrrr)rcrdecimal_exampless   r
test_decimalszIsCloseTests.test_decimals	s######$W\22GGENNC$W%566	8J8JK$W%6779L9LM$W_55wwx7H7HIK	
,d;;;/>>>>>rcddlm}|dddz|df|d|df|dd|ddfg}||d	||d
	dS)Nrrrrrl 	(qe	rrrr)rrrr)rcrfraction_exampless   rtest_fractionszIsCloseTests.test_fractions	s&&&&&&Xa
#
#a
'!5
Xi
 
 ((9"5"56
Xi
(
(((1f*=*=>@	
-t<<<0$?????rN)rjrkrlrUrrrrrrrrrrrrrrrrrmrrrrslGCCCHHH666999DDDJJJLLL>>>444
N
N
N
O
O
O===???	?	?	?	@	@	@	@	@rrcNddlm}||d|S)Nr)DocFileSuitezieee754.txt)doctestraddTest)loadertestspatternrs    r
load_testsr		s5$$$$$$	MM,,}--...Lrrl)9test.supportrrtestrrrrrUosrnrSrr^rr;rrrr1r4rrrrr{rrjargvfile__file__pathdirnamecurdirtest_dirrrrrprrrr%r0rGrOr[r]rTrprrsryTestCaserrr	mainrmrr<module>rs 43333333				











eElleElluV}}N	N	1A)z8A;DDD
7??4  -BIh(<==GLL#899	


L555HHH	,	,	,BBB$:::40++++Z					#			&kGkGkGkGkG!kGkGkG\=x@x@x@x@x@8$x@x@x@v
zHMOOOOOr