python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_statistics.cpython-312.pyc

Αe6dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZmZddlmZddlmZddlZdZdZd	Zdxd
ZGddZej6d
dgZej6d
dgZGddej<ZGddej<Z Gddej<Z!Gddej<Z"Gddej<Z#Gddej<Z$Gddej<Z%Gdd ej<Z&Gd!d"ej<Z'Gd#d$ej<Z(Gd%d&ej<Z)Gd'd(ej<Z*Gd)d*ej<Z+Gd+d,ej<Z,Gd-d.ej<Z-Gd/d0ej<Z.Gd1d2ej<Z/Gd3d4ej<Z0Gd5d6ej<Z1Gd7d8Z2Gd9d:Z3Gd;d<e2e3Z4Gd=d>e Z5Gd?d@e Z6GdAdBe Z7GdCdDe2Z8GdEdFe e8e3Z9GdGdHe e8e3Z:GdIdJe e8Z;GdKdLe e3Z<GdMdNe;e3Z=GdOdPe;e3Z>GdQdRe;Z?GdSdTe e8e3Z@GdUdVej<ZAGdWdXej<ZBGdYdZe2ZCGd[d\eCe e3ZDGd]d^eCe e3ZEGd_d`eCe ZFGdadbej<ZGGdcddeCe ZHGdedfej<ZIGdgdhej<ZJGdidjej<ZKGdkdlej<ZLGdmdnej<ZMGdodpZNGdqdrej<eNZOejedsGdtduej<eNZQdvZReSdwk(rejyy)yz_Test suite for statistics module, including helper NumericTestCase and
approx_equal function.

N)support)
import_helperrequires_IEEE_754)DecimalFractionc.tjd|S)z:Return -1.0 for negatives, including -0.0, otherwise +1.0.)mathcopysignxs H/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_statistics.pysignrs==Ac
t|t|uryt|tr,tj|xrtj|S|jd}|jd}||k(xr|dvS)aReturn True if a and b are both the same kind of NAN.

    >>> _nan_equal(Decimal('NAN'), Decimal('NAN'))
    True
    >>> _nan_equal(Decimal('sNAN'), Decimal('sNAN'))
    True
    >>> _nan_equal(Decimal('NAN'), Decimal('sNAN'))
    False
    >>> _nan_equal(Decimal(42), Decimal('NAN'))
    False

    >>> _nan_equal(float('NAN'), float('NAN'))
    True
    >>> _nan_equal(float('NAN'), 0.5)
    False

    >>> _nan_equal(float('NAN'), Decimal('NAN'))
    False

    NAN payloads are not compared.
    F)nN)type
isinstancefloatrisnanas_tuple)abaexpbexps    r
_nan_equalr#sn,Awd1g!Uzz!}.A.::<?D::<?DDL2tz12rctt|t|}t||z
}|r||zn
td}||fS)zReturn the absolute and relative errors between two numbers.

    >>> _calc_errors(100, 75)
    (25, 0.25)
    >>> _calc_errors(100, 100)
    (0, 0.0)

    Returns the (absolute error, relative error) between the two arguments.
    inf)maxabsr)actualexpectedbaseabs_errrel_errs     r_calc_errorsr)BsCs6{CM*D&8#$G"gdleGWrc
`|dks|dkrtdtj|stj|ry||k(rytj|stj|ryt	||z
}t||tt	|t	|z}||kS)aapprox_equal(x, y [, tol [, rel]]) => True|False

    Return True if numbers x and y are approximately equal, to within some
    margin of error, otherwise return False. Numbers which compare equal
    will also compare approximately equal.

    x is approximately equal to y if the difference between them is less than
    an absolute error tol or a relative error rel, whichever is bigger.

    If given, both tol and rel must be finite, non-negative numbers. If not
    given, default values are tol=1e-12 and rel=1e-7.

    >>> approx_equal(1.2589, 1.2587, tol=0.0003, rel=0)
    True
    >>> approx_equal(1.2589, 1.2587, tol=0.0001, rel=0)
    False

    Absolute error is defined as abs(x-y); if that is less than or equal to
    tol, x and y are considered approximately equal.

    Relative error is defined as abs((x-y)/x) or abs((x-y)/y), whichever is
    smaller, provided x or y are not zero. If that figure is less than or
    equal to rel, x and y are considered approximately equal.

    Complex numbers are not directly supported. If you wish to compare to
    complex numbers, extract their real and imaginary parts and compare them
    individually.

    NANs always compare unequal, even with themselves. Infinities compare
    approximately equal if they have the same sign (both positive or both
    negative). Infinities with different signs compare unequal; so do
    comparisons of infinities with finite numbers.
    rz%error tolerances must be non-negativeFT)
ValueErrorrrisinfr#r")rytolrelactual_error
allowed_errors      rapprox_equalr2RsDQw#'@AAzz!}

1
Avzz!}

1
q1u:LSSVSV!445M=((rceZdZdZy)
_DoNothinga
    When doing numeric work, especially with floats, exact equality is often
    not what you want. Due to round-off error, it is often a bad idea to try
    to compare floats with equality. Instead the usual procedure is to test
    them with some (hopefully small!) allowance for error.

    The ``approx_equal`` function allows you to specify either an absolute
    error tolerance, or a relative error, or both.

    Absolute error tolerances are simple, but you need to know the magnitude
    of the quantities being compared:

    >>> approx_equal(12.345, 12.346, tol=1e-3)
    True
    >>> approx_equal(12.345e6, 12.346e6, tol=1e-3)  # tol is too small.
    False

    Relative errors are more suitable when the values you are comparing can
    vary in magnitude:

    >>> approx_equal(12.345, 12.346, rel=1e-4)
    True
    >>> approx_equal(12.345e6, 12.346e6, rel=1e-4)
    True

    but a naive implementation of relative error testing can run into trouble
    around zero.

    If you supply both an absolute tolerance and a relative error, the
    comparison succeeds if either individual test succeeds:

    >>> approx_equal(12.345e6, 12.346e6, tol=1e-3, rel=1e-4)
    True

    N)__name__
__module____qualname____doc__rrr4r4s
"F	rr4
statistics_statistics)blocked)freshcJeZdZdgZdZejeddZy)TestModules_normal_dist_inv_cdfcz|jD],}|jtt|jd.yNr:)
func_namesassertEqualgetattr
py_statisticsr6selffnames  rtest_py_functionszTestModules.test_py_functionss4__	UEW]E:EE|T	Urrequires _statisticscz|jD],}|jtt|jd.y)Nr;)rCrDrEc_statisticsr6rGs  rtest_c_functionszTestModules.test_c_functionss4__	UEW\59DDmT	UrN)	r5r6r7rCrJunittest
skipUnlessrMrNr9rrr?r?s6()JUX'=>U?Urr?c@eZdZdZdxZZ	ddZdZd	dZe	dZ
y)
NumericTestCasezUnit test class for numeric work.

    This subclasses TestCase. In addition to the standard method
    ``TestCase.assertAlmostEqual``,  ``assertApproxEqual`` is provided.
    rNc||j}||j}t|tjj
