python (3.11.7)

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

eR@	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZddlmZddlmZddlZdZdZdZdydZGdd
ZejddgZejddgZGddejZGddejZGddejZ GddejZ!GddejZ"GddejZ#GddejZ$Gd d!ejZ%Gd"d#ejZ&Gd$d%ejZ'Gd&d'ejZ(Gd(d)ejZ)Gd*d+ejZ*Gd,d-ejZ+Gd.d/ejZ,Gd0d1ejZ-Gd2d3ejZ.Gd4d5ejZ/Gd6d7ejZ0Gd8d9Z1Gd:d;Z2Gd<d=e1e2Z3Gd>d?eZ4Gd@dAeZ5GdBdCeZ6GdDdEe1Z7GdFdGee7e2Z8GdHdIee7e2Z9GdJdKee7Z:GdLdMee2Z;GdNdOe:e2Z<GdPdQe:e2Z=GdRdSe:Z>GdTdUee7e2Z?GdVdWejZ@GdXdYejZAGdZd[e1ZBGd\d]eBee2ZCGd^d_eBee2ZDGd`daeBeZEGdbdcejZFGdddeeBeZGGdfdgejZHGdhdiejZIGdjdkejZJGdldmejZKGdndoejZLGdpdqZMGdrdsejeMZNejOedtGdudvejeMZPdwZQeRdxkrejSdSdS)zN)support)
import_helperrequires_IEEE_754)DecimalFractionc.	tjd|S)N)mathcopysignxs H/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_statistics.pysignrsD=Ac:	t|t|urdSt|tr(tj|otj|S|d}|d}||ko|dvS)NF)nN)type
isinstancefloatrisnanas_tuple)abaexpbexps    r
_nan_equalr#s*Awwd1ggu!U/z!}}.A.::<<?D::<<?DDL2tz12rc	tt|t|}t||z
}|r||zntd}||fSNinf)maxabsr)actualexpectedbaseabs_errrel_errs     r_calc_errorsr*BsYs6{{CMM**D&8#$$G"4gdlleGWr-q=Hz>c
	|dks|dkrtdtj|stj|rdS||krdStj|stj|rdSt	||z
}t||tt	|t	|z}||kS)Nrz%error tolerances must be non-negativeFT)
ValueErrorrrisinfr$r#)rytolrelactual_error
allowed_errors      rapprox_equalr5Rs BQww#''@AAAz!}}
1

uAvvtz!}}
1

uq1u::LSSVVSVV!4!4455M=((rceZdZ	dS)
_DoNothingN__name__
__module____qualname__rrr7r7s"F	Drr7
statistics_statistics)blocked)freshcNeZdZdgZdZejeddZdS)TestModules_normal_dist_inv_cdfcv|jD]0}|tt|jd1dSNr=)
func_namesassertEqualgetattr
py_statisticsr:selffnames  rtest_py_functionszTestModules.test_py_functionssG_	U	UEW]E::E|TTTT	U	Urrequires _statisticscv|jD]0}|tt|jd1dS)Nr>)rFrGrHc_statisticsr:rJs  rtest_c_functionszTestModules.test_c_functionssG_	U	UEW\599DmTTTT	U	UrN)	r9r:r;rFrMunittest
skipUnlessrPrQr<rrrBrBs_()JUUUX'=>>UU?>UUUrrBcFeZdZ	dxZZ	ddZdZddZedZ	dS)	NumericTestCaserNc	||j}||j}t|tjjr't|tjjr|j}n|j}||||||dSN)r1r2rcollectionsabcSequence_check_approx_seq_check_approx_num)rKfirstsecondr1r2msgchecks       rassertApproxEqualz!NumericTestCase.assertApproxEquals	8;(C;(C5+/":;;	+6;?#;<<	+*EE*E
eVS#s+++++rc	^t|t|krLdt|t|fz}|||}||tt	||D]"\}\}}	|||	||||#dS)Nz0sequences differ in length: %d items != %d items)len_formatMessagefailureException	enumeratezipr\)
rKr]r^r1r2r_standardMsgires
          rr[z!NumericTestCase._check_approx_seqsu::V$$Bu::s6{{+,
%%c;77C'',,,!#eV"4"455	;	;HAu!""1ac3::::	;	;rct||||rdS||||||}|||}||rW)r5_make_std_err_msgrdre)rKr]r^r1r2r_idxrhs        rr\z!NumericTestCase._check_approx_num
savsC00	4,,UFCcJJ!!#{33##C(((rcZd}|
d|z}||z}t||\}}|||||||fzS)Nzk  %r != %r
  values differ by more than tol=%r and rel=%r
  -> absolute error = %r
  -> relative error = %rz,numeric sequences first differ at index %d.
)r*)	r]r^r1r2rmtemplateheaderr(r)s	         rrlz!NumericTestCase._make_std_err_msgsS

