a zet@s`ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddlm Z ddlmZddl m Z ddlZddZddZd d Zdyd dZGdddZe jddgdZe jddgdZGddde jZGddde jZGddde jZGddde jZGddde jZGdd d e jZGd!d"d"e jZ Gd#d$d$e jZ!Gd%d&d&e jZ"Gd'd(d(e jZ#Gd)d*d*e jZ$Gd+d,d,e jZ%Gd-d.d.e jZ&Gd/d0d0e jZ'Gd1d2d2e jZ(Gd3d4d4e jZ)Gd5d6d6e jZ*Gd7d8d8e jZ+Gd9d:d:e jZ,Gd;d<dd>e jZ.Gd?d@d@Z/GdAdBdBZ0GdCdDdDe/e0Z1GdEdFdFeZ2GdGdHdHeZ3GdIdJdJeZ4GdKdLdLe/Z5GdMdNdNee5e0Z6GdOdPdPee5e0Z7GdQdRdRee5Z8GdSdTdTee0Z9GdUdVdVe8e0Z:GdWdXdXe8e0Z;GdYdZdZe8ZGd_d`d`e jZ?Gdadbdbe/Z@Gdcdddde@ee0ZAGdedfdfe@ee0ZBGdgdhdhe@eZCGdidjdje@eZDGdkdldle jZEGdmdndne jZFGdodpdpZGGdqdrdre jeGZHe IedsGdtdudue jeGZJdvdwZKeLdxkr\e MdS)zN)support)DecimalFractioncCs td|S)N)mathcopysignxr H/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_statistics.pysignsr cCsZt|t|urdSt|tr2t|o0t|S|d}|d}||koX|dvS)NF)nN)type isinstancefloatrisnanZas_tuple)abZaexpZbexpr r r _nan_equal"s   rcCs:tt|t|}t||}|r*||ntd}||fSNinf)maxabsr)actualexpectedbaseabs_errrel_errr r r _calc_errorsAs  r!-q=Hz>cCs|dks|dkrtdt|s,t|r0dS||krt||||rdS||||||}|||}||dSr@)r)_make_std_err_msgrLrM)r8rFrGr'r(rHidxrPr r r rEs  z!NumericTestCase._check_approx_numc Cs>d}|durd|}||}t||\}}|||||||fS)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!) rFrGr'r(rTtemplateheaderrr r r r rSsz!NumericTestCase._make_std_err_msg)NNN)N) r,r-r.r'r(rJrDrE staticmethodrSr r r r r?s , r?c@seZdZddZdS)TestSigncCs$|tdd|tdddS)Nrg)r4r r8r r r testZeroes(szTestSign.testZeroesN)r,r-r.r\r r r r rX&srXc@s,eZdZddZddZddZddZd S) ApproxEqualSymmetryTestcCsTdddtdtddg}ddd td td dg}t||D]\}}|||q:dS) Ni gfffffB@gfffff(z2.546i gB@gR(z2.59)rrrOdo_relative_symmetry)r8Zargs1Zargs2rrr r r test_relative_symmetry3s z.ApproxEqualSymmetryTest.test_relative_symmetrycCstt||t||}}||}t||t||}}||d}|t||d|d|t||d|ddS)Nrrr'r()minrr assertTruer))r8rrdeltaZrel_err1Zrel_err2r(r r r raCs  z,ApproxEqualSymmetryTest.do_relative_symmetrycCsgd}d}|D]}ttttfD]}||d}||}t|t||}|j||||d|j|||dd|d|j|||d|dd|j||||dd|j|||d|d|j|||dd|d|j||ddd|j||dddq qdS)N)kimrdrcrr)intrrrrrdo_symmetry_test)r8argsrfrtype_r r&rr r r test_symmetryOs z%ApproxEqualSymmetryTest.test_symmetryc Cs@d}t||||}t||||}||||||||fdS)Nz+approx_equal comparisons don't match for %r)r)r4format)r8rrr'r(rUZflag1Zflag2r r r rmgsz(ApproxEqualSymmetryTest.do_symmetry_testN)r,r-r.rbrarqrmr r r r r]0s r]c@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)ApproxEqualExactTestcCsJt||||d}||d|t| | ||d}||d| dS)Nrczequality failure for x=%r)r)re)r8r r'r(resultr r r do_exactly_equal_testtsz*ApproxEqualExactTest.do_exactly_equal_testcCsdD]}||ddqdS)N)*iMi~:iiU irrur8rr r r test_exactly_equal_intszsz,ApproxEqualExactTest.test_exactly_equal_intscCsdD]}||ddqdS)N)gzG?g/$?ge@g7@gpf@g!rhQ@gB`"KB@rrxr8r r r r test_exactly_equal_floatssz.ApproxEqualExactTest.test_exactly_equal_floatscCsNt}|dd|d|dd|dd|dd |ddfD]}||ddq6dS) Nrrrri #$)rrur8Ffr r r test_exactly_equal_fractionss6z1ApproxEqualExactTest.test_exactly_equal_fractionscCs*t}t|dD]}||ddqdS)Nz8.2 31.274 912.04 16.745 1.2047r)rmapsplitru)r8Ddr r r test_exactly_equal_decimalssz0ApproxEqualExactTest.test_exactly_equal_decimalscCsFdD]<}||dd||dddt|d}||ddqdS)N)ii\ii{Gz?r i)rur)r8rrr r r test_exactly_equal_absolutes  z0ApproxEqualExactTest.test_exactly_equal_absolutecCs2|tdtdd|td tdddS)Nz3.5710.01rz81.3971)rurr[r r r $test_exactly_equal_absolute_decimalssz9ApproxEqualExactTest.test_exactly_equal_absolute_decimalscCs@dddtddfD]}||ddq|tddtd dS) Ni g33333SY@gzGrirrz11.68rrrurr{r r r test_exactly_equal_relativesz0ApproxEqualExactTest.test_exactly_equal_relativecCsHdddtddfD]}||ddqt}||d|d |d dS) Ni9gˡE0@g\(hr}皙?rz7.2z0.1rr)r8r rr r r test_exactly_equal_bothsz,ApproxEqualExactTest.test_exactly_equal_bothN) r,r-r.rurzr|rrrrrrr r r r rsns rsc@s4eZdZddZddZddZddZd d Zd S) ApproxEqualUnequalTestcCs8|| fD](}t||dddd}||d|q dS)Nrrrczinequality failure for x=%r)r) assertFalse)r8r rrtr r r do_exactly_unequal_testsz.ApproxEqualUnequalTest.do_exactly_unequal_testcCsdD]}||qdS)N)iiiiiXCrryr r r test_exactly_unequal_intssz0ApproxEqualUnequalTest.test_exactly_unequal_intscCsdD]}||qdS)N)gQ#@g [@gfffffG@gףp= W"@g= ףp=1@rr{r r r test_exactly_unequal_floatssz2ApproxEqualUnequalTest.test_exactly_unequal_floatscCs<t}|dd|dd|dd|ddfD]}||q(dS) Nrrirr~ eiς)rrrr r r test_exactly_unequal_fractionss(z5ApproxEqualUnequalTest.test_exactly_unequal_fractionscCs"ttdD]}||qdS)Nz!3.1415 298.12 3.47 18.996 0.00245)rrrrr8rr r r test_exactly_unequal_decimalssz4ApproxEqualUnequalTest.test_exactly_unequal_decimalsN)r,r-r.rrrrrr r r r rs rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!S)"ApproxEqualInexactTestc Csbd}||||fD]H}|||}|t||d|dd||t|||ddd|qdS)NTest failure for x={!r}, y={!r}rrrcrrrer)rr8r rfrUr&rHr r r do_approx_equal_abs_tests  z/ApproxEqualInexactTest.do_approx_equal_abs_testcCs&dD]}||d||dqdS)N) iiIirhrrr~%ii&i6jrrrryr r r test_approx_equal_absolute_intss z6ApproxEqualInexactTest.test_approx_equal_absolute_intscCs2dD](}||d||d||dqdS)N) gtqgfffffFXg333333 g333333??g333333@gQ@gҭ@?r-C6?rr{r r r !test_approx_equal_absolute_floatss  z8ApproxEqualInexactTest.test_approx_equal_absolute_floatscCsFtdd}gd}dd|DD] }|||||t|q dS)Nr) irhrZrrrir^"Gcss|]}t|dVqdS)rNr).0rr r r zNApproxEqualInexactTest.test_approx_equal_absolute_fractions..)rrr)r8rf numeratorsrr r r $test_approx_equal_absolute_fractionss   z;ApproxEqualInexactTest.test_approx_equal_absolute_fractionscCs:td}ttdD]}||||| |qdS)Nrz1.0 3.5 36.08 61.79 7912.3648)rrrr)r8rfrr r r #test_approx_equal_absolute_decimalss z:ApproxEqualInexactTest.test_approx_equal_absolute_decimalscCs|tddddddS)Ngh㈵>gh㈵rrrc)rer)r[r r r test_cross_zerosz&ApproxEqualInexactTest.test_cross_zeroc Csjd}|d||d|fD]H}|||}|t||dd|d||t||d|dd|qdS)Nrrrrrcrrr r r do_approx_equal_rel_tests  z/ApproxEqualInexactTest.do_approx_equal_rel_testcCsr|tddddd|tddddd|tdddd d|td ddd d|td ddd ddS) N@/rg ףp= ?rcgGz?ii?ii)rer)rr[r r r test_approx_equal_relative_intss z6ApproxEqualInexactTest.test_approx_equal_relative_intscCs&dD]}||d||dqdS)N)g{GJf皙rrg\(|B@gʡE>@gx@{Gz?r)rr{r r r !test_approx_equal_relative_floats s z8ApproxEqualInexactTest.test_approx_equal_relative_floatscCsht}tdd}|dd|dd|dd|dd fD]0}|t|fD]}||||| |qBq2dS) Nr}rTr^12\U)rrr)r8rrfrrr r r $test_approx_equal_relative_fractionss  ( z;ApproxEqualInexactTest.test_approx_equal_relative_fractionscCs:ttdD]&}||td|| tdqdS)Nz$0.02 1.0 5.7 13.67 94.138 91027.93210.0010.05)rrrrrr r r #test_approx_equal_relative_decimalssz:ApproxEqualInexactTest.test_approx_equal_relative_decimalscCst|r |jn|j}|t|||dd|r.|jn|j}|t||d|d|sP|rV|jn|j}|t||||ddS)Nrrc)rerr))r8rrr'r(Ztol_flagZrel_flagrIr r r do_check_both)s z$ApproxEqualInexactTest.do_check_bothcCs,|dddddd|dddd dddS) NR@+@Mbp? W8?Tg?5^Ig%CMb`?g-C6*?rr[r r r test_approx_equal_both11sz.ApproxEqualInexactTest.test_approx_equal_both1cCs|dddddddS)NrrrgVF?8?TFrr[r r r test_approx_equal_both26sz.ApproxEqualInexactTest.test_approx_equal_both2cCs|dddddddS)NrrMbP?rFTrr[r r r test_approx_equal_both3:sz.ApproxEqualInexactTest.test_approx_equal_both3cCs,|dddddd|dddd dddS) Ng= ףp=@@rrFgQ[@g(\[@rgiUMu>rr[r r r test_approx_equal_both4>sz.ApproxEqualInexactTest.test_approx_equal_both4N)r,r-r.rrrrrrrrrrrrrrrrr r r r rs   rc@s,eZdZddZddZddZddZd S) ApproxEqualSpecialsTestcCsttfD]z}|d}|t|||t||dd|t||dd|t| | |t|| |t|dqdS)Nrrrr)rrrer)r)r8rorr r r test_infGs z ApproxEqualSpecialsTest.test_infcCs>ttfD]0}|d}||ddfD]}|t||q"qdS)Nnanrr)rrrr))r8rorotherr r r test_nanQs z ApproxEqualSpecialsTest.test_nancCs&tdd}|t|dddddS)NrYrZrrc)rrrer)r8Znzeror r r test_float_zeroesWs z)ApproxEqualSpecialsTest.test_float_zeroescCs&td}|t|tdddddS)Nz-0.0rrrc)rrer)rr r r test_decimal_zeroes[sz+ApproxEqualSpecialsTest.test_decimal_zeroesN)r,r-r.rrrrr r r r rDs rc@seZdZddZddZdS)TestApproxEqualErrorscCs|ttdddddS)NrkrZr assertRaisesr$r)r[r r r test_bad_tolcsz"TestApproxEqualErrors.test_bad_tolcCs|ttdddddS)Nrkrrrr[r r r test_bad_relgsz"TestApproxEqualErrors.test_bad_relN)r,r-r.rrr r r r r`src@s4eZdZddZddZddZddZd d Zd S) TestNumericTestCasecCs.tj|}|j|}|D]}|||qdSr@)r?rSgenerate_substringsZassertIn)r8rnZ actual_msgrZ substringr r r do_testws  zTestNumericTestCase.do_testcCs|tttjdSr@)re issubclassr?r=TestCaser[r r r test_numerictestcase_is_testcase}sz4TestNumericTestCase.test_numerictestcase_is_testcasecCsd}||dS)N)@@r?Nrr8rnr r r test_error_msg_numericsz*TestNumericTestCase.test_error_msg_numericcCsd}||dS)N)@g @g?rrrrr r r test_error_msg_sequencesz+TestNumericTestCase.test_error_msg_sequencec CsDt||\}}d|d|d|d|g}|dur@|d||S)Nztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r!append) r8rFrGr'r(rTrr Z substringsr r r rsz'TestNumericTestCase.generate_substringsN)r,r-r.rrrrrr r r r rqs rc@s(eZdZeZddgZddZddZdS) GlobalsTest__doc____all__cCs(|jD]}|t|j|d|qdS)Nz%s not present)expected_metadatarehasattrmodule)r8metar r r test_metas zGlobalsTest.test_metacCsB|j}|jD]0}||dd||t||d|q dS)N_zprivate name "%s" in __all__zmissing name "%s" in __all__)rrr startswithrer)r8rnamer r r test_check_alls   zGlobalsTest.test_check_allN)r,r-r.r/rrrrr r r r rsrc@s(eZdZeejjdkdddZdS)DocTestsrz)Docstrings are omitted with -OO and abovecCs0tjttjd\}}||d||ddS)N)Z optionflagsr)doctesttestmodr/ELLIPSIS assertGreaterr4)r8ZfailedZtriedr r r test_doc_testss zDocTests.test_doc_testsN) r,r-r.r=ZskipIfsysflagsoptimizer r r r r rsrc@seZdZddZdS)StatisticsErrorTestcCs4d}|ttd|ttjt|tjjdS)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.StatisticsError)rerr/rrr$__base__)r8errmsgr r r test_has_exceptions  z&StatisticsErrorTest.test_has_exceptionN)r,r-r.rr r r r rsrc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)ExactRatioTestcCs$dD]}|t||dfqdS)N)irricl Fx:^Vr)r4r/ _exact_ratio)r8rQr r r test_intszExactRatioTest.test_intcCs2d}|D]$}t|d}|t||dfqdS)N)rr&r)rr4r/r)r8rrrr r r test_fractions zExactRatioTest.test_fractioncCsb|tdd|tddddtdD}|D]"}t|\}}||||q:dS)Nrrr?)r~rcSsg|]}tddqS)rkrandomuniformrrr r r rz-ExactRatioTest.test_float..rk)r4r/rrange)r8datar numdenr r r test_floats zExactRatioTest.test_floatcCsJt}tj}|||dd|||dd|||dddS)Nz0.125rz12.345)i z-1.98)ir)rr/rr4)r8rrr r r test_decimals zExactRatioTest.test_decimalcCstd}Gdddt}Gdddt}|| fD]`}t|t|fD]N}||}t|}|||df|t|d||t|dqBq2dS)NINFc@s eZdZdS)z(ExactRatioTest.test_inf..MyFloatNr+r r r r MyFloatsr+c@s eZdZdS)z*ExactRatioTest.test_inf..MyDecimalNr+r r r r MyDecimalsr,r) rrr/rr4rrerr%)r8r*r+r,rror ratior r r rs zExactRatioTest.test_infcCsttd}Gdddt}|||fD]J}t|}|t|d||dd|t|dt|q$dS)NNANc@s eZdZdS)z.ExactRatioTest.test_float_nan..MyFloatNr+r r r r r+sr+rr) rr/rrerrassertIsr4r)r8r.r+rr-r r r test_float_nans zExactRatioTest.test_float_nancCstd}td}Gdddt}||||||fD]J}t|}|t|d|||dd|t|dt|q4dS)Nr.sNANc@s eZdZdS)z2ExactRatioTest.test_decimal_nan..MyDecimalNr+r r r r r,sr,rr)rr/rrerr/r4r)r8r.r1r,rr-r r r test_decimal_nans zExactRatioTest.test_decimal_nanN) r,r-r.rrr'r)rr0r2r r r r rs rc@s<eZdZddZddZddZddZd d Zd d Zd S)DecimalToRatioTestcCs<td}|t||df|t| | dfdS)Nr*)rr4r/r)r8rr r r test_infinitysz DecimalToRatioTest.test_infinitycCsDtdtdfD].}t|\}}|t||||dqdS)Nr.r1)rr/rrerr/)r8rr%r&r r r rszDecimalToRatioTest.test_nancCsltdtdg}|D]R}t|\}}||d||dt| \}}||d||dqdS)Nz 9.8765e12z 9.8765e-12r)rr/rassertGreaterEqualr ZassertLessEqual)r8Znumbersrr%r&r r r test_signs   zDecimalToRatioTest.test_signcCsttd}||ddS)Nz0.1234)iir/rrr4r8tr r r test_negative_exponent,sz)DecimalToRatioTest.test_negative_exponentcCsttd}||ddS)Nz1.234e7)i Krr8r9r r r test_positive_exponent1sz)DecimalToRatioTest.test_positive_exponentcCs8ttd}||dttd}||ddS)NZ1e2)rkrz1.47e5)i8>rr8r9r r r test_regression_205366s z(DecimalToRatioTest.test_regression_20536N) r,r-r.r4rr6r;r<r=r r r r r3 s  r3c@s$eZdZddZddZddZdS) IsFiniteTestcCs0dtdddtdfD]}|t|qdS)Nrirr}r5.5)rrrer/ _isfiniter{r r r test_finiteBszIsFiniteTest.test_finitecCs*tdtdfD]}|t|qdSrrrrr/r@r{r r r r4GszIsFiniteTest.test_infinitycCs0tdtdtdfD]}|t|qdSNrr.r1rBr{r r r rLszIsFiniteTest.test_nanN)r,r-r.rAr4rr r r r r>?sr>c@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS) CoerceTestcCsNttttfD]<}|t|t|Gddd|}|t|t|q dS)Nc@s eZdZdS)z%CoerceTest.test_bool..MyClassNr+r r r r MyClassmrrE)rlrrrr/r/_coercebool)r8TrEr r r test_boolgszCoerceTest.test_boolcCs,|t||||t|||dSr@)r/r/rFr8ABr r r assertCoerceTopszCoerceTest.assertCoerceTocCsT|||Gddd|}|||Gddd|}||||||dS)Nc@s eZdZdS)z/CoerceTest.check_coerce_to..SubclassOfANr+r r r r SubclassOfAzrrNc@s eZdZdS)z/CoerceTest.check_coerce_to..SubclassOfBNr+r r r r SubclassOfB}rrO)rM)r8rKrLrNrOr r r check_coerce_tous    zCoerceTest.check_coerce_tocCs,|ttj||f|ttj||fdSr@)r TypeErrorr/rFrJr r r assertCoerceRaisesszCoerceTest.assertCoerceRaisescCs|t|||Gddd|}Gddd|}Gddd|}|||fD]}|||qN|||||||||dS)Nc@s eZdZdS)z*CoerceTest.check_type_coercions..UNr+r r r r UrrSc@s eZdZdS)z*CoerceTest.check_type_coercions..VNr+r r r r VrrTc@s eZdZdS)z*CoerceTest.check_type_coercions..WNr+r r r r WrrU)r/r/rFrMrR)r8rHrSrTrUtypr r r check_type_coercionss  zCoerceTest.check_type_coercionscCs*|ttttfD]}|t|qdSr@)rWrlrrrrP)r8rVr r r rs zCoerceTest.test_intcCs|t|ttdSr@)rWrrPrr[r r r rs zCoerceTest.test_fractioncCs|tdSr@)rWrr[r r r r)szCoerceTest.test_decimalcCs|tdSr@)rWrr[r r r r'szCoerceTest.test_floatcCs:tttdttfD]"}ttttfD]}| ||q"qdSr@) strlistrtupledictrlrrrrR)r8Zbad_typeZ good_typer r r test_non_numeric_typessz!CoerceTest.test_non_numeric_typescCs:ttfD],}Gddd|}||t||tqdS)Nc@s eZdZdS)z6CoerceTest.test_incompatible_types..MySubclassNr+r r r r MySubclassrr])rrrRr)r8rHr]r r r test_incompatible_typess  z"CoerceTest.test_incompatible_typesN)r,r-r.rIrMrPrRrWrrr)r'r\r^r r r r rDRs  rDc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS) ConvertTestcCs$||||t|t|dSr@)r4r/r)r8r r&r r r check_exact_equals zConvertTest.check_exact_equalcCsPttdt}||dGdddt}ttd|}|||ddS)Nrc@s eZdZdS)z#ConvertTest.test_int..MyIntNr+r r r r MyIntrrar^)r/_convertrrlr`)r8r rar r r rs  zConvertTest.test_intcCs\ttddt}||tddGdddt}ttdd|}|||dddS)N_rcseZdZfddZZS)z-ConvertTest.test_fraction..MyFractioncs|t|Sr@ __class__super __truediv__r8rrer r rgsz9ConvertTest.test_fraction..MyFraction.__truediv__r,r-r.rg __classcell__r r rir MyFractionsrlr )r/rbrr`)r8r rlr r r rs zConvertTest.test_fractioncCsTttddt}||dGdddt}ttdd|}|||ddS) NrZrgcseZdZfddZZS)z'ConvertTest.test_float..MyFloatcs|t|Sr@rdrhrir r rgsz3ConvertTest.test_float..MyFloat.__truediv__rjr r rir r+sr+r~rr)r/rbrrr`)r8r r+r r r r's  zConvertTest.test_floatcCsXttddt}||tdGdddt}ttdd|}|||ddS) Nr(z0.025cseZdZfddZZS)z+ConvertTest.test_decimal..MyDecimalcs|t|Sr@rdrhrir r rgsz7ConvertTest.test_decimal..MyDecimal.__truediv__rjr r rir r,sr,rrz-0.9375)r/rbrrr`)r8r r,r r r r)s zConvertTest.test_decimalcCsFtdtdfD]0}|| fD] }t|t|}|||qqdSr)rrr/rbrr`)r8r*rr r r r rszConvertTest.test_infcCs@tdtdtdfD]$}t|t|}|t||qdSrC)rrr/rbrrer)r8rr r r r rszConvertTest.test_nancCs:|ttdtWdn1s,0YdSr@)rrQr/rbrr[r r r test_invalid_input_types z#ConvertTest.test_invalid_input_typeN) r,r-r.r`rrr'r)rrror r r r r_s   r_c@s$eZdZddZddZddZdS) FailNegTestcCs2ddtdtdg}tt|}|||dSNr@r}r)rrrYr/ _fail_negr4)r8valuesnewr r r test_pass_throughszFailNegTest.test_pass_throughcCs@ddtdtdfD]&}| g}t|}|tjt|qdSrq)rrr/rsrrnext)r8r seqitr r r test_negatives_raises z FailNegTest.test_negatives_raisec Csrdtdd}zttdg|Wn0tjyV}z|jd}WYd}~nd}~00|d|||dS)Nz badness #%d'irZrz(expected exception, but it didn't happen) rrandintrwr/rsrrnZfailr4)r8rHrRrr r r test_error_msgs  zFailNegTest.test_error_msgN)r,r-r.rvrzr}r r r r rpsrpc@seZdZddZddZdS) FindLteqTestc CsgdfddgdfddgdffD]l\}}|j||dF|tt||Wdn1sb0YWdq1s0YqdS)Nrrr}rr )subTestrr$r/ _find_lteq)r8rr r r r test_invalid_input_valuess   z&FindLteqTest.test_invalid_input_valuesc CszgdddfgdddfgdddffD]L\}}}|j||d$||t||Wdq(1sj0Yq(dS) Nrrrrr}rrrrrrrr}rrr}r}r}r}rr)rr4r/r)r8rr expected_ir r r test_locate_successfullys    z%FindLteqTest.test_locate_successfullyNr,r-r.rrr r r r r~s r~c@seZdZddZddZdS) FindRteqTestc CsbdgddfddgddffD]B\}}}|tt|||Wdq1sR0YqdS)Nrrr}r)rr$r/ _find_rteq)r8rlr r r r r*s    z&FindRteqTest.test_invalid_input_valuesc CsgddddfgddddfgddddffD]R\}}}}|j|||d &||t|||Wdq.1sv0Yq.dS) Nrrrrrr}rr)rrr )rr4r/r)r8rrr rr r r r2s z%FindRteqTest.test_locate_successfullyNrr r r r r'src@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)UnivariateCommonMixincCs|t|jdSr@rrQfuncr[r r r test_no_argsAsz"UnivariateCommonMixin.test_no_argscCs*gdtgfD]}|tj|j|qdS)Nr )iterrr/rr)r8emptyr r r test_empty_dataEsz%UnivariateCommonMixin.test_empty_datacCs(ttd}|t|kr$t|q |SNrrYr#sortedrshuffler8r$r r r prepare_dataJs   z"UnivariateCommonMixin.prepare_datacCs0|}|dd}||}|||ddS)Nzdata has been modified)rrZassertListEqual)r8r$Zsavedrr r r test_no_inplace_modificationsQs  z3UnivariateCommonMixin.test_no_inplace_modificationscCs:gdd}||}t|||}|||dS)N)rrr}r}r}rrirk)rrrr4r8r$rrr r r test_order_doesnt_matter[s     z.UnivariateCommonMixin.test_order_doesnt_mattercCsnGdddt}Gdddt}dd}|}||}ttt|||fD]}|||}|||qJdS)Nc@s eZdZdS)zBUnivariateCommonMixin.test_type_of_data_collection..MyListNr+r r r r MyListjsrc@s eZdZdS)zCUnivariateCommonMixin.test_type_of_data_collection..MyTupleNr+r r r r MyTuplelsrcSsdd|DS)Ncss|] }|VqdSr@r )robjr r r rorzXUnivariateCommonMixin.test_type_of_data_collection..generator..r r$r r r generatornszEUnivariateCommonMixin.test_type_of_data_collection..generator)rYrZrrrr4)r8rrrr$rkindrtr r r test_type_of_data_collectionhs z2UnivariateCommonMixin.test_type_of_data_collectioncCs0tddd}|t|}||||dSNrr})r#rrYr4r8r$rr r r test_range_datavs z%UnivariateCommonMixin.test_range_datacCs.|d|d|d|tdS)NrgE@)check_for_type_errorobjectr[r r r test_bad_arg_types|s   z(UnivariateCommonMixin.test_bad_arg_typescGs|jt|jg|RdSr@rrr r r rsz*UnivariateCommonMixin.check_for_type_errorcshGdddt}|}||}t|ttfD]4fdd|D}t|||}|||q.dS)Ncs,eZdZfddZfddZeZZS)z@UnivariateCommonMixin.test_type_of_data_element..MyFloatcst|t|Sr@rrfrgrhrir r rgszLUnivariateCommonMixin.test_type_of_data_element..MyFloat.__truediv__cst|t|Sr@rrf__add__rhrir r rszHUnivariateCommonMixin.test_type_of_data_element..MyFloat.__add__)r,r-r.rgr__radd__rkr r rir r+s  r+csg|] }|qSr r rr rr r r"rzCUnivariateCommonMixin.test_type_of_data_element..)rrrrrrr4)r8r+rawrr$rtr rr test_type_of_data_elements z/UnivariateCommonMixin.test_type_of_data_elementN) r,r-r.rrrrrrrrrrr r r r r>s  rc@seZdZddZddZdS)UnivariateTypeMixincCsGdddt}ttt|fS)Ncs\eZdZfddZfddZfddZfddZfd d Zfd d ZeZ Z S) zHUnivariateTypeMixin.prepare_types_for_conservation_test..MyFloatcst|t|Sr@rrhrir r rgszTUnivariateTypeMixin.prepare_types_for_conservation_test..MyFloat.__truediv__cst|t|Sr@)rrf __rtruediv__rhrir r rszUUnivariateTypeMixin.prepare_types_for_conservation_test..MyFloat.__rtruediv__cst|t|Sr@)rrf__sub__rhrir r rszPUnivariateTypeMixin.prepare_types_for_conservation_test..MyFloat.__sub__cst|t|Sr@)rrf__rsub__rhrir r rszQUnivariateTypeMixin.prepare_types_for_conservation_test..MyFloat.__rsub__cst|t|Sr@)rrf__pow__rhrir r rszPUnivariateTypeMixin.prepare_types_for_conservation_test..MyFloat.__pow__cst|t|Sr@rrhrir r rszPUnivariateTypeMixin.prepare_types_for_conservation_test..MyFloat.__add__) r,r-r.rgrrrrrrrkr r rir r+s      r+)rrr)r8r+r r r #prepare_types_for_conservation_testsz7UnivariateTypeMixin.prepare_types_for_conservation_testcsF|}|D]0fdd|D}||}|t|qdS)Ncsg|] }|qSr r rrr r r"rz.)rrrr/r)r8r$rrtr rr test_types_conserveds   z(UnivariateTypeMixin.test_types_conservedN)r,r-r.rrr r r r rs rc@seZdZddZdS) TestSumCommoncCsdd}||_dS)NcWstj|\}}}t||Sr@)r/_sumrF)rnrHvaluerr r r simplified_sumsz+TestSumCommon.setUp..simplified_sum)r)r8rr r r setUpszTestSumCommon.setUpN)r,r-r.rr r r r rsrc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)TestSumcCs tj|_dSr@)r/rrr[r r r rsz TestSum.setUpcCspgdtgfD]\}|||ttddf|||dttddf|||dttddfqdS)Nr rrffffff@)rr4rrlrrrr r r rszTestSum.test_empty_datacCsF||gdttddf||gddttddfdS)N)rrir}rrvr<r)rrr}rrriri)r4rrlrr[r r r test_intss   zTestSum.test_intscCsH||dgdttddf||gddttddfdS)Nrr@)rrrg?rg @r)r4rrrr[r r r test_floatss   zTestSum.test_floatscCs.||tddgdttdddfdS)Nrrr)r4rrr[r r r test_fractionsszTestSum.test_fractionsc CsXt}|d|d|d|d|d|d|d|dg}|||ttd d fdS) Nrz5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686r)rr4rr8rr$r r r test_decimalss  zTestSum.test_decimalscCs:ddtdD}|jt||dt|dddS)NcSsg|]}tddqS)rrrr!r r r r"rz7TestSum.test_compare_with_math_fsum..rrgؗҬ<r()r#rJrrrfsumrr r r test_compare_with_math_fsumsz#TestSum.test_compare_with_math_fsumcCs|ddtdD}||d}||d||dd||d||dd||td||dddS) NcSsg|]}tddqS)rrrr!r r r r"rz/TestSum.test_start_argument..rkrrvrrgg@xD)r#rr4r)r8r$r:r r r test_start_arguments zTestSum.test_start_argumentcCs.|t|jgdd|t|jgddS)Nrrr}999)rrr}rrr[r r r test_strings_fail szTestSum.test_strings_failcCs.|t|jgdd|t|jgddS)Nr999)rrr}rrr[r r r test_bytes_failszTestSum.test_bytes_failcCs8|t|jddtdg|t|jddgtddS)Nrrr)rrQrrr[r r r test_mixed_sumszTestSum.test_mixed_sumN)r,r-r.rrrrrrrrrrrr r r r rsrc@seZdZddZdS)SumTortureTestcCs|tgddttddf|tgddttddftgdd\}}}||t||d|jt|ddd dS) N)r}Ô%ITr}Ô%Ir{g@i@)rrrr)0.++rrrZg^,gV瞯.rr4r8r$rrtr r r test_big_datas zTestMean.test_big_datacCs:ddtdD}||}||d}|||dS)NcSsg|]}tddqS)rrirr!r r r r"rz.TestMean.test_doubled_data..rrr#rrJrr r r test_doubled_datas zTestMean.test_doubled_datacCs td}|t|g|dS)NZ1e4)rr4r/rrr r r test_regression_20561szTestMean.test_regression_20561cCs\|tddgdd}d}dD]4}|t|g|||t|g||q"dS)Nggg)rr}rir()r4r/r)r8bigZtinyrr r r test_regression_25177szTestMean.test_regression_25177N)r,r-r.rrrrrrrrrrrrrr r r r r}s   rcseZdZddZfddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZZS)TestHarmonicMeancCs tj|_dSr@)r/Z harmonic_meanrr[r r r rszTestHarmonicMean.setUpcst}|d|Sr)rfrremover8rtrir r rs  zTestHarmonicMean.prepare_datacCsdddtddtdfS)Nrr^rrrz4.125rr[r r r rsz8TestHarmonicMean.prepare_values_for_repeated_single_testcCsgd}|||ddS)N)rrrrrrr r r test_zeroszTestHarmonicMean.test_zeroc CsZtj}dggdfD]@}|j|d |||j|Wdq1sJ0YqdS)NrZ)rrhr})rt)r/rrrr)r8excrtr r r test_negative_errorsz$TestHarmonicMean.test_negative_errorc CsdggdgdgdfD]d}|j|dD|t||Wdn1sV0YWdq1st0YqdS)Nz3.14)123)rrr}4ri)rrr z5.6r)rrrQrrr r r test_invalid_type_errors z(TestHarmonicMean.test_invalid_type_errorcCs(gd}t||||ddS)N)rrrrrrg333333@rrr r r rs zTestHarmonicMean.test_intscCs>gd}t||||d||gdddS)N)rrrrrr)rrrrrrrr r r test_floats_exact s z"TestHarmonicMean.test_floats_exactcCs(tddD]}|||g|q dS)Nrrr#r4rr{r r r test_singleton_listssz%TestHarmonicMean.test_singleton_listsc Cst}|||d|d|d|dg|d|d|d|d|dg}t|||||d|d|d|d |d g}t|||||d d dS) Nr`rrrz0.10z0.20z1.68z0.32z5.94z2.75iiC)rr4rrrrr r r test_decimals_exacts.  z$TestHarmonicMean.test_decimals_exactc Csft}|dd|dd|dd|dd|dd|dd|ddg}t|||||d d dS) Nrrr}rrirrri| irrr r r r s< zTestHarmonicMean.test_fractionscCs$dtddg}|||ddS)Nrrrr)rr4rrr r r r'szTestHarmonicMean.test_infcCs(dtddg}|t||dS)Nrrrr)rrerrrrr r r r,szTestHarmonicMean.test_nancsBdgd}||}|fdd|D}|||dS)Norcsg|] }|qSr r rr r r r"6rz>TestHarmonicMean.test_multiply_data_points..r rr r r test_multiply_data_points1s z*TestHarmonicMean.test_multiply_data_pointscCs:ddtdD}||}||d}|||dS)NcSsg|]}tddqS)rrirr!r r r r";rz6TestHarmonicMean.test_doubled_data..rrrrr r r r9s z"TestHarmonicMean.test_doubled_data)r,r-r.rrrrrrrr r"r#rrrr%rrkr r rir rs   rcsTeZdZddZfddZddZddZd d Zd d Zd dZ ddZ Z S) TestMediancCs tj|_dSr@r/medianrr[r r r rCszTestMedian.setUpcs(t}t|ddkr$|d|S)Nrr)rfrrKrrrir r rFs  zTestMedian.prepare_datacCsgd}|||ddS)Nrrr}rrirrrrr r r test_even_intsMszTestMedian.test_even_intscCsgd}|||ddS)N)rrr}rrirr~rrrr r r test_odd_intsSszTestMedian.test_odd_intscCsVt}|dd|dd|dd|dd|ddg}t|||||dddS)Nrrrr}rrirrr r r test_odd_fractionsYs, zTestMedian.test_odd_fractionscCs^t}|dd|dd|dd|dd|dd|ddg}t|||||dddSNrrrr}rrirrrr r r test_even_fractionsas4 zTestMedian.test_even_fractionscCsJt}|d|d|d|d|dg}t|||||ddS)N2.53.14.25.75.8rrr r r test_odd_decimalsis" zTestMedian.test_odd_decimalscCsPt}|d|d|d|d|d|dg}t|||||ddS)Nz1.2r/r0r1r2r3z3.65rrr r r test_even_decimalsqs( zTestMedian.test_even_decimals) r,r-r.rrr*r+r,r.r4r5rkr r rir r&As r&c@seZdZddZddZdS)TestMedianDataTypecCs tj|_dSr@r'r[r r r r|szTestMedianDataType.setUpcCs(ttd}|t|kr$t|q |S)Nr`rrr r r rs   zTestMedianDataType.prepare_dataN)r,r-r.rrr r r r r6zsr6c@s,eZdZddZddZddZddZd S) TestMedianLowcCs tj|_dSr@)r/Z median_lowrr[r r r rszTestMedianLow.setUpcCsgd}|||ddS)Nr)r}rrr r r r*szTestMedianLow.test_even_intscCs^t}|dd|dd|dd|dd|dd|ddg}t|||||dddSr-rrr r r r.s4 z!TestMedianLow.test_even_fractionscCsPt}|d|d|d|d|d|dg}t|||||ddSNz1.1z2.2z3.3z4.4r?z6.6rrr r r r5s( z TestMedianLow.test_even_decimalsNr,r-r.rr*r.r5r r r r r7sr7c@s,eZdZddZddZddZddZd S) TestMedianHighcCs tj|_dSr@)r/Z median_highrr[r r r rszTestMedianHigh.setUpcCsgd}|||ddS)Nr)rrrr r r r*szTestMedianHigh.test_even_intscCs^t}|dd|dd|dd|dd|dd|ddg}t|||||dddSr-rrr r r r.s4 z"TestMedianHigh.test_even_fractionscCsPt}|d|d|d|d|d|dg}t|||||ddSr8rrr r r r5s( z!TestMedianHigh.test_even_decimalsNr9r r r r r:sr:c@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestMedianGroupedcCs tj|_dSr@)r/Zmedian_groupedrr[r r r rszTestMedianGrouped.setUpcCstgd}|||dgd}|||dgd}|||ddgd}|j||d d d d dS) N)rrmr<r<r`r`r<)rrmr<r<r<r<r`g+@) rirrr`rrrrr=rrig`3@)rr>r>r>rrrr?r?r@rg4@:0yE>r'r4rrJrr r r test_odd_number_repeatedsz*TestMedianGrouped.test_odd_number_repeatedcCsvgd}|j||ddddgd}|j||dddgd}|||d gd }|||d dS) N) rirrr`rrrr=r=rrig*3@rCrD)rr}rrrrig["8@) rr}r}rrrririririrrr ) r}rrrririririrr@)rJrr4rr r r test_even_number_repeatedsz+TestMedianGrouped.test_even_number_repeatedcCsLdddtddtdfD].}dD]$}|g|}|||t|q qdS)Ng333333@DgޗCrrz32.9714r)rrr4rrrr r r rs z,TestMedianGrouped.test_repeated_single_valuecCsPt}|dd|dd|dd|dd|ddg}t||||ddS)Nrirr~rmr^@rrr r r r,s, z$TestMedianGrouped.test_odd_fractionscCsXt}|dd|dd|dd|dd|dd|ddg}t||||ddS)Nrirr~rmr^ @rrr r r r.s4 z%TestMedianGrouped.test_even_fractionscCsFt}|d|d|d|d|dg}t||||ddS)Nr?6.57.58.5g@rrr r r r4s" z#TestMedianGrouped.test_odd_decimalscCst}|d|d|d|d|d|dg}t||||d|d|d|d|d|d|dg}t||||ddS)Nr?rLrMrN@g@rrr r r r5s( ( z$TestMedianGrouped.test_even_decimalscCs\gd}|||ddgd}|j||ddddgd}|||d d dS) N) @rrrrrJrJrKrrrg@) rPrrrrrrJrJrKrrg["8@rCrD) rQrSrSrSrT,@iTrgp@rErr r r test_intervals zTestMedianGrouped.test_intervalcCspgd}|t|j|gd}|t|j|gd}d}|t|j||gd}d}|t|j||dS)N)rXrX)rrrrrXrr)r8r$intervalr r r test_data_type_errorsz&TestMedianGrouped.test_data_type_errorN) r,r-r.rrFrHrr,r.r4r5rWrZr r r r r;s   r;c@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)TestModecCs tj|_dSr@)r/moderr[r r r r1szTestMode.setUpcCsgdS)N) rrrrr}rrr~rrrr r[r r r r4szTestMode.prepare_datacCs"tddd}|||ddSrr!rr r r r9s zTestMode.test_range_datacCs4d}|||dd}|||ddS)NZabcbdbrzfe fi fo fum fi fifi)r4rrrr r r test_nominal_data>szTestMode.test_nominal_datacCsDttd}tdD]*}||g}t|||||qdSrrYr#rrr4r)r8r$rQrr r r test_discrete_dataEs     zTestMode.test_discrete_datacCsgd}|||ddS)N)rrrrrrr}rrirrrrrrr~r~rrrr r r test_bimodal_dataMszTestMode.test_bimodal_datacCs"ttd}|||ddS)Nrr)rYr#r4rrr r r test_unique_dataTs zTestMode.test_unique_datacCs|t|jddSr@rr[r r r test_none_dataZszTestMode.test_none_datacCs$tgd}|||ddS)N)rrrrr)rACounterr4rrr r r test_counter_dataaszTestMode.test_counter_dataN) r,r-r.rrrr^r`rarbrcrer r r r r[/sr[c@seZdZddZdS) TestMultiModecCs@tj}||ddg||dgd||dgdS)NZ aabbbbbbbbccrZaabbbbccddddeeffffgg)rrrrX)r/ multimoder4)r8rgr r r test_basicskszTestMultiMode.test_basicsN)r,r-r.rhr r r r rfisrfc@s$eZdZddZddZddZdS) TestFMeanc Cstj}t}t}gdddf|d|d|dgddf|dd |d d |d d gdd fgdddfdd |d d gddfdtgdddffD]2\}}}||}|t|t|||||qdS)Nrr@@floats3.54.05.25decimalsrrrrr fractions)TFTTF333333?Zbooleansr mixed types)rjrlrZiterator) r/fmeanrrrr/rrr4)r8rvrrr$ expected_meanr actual_meanr r r rhts    zTestFMean.test_basicscCsLtj}tj}|||gWdn1s40Y|||tgWdn1sj0Y|t|dWdn1s0Y|t|gdWdn1s0Y|t|Wdn1s0Y|t|gddWdn1s>0YdS)NrNrrrrF)r/rvrrrrQ)r8rvrr r r test_error_casess & * & * & zTestFMean.test_error_casescCstj}td}td}|t|d|gd|t|||gd|t|d|gd|t||| gWdn1s0YdSNZNanInfrrznan and infinityZinfinity) r/rvrrerrr%rr$)r8rvNaNr~r r r test_special_valuess zTestFMean.test_special_valuesN)r,r-r.rhr|rr r r r rirsric@s@eZdZdZddZddZddZdd Zd d Zd d Z dS)VarianceStdevMixinr"cCs6dddtddtdfD]}|||gdqdS)Nrg3@g%Brrz8.392rrr{r r r rsz$VarianceStdevMixin.test_single_valuecCsHdddtddtdfD]*}dD] }|g|}|||dq qdS) Nr rg@6gd}||}dfdd|D}||||dS)N) g{Gz?gRQ?g ףp= ?gRQ@gp= ף@gQ @rGgQ@gGz@gQ@gj@csg|] }|qSr r rshiftr r r"rz6VarianceStdevMixin.test_shift_data..)rrJr8rrr$r rr test_shift_datas  z"VarianceStdevMixin.test_shift_datacs>gd}||}dfdd|D}||||dS)N) rr}r}rrirr~rrriʚ;csg|] }|qSr r rrr r r"rz.r rr rr test_shift_data_exacts  z(VarianceStdevMixin.test_shift_data_exactcCs6ddtdD}||}||t||dS)NcSsg|]}tddqS)rrrr!r r r r"rz:VarianceStdevMixin.test_iter_list_same..r)r#rr4rrr r r test_iter_list_sames z&VarianceStdevMixin.test_iter_list_sameN) r,r-r.r(rrrrrrr r r r rs  rc@s4eZdZddZddZddZddZd d Zd S) TestPVariancecCs tj|_dSr@)r/ pvariancerr[r r r rszTestPVariance.setUpcCs0ttd}t|d}||||dS)Nr{gP_Ar_rr r r test_exact_uniforms  z TestPVariance.test_exact_uniformcCs"gd}d}||||dS)Nrrrmrg6@rr8r$exactr r r rszTestPVariance.test_intscCsXt}|dd|dd|dd|ddg}|dd}||}|||||tdS)Nrrr}rrrrr4assertIsInstancer8rr$rrtr r r rs $   zTestPVariance.test_fractionscCsNt}|d|d|d|dg}|d}||}|||||tdS)Nz12.1z12.2z12.5z12.9z0.096875rrr4rr8rr$rrtr r r rs   zTestPVariance.test_decimalsN)r,r-r.rrrrrr r r r rs  rc@s<eZdZddZddZddZddZd d Zd d Zd S) TestVariancecCs tj|_dSr@)r/variancerr[r r r r szTestVariance.setUpcCs6dddtddtdfD]}|tj|j|gqdS)Nrg333338@g(G!=Crrz4.2084rrrr/rrr{r r r rszTestVariance.test_single_valuecCs"gd}d}||||dS)Nrrrrr r r rszTestVariance.test_intscCsXt}|dd|dd|dd|ddg}|dd}||}|||||tdS)Nrrr}rrrrr r r rs $   zTestVariance.test_fractionscCsZt}|d|d|d|dg}d|d|d}||}|||||tdS)Nrrr~rz9.5r}rrr r r r#s   zTestVariance.test_decimalscCs0d}|||d||j|ddddS)Nrrrrrrxbarrrrr r r test_center_not_at_mean,sz$TestVariance.test_center_not_at_meanN) r,r-r.rrrrrrr r r r r s   rc@s$eZdZddZddZddZdS) TestPStdevcCs tj|_dSr@)r/Zpstdevrr[r r r r3szTestPStdev.setUpcCs8ddtdD}tt|}||||dS)NcSsg|]}tddqS)ir@rr!r r r r"8rz7TestPStdev.test_compare_to_variance..r)r#rsqrtr/rr4rrr r r test_compare_to_variance6sz#TestPStdev.test_compare_to_variancecCs0d}|||d||j|ddddS)N)r}rrrrr)murOrrr r r r<sz"TestPStdev.test_center_not_at_meanN)r,r-r.rrrr r r r r1src@s,eZdZddZddZddZddZd S) TestStdevcCs tj|_dSr@)r/stdevrr[r r r rDszTestStdev.setUpcCs6dddtddtdfD]}|tj|j|gqdS)NQgHzwi@gf7?+Brirz35.719rr{r r r rGszTestStdev.test_single_valuecCs8ddtdD}tt|}||||dS)NcSsg|]}tddqS)rhr~rr!r r r r"Nrz6TestStdev.test_compare_to_variance..r)r#rrr/rr4rrr r r rLsz"TestStdev.test_compare_to_variancecCsd}||j|ddddS)Nrrrrrrrr r r rRsz!TestStdev.test_center_not_at_meanN)r,r-r.rrrrr r r r rBsrc@s4eZdZddZddZddZddZd d Zd S) TestGeometricMeanc Cstj}||gdd||ddgd||dgdtdtdd tdd tdd td d d td d dgdddtd DddtdDddtdDf D]B}ttt |t dt |}||}| t |t |qdS)N)r_r@rB@rg"@g@g1@l;rrkrr{rr}r)rr^rmrixrcSsg|]}tdqS)I@r expovariaterrQr r r r"frz1TestGeometricMean.test_basics..cSsg|]}tddqS)rrJ)rlognormvariaterr r r r"grcSsg|]}tdddqS)r i)r triangularrr r r r"hrr)r/geometric_meanassertAlmostEqualrseedr#rprodrrrKreiscloser)r8rrngZ gm_decimalZgm_floatr r r rhXs$    zTestGeometricMean.test_basicscCstj}t}t}d}gddf|d|d|dgdf|dd |d d |d d gd fdd |d d gdfdtgddffD]2\}}||}|t|t||j||ddqxdS)Ngd@rjrmrnrorprqrrrrrrrrrt)rjrZruriZplaces) r/rrrrr/rrr)r8rrrrwr$rrxr r r test_various_input_typesns  z*TestGeometricMean.test_various_input_typescCstj}d}|d|d|d|g}|t|d||t|d}|d|d|d|g}|t|d|||ddS)Ngp~gK@g8@rgprY)r/rrerrrr%assertNotEqual)r8rZlargeZbig_gmZsmallZsmall_gmr r r test_big_and_smallsz$TestGeometricMean.test_big_and_smallcCstj}tj}|||gWdn1s40Y|||gdWdn1sj0Y|||gdWdn1s0Y|||tgWdn1s0Y|t|dWdn1s 0Y|t|gdWdn1sB0Y|t|Wdn1st0Y|t|gddWdn1s0YdS)N)rrYrk)rgrkryrzr{)r/rrrrrQ)r8rrr r r r|s$ & * * * ( , & z"TestGeometricMean.test_error_casescCstj}td}td}|t|d|gd|t|||gd|t|d|gd|t||| gWdn1s0YdSr}) r/rrrerrr%rr$)r8rrr~r r r rs z%TestGeometricMean.test_special_valuesN)r,r-r.rhrrr|rr r r r rVs rc@s4eZdZddZddZddZddZd d Zd S) TestQuantilesc stj}gd}t|dgfddgfdddgfdgd fd gd fd gd fdgdfdgdfdgdfdgdff D]P\}}|||||d|t|||d|dtttfD]D|t ||d}| fdd|D||t t |qt|dkr&||||d|t |}d|d|d}d|d|d}|||g} ||||d|| |dd||fdd} t t | |} |t | ||d} | t d dt| | Dqztdd!D]8} tjtd"| d#}||\}}}||t|qdS)$N)rr(rVi^rr@o@r}i@t@r)d@rt@ri)a@k@@r@u@r)^@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@rc3s|]}tt|kVqdSr@allrrZdatatyper r rrz4TestQuantiles.test_specific_cases..rrZrh inclusivermethodcSs d|dSNrg3333J@r r r r r rsz,TestQuantiles.test_specific_cases..fcss|]\}}t||VqdSr@rrrrRrr r r rrrrkk)r/ quantilesrrr4rKrrrrrerYrrrOr#choicesr()r8rr$rrrtZsdatalohiZ padded_datarexpactrq1q2q3r rr test_specific_casessN             z!TestQuantiles.test_specific_casesc s0tj}gd}t|dgfddgfdddgfdgd fd gd fd gd fdgdfdgdfdgdfdgdff D]\}}|||||dd|t|||dd|dtttfD]F|t ||dd}| fdd|D||t t |qdd}t t ||}|t |||dd}| t ddt ||Dqz||ddgdddgd||tdd dddgdd!d"td#D}||d$dd} |t||t|||d$d%}||| tdd&D]<} tjtd| d'}||dd(\} } } || t|qdS))N)rkr(ii rrr@r}ry@r)e@r@@ri)rrv@@r)b@rrr@r)g0a@rrgpw@rgP@r) g@`@rgg@rrrg{@rg@@r) g@_@rrrrrrrrrg@r`)rga@rgf@rrgq@rrrg~@rg@g@rrc3s|]}tt|kVqdSr@rrrr r r rz>TestQuantiles.test_specific_cases_inclusive..cSs d|dSrr r r r r r sz6TestQuantiles.test_specific_cases_inclusive..fcss|]\}}t||VqdSr@rrr r r r rrrk) $@rg>@gD@rgN@gQ@rgV@rcSsg|]}tdqS)r{)r randrangerr r r r" rz?TestQuantiles.test_specific_cases_inclusive..i rrrr)r/rrrr4rKrrrrrerYrrOr#rrdrrr()r8rr$rrrtrrrrrrrrr rr test_specific_cases_inclusivesP            z+TestQuantiles.test_specific_cases_inclusivecCsPtj}tddD]:}dg|}|||gd|||ddgdqdS)Nrrr)rrrrr)r/rr#r4)r8rrr$r r r test_equal_inputs s zTestQuantiles.test_equal_inputsc stj}d}ddt|Dtt|kr>tdqdD]:}||}| fdd||dDt t|||qJdD]\}||||d h}fd d||dD}d d t ||d dD}| ||kqdS) Nr{cSsg|]}tdqS)皙?rrr r r r"( rz9TestQuantiles.test_equal_sized_groups..r) rrrirrrrkr(rrrr7r{csg|]}t|qSr bisectrqrr r r"1 rr) rmr;mi;iisii)&rcsg|]}t|qSr rrrr r r"8 rcSsh|]\}}||qSr r )rprr r r 9 rz8TestQuantiles.test_equal_sized_groups..) r/rr#rKsetrrrsortr4rYrOre)r8rtotalrZ group_sizeZ group_sizesposZsizesr rr test_equal_sized_groups% s"z%TestQuantiles.test_equal_sized_groupscCstj}tj}|t|Wdn1s20Y|t"|gddddWdn1sn0Y|t|gddWdn1s0Y|| |gdddWdn1s0Y|| |gdddWdn1s0Y|t |gdddWdn1sX0Y|t |gddd Wdn1s0Y|||d gddWdn1s0Y|t |gd ddWdn1s 0YdS) N)rrrrmrrrrZrXrr)rNr)r/rrrrQr$)r8rrr r r r|< s( $ 0 , . 0 0 0 . zTestQuantiles.test_error_casesN)r,r-r.rrrrr|r r r r rs 66rc@seZdZddZddZddZddZd d Zd d Ze j d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%S)&TestNormalDistcCsV|jdd}|tt|Wdn1s60Y|t|jddS)NrUr)Z_muZ_sigma)r NormalDistrrQvarsr4rZ __slots__r8ndr r r test_slots\ s &zTestNormalDist.test_slotscCs|jdd}||jd||jd||jd|j}||jd||jd||jd||jj|jddWdn1s0YGddd|jj}|d d }|t||dS) Nrr^i!rric@s eZdZdS)zGTestNormalDist.test_instantiation_and_attributes..NewNormalDistNr+r r r r NewNormalDists srr(ri) rrr4rrrrrr)r8rrnndr r r !test_instantiation_and_attributesb s , z0TestNormalDist.test_instantiation_and_attributescCs|jj}gd}||||dd||t||dd||t||dd||jj|gWdn1s0Y||jj|dgWdn1s0YGddd|}||}|t||dS)N)`rjZrnrr~rc@s eZdZdS)zBTestNormalDist.test_alternative_constructor..NewNormalDistNr+r r r r r sr) rrr4Z from_samplesrZrrrr)r8rr$rrr r r test_alternative_constructorx s(* z+TestNormalDist.test_alternative_constructorc Cs|jj}d\}}|||}d}||}|t|||ttt|th|j |}| ||d|ko||dknd}|j|dd}|j|dd} |j|dd} |j|dd} ||| || | | || dS)N)r{rJrrrkzhappiness and joy)rztrouble and despair) rrZsamplesr4rKrrrrrrer) r8rrsigmarrr$rZdata1Zdata2Zdata3Zdata4r r r test_sample_generation s"   .  z%TestNormalDist.test_sample_generationc Cs|jj}|dd}||d|d||d|dtdD]$}||d||d|qJd}tddD]6}||||||}|j|||d d q~|}tgd D]>\}}|j||d |d d |j|| d |d d q|dd } ||jj | dWdn1sB0Y| |t dd| |t dd| t |t ddS)Nrkr`rrrgP?rr$rr)2+ݓ?r r ggDio?g ?gV}b?gQ|?gFx?ggs?g٬\m?g rh?gK7A`?g|гY?g Q?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-InfrYr~r)rrZ assertLesspdfr#rcdfrNrrr4rrerr) r8rrrQdxr Zest_pdfZZpxYr r r test_pdf s(  "  *zTestNormalDist.test_pdfcs6|jj}|ddfddtddD}|ttt|th||t|| dd|}dD]:\}}|j | ||d d |j | | d |d d qn|dd }| |jj | d Wdn1s0Y| tdd| tdd | t tddS)Nrkr`csg|]}|qSr )rrrr r r" rz+TestNormalDist.test_cdf..rr(r))rYr)rgqZ ?)rgE_A?)gQ?gGɫs ?)g(\?g؞Y?)gQ?g9#?)gHzG?g&S?)rsgMbX9?)gQ?gT㥛 ?)g?g??)gffffff@g_xZ?)gQ@g#0?)g)\( @gu?gE@i3rrr(rirYrg?rr)rrr4Zinv_cdfritemsrNrr#rrrrerrr) r8rZiqrpprrowrr rrrRr r r test_inv_cdf sL    **** *zTestNormalDist.test_inv_cdfcCsh|j}dgfddgfdddgfdgdffD]2\}}|j|d }|td d t||Dq0dS) NrrrYr}gǘۿgǘ?r)g/$rYg/$?rcss"|]\}}tj||ddVqdS)r)Zabs_tolNrrr r r r3 sz0TestNormalDist.test_quantiles..)rrrrerrO)r8rrrrr r r test_quantiles) s     zTestNormalDist.test_quantilescCs|jj}|dd|dddf|dd|dddffD]6\}}}|j|||dd|j|||ddq4dd d d d }|dd|ddf|dd|ddf|dd|ddf|d d|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddf|dd|ddffD]B\}}|j|||||d d|j|||||d dq||}|t|Wdn1s0Y|t|||Wdn1s(0Y|t|dWdn1s^0Y||jj ||ddWdn1s0Y||jj |dd|Wdn1s0YdS) NrYrrrgɎ@?gM-[닄?rri ri)stepsrc stj}|j|jd}|t|j|j}||d||fddt|D}tt|j|}tt|j|} t|||| } |tt || | S)Nrrcsg|]}|qSr r rrrr r r"I rzHTestNormalDist.test_overlap..overlap_numeric..) rrrrrr#rYrrrd) rrrrrcenterwidthZx_arrZxpZyprr r r overlap_numericB s z4TestNormalDist.test_overlap..overlap_numericr{Arrkr`r rirrrgjt?g~jth?gjt?ga2U0*3?gMbX?rr)rrrZoverlaprrQr)r8rZX1ZX2Zpublished_resultr#rr r r test_overlap6 sF   ( , *0zTestNormalDist.test_overlapcCs(|jj}|dd}||dd||dd||dd|t|Wdn1sp0Y|t|ddWdn1s0Y|t|dWdn1s0Y||jj |dd dWdn1s0YdS) Nrkr`gffffff@:gffffffrYrr)rrr4ZzscorerrQr)r8rrr r r test_zscoreu s  & * (zTestNormalDist.test_zscorecCsX|jdd}||jd||jd||jd||jd||jddS)Nrkr`)rrr4rr(r\rr)r8rr r r test_properties s zTestNormalDist.test_propertiescCsL|jj}|dd}|dd}||||dd||||dddS)Nrkrrnrirmr)rrr4r8rrrr r r 'test_same_type_addition_and_subtraction s   z6TestNormalDist.test_same_type_addition_and_subtractioncCs|jj}|dd}d}|| |dd|| |dd||||dd||||dd||||dd||||dd||||dd ||||dd ||||dd |t||Wdn1s0YdS) Nrkr`rrr rirr%r)rrr4rrQ)r8rrr&r r r test_translation_and_scaling s  z+TestNormalDist.test_translation_and_scalingcCs||jj}|dd}| }|||||j|j||j|j| }|||||j|j ||j|jdS)Nrkr)rrZ assertIsNotr4rrr-r r r test_unary_operations s   z$TestNormalDist.test_unary_operationscCs"|jj}|}|dd}|}|dd}|dd}|dd}|||||||||||||||Gddd}|} ||| t||| kd|| |kdGddd|} | d d d } |d d }|| |Gd d d } | d d } |d d }||| dS)Nrrrc@seZdZddZdS)z'TestNormalDist.test_equality..AcSsdSrr rhr r r __eq__ sz.TestNormalDist.test_equality..A.__eq__N)r,r-r.r1r r r r rK srKrcseZdZfddZZS)z5TestNormalDist.test_equality..SizedNormalDistcst||||_dSr@)rf__init__r)r8rr rrir r r2 sz>TestNormalDist.test_equality..SizedNormalDist.__init__)r,r-r.r2rkr r rir SizedNormalDist sr3rkr`9c@seZdZddZdS)z3TestNormalDist.test_equality..LognormalDistcSs||_||_dSr@)rr )r8rr r r r r2 sz.LognormalDist.__init__N)r,r-r.r2r r r r LognormalDist sr5)rrrr4r1NotImplemented)r8rnd1nd2nd3Znd4Znd5Znd6rKrr3sr5Zlndrr r r test_equality s2              zTestNormalDist.test_equalitycCsZ|jdd}t|}|||t|}|||tt|}|||dS)NB@@)rrcopyr4deepcopypickleloadsdumps)r8rr7r8r9r r r test_pickle_and_copy s    z#TestNormalDist.test_pickle_and_copycCsH|jj}|dd|dd|dd|dd|ddh}|t|ddS)Nrkr`rg.@rrcr})rrr4rK)r8ZNDr:r r r test_hashability s,zTestNormalDist.test_hashabilitycCs"|jdd}|t|ddS)Nr<r=z NormalDist(mu=37.5, sigma=5.625))rrr4reprrr r r test_repr szTestNormalDist.test_reprN)r,r-r.rrr r rrrZskip_if_pgo_taskrrr&r)r+r.r/r0r;rCrDrFr r r r rS s& ' @ ? , rc@s eZdZeZddZddZdS)TestNormalDistPythoncCs|jtjd<dSr2rr modulesr[r r r r szTestNormalDistPython.setUpcCsttjd<dSr2r/r rIr[r r r tearDown szTestNormalDistPython.tearDownN)r,r-r.r6rrrKr r r r rG srGr:c@s eZdZeZddZddZdS)TestNormalDistCcCs|jtjd<dSr2rHr[r r r r szTestNormalDistC.setUpcCsttjd<dSr2rJr[r r r rK szTestNormalDistC.tearDownN)r,r-r.r;rrrKr r r r rL srLcCs|t|Sr@)ZaddTestsrZ DocTestSuite)loaderZtestsignorer r r load_tests srO__main__)r"r#)NrrAcollections.abcr>rrrr@rr r=testrrrrrr/r rr!r)r*Zimport_fresh_moduler6r;rr1r?rXr]rsrrrrrrrrrr3r>rDr_rpr~rrrrrrrrrrr&r6r7r:r;r[rfrirrrrrrrrrGr>rLrOr,mainr r r r s     :+ _ >@w-@4d>c' H @`d9 r: 1B%'Y%!