r1t|tjj
r
|j}n|j}||||||y)aTest passes if ``first`` and ``second`` are approximately equal.

        This test passes if ``first`` and ``second`` are equal to
        within ``tol``, an absolute error, or ``rel``, a relative error.

        If either ``tol`` or ``rel`` are None or not given, they default to
        test attributes of the same name (by default, 0).

        The objects may be either numbers, or sequences of numbers. Sequences
        are tested element-by-element.

        >>> class MyTest(NumericTestCase):
        ...     def test_number(self):
        ...         x = 1.0/6
        ...         y = sum([x]*6)
        ...         self.assertApproxEqual(y, 1.0, tol=1e-15)
        ...     def test_sequence(self):
        ...         a = [1.001, 1.001e-10, 1.001e10]
        ...         b = [1.0, 1e-10, 1e10]
        ...         self.assertApproxEqual(a, b, rel=1e-3)
        ...
        >>> import unittest
        >>> from io import StringIO  # Suppress test runner output.
        >>> suite = unittest.TestLoader().loadTestsFromTestCase(MyTest)
        >>> unittest.TextTestRunner(stream=StringIO()).run(suite)
        <unittest.runner.TextTestResult run=2 errors=0 failures=0>

        N)r.r/rcollectionsabcSequence_check_approx_seq_check_approx_num)rHfirstsecondr.r/msgchecks       rassertApproxEqualz!NumericTestCase.assertApproxEqualsn>;((C;((C5+//":":;6;??#;#;<**E**E
eVS#s+rc	t|t|k7r<dt|t|fz}|j||}|j|tt	||D]\}\}}	|j||	|||| y)Nz0sequences differ in length: %d items != %d items)len_formatMessagefailureException	enumerateziprX)
rHrYrZr.r/r[standardMsgires
          rrWz!NumericTestCase._check_approx_seqsu:V$Bu:s6{+,
%%c;7C'',,!#eV"45	;HAu!""1ac3:	;rct||||ry|j|||||}|j||}|j|N)r2_make_std_err_msgr`ra)rHrYrZr.r/r[idxrds        rrXz!NumericTestCase._check_approx_num
sNvsC0,,UFCcJ!!#{3##C((rc`||k7sJd}|
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))	rYrZr.r/rjtemplateheaderr'r(s	         rriz!NumericTestCase._make_std_err_msgs\
'	?DsJF(H'v65&#sGWEEEr)NNNrh)r5r6r7r8r.r/r]rWrXstaticmethodrir9rrrRrRs=MC#:>*,X	;)FFrrRceZdZdZdZy)TestSignz5Test that the helper function sign() works correctly.cp|jtdd|jtddy)Nr
g)rDrrHs r
testZeroeszTestSign.testZeroes+s*cB'dR(rN)r5r6r7r8rur9rrrprp)s
?)rrpc$eZdZdZdZdZdZy)ApproxEqualSymmetryTestcdddtdtddg}ddd	td
tddg}t|t|k(sJt||D]\}}|j	||y)Ni	gfffffB@gfffff(z2.546i	gB@gR(z2.59)rrr_rcdo_relative_symmetry)rHargs1args2rrs     rtest_relative_symmetryz.ApproxEqualSymmetryTest.test_relative_symmetry6swtVWV_hr26FGtVWV_hr26FG5zSZ''u%	,DAq%%a+	,rct||t||}}||ksJ||z
}t||zt||z}}||zdz}|jt	||d||jt	||d|y)Nrrr.r/)minr"r#
assertTruer2)rHrrdeltarel_err1rel_err2r/s       rr|z,ApproxEqualSymmetryTest.do_relative_symmetryFs1ay#a)11uA q\3uQw<(("A%	
Qqc:;Qqc:;rc	(gd}d}|D]}ttttfD]}||dz}||z}t	|t||z}|j
|||||j
|||dzd|z|j
|||dz
|dz|j
||||dz|j
|||dz
||j
|||dz
d|z|j
||dd|j
||dd	y)N)ikimrdrr
r)intrrrr#r"do_symmetry_test)rHargsrrtype_rr-rs        r
test_symmetryz%ApproxEqualSymmetryTest.test_symmetryRs7'	:Augx8
:!HSLIc!Qi(%%a1%=%%aaQqS%A%%aaQqS%A%%a1Q3%?%%aaQ%?%%aaQqS%A%%aq%9%%aq%9#
:	:rc
d}t||||}t||||}|j|||j||||fy)Nz+approx_equal comparisons don't match for %r)r2rDformat)rHrrr.r/rlflag1flag2s        rrz(ApproxEqualSymmetryTest.do_symmetry_testjsK@Q3,Q3,x1c37G'HIrN)r5r6r7rr|rrr9rrrwrw3s, 
<:0JrrwcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)ApproxEqualExactTestct||||}|j|d|zt||||}|j|d|zy)Nrzequality failure for x=%r)r2r)rHrr.r/results     rdo_exactly_equal_testz*ApproxEqualExactTest.do_exactly_equal_testwsPa5 ;a ?@qb1"#37 ;qb @Arc8dD]}|j|ddy)N)*iMi~:iiU
irrrHrs  rtest_exactly_equal_intsz,ApproxEqualExactTest.test_exactly_equal_ints}s#=	0A&&q!Q/	0rc8dD]}|j|ddy)N)gzG?g/$?ge@g7@gpf@g!rhQ@gB`"KB@rrrHrs  rtest_exactly_equal_floatsz.ApproxEqualExactTest.test_exactly_equal_floatss#E	0A&&q!Q/	0rc	t}|dd|d|dd|dd|dd	|ddfD]}|j|ddy)
Nr
rrr	#$)rrrHFfs   rtest_exactly_equal_fractionsz1ApproxEqualExactTest.test_exactly_equal_fractionssWAq'1Q41a!Aq'1R9a1gF	0A&&q!Q/	0rctt}t|djD]}|j|ddy)Nz8.2 31.274 912.04 16.745 1.2047r)rmapsplitr)rHDds   rtest_exactly_equal_decimalsz0ApproxEqualExactTest.test_exactly_equal_decimalss9Q9??AB	0A&&q!Q/	0rcdD]J}|j|dd|j|dzddt|d}|j|ddLy)N)ii\ii{Gz?r
i)rr)rHrrs   rtest_exactly_equal_absolutez0ApproxEqualExactTest.test_exactly_equal_absolutesW/	3A&&q$2&&qtT15D!A&&q$2	3rc|jtdtdd|jtdtddy)Nz3.5710.01rz81.3971)rrrts r$test_exactly_equal_absolute_decimalsz9ApproxEqualExactTest.test_exactly_equal_absolute_decimalss;""77#3WV_aH""GI$6#6KrcdddtddfD]}|j|dd|jtddtd	y)
Ni g33333SY@gzGrrrz11.68rrrrrs  rtest_exactly_equal_relativez0ApproxEqualExactTest.test_exactly_equal_relativesMx!R9	3A&&q!T2	3""77#3QHrcdddtddfD]}|j|ddt}|j|d|d	|d
y)Ni9gˡE0@g\(hr皙?rz7.2z0.1rr)rHrrs   rtest_exactly_equal_bothz,ApproxEqualExactTest.test_exactly_equal_bothsU(1a.9	5A&&q#t4	5""1U8QuXqyArN)r5r6r7rrrrrrrrrr9rrrrqs3B0
0
00	3L
IBrrc*eZdZdZdZdZdZdZy)ApproxEqualUnequalTestcf||fD])}t||dzdd}|j|d|z+y)Nr
rrzinequality failure for x=%r)r2assertFalse)rHrrrs    rdo_exactly_unequal_testz.ApproxEqualUnequalTest.do_exactly_unequal_testsCaR	HA!!QqSaQ7FV%BQ%FG	Hrc4dD]}|j|y)N)iiiiiXCrrs  rtest_exactly_unequal_intsz0ApproxEqualUnequalTest.test_exactly_unequal_intss/	,A((+	,rc4dD]}|j|y)N)gQ#@g[@gfffffG@gףp=
W"@g=
ףp=1@rrs  rtest_exactly_unequal_floatsz2ApproxEqualUnequalTest.test_exactly_unequal_floatss3	,A((+	,rct}|dd|dd|dd|ddfD]}|j|y)	Nr
rrreiς)rrrs   rtest_exactly_unequal_fractionsz5ApproxEqualUnequalTest.test_exactly_unequal_fractionssEAq'1Q7Ab"Iqe}=	,A((+	,rclttdjD]}|j|y)Nz!3.1415 298.12 3.47 18.996 0.00245)rrrrrHrs  rtest_exactly_unequal_decimalsz4ApproxEqualUnequalTest.test_exactly_unequal_decimalss0WAGGIJ	,A((+	,rN)r5r6r7rrrrrr9rrrrsH
,
,
,,rrcleZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZy)ApproxEqualInexactTestc	d}||z||z
fD]X}|j||}|jt||d|zd||jt|||dzd|Zy)NTest failure for x={!r}, y={!r}rrrrrr2rrHrrrlr-r[s      rdo_approx_equal_abs_testz/ApproxEqualInexactTest.do_approx_equal_abs_testsq4e)QY'	JA//!Q'COOLA1U7BCH\!QE!GCSI	JrcZdD]&}|j|d|j|d(y)N)iiIirrr
r%ii&i6jrrrrs  rtest_approx_equal_absolute_intsz6ApproxEqualInexactTest.test_approx_equal_absolute_intss1J	0A))!R0))!Q/	0rc~dD]8}|j|d|j|d|j|d:y)N)	gtqgfffffFXg333333g333333??g333333@gQ@gҭ@?r-C6?rrs  r!test_approx_equal_absolute_floatsz8ApproxEqualInexactTest.test_approx_equal_absolute_floatssAL	5A))!S1))!T2))!V4	5rctdd}gd}d|DD]/}|j|||j|t|1y)Nr
)irrsrr
rry"Gc34K|]}t|dyw)rNr).0rs  r	<genexpr>zNApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>s6a(1b/6s)rrr)rHr
numeratorsrs    r$test_approx_equal_absolute_fractionsz;ApproxEqualInexactTest.test_approx_equal_absolute_fractionssJB@
6:6	;A))!U3))!U5\:	;rctd}ttdjD]'}|j|||j||)y)Nrz1.0 3.5 36.08 61.79 7912.3648)rrrr)rHrrs   r#test_approx_equal_absolute_decimalsz:ApproxEqualInexactTest.test_approx_equal_absolute_decimalssMW=CCEF	5A))!U3))1"e4	5rc@|jtddddy)Ngh㈵>gh㈵rrr)rr2rts rtest_cross_zeroz&ApproxEqualInexactTest.test_cross_zerosT5dBCrc
d}|d|zz|d|z
zfD]X}|j||}|jt||dd|z||jt||d|dz|Zy)Nrr
rrrrrs      rdo_approx_equal_rel_testz/ApproxEqualInexactTest.do_approx_equal_rel_testsy4QuW+q!E'{+	JA//!Q'COOLA1!E'BCH\!QA57CSI	Jrc0|jtdddd|jtdddd|jtdddd	|jtd
ddd	|jtdddd	y)N@/rg
ףp=
?rgGz?ii?ii)rr2rrts rtest_approx_equal_relative_intsz6ApproxEqualInexactTest.test_approx_equal_relative_intsswR=>R=>S#1%@AS#1%@Ac3A5ABrcZdD]&}|j|d|j|d(y)N)g{GJf皙rrg\(|B@gʡE>@gx@{Gz?r)rrs  r!test_approx_equal_relative_floatsz8ApproxEqualInexactTest.test_approx_equal_relative_floatss1E	5A))!T2))!V4	5rct}tdd}|dd|dd|dd|dd	fD]9}|t|fD]'}|j|||j||);y)
NrrTry12\U)rrr)rHrrrrs     r$test_approx_equal_relative_fractionsz;ApproxEqualInexactTest.test_approx_equal_relative_fractionss|AAr(Ab"IqRy!B)<	5AU5\*
5--a3--qb!4
5	5rcttdjD]9}|j|td|j|td;y)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_decimalssMWDJJLM	?A))!WW-=>))1"gfo>	?rc"|r|jn|j}|t|||d|r|jn|j}|t||d||s|r|jn|j}|t||||y)Nrr)rrr2)rHrrr.r/tol_flagrel_flagr\s        r
do_check_bothz$ApproxEqualInexactTest.do_check_both,sv#+1A1A
l1aSa01#+1A1A
l1aQC01$,t?O?O
l1aSc23rc\|jdddddd|jdddd	ddy)
NR@+@Mbp?W8?Tg?5^Ig%CMb`?g-C6*?rrts rtest_approx_equal_both1z.ApproxEqualInexactTest.test_approx_equal_both14s25%dC665&$Erc0|jddddddy)NrrrgVF?8?TFrrts rtest_approx_equal_both2z.ApproxEqualInexactTest.test_approx_equal_both29s5%eDrc0|jddddddy)NrrMbP?rFTrrts rtest_approx_equal_both3z.ApproxEqualInexactTest.test_approx_equal_both3=s5%tDrc\|jdddddd|jdddd	ddy)
Ng=
ףp=@@rrFgQ[@g(\[@rgiUMu>rrts rtest_approx_equal_both4z.ApproxEqualInexactTest.test_approx_equal_both4As24tUE5A664ueDrN)r5r6r7rrrrrrrrrr	r
rrrrr!r9rrrrsZJ05;5DJC55?4F
EEErrc$eZdZdZdZdZdZy)ApproxEqualSpecialsTestc	ttfD]}|d}|jt|||jt||dd|jt||dd|jt|||j	t|||j	t|dy)Nr!rr
r)rrrr2r)rHrr!s   rtest_infz ApproxEqualSpecialsTest.test_infJsW%	6E,COOLc23OOLc1a89OOLc1d;<OOL#t45\#t45\#t45	6rcttfD]5}|d}||ddfD]}|jt||7y)Nnanr!r%)rrrr2)rHrr(others    rtest_nanz ApproxEqualSpecialsTest.test_nanTsNW%	;E,CuU|T2
;  c5!9:
;	;rcltjdd}|jt|dddy)Nrrrsrr)rrrr2rHnzeros  rtest_float_zeroesz)ApproxEqualSpecialsTest.test_float_zeroesZs)

c2&UCScBCrchtd}|jt|tdddy)Nz-0.0rrr)rrr2r,s  rtest_decimal_zeroesz+ApproxEqualSpecialsTest.test_decimal_zeroes^s&UGAJCSIJrN)r5r6r7r&r*r.r0r9rrr#r#Gs6;DKrr#ceZdZdZdZy)TestApproxEqualErrorsc@|jttddddy)NrrsrassertRaisesr+r2rts rtest_bad_tolz"TestApproxEqualErrors.test_bad_tolfs*lCb#Frc@|jttddddy)Nrr
rr4rts rtest_bad_relz"TestApproxEqualErrors.test_bad_reljs*lCaFrN)r5r6r7r6r8r9rrr2r2csGGrr2c*eZdZdZdZdZdZdZy)TestNumericTestCasecxtj|}|j|}|D]}|j||yrh)rRrigenerate_substringsassertIn)rHr
actual_msgr%	substrings     rdo_testzTestNumericTestCase.do_testzsA$66=
+4++T2!	1IMM)Z0	1rc^|jtttjyrh)r
issubclassrRrOTestCaserts r test_numerictestcase_is_testcasez4TestNumericTestCase.test_numerictestcase_is_testcases
?H4E4EFGrc*d}|j|y)N)@@r?Nr@rHrs  rtest_error_msg_numericz*TestNumericTestCase.test_error_msg_numerics*Trc*d}|j|y)N)@g @g?rrrIrJs  rtest_error_msg_sequencez+TestNumericTestCase.test_error_msg_sequences)Trctt||\}}d|zd|zd|zd|zg}||jd|z|S)z5Return substrings we expect to see in error messages.ztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r)append)	rHrYrZr.r/rjr'r(
substringss	         rr<z'TestNumericTestCase.generate_substringssY'v633%/%/	
?2S89rN)r5r6r7r@rDrKrNr<r9rrr:r:ts1H

rr:c$eZdZeZddgZdZdZy)GlobalsTestr8__all__cx|jD]+}|jt|j|d|z-y)Nz%s not present)expected_metadatarhasattrmodule)rHmetas  r	test_metazGlobalsTest.test_metas8**	5DOOGDKK6,t3
5	5rc|j}|jD]E}|j|jdd|z|j	t||d|zGy)N_zprivate name "%s" in __all__zmissing name "%s" in __all__)rXrTr
startswithrrW)rHrXnames   rtest_check_allzGlobalsTest.test_check_allsbNN	CDT__S1;dB
D
OOGFD1:TA
C	CrN)r5r6r7r:rXrVrZr_r9rrrSrSs
F"I.5	CrrScleZdZejejjdk\ddZy)DocTestsrz)Docstrings are omitted with -OO and abovectjttj\}}|j	|d|j|dy)N)optionflagsr)doctesttestmodr:ELLIPSIS
assertGreaterrD)rHfailedtrieds   rtest_doc_testszDocTests.test_doc_testss> 
@P@PQ
5!$#rN)	r5r6r7rOskipIfsysflagsoptimizerjr9rrraras5X__SYY''1,@B$B$rraceZdZdZy)StatisticsErrorTestcd}|jttd|jttjt
|tjjzy)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.StatisticsError)rrWr:rBrrr+__base__)rHerrmsgs  rtest_has_exceptionz&StatisticsErrorTest.test_has_exceptionsR+		

,=>?:55zB33<<<	rN)r5r6r7rur9rrrprps	rrpc6eZdZdZdZdZdZdZdZdZ	y)	ExactRatioTestc`dD])}|jtj||df+y)N)irrcl Fx:^Vr
)rDr:_exact_ratio)rHres  rtest_intzExactRatioTest.test_ints2,	AAZ44Q7!Q@	Arc|d}|D]5}t|d}|jtj||df7y)N)r
r&r)rrDr:r{)rHrrrs    r
test_fractionzExactRatioTest.test_fractionsB$
	BABAZ44Q7!RA	Brcb|jtjdd|jtjddtdDcgc]}t	j
dd}}|D]/}tj|\}}|j|||z1ycc}w)Nrr
r?)rrr)rDr:r{rangerandomuniform)rHr\datarnumdens      r
test_floatzExactRatioTest.test_floats007@007@38:>atS)>>	)A!..q1HCQC(	)?sB,ct}tj}|j||dd|j||dd|j||ddy)Nz0.125rz12.345)i	z-1.98)ir)rr:r{rD)rHrr{s   rtest_decimalzExactRatioTest.test_decimals]!..aj16:ak2K@aj19=rc|td}Gddt}Gddt}||fD]}t|t|fD]x}||}tj|}|j	||df|j	t|d||j
tj|dzy)NINFceZdZy)(ExactRatioTest.test_inf.<locals>.MyFloatNr5r6r7r9rrMyFloatrrrceZdZy)*ExactRatioTest.test_inf.<locals>.MyDecimalNrr9rr	MyDecimalrrrrr)	rrr:r{rDrrrr,)rHrrrr!rrratios        rr&zExactRatioTest.test_infsEl	e			#;	6C'9=
6#J"//2  D	2  eAh7