'	?DsJF(H'v665&#sGWEEEr)NNNrW)
r9r:r;r1r2rar[r\staticmethodrlr<rrrUrUsMC#:>*,*,*,*,X	;	;	;))))FF\FFFrrUceZdZ	dZdS)TestSignc|tdd|tdddS)Nr
g)rGrrKs r
testZeroeszTestSign.testZeroes+s@cB'''dR(((((rN)r9r:r;rxr<rrrsrs)s&?)))))rrsc&eZdZdZdZdZdZdS)ApproxEqualSymmetryTestcdddtdtddg}ddd	td
tddg}t||D]\}}|||dS)Ni	gfffffB@gfffff(z2.546i	gB@gR(z2.59)rrrgdo_relative_symmetry)rKargs1args2rrs     rtest_relative_symmetryz.ApproxEqualSymmetryTest.test_relative_symmetry6stVWV__hr26F6FGtVWV__hr26F6FGu%%	,	,DAq%%a++++	,	,rc@t||t||}}||z
}t||zt||z}}||zdz}|t	||d||t	||d|dS)Nrrr1r2)minr#r$
assertTruer5)rKrrdeltarel_err1rel_err2r2s       rrz,ApproxEqualSymmetryTest.do_relative_symmetryFs1ayy#a))1A q\\3uQw<<(("A%	
Qqc:::;;;Qqc:::;;;;;rc	gd}d}|D]5}ttttfD]}||dz}||z}t	|t||z}|||||||||dzd|z||||dz
|dz|||||dz||||dz
|||||dz
d|z|||dd|||dd7dS)N)ikimrdrr
r)intrrrr$r#do_symmetry_test)rKargsrrtype_rr0rs        r
test_symmetryz%ApproxEqualSymmetryTest.test_symmetryRs'''	:	:Augx8
:
:E!HHSLIc!Qii((%%a1%===%%aaQqS%AAA%%aaQqS%AAA%%a1Q3%???%%aaQ%???%%aaQqS%AAA%%aq%999%%aq%9999#
:	:	:rc
d}t||||}t||||}||||||||fdS)Nz+approx_equal comparisons don't match for %r)r5rGformat)rKrrr1r2roflag1flag2s        rrz(ApproxEqualSymmetryTest.do_symmetry_testjs`@Q3,,Q3,,x1c37G'H'HIIIIIrN)r9r:r;rrrrr<rrrzrz3sU,,, 
<
<
<:::0JJJJJrrzcDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)ApproxEqualExactTestct||||}||d|zt||||}||d|zdS)Nrzequality failure for x=%r)r5r)rKrr1r2results     rdo_exactly_equal_testz*ApproxEqualExactTest.do_exactly_equal_testwsna555 ;a ?@@@qb1"#3777 ;qb @AAAAArc>dD]}||dddS)N)*iMi~:iiU
irrrKrs  rtest_exactly_equal_intsz,ApproxEqualExactTest.test_exactly_equal_ints}s6=	0	0A&&q!Q////	0	0rc>dD]}||dddS)N)gzG?g/$?ge@g7@gpf@g!rhQ@gB`"KB@rrrKrs  rtest_exactly_equal_floatsz.ApproxEqualExactTest.test_exactly_equal_floatss6E	0	0A&&q!Q////	0	0rc	t}|dd|d|dd|dd|dd	|ddfD]}||dddS)
Nr
rrr	#$)rrrKFfs   rtest_exactly_equal_fractionsz1ApproxEqualExactTest.test_exactly_equal_fractionss!Aq''11Q441a!!Aq''11R99aa1ggF	0	0A&&q!Q////	0	0rct}t|dD]}||dddS)Nz8.2 31.274 912.04 16.745 1.2047r)rmapsplitr)rKDds   rtest_exactly_equal_decimalsz0ApproxEqualExactTest.test_exactly_equal_decimalssRQ9??AABB	0	0A&&q!Q////	0	0rcdD]Z}||dd||dzddt|d}||dd[dS)N)ii\ii{Gz?r
i)rr)rKrrs   rtest_exactly_equal_absolutez0ApproxEqualExactTest.test_exactly_equal_absolutesy/	3	3A&&q$222&&qtT1555D!!A&&q$2222	3	3rc|tdtdd|tdtdddS)Nz3.5710.01rz81.3971)rrrws r$test_exactly_equal_absolute_decimalsz9ApproxEqualExactTest.test_exactly_equal_absolute_decimalssW""77#3#3WV__aHHH""GI$6$6#6KKKKKrcdddtddfD]}||dd|tddtd	dS)
Ni g33333SY@gzGrrrz11.68rrrrrs  rtest_exactly_equal_relativez0ApproxEqualExactTest.test_exactly_equal_relativesix!R9	3	3A&&q!T2222""77#3#3QHHHHHrcdddtddfD]}||ddt}||d|d	|d
dS)Ni9gˡE0@g\(hr皙?rz7.2z0.1rr)rKrrs   rtest_exactly_equal_bothz,ApproxEqualExactTest.test_exactly_equal_bothsx(1a..9	5	5A&&q#t4444""11U88QQuXXqqyyAAAAArN)r9r:r;rrrrrrrrrr<rrrrqsBBB000
000
000000	3	3	3LLL
IIIBBBBBrrc,eZdZdZdZdZdZdZdS)ApproxEqualUnequalTestct||fD]1}t||dzdd}||d|z2dS)Nr
rrzinequality failure for x=%r)r5assertFalse)rKrrrs    rdo_exactly_unequal_testz.ApproxEqualUnequalTest.do_exactly_unequal_tests^aR	H	HA!!QqSaQ777FV%BQ%FGGGG	H	Hrc:dD]}||dS)N)iiiiiXCrrs  rtest_exactly_unequal_intsz0ApproxEqualUnequalTest.test_exactly_unequal_intss2/	,	,A((++++	,	,rc:dD]}||dS)N)gQ#@g[@gfffffG@gףp=
W"@g=
ףp=1@rrs  rtest_exactly_unequal_floatsz2ApproxEqualUnequalTest.test_exactly_unequal_floatss23	,	,A((++++	,	,rct}|dd|dd|dd|ddfD]}||dS)	Nr
rrreiς)rrrs   rtest_exactly_unequal_fractionsz5ApproxEqualUnequalTest.test_exactly_unequal_fractionssh!Aq''11Q77AAb"IIqqe}}=	,	,A((++++	,	,rcttdD]}||dS)Nz!3.1415 298.12 3.47 18.996 0.00245)rrrrrKrs  rtest_exactly_unequal_decimalsz4ApproxEqualUnequalTest.test_exactly_unequal_decimalssIWAGGIIJJ	,	,A((++++	,	,rN)r9r:r;rrrrrr<rrrrsbHHH
,,,
,,,
,,,,,,,,rrcneZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdS)ApproxEqualInexactTestc	d}||z||z
fD]l}|||}|t||d|zd||t|||dzd|mdS)NTest failure for x={!r}, y={!r}rrrrrr5rrKrrror0r_s      rdo_approx_equal_abs_testz/ApproxEqualInexactTest.do_approx_equal_abs_tests4e)QY'	J	JA//!Q''COOLA1U7BBBCHHH\!QE!GCCCSIIII	J	JrchdD].}||d||d/dS)N)iiIirrr
r%ii&i6jrrrrs  rtest_approx_equal_absolute_intsz6ApproxEqualInexactTest.test_approx_equal_absolute_intssJJ	0	0A))!R000))!Q////	0	0rcdD]D}||d||d||dEdS)N)	gtqgfffffFXg333333g333333??g333333@gQ@gҭ@?r-C6?rrs  r!test_approx_equal_absolute_floatsz8ApproxEqualInexactTest.test_approx_equal_absolute_floatss`L	5	5A))!S111))!T222))!V4444	5	5rctdd}gd}d|DD];}|||||t|<dS)Nr
)irrvrr
rr|"Gc36K|]}t|dVdS)rNr).0rs  r	<genexpr>zNApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>s*66a(1b//666666r)rrr)rKr
numeratorsrs    r$test_approx_equal_absolute_fractionsz;ApproxEqualInexactTest.test_approx_equal_absolute_fractionssvB@@@
66:666	;	;A))!U333))!U5\\::::	;	;rctd}ttdD]/}||||||0dS)Nrz1.0 3.5 36.08 61.79 7912.3648)rrrr)rKrrs   r#test_approx_equal_absolute_decimalsz:ApproxEqualInexactTest.test_approx_equal_absolute_decimalssnW=CCEEFF	5	5A))!U333))1"e4444	5	5rcR|tdddddS)Ngh㈵>gh㈵rrr)rr5rws rtest_cross_zeroz&ApproxEqualInexactTest.test_cross_zeros+T5dBBBCCCCCrc
d}|d|zz|d|z
zfD]l}|||}|t||dd|z||t||d|dz|mdS)Nrr
rrrrrs      rdo_approx_equal_rel_testz/ApproxEqualInexactTest.do_approx_equal_rel_tests4QuW+q!E'{+	J	JA//!Q''COOLA1!E'BBBCHHH\!QA57CCCSIIII	J	Jrc|tdddd|tdddd|tdddd	|td
ddd	|tdddd	dS)N@/rg
ףp=
?rgGz?ii?ii)rr5rrws rtest_approx_equal_relative_intsz6ApproxEqualInexactTest.test_approx_equal_relative_intssR===>>>R===>>>S#1%@@@AAAS#1%@@@AAAc3A5AAABBBBBrchdD].}||d||d/dS)N)g{GJf皙rrg\(|B@gʡE>@gx@{Gz?r)rrs  r!test_approx_equal_relative_floatsz8ApproxEqualInexactTest.test_approx_equal_relative_floatssJE	5	5A))!T222))!V4444	5	5rct}tdd}|dd|dd|dd|dd	fD]C}|t|fD]/}||||||0DdS)
NrrTr|12\U)rrr)rKrrrrs     r$test_approx_equal_relative_fractionsz;ApproxEqualInexactTest.test_approx_equal_relative_fractionssA!Ar((AAb"IIqqRyy!!B))<	5	5AU5\\*
5
5--a333--qb!4444
5	5	5rcttdD]I}||td||tdJdS)Nz$0.02 1.0 5.7 13.67 94.138 91027.93210.0010.05)rrrrrs  r#test_approx_equal_relative_decimalsz:ApproxEqualInexactTest.test_approx_equal_relative_decimalssqWDJJLLMM	?	?A))!WW-=-=>>>))1"gfoo>>>>	?	?rc|r|jn|j}|t|||d|r|jn|j}|t||d||s|r|jn|j}|t||||dS)Nrr)rrr5)rKrrr1r2tol_flagrel_flagr`s        r
do_check_bothz$ApproxEqualInexactTest.do_check_both,s#+A1A
l1aSa000111#+A1A
l1aQC000111$,OOt?O
l1aSc22233333rcn|dddddd|dddd	dddS)
NR@+@Mbp?W8?Tg?5^Ig%CMb`?g-C6*?rrws rtest_approx_equal_both1z.ApproxEqualInexactTest.test_approx_equal_both14sD5%dCCC665&$EEEEErc:|dddddddS)NrrrgVF?8?TFrrws rtest_approx_equal_both2z.ApproxEqualInexactTest.test_approx_equal_both29s&5%eDDDDDrc:|dddddddS)NrrMbP?rFTrrws rtest_approx_equal_both3z.ApproxEqualInexactTest.test_approx_equal_both3=s&5%tDDDDDrcn|dddddd|dddd	dddS)
Ng=
ףp=@@rr FgQ[@g(\[@rgiUMu>rrws rtest_approx_equal_both4z.ApproxEqualInexactTest.test_approx_equal_both4AsD4tUE5AAA664ueDDDDDrN)r9r:r;rrrrrrrrrrrrrrr!r$r<rrrrsJJJ000555;;;555DDDJJJCCC555555???444FFF
EEEEEEEEEEErrc&eZdZdZdZdZdZdS)ApproxEqualSpecialsTestc	ttfD]}|d}|t|||t||dd|t||dd|t|||t|||t|ddS)Nr"rr
r)rrrr5r)rKrr"s   rtest_infz ApproxEqualSpecialsTest.test_infJsW%	6	6E%,,COOLc22333OOLc1a88999OOLc1d;;<<<OOL#t44555\#t44555\#t445555	6	6rcttfD]A}|d}||ddfD]%}|t||&BdS)Nnanr"r()rrrr5)rKrr+others    rtest_nanz ApproxEqualSpecialsTest.test_nanTsqW%	;	;E%,,CuuU||T2
;
;  c5!9!9::::
;	;	;rc|tjdd}|t|ddddS)Nrurvrr)rrrr5rKnzeros  rtest_float_zeroesz)ApproxEqualSpecialsTest.test_float_zeroesZs<
c2&&UCScBBBCCCCCrctd}|t|tddddS)Nz-0.0rrr)rrr5r/s  rtest_decimal_zeroesz+ApproxEqualSpecialsTest.test_decimal_zeroes^s<UGAJJCSIIIJJJJJrN)r9r:r;r)r-r1r3r<rrr&r&GsX666;;;DDDKKKKKrr&ceZdZdZdZdS)TestApproxEqualErrorscN|ttdddddS)NrrvrassertRaisesr.r5rws rtest_bad_tolz"TestApproxEqualErrors.test_bad_tolfs&*lCb#FFFFFrcN|ttdddddS)Nrr
rr7rws rtest_bad_relz"TestApproxEqualErrors.test_bad_reljs&*lCaFFFFFrN)r9r:r;r9r;r<rrr5r5cs:GGGGGGGGrr5c,eZdZdZdZdZdZdZdS)TestNumericTestCasecltj|}|j|}|D]}|||dSrW)rUrlgenerate_substringsassertIn)rKr
actual_msgr&	substrings     rdo_testzTestNumericTestCase.do_testzsN$6=
+4+T2!	1	1IMM)Z0000	1	1rcj|tttjdSrW)r
issubclassrUrRTestCaserws r test_numerictestcase_is_testcasez4TestNumericTestCase.test_numerictestcase_is_testcases'
?H4EFFGGGGGrc4d}||dS)N)@@r?NrCrKrs  rtest_error_msg_numericz*TestNumericTestCase.test_error_msg_numerics*Trc4d}||dS)N)@g @g?rrrLrMs  rtest_error_msg_sequencez+TestNumericTestCase.test_error_msg_sequences)Trc	t||\}}d|zd|zd|zd|zg}||d|z|S)Nztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r*append)	rKr]r^r1r2rmr(r)
substringss	         rr?z'TestNumericTestCase.generate_substringsseC'v6633%/%/	
?2S8999rN)r9r:r;rCrGrNrQr?r<rrr=r=tsb111HHH

rr=c&eZdZeZddgZdZdZdS)GlobalsTest__doc____all__cr|jD].}|t|j|d|z/dS)Nz%s not present)expected_metadatarhasattrmodule)rKmetas  r	test_metazGlobalsTest.test_metasO*	5	5DOOGDK66,t3
5
5
5
5	5	5rc|j}|jD]U}||dd|z|t||d|zVdS)N_zprivate name "%s" in __all__zmissing name "%s" in __all__)r\rXr
startswithrr[)rKr\names   rtest_check_allzGlobalsTest.test_check_allsN	C	CDT__S11;dB
D
D
D
OOGFD11:TA
C
C
C
C	C	CrN)r9r:r;r=r\rZr^rcr<rrrVrVsG
F"I.555	C	C	C	C	CrrVc^eZdZejejjdkddZdS)DocTestsrz)Docstrings are omitted with -OO and abovectjttj\}}||d||ddS)N)optionflagsr)doctesttestmodr=ELLIPSIS
assertGreaterrG)rKfailedtrieds   rtest_doc_testszDocTests.test_doc_testssQ 
@PQQQ
5!$$$#####rN)	r9r:r;rRskipIfsysflagsoptimizernr<rrreresQX_SY'1,@BB$$BB$$$rreceZdZdZdS)StatisticsErrorTestcd}|ttd|ttjt
|tjjzdS)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.StatisticsError)rr[r=rErvr.__base__)rKerrmsgs  rtest_has_exceptionz&StatisticsErrorTest.test_has_exceptionsi+		

,=>>???:5zBB3<<					rN)r9r:r;ryr<rrrtrts#					rrtc8eZdZdZdZdZdZdZdZdZ	dS)	ExactRatioTestcddD],}|tj||df-dS)N)irrcl Fx:^Vr
)rGr=_exact_ratio)rKris  rtest_intzExactRatioTest.test_intsG,	A	AAZ4Q77!Q@@@@	A	Arcd}|D]<}t|d}|tj||df=dS)N)r
r&r)rrGr=r)rKrrrs    r
test_fractionzExactRatioTest.test_fractionsY$
	B	BABAZ4Q77!RAAAA	B	BrcB|tjdd|tjdddtdD}|D]2}tj|\}}||||z3dS)Nrr
r?)rrc8g|]}tjddS)rrandomuniformrr`s  r
<listcomp>z-ExactRatioTest.test_float.<locals>.<listcomp>s$>>>atS))>>>rr)rGr=rrange)rKdatarnumdens     r
test_floatzExactRatioTest.test_floats077@@@077@@@>>5::>>>	)	)A!.q11HCQC((((	)	)rct}tj}|||dd|||dd|||dddS)Nz0.125rz12.345)i	z-1.98)ir	)rr=rrG)rKrrs   rtest_decimalzExactRatioTest.test_decimals!.aajj116:::aakk22K@@@aajj119=====rctd}Gddt}Gddt}||fD]}t|t|fD]}||}tj|}|||df|t|d||tj|ddS)NINFceZdZdS)(ExactRatioTest.test_inf.<locals>.MyFloatNr8r<rrMyFloatrDrrceZdZdS)*ExactRatioTest.test_inf.<locals>.MyDecimalNr8r<rr	MyDecimalrrrrr)	rrr=rrGrrrr/)rKrrrr"rrratios        rr)zExactRatioTest.test_infsEll					e											#;	6	6C'9=
6
6E#JJ"/22  D	222  eAh777
58 4 45555
6	6	6rctd}Gddt}|||fD]}tj|}|t	j|d||dd|t|dt|dS)NNANceZdZdS).ExactRatioTest.test_float_nan.<locals>.MyFloatNr8r<rrrrrrrrr
)	rr=rrrrassertIsrGr)rKrrr+rs     rtest_float_nanzExactRatioTest.test_float_nansEll					e			&	8	8C+C00EOODJuQx00111MM%(D)))T%(^^T#YY7777		8	8rctd}td}Gddt}||||||fD]}tj|}|t	|d|||dd|t|dt|dS)NrsNANceZdZdS)2ExactRatioTest.test_decimal_nan.<locals>.MyDecimalNr8r<rrrrrrrrr
)rr=rrrrrGr)rKrrrr+rs      rtest_decimal_nanzExactRatioTest.test_decimal_nansennv								3yy?	8	8C+C00EOOJuQx55666MM%(D)))T%(^^T#YY7777		8	8rN)
r9r:r;rrrrr)rrr<rrr{r{sAAABBB)))>>>666888	8	8	8	8	8rr{c2eZdZdZdZdZdZdZdZdS)DecimalToRatioTestctd}|tj||df|tj||dfdS)Nr)rrGr=r)rKr"s  r
test_infinityz DecimalToRatioTest.test_infinitysaenn055T{CCC0#66#tEEEEErctdtdfD]R}tj|\}}|t	||||dSdS)Nrr)rr=rrrr)rKr+rrs    rr-zDecimalToRatioTest.test_nansuENNGFOO4	%	%C!.s33HC
OOJsC00111MM#t$$$$
	%	%rcZtdtdg}|D]}tj|\}}||d||dtj|\}}||d||ddS)Nz	9.8765e12z
9.8765e-12r)rr=rassertGreaterEqualrkassertLessEqual)rKnumbersrrrs     r	test_signzDecimalToRatioTest.test_sign!s;'')>)>?		'		'A".q11HC##C+++sA&&&!.r22HC  a(((sA&&&&		'		'rcttjtd}||ddS)Nz0.1234)iir=rrrGrKts  rtest_negative_exponentz)DecimalToRatioTest.test_negative_exponent/s6#GH$5$566K(((((rcttjtd}||ddS)Nz1.234e7)i Kr
rrs  rtest_positive_exponentz)DecimalToRatioTest.test_positive_exponent4s6#GI$6$677M*****rctjtd}||dtjtd}||ddS)N1e2)rr
z1.47e5)i8>r
rrs  rtest_regression_20536z(DecimalToRatioTest.test_regression_205369sd
#GENN33H%%%#GH$5$566K(((((rN)	r9r:r;rr-rrrrr<rrrrsqFFF%%%''')))
+++
)))))rrc eZdZdZdZdZdS)IsFiniteTestcdtdddtdfD])}|tj|*dS)Nrr
rrI5.5)rrrr=	_isfiniters  rtest_finitezIsFiniteTest.test_finiteEsRXa^^S'%..9	5	5AOOJ0334444	5	5rctdtdfD])}|tj|*dSr!rrrr=rrs  rrzIsFiniteTest.test_infinityJsN,,/	6	6AZ1!445555	6	6rctdtdtdfD])}|tj|*dSNr+rrrrs  rr-zIsFiniteTest.test_nanOsV,,@	6	6AZ1!445555	6	6rN)r9r:r;rrr-r<rrrrBsA555
666
66666rrcPeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dS)
CoerceTestcttttfD]l}|tj|t|Gdd|}|tj|t|mdS)NceZdZdS)%CoerceTest.test_bool.<locals>.MyClassNr8r<rrMyClassrprr)rrrrrr=_coercebool)rKTrs   r	test_boolzCoerceTest.test_booljsuh0	F	FAMM*,Q55q999"""""!"""MM*,Wd;;WEEEE	F	Frc	|tj||||tj|||dSrW)rr=rrKABs   rassertCoerceTozCoerceTest.assertCoerceTossM.