58 45
6	6rcFtd}Gddt}|||fD]z}tj|}|jt	j
|d|j
|dd|jt|dt||y)NNANceZdZy).ExactRatioTest.test_float_nan.<locals>.MyFloatNrr9rrrrrrrrr
)	rr:r{rrrassertIsrDr)rHrrr(rs     rtest_float_nanzExactRatioTest.test_float_nansEl	e	&	8C++C0EOODJJuQx01MM%(D)T%(^T#Y7		8rcZtd}td}Gddt}||||||fD]q}tj|}|jt	|d||j|dd|j
t|dt|sy)NrsNANceZdZy)2ExactRatioTest.test_decimal_nan.<locals>.MyDecimalNrr9rrrrrrrrr
)rr:r{rrrrDr)rHrrrr(rs      rtest_decimal_nanzExactRatioTest.test_decimal_nansenv		3y?	8C++C0EOOJuQx56MM%(D)T%(^T#Y7		8rN)
r5r6r7r|rrrr&rrr9rrrwrws'AB)>68	8rrwc0eZdZdZdZdZdZdZdZy)DecimalToRatioTestctd}|jtj||df|jtj||dfy)Nr)rrDr:r{)rHr!s  r
test_infinityz DecimalToRatioTest.test_infinitysMen005T{C00#6#tErctdtdfD]G}tj|\}}|jt	|||j|dIy)Nrr)rr:r{rrr)rHr(rrs    rr*zDecimalToRatioTest.test_nansUENGFO4	%C!..s3HC
OOJsC01MM#t$
	%rc>tdtdg}|D]}|dkDsJtj|\}}|j|d|j	|dtj|\}}|j|d|j	|dy)Nz	9.8765e12z
9.8765e-12r)rr:r{assertGreaterEqualrgassertLessEqual)rHnumbersrrrs     r	test_signzDecimalToRatioTest.test_sign!s;')>?		'Aq5L!..q1HC##C+sA&!..r2HC  a(sA&		'rcdtjtd}|j|dy)Nz0.1234)iir:r{rrDrHts  rtest_negative_exponentz)DecimalToRatioTest.test_negative_exponent/s'##GH$56K(rcdtjtd}|j|dy)Nz1.234e7)i Kr
rrs  rtest_positive_exponentz)DecimalToRatioTest.test_positive_exponent4s'##GI$67M*rctjtd}|j|dtjtd}|j|dy)N1e2)rr
z1.47e5)i8>r
rrs  rtest_regression_20536z(DecimalToRatioTest.test_regression_205369sM
##GEN3H%##GH$56K(rN)	r5r6r7rr*rrrrr9rrrrs!F%')
+
)rrceZdZdZdZdZy)IsFiniteTestcdtdddtdfD]&}|jtj|(y)Nrr
rrF5.5)rrrr:	_isfiniters  rtest_finitezIsFiniteTest.test_finiteEs;Xa^S'%.9	5AOOJ0034	5rctdtdfD]&}|jtj|(yNr!rrrr:rrs  rrzIsFiniteTest.test_infinityJs7,/	6AZ11!45	6rctdtdtdfD]&}|jtj|(yNr(rrrrs  rr*zIsFiniteTest.test_nanOs=,@	6AZ11!45	6rN)r5r6r7rrr*r9rrrrBs5
6
6rrcNeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
y)
CoerceTestcttttfD]a}|j	tj|t|Gdd|}|j	tj|t|cy)NceZdZy)%CoerceTest.test_bool.<locals>.MyClassNrr9rrMyClassrprr)rrrrrr:_coercebool)rHTrs   r	test_boolzCoerceTest.test_booljs\uh0	FAMM*,,Q5q9"!"MM*,,Wd;WE	Frc|jtj||||jtj|||y)z Assert that type A coerces to B.N)rr:rrHABs   rassertCoerceTozCoerceTest.assertCoerceToss8

j((A.2

j((A.2rc|j||Gdd|}|j||Gdd|}|j|||j||y)z6Checks that type A coerces to B, including subclasses.ceZdZy)/CoerceTest.check_coerce_to.<locals>.SubclassOfANrr9rrSubclassOfAr}rrrceZdZy)/CoerceTest.check_coerce_to.<locals>.SubclassOfBNrr9rrSubclassOfBrrrrN)r)rHrrrrs     rcheck_coerce_tozCoerceTest.check_coerce_toxsT	
Aq!"!"K+"!"A{+K5rc|jttj||f|jttj||fy)z=Assert that coercing A to B, or vice versa, raises TypeError.N)r5	TypeErrorr:rrs   rassertCoerceRaiseszCoerceTest.assertCoerceRaisess:)Z%7%7!Q@)Z%7%7!Q@rcJ|tusJ|jtj|||Gdd|}Gdd|}Gdd|}|||fD]}|j	|||j	|||j|||j||y)z>Check that type T coerces correctly with subclasses of itself.ceZdZy)*CoerceTest.check_type_coercions.<locals>.UNrr9rrUrrrrceZdZy)*CoerceTest.check_type_coercions.<locals>.VNrr9rrVrrrrceZdZy)*CoerceTest.check_type_coercions.<locals>.WNrr9rrWrrrrN)rrr:rrr)rHrrrrtyps      rcheck_type_coercionszCoerceTest.check_type_coercionss}

j((A.2q!9	(C3'	(Aq!1%1%rc|jttttfD]}|jt|yrh)rrrrrr)rHrs  rr|zCoerceTest.test_ints6!!#&8W-	+C  c*	+rcb|jt|jttyrh)rrrrrts rrzCoerceTest.test_fractions !!(+Xu-rc.|jtyrh)rrrts rrzCoerceTest.test_decimals!!'*rc.|jtyrh)rrrts rrzCoerceTest.test_floats!!%(rctttdttfD]/}t
tttfD]}|j||1yrh)
strlistrtupledictrrrrr)rHbad_type	good_types   rtest_non_numeric_typesz!CoerceTest.test_non_numeric_typessHdDJt<	=H!5(G<
=	''	8<
=	=rcttfD]9}Gdd|}|j|t|j|t;y)NceZdZy)6CoerceTest.test_incompatible_types.<locals>.MySubclassNrr9rr
MySubclassrrrr)rrrr)rHrrs   rtest_incompatible_typesz"CoerceTest.test_incompatible_typess>"	9A%Q%##Aw/##J8	9rN)r5r6r7rrrrrr|rrrrrr9rrrrUs;*F3

6A
& +.
+)=
9rrc<eZdZdZdZdZdZdZdZdZ	dZ
y	)
ConvertTestcp|j|||jt|t|y)z5Check that x equals y, and has the same type as well.N)rDrrrHrr-s   rcheck_exact_equalzConvertTest.check_exact_equals(A

d1gtAw'rctjtdt}|j	|dGddt}tjtd|}|j	||dy)NrceZdZy)#ConvertTest.test_int.<locals>.MyIntNrr9rrMyIntrrrrry)r:_convertrrr)rHrrs   rr|zConvertTest.test_intsZc2q"%Ce4q%),rctjtddt}|j|tddGddt}tjtdd|}|j||ddy)N_rzceZdZfdZxZS)-ConvertTest.test_fraction.<locals>.MyFractionc@|jt|	|Srh	__class__super__truediv__rHr)r
s  rrz9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__~~eg&9%&@AArr5r6r7r
__classcell__r
s@r
MyFractionr

B
Brrr
)r:rrr)rHrrs   rrzConvertTest.test_fractionsrR 0(;q(2r"23	B	B
R 0*=q*R"45rctjtddt}|j	|dGddt}tjtdd|}|j	||dy)	NrsrgceZdZfdZxZS)'ConvertTest.test_float.<locals>.MyFloatc@|jt|	|Srhrrs  rrz3ConvertTest.test_float.<locals>.MyFloat.__truediv__rrrrs@rrrrrrrrr)r:rrrr)rHrrs   rrzConvertTest.test_floatsfQ7q$'	Be	B
A8q'%.1rctjtddt}|j	|tdGddt}tjtdd|}|j	||dy)	Nr
(z0.025ceZdZfdZxZS)+ConvertTest.test_decimal.<locals>.MyDecimalc@|jt|	|Srhrrs  rrz7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__rrrrs@rrrrrrrrz-0.9375)r:rrrr)rHrrs   rrzConvertTest.test_decimalsmB9q''"23	B	B
b 19=q)I"67rctdtdfD]=}||fD]3}tj|t	|}|j||5?yr)rrr:rrr)rHrr!rs    rr&zConvertTest.test_infsY%L'%.1	/CcT{
/''T#Y7&&q#.
/	/rctdtdtdfD]<}tj|t	|}|jt
||>yr)rrr:rrrr)rHr(rs   rr*zConvertTest.test_nansM%L'%.'&/B	0C##Cc3AOOJq#./	0rc|jt5tjdtdddy#1swYyxYwrh)r5rr:rrrts rtest_invalid_input_typez#ConvertTest.test_invalid_input_types5


y
)	-e,	-	-	-s	:AN)r5r6r7rr|rrrr&r*r$r9rrrrs*(
-628/0
-rrc"eZdZdZdZdZdZy)FailNegTestz Test _fail_neg private function.cddtdtdg}ttj|}|j||yNr
@rr)rrrr:	_fail_negrD)rHvaluesnews   rtest_pass_throughzFailNegTest.test_pass_throughs=S(1+wqz2:''/0%rcddtdtdfD]@}|g}tj|}|j	tj
t|Byr()rrr:r*r5rrnext)rHrseqits    rtest_negatives_raisez FailNegTest.test_negatives_raisesUS(1+wqz2	DA2$C%%c*Bj88$C	Drcdtjddz}	ttjdg||jd|j|y#tj$r}|jd}Yd}~:d}~wwxYw)Nzbadness #%d'irsz(expected exception, but it didn't happenr)	rrandintr/r:r*failrrrrD)rHr[rfrts    rtest_error_msgzFailNegTest.test_error_msgsxfnnUE::	B%%rdC01
II@A%	))	VVAYF	s AB2BBN)r5r6r7r8r-r2r7r9rrr&r&s*&D	&rr&cHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)UnivariateCommonMixincD|jt|jyrhr5rfuncrts rtest_no_argsz"UnivariateCommonMixin.test_no_argss)TYY/rcgdtgfD]-}|jtj|j|/y)Nr9)iterr5r:rrr<)rHemptys  rtest_empty_dataz%UnivariateCommonMixin.test_empty_datas:"d2h'	LEj88$))UK	Lrcttd}|t|k(r$tj||t|k(r$|S)z"Return int data for various tests.r)rrsortedrshufflerHrs  rprepare_dataz"UnivariateCommonMixin.prepare_data!s:E"IfTl"NN4 fTl"rc|j}t|dk7sJ|t|k7sJ|dd}||usJ|j|}|j	||dy)Nr
zdata has been modified)rFr_rCr<assertListEqual)rHrsavedr\s    rtest_no_inplace_modificationsz3UnivariateCommonMixin.test_no_inplace_modifications(sa  "4yA~vd|##Q5  IIdOT5*BCrcgddz}|j|}tj||j|}|j||y)N)r
rrrrrrr)r<rrDrD)rHrr%r$s    rtest_order_doesnt_matterz.UnivariateCommonMixin.test_order_doesnt_matter2sD(+99T?t46*rcGddt}Gddt}d}|j}|j|}ttt|||fD]+}|j||}|j||-y)NceZdZy)BUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListNrr9rrMyListrPArrrQceZdZy)CUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleNrr9rrMyTuplerSCrrrTcd|DS)Nc3 K|]}|ywrhr9)robjs  rrzXUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator.<locals>.<genexpr>Fs(CC(sr9rs r	generatorzEUnivariateCommonMixin.test_type_of_data_collection.<locals>.generatorEs
(4((r)rrrFr<r?rD)rHrQrTrYrr%kindrs        rtest_type_of_data_collectionz2UnivariateCommonMixin.test_type_of_data_collection?sx	T		e		)  "99T?5$C	/DYYtDz*FVX.	/rctddd}|jt|}|j|j||yNrr)rr<rrDrHrr%s   rtest_range_dataz%UnivariateCommonMixin.test_range_dataMs:RQ99T$Z(4(3rc|jd|jd|jd|jty)NrgE@)check_for_type_errorobjectrts rtest_bad_arg_typesz(UnivariateCommonMixin.test_bad_arg_typesSs>	
!!$'!!"%!!$'!!&(+rcH|jt|jg|yrhr;rJs  rrbz*UnivariateCommonMixin.check_for_type_errorbs)TYY66rc*Gddt}|j}|j|}t|ttfD]I}|Dcgc]
}||}}t||j|}|j
||Kycc}w)Nc,eZdZfdZfdZeZxZS)@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatc@t|t|	|Srhrrrrs  rrzLUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__j!tDz%'"5e"<==rc@t|t|	|Srhrr__add__rs  rrnzHUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__l!tDz%'/%"899r)r5r6r7rrn__radd__rrs@rrrhis
>
:Hrr)rrFr<rrrrD)rHrrawr%rZrrrs        rtest_type_of_data_elementz/UnivariateCommonMixin.test_type_of_data_elementes	e	!99S>GWh7	/D%()DG)D)#T(^DIIdO4FVX.	/)s
BN)
r5r6r7r=rArFrJrMr[r`rdrbrrr9rrr9r9s60L
D+/4
,7/rr9ceZdZdZdZdZy)UnivariateTypeMixinamMixin class for type-conserving functions.

    This mixin class holds test(s) for functions which conserve the type of
    individual data points. E.g. the mean of a list of Fractions should itself
    be a Fraction.

    Not all tests to do with types need go in this class. Only those that
    rely on the function returning the same type as its input data.
    cDGddt}ttt|fS)z4Return the types which are expected to be conserved.cbeZdZfdZfdZfdZfdZfdZfdZeZ	fdZ
e
ZxZS)HUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloatc@t|t|	|Srhrjrs  rrzTUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__rkrc@t|t|	|Srh)rr__rtruediv__rs  rrzzUUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__s!tDz%'"6u"=>>rc@t|t|	|Srh)rr__sub__rs  rr|zPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__rorc@t|t|	|Srh)rr__rsub__rs  rr~zQUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__s!tDz%'"25"9::rc@t|t|	|Srh)rr__pow__rs  rrzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__rorc@t|t|	|Srhrmrs  rrnzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__rorc@t|t|	|Srh)rr__mul__rs  rrzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__mul__ror)
r5r6r7rrzr|r~rrnrpr__rmul__rrs@rrrws0
>
?
:
;
:
:H
:Hrr)rrr)rHrs  r#prepare_types_for_conservation_testz7UnivariateTypeMixin.prepare_types_for_conservation_tests	e	"w'22rc|j}|jD]C}|Dcgc]
}||}}|j|}|jt	||Eycc}wrh)rFrr<rr)rHrrZrrrs      rtest_types_conservedz(UnivariateTypeMixin.test_types_conservedsc  "<<>	.D"&'Qa'A'YYq\FMM$v,-	.'sA(N)r5r6r7r8rrr9rrrtrtxs3*.rrtceZdZdZy)
TestSumCommoncd}||_y)NcZtj|\}}}tj||Srh)r:_sumr)rrvaluers    rsimplified_sumz+TestSumCommon.setUp.<locals>.simplified_sums)$//40KAua%%eQ//r)r<)rHrs  rsetUpzTestSumCommon.setUps	0#	rN)r5r6r7rr9rrrrs
#rrcHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)TestSumc.tj|_yrh)r:rr<rts rrz
TestSum.setUp
OO	rcgdtgfD]3}|j|j|tt	ddf5y)Nr9r)r?rDr<rrrEs  rrAzTestSum.test_empty_datasAT"X&	EDTYYt_sHQK.CD	Ercj|j|jgdttddfy)N)r
rrir^rr
<r)rDr<rrrts r	test_intszTestSum.test_intss*#?@x|Q/	1rcn|j|jdgdzttddfy)NrHr^@)rDr<rrrts rtest_floatszTestSum.test_floatss/D6"9-#3	5rc|j|jtddgdzttdddfy)Nr
r%r)rDr<rrts rtest_fractionszTestSum.test_fractionss:HQ$5#6s#:;"HQNC8	:rc
t}|d|d|d|d|d|d|d|dg}|j|j|ttd	d
fy)Nrz5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686r)rrDr<rHrrs   r
test_decimalszTestSum.test_decimalssi'
AgJ'
AhK'
AgJ'
AgJ	
4!78#4a8	:rctdDcgc]}tjdd}}|jt	|j|dt
j|dycc}w)Nr%rr
gؗҬ<r/)rrrr]rr<rfsum)rHr\rs   rtest_compare_with_math_fsumz#TestSum.test_compare_with_math_fsums[5:$K@qtT*@@uTYYt_Q%78$))D/uUAsA0c|jt|jgdd|jt|jgdy)Nr
rr999)r
rrrr;rts rtest_strings_failzTestSum.test_strings_fails1)TYY	5A)TYY0@Arc|jt|jgdd|jt|jgdy)Nr999)r
rrrr;rts rtest_bytes_failzTestSum.test_bytes_fails1)TYY	6B)TYY0ABrc	|jt|jddtdg|jt|jddgtdy)Nr
r))r5rr<rrts rtest_mixed_sumzTestSum.test_mixed_sumsE	
)TYYC0DE)TYYC'!*ErN)
r5r6r7rrArrrrrrrrr9rrrrs9
$E
15::VB
C
FrrceZdZdZy)SumTortureTestc|jtjgddztt	ddf|jtjgddztt	ddftjgddz\}}}|j|t|j|d|j
t|dd	y)
N)r
}Ô%ITr
}Ô%Ir4g@i@)rr
r
r)0.++r
rrsg^,gV瞯<r)rDr:rrrrr])rHrrcounts    rtest_torturezSumTortureTest.test_tortures)>u)DE'!2E:	<)>u)DE'!2E:	<"(?(EF
3

a&uSz7>rN)r5r6r7rr9rrrrs	?rrcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)SumSpecialValuescttfD]d}|d}tjd|dgd}|j	t|||j
tj|fy)Nr(r
r)	rrr:rrrrrr)rHrr(rs    rr*zSumSpecialValues.test_nans_W%	0E,C__aa[1!4FMM$v,.OODJJv./		0rc|jtj||jt	|t	||j|dkD|dkD||k(sJy)z8Check x is an infinity of the same type and sign as inf.rN)rrr,rrrD)rHrr!s   rcheck_infinityzSumSpecialValues.check_infinitysO

1
&

d1gtCy)Qa(Cxxrctjdd|dgd}|j||tjdd|d|dgd}|j||y)Nr
rrr)r:rrrHr!rs   rdo_test_infzSumSpecialValues.do_test_infs]!QQ03FC(!QQQ!78;FC(rcPtd}dD]}|j||zyNr!r
rs)rrrHr!rs   rtest_float_infzSumSpecialValues.test_float_infs,El	'DT#X&	'rcPtd}dD]}|j||zyr)rrrs   rtest_decimal_infz!SumSpecialValues.test_decimal_infs,en	'DT#X&	'rctd}tjdd|d|dgd}|jt	j
|yNr!r
rrr)rr:rrrrrs   rtest_float_mismatched_infsz+SumSpecialValues.test_float_mismatched_infssBEl!QQa!89!<

6*+rctd}dd|d|dg}tjtj5|j	tjtj|ddddy#1swYyxYwr)	rdecimallocalcontextExtendedContextrrrr:rrHr!rs   r3test_decimal_extendedcontext_mismatched_infs_to_nanzDSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nansoen1c1sdA&

!
!'"9"9
:	BOODJJzt'<Q'?@A	B	B	Bs;A<<Bctd}dd|d|dg}tjtj5|j	tj
tj|dddy#1swYyxYwr)rrrBasicContextr5InvalidOperationr:rrs   r0test_decimal_basiccontext_mismatched_infs_to_nanzASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nan%shen1c1sdA&

!
!'"6"6
7	Og66
N	O	O	Os0A11A:ctd}d|dg}|jtjtj
|y)Nrr
r)rr5rrr:r)rHrrs   rtest_decimal_snan_raisesz)SumSpecialValues.test_decimal_snan_raises,s2v4|'22JOOTJrN)r5r6r7r*rrrrrrrrr9rrrrs20)'
'
,BOKrrceZdZdZdZdZy)AverageMixincdddtddtdfD]$}|j|j|g|&yNrg@E@gX_yCr{z0.28rrrDr<rs  rtest_single_valuezAverageMixin.test_single_value8sAdFHR$4gfoF	0ATYYs^Q/	0rc6dddtddtdfS)N@ry7y!C=Cz4.9712rrrts r'prepare_values_for_repeated_single_testz4AverageMixin.prepare_values_for_repeated_single_test=sR"b!1783DEErc|jD]L}dD]E}|j||5|g|z}|j|j||dddGNy#1swYTxYw)Nrrrr^)rr)rsubTestrDr<rHrrrs    rtest_repeated_single_valuez'AverageMixin.test_repeated_single_value@sv==?	9A'
9\\AU\393u9D$$TYYt_a899
9	999s(A!!A*N)r5r6r7rrrr9rrrr5s0
F9rrcZeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
Zy)TestMeanc.tj|_yrh)r:meanr<rts rrzTestMean.setUpJrrcJ|j|jgddy)N)rr
rrr
rDr<rts rtest_torture_pepzTestMean.test_torture_pepMs#891=rcxgd}tj||j|j|dy)N)rr
rrrrrrrrLrrrrrrg@@rrDrDr<rEs  rrzTestMean.test_intsQs+?t4&1rcxgd}tj||j|j|dy)N)g@1@g3@4@g5@g5@g@7@g 9@g;@g6@rrEs  rrzTestMean.test_floatsWs+Et4)4rct}|d|d|d|d|dg}tj||j|j	||dy)Nz1.634z2.517z3.912z4.072z5.813z3.5896)rrrDrDr<rs   rrzTestMean.test_decimals]sS'
AgJ'
AgJ'
Kt4!H+6rc
t}|dd|dd|dd|dd|dd|dd|ddg}tj||j|j	||d	d
y)Nr
rrrrrLrriirrrDrDr<rHrrs   rrzTestMean.test_fractionsdso!Q1a!Aq'1Q7AaGQq!Wa1gNt4!D$-8rcgd}ttfD]a}dD]Z}|d|z}||gz}|j|}|jt	j
||j
||\cy)Nr
rrrrrr!)rrr<rrr,rD)rHrqrZrr!rrs       rr&zTestMean.test_infksuG$	.D
.5k$&cU{4

6 23  -
.	.rc
dddtddddtdg}|j|}|jtj|y)	NrrrLr!r
rrz-inf)rr<rrrrHrrs   rtest_mismatched_infszTestMean.test_mismatched_infsvsB1auq!Qf
>4

6*+rcgd}ttfD]E}|d}||gz}|j|}|jt	j
|Gy)Nrr()rrr<rrr)rHrqrZr!rrs      rr*zTestMean.test_nan|sQG$	0Du+C#;DYYt_FOODJJv./		0rcd}gd}|j||z}||k7sJ|j|Dcgc]}||z	c}}|j||ycc}w)NgeA	333333@@g@g@g333333@@g @g333333 @g"@r<rDrHcrr%rrs      r
test_big_datazTestMean.test_big_datasZ<99T?Q&1}.AAaC./*/sActdDcgc]}tjdd}}|j|}|j|dz}|j	||ycc}w)Nr%ryrrrrrr<r]rHr\rr%r$s     rtest_doubled_datazTestMean.test_doubled_datasX/4T{;!r1%;;99T?46"vx0<A%cftd}|jtj|g|y)N1e4)rrDr:rrs  rtest_regression_20561zTestMean.test_regression_20561s(
EN!-q1rc|jtjddgdd}d}dD]T}|jtj|g|z||jtj|g|z|Vy)Nggg)rrrr)rDr:r)rHbigtinyrs    rtest_regression_25177zTestMean.test_regression_25177s	

#%:;=!	#$	>AZ__cU1W5s;Z__dVAX6=	>rN)r5r6r7rrrrrrr&rr*rr	r
rr9rrrrIsC$>2579	.,0+12>rrcxeZdZdZfdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZxZS)TestHarmonicMeanc.tj|_yrh)r:
harmonic_meanr<rts rrzTestHarmonicMean.setUps,,	rcFt|}|jd|S)Nr)rrFremove)rHr+r
s  rrFzTestHarmonicMean.prepare_datas!%'

a
rc6dddtddtdfS)Nrryrrrz4.125rrts rrz8TestHarmonicMean.prepare_values_for_repeated_single_testsR"b!1773CDDrcNgd}|j|j|dy)N)r
rrrrrHr+s  r	test_zerozTestHarmonicMean.test_zeros 6*A.rctj}dggdfD]:}|j|5|j||j|ddd<y#1swYGxYw)Nrs)r
rr)r+)r:rrrr5r<)rHexcr+s   rtest_negative_errorz$TestHarmonicMean.test_negative_errorsa((tZ(	:FV,
:!!#tyy&9
:
:	:
:
:sAA	cdggdgdgdfD]L}|j|5|jt5|j|ddddddNy#1swYxYw#1swYexYw)Nz3.14)123)r
r!r4r)gffffff@rrz5.6rX)rr5rr<rEs  rtest_invalid_type_errorz(TestHarmonicMean.test_invalid_type_errors{H"	
	$D4(
$&&y1$IIdO$
$
$
	$$$
$
$s"A*AA*A'#A**A3	cxgd}tj||j|j|dy)N)rrrrrrg333333@rrEs  rrzTestHarmonicMean.test_intss+#t4%0rcgd}tj||j|j|d|j|jgddy)N)rrHrHrrrH)rHrrrrrrEs  rtest_floats_exactz"TestHarmonicMean.test_floats_exactsE(t4#.#893?rcjtddD]$}|j|j|g|&y)Nr
rrrDr<rs  rtest_singleton_listsz%TestHarmonicMean.test_singleton_listss1q#	0ATYYs^Q/	0rc
t}|j|j|d|d|d|dg|d|d|d|d|dg}tj||j|j||d|d|d|d	|d
g}tj||j|j||ddzy)
Nr{rrrz0.10z0.20z1.68z0.32z5.94z2.75iiC)rrDr<rrDrs   rtest_decimals_exactz$TestHarmonicMean.test_decimals_exactsAbE1R5!B%2#?@!B%H&	1V9ai6;t4!F)4&	1V9ai6;t4!E(5.9rc
t}|dd|dd|dd|dd|dd|dd|ddg}tj||j|j	||d	d
y)Nr
rrrrrLrri|irrs   rrzTestHarmonicMean.test_fractionsso!Q1a!Aq'1Q7AaGQq!Wa1gNt4!E4.9rcbdtddg}|j|j|dy)Nr)r!r)rrDr<rs  rr&zTestHarmonicMean.test_infs+uU|S)6*C0rcdtddg}|jtj|j	|y)Nr)r(r)rrrrr<rs  rr*zTestHarmonicMean.test_nans0uU|S)

499V#456rcd}gd}|j||z}|j|Dcgc]}||z	c}}|j||ycc}w)Norrrs      rtest_multiply_data_pointsz*TestHarmonicMean.test_multiply_data_pointssP<99T?1$.AAaC./*/sActdDcgc]}tjdd}}|j|}|j|dz}|j	||ycc}w)Nr%r
rrrrs     rr	z"TestHarmonicMean.test_doubled_datasX.3Dk:q!$::99T?46"vx0;r
c
|j|jddgddgd|j|jddgddgd|j|jtddgtddgd|j|jtddtd	dtd
dggd|jtddgdztd	dgdzztd
dgdzz|j|jdgd
gd|j	t
5|jgd
gdddd|j	tj5|jgd
ddgddd|j	tj5|jdgdgddd|j	tj5|jddgddgdddy#1swYxYw#1swYxYw#1swY`xYw#1swYyxYw)NrrrrgL@)weightsrrrrr)rrrr)r
r9rr
rr^)rDr<r?rr5rr:rrrts rtest_with_weightsz"TestHarmonicMean.test_with_weightss
B8aW5t<B8,-r7#459	;4R>#'B=237	9IIxAQ!QH*UIIxA'!+A'!+,1~&+,
-	.
	