j(A..222

j(A..22222rc	|||Gdd|}|||Gdd|}||||||dS)NceZdZdS)/CoerceTest.check_coerce_to.<locals>.SubclassOfANr8r<rrSubclassOfAr}rrrceZdZdS)/CoerceTest.check_coerce_to.<locals>.SubclassOfBNr8r<rrSubclassOfBrrrr)r)rKrrrrs     rcheck_coerce_tozCoerceTest.check_coerce_toxsDAq!!!"""""!"""K+++"""""!"""A{+++K55555rc	|ttj||f|ttj||fdSrW)r8	TypeErrorr=rrs   rassertCoerceRaiseszCoerceTest.assertCoerceRaisessIK)Z%7!Q@@@)Z%7!Q@@@@@rcn	|tj|||Gdd|}Gdd|}Gdd|}|||fD]}||||||||||||dS)NceZdZdS)*CoerceTest.check_type_coercions.<locals>.UNr8r<rrUrrrrceZdZdS)*CoerceTest.check_type_coercions.<locals>.VNr8r<rrVrrrrceZdZdS)*CoerceTest.check_type_coercions.<locals>.WNr8r<rrWrrrr)rr=rrr)rKrrrrtyps      rcheck_type_coercionszCoerceTest.check_type_coercionssL	


j(A..222q!9	(	(C3''''Aq!!!1%%%1%%%%%rc|ttttfD]}|t|dSrW)rrrrrr)rKrs  rrzCoerceTest.test_intsO!!#&&&8W-	+	+C  c****	+	+rcz|t|ttdSrW)rrrrrws rrzCoerceTest.test_fractions2!!(+++Xu-----rc:|tdSrW)rrrws rrzCoerceTest.test_decimals!!'*****rc:|tdSrW)rrrws rrzCoerceTest.test_floats!!%(((((rctttdttfD]5}t
tttfD]}|	||6dSrW)
strlistrtupledictrrrrr)rKbad_type	good_types   rtest_non_numeric_typesz!CoerceTest.test_non_numeric_typessbdDJJt<	=	=H!5(G<
=
=	''	8<<<<
=	=	=rcttfD]F}Gdd|}||t||tGdS)NceZdZdS)6CoerceTest.test_incompatible_types.<locals>.MySubclassNr8r<rr
MySubclassrrrr)rrrr)rKrrs   rtest_incompatible_typesz"CoerceTest.test_incompatible_typessi"	9	9A%%%%%Q%%%##Aw///##J8888	9	9rN)r9r:r;rrrrrrrrrrrr<rrrrUs*FFF333

6
6
6AAA
&&& +++...
+++)))===
99999rrc>eZdZdZdZdZdZdZdZdZ	dZ
d	S)
ConvertTestc	||||t|t|dSrW)rGrrrKrr0s   rcheck_exact_equalzConvertTest.check_exact_equalsACA

d1ggtAww'''''rc(tjtdt}||dGddt}tjtd|}|||ddS)NrceZdZdS)#ConvertTest.test_int.<locals>.MyIntNr8r<rrMyIntr
rrrr|)r=_convertrrr)rKrrs   rrzConvertTest.test_intsc22q"%%%Ce44q%%)),,,,,rcJtjtddt}||tddGddt}tjtdd|}|||dddS)N_r~ceZdZfdZxZS)-ConvertTest.test_fraction.<locals>.MyFractioncl|t|SrW	__class__super__truediv__rKr,rs  rrz9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__'~~egg&9&9%&@&@AAArr9r:r;r
__classcell__rs@r
MyFractionrA
B
B
B
B
B
B
B
B
Brrr
)r=rrr)rKrrs   rrzConvertTest.test_fractionsR 0 0(;;q(2r"2"2333	B	B	B	B	B	B	B	B
R 0 0*==q**R"4"455555rc,tjtddt}||dGddt}tjtdd|}|||ddS)	NrvrgceZdZfdZxZS)'ConvertTest.test_float.<locals>.MyFloatcl|t|SrWrrs  rrz3ConvertTest.test_float.<locals>.MyFloat.__truediv__rrrrs@rrr rrrrrr)r=rrrr)rKrrs   rrzConvertTest.test_floatsQ77q$'''	B	B	B	B	Be	B	B	B
A88q''%..11111rcFtjtddt}||tdGddt}tjtdd|}|||ddS)	Nr
(z0.025ceZdZfdZxZS)+ConvertTest.test_decimal.<locals>.MyDecimalcl|t|SrWrrs  rrz7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__rrrrs@rrr%rrrrrz-0.9375)r=rrrr)rKrrs   rrzConvertTest.test_decimalsB99q''"2"2333	B	B	B	B	B	B	B	B
b 1 19==q))I"6"677777rctdtdfD]B}||fD]:}tj|t	|}|||;CdSr!)rrr=rrr)rKrr"rs    rr)zConvertTest.test_infsw%LL'%..1	/	/CcT{
/
/'T#YY77&&q#....
/	/	/rctdtdtdfD]G}tj|t	|}|t
||HdSr)rrr=rrrr)rKr+rs   rr-zConvertTest.test_nansk%LL'%..'&//B	0	0C#Cc33AOOJq#..////	0	0rc|t5tjdtddddS#1swxYwYdSrW)r8rr=rrrws rtest_invalid_input_typez#ConvertTest.test_invalid_input_types


y
)
)	-	-e,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-sAA
AN)r9r:r;rrrrrr)r-r*r<rrrrs(((
---666222888///000
-----rrc"eZdZ	dZdZdZdS)FailNegTestcddtdtdg}ttj|}|||dSNr
@rr)rrrr=	_fail_negrG)rKvaluesnews   rtest_pass_throughzFailNegTest.test_pass_throughsPS(1++wqzz2:'//00%%%%%rcddtdtdfD]@}|g}tj|}|tjt|AdSr.)rrr=r0r8rvnext)rKrseqits    rtest_negatives_raisez FailNegTest.test_negatives_raiseskS(1++wqzz2	D	DA2$C%c**Bj8$CCCC	D	Drc(dtjddz}	ttjdg||dn)#tj$r}|jd}Yd}~nd}~wwxYw|||dS)Nzbadness #%d'irvz(expected exception, but it didn't happenr)	rrandintr5r=r0failrvrrG)rKr_rjrxs    rtest_error_msgzFailNegTest.test_error_msgsfnUE:::	B%rdC00111
II@AAAA)			VAYFFFFFF		
%%%%%s#AA9"
A44A9N)r9r:r;r3r8r=r<rrr,r,sG*&&&DDD	&	&	&	&	&rr,cJeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)UnivariateCommonMixincF|t|jdSrWr8rfuncrws rtest_no_argsz"UnivariateCommonMixin.test_no_argss )TY/////rc|gdtgfD](}|tj|j|)dS)Nr<)iterr8r=rvrB)rKemptys  rtest_empty_dataz%UnivariateCommonMixin.test_empty_datasL"d2hh'	L	LEj8$)UKKKK	L	Lrc	ttd}|t|kr'tj||t|k'|SNrrrsortedrshufflerKrs  rprepare_dataz"UnivariateCommonMixin.prepare_data!sO0E"IIfTll""N4   fTll""rc|}|dd}||}|||ddS)Nzdata has been modified)rNrBassertListEqual)rKrsavedr`s    rtest_no_inplace_modificationsz3UnivariateCommonMixin.test_no_inplace_modifications(sP  ""QQQIIdOOT5*BCCCCCrcgddz}||}tj|||}|||dS)N)r
rrrrrrr)rBrrLrGrKrr&r%s    rtest_order_doesnt_matterz.UnivariateCommonMixin.test_order_doesnt_matter2s^(''+99T??t46*****rcFGddt}Gddt}d}|}||}ttt|||fD]6}|||}|||7dS)NceZdZdS)BUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListNr8r<rrMyListrYArrrZceZdZdS)CUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleNr8r<rrMyTupler\Crrr]cd|DS)Nc3K|]}|VdSrWr<)robjs  rrzXUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator.<locals>.<genexpr>Fs"((CC((((((rr<rs r	generatorzEUnivariateCommonMixin.test_type_of_data_collection.<locals>.generatorEs((4((((r)rrrNrBrErG)rKrZr]rbrr&kindrs        rtest_type_of_data_collectionz2UnivariateCommonMixin.test_type_of_data_collection?s					T								e				)	)	)  ""99T??5$C	/	/DYYttDzz**FVX....	/	/rctddd}|t|}||||dSNr	r)rrBrrGrKrr&s   rtest_range_dataz%UnivariateCommonMixin.test_range_dataMsPRQ99T$ZZ((4(33333rc|d|d|d|tdS)NrgE@)check_for_type_errorobjectrws rtest_bad_arg_typesz(UnivariateCommonMixin.test_bad_arg_typesSs^	
!!$'''!!"%%%!!$'''!!&((+++++rc8|jt|jg|RdSrWrArMs  rrkz*UnivariateCommonMixin.check_for_type_errorbs')TY6666666rcNGddt}|}||}t|ttfD]Qfd|D}t|||}|||RdS)Nc,eZdZfdZfdZeZxZS)@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatcrt|t|SrWrrrrs  rrzLUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__j+!tDzz%''"5"5e"<"<===rcrt|t|SrWrr__add__rs  rrwzHUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__l)!tDzz%''//%"8"8999r)r9r:r;rrw__radd__rrs@rrrqisJ
>
>
>
>
>
:
:
:
:
:HHHHHrrc&g|]
}|Sr<r<rrrcs  rrzCUnivariateCommonMixin.test_type_of_data_element.<locals>.<listcomp>ss!)))DDGG)))r)rrNrBrrrrG)rKrrawr&rrrcs      @rtest_type_of_data_elementz/UnivariateCommonMixin.test_type_of_data_elementes					e			!!99S>>GWh7	/	/D))))S)))D#T(^^DIIdOO44FVX....	/	/rN)
r9r:r;rCrGrNrRrVrdrirmrkr}r<rrr?r?s000LLL
DDD+++///444
,
,
,777/////rr?ceZdZ	dZdZdS)UnivariateTypeMixincT	Gddt}ttt|fS)NcbeZdZfdZfdZfdZfdZfdZfdZeZ	fdZ
e
ZxZS)HUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloatcrt|t|SrWrsrs  rrzTUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__rtrcrt|t|SrW)rr__rtruediv__rs  rrzUUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__s+!tDzz%''"6"6u"="=>>>rcrt|t|SrW)rr__sub__rs  rrzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__rxrcrt|t|SrW)rr__rsub__rs  rrzQUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__s+!tDzz%''"2"25"9"9:::rcrt|t|SrW)rr__pow__rs  rrzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__rxrcrt|t|SrWrvrs  rrwzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__rxrcrt|t|SrW)rr__mul__rs  rrzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__mul__rxr)
r9r:r;rrrrrrwryr__rmul__rrs@rrrs
>
>
>
>
>
?
?
?
?
?
:
:
:
:
:
;
;
;
;
;
:
:
:
:
:
:
:
:
:
:H
:
:
:
:
:HHHHHrr)rrr)rKrs  r#prepare_types_for_conservation_testz7UnivariateTypeMixin.prepare_types_for_conservation_tests@B					e			"w'22rc|}|D]Hfd|D}||}|t	|IdS)Nc&g|]
}|Sr<r<r{s  rrz<UnivariateTypeMixin.test_types_conserved.<locals>.<listcomp>s!'''Qa'''r)rNrrBrr)rKrrrrcs    @rtest_types_conservedz(UnivariateTypeMixin.test_types_conserveds  ""<<>>	.	.D''''$'''AYYq\\FMM$v,,----	.	.rN)r9r:r;rrr<rrrrxs7333*.....rrceZdZdZdS)
TestSumCommoncd}||_dS)NcPtj|\}}}tj||SrW)r=_sumr)rrvaluers    rsimplified_sumz+TestSumCommon.setUp.<locals>.simplified_sums'$/40KAua%eQ///r)rB)rKrs  rsetUpzTestSumCommon.setUps	0	0	0#			rN)r9r:r;rr<rrrrs#
#####rrcJeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)TestSumc(tj|_dSrW)r=rrBrws rrz
TestSum.setUpO			rcgdtgfD]@}|||tt	ddfAdS)Nr<r)rErGrBrrrMs  rrGzTestSum.test_empty_datas\T"XX&	E	EDTYYt__sHQKK.CDDDD	E	Erc||gdttddfdS)N)r
rrirgrr
<r)rGrBrrrws r	test_intszTestSum.test_intssI#?#?#?@@x||Q/	1	1	1	1	1rc||dgdzttddfdS)NrKrg@)rGrBrrrws rtest_floatszTestSum.test_floatssHD6"9--#3	5	5	5	5	5rc||tddgdzttdddfdS)Nr
r(r)rGrBrrws rtest_fractionszTestSum.test_fractionssVHQ$5$5#6s#:;;"HQNNC8	:	:	:	:	:rc
4t}|d|d|d|d|d|d|d|dg}|||ttd	d
fdS)Nrz5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686r)rrGrBrKrrs   r
test_decimalszTestSum.test_decimalss'

AAgJJ'

AAhKK'

AAgJJ'