B4!-r2


y
)	-IIi,	-


z99
:	)IIi!Q(	)


z99
:	!IIrdQC 	!


z99
:	(IIr2hA'	(	(
	-	-	)	)	!	!	(	(s0HH'?H3;H?H$'H03H<?I)r5r6r7rrFrrrr$rr'r*r,rr&r*r2r	r6rrs@rrrsU-E/
:
$1@0
	::1
7
+1(rrcHeZdZdZfdZdZdZdZdZdZ	dZ
xZS)	
TestMedianc.tj|_yrhr:medianr<rts rrzTestMedian.setUp$%%	rcht|}t|dzdk7r|jd|S)+Overload method from UnivariateCommonMixin.rr
)rrFr_rP)rHrr
s  rrFzTestMedian.prepare_data's0w#%t9Q;!KKNrctgd}t|dzdk(sJ|j|j|dy)Nr
rrrrrLrrrr_rDr<rEs  rtest_even_intszTestMedian.test_even_ints.s2!4y{a4#.rctgd}t|dzdk(sJ|j|j|dy)N)r
rrrrrLrrr
rrArEs  r
test_odd_intszTestMedian.test_odd_ints4s2$4y{a4!,rct}|dd|dd|dd|dd|ddg}t|dzdk(sJtj||j	|j||ddy)Nr
rrrrrrr_rrDrDr<rs   rtest_odd_fractionszTestMedian.test_odd_fractions:sr!Q1a!Aq'1Q7AaG<4y{at4!Aq'2rc	t}|dd|dd|dd|dd|dd|ddg}t|dzdk(sJtj||j	|j||ddy	Nr
rrrrrrLrrFrs   rtest_even_fractionszTestMedian.test_even_fractionsBz!Q1a!Aq'1Q7AaGQq!WE4y{at4!Aq'2rct}|d|d|d|d|dg}t|dzdk(sJtj||j	|j||dy)N2.53.14.25.75.8rr
rr_rrDrDr<rs   rtest_odd_decimalszTestMedian.test_odd_decimalsJsf%!E(AeHah%A4y{at4!E(3rct}|d|d|d|d|d|dg}t|dzdk(sJtj||j	|j||d	y)
Nz1.2rMrNrOrPrQrrz3.65rRrs   rtest_even_decimalszTestMedian.test_even_decimalsRsl%!E(AeHah%!E(K4y{at4!F)4r)r5r6r7rrFrBrDrGrJrSrUrrs@rr8r8"s+&/-3345rr8ceZdZdZdZy)TestMedianDataTypec.tj|_yrhr:rts rrzTestMedianDataType.setUp]r<rcttd}t|dzdk(sJ|t|k(r$t	j
||t|k(r$|S)Nr{rr
)rrr_rCrrDrEs  rrFzTestMedianDataType.prepare_data`sME"I4y{afTl"NN4 fTl"rN)r5r6r7rrFr9rrrWrW[s&rrWc$eZdZdZdZdZdZy)
TestMedianLowc.tj|_yrh)r:
median_lowr<rts rrzTestMedianLow.setUpis))	rctgd}t|dzdk(sJ|j|j|dy)Nr@rrrrArEs  rrBzTestMedianLow.test_even_intsl2!4y{a4!,rc	t}|dd|dd|dd|dd|dd|ddg}t|dzdk(sJtj||j	|j||ddyrIrFrs   rrJz!TestMedianLow.test_even_fractionsrrKrct}|d|d|d|d|d|dg}t|dzdk(sJtj||j	|j||dy	Nz1.1z2.2z3.3z4.4rz6.6rrrRrs   rrUz TestMedianLow.test_even_decimalszl%!E(AeHah%!E(K4y{at4!E(3rNr5r6r7rrBrJrUr9rrr[r[hs*-34rr[c$eZdZdZdZdZdZy)TestMedianHighc.tj|_yrh)r:median_highr<rts rrzTestMedianHigh.setUps**	rctgd}t|dzdk(sJ|j|j|dy)Nr@rrrrArEs  rrBzTestMedianHigh.test_even_intsr_rc	t}|dd|dd|dd|dd|dd|ddg}t|dzdk(sJtj||j	|j||ddyrIrFrs   rrJz"TestMedianHigh.test_even_fractionsrKrct}|d|d|d|d|d|dg}t|dzdk(sJtj||j	|j||dyrbrRrs   rrUz!TestMedianHigh.test_even_decimalsrcrNrdr9rrrfrfs+-34rrfcNeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
y)
TestMedianGroupedc.tj|_yrh)r:median_groupedr<rts rrzTestMedianGrouped.setUps--	rcgd}t|dzdk(sJ|j|j|dgd}t|dzdk(sJ|j|j|dgd}t|dzdk(sJ|j|j|dd	gd
}t|dzdk(sJ|j|j|ddd
y)N)rrrqrqr{r{rr
rq)rrrqrqrqrqr{g+@)rrrr{r^r^r^r^rrrrg`3@)rrsrsrsr^r^r^rtrtrug4@:0yE>r.)r_rDr<r]rEs  rtest_odd_number_repeatedz*TestMedianGrouped.test_odd_number_repeateds+4y{a4"-+4y{a4&1:4y{a4+V4K4y{atyyq1;DIrcgd}t|dzdk(sJ|j|j|dddgd}t|dzdk(sJ|j|j|d	dgd
}t|dzdk(sJ|j|j|dgd}t|dzdk(sJ|j|j|d
y)N)
rrrr{r^r^r^rrrrrrrrg*3@rxry)rrrrrrg["8@)rrrrrrrrrrrLrLr)
rrrrrrrrrLrL@)r_r]r<rDrEs  rtest_even_number_repeatedz+TestMedianGrouped.test_even_number_repeateds64y{atyyq1;DI!4y{atyy
E34y{a4#.-4y{a4$/rcdddtddtdfD]9}dD]2}|g|z}|j|j|t	|4;y)N333333@DgޗCrrz32.9714rrrrDr<rrs    rrz,TestMedianGrouped.test_repeated_single_values`r68B#4gi6HI	<A'
<s5y  4%(;
<	<rcdddtddtdfD]-}|j|j|gt	|/yrrrs  rrz#TestMedianGrouped.test_single_valuesGdFHR$4gfoF	7ATYYs^U1X6	7rct}|dd|dd|dd|dd|ddg}t|dzdk(sJtj||j	|j|dy)	Nrrrrryrr
@rFrs   rrGz$TestMedianGrouped.test_odd_fractionssl!Q1a!B(Ab!HaAh?4y{at4#.rc	t}|dd|dd|dd|dd|dd|ddg}t|dzdk(sJtj||j	|j|dy)	Nrrrrryrr
@rFrs   rrJz%TestMedianGrouped.test_even_fractionsst!Q1a!B(Ab!HaAh"aI4y{at4$/rct}|d|d|d|d|dg}t|dzdk(sJtj||j	|j|dy)Nr6.57.58.5rr
g@rRrs   rrSz#TestMedianGrouped.test_odd_decimalssb%!E(AeHah%A4y{at4$/rct}|d|d|d|d|d|dg}t|dzdk(sJtj||j	|j|d|d|d|d|d|d|dg}t|dzdk(sJtj||j	|j|dy)	Nrrrrrr@@rRrs   rrUz$TestMedianGrouped.test_even_decimalss%!E(AeHah%!E(K4y{at4#.%!E(AeHah%!E(K4y{at4#.rcgd}|j|j|ddgd}|j|j|dddgd}|j|j|d	d
y)N)
@rFrFr r rrrrrMrHg@)rrFrFr r r rrrrrMg["8@rxry)rrrrr,@iTr^gp@)rDr<r]rEs  r
test_intervalzTestMedianGrouped.test_intervalsgF4.6Ltyyt4jdKK4,e4rc8gd}|jt|j|gd}|jt|j|gd}d}|jt|j||gd}d}|jt|j||y)N)rr)rrrrrrr;)rHrintervals   rtest_data_type_errorz&TestMedianGrouped.test_data_type_errors|)TYY5)TYY5)TYYh?)TYYh?rN)r5r6r7rrzr}rrrGrJrSrUrrr9rrrmrms;.J$0$<7/00/5@rrmcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)TestModec.tj|_yrh)r:moder<rts rrzTestMode.setUprrc
gdS)r>)r
r
r
r
rrrrrrrr9rts rrFzTestMode.prepare_datas
10rc`tddd}|j|j|dyr]r)rEs  rr`zTestMode.test_range_data s(RQ4"-rcd}|j|j|ddj}|j|j|dy)Nabcbdbrzfe fi fo fum fi fifi)rDr<rrEs  rtest_nominal_datazTestMode.test_nominal_data%sE4#.#))+4$/rcttd}tdD]>}||gz}tj||j	|j||@yNrrrrrDrDr<)rHrrers    rtest_discrete_datazTestMode.test_discrete_data,sQE"Ir	.As
ANN1TYYq\1-	.rcgd}|jd|jdcxk(rdk(sJJ|j|j|dy)N)r
r
rrrrrrrrLrLrLrLrrrrrrLr)rrDr<rEs  rtest_bimodal_datazTestMode.test_bimodal_data4sEBzz!}

1
222224!,rcnttd}|j|j|dy)Nrr)rrrDr<rEs  rtest_unique_datazTestMode.test_unique_data;s'E"I4!,rcF|jt|jdyrhr;rts rtest_none_datazTestMode.test_none_dataAs
	
)TYY5rcttjdd}|j|j|dy)Nr
r)rrr)rTCounterrDr<)rHrs  rtest_counter_datazTestMode.test_counter_dataHs0