AAgJJ	
4!78#4#4a8	:	:	:	:	:rcdtdD}|t||dt	j|ddS)Nc8g|]}tjddS)rr(rrs  rrz7TestSum.test_compare_with_math_fsum.<locals>.<listcomp>s$@@@qtT**@@@rr(r
gؗҬ<r2)rrarrBrfsumrMs  rtest_compare_with_math_fsumz#TestSum.test_compare_with_math_fsums^A@E$KK@@@uTYYt__Q%788$)D//uUUUUUrc|t|jgdd|t|jgddS)Nr
rr999)r
rrrrArws rtest_strings_failzTestSum.test_strings_failsI)TY			5AAA)TY0@0@0@AAAAArc|t|jgdd|t|jgddS)Nr999)r
rrrrArws rtest_bytes_failzTestSum.test_bytes_failsI)TY			6BBB)TY0A0A0ABBBBBrc	|t|jddtdg|t|jddgtddS)Nr
r/)r8rrBrrws rtest_mixed_sumzTestSum.test_mixed_sumsW	
)TYC0DEEE)TYC'!**EEEEErN)
r9r:r;rrGrrrrrrrrr<rrrrs
$$$EEE
111555::::::VVVBBB
CCC
FFFFFrrceZdZdZdS)SumTortureTestc|tjgddztt	ddf|tjgddztt	ddftjgddz\}}}||t||d|t|dd	dS)
N)r
}Ô%ITr
}Ô%Ir:g@i@)rr
r
r)0.++r
rrvg^,gV瞯<r)rGr=rrrrra)rKrrcounts    rtest_torturezSumTortureTest.test_tortures)>)>)>u)DEE'!2!2E:	<	<	<)>)>)>u)DEE'!2!2E:	<	<	<"(?(?(?(EFF
3

a&&&uSzz7>>>>>rN)r9r:r;rr<rrrrs#	?	?	?	?	?rrcDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)SumSpecialValuescttfD]t}|d}tjd|dgd}|t|||tj|udS)Nr+r
r)	rrr=rrrrrr)rKrr+rs    rr-zSumSpecialValues.test_nansW%	0	0E%,,C_aa[11!4FMM$v,,...OODJv..////		0	0rc	|tj||t	|t	|||dk|dkdSNr)rrr/rrrG)rKrr"s   rcheck_infinityzSumSpecialValues.check_infinityscF
1

&&&

d1ggtCyy)))Qa(((((rctjdd|dgd}|||tjdd|d|dgd}|||dS)Nr
rrr)r=rrrKr"rs   rdo_test_infzSumSpecialValues.do_test_infsq!QQ003FC(((!QQQ!788;FC(((((rc^td}dD]}|||zdSNr"r
rv)rrrKr"rs   rtest_float_infzSumSpecialValues.test_float_infsAEll	'	'DT#X&&&&	'	'rc^td}dD]}|||zdSr)rrrs   rtest_decimal_infz!SumSpecialValues.test_decimal_infsAenn	'	'DT#X&&&&	'	'rctd}tjdd|d|dgd}|t	j|dSNr"r
rrr)rr=rrrrrs   rtest_float_mismatched_infsz+SumSpecialValues.test_float_mismatched_infssREll!QQa!899!<
6**+++++rc"td}dd|d|dg}tjtj5|tjtj|dddddS#1swxYwYdSr)	rdecimallocalcontextExtendedContextrrrr=rrKr"rs   r3test_decimal_extendedcontext_mismatched_infs_to_nanzDSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nansenn1c1sdA&

!'"9
:
:	B	BOODJzt'<'<Q'?@@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	BsABBBctd}dd|d|dg}tjtj5|tjtj|ddddS#1swxYwYdSr)rrrBasicContextr8InvalidOperationr=rrs   r0test_decimal_basiccontext_mismatched_infs_to_nanzASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nan%senn1c1sdA&

!'"6
7
7	O	Og6
NNN	O	O	O	O	O	O	O	O	O	O	O	O	O	O	O	O	O	Os,A00A47A4ctd}d|dg}|tjtj|dS)Nrr
r)rr8rrr=r)rKrrs   rtest_decimal_snan_raisesz)SumSpecialValues.test_decimal_snan_raises,s;v4|'2JOTJJJJJrN)r9r:r;r-rrrrrrrrr<rrrrs000)))'''
'''
,,,BBBOOOKKKKKrrc eZdZdZdZdZdS)AverageMixincdddtddtdfD],}|||g|-dSNrg@E@gX_yCr~z0.28rrrGrBrs  rtest_single_valuezAverageMixin.test_single_value8s[dFHR$4$4gfooF	0	0ATYYs^^Q////	0	0rcFdddtddtdfS)N@r|7y!C=Cz4.9712rrrws r'prepare_values_for_repeated_single_testz4AverageMixin.prepare_values_for_repeated_single_test=s%R"b!1!1783D3DEErc|D]e}dD]`}|||5|g|z}||||dddn#1swxYwYafdS)Nrrrrg)rr)rsubTestrGrBrKrrrs    rtest_repeated_single_valuez'AverageMixin.test_repeated_single_value@s==??	9	9A'
9
9\\AU\33993u9D$$TYYt__a888999999999999999
9	9	9s0A..A25A2N)r9r:r;rrrr<rrrr5sD000
FFF99999rrc\eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdS)TestMeanc(tj|_dSrW)r=meanrBrws rrzTestMean.setUpJrrc\||gdddS)N)rr
rrr
rGrBrws rtest_torture_pepzTestMean.test_torture_pepMs1#8#8#8991=====rcgd}tj||||ddS)N)rr
rrrrrrrrTrrrrrrg@@rrLrGrBrMs  rrzTestMean.test_intsQsC???t4&11111rcgd}tj||||ddS)N)g@1@g3@4@g5@g5@g@7@g 9@g;@g6@rrMs  rrzTestMean.test_floatsWsCEEEt4)44444rct}|d|d|d|d|dg}tj|||||ddS)Nz1.634z2.517z3.912z4.072z5.813z3.5896rrrLrGrBrs   rrzTestMean.test_decimals]s}'

AAgJJ'

AAgJJ'

Kt4!!H++66666rc
@t}|dd|dd|dd|dd|dd|dd|ddg}tj|||||d	d
dS)Nr
rrrrrTrriirrrLrGrBrKrrs   rrzTestMean.test_fractionsds!Q1a!!Aq''11Q77AAaGGQQq!WWaa1ggNt4!!D$--88888rcgd}ttfD]m}dD]h}|d|z}||gz}||}|t	j||||indS)Nr
rrrrrr")rrrBrrr/rG)rKr|rcrr"rrs       rr)zTestMean.test_infksooG$	.	.D
.
.d5kk$&cU{4
6 2 2333  ----
.	.	.rc
dddtddddtdg}||}|tj|dS)	NrrrTr"r
rrz-inf)rrBrrrrKrrs   rtest_mismatched_infszTestMean.test_mismatched_infsvsU1auq!Qf

>4
6**+++++rcgd}ttfD]O}|d}||gz}||}|t	j|PdS)Nrr+)rrrBrrr)rKr|rcr"rrs      rr-zTestMean.test_nan|soooG$	0	0D$u++C#;DYYt__FOODJv..////		0	0rcdgd}||z}|fd|D}|||dS)NgeA	333333@@g@g@g333333@@g @g333333 @g"@cg|]}|zSr<r<rrcs  rrz*TestMean.test_big_data.<locals>.<listcomp>...AAaC...rrBrGrKrr&rrs    @r
test_big_datazTestMean.test_big_datasi<<<99T??Q&.......//*****rcdtdD}||}||dz}|||dS)Nc8g|]}tjddS)r}rrrs  rrz.TestMean.test_doubled_data.<locals>.<listcomp>$;;;!r1%%;;;rr(rrrBrarUs    rtest_doubled_datazTestMean.test_doubled_datas[;;uT{{;;;99T??46""vx00000rcvtd}|tj|g|dS)N1e4)rrGr=rrs  rtest_regression_20561zTestMean.test_regression_20561s7
ENN!--q11111rc|tjddgdd}d}dD]Z}|tj|g|z||tj|g|z|[dS)Nggg)rrrr)rGr=r)rKbigtinyrs    rtest_regression_25177zTestMean.test_regression_25177s	

#%:;==!	#	#	#$	>	>AZ_cU1W55s;;;Z_dVAX66====	>	>rN)r9r:r;rrrrrrr)r
r-rrrr#r<rrrrIs$$$>>>222555777999	.	.	.,,,000+++111222>>>>>rrcxeZdZdZfdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZxZS)TestHarmonicMeanc(tj|_dSrW)r=
harmonic_meanrBrws rrzTestHarmonicMean.setUps,			rcrt}|d|Sr)rrNremove)rKr1rs  rrNzTestHarmonicMean.prepare_datas/%%''

a
rcFdddtddtdfS)Nrr|rrrz4.125rrws rrz8TestHarmonicMean.prepare_values_for_repeated_single_tests%R"b!1!1773C3CDDrc`gd}|||ddS)N)r
rrrrrKr1s  r	test_zerozTestHarmonicMean.test_zeros36**A.....rctj}dggdfD]L}||5|||j|dddn#1swxYwYMdS)Nrv)r
rr)r1)r=rvrr8rB)rKexcr1s   rtest_negative_errorz$TestHarmonicMean.test_negative_errors(tZZZ(	:	:FV,,
:
:!!#ty&999
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:	:	:sAA	A	cdggdgdgdfD]w}||5|t5||dddn#1swxYwYdddn#1swxYwYxdS)Nz3.14)123)r
r3r4r)gffffff@rrz5.6ra)rr8rrBrMs  rtest_invalid_type_errorz(TestHarmonicMean.test_invalid_type_errors!HOO"""	
	$	$D4((
$
$&&y11$$IIdOOO$$$$$$$$$$$$$$$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
	$	$s5A:A#A:#A''A:*A'+A::A>	A>	cgd}tj||||ddS)N)rrrrrrg333333@rrMs  rrzTestHarmonicMean.test_intssC###t4%00000rcgd}tj||||d||gdddS)N)rrKrKrrrK)rKrrrrrrMs  rtest_floats_exactz"TestHarmonicMean.test_floats_exactsl(((t4#...#8#8#8993?????rctddD],}|||g|-dS)Nr
rrrGrBrs  rtest_singleton_listsz%TestHarmonicMean.test_singleton_listssHq#	0	0ATYYs^^Q////	0	0rc
t}|||d|d|d|dg|d|d|d|d|dg}tj|||||d|d|d|d	|d
g}tj|||||ddzdS)
Nr~rrrz0.10z0.20z1.68z0.32z5.94z2.75iiC)rrGrBrrLrs   rtest_decimals_exactz$TestHarmonicMean.test_decimals_exacts0AAbEE11R55!!B%%2#?@@!!B%%HHH&		11V99aaii6;t4!!F))444&		11V99aaii6;t4!!E((5.99999rc
@t}|dd|dd|dd|dd|dd|dd|ddg}tj|||||d	d
dS)Nr
rrrrrTrri|irrs   rrzTestHarmonicMean.test_fractionss!Q1a!!Aq''11Q77AAaGGQQq!WWaa1ggNt4!!E4..99999rc|dtddg}|||ddS)Nr/r"r)rrGrBr,s  rr)zTestHarmonicMean.test_infs<uU||S)6**C00000rcdtddg}|tj||dS)Nr/r+r)rrrrrBr,s  rr-zTestHarmonicMean.test_nansBuU||S)
499V#4#45566666rcdgd}||z}|fd|D}|||dS)Nor
cg|]}|zSr<r<rs  rrz>TestHarmonicMean.test_multiply_data_points.<locals>.<listcomp>rrrrs    @rtest_multiply_data_pointsz*TestHarmonicMean.test_multiply_data_pointssi<<<99T??1$.......//*****rcdtdD}||}||dz}|||dS)Nc8g|]}tjddS)r
rrrs  rrz6TestHarmonicMean.test_doubled_data.<locals>.<listcomp>s$:::q!$$:::rr(rrrUs    rrz"TestHarmonicMean.test_doubled_datas[::eDkk:::99T??46""vx00000rc
t||ddgddgd||ddgddgd||tddgtddgd||tddtd	dtd
dggd|tddgdztd	dgdzztd
dgdzz||dgd
gd|t
5|gd
gddddn#1swxYwY|tj5|gd
ddgdddn#1swxYwY|tj5|dgdgdddn#1swxYwY|tj5|ddgddgddddS#1swxYwYdS)Nr#rrrgL@)weightsrrrrr)rrrr)r
r<rr
rrg)rGrBrErr8rr=rvrws rtest_with_weightsz"TestHarmonicMean.test_with_weightssB8aW55t<<<B8,-r7#4459	;	;	;4R>>#'B==2237	9	9	9IIxAQ!QH***UUIIxA'!+A'!+,1~~&+,
-
-	.	.	.
	
B4!--r222


y
)
)	-	-IIiii,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-


z9
:
:	)	)IIiii!Q(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)


z9
:
:	!	!IIrdQC   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!


z9
:
:	(	(IIr2hA'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(sHF;;F?F?%HHH6II"IJ--J14J1)r9r:r;rrNrr-r0r6rr9r<r>rr)r-rErrJrrs@rr%r%s---EEE///
:::
$
$
$111@@@000
	:	:	::::111
777
+++111(((((((rr%cHeZdZdZfdZdZdZdZdZdZ	dZ
xZS)	
TestMedianc(tj|_dSrWr=medianrBrws rrzTestMedian.setUp$%			rc	t}t|dzdkr|d|S)Nrr
)rrNrcrS)rKrrs  rrNzTestMedian.prepare_data'sD9ww##%%t99Q;!KKNNNrc`gd}|||ddS)Nr
rrrrrTrrrMs  rtest_even_intszTestMedian.test_even_ints.s3!!!4#.....rc`gd}|||ddS)N)r
rrrrrTrrrrMs  r
test_odd_intszTestMedian.test_odd_ints4s3$$$4!,,,,,rct}|dd|dd|dd|dd|ddg}tj|||||dddS)Nr
rrrrrrrs   rtest_odd_fractionszTestMedian.test_odd_fractions:s!Q1a!!Aq''11Q77AAaGG<t4!!Aq''22222rc	*t}|dd|dd|dd|dd|dd|ddg}tj|||||dddSNr
rrrrrrTrrs   rtest_even_fractionszTestMedian.test_even_fractionsB!Q1a!!Aq''11Q77AAaGGQQq!WWEt4!!Aq''22222rct}|d|d|d|d|dg}tj|||||ddS)N2.53.14.25.75.8rrs   rtest_odd_decimalszTestMedian.test_odd_decimalsJs}%!!E((AAeHHaahh%At4!!E((33333rct}|d|d|d|d|d|dg}tj|||||ddS)Nz1.2r^r_r`rarbz3.65rrs   rtest_even_decimalszTestMedian.test_even_decimalsRs%!!E((AAeHHaahh%!!E((Kt4!!F))44444r)r9r:r;rrNrTrVrXr[rcrerrs@rrLrL"s&&&///---3333334445555555rrLceZdZdZdZdS)TestMedianDataTypec(tj|_dSrWrNrws rrzTestMedianDataType.setUp]rPrcttd}|t|kr'tj||t|k'|S)Nr~rJrMs  rrNzTestMedianDataType.prepare_data`sLE"IIfTll""N4   fTll""rN)r9r:r;rrNr<rrrgrg[s2&&&rrgc&eZdZdZdZdZdZdS)
TestMedianLowc(tj|_dSrW)r=
median_lowrBrws rrzTestMedianLow.setUpis)			rc`gd}|||ddS)NrSrrrMs  rrTzTestMedianLow.test_even_intsl3!!!4!,,,,,rc	*t}|dd|dd|dd|dd|dd|ddg}tj|||||dddSrZrrs   rr[z!TestMedianLow.test_even_fractionsrr\rct}|d|d|d|d|d|dg}tj|||||ddSNz1.1z2.2z3.3z4.4rz6.6rrs   rrez TestMedianLow.test_even_decimalsz%!!E((AAeHHaahh%!!E((Kt4!!E((33333rNr9r:r;rrTr[rer<rrrkrkhsP***---33344444rrkc&eZdZdZdZdZdZdS)TestMedianHighc(tj|_dSrW)r=median_highrBrws rrzTestMedianHigh.setUps*			rc`gd}|||ddS)NrSrrrMs  rrTzTestMedianHigh.test_even_intsrorc	*t}|dd|dd|dd|dd|dd|ddg}tj|||||dddSrZrrs   rr[z"TestMedianHigh.test_even_fractionsr\rct}|d|d|d|d|d|dg}tj|||||ddSrrrrs   rrez!TestMedianHigh.test_even_decimalsrsrNrtr<rrrvrvsP+++---33344444rrvcPeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dS)
TestMedianGroupedc(tj|_dSrW)r=median_groupedrBrws rrzTestMedianGrouped.setUps-			rcvgd}|||dgd}|||dgd}|||ddgd}|||d	d
ddS)
N)rrrrr~r~r)rrrrrrr~g+@)rrrr~rgrgrgrgrrrg`3@)rrrrrgrgrgrrrrg4@:0yE>r1rGrBrarMs  rtest_odd_number_repeatedz*TestMedianGrouped.test_odd_number_repeateds+++4"---+++4&111:::4++V444KKKtyyq11;DIIIIIrcxgd}|||dddgd}|||ddgd}|||d	gd
}|||ddS)N)
rrrr~rgrgrgrrrrg*3@rr)rrrrrrg["8@)rrrrrrrrrrrTrTr)
rrrrrrrrrTrT@)rarBrGrMs  rtest_even_number_repeatedz+TestMedianGrouped.test_even_number_repeateds666tyyq11;DIII!!!tyy
EEE3334#...---4$/////rcdddtddtdfD]C}dD]>}|g|z}|||t	|?DdS)N333333@DgޗCrrz32.9714rrrrGrBrrs    rrz,TestMedianGrouped.test_repeated_single_valuesr68B#4#4gi6H6HI	<	<A'
<
<s5y  4%((;;;;
<	<	<rcdddtddtdfD]9}|||gt	|:dSrrrs  rrz#TestMedianGrouped.test_single_valuescdFHR$4$4gfooF	7	7ATYYs^^U1XX6666	7	7rct}|dd|dd|dd|dd|ddg}tj||||ddS)Nrrrrr|@rrs   rrXz$TestMedianGrouped.test_odd_fractionss!Q1a!!B((AAb!HHaaAhh?t4#.....rc	t}|dd|dd|dd|dd|dd|ddg}tj||||ddS)Nrrrrr|
@rrs   rr[z%TestMedianGrouped.test_even_fractionss!Q1a!!B((AAb!HHaaAhh"aIt4$/////rct}|d|d|d|d|dg}tj||||ddS)Nr6.57.58.5g@rrs   rrcz#TestMedianGrouped.test_odd_decimalssu%!!E((AAeHHaahh%At4$/////rct}|d|d|d|d|d|dg}tj||||d|d|d|d|d|d|dg}tj||||ddS)Nrrrr@@rrs   rrez$TestMedianGrouped.test_even_decimalss%!!E((AAeHHaahh%!!E((Kt4#...%!!E((AAeHHaahh%!!E((Kt4#.....rcgd}|||ddgd}|||dddgd}|||d	d
dS)N)
@rIrIr#r#rrrrrPrKg@)rrIrIr#r#r#rrrrrPg["8@rr)rrrrr,@iTrggp@rrMs  r
test_intervalzTestMedianGrouped.test_intervalsFFF4..666LLLtyyt44jdKKKKKK4,,e44444rc:gd}|t|j|gd}|t|j|gd}d}|t|j||gd}d}|t|j||dS)N)rr)rrrrrrrA)rKrintervals   rtest_data_type_errorz&TestMedianGrouped.test_data_type_errors||)TY555)TY555yy)TYh???yy)TYh?????rN)r9r:r;rrrrrrXr[rcrerrr<rrr}r}s...JJJ$000$<<<777///000000///555@@@@@rr}cDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)TestModec(tj|_dSrW)r=moderBrws rrzTestMode.setUprrc	gdS)N)r
r
r
r
rrrrrrrr<rws rrNzTestMode.prepare_datas90000rcztddd}|||ddSrfr;rMs  rrizTestMode.test_range_data s9RQ4"-----rcd}|||dd}|||ddS)Nabcbdbrzfe fi fo fum fi fifi)rGrBrrMs  rtest_nominal_datazTestMode.test_nominal_data%s^4#...#))++4$/////rcttd}tdD]E}||gz}tj|||||FdSrIrrrrLrGrB)rKrrirs    rtest_discrete_datazTestMode.test_discrete_data,spE"IIr	.	.As
AN1TYYq\\1----	.	.rc`gd}|||ddS)N)r
r
rrrrrrrrTrTrTrTrrrrrrrMs  rtest_bimodal_datazTestMode.test_bimodal_data4s5BBB	
4!,,,,,rcttd}|||ddS)Nrr)rrrGrBrMs  rtest_unique_datazTestMode.test_unique_data;s9E"II4!,,,,,rcH|t|jddSrWrArws rtest_none_datazTestMode.test_none_dataAs$
	
)TY55555rctjdd}|||ddS)Nr
r)rrr)rXCounterrGrB)rKrs  rtest_counter_datazTestMode.test_counter_dataHsA

!q)))	
1s+++++rN)r9r:r;rrNrirrrrrrr<rrrrs$$$111
...
000...------666,,,,,rrceZdZdZdS)
TestMultiModectj}||ddg||dgd||dgdS)Naabbbbbbbbccraabbbbccddddeeffffgg)rrrr)r=	multimoderG)rKrs  rtest_basicszTestMultiMode.test_basicsUsu(	>22SE:::#9::OOOLLL2+++++rN)r9r:r;rr<rrrrSs#,,,,,rrc&eZdZdZdZdZdZdS)	TestFMeanc
tj}t}t}gdddf|d|d|dgddf|dd	|d
d|dd
gdd
fgdddfdd
|dd
gddfdt	gdddffD]Q\}}}||}|t
|t|||||RdS)NrrJ@@floats3.54.05.25decimalsrrrr
r	fractions)TFTTF333333?booleansrmixed types)rrriterator)	r=fmeanrrrErrrrG)rKrrrr
expected_meanrcactual_means        rrzTestFMean.test_basics^s- 


tX.ahh%!!F))
,dJ?a1ggqqAww"a
)4=
-
-
-tZ@1aaAhh
}5-
"""
#
#T:6*	?	?%D- %++KMM${++UD999[->>>>	?	?rc"tj}tj}||5|gdddn#1swxYwY||5|t	gdddn#1swxYwY|t
5|ddddn#1swxYwY|t
5|gddddn#1swxYwY|t
5|dddn#1swxYwY|t
5|gddddddS#1swxYwYdS)NrNrgrrgrF)r=rrvr8rErrKrrvs   rtest_error_caseszTestFMean.test_error_casesos $4



/
/		E"III															



/
/		E$r((OOO															


y
)
)		E$KKK															


y
)
)	"	"E...!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"


y
)
)		EGGG															


y
)
)	$	$E,,,###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$skAA

A
&BBB0CCC-DDD,EE
E(FFFctj}td}td}|t	j|d|gd|t	j|||gd|t	j|d|gd|t5|||gddddS#1swxYwYdSNNanInfrr+znan and infinityinfinity)	r=rrrrrr/r8r.)rKrNaNrs    rtest_special_valueszTestFMean.test_special_valuess3 EllEll
55"c#3#344e<<<
55#s#4#4557IJJJ
55"c#3#344jAAA


z
*
*		E3+																		C::C>C>c	tj}tj}||gddgdz|gd||gdgd|gd||t	gdt	gd|gd||5|gddd	gdddn#1swxYwY||5|t	gdt	dd	gdddn#1swxYwY||5|d
dgddgdddn#1swxYwY||5|t	d
dgt	ddgddddS#1swxYwYdS)
N)rrrr	rKr)rrrg)rKrKr)rrrgrgrrgrr
rrrgrv)r=rrvrGrEr8rs   rtest_weightszTestFMean.test_weightss1 $4E"""TFQJ//E"""##	%	%	%	
E,,, 2 2 233E"""##	%	%	%	
E$|||$$d+=+=+=&>&>??E"""##	%	%	%


/
/	(	(E,,,A'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(



/
/	4	4E$|||$$dAq6ll333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4



/
/	%	%E2r(RG$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%



/
/	1	1E$Bx..$Aw--000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1sHC44C8;C8+EEE+FFF(+G  G$'G$N)r9r:r;rrrrr<rrrr\sP???"$$$ 			11111rrc6eZdZdZdZdZdZdZdZdZ	dS)	VarianceStdevMixinr+cdddtddtdfD],}|||gd-dS)Nrg3@g%Brrz8.392rrrs  rrz$VarianceStdevMixin.test_single_values]dFHR$4$4gg6F6FG	0	0ATYYs^^Q////	0	0rcdddtddtdfD]6}dD]1}|g|z}|||d27dS)	Nrrg@6<Crrz62.4802)rrrr~rrrs    rrz-VarianceStdevMixin.test_repeated_single_valuesxr68Aq>>793E3EF	5	5A&
5
5s5y  4!4444
5	5	5rcdgdz}||}||dd||ddS)Ng.F7ݚ?r:rugؗҌ<rr)rBrarr	s   rtest_domain_error_regressionz/VarianceStdevMixin.test_domain_error_regressionsY""5(4vs666*****rcgd}||}dfd|D}||||dS)N)
g{Gz?gRQ?g
ףp=
?gRQ@gp=
ף@gQ	@rgQ@gGz@gQ@gj@cg|]}|zSr<r<rrshifts  rrz6VarianceStdevMixin.test_shift_data.<locals>.<listcomp>'''aE	'''r)rBrarKr|r&rrs    @rtest_shift_dataz"VarianceStdevMixin.test_shift_datasdKJJ99S>>''''3'''tyy99999rcgd}||}dfd|D}||||dS)N)
r
rrrrrrrrriʚ;cg|]}|zSr<r<rs  rrz<VarianceStdevMixin.test_shift_data_exact.<locals>.<listcomp>rrrrs    @rtest_shift_data_exactz(VarianceStdevMixin.test_shift_data_exactsa///99S>>''''3'''4(33333rcdtdD}||}||t||dS)Nc8g|]}tjddS)r}rrrs  rrz:VarianceStdevMixin.test_iter_list_same.<locals>.<listcomp>rrr()rrBrGrErhs   rtest_iter_list_samez&VarianceStdevMixin.test_iter_list_samesZ<;uT{{;;;99T??4::..99999rN)
r9r:r;r2rrrrrrr<rrrrsuC000
555+++:::444
:
:
:
:
:rrc2eZdZdZdZdZdZdZdZdS)
TestPVariancec(tj|_dSrW)r=	pvariancerBrws rrzTestPVariance.setUps(			rcttd}tj|d}||||dS)Nr:gP_Arrhs   rtest_exact_uniformz TestPVariance.test_exact_uniformsPE%LL!!t$4(33333rcdgd}d}||||dS)Nrrrrg6@rrKrexacts   rrzTestPVariance.test_intss6~~4%00000rct}|dd|dd|dd|ddg}|dd}||}|||||tdS)Nr
rrrrrrBrGassertIsInstancerKrrr	rs     rrzTestPVariance.test_fractions!Q1a!!Aq''11Q773!Q4'''fh/////rc
t}|d|d|d|dg}|d}||}|||||tdS)Nz12.1z12.2z12.5z12.9z0.096875rrBrGrrKrrr	rs     rrzTestPVariance.test_decimalss&		11V99aaii6;*

4'''fg.....rcgd}d}||}|||||tdS)N)rrr
gqq?rBrGrrrKrr	rs    rtest_accuracy_bug_20499z%TestPVariance.test_accuracy_bug_20499Qyy4'''fe,,,,,rN)	r9r:r;rrrrrrr<rrrrsn)))444111000///-----rrc8eZdZdZdZdZdZdZdZdZ	dS)	TestVariancec(tj|_dSrW)r=variancerBrws rrzTestVariance.setUps'			rcdddtddtdfD])}|tj|j|g*dS)Nrg333338@g(G!=Crrz4.2084rrr8r=rvrBrs  rrzTestVariance.test_single_values^dFHR$4$4gh6G6GH	J	JAj8$)aSIIII	J	Jrcdgd}d}||||dS)Nrrrrs   rrzTestVariance.test_intss6~~4%00000rct}|dd|dd|dd|ddg}|dd}||}|||||tdS)Nr
rrrrrr
s     rrzTestVariance.test_fractions rrc(t}|d|d|d|dg}d|dz|dz}||}|||||tdS)Nrrrrz9.5rrrs     rrzTestVariance.test_decimals)s!aaddAAaDD!!A$$'!!E((
11Q444'''fg.....rcd}|||d|||dddS)Nrr/rr/xbarrrrMs  rtest_center_not_at_meanz$TestVariance.test_center_not_at_mean2sS4#...4c22C88888rcgd}d}||}|||||tdS)N)rrrgUUUUUU?rrs    rrz$TestVariance.test_accuracy_bug_204997rrN)
r9r:r;rrrrrr$rr<rrrrs(((JJJ
111000///999
-----rrc eZdZdZdZdZdS)
TestPStdevc(tj|_dSrW)r=pstdevrBrws rrzTestPStdev.setUp@rPrcdtdD}tjtj|}||||dS)Nc8g|]}tjddS)irrrs  rrz7TestPStdev.test_compare_to_variance.<locals>.<listcomp>Es$===AsB''===rr()rrsqrtr=rrGrBrhs   rtest_compare_to_variancez#TestPStdev.test_compare_to_varianceCs[==t===9Z1$77884(33333rcd}|||d|||dddS)N)rrTrrrIr)murrrMs  rr$z"TestPStdev.test_center_not_at_meanIsS4#...4C00#66666rN)r9r:r;rr-r$r<rrr'r'>sA&&&44477777rr'c\eZdZdZeejddZdZdS)TestSqrtHelpersctjtdtddD]\}}tj||}||t||z|z|krB||dzd|||dz
dzz|cxko||dzdzzkncdS)Nrr
r(r)		itertoolsproductrr=_integer_sqrt_of_frac_rtorrrGr)rKrmrs    rtest_integer_sqrt_of_frac_rtoz-TestSqrtHelpers.test_integer_sqrt_of_frac_rtoQs%eCjj%4..AA		A		ADAq4Q::A!!!S)))s1uzzQqS!$$$OOAQ
NQ????a!eaZ????@@@@		A		Arcpuc0dtdtdtfd}tj}tdD]}|d|dz}|d|dzdz}|||	5t||}tj||}|	|||dddn#1swxYwY|
tjd
dd|t5tjdddddn#1swxYwY|t5tjdddddn#1swxYwY|t5tjdd
dddn#1swxYwY|
tjd
dtjdddS)Nrrootreturnc.|s|dkStj|tj}tj|tj}t|}|t|zdz}|t|zdz}|dz|cxko|dzkncS)Nrur)r	nextafterr"r)rr:r_upr_down	frac_roothalf_way_up
half_way_downs       ris_root_correctly_roundedzJTestSqrtHelpers.test_float_sqrt_of_frac.<locals>.is_root_correctly_roundedas
#s{".tx88D N4$(;;F#+4..I%.$%?1$DK'08F3C3C'Cq&HM!A%>>>>kQ.>>>>>>ri`rr	r
)	numeratordenonimatorrrurvrr)rrrr	randrangerrr=_float_sqrt_of_fracrrGr8r.ZeroDivisionError)rKrCrFrirDrErr:s        rtest_float_sqrt_of_fracz'TestSqrtHelpers.test_float_sqrt_of_frac]s	?	?	?4	?	?	?	?$$	v	D	DA&YrYYr]]':;;I(yyy}})<==AK	{KK
D
D&y+>>(<YTT 9 9!T B BCCC
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D	
71==sCCC


z
*
*	2	2*2q111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2


z
*
*	2	2*1b111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2

0
1
1	1	1*1a000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	
7B??A_`acdAeAefffffsI?ACC	C	EEE&FFF-GGGcztdddftdddftdddffD]?\}}}tjtj5|tj|||dddn#1swxYwYtjtj5}|xjdzc_t|t|z}tj|_	|
}dddn#1swxYwYtjtj5|
}dddn#1swxYwY|||A|tjd	d
d|tj5tjdd
dddn#1swxYwY|tj5tjd
ddddn#1swxYwY|t5tjd
d	dddn#1swxYwY|tjd
dtjdd
dS)Nz0.4481904599041192673635338663l:jt9)4]!l73Me'z0.7924949131383786609961759598lQ_Ar,NE*z0.8500554152289934068192208727lkr"-D9}ZGrrr
rurvrr)rrrDefaultContextrGr=_decimal_sqrt_of_fracprec
ROUND_05UProundingr,r8rrH)rKr:rDdenominatorctxhigh_prec_ratiohigh_prec_roottarget_roots        rtest_decimal_sqrt_of_fracz)TestSqrtHelpers.test_decimal_sqrt_of_fracs5
6
68VXwx
5
6
68VXwx
5
6
68VXwx-
	0	0(D)[
%g&<==
a
a  !A)[!Y!Y[_```
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a%g&<==
8A
"))"4"4w{7K7K"K&1!0!5!5!7!7	
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
%g&<==
.
.-o
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.T;////	
9!Q??EEE


w7
8
8	4	4,R333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4


w7
8
8	4	4,Q333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4

0
1
1	3	3,Q222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	
9"bAA:CcdeghCiCijjjjjsm*BB	B	:ADD	"D	EE	E	?G!!G%(G%H--H14H1I44I8;I8N)	r9r:r;r7rrrequires_resourcerIrUr<rrr1r1Osr
A
A
AWu%%*g*g&%*gX#k#k#k#k#krr1c&eZdZdZdZdZdZdS)	TestStdevc(tj|_dSrW)r=stdevrBrws rrzTestStdev.setUps$			rcdddtddtdfD])}|tj|j|g*dS)NQgHzwi@gf7?+Brrz35.719rrs  rrzTestStdev.test_single_values\ffhq"oowx7H7HI	J	JAj8$)aSIIII	J	JrcdtdD}tjtj|}||||dS)Nc8g|]}tjddS)rrrrs  rrz6TestStdev.test_compare_to_variance.<locals>.<listcomp>rrr()rrr,r=rassertAlmostEqualrBrhs   rr-z"TestStdev.test_compare_to_variances[;;uT{{;;;9Z06677tyy99999rc`d}|||dddS)Nr!r/r"rrrMs  rr$z!TestStdev.test_center_not_at_means34c22C88888rN)r9r:r;rrr-r$r<rrrXrXsS%%%JJJ
:::99999rrXc2eZdZdZdZdZdZdZdZdS)TestGeometricMeancRtj}||gdd||ddgd||dgdtjdtdd	tdd
tddtddd
tdddgddtd
DdtdDdtdDf	D]}t
jtt|tdt|zz}||}|t
j|t|dS)N)r}rrB@rJg"@g@g1@l;r
rr(r:rrr})rr|rrxrc6g|]}tjdS)I@rexpovariaterris  rrz1TestGeometricMean.test_basics.<locals>.<listcomp>s#@@@a#D))@@@rc8g|]}tjddS)rr)rlognormvariaterjs  rrz1TestGeometricMean.test_basics.<locals>.<listcomp>s%HHHa&tS11HHHrc:g|]}tjdddS)rmi)r
triangularrjs  rrz1TestGeometricMean.test_basics.<locals>.<listcomp>s'KKK"4t44KKKrro)r=geometric_meanr_rseedrrprodrrrcriscloser)rKrqrng
gm_decimalgm_floats     rrzTestGeometricMean.test_basicss#2~~lll;;TBBB~~sCj993???~~vh77@@@N###a