!q)	
1s+rN)r5r6r7rrFr`rrrrrrr9rrrrs/$1
.
0.--6,rrceZdZdZy)
TestMultiModectj}|j|ddg|j|dgd|j|dgy)Naabbbbbbbbccraabbbbccddddeeffffgg)rrrr)r:	multimoderD)rHrs  rtest_basicszTestMultiMode.test_basicsUsN((	>2SE:#9:OL2+rN)r5r6r7rr9rrrrSs,rrc$eZdZdZdZdZdZy)	TestFMeanc
tj}t}t}gdddf|d|d|dgddf|dd	|d
d|dd
gdd
fgdddfdd
|dd
gddfdt	gdddffD]A\}}}||}|jt
|t||j|||Cy)NrrG@@floats3.54.05.25decimalsrrrr
r	fractions)TFTTF333333?booleansrmixed types)rrriterator)	r:fmeanrrr?rrrrD)rHrrrr
expected_meanrZactual_means        rrzTestFMean.test_basics^s  
tX.h%!F)
,dJ?1gqAw"a
)4=
-tZ@1aAh
}5-
"
#T:6*	?%D- +KMM${+UD9[->	?rctj}tj}|j|5|gddd|j|5|t	gddd|jt
5|dddd|jt
5|gdddd|jt
5|ddd|jt
5|gdddddy#1swYxYw#1swYxYw#1swYxYw#1swY|xYw#1swYcxYw#1swYyxYw)NrNr^rr^rF)r:rrrr5r?rrHrrrs   rtest_error_caseszTestFMean.test_error_casesos  $44



/	"I	



/	$r(O	


y
)	$K	


y
)	".!	"


y
)	G	


y
)	$,#	$	$							"	"			$	$sG	DD	D#)D/D;6EDD #D,/D8;EEctj}td}td}|jt	j
|d|gd|jt	j
|||gd|jt	j|d|gd|jt5|||gdddy#1swYyxYwNNanInfrr(znan and infinityinfinity)	r:rrrrrr,r5r+)rHrNaNrs    rtest_special_valueszTestFMean.test_special_valuess  ElEl

5"c#34e<

5#s#457IJ

5"c#34jA


z
*	3+			CC!c	*tj}tj}|j|gddgdz|gd|j|gdgd|gd|j|t	gdt	gd|gd|j|5|gddd	gddd|j|5|t	gdt	dd	gddd|j|5|d
dgddgddd|j|5|t	d
dgt	ddgdddy#1swYxYw#1swYvxYw#1swY[xYw#1swYyxYw)
N)rrrrrHr)rrr^)rHrHr)rrr^r^rr^rr
rrr^rs)r:rrrrDr?r5rs   rtest_weightszTestFMean.test_weightssv  $44"TFQJ/"#	%	
, 23"#	%	
$|$d+=&>?"#	%


/	(,A'	(



/	4$|$dAq6l3	4



/	%2r(RG$	%



/	1$Bx.$Aw-0	1	1
	(	(	4	4	%	%	1	1s05E% E1E=< F	%E.1E:=F	FN)r5r6r7rrrrr9rrrr\s?"$ 	1rrc4eZdZdZdZdZdZdZdZdZ	y)	VarianceStdevMixin-q=cdddtddtdfD]$}|j|j|gd&y)Nrg3@g%Brrz8.392rrrs  rrz$VarianceStdevMixin.test_single_valuesBdFHR$4gg6FG	0ATYYs^Q/	0rcdddtddtdfD]0}dD])}|g|z}|j|j|d+2y)	Nrrg@6<Crrz62.4802)rrrr{rrrs    rrz-VarianceStdevMixin.test_repeated_single_valuesYr68Aq>793EF	5A&
5s5y  4!4
5	5rc~dgdz}|j|}|j|dd|j|dy)Ng.F7ݚ?r4rrgؗҌ<ryr)r<r]rrs   rtest_domain_error_regressionz/VarianceStdevMixin.test_domain_error_regressionsE""5(4vs6*rcgd}|j|}d}|Dcgc]}||z	}}|j|j||ycc}w)N)
g{Gz?gRQ?g
ףp=
?gRQ@gp=
ף@gQ	@r|gQ@gGz@gQ@gj@)r<r]rHrqr%shiftrrs      rtest_shift_dataz"VarianceStdevMixin.test_shift_datasPK99S>#&'aE	''tyy9(sAcgd}td|DsJ|j|}d}|Dcgc]}||z	}}|j|j||ycc}w)N)
r
rrrrrrrrrc38K|]}|t|k(ywrh)r)rrs  rrz;VarianceStdevMixin.test_shift_data_exact.<locals>.<genexpr>s*1c!f9*siʚ;)allr<rDrs      rtest_shift_data_exactz(VarianceStdevMixin.test_shift_data_exacts^/*c***99S>#&'aE	''4(3(sA ctdDcgc]}tjdd}}|j|}|j	|jt||ycc}w)Nr%ryr)rrrr<rDr?rHr\rr%s    rtest_iter_list_samez&VarianceStdevMixin.test_iter_list_samesU05T{;!r1%;;99T?4:.9<sA)N)
r5r6r7r/rrrrrrr9rrrrs'C0
5+:4
:rrc0eZdZdZdZdZdZdZdZy)
TestPVariancec.tj|_yrh)r:	pvariancer<rts rrzTestPVariance.setUps((	rcttd}tj|d}|j	|j||y)Nr4gP_Arr_s   rtest_exact_uniformz TestPVariance.test_exact_uniforms9E%L!t$4(3rcRgd}d}|j|j||y)Nrrrrg6@rrHrexacts   rrzTestPVariance.test_intss$4%0rct}|dd|dd|dd|ddg}|dd}|j|}|j|||j|ty)Nr
rrrrrr<rDassertIsInstancerHrrrrs     rrzTestPVariance.test_fractionse!Q1a!Aq'1Q73!Q4'fh/rct}|d|d|d|dg}|d}|j|}|j|||j|ty)Nz12.1z12.2z12.5z12.9z0.096875rr<rDrrHrrrrs     rrzTestPVariance.test_decimalss[&	1V9ai6;*
4'fg.rcgd}d}|j|}|j|||j|ty)N)rrr
gqq?r<rDrrrHrrrs    rtest_accuracy_bug_20499z%TestPVariance.test_accuracy_bug_2049994'fe,rN)	r5r6r7rrrrrrr9rrrrs )410/-rrc6eZdZdZdZdZdZdZdZdZ	y)	TestVariancec.tj|_yrh)r:variancer<rts rrzTestVariance.setUps''	rcdddtddtdfD].}|jtj|j
|g0y)Nrg333338@g(G!=Crrz4.2084rrr5r:rrr<rs  rrzTestVariance.test_single_valuesHdFHR$4gh6GH	JAj88$))aSI	JrcRgd}d}|j|j||y)Nrrrrs   rrzTestVariance.test_intss$4%0rct}|dd|dd|dd|ddg}|dd}|j|}|j|||j|ty)Nr
rrrrrrs     rrzTestVariance.test_fractions rrct}|d|d|d|dg}d|dz|dz}|j|}|j|||j|ty)Nrrrrz9.5rrrs     rrzTestVariance.test_decimals)sg!adAaD!A$'!E(
1Q44'fg.rcd}|j|j|d|j|j|ddy)Nrr)rr)xbarrrrEs  rtest_center_not_at_meanz$TestVariance.test_center_not_at_mean2s<4#.4c2C8rcgd}d}|j|}|j|||j|ty)N)rrrgUUUUUU?rrs    rrz$TestVariance.test_accuracy_bug_204997rrN)
r5r6r7rrrrrrrr9rrrrs&(J
10/9
-rrceZdZdZdZdZy)
TestPStdevc.tj|_yrh)r:pstdevr<rts rrzTestPStdev.setUp@r<rctdDcgc]}tjdd}}tjtj|}|j|j||ycc}w)Nr%iru)	rrrrsqrtr:rrDr<rs    rtest_compare_to_variancez#TestPStdev.test_compare_to_varianceCsZ16t=AsB'==99Z11$784(3>A7cd}|j|j|d|j|j|ddy)N)rrLrrrFr)murrrEs  rrz"TestPStdev.test_center_not_at_meanIs<4#.4C0#6rN)r5r6r7rrrr9rrrr>s&47rrcReZdZdZeejddZdZy)TestSqrtHelperscbtjtdtddD]\}}tj||}|j|t||z|z|k(r>|j|dzd|j||dz
dzz|cxkxr||dzdzzkncy)Nrr
r%r)		itertoolsproductrr:_integer_sqrt_of_frac_rtorrrDr)rHrmrs    rtest_integer_sqrt_of_frac_rtoz-TestSqrtHelpers.test_integer_sqrt_of_frac_rtoQs%%eCj%4.A		ADAq44Q:A!!!S)s1uzQqS!$OOAQ
NQ?a!eaZ?@		Arcpucdtdtdtfd}tj}tdD]}}|d|dz}|d|dzdz}|j
||	5t||}tj||}|j|||ddd|jtjd
dd|jt5tjddddd|jt5tjddddd|jt5tjdd
ddd|jtjd
dtjddy#1swYxYw#1swYxYw#1swYxYw#1swYixYw)NrrootreturncH|s|dk(Stj|tj}tj|tj}||cxkr|ksJJt|}|t|zdz}|t|zdz}|dz|cxkxr|dzkScS)Nrrr)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_roundedass{"..txx8D NN4$((;FD'4''''#+4.I%.$%?1$DK'08F3C'Cq&HM!A%>kQ.>>>>>ri`rrr
)	numeratordenonimatorrrrrsrr)rrrr	randrangerrr:_float_sqrt_of_fracrrDr5r+ZeroDivisionError)rHr2r5rer3r4rr)s        rtest_float_sqrt_of_fracz'TestSqrtHelpers.test_float_sqrt_of_frac]s	?	?	?4	?$$$	v	DA&rYr]':;I(y})<=AK	{K
D&y+>(<<YT 9!T BC
D
D	D	
771=sC


z
*	2**2q1	2


z
*	2**1b1	2

0
1	1**1a0	1	
77B?A_A_`acdAef#
D
D	2	2	2	2	1	1s0-;F/-F<!GG/F9	<GGGcBtdddftdddftdddffD]\}}}tjtj5|j	tj|||dddtjtj5}|xjdzc_t|t|z}tj|_	|j}dddtjtj5}ddd|j	||j	tjd	d
d|jtj5tjdd
ddd|jtj5tjd
dddd|jt5tjd
d	ddd|j	tjd
dtjdd
y#1swYxYw#1swYlxYw#1swYJxYw#1swYxYw#1swYxYw#1swYxYw)Nz0.4481904599041192673635338663l:jt9)4]!l73Me'z0.7924949131383786609961759598lQ_Ar,NE*z0.8500554152289934068192208727lkr"-D9}ZGrrr
rrrsrr)rrrDefaultContextrDr:_decimal_sqrt_of_fracprec
ROUND_05UProundingrr5rr7)rHr)r3denominatorctxhigh_prec_ratiohigh_prec_roottarget_roots        rtest_decimal_sqrt_of_fracz)TestSqrtHelpers.test_decimal_sqrt_of_fracs?5
68VXwx
5
68VXwx
5
68VXwx-
	0(D)[
%%g&<&<=
a  !A!A)[!Y[_`
a%%g&<&<=
8A
"))"4w{7K"K&11!0!5!5!7	
8
%%g&<&<=
.-o
.T;/!	0&	
99!Q?E


w77
8	4,,R3	4


w77
8	4,,Q3	4

0
1	3,,Q2	3	
99"bA:CcCcdeghCij3
a
a
8
8

.
.	4	4	4	4	3	3sI'I'AI#$I0
I=J	<JI 	#I-	0I:	=J	JJN)	r5r6r7r&rrrequires_resourcer8rDr9rrr r Os:
AWu%*g&*gX#krr c$eZdZdZdZdZdZy)	TestStdevc.tj|_yrh)r:stdevr<rts rrzTestStdev.setUps$$	rcdddtddtdfD].}|jtj|j
|g0y)NQgHzwi@gf7?+Brrz35.719rrs  rrzTestStdev.test_single_valuesGffhq"owx7HI	JAj88$))aSI	JrctdDcgc]}tjdd}}tjtj|}|j|j||ycc}w)Nr%rr)	rrrrrr:r	assertAlmostEqualr<rs    rrz"TestStdev.test_compare_to_variancesZ/4T{;!r1%;;99Z0067tyy9<rcNd}|j|j|ddy)Nrr)rrrrEs  rrz!TestStdev.test_center_not_at_means$4c2C8rN)r5r6r7rrrrr9rrrGrGs%J
:9rrGc0eZdZdZdZdZdZdZdZy)TestGeometricMeancvtj}|j|gdd|j|ddgd|j|dgdtjdtdd	tdd
tddtddd
tdddgdtd
Dcgc]}tjdc}tdDcgc]}tjddc}tdDcgc]}tjdddc}f	D]s}tjtt|tdt|zz}||}|jtj|t!|uycc}wcc}wcc}w)N)rzrurB@rGg"@g@g1@l;r
rr%r4rrry)rryrrxrI@rrii)r:geometric_meanrMrseedrexpovariatelognormvariate
triangularrprodrrr_riscloser)rHrVrerng
gm_decimalgm_floats      rrzTestGeometricMean.test_basicss`#22~l;TB~sCj93?~vh7@N#a
aa c61%fc2&'38<@a##D)@;@<Ha&&tS1H>CElK""4t4K

	GC3w#45'!*s3x:OPJ%c*HOODLL53DEF
	GAHKs<F,'F1F6c	ttj}t}t}d}gddf|d|d|dgdf|dd	|d
d|dd
gd
fdd
|dd
gdfdt	gddffD]A\}}||}|jt
|t||j||dCy)Ngd@rrrrrrrrrr
rrrr)rrrrplaces)	r:rVrrr?rrrrM)rHrVrrrrrZrs        rtest_various_input_typesz*TestGeometricMean.test_various_input_typess#22

x(h%!F)
,j91gqAw"a
);71aAh
/'
"
#Z0

	IJD$).KMM${+UD9"";
a"H
	Irctj}d}|d|zd|zd|zg}|jtj|d|z|jtj|d}|d|zd|zd|zg}|jtj|d|z|j|dy)Ngp~gK@g8@rRgprr)r:rVrrr\rr,assertNotEqual)rHrVlargebig_gmsmallsmall_gms      rtest_big_and_smallz$TestGeometricMean.test_big_and_smalls#22te|TE\ JKVTE\:;F+,!4%<te|"LMXte|<=Hc*rcjtj}tj}|j|5|gddd|j|5|gdddd|j|5|gdddd|j|5|t	gddd|jt
5|dddd|jt
5|gdddd|jt
5|ddd|jt
5|gdddddy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY}xYw#1swYyxYw)N)rrrr)rgrrrr)r:rVrrr5r?r)rHrVrrs   rrz"TestGeometricMean.test_error_casess{#22$44



/	2	



/	-+,	-



/	.,-	.



/	%48$	%


y
)	!4 	!


y
)	+>*	+


y
)		


y
)	-<,	-	-			-	-	.	.	%	%	!	!	+	+			-	-s_	EE 8E-E9	F1FF>F)E E*-E69FFFF&)F2ctj}td}td}|jt	j
|d|gd|jt	j
|||gd|jt	j|d|gd|jt5|||gdddy#1swYyxYwr)	r:rVrrrrr,r5r+)rHrVrrs    rrz%TestGeometricMean.test_special_values	s#22ElEl

>2s)#<=uE

>3*#=>@RS

>2s)#<=zJ


z
*	(C#;'	(	(	(rctj}d}gdgdgdgdgdg}|D]9}|j|5||}|j||d	ddd;y#1swYFxYw)
NgY};t@)rrrr)rrrr)rrrr)rrrr)r)rrr)vrra)r:rVrrM)rHrVrr+rnrs      rtest_mixed_int_and_floatz*TestGeometricMean.test_mixed_int_and_float	s#22(
 
	MA"
M,Q/&&{M!&L
M
M	M
M
MsA##A,	N)	r5r6r7rrcrjrrror9rrrPrPs#G,I$
+-(	(MrrPc*eZdZdZdZdZdZdZy)
TestQuantilesctj}gd}tj|dgfddgfdddgfdgd	fd
gdfdgd
fdgdfdgdfdgdfdgdff
D]\}}|j	|||||j	t||||dz
tttfD]U|t||}|jfd|D|j	|tt|Wt|dk\r|j	||||t|}d|dz|dz
}d|dz|dz
}|||gz}	|j	|||||	|d||fd}
tt|
|}|t|
||}|jtdt||DtddD]S}
tj td |
!}||\}}}|j	|tj"|Uy)"N)rSrri^r
r@o@ri@t@r)d@rtt@r)a@k@@r@u@rL)^@rurtrvu@r)Y@rwgj@rtgr@rxgXv@r)	gV@rygg@rzrtr{g`t@r|gv@r)T@r}rwru l@rtgq@rvrxr~gv@r{)gR@gZ@ryge@rurzn@gp@r{rvgt@r|g@v@gw@rc3LK|]}tt|k(ywrhrrrrdatatypes  rrz4TestQuantiles.test_specific_cases.<locals>.<genexpr>I	IQDGx$7 8I!$rrsr	inclusivermethodcd|zdz
SNrg3333J@r9r
s rrz,TestQuantiles.test_specific_cases.<locals>.f[	Qw))rc3NK|]\}}tj||ywrhrr\rrfrs   rrz4TestQuantiles.test_specific_cases.<locals>.<genexpr>_	Mtq!Q 2M#%rrk)r:	quantilesrrDrDr_rrrrrrrCrrcrchoicesr;)rHrrrr%rsdatalohipadded_datarexpactrq1q2q3rs                 @rtest_specific_casesz!TestQuantiles.test_specific_cases0	s]((	(t
G
L