aa  c61%%fc2&&'''@@5<<@@@HH5<<HHHKKeEllKKK

	G
	GC3w#4#455'!**s3xx:OPJ%~c**HOODL53D3DEEFFFF
	G
	Grc	tj}t}t}d}gddf|d|d|dgdf|dd	|d
d|dd
gd
fdd
|dd
gdfdt	gddffD]Q\}}||}|t
|t||||dRdS)Ngd@rrrrrrrrrr
rrrr)rrrrplaces)	r=rqrrrErrrr_)rKrqrrrrrcrs        rtest_various_input_typesz*TestGeometricMean.test_various_input_typess#2



x(ahh%!!F))
,j9a1ggqqAww"a
);71aaAhh
/'
"""
#
#Z0

	I
	IJD$)...KMM${++UD999"";
a"HHHH
	I
	Irctj}d}|d|zd|zd|zg}|tj|d|z|tj|d}|d|zd|zd|zg}|tj|d|z||ddS)Ngp~gK@g8@rdgpru)r=rqrrrtrr/assertNotEqual)rKrqlargebig_gmsmallsmall_gms      rtest_big_and_smallz$TestGeometricMean.test_big_and_smalls#2te|TE\ JKKVTE\::;;;F++,,,!>4%<te|"LMMXte|<<===Hc*****rc
tj}tj}||5|gdddn#1swxYwY||5|gddddn#1swxYwY||5|gddddn#1swxYwY||5|t	gdddn#1swxYwY|t
5|ddddn#1swxYwY|t
5|gddddn#1swxYwY|t
5|dddn#1swxYwY|t
5|gddddddS#1swxYwYdS)N)rrur)rgrrrr)r=rqrvr8rEr)rKrqrvs   rrz"TestGeometricMean.test_error_casess#2$4



/
/		N2															



/
/	-	-N+++,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-



/
/	.	.N,,,---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.



/
/	%	%N488$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%


y
)
)	!	!N4   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!


y
)
)	+	+N>>>***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+


y
)
)		N															


y
)
)	-	-N<<<,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-sAA

A
&BBB B::B>B>C??DD$D<<EE!E;;E?E? F77F;>F;G88G<?G<ctj}td}td}|t	j|d|gd|t	j|||gd|t	j|d|gd|t5|||gddddS#1swxYwYdSr)	r=rqrrrrr/r8r.)rKrqrrs    rrz%TestGeometricMean.test_special_values	s3#2EllEll
>>2s)#<#<==uEEE
>>3*#=#=>>@RSSS
>>2s)#<#<==zJJJ


z
*
*	(	(NC#;'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(rctj}d}gdgdgdgdgdg}|D]S}||5||}|||d	dddn#1swxYwYTdS)
NgY};t@)rrrr)rrrr)rrrr)rrrr)r/rrr)vrry)r=rqrr_)rKrqrr1rrs      rtest_mixed_int_and_floatz*TestGeometricMean.test_mixed_int_and_float	s#2(
LLNN   
	M	MA""
M
M,nQ//&&{M!&LLL
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M	M	Ms$A**A.	1A.	N)	r9r:r;rr{rrrrr<rrrbrbsyGGG,III$
+
+
+---(	(	(	(MMMMMrrbc,eZdZdZdZdZdZdZdS)
TestQuantilescvtj}gd}tj|dgfddgfdddgfdgd	fd
gdfdgd
fdgdfdgdfdgdfdgdff
D]\}}||||||t||||dz
tttfD]o|t||}|
fd|D||tt|pt|dkr!|||||t|}d|dz|dz
}d|dz|dz
}|||gz}	||||||	|d||fd}
tt|
|}|t|
||}|
tdt||DtddD]\}
tjtd |
!}||\}}}||tj|]dS)"N)rerri^r
r@o@ri@t@r)d@rt@r)a@k@@r@u@rT)^@rrru@r)Y@rgj@rgr@rgXv@r)	gV@rgg@rrrg`t@rgv@r)T@rrr l@rgq@rrrgv@r~)gR@gZ@rge@rrn@gp@rrgt@rg@v@gw@rc3XK|]$}tt|kV%dSrWallrrrdatatypes  rrz4TestQuantiles.test_specific_cases.<locals>.<genexpr>I	6IIQDGGx$7 8 8IIIIIIrrrvr	inclusivermethodcd|zdz
SNrg3333J@r<r
s rrz,TestQuantiles.test_specific_cases.<locals>.f[	Qw))rc3FK|]\}}tj||VdSrWrrtrrjrs   rrz4TestQuantiles.test_specific_cases.<locals>.<genexpr>_	2MMtq!Q 2 2MMMMMMrrrk)r=	quantilesrrLrGrcrrrrrrrKrrgrchoicesrO)rKrrrr&rsdatalohipadded_datarexpactrq1q2q3rs                 @rtest_specific_casesz!TestQuantiles.test_specific_cases0	s](	(((t
G
L

%%%&
,,,-
3334
AAAB
OOOP
   
!
555
6
)	O)	OKAx
Xyy';';';<<<S41!5!5!566A>>>"GX6
H
H"3x#6#6!<<<IIII&IIIIII  c(H.E.E)F)FGGGG8}}!!  8q!9!9!98DDD4LLEU1Xa(BU2Yr*B"b/K	$!$$$	+;???D	



*
*
*s1h''((C)C4LLA...COOCMMs3}}MMMMMNNNNq"	:	:A>%**222D"4JBBR!24!8!89999	:	:rc
tj}gd}tj|dgfddgfdddgfdgd	fd
gdfdgd
fdgdfdgdfdgdfdgdff
D]U\}}|||||d|t|||d|dz
tttfD]p|t||d}|
fd|D||tt|qd}tt||}|t|||d}|
tdt||DW||ddgddgd||tddddgddtd D}||d!d}	|t!||t#|||d!"}|||	tdd#D]^}
tjtd|
$}||d%\}}}
||tj|_dS)&N)rrii r
rr@rry@r)e@r@@r)rrv@@rT)b@rrr@r)g0a@rrgpw@rgP@r)	g@`@rgg@rrrg{@rg@@r)g@_@rrrrrrrrrg@r~)rga@rgf@rrgq@rrrg~@rg@g@rrc3XK|]$}tt|kV%dSrWrrs  rrz>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>	rrcd|zdz
Srr<r
s rrz6TestQuantiles.test_specific_cases_inclusive.<locals>.f	rrc3FK|]\}}tj||VdSrWrrs   rrz>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>	rrrr)	$@rg>@gD@rggN@gQ@rgV@rc6g|]}tjdS)r:)rrFrjs  rrz?TestQuantiles.test_specific_cases_inclusive.<locals>.<listcomp>	s#===Q ((===ri rrrr)r=rrrLrGrcrrrrrrrrgrr)rr#rrO)rKrrrr&rrrrr%rrrrrs              @rtest_specific_cases_inclusivez+TestQuantiles.test_specific_cases_inclusivef	s(	###t
G
L

%%%&
,,,-
3334
>>>?
PPPQ
'''
(
555
6
	O	OKAx
Xyy;'O'O'OPPPS41[!I!I!IJJAPQERRR"GX6
H
H"3x#6#6!KPPPIIII&IIIIII  c(H.E.E)F)FGGGG
*
*
*s1h''((C)C4LLAkBBBCOOCMMs3}}MMMMMNNNNAs8r+FFFOOO	Q	Q	Q5C==B{KKKOOO	Q	Q	Q
>=%**===42k:::CIICII9TR(((6***q"	:	:A>%**222D"4<<<JBBR!24!8!89999	:	:rctj}tddD]L}dg|z}|||gd|||dgdMdS)Nrrr)rrrrr)r=rrrG)rKrrrs    rtest_equal_inputszTestQuantiles.test_equal_inputs	s(	q"	0	0A6A:DYYt__.@.@.@AAAYYtK@@@...
0
0
0
0	0	0rctj}d}dt|Dtt	|krGt
jdtt	|kGdD]P}||z}|	fd||Dtt|||QdD]c}||z||zdzh}fd	||D}d
t||ddD}|||kddS)Nr:c6g|]}tjdS)皙?rhrjs  rrz9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>	s#>>>A"3''>>>rr)
r
rrrrgr	rrrr(rmrr:c:g|]}tj|Sr<bisectrqrs  rrz9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>	s%FFFAtQ''FFFrr)
rr;mi;iisii)&r
c:g|]}tj|Sr<rrs  rrz9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>	s%HHHa6=q))HHHrch|]
\}}||z
Sr<r<)rprs   r	<setcomp>z8TestQuantiles.test_equal_sized_groups.<locals>.<setcomp>	s 999tq!QU999r)
r=rrrcsetrSrrisortrGrrgr)	rKrtotalr
group_sizegroup_sizespossizesrs	        @rtest_equal_sized_groupsz%TestQuantiles.test_equal_sized_groups	s(	>>u>>>#d))nn%%KK*3//000#d))nn%%		O	<	<A!JFFFF411E1E1EFFFU:uj99::
<
<
<
<E	2	2A A:uzA~6KHHHH99TQ3G3G3GHHHC99s3ABB'8'8999EOOE[01111		2	2rctj}tj}|t5|dddn#1swxYwY|t5|gddddddn#1swxYwY|t5|gdddddn#1swxYwY||5|gdddddn#1swxYwY||5|gdddddn#1swxYwY|t5|gdddddn#1swxYwY|t
5|gdd	dddn#1swxYwY||5|d
gddddn#1swxYwY|t5|gddddddS#1swxYwYdS)NrrrrrrvrXrr)rNr)r=rrvr8rr.)rKrrvs   rrzTestQuantiles.test_error_cases	s(	$4