%&
,-
34
AB
OP
 
!
5
6
)	OKAx
Xy';<S41!56A>"GX6
H"3x#6!<I&II  c(H.E)FG
H
8}!  8q!98D4LEU1Xa(BU2Yr*B"b/K$!$+;?D	

*s1h'(CC4LA.COOCMs3}MMNS)	OVq"	:A>>%*2D"4JBBR!2!24!89	:rc@tj}gd}tj|dgfddgfdddgfdgd	fd
gdfdgd
fdgdfdgdfdgdfdgdff
D]
\}}|j	||||d|j	t|||d|dz
tttfD]V|t||d}|jfd|D|j	|tt|Xd}tt||}|t|||d}|jtdt||D
|j	|ddgddgd|j	|tddddgdtdD	cgc]}	tjd }}	||d!d}
|j!t#||j!t%|||d!"}|j	||
tdd#D]U}tj&td|$}||d%\}}
}|j	|
tj(|Wycc}	w)&N)rrii r
rr@rruy@r)e@r@@r)rwrv@@rL)b@rurr@r)g0a@rrgpw@rgP@r)	g@`@rwgg@rrrg{@rg@@r)g@_@rrrurtrr~rrrg@r{)r}ga@rwgf@rurgq@rvrrg~@rg@g@rrc3LK|]}tt|k(ywrhrrs  rrz>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>	rrcd|zdz
Srr9r
s rrz6TestQuantiles.test_specific_cases_inclusive.<locals>.f	rrc3NK|]\}}tj||ywrhrrs   rrz>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>	rrrr)	$@rg>@gD@rTgN@gQ@rgV@rir4 rrrr)r:rrrDrDr_rrrrrrrrcrr5rrr"rr;)rHrrrr%rrrrrer$rrrrrs               @rtest_specific_cases_inclusivez+TestQuantiles.test_specific_cases_inclusivef	s((	#t
G
L

%&
,-
34
>?
PQ
'
(
5
6
	OKAx
Xy;'OPS41[!IJAPQER"GX6
H"3x#6!KPI&II  c(H.E)FG
H

*s1h'(CC4LAkBCOOCMs3}MMN5	O8	
As8r+FO	Q5C=B{KO	Q
38*=Q  (==42k:CICITR(6*q"	:A>>%*2D"4<JBBR!2!24!89	:>s=Jctj}tddD]>}dg|z}|j||gd|j||dgd@y)Nrrr)rrrrr)r:rrrD)rHrrrs    rtest_equal_inputszTestQuantiles.test_equal_inputs	s\((	q"	0A6A:DYt_.@AYtK@.
0	0rctj}d}t|Dcgc]}tjd}}tt
||k7r<|jtjdtt
||k7r<|jdD]W}||z}|j|||Dcgc]}tj||c}tt|||YdD]r}||z||zdzh}|||Dcgc]}tj||}	}t|	|	ddD
chc]
\}
}||
z
}}
}|j||ktycc}wcc}wcc}wcc}}
w)Nr4皙?)
r
rrrr^rrrrr%rUrr4r)
rr;mi;iisii)&r
)r:rrrrXr_setrPsortrDbisectrrcr)rHrtotalrerr
group_sizeqgroup_sizespospsizess            rtest_equal_sized_groupsz%TestQuantiles.test_equal_sized_groups	sj((	16u>A""3'>>#d)n%KK**3/0#d)n%		O	<A!J1:411EFAtQ'FU:uj9:
<	<E	2A A:uzA~6K3<TQ3GHa6==q)HCH'*3AB'89tq!QU9E9OOE[01		2?GI9sE5E:
E?Fctj}tj}|jt5|ddd|jt5|gdddddd|jt5|gddddd|j|5|gddddd|j|5|gddddd|jt5|gddddd|jt
5|gdd	ddd|j|5|d
gdddd|jt5|gdddddy#1swYNxYw#1swY0xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw)NrrrrrrsrXrr)rNr)r:rrrr5rr+)rHrrrs   rrzTestQuantiles.test_error_cases	s((	$44


y
)	K	


y
)	-lB!,	-


y
)	'lA&	'



/	)la(	)



/	*lb)	*


y
)	+lc*	+


z
*	0l3/	0



/	!rda 	!


y
)	+n*	+	+!			-	-	'	'	)	)	*	*	+	+	0	0	!	!	+	+skF
FF$+
F1
F=;
G	%
GG!4
G-
FF!$F.1F:=G	GG!G*-G6N)r5r6r7rrrrrr9rrrqrq.	s4:l4:l02.+rrqceZdZdZdZy)TestBivariateStatisticscgdddgfddggdffD]\}}|jtj5tj||ddd|jtj5tj||ddd|jtj5tj
||dddy#1swYxYw#1swYVxYw#1swYxYw)Nrr
rr5r:rr
covariancecorrelationlinear_regressionrs   rtest_unequal_size_errorz/TestBivariateStatistics.test_unequal_size_error	s
AVY
		3DAq"":#=#=>
,%%a+
,"":#=#=>
-&&q!,
-"":#=#=>
3,,Q2
3
3		3
,
,
-
-
3
3s#C4C 2C,C	 C)	,C5	cggfgddgfddggfdgdgfdgddgfddgdgffD]\}}|jtj5tj||ddd|jtj5tj||ddd|jtj5tj
||dddy#1swYxYw#1swYVxYw#1swYxYw)Nr
rrrs   rtest_small_sample_errorz/TestBivariateStatistics.test_small_sample_error	s
H
!QMWbMTA4LTAq7OWqdO


	3DAq"":#=#=>
,%%a+
,"":#=#=>
-&&q!,
-"":#=#=>
3,,Q2
3
3
	3
,
,
-
-
3
3s$C$C0C<$C-	0C9	<D	N)r5r6r7rrr9rrrr	s
33rrceZdZdZdZdZy)TestCorrelationAndCovariancecgdgddfgdgddfgdgddfgdgddfgdgdd	ffD]R\}}}|jtj||||jtj|||Ty)
Nrr
rsrryrs)rrr
)r
rr
r)r
rrrrMr:rr)rHrr-rs    rtest_resultsz)TestCorrelationAndCovariance.test_results	s
	1%
b)
	2&
	1%
	3'
	HLAq&
"":#9#9!Q#?H"":#8#8A#>G	HrcLgd}gd}|jtj||d|jtj||dgd}|jtj||d|jtj||dy)Nr)rrr^rr)rrg333333?r
rrrs   rtest_different_scalesz2TestCorrelationAndCovariance.test_different_scales	sz55a;SAz44Q:A>z55a;Q?z44Q:C@rcgd}gd}|jtj||dd|jt5tj||ddddy#1swYyxYw)N)
8K-rrr:PLr)
BrrrArrMr?rankedrgl\e?
bad_method)rMr:rr5r+)rHreadingmathematicss   rtest_correlation_spearmanz6TestCorrelationAndCovariance.test_correlation_spearman	
sl;>z55g{S[\1	3

z
*	N""7KM	N	N	NsA((A1N)r5r6r7rrrr9rrrr	s	HANrrc$eZdZdZdZdZdZy)TestLinearRegressioncgd}gd}|jtj5tj||dddy#1swYyxYw)N)r
r
r
r)r5r:rrrrs   rtest_constant_input_errorz.TestLinearRegression.test_constant_input_error
sE


z99
:	/((A.	/	/	/sAAc
gdgdddfgdgdddfgdgdddfgdgddd	fgdgd
ddfgdgdd
dfgdgdddffD]D\}}}}tj||\}}|j|||j||Fy)Nr)rrrrr
)rrrr)rrqrrrrrs)rrtrr^)gffffff@g@rrr)r:rrM)rHrr-true_intercept
true_slopeslope	intercepts       rrz!TestLinearRegression.test_results!
s
	1a(
	1a(
a0
b!,
a,
b!,
C01
	6,Aq.* *;;AqAE9""9n=""5*5	6rcgd}gd}tj||d\}}|j|d|j|dy)N)rr^rr)iibiTproportionalgN4@rr)r:rrMrDrHrr-rrs     rtest_proportionalz&TestLinearRegression.test_proportional/
sE %7714Pyuj1C(rctddtddg}tddtddg}tj||\}}|jt	|t
|jt	|t
tj||d\}}|jt	|t
|jt	|t
y)NrrrrrLTr)rr:rrrrrs     rtest_float_outputz&TestLinearRegression.test_float_output6
s
a^Xa^,
a^Xa^,%771=y
5%01
9e45%7714Py
5%01
9e45rN)r5r6r7rrrrr9rrrr
s/6)6rrceZdZdZdZdZdZdZdZe	je	jddZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZy)TestNormalDistc|jjdd}|jt5t	|ddd|jt
|jdy#1swY/xYw)Nrr)_mu_sigma)rX
NormalDistr5rvarsrDr	__slots__rHnds  r
test_slotszTestNormalDist.test_slotsI
s\
[[
#
#C
,


y
)	H	r||,.?@		sA,,A5c|jjdd}|j|jd|j|jd|j|j
d|jj}|j|jd|j|jd|j|j
d|j
|jj5|jjdddddGdd|jj}|d	d
}|jt||y#1swYMxYw)Nrryi!rr
iceZdZy)GTestNormalDist.test_instantiation_and_attributes.<locals>.NewNormalDistNrr9rr
NewNormalDistr`
rrr	rr)	rXrrDrrIr	r5rrr)rHrr	nnds    r!test_instantiation_and_attributesz0TestNormalDist.test_instantiation_and_attributesO
s
[[
#
#C
,#&2&e,[[
#
#
%!$1%d+

t{{::
;	-KK""3,	-	DKK22	C#cM2	-	-sE--E6c|jj}gd}|j|j||dd|j|jt	||dd|j|jt||dd|j
|jj5|jgddd|j
|jj5|jdgdddGdd|}|j|}|jt||y#1swYxYw#1swYMxYw)N)`rZrnrzrrceZdZy)BTestNormalDist.test_alternative_constructor.<locals>.NewNormalDistNrr9rrr	ru
rrr	)	rXrrDfrom_samplesrr?r5rrr)rHrrr	r
s     rtest_alternative_constructorz+TestNormalDist.test_alternative_constructore
s,[[++
%006
2q8IJ00t=z"a?PQ00d<jQ>OP


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


t{{::
;	*##RD)	*	J	((.cM2	(	(	*	*s
E	E(E%(E1c|jj}d\}}|||}d}|j|}|jt	|||jtt
t|th|jj|}|j||dzz
|cxkxr||dzzkncd}|j|d}|j|d}	|j|d}
|j|d}|j||
|j|	||j||	y)N)r4rr%rrzhappiness and joy)rWztrouble and despair)rXrsamplesrDr_rrrrrrre)rHrrsigmarrrrdata1data2data3data4s            rtest_sample_generationz%TestNormalDist.test_sample_generationz
s&[[++
	Er5!yy|TA&St_-w7{{%U1W<U1W<=
		!"5	6		!"7	8		!"5	6		!"7	8&&E5)rc	|jj}|dd}|j|jd|jd|j|jd|jdt	dD]8}|j|jd|z