y
)
)		IKKK															


y
)
)	-	-IlllB!,,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-


y
)
)	'	'IlllA&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'



/
/	)	)Illla((((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)



/
/	*	*Illlb))))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*


y
)
)	+	+Illlc****	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+


z
*
*	0	0Illl3////	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0



/
/	!	!Irda    	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!


y
)
)	+	+Innn****	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+sA

AA/BBB1CCC,DDD(EEE)FF	F	*GG

G
&HHH&II
IN)r9r:r;rrrrrr<rrrr.	sa4:4:4:l4:4:4:l000222.+++++rrceZdZdZdZdS)TestBivariateStatisticscgdddgfddggdffD]\}}|tj5tj||dddn#1swxYwY|tj5tj||dddn#1swxYwY|tj5tj||dddn#1swxYwYdS)Nrr
rr8r=rv
covariancecorrelationlinear_regressionrs   rtest_unequal_size_errorz/TestBivariateStatistics.test_unequal_size_error	s
YYAVYYY
		3		3DAq"":#=>>
,
,%a+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,"":#=>>
-
-&q!,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-"":#=>>
3
3,Q222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3		3		3s5AA	A	B##B'	*B'	
C//C3	6C3	cggfgddgfddggfdgdgfdgddgfddgdgffD]\}}|tj5tj||dddn#1swxYwY|tj5tj||dddn#1swxYwY|tj5tj||dddn#1swxYwYdS)Nr
rrrs   rtest_small_sample_errorz/TestBivariateStatistics.test_small_sample_error	s
H
!QMWbMTA4LTAq7OWqdO


	3
	3DAq"":#=>>
,
,%a+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,"":#=>>
-
-&q!,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-"":#=>>
3
3,Q222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
	3
	3s6A''A+	.A+	B33B7	:B7	C??D	D	N)r9r:r;rrr<rrrr	s2
3
3
333333rrceZdZdZdZdS)TestCorrelationAndCovariancecgdgddfgdgddfgdgddfgdgddfgdgdd	ffD]X\}}}|tj||||tj|||YdS)
Nrr
rvrr}rv)rrr
)r
rr
r)r
rrrr_r=rr)rKrr0rs    rtest_resultsz)TestCorrelationAndCovariance.test_results	s
YY			1%
YYb)
YY			2&
YY			1%
YY			3'
	H	HLAq&
"":#9!Q#?#?HHH"":#8A#>#>GGGG	H	Hrcfgd}gd}|tj||d|tj||dgd}|tj||d|tj||ddS)Nr)rrrgrr)rrg333333?r
rrrs   rtest_different_scalesz2TestCorrelationAndCovariance.test_different_scales	sIILLz5a;;SAAAz4Q::A>>>LLz5a;;Q???z4Q::C@@@@@rN)r9r:r;rrr<rrrr	s:	H	H	HAAAAArrc eZdZdZdZdZdS)TestLinearRegressioncgd}gd}|tj5tj||ddddS#1swxYwYdS)N)r
r
r
r)r8r=rvrrs   rtest_constant_input_errorz.TestLinearRegression.test_constant_input_error
sJJJJ


z9
:
:	/	/(A...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sAAAc
 gdgdddfgdgdddfgdgdddfgdgddd	fgdgd
ddfgdgdd
dfgdgdddffD]K\}}}}tj||\}}||||||LdS)Nr)rrrrr
)rrrr)rrrrrrrv)rrrrg)gffffff@g@rrr)r=rr_)rKrr0true_intercept
true_slopeslope	intercepts       rrz!TestLinearRegression.test_results
s
YY			1a(
YY			1a(
YYa0
YYb!,
YYa,
YYb!,
YYC01
	6	6,Aq.* *;AqAAE9""9n===""5*5555	6	6rcgd}gd}tj||d\}}||d||ddS)N)rrgrr#)iibiT)proportionalgN4@ru)r=rr_rG)rKrr0rrs     rtest_proportionalz&TestLinearRegression.test_proportional
sf   %714PPPyuj111C(((((rN)r9r:r;rrrr<rrrr	
sA///666)))))rrceZdZdZdZdZdZdZdZe	j
e	jddZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdS)TestNormalDistc|jdd}|t5t	|dddn#1swxYwY|t
|jddS)Nrr)_mu_sigma)r\
NormalDistr8rvarsrGr	__slots__rKnds  r
test_slotszTestNormalDist.test_slots/
s
[
#
#C
,
,


y
)
)		HHH															r|,,.?@@@@@sAAAc|jdd}||jd||jd||jd|j}||jd||jd||jd||jj5|jdddddn#1swxYwYGdd|jj}|d	d
}|t||dS)Nrr|i!rr
iceZdZdS)GTestNormalDist.test_instantiation_and_attributes.<locals>.NewNormalDistNr8r<rr
NewNormalDistrF
rrrrr)	r\rrGrrZrr8rvr)rKrrnnds    r!test_instantiation_and_attributesz0TestNormalDist.test_instantiation_and_attributes5
s
[
#
#C
,
,#&&&2&&&e,,,[
#
#
%
%!$$$1%%%d+++

t{:
;
;	-	-K""3,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-					DK2			mC##cM22222s6DD"%D"cJ|jj}gd}||||dd||t	||dd||t||dd||jj5|gdddn#1swxYwY||jj5|dgdddn#1swxYwYGdd|}||}|t||dS)N)`rZr
nr~rrceZdZdS)BTestNormalDist.test_alternative_constructor.<locals>.NewNormalDistNr8r<rrrr[
rrr)	r\rrGfrom_samplesrrEr8rvr)rKrrrrs     rtest_alternative_constructorz+TestNormalDist.test_alternative_constructorK
s[+
%%%0066

2q8I8IJJJ00t==zz"a?P?PQQQ00d<<jjQ>O>OPPP


t{:
;
;	(	(##B'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


t{:
;
;	*	*##RD)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*					J			((..cM22222s$#DD	D	/EEEc|jj}d\}}|||}d}||}|t	|||tt
t|th|j	|}|
||dzz
|cxko||dzzkncd}||d}||d}	||d}
||d}|||
||	||||	dS)N)r:rr(rrzhappiness and joy)rrztrouble and despair)r\rsamplesrGrcrrrrrrr})rKrr/sigmarrrr#data1data2data3data4s            rtest_sample_generationz%TestNormalDist.test_sample_generation`
sx[+
	EJr5!!yy||TA&&&St__--w777{%%U1W<<<<U1W<<<<===
		!"5	66		!"7	88		!"5	66		!"7	88&&&&&&E5)))))rc	|jj}|dd}||d|d||d|dt	dD]D}||d|z
|d|zEd}t	ddD]^}|||z||z
|z}||||d	
_|}tgdD]b\}}|||dz|d	
|||dz|d	
c|dd
}	||jj	5|	ddddn#1swxYwY|
|tdd|
|tdd|tj|tddS)Nrr~r~rr	gP?rrCrry)2+ݓ?r(r(ggDio?g?gV}b?gQ|?gFx?ggs?g٬\m?g rh?gK7A`?g|гY?gQ?gQI?gsh|??g=yX5?g|a2U0*?gQ?gN@?g/$?g~k	?g]C?gw/?g~:p?g>W[?gM
O?gW[?g鷯?g{Gz?g
qh?g|a2U?gK7A?gvq
-?gjt?gc]F?g\C?gףp=
?g?ga2U0*?gy):?g(y?gN@a?gfc]F?g"lxz,?gOn?g37?gec]?gn?gT?rr-Infrurr)r\r
assertLesspdfrr_cdfrfr8rvrGrrrr)
rKrrridxrest_pdfZpxYs
          rtest_pdfzTestNormalDist.test_pdfv
s[+
JsBb		155::...c

AEE#JJ///r	C	CA""155q>>155q>>BBBB
r3	@	@AuuQV}}quuQxx/25G""15588WQ"????JLL 
 
 

	D
	DEAr
""155U#3#3R"BBB""155!e#4#4b"CCCCJsA


t{:
;
;		
EE"III																
uV}}--s333uU||,,c222
155u#6#67788888s?H!!H%(H%c	n|jj}|ddfdtddD}|t	tt|th||t||	dd|}dD]_\}}|
|	||d	|
|	|d
|z
d	`|dd}||jj5|	ddddn#1swxYwY|	td
d|	tdd
|
tj	tddS)Nrr~c:g|]}|Sr<)r,)rrrs  rrz+TestNormalDist.test_cdf.<locals>.<listcomp>
s#000Qa000rr
rr))rur)rgqZ ?)rgE_A?)gQ?gGɫs?)g(\?g؞Y?)gQ?g9#?)gHzG?g&S?)rgMbX9?)gQ?gT㥛 ?)g?g??)gffffff@g_xZ?)gQ@g#0?)g)\(@gu<f2?)gףp=
@gVe?)gHzG@g9?rryrrrr)rurr)r\rrrGrrrrrKr,r_r8rvrrr)rKrcdfsr/zcum_probr1rs       @rtest_cdfzTestNormalDist.test_cdf
s0[+
JsB0000%3--000St__--w777vd||,,,sT***
JLL	H	HKAx
""15588Xa"@@@""155!99cHnQ"GGGGJsA


t{:
;
;		
EE"III																
uV}}--s333uU||,,c222
155u#6#67788888sE77E;>E;r8c	Z|jj}|dd}||d|j|}dddd}|D]\}}t
|d	D]j\}}|d
|zz}	|||	|dd
|	z
}	|||	|dk||ddddd}
td|
D]C}	|	|
z}	||	||	|	DtddD]}d|z}	||	||	|	d
|	z
}	||	||	|	tdD]@}|||	||dA|
|jj5|ddddn#1swxYwY|
|jj5|ddddn#1swxYwY|
|jj5|d
dddn#1swxYwY|
|jj5|ddddn#1swxYwY|
|jj5|dd}|ddddn#1swxYwY|tj|tddS)Nrr~r)
rugRQ?gS㥛@gS
@gT㥛 @g^I@g rh@g+N@gC@gV-o@)
g rh?g\(\?g~jt@g+@gMbX9@g(\B@gv@g@gSc@gK7A@)
gPn?gS㥛@gQ@gn
@g(\@gPn@g@g r@gˡE@glq@)rrIrr
)startrrryrr#rg>?gE@i3r/rrrurg?rr)r\rrGinv_cdfritemsrfr_rr,r8rvrrrr)rKriqr/ppr'rowrrrrrjs            rtest_inv_cdfzTestNormalDist.test_inv_cdf
s6[+
ZR
 
 D))27333