|jd|z:d}t	ddD]N}|j
||z|j
|z
|z}|j|j||d	
P|}tgdD]R\}}|j|j|dz|d	
|j|j|dz|d	
T|dd
}	|j|jj5|	jdddd|j|jtdd|j|jtdd|jtj|jtdy#1swYxYw)Nrr{rzrrgP?rr1rra)2+ݓ?rrggDio?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-Infrrrr)rXr
assertLesspdfrrMcdfrbr5rrrDrrrr)
rHrrredxrest_pdfZpxYs
          rtest_pdfzTestNormalDist.test_pdf
s[[++
sBb	155:.c
AEE#J/r	CA""155q>155q>B	Cr3	@AuuQV}quuQx/25G""1558WQ"?	@
L 

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


t{{::
;	
EE"I		
uV}-s3uU|,c2

155u#678		s<I''I0c	|jj}|dd}tddDcgc]}|j|}}|j	tt
t|th|j	|t||j	|jdd|}dD]O\}}|j|j||d|j|j|d	|z
dQ|dd
}|j|jj5|jdddd|j	|jtdd
|j	|jtdd	|jtj|jtdycc}w#1swYxYw)Nrr{r
rr))rrr)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?rrarrrrrrrr)rXrrr!rDrrrrrCrMr5rrrrr)	rHrrrcdfsr$zcum_probr&s	         rtest_cdfzTestNormalDist.test_cdf
s[[++
sB"'3-0Qa00St_-w7vd|,sT*
L	HKAx
""1558Xa"@""155!9cHnQ"G	H
sA


t{{::
;	
EE"I		
uV}-s3uU|,c2

155u#67831(		sG&;G++G4r'c	8|jj}|dd}|j|jd|j|}dddd}|jD]o\}}t
|d	D]Z\}}|d
|zz}	|j|j|	|dd
|	z
}	|j|j|	|d\q|j|ddjddd}
td|
D]7}	|	|
z}	|j|j|j|	|	9tddD]m}d|z}	|j|j|j|	|	d
|	z
}	|j|j|j|	|	otdD]4}|j|j|j||d6|j|jj5|jdddd|j|jj5|jdddd|j|jj5|jd
ddd|j|jj5|jdddd|dd}|j|jdd|jtj|jtdy#1swY.xYw#1swYxYw#1swYxYw#1swYxYw)Nrr{r)
rrgRQ?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@)rrFrr
)startrrrarrrg>?gE@i3r)rrrrrg?rr)rXrrDinv_cdfritemsrbrMrr!r5rrrrrr)rHriqr$ppr&rowrrrrrfs            rtest_inv_cdfzTestNormalDist.test_inv_cdf
s,[[++
R
 D)2773

L777	8	BID##Cq1
BQ4SD>)&&		!}a&B!G&&qyy|Qq&A	
B	B	
z"c2::8DiP
q!	=A
FA""266"**Q-#8!<	=q"	=AA""266"**Q-#8!<aA""266"**Q-#8!<		=s	GA""2::bffQi#8!A"F	G

t{{::
;	JJsO	


t{{::
;	JJt	


t{{::
;	JJsO	


t{{::
;	JJsO	Q
C#.	


199U5\#:;<								s0-M+,M8+N*N+M58NN
Nc
|jj}dgfddgfdddgfdgdffD]B\}}|j|	}|jt	d
t||DDy)Nr
rrrrgǘۿgǘ?r)g/$rrg/$?rc3RK|]\}}tj||d!yw)r)abs_tolNrrs   rrz0TestNormalDist.test_quantiles.<locals>.<genexpr>"s, ? $1!%Q6 B B ?s%')rXrrrrrc)rHr$rr%r$s     rtest_quantileszTestNormalDist.test_quantilessKK""$
G
J
&!"
&'		@KAx[[1[%FOOC ?(+Hf(= ??
@	@rcx|jj}|dd|dddf|dd|dddffD]L\}}}|j|j||d|j|j||dNdd	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]Y\}}|j|j||||d	|j|j||||d	[|}|j	t
5|jddd|j	t
5|j||ddd|j	t
5|jdddd|j	|jj5|j|ddddd|j	|jj5|ddj|dddy#1swYxYw#1swYxYw#1swYxYw#1swYtxYw#1swYyxYw)Nrrr)rgɎ@?gM-[닄?rrai r)stepsr*ctj}|j|jzdz}|t|j|jz}||z
}d|z|z}t|D	cgc]
}	||	|zz}
}	t
t|j|
}t
t|j|
}t||||}
|tt|||
zScc}	w)z0Numerical integration cross-check for overlap() r))
rrrr"rIrrrr r)rr&r;r*rcenterwidthr.r"rex_arrxpyprs              roverlap_numericz4TestNormalDist.test_overlap.<locals>.overlap_numeric1s99Dffqvvo,FAGGQWW--EUNEuu$B+0<8aUQrT\8E8c!%%'(Bc!%%'(BR$r(+ECR()E11	9s*C+rrrrr{rrirrrgjt?g~jth?gjt?ga2U0*3?gMbX?r
r)rXrrMoverlapr5rrr)rHrX1X2published_resultrBrs       rtest_overlapzTestNormalDist.test_overlap%s[[[++
C%z#s';WEC%z#s';WE)	O$B$
""2::b>3CA"N""2::b>3CA"N	O,1A	2C%z#s';<C%z#s';<C%z#s';<B"Jr3$78C$jb&9:D"%z#r':;D"%z$';<C$jb&9:C$jb&9:C$jb&9:C$jb&9:E5):eU+CDE5):eV+DEE5):eU+CD)	VFB,
""2::b>?2r3JST"U""2::b>?2r3JST"U/	V4
L


y
)	
IIK	


y
)	
IIaO	


y
)	
IIdO	


t{{::
;	(
IIjA&'	(


t{{::
;	(q!$$Q'	(	(							(	(	(	(s<;L)LLL$L0L	LL!$L-0L9c|jj}|dd}|j|jdd|j|jdd|j|jdd|j	t
5|jddd|j	t
5|jddddd|j	t
5|jdddd|j	|jj5|dd	jddddy#1swYxYw#1swYxYw#1swYhxYw#1swYyxYw)
Nrr{gffffff@rgffffffrrr
r)rXrrDzscorer5rrr)rHrrs   rtest_zscorezTestNormalDist.test_zscoreds6[[++
sB#,"t,#,


y
)	
HHJ	


y
)	
HHQN	


y
)	
HHTN	


t{{::
;	)q!##C(	)	)
							)	)s0EE#6E/5E;E #E,/E8;FcT|jjdd}|j|jd|j|jd|j|j
d|j|jd|j|jdy)Nrr{)rXrrDrr;rrIr	)rHrs  rtest_propertieszTestNormalDist.test_propertiesss|KK""3+%3'%"%S)rc|jj}|dd}|dd}|j||z|dd|j||z
|ddy)Nrrrrrr)rXrrDrHrrr&s    r'test_same_type_addition_and_subtractionz6TestNormalDist.test_same_type_addition_and_subtraction{s_[[++
sBr1Q
3 34Q
2r 23rc|jj}|dd}d}|j||dd|j||dd|j||z|dd|j||z|dd|j||z
|dd|j||z
|dd|j||z|dd	|j||z|dd	|j||z|dd
|jt5||zdddy#1swYyxYw)Nrr{rrrrir%rCr)rXrrDr5r)rHrrr-s    rtest_translation_and_scalingz+TestNormalDist.test_translation_and_scalings;[[++
sB!ZR01!Zb12Q
3 34Q
3 34Q
2r 23Q
3 34Q
4 56Q
4 56Q
2s 34


y
)	
E			s/D>>Ec|jj}|dd}|}|j|||j|j|j|j|j
|j
|}|j|||j|j|j|j|j
|j
y)Nrr)rXrassertIsNotrDrrIrRs    rtest_unary_operationsz$TestNormalDist.test_unary_operationss[[++
sB
BA(!''*
BA!&&)!''*rc|jj}|}|dd}|}|dd}|dd}|dd}|j|||j|||j|||j|||j||Gdd}|}	|j|j	|	t
|j||	k(d|j|	|k(dGdd|}
|
d	d
d}|d	d
}|j||Gdd
}|d	d
}
|d	d
}|j||
y)NrrrceZdZdZy)'TestNormalDist.test_equality.<locals>.Acyrr9)rHr)s  r__eq__z.TestNormalDist.test_equality.<locals>.A.__eq__srN)r5r6r7r]r9rrrr[s
rrrceZdZfdZxZS)5TestNormalDist.test_equality.<locals>.SizedNormalDistc4t|||||_yrh)r__init__r)rHrrrr
s    rraz>TestNormalDist.test_equality.<locals>.SizedNormalDist.__init__s U+r)r5r6r7rarrs@rSizedNormalDistr_s


rrbrr{9ceZdZdZy)3TestNormalDist.test_equality.<locals>.LognormalDistc ||_||_yrh)rr)rHrrs   rraz<TestNormalDist.test_equality.<locals>.LognormalDist.__init__s"
rN)r5r6r7rar9rr
LognormalDistres
#rrg)rXrrerDr]NotImplemented)rHrnd1nd2nd3nd4nd5nd6rrrbsrglndrs               r
test_equalityzTestNormalDist.test_equalitys^[[++
lAlAAAC%c"c"C%C%		
CA72&c2&	j	
CR(b!C 
	#	#C$
R
 B$rc|jjdd}tj|}|j||tj|}|j||y)NB@@)rXrcopyrDdeepcopy)rHrrirjs    r	test_copyzTestNormalDist.test_copysS
[[
#
#D%
0iimS!mmBS!rcD|jjdd}ttjdzD]Y}|j|5tjtj||}|j||ddd[y#1swYfxYw)Nrsrtr
)proto)protocol)	rXrrpickleHIGHEST_PROTOCOLrloadsdumpsrD)rHrrypickleds    rtest_picklezTestNormalDist.test_pickles
[[
#
#D%
0622Q67	.EE*
. ,,v||B'GH  W-
.
.	.
.
.s=BB	c|jj}|dd|dd|dd|dd|ddh}|jt|dy)Nrr{rg.@rrr)rXrrDr_)rHNDros   rtest_hashabilityzTestNormalDist.test_hashabilitysS
[[
#
#
R["UD/2c2;2r
BsBKPQ#rcr|jjdd}|jt|dy)Nrsrtz NormalDist(mu=37.5, sigma=5.625))rXrrDreprrs  r	test_reprzTestNormalDist.test_reprs-
[[
#
#D%
0b#EFrN)r5r6r7rrrrr'r,rskip_if_pgo_taskrEr5r9rHrLrOrSrUrXrqrwrrrr9rrrr@
sA3,3**,%9N9<
Wu%?=&?=B@=(~
)*4 
+*%X".$
GrrceZdZeZdZdZy)TestNormalDistPythonc>|jtjd<yrBrXrlmodulesrts rrzTestNormalDistPython.setUp$(KKL!rc2ttjd<yrBr:rlrrts rtearDownzTestNormalDistPython.tearDown$.L!rN)r5r6r7rFrXrrr9rrrrs
F0/rrrKceZdZeZdZdZy)TestNormalDistCc>|jtjd<yrBrrts rrzTestNormalDistC.setUprrc2ttjd<yrBrrts rrzTestNormalDistC.tearDownrrN)r5r6r7rMrXrrr9rrrrs
F0/rrcL|jtj|S)z&Used for doctest/unittest integration.)addTestsrdDocTestSuite)loadertestsignores   r
load_testsrs	NN7'')*Lr__main__)rgHz>)UrrrTcollections.abcrurrdr"rr{rrlrOtestrtest.supportrrrrrr:rrr)r2r4import_fresh_modulerFrMrCr?rRrprwrrrr#r2r:rSrarprwrrrrr&r9rtrrrrrrrr8rWr[rfrmrrrrrrrr rGrPrqrrrrrrPrrr5mainr9rr<module>rs_



9
3>
 2)t$	$	V2
11,;H/K
0}008EH
U(##
UXFh''XF~)x  );Jh//;J|=B8,,=B@,X..,>tEX..tEnKh//K8	GH--	G"%(++%ZC(##C,$x  $
(++
=8X&&=8@1)**1)h68$$6&a9""a9H;-(##;-|&(##&<`/`/F'.'.T	#)+>	#7Fo7Ft
?_
?;K;K@9(9(]>.A]>@v(6Iv(r65,65r
*=
4J 3464Z!446u@
u@p:,.A:,z,H%%,A1!!A1L?:.?:D)-&9L)-X,-%8K,-\7#_7"_kh''_kD9"O9(fM))fMRa+H%%a+H3h//3>&N8#4#4&NP%68,,%6N_G_GJ
/8,,n/\#9:/h''/;/zHMMOr