JLL777	88	B	BID##Cq111
B
BQ4SD>)&&		!}a&BBB!G&&qyy||Qq&AAAA	
B	
zz"c22::8DDiPPP
q!	=	=A
FA""266"**Q--#8#8!<<<<q"	=	=AA""266"**Q--#8#8!<<<aA""266"**Q--#8#8!<<<<
s	G	GA""2::bffQii#8#8!A"FFFF

t{:
;
;		JJsOOO															


t{:
;
;		JJt															


t{:
;
;		JJsOOO															


t{:
;
;		JJsOOO															


t{:
;
;		C##BJJsOOO															
	

199U5\\#:#:;;<<<<<sZ;JJ!$J!K))K-0K-L55L9<L9NNN+"OO Oc

|j}dgfddgfdddgfdgdffD]U\}}||	}|t	d
t||DVdS)Nr
rrurgǘۿgǘ?r)g/$rug/$?rc3JK|]\}}tj||dVdS)r)abs_tolNrrs   rrz0TestNormalDist.test_quantiles.<locals>.<genexpr>sK ? ? $1!%Q6 B B B ? ? ? ? ? ?r)r\rrrrrg)rKr/rr&r%s     rtest_quantileszTestNormalDist.test_quantiles
sK""$$
G
J
&!"
&&&'		@	@KAx[[1[%%FOOC ? ?(+Hf(=(= ? ? ???
@
@
@
@	@	@rc|jj}|dd|dddf|dd|dddffD]\\}}}||||d||||d]dd	d
d}|dd|ddf|dd|ddf|dd|ddf|dd|d
df|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddffD]o\}}||||||d	||||||d	p|}|t
5|dddn#1swxYwY|t
5|||dddn#1swxYwY|t
5|ddddn#1swxYwY||jj5||dddddn#1swxYwY||jj5|dd|ddddS#1swxYwYdS)Nrur/rgɎ@?gM-[닄?rryi r)stepsr6c	tj}|j|jzdz}|t|j|jz}||z
d|z|zfdt|D}t
t|j|}t
t|j|}	t||||	}
|tt||	|
zS)Nr/c g|]
}|zzSr<r<)rrir-r:s  rrzHTestNormalDist.test_overlap.<locals>.overlap_numeric.<locals>.<listcomp>s!888aUQrT\888r)
rrrr#rZrrrr+r)
rr1rGr6rcenterwidthx_arrxpyprr-r:s
           @@roverlap_numericz4TestNormalDist.test_overlap.<locals>.overlap_numerics>9Dfqvo,FAGQW---EUNEuu$B888885<<888Ec!%''((Bc!%''((BR$$r((++E4CR(())E11rrArrr~rrirrrgjt?g~jth?gjt?ga2U0*3?gMbX?r
r)r\rr_overlapr8rrv)rKrX1X2published_resultrOrs       rtest_overlapzTestNormalDist.test_overlap
s[+
C%%zz#s';';WEC%%zz#s';';WE)	O	O$B$
""2::b>>3CA"NNN""2::b>>3CA"NNNN,1A	2	2	2	2	2C%%zz#s';';<C%%zz#s';';<C%%zz#s';';<B""JJr3$7$78C$$jjb&9&9:D"%%zz#r':':;D"%%zz$';';<C$$jjb&9&9:C$$jjb&9&9:C$$jjb&9&9:C$$jjb&9&9:E5))::eU+C+CDE5))::eV+D+DEE5))::eU+C+CD)	V	VFB,
""2::b>>??2r3J3JST"UUU""2::b>>??2r3J3JST"UUUU
JLL


y
)
)		
IIKKK															


y
)
)		
IIaOOO															


y
)
)		
IIdOOO															


t{:
;
;	(	(
IIjjA&&'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


t{:
;
;	(	(Jq!$$Q'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(sZ;JJ #J K$$K(+K(	L++L/2L/ NNN+ OOOc|jj}|dd}||dd||dd||dd|t
5|dddn#1swxYwY|t
5|dddddn#1swxYwY|t
5|ddddn#1swxYwY||jj5|dd	dddddS#1swxYwYdS)
Nrr~gffffff@:gffffffrur
r)r\rrGzscorer8rrv)rKrrs   rtest_zscorezTestNormalDist.test_zscoreIs[+
JsB#,,,"t,,,#,,,


y
)
)		
HHJJJ															


y
)
)		
HHQNNN															


y
)
)		
HHTNNN															


t{:
;
;	)	)Jq!##C(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)sH.CCC4DDD<EE"%E" F55F9<F9cJ|jdd}||jd||jd||jd||jd||jddS)Nrr~)r\rrGrrOrrZr)rKrs  rtest_propertieszTestNormalDist.test_propertiesXsK""3++%%%3'''%%%"%%%S)))))rc|jj}|dd}|dd}|||z|dd|||z
|dddS)Nrrr#rrr)r\rrGrKrrr1s    r'test_same_type_addition_and_subtractionz6TestNormalDist.test_same_type_addition_and_subtraction`s[+
JsBJr1Q

3 3 3444Q

2r 2 233333rc|jj}|dd}d}||
|dd|||dd|||z|dd|||z|dd|||z
|dd|||z
|dd|||z|dd	|||z|dd	|||z|dd
|t5||zddddS#1swxYwYdS)Nrr~rrrrir(rQr)r\rrGr8r)rKrrr0s    rtest_translation_and_scalingz+TestNormalDist.test_translation_and_scalinggs[+
JsB!ZZR00111!ZZb11222Q

3 3 3444Q

3 3 3444Q

2r 2 2333Q

3 3 3444Q

4 5 5666Q

4 5 5666Q

2s 3 3444


y
)
)		
EE																		s,E??FFc|jj}|dd}|
}|||||j|j||j|j|}|||||j|j||j|jdS)Nrr)r\rassertIsNotrGrrZras    rtest_unary_operationsz$TestNormalDist.test_unary_operationsws[+
JsB
BA(((!'***
BA!&)))!'*****rcd|jj}|}|dd}|}|dd}|dd}|dd}|||||||||||||||Gdd}|}	|||	t
|||	kd||	|kdGdd|}
|
d	d
d}|d	d
}|||Gdd
}|d	d
}
|d	d
}|||
dS)NrrrceZdZdZdS)'TestNormalDist.test_equality.<locals>.AcdSrIr<)rKr,s  r__eq__z.TestNormalDist.test_equality.<locals>.A.__eq__srrN)r9r:r;rlr<rrrrjs#




rrrceZdZfdZxZS)5TestNormalDist.test_equality.<locals>.SizedNormalDistcZt||||_dSrW)r__init__r)rKr/r!rrs    rrpz>TestNormalDist.test_equality.<locals>.SizedNormalDist.__init__s(  U+++r)r9r:r;rprrs@rSizedNormalDistrns8








rrqrr~9ceZdZdZdS)3TestNormalDist.test_equality.<locals>.LognormalDistc"||_||_dSrW)r/r!)rKr/r!s   rrpz<TestNormalDist.test_equality.<locals>.LognormalDist.__init__s"


rN)r9r:r;rpr<rr
LognormalDistrts#
#
#
#
#
#rrv)r\rr}rGrlNotImplemented)rKrnd1nd2nd3nd4nd5nd6rrrqsrvlndrs               r
test_equalityzTestNormalDist.test_equalitys+[+
jlljAjlljAjAjAC%%%c"""c"""C%%%C%%%								
ACCA7772&&&c2&&&					j			
OCR((jb!!C   
	#	#	#	#	#	#	#	#mC$$
ZR
 
 B$$$$$rc|jdd}tj|}|||tj|}|||dS)NB@@)r\rcopyrGdeepcopy)rKrrxrys    r	test_copyzTestNormalDist.test_copysg
[
#
#D%
0
0immS!!!mBS!!!!!rcR|jdd}ttjdzD]n}||5tjtj||}|||dddn#1swxYwYodS)Nrrr
)proto)protocol)	r\rrpickleHIGHEST_PROTOCOLrloadsdumpsrG)rKrrpickleds    rtest_picklezTestNormalDist.test_pickles
[
#
#D%
0
062Q677	.	.EE**
.
. ,v|B'G'G'GHH  W---
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.	.	.s?BB	"B	c|jj}|dd|dd|dd|dd|ddh}|t|ddS)Nrr~rg.@rrr)r\rrGrc)rKNDr~s   rtest_hashabilityzTestNormalDist.test_hashabilitysp
[
#
RR[[""UD//22c2;;2r

BBsBKKPQ#####rc|jdd}|t|ddS)Nrrz NormalDist(mu=37.5, sigma=5.625))r\rrGreprrs  r	test_reprzTestNormalDist.test_reprs<
[
#
#D%
0
0b#EFFFFFrN)r9r:r;rrrr&r2r8rskip_if_pgo_taskrVrArErVr[r^rbrdrgrrrrrr<rrrr&
shAAA333,333****,%9%9%9N999<
Wu%%>=>=&%>=@@@@=(=(=(~
)
)
)***444 
+
+
+*%*%*%X"""...$$$
GGGGGrrceZdZeZdZdZdS)TestNormalDistPythonc.|jtjd<dSrEr\rpmodulesrws rrzTestNormalDistPython.setUp$(KL!!!rc.ttjd<dSrEr=rprrws rtearDownzTestNormalDistPython.tearDown$.L!!!rN)r9r:r;rIr\rrr<rrrrs7
F000/////rrrNceZdZeZdZdZdS)TestNormalDistCc.|jtjd<dSrErrws rrzTestNormalDistC.setUprrc.ttjd<dSrErrws rrzTestNormalDistC.tearDownrrN)r9r:r;rPr\rrr<rrrrs7
F000/////rrcT	|tj|SrW)addTestsrhDocTestSuite)loadertestsignores   r
load_testsrs%0	NN7'))***Lr__main__)r+r,)TrrXcollections.abcrrrhr3rrrrprRtestrtest.supportrrrrrr=rrr*r5r7import_fresh_modulerIrPrFrBrUrsrzrrrr&r5r=rVrertr{rrrrr,r?rrrrrrrr%rLrgrkrvr}rrrrrrr'r1rXrbrrrrrrrSrrr9mainr<rr<module>rs















99999999
333>


 2)2)2)2)t$	$	$	$	$	$	$	$	V2
1,;H/KKK
0}08EHHH
U
U
U
U
U(#
U
U
UXFXFXFXFXFh'XFXFXF~)))))x )));J;J;J;J;Jh/;J;J;J|=B=B=B=B=B8,=B=B=B@,,,,,X.,,,>tEtEtEtEtEX.tEtEtEnKKKKKh/KKK8	G	G	G	G	GH-	G	G	G"%%%%%(+%%%ZCCCCC(#CCC,$$$$$x $$$




(+


=8=8=8=8=8X&=8=8=8@1)1)1)1)1)*1)1)1)h666668$666&a9a9a9a9a9"a9a9a9H;-;-;-;-;-(#;-;-;-|&&&&&(#&&&<`/`/`/`/`/`/`/`/F'.'.'.'.'.'.'.'.T	#	#	#	#	#)+>	#	#	#7F7F7F7F7Fo7F7F7Ft
?
?
?
?
?_
?
?
?;K;K;K;K;K;K;K;K@99999(999(]>]>]>]>]>.A]>]>]>@v(v(v(v(v(6Iv(v(v(r6565656565,656565r




*=


44444J 3444644444Z!44446u@u@u@u@u@
u@u@u@p:,:,:,:,:,.A:,:,:,z,,,,,H%,,,A1A1A1A1A1!A1A1A1L?:?:?:?:?:.?:?:?:D)-)-)-)-)-&9L)-)-)-X,-,-,-,-,-%8K,-,-,-\77777#_777"_k_k_k_k_kh'_k_k_kD99999"O999(fMfMfMfMfM)fMfMfMRa+a+a+a+a+H%a+a+a+H33333h/333>AAAAA8#4AAA0)))))8,))):^G^G^G^G^G^G^G^GH
/////8,n///\#9:://///h'//;:/zHMOOOOOr