Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_statistics.cpython-38.opt-2.pyc
U

>��g���@s<ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddlm
Z
ddlmZddlmZddlZdd�Zdd�Zd	d
�Zdud
d�ZGdd�d�Zejddgd�Zejddgd�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd �d e
j�ZGd!d"�d"e
j�Z Gd#d$�d$e
j�Z!Gd%d&�d&e
j�Z"Gd'd(�d(e
j�Z#Gd)d*�d*e
j�Z$Gd+d,�d,e
j�Z%Gd-d.�d.e
j�Z&Gd/d0�d0e
j�Z'Gd1d2�d2e
j�Z(Gd3d4�d4e
j�Z)Gd5d6�d6e
j�Z*Gd7d8�d8e
j�Z+Gd9d:�d:e
j�Z,Gd;d<�d<�Z-Gd=d>�d>�Z.Gd?d@�d@e-e.�Z/GdAdB�dBe�Z0GdCdD�dDe�Z1GdEdF�dFe�Z2GdGdH�dHe-�Z3GdIdJ�dJee3e.�Z4GdKdL�dLee3e.�Z5GdMdN�dNee3�Z6GdOdP�dPee.�Z7GdQdR�dRe6e.�Z8GdSdT�dTe6e.�Z9GdUdV�dVe6�Z:GdWdX�dXee3e.�Z;GdYdZ�dZe
j�Z<Gd[d\�d\e
j�Z=Gd]d^�d^e-�Z>Gd_d`�d`e>ee.�Z?Gdadb�dbe>ee.�Z@Gdcdd�dde>e�ZAGdedf�dfe>e�ZBGdgdh�dhe
j�ZCGdidj�dje
j�ZDGdkdl�dl�ZEGdmdn�dne
jeE�ZFe
�Gedo�Gdpdq�dqe
jeE��ZHdrds�ZIeJdtk�r8e
�K�dS)v�N)�support)�Decimal��FractioncCst�d|�S)N�)�math�copysign��x�r�3/opt/cppython/lib/python3.8/test/test_statistics.py�signsr
cCsZt|�t|�k	rdSt|t�r2t�|�o0t�|�S|��d}|��d}||koX|dkS)NF�)�n�N)�type�
isinstance�floatr�isnanZas_tuple)�a�bZaexpZbexprrr�
_nan_equal"s
rcCs:tt|�t|��}t||�}|r*||ntd�}||fS�N�inf)�max�absr)�actual�expected�base�abs_err�rel_errrrr�_calc_errorsAs
r!��-���q=�H�����z>cCs�|dks|dkrtd��t�|�s,t�|�r0dS||kr<dSt�|�sPt�|�rTdSt||�}t||tt|�t|���}||kS)Nrz%error tolerances must be non-negativeFT)�
ValueErrorrr�isinfrr)r
�y�tol�relZactual_errorZ
allowed_errorrrr�approx_equalQs"r)c@seZdZdS)�
_DoNothingN��__name__�
__module__�__qualname__rrrrr*�s$r*�
statistics�_statistics)Zblocked)Zfreshc@s.eZdZdgZdd�Ze�ed�dd��ZdS)�TestModulesZ_normal_dist_inv_cdfcCs$|jD]}|�tt|�jd�qdS�Nr/)�
func_names�assertEqual�getattr�
py_statisticsr-��selfZfnamerrr�test_py_functions�s
zTestModules.test_py_functions�requires _statisticscCs$|jD]}|�tt|�jd�qdS)Nr0)r3r4r5�c_statisticsr-r7rrr�test_c_functions�s
zTestModules.test_c_functionsN)	r,r-r.r3r9�unittest�
skipUnlessr;r<rrrrr1�s
r1c@s<eZdZdZZddd�Zdd�Zddd�Zed	d
��Z	dS)
�NumericTestCaserNcCsZ|dkr|j}|dkr|j}t|tjj�r@t|tjj�r@|j}n|j}||||||�dS�N)r'r(r�collections�abc�Sequence�_check_approx_seq�_check_approx_num)r8�first�secondr'r(�msg�checkrrr�assertApproxEqual�s��z!NumericTestCase.assertApproxEqualc
	Csnt|�t|�kr:dt|�t|�f}|�||�}|�|��tt||��D] \}\}}	|�||	||||�qHdS)Nz0sequences differ in length: %d items != %d items)�len�_formatMessage�failureException�	enumerate�ziprE)
r8rFrGr'r(rH�standardMsg�ir�errrrD�s��
z!NumericTestCase._check_approx_seqcCs>t||||�rdS|�|||||�}|�||�}|�|��dSr@)r)�_make_std_err_msgrLrM)r8rFrGr'r(rH�idxrPrrrrEs
z!NumericTestCase._check_approx_numc	Cs>d}|dk	rd|}||}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(rT�template�headerrr rrrrSs�z!NumericTestCase._make_std_err_msg)NNN)N)
r,r-r.r'r(rJrDrE�staticmethodrSrrrrr?�s�
,
	r?c@seZdZdd�ZdS)�TestSigncCs$|�td�d�|�td�d�dS)N�rg����)r4r
�r8rrr�
testZeroes(szTestSign.testZeroesN)r,r-r.r\rrrrrX&srXc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ApproxEqualSymmetryTestcCsTdddtd�tdd�g}ddd	td
�tdd�g}t||�D]\}}|�||�q:dS)Ni�	gfffff�B@gfffff�(�z2.54��6i�	g������B@gR����(�z2.59�)rrrO�do_relative_symmetry)r8Zargs1Zargs2rrrrr�test_relative_symmetry3s
z.ApproxEqualSymmetryTest.test_relative_symmetrycCstt||�t||�}}||}t||�t||�}}||d}|�t||d|d��|�t||d|d��dS)Nrr�r'r()�minrr�
assertTruer))r8rr�deltaZrel_err1Zrel_err2r(rrrraCsz,ApproxEqualSymmetryTest.do_relative_symmetrycCsdddddg}d}|D]�}ttttfD]�}||�d}||}t|t||��}|j||||d�|j|||d	d|d�|j|||d	|dd�|j||||dd�|j|||d	|d�|j|||d	d|d�|j||d
d
d�|j||d
d
d�q&qdS)N��������ki�mr�drcrr)�intrrrrr�do_symmetry_test)r8�argsrfr�type_r
r&�rrrr�
test_symmetryOsz%ApproxEqualSymmetryTest.test_symmetryc
Cs@d}t||||�}t||||�}|�|||�||||f��dS)Nz+approx_equal comparisons don't match for %r)r)r4�format)r8rrr'r(rUZflag1Zflag2rrrrmgsz(ApproxEqualSymmetryTest.do_symmetry_testN)r,r-r.rbrarqrmrrrrr]0sr]c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�ApproxEqualExactTestcCsJt||||d�}|�|d|�t||||d�}|�|d|�dS)Nrczequality failure for x=%r)r)re)r8r
r'r(�resultrrr�do_exactly_equal_testtsz*ApproxEqualExactTest.do_exactly_equal_testcCsdD]}|�|dd�qdS)N)�*iMi~:��iiU�
i�r�ru�r8rrrr�test_exactly_equal_intszsz,ApproxEqualExactTest.test_exactly_equal_intscCsdD]}|�|dd�qdS)N)g�z�G��?g/�$���?g�����e�@g7@gpf@g!�rh��Q@gB`��"KB@rrx�r8r
rrr�test_exactly_equal_floatssz.ApproxEqualExactTest.test_exactly_equal_floatscCsNt}|dd�|d�|dd�|dd�|dd	�|dd�fD]}|�|dd�q6dS)
Nrrrri��	��#�$)rru�r8�F�frrr�test_exactly_equal_fractions�s6z1ApproxEqualExactTest.test_exactly_equal_fractionscCs*t}t|d���D]}|�|dd�qdS)Nz8.2 31.274 912.04 16.745 1.2047r)r�map�splitru)r8�D�drrr�test_exactly_equal_decimals�sz0ApproxEqualExactTest.test_exactly_equal_decimalscCsFdD]<}|�|dd�|�|ddd�t|d�}|�|dd�qdS)N)�i�i\i�i���{�G�z�?r�
i�)rur)r8rr�rrr�test_exactly_equal_absolute�s

z0ApproxEqualExactTest.test_exactly_equal_absolutecCs2|�td�td�d�|�td�td�d�dS)Nz3.571�0.01rz81.3971)rurr[rrr�$test_exactly_equal_absolute_decimals�sz9ApproxEqualExactTest.test_exactly_equal_absolute_decimalscCs@dddtdd�fD]}|�|dd�q|�td�dtd	��dS)
Ni� g33333SY@g�z�G�ri�rr�z11.68r��rrurr{rrr�test_exactly_equal_relative�sz0ApproxEqualExactTest.test_exactly_equal_relativecCsHdddtdd�fD]}|�|dd�qt}|�|d�|d	�|d
��dS)Ni9�gˡE��0@g\��(h��r}�皙�����?r�z7.2z0.1r�r�)r8r
r�rrr�test_exactly_equal_both�sz,ApproxEqualExactTest.test_exactly_equal_bothN)r,r-r.rurzr|r�r�r�r�r�r�rrrrrsnsrsc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�ApproxEqualUnequalTestcCs8||fD](}t||dddd�}|�|d|�q
dS)Nrrrczinequality failure for x=%r)r)�assertFalse)r8r
rrtrrr�do_exactly_unequal_test�sz.ApproxEqualUnequalTest.do_exactly_unequal_testcCsdD]}|�|�qdS)N)i�i��i�i�iXC�r�ryrrr�test_exactly_unequal_ints�sz0ApproxEqualUnequalTest.test_exactly_unequal_intscCsdD]}|�|�qdS)N)g��Q�#@g����[�@gfffff�G@gףp=
W"@g=
ףp=1@r�r{rrr�test_exactly_unequal_floats�sz2ApproxEqualUnequalTest.test_exactly_unequal_floatscCs<t}|dd�|dd�|dd�|dd�fD]}|�|�q(dS)	Nrrirr~���eiς)rr�r�rrr�test_exactly_unequal_fractions�s(z5ApproxEqualUnequalTest.test_exactly_unequal_fractionscCs"ttd���D]}|�|�qdS)Nz!3.1415 298.12 3.47 18.996 0.00245)r�rr�r��r8r�rrr�test_exactly_unequal_decimals�sz4ApproxEqualUnequalTest.test_exactly_unequal_decimalsN)r,r-r.r�r�r�r�r�rrrrr��s
r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�ApproxEqualInexactTestc	Csbd}||||fD]H}|�||�}|�t||d|dd�|�|�t|||ddd�|�qdS)N�Test failure for x={!r}, y={!r}rrrc�rrrer)r��r8r
rfrUr&rHrrr�do_approx_equal_abs_test�s
z/ApproxEqualInexactTest.do_approx_equal_abs_testcCs&dD]}|�|d�|�|d�qdS)N)i��iI���i����rhrrr~�%i�i�&i6�jr�r�r�ryrrr�test_approx_equal_absolute_ints�sz6ApproxEqualInexactTest.test_approx_equal_absolute_intscCs2dD](}|�|d�|�|d�|�|d�qdS)N)	g�t��q�gfffffFX�g333333�g333333���?��?g333333@g�Q���@g�����ҭ@��?r��-C��6?r�r{rrr�!test_approx_equal_absolute_floats�sz8ApproxEqualInexactTest.test_approx_equal_absolute_floatscCsXtdd�}dddddddd	d
ddg}d
d�|D�D] }|�||�|�|t|��q2dS)Nr�i������rhrZrrir^��"�Gcss|]}t|d�VqdS)r�Nr)�.0rrrr�	<genexpr>�szNApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>)rr�r)r8rf�
numeratorsr�rrr�$test_approx_equal_absolute_fractions�s

z;ApproxEqualInexactTest.test_approx_equal_absolute_fractionscCs:td�}ttd���D]}|�||�|�||�qdS)Nr�z1.0 3.5 36.08 61.79 7912.3648)rr�r�r�)r8rfr�rrr�#test_approx_equal_absolute_decimals�sz:ApproxEqualInexactTest.test_approx_equal_absolute_decimalscCs|�tddddd��dS)Ng�h㈵��>g�h㈵��r�rrc)rer)r[rrr�test_cross_zero�sz&ApproxEqualInexactTest.test_cross_zeroc	Csjd}|d||d|fD]H}|�||�}|�t||dd|d�|�|�t||d|dd�|�qdS)Nr�rrrrcr�r�rrr�do_approx_equal_rel_test�s
z/ApproxEqualInexactTest.do_approx_equal_rel_testcCsr|�tddddd��|�tddddd��|�tdddd	d��|�td
ddd	d��|�tdddd	d��dS)N�@�/rg
ףp=
�?rcg�G�z��?i�i��?i�i�)rer)r�r[rrr�test_approx_equal_relative_intss
z6ApproxEqualInexactTest.test_approx_equal_relative_intscCs&dD]}|�|d�|�|d�qdS)N)g{�G�Jf�皙������r�r�g\��(|B@g��ʡE>�@g��x��@�{�G�z�?r�)r�r{rrr�!test_approx_equal_relative_floatssz8ApproxEqualInexactTest.test_approx_equal_relative_floatscCsht}tdd�}|dd�|dd�|dd�|dd	�fD]0}|t|�fD]}|�||�|�||�qBq2dS)
Nr}r��Tr^��1�2�\�U)rrr�)r8r�rfr�r�rrr�$test_approx_equal_relative_fractionss
(z;ApproxEqualInexactTest.test_approx_equal_relative_fractionscCs:ttd���D]&}|�|td��|�|td��qdS)Nz$0.02 1.0 5.7 13.67 94.138 91027.9321�0.001�0.05)r�rr�r�r�rrr�#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||||d��dS)Nrrc)rer�r))r8rrr'r(Ztol_flagZrel_flagrIrrr�
do_check_both)sz$ApproxEqualInexactTest.do_check_bothcCs,|�dddddd�|�dddd	dd�dS)
N�R����@�+���@���Mbp?���W�8?Tg?5^�I��g%��C�����Mb`?g-C��6*?�r�r[rrr�test_approx_equal_both11sz.ApproxEqualInexactTest.test_approx_equal_both1cCs|�dddddd�dS)Nr�r�r�gV�F�?8?TFr�r[rrr�test_approx_equal_both26sz.ApproxEqualInexactTest.test_approx_equal_both2cCs|�dddddd�dS)Nr�r����MbP?r�FTr�r[rrr�test_approx_equal_both3:sz.ApproxEqualInexactTest.test_approx_equal_both3cCs,|�dddddd�|�dddd	dd�dS)
Ng=
ףp=@�@r�r�Fg�Q��[�@g�(\��[�@r�giUMu�>r�r[rrr�test_approx_equal_both4>sz.ApproxEqualInexactTest.test_approx_equal_both4N)r,r-r.r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr��s 		r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ApproxEqualSpecialsTestcCs�ttfD]z}|d�}|�t||��|�t||dd��|�t||dd��|�t||��|�t||��|�t|d��qdS)Nrrrr���)rrrer)r�)r8rorrrr�test_infGsz ApproxEqualSpecialsTest.test_infcCs>ttfD]0}|d�}||d�dfD]}|�t||��q"qdS)N�nanrr�)rrr�r))r8ror��otherrrr�test_nanQsz ApproxEqualSpecialsTest.test_nancCs&t�dd�}|�t|dddd��dS)NrYrZr�rc)rrrer)�r8Znzerorrr�test_float_zeroesWsz)ApproxEqualSpecialsTest.test_float_zeroescCs&td�}|�t|td�ddd��dS)Nz-0.0rr�rc)rrer)r�rrr�test_decimal_zeroes[sz+ApproxEqualSpecialsTest.test_decimal_zeroesN)r,r-r.r�r�r�r�rrrrr�Ds
r�c@seZdZdd�Zdd�ZdS)�TestApproxEqualErrorscCs|�ttdddd�dS)NrkrZr���assertRaisesr$r)r[rrr�test_bad_tolcsz"TestApproxEqualErrors.test_bad_tolcCs|�ttdddd�dS)Nrkrr�r�r[rrr�test_bad_relgsz"TestApproxEqualErrors.test_bad_relN)r,r-r.r�r�rrrrr�`sr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestNumericTestCasecCs.tj|�}|j|�}|D]}|�||�qdSr@)r?rS�generate_substringsZassertIn)r8rnZ
actual_msgrZ	substringrrr�do_testws

zTestNumericTestCase.do_testcCs|�tttj��dSr@)re�
issubclassr?r=�TestCaser[rrr� test_numerictestcase_is_testcase}sz4TestNumericTestCase.test_numerictestcase_is_testcasecCsd}|�|�dS)N)�@�@r���?N�r��r8rnrrr�test_error_msg_numeric�sz*TestNumericTestCase.test_error_msg_numericcCsd}|�|�dS)N)�@g� @g�?r�rr�r�rrr�test_error_msg_sequence�sz+TestNumericTestCase.test_error_msg_sequencec	CsDt||�\}}d|d|d|d|g}|dk	r@|�d|�|S)Nztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r!�append)	r8rFrGr'r(rTrr Z
substringsrrrr��s�z'TestNumericTestCase.generate_substringsN)r,r-r.r�r�r�r�r�rrrrr�qs
r�c@s(eZdZeZddgZdd�Zdd�ZdS)�GlobalsTest�__doc__�__all__cCs(|jD]}|�t|j|�d|�qdS)Nz%s not present)�expected_metadatare�hasattr�module)r8�metarrr�	test_meta�s
�zGlobalsTest.test_metacCsB|j}|jD]0}|�|�d�d|�|�t||�d|�qdS)N�_zprivate name "%s" in __all__zmissing name "%s" in __all__)r�r�r��
startswithrer�)r8r��namerrr�test_check_all�s
��zGlobalsTest.test_check_allN)r,r-r.r/r�r�r�rrrrrr��sr�c@s(eZdZe�ejjdkd�dd��ZdS)�DocTestsrz)Docstrings are omitted with -OO and abovecCs0tjttjd�\}}|�|d�|�|d�dS)N)Zoptionflagsr)�doctest�testmodr/�ELLIPSIS�
assertGreaterr4)r8ZfailedZtriedrrr�test_doc_tests�szDocTests.test_doc_testsN)	r,r-r.r=ZskipIf�sys�flags�optimizer	rrrrr�s�rc@seZdZdd�ZdS)�StatisticsErrorTestcCs4d}|�ttd��|�ttjt�|tjj�dS)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.�StatisticsError)rer�r/r�rr$�__base__)r8�errmsgrrr�test_has_exception�s�

�z&StatisticsErrorTest.test_has_exceptionN)r,r-r.rrrrrr
�sr
c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�ExactRatioTestcCs$dD]}|�t�|�|df�qdS)N)i�����rri�cl F�x:^Vr)r4r/�_exact_ratio)r8rQrrr�test_int�szExactRatioTest.test_intcCs2d}|D]$}t|d�}|�t�|�|df�qdS)N)���rr��&r�)rr4r/r)r8r�rr�rrr�
test_fraction�s
zExactRatioTest.test_fractioncCsb|�t�d�d�|�t�d�d�dd�td�D�}|D]"}t�|�\}}|�|||�q:dS)Nr��rr���?)r~r�cSsg|]}t�dd��qS)���rk��random�uniform�r�rrrr�
<listcomp>�sz-ExactRatioTest.test_float.<locals>.<listcomp>rk)r4r/r�range)r8�datar
�num�denrrr�
test_float�szExactRatioTest.test_floatcCsJt}tj}|�||d��d�|�||d��d�|�||d��d�dS)Nz0.125rz12.345)i�	��z-1.98)i����r�)rr/rr4)r8r�rrrr�test_decimal�s
zExactRatioTest.test_decimalcCs�td�}Gdd�dt�}Gdd�dt�}||fD]`}t|t|fD]N}||�}t�|�}|�||df�|�t|d�|�|�t�|d��qBq2dS)N�INFc@seZdZdS)z(ExactRatioTest.test_inf.<locals>.MyFloatNr+rrrr�MyFloat�sr*c@seZdZdS)z*ExactRatioTest.test_inf.<locals>.MyDecimalNr+rrrr�	MyDecimal�sr+r)	rrr/rr4rrerr%)r8r)r*r+rror
�ratiorrrr��s
zExactRatioTest.test_infcCsttd�}Gdd�dt�}|||�fD]J}t�|�}|�t�|d��|�|dd�|�t|d�t|��q$dS)N�NANc@seZdZdS)z.ExactRatioTest.test_float_nan.<locals>.MyFloatNr+rrrrr*�sr*rr)	rr/rrerr�assertIsr4r)r8r-r*r�r,rrr�test_float_nan�s
zExactRatioTest.test_float_nancCs�td�}td�}Gdd�dt�}|||�|||�fD]J}t�|�}|�t|d|��|�|dd�|�t|d�t|��q4dS)Nr-�sNANc@seZdZdS)z2ExactRatioTest.test_decimal_nan.<locals>.MyDecimalNr+rrrrr+sr+rr)rr/rrerr.r4r)r8r-r0r+r�r,rrr�test_decimal_nan�s
zExactRatioTest.test_decimal_nanN)
r,r-r.rrr&r(r�r/r1rrrrr�s
rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�DecimalToRatioTestcCs<td�}|�t�|�|df�|�t�|�|df�dS)Nr))rr4r/r)r8rrrr�
test_infinitysz DecimalToRatioTest.test_infinitycCsDtd�td�fD].}t�|�\}}|�t||��|�|d�qdS)Nr-r0)rr/rrerr.)r8r�r$r%rrrr�szDecimalToRatioTest.test_nancCsltd�td�g}|D]R}t�|�\}}|�|d�|�|d�t�|�\}}|�|d�|�|d�qdS)Nz	9.8765e12z
9.8765e-12r)rr/r�assertGreaterEqualrZassertLessEqual)r8Znumbersr�r$r%rrr�	test_signszDecimalToRatioTest.test_signcCst�td��}|�|d�dS)Nz0.1234)ii��r/rrr4�r8�trrr�test_negative_exponent,sz)DecimalToRatioTest.test_negative_exponentcCst�td��}|�|d�dS)Nz1.234e7)i K�rr7r8rrr�test_positive_exponent1sz)DecimalToRatioTest.test_positive_exponentcCs8t�td��}|�|d�t�td��}|�|d�dS)NZ1e2)rkrz1.47e5)i8>rr7r8rrr�test_regression_205366sz(DecimalToRatioTest.test_regression_20536N)	r,r-r.r3r�r5r:r;r<rrrrr2s
r2c@s$eZdZdd�Zdd�Zdd�ZdS)�IsFiniteTestcCs0dtdd�dtd�fD]}|�t�|��qdS)Nrirr}r��5.5)rrrer/�	_isfiniter{rrr�test_finiteBszIsFiniteTest.test_finitecCs*td�td�fD]}|�t�|��qdSr�rrr�r/r?r{rrrr3GszIsFiniteTest.test_infinitycCs0td�td�td�fD]}|�t�|��qdS�Nr�r-r0rAr{rrrr�LszIsFiniteTest.test_nanN)r,r-r.r@r3r�rrrrr=?sr=c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�
CoerceTestcCsNttttfD]<}|�t�|t�|�Gdd�d|�}|�t�|t�|�qdS)Nc@seZdZdS)z%CoerceTest.test_bool.<locals>.MyClassNr+rrrr�MyClassmsrD)rlrrrr.r/�_coerce�bool)r8�TrDrrr�	test_boolgszCoerceTest.test_boolcCs,|�t�||�|�|�t�||�|�dSr@)r.r/rE�r8�A�Brrr�assertCoerceTopszCoerceTest.assertCoerceTocCsT|�||�Gdd�d|�}|�||�Gdd�d|�}|�||�|�||�dS)Nc@seZdZdS)z/CoerceTest.check_coerce_to.<locals>.SubclassOfANr+rrrr�SubclassOfAzsrMc@seZdZdS)z/CoerceTest.check_coerce_to.<locals>.SubclassOfBNr+rrrr�SubclassOfB}srN)rL)r8rJrKrMrNrrr�check_coerce_touszCoerceTest.check_coerce_tocCs,|�ttj||f�|�ttj||f�dSr@)r��	TypeErrorr/rErIrrr�assertCoerceRaises�szCoerceTest.assertCoerceRaisescCs�|�t�||�|�Gdd�d|�}Gdd�d|�}Gdd�d|�}|||fD]}|�||�qN|�||�|�||�|�||�dS)Nc@seZdZdS)z*CoerceTest.check_type_coercions.<locals>.UNr+rrrr�U�srRc@seZdZdS)z*CoerceTest.check_type_coercions.<locals>.VNr+rrrr�V�srSc@seZdZdS)z*CoerceTest.check_type_coercions.<locals>.WNr+rrrr�W�srT)r.r/rErLrQ)r8rGrRrSrT�typrrr�check_type_coercions�szCoerceTest.check_type_coercionscCs*|�t�tttfD]}|�t|�qdSr@)rVrlrrrrO)r8rUrrrr�s
zCoerceTest.test_intcCs|�t�|�tt�dSr@)rVrrOrr[rrrr�s
zCoerceTest.test_fractioncCs|�t�dSr@)rVrr[rrrr(�szCoerceTest.test_decimalcCs|�t�dSr@)rVrr[rrrr&�szCoerceTest.test_floatcCs:tttd�ttfD]"}ttttfD]}|�	||�q"qdSr@)
�str�listr�tuple�dictrlrrrrQ)r8Zbad_typeZ	good_typerrr�test_non_numeric_types�sz!CoerceTest.test_non_numeric_typescCs:ttfD],}Gdd�d|�}|�|t�|�|t�qdS)Nc@seZdZdS)z6CoerceTest.test_incompatible_types.<locals>.MySubclassNr+rrrr�
MySubclass�sr\)rrrQr)r8rGr\rrr�test_incompatible_types�sz"CoerceTest.test_incompatible_typesN)r,r-r.rHrLrOrQrVrrr(r&r[r]rrrrrCRs	rCc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�ConvertTestcCs$|�||�|�t|�t|��dSr@)r4r.r)r8r
r&rrr�check_exact_equal�szConvertTest.check_exact_equalcCsPt�td�t�}|�|d�Gdd�dt�}t�td�|�}|�||d��dS)Nr�c@seZdZdS)z#ConvertTest.test_int.<locals>.MyIntNr+rrrr�MyInt�sr`r^)r/�_convertrrlr_)r8r
r`rrrr�s
zConvertTest.test_intcCs\t�tdd�t�}|�|tdd��Gdd�dt�}t�tdd�|�}|�||dd��dS)N�_rcseZdZ�fdd�Z�ZS)z-ConvertTest.test_fraction.<locals>.MyFractioncs|�t��|��Sr@��	__class__�super�__truediv__�r8r��rdrrrf�sz9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__�r,r-r.rf�
__classcell__rrrhr�
MyFraction�srkr��
)r/rarr_)r8r
rkrrrr�s
zConvertTest.test_fractioncCsTt�tdd�t�}|�|d�Gdd�dt�}t�tdd�|�}|�||d��dS)	NrZrg�cseZdZ�fdd�Z�ZS)z'ConvertTest.test_float.<locals>.MyFloatcs|�t��|��Sr@rcrgrhrrrf�sz3ConvertTest.test_float.<locals>.MyFloat.__truediv__rirrrhrr*�sr*r~r�r)r/rarrr_)r8r
r*rrrr&�s
zConvertTest.test_floatcCsXt�tdd�t�}|�|td��Gdd�dt�}t�tdd�|�}|�||d��dS)	Nr�(z0.025cseZdZ�fdd�Z�ZS)z+ConvertTest.test_decimal.<locals>.MyDecimalcs|�t��|��Sr@rcrgrhrrrf�sz7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__rirrrhrr+�sr+r�r�z-0.9375)r/rarrr_)r8r
r+rrrr(�s
zConvertTest.test_decimalcCsFtd�td�fD]0}||fD] }t�|t|��}|�||�qqdSr)rrr/rarr_)r8r)rr
rrrr��szConvertTest.test_infcCs@td�td�td�fD]$}t�|t|��}|�t||��qdSrB)rrr/rarrer)r8r�r
rrrr��szConvertTest.test_nanN)
r,r-r.r_rrr&r(r�r�rrrrr^�s


r^c@s$eZdZdd�Zdd�Zdd�ZdS)�FailNegTestcCs2ddtd�td�g}tt�|��}|�||�dS�Nr�@r}r�)rrrXr/�	_fail_negr4)r8�values�newrrr�test_pass_through�szFailNegTest.test_pass_throughcCs@ddtd�td�fD]&}|g}t�|�}|�tjt|�qdSro)rrr/rqr�r�next)r8r
�seq�itrrr�test_negatives_raise�s
z FailNegTest.test_negatives_raisec
Cspdt�dd�}ztt�dg|��Wn.tjk
rT}z|jd}W5d}~XYnX|�d�|�||�dS)Nzbadness #%d�'i��rZrz(expected exception, but it didn't happen)	r�randintrur/rqrrnZfailr4)r8rHrRrrrr�test_error_msgs
zFailNegTest.test_error_msgN)r,r-r.rtrxr{rrrrrn�srnc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�UnivariateCommonMixincCs|�t|j�dSr@�r�rP�funcr[rrr�test_no_argssz"UnivariateCommonMixin.test_no_argscCs*gdtg�fD]}|�tj|j|�qdS)Nr)�iterr�r/rr~)r8�emptyrrr�test_empty_datasz%UnivariateCommonMixin.test_empty_datacCs(ttd��}|t|�kr$t�|�q|S�Nr��rXr"�sortedr�shuffle�r8r#rrr�prepare_datasz"UnivariateCommonMixin.prepare_datacCs0|��}|dd�}|�|�}|�||d�dS)Nzdata has been modified)r�r~ZassertListEqual)r8r#Zsavedrrrr�test_no_inplace_modifications!s
z3UnivariateCommonMixin.test_no_inplace_modificationscCsFddddddddgd}|�|�}t�|�|�|�}|�||�dS)Nrrr}r�ri�rk)r~rr�r4�r8r#rrrrr�test_order_doesnt_matter+s



z.UnivariateCommonMixin.test_order_doesnt_mattercCsnGdd�dt�}Gdd�dt�}dd�}|��}|�|�}ttt|||fD]}|�||��}|�||�qJdS)Nc@seZdZdS)zBUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListNr+rrrr�MyList:sr�c@seZdZdS)zCUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleNr+rrrr�MyTuple<sr�cSsdd�|D�S)Ncss|]
}|VqdSr@r)r��objrrrr�?szXUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator.<locals>.<genexpr>r�r#rrr�	generator>szEUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator)rXrYr�r~r�r4)r8r�r�r�r#r�kindrtrrr�test_type_of_data_collection8s
z2UnivariateCommonMixin.test_type_of_data_collectioncCs0tddd�}|�t|��}|�|�|�|�dS�N�r�r})r"r~rXr4�r8r#rrrr�test_range_dataFsz%UnivariateCommonMixin.test_range_datacCs.|�d�|�d�|�d�|�t��dS)Nr�gE@)�check_for_type_error�objectr[rrr�test_bad_arg_typesLs



z(UnivariateCommonMixin.test_bad_arg_typescGs|jt|jf|��dSr@r}r�rrrr�[sz*UnivariateCommonMixin.check_for_type_errorcshGdd�dt�}|��}|�|�}t|ttfD]4��fdd�|D�}t|�|�|��}|�||�q.dS)Ncs,eZdZ�fdd�Z�fdd�ZeZ�ZS)z@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatcst|�t��|��Sr@�rrerfrgrhrrrfcszLUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__cst|�t��|��Sr@�rre�__add__rgrhrrr�eszHUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__)r,r-r.rfr��__radd__rjrrrhrr*bsr*csg|]}�|��qSrr�r�r
�r�rrr!lszCUnivariateCommonMixin.test_type_of_data_element.<locals>.<listcomp>)rr�r~rrrr4)r8r*�rawrr#rtrr�r�test_type_of_data_element^s
z/UnivariateCommonMixin.test_type_of_data_elementN)
r,r-r.rr�r�r�r�r�r�r�r�r�rrrrr|s

r|c@seZdZdd�Zdd�ZdS)�UnivariateTypeMixincCsGdd�dt�}ttt|fS)Ncs\eZdZ�fdd�Z�fdd�Z�fdd�Z�fdd�Z�fd	d
�Z�fdd�ZeZ	�Z
S)
zHUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloatcst|�t��|��Sr@r�rgrhrrrf~szTUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__cst|�t��|��Sr@)rre�__rtruediv__rgrhrrr��szUUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__cst|�t��|��Sr@)rre�__sub__rgrhrrr��szPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__cst|�t��|��Sr@)rre�__rsub__rgrhrrr��szQUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__cst|�t��|��Sr@)rre�__pow__rgrhrrr��szPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__cst|�t��|��Sr@r�rgrhrrr��szPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__)r,r-r.rfr�r�r�r�r�r�rjrrrhrr*}sr*)rrr)r8r*rrr�#prepare_types_for_conservation_test{sz7UnivariateTypeMixin.prepare_types_for_conservation_testcsF|��}|��D]0��fdd�|D�}|�|�}|�t|���qdS)Ncsg|]}�|��qSrrr�r�rrr!�sz<UnivariateTypeMixin.test_types_conserved.<locals>.<listcomp>)r�r�r~r.r)r8r#r�rtrr�r�test_types_conserved�s

z(UnivariateTypeMixin.test_types_conservedN)r,r-r.r�r�rrrrr�qs
r�c@seZdZdd�ZdS)�
TestSumCommoncCsdd�}||_dS)NcWstj|�\}}}t�||�Sr@)r/�_sumrE)rnrG�valuerrrr�simplified_sum�sz+TestSumCommon.setUp.<locals>.simplified_sum)r~)r8r�rrr�setUp�szTestSumCommon.setUpN)r,r-r.r�rrrrr��sr�c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestSumcCstj|_dSr@)r/r�r~r[rrrr��sz
TestSum.setUpcCspgdtg�fD]\}|�|�|�ttd�df�|�|�|d�ttd�df�|�|�|d�ttd�df�qdS)Nrrr�gffffff@)r�r4r~rlrrr�rrrr��szTestSum.test_empty_datacCsX|�|�ddddddddg�ttd�d	f�|�|�d
ddddgd
�ttd�df�dS)Nrrir}���i����r�rv�<r�r�rrr�i�)r4r~rlrr[rrr�	test_ints�s��zTestSum.test_intscCsL|�|�dgd�ttd�df�|�|�ddddgd�ttd�d	f�dS)
Nr�r��@r�r�g�?r�g	@r�)r4r~rrr[rrr�test_floats�s��zTestSum.test_floatscCs.|�|�tdd�gd�ttdd�df�dS)Nrr���r)r4r~rr[rrr�test_fractions�s�zTestSum.test_fractionsc	CsXt}|d�|d�|d�|d�|d�|d�|d�|d�g}|�|�|�ttd	�d
f�dS)Nr�z5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686r�)rr4r~�r8r�r#rrr�
test_decimals�s��zTestSum.test_decimalscCs:dd�td�D�}|jt|�|�d�t�|�dd�dS)NcSsg|]}t�dd��qS)rr�rr rrrr!�sz7TestSum.test_compare_with_math_fsum.<locals>.<listcomp>r�rg��ؗ�Ҭ<�r()r"rJrr~r�fsumr�rrr�test_compare_with_math_fsum�sz#TestSum.test_compare_with_math_fsumcCs|dd�td�D�}|�|�d}|�|d|�|d�d�|�|d|�|d�d�|�|td�|�|d�d�dS)	NcSsg|]}t�dd��qS)rr�rr rrrr!�sz/TestSum.test_start_argument.<locals>.<listcomp>rkrrvr�rgg@��x�D)r"r~r4r)r8r#r9rrr�test_start_argument�s
zTestSum.test_start_argumentcCs4|�t|jdddgd�|�t|jddddg�dS)Nrrr}Z999r}r[rrr�test_strings_fail�szTestSum.test_strings_failcCs4|�t|jdddgd�|�t|jddddg�dS)Nrrr}s999r}r[rrr�test_bytes_fail�szTestSum.test_bytes_failcCs8|�t|jddtd�g�|�t|jddgtd��dS)Nrrp)r�rPr~rr[rrr�test_mixed_sum�szTestSum.test_mixed_sumN)r,r-r.r�r�r�r�r�r�r�r�r�r�r�rrrrr��sr�c@seZdZdd�ZdS)�SumTortureTestcCs�|�t�ddddgd�ttd�df�|�t�ddddgd�ttd�df�t�ddddgd�\}}}|�|t�|�|d�|jt|�d	d
d�dS)Nr�}Ô%�I�T�}Ô%�I��ryg��@i@�g0��.�++rZg���^�,gV瞯�<r�)r4r/r�rrr.rJ)r8rGr$�countrrr�test_torture�s��zSumTortureTest.test_tortureN)r,r-r.r�rrrrr��sr�c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�SumSpecialValuescCsNttfD]@}|d�}t�d|dg�d}|�t|�|�|�t�|��qdS)Nr�rr)	rrr/r�r.rrerr)r8ror�rtrrrr��s
zSumSpecialValues.test_nancCs<|�t�|��|�t|�t|��|�|dk|dk�dS�Nr)rerr%r.rr4)r8r
rrrr�check_infinityszSumSpecialValues.check_infinitycCsLt�dd|dg�d}|�||�t�dd|d|dg�d}|�||�dS)Nrrr}r�)r/r�r��r8rrtrrr�do_test_inf
szSumSpecialValues.do_test_infcCs$td�}dD]}|�||�qdS�Nr�rrZ)rr��r8rr
rrr�test_float_infszSumSpecialValues.test_float_infcCs$td�}dD]}|�||�qdSr�)rr�r�rrr�test_decimal_infsz!SumSpecialValues.test_decimal_infcCs8td�}t�dd|d|dg�d}|�t�|��dS�Nrrrr}r�)rr/r�rerrr�rrr�test_float_mismatched_infssz+SumSpecialValues.test_float_mismatched_infsc	CsPtd�}dd|d|dg}t�tj�� |�t�t�|�d��W5QRXdSr�)	r�decimal�localcontextZExtendedContextrerrr/r��r8rr#rrr�3test_decimal_extendedcontext_mismatched_infs_to_nan"szDSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nanc	CsHtd�}dd|d|dg}t�tj��|�tjtj|�W5QRXdSr�)rr�r�ZBasicContextr��InvalidOperationr/r�r�rrr�0test_decimal_basiccontext_mismatched_infs_to_nan)szASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nancCs(td�}d|dg}|�tjtj|�dS)Nr0rr)rr�r�r�r/r�)r8r0r#rrr�test_decimal_snan_raises0s
z)SumSpecialValues.test_decimal_snan_raisesN)r,r-r.r�r�r�r�r�r�r�r�r�rrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�AverageMixincCs6dddtdd�td�fD]}|�|�|g�|�qdS)Nr�g@E@g�X_yCr`�z0.28�rrr4r~r{rrr�test_single_value<szAverageMixin.test_single_valuecCsdddtdd�td�fS)N�@r^���7y�!C�=�Cz4.9712�rrr[rrr�'prepare_values_for_repeated_single_testAsz4AverageMixin.prepare_values_for_repeated_single_testcCsR|��D]D}dD]:}|j||d��"|g|}|�|�|�|�W5QRXqqdS)N�rrir�r�)r
r�)r��subTestr4r~�r8r
r�r#rrr�test_repeated_single_valueDs

z'AverageMixin.test_repeated_single_valueN)r,r-r.r�r�r�rrrrr�9sr�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestMeancCstj|_dSr@)r/�meanr~r[rrrr�NszTestMean.setUpcCs|�|�ddddg�d�dS)Nr�rr}r��r4r~r[rrr�test_torture_pepQszTestMean.test_torture_pepcCsDddddddddddddddd	d
g}t�|�|�|�|�d�dS)Nrrrr}r�rir�rr�r~g@@�rr�r4r~r�rrrr�Us$
zTestMean.test_intscCs4ddddddddg}t�|�|�|�|�d	�dS)
Ng@1@g�3@�4@g�5@g�5@g@7@g 9@g�;@g6@r�r�rrrr�[s
zTestMean.test_floatscCsJt}|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.634z2.517z3.912z4.072z5.813z3.5896�rrr�r4r~r�rrrr�as"
zTestMean.test_decimalsc	Csft}|dd�|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|d	d
��dS)Nrrr}r�rir�rr�i�i��rrr�r4r~�r8r�r#rrrr�hs<
zTestMean.test_fractionscCsfdddddg}ttfD]J}dD]@}|d�|}||g}|�|�}|�t�|��|�||�qqdS)Nrr}rirr~r�r)rrr~rerr%r4)r8r�r�r
rr#rtrrrr�os

zTestMean.test_infc	Cs:dddtd�dddtd�g}|�|�}|�t�|��dS)	Nrr�r�rrr}riz-inf)rr~rerr�r8r#rtrrr�test_mismatched_infszs
zTestMean.test_mismatched_infscCsLdddddg}ttfD]0}|d�}||g}|�|�}|�t�|��qdS)Nrr}rirr~r�)rrr~rerr)r8r�r�rr#rtrrrr��s

zTestMean.test_nanc	sPd�dddddddd	d
g	}|�|��}|��fdd�|D��}|�||�dS)
Nge��A�333333@�@皙����@�������@�333333@�������@� @�333333 @�������"@csg|]}|��qSrrr���crrr!�sz*TestMean.test_big_data.<locals>.<listcomp>�r~r4�r8r#rrtrr�r�
test_big_data�s
zTestMean.test_big_datacCs:dd�td�D�}|�|�}|�|d�}|�||�dS)NcSsg|]}t�dd��qS)rrirr rrrr!�sz.TestMean.test_doubled_data.<locals>.<listcomp>r�r�r"r~rJr�rrr�test_doubled_data�s
zTestMean.test_doubled_datacCs td�}|�t�|g�|�dS)NZ1e4)rr4r/r�r�rrr�test_regression_20561�szTestMean.test_regression_20561cCs\|�t�ddg�d�d}d}dD]4}|�t�|g|�|�|�t�|g|�|�q"dS)Ng�������g�g)rr}rir')r4r/r�)r8�bigZtinyrrrr�test_regression_25177�s��zTestMean.test_regression_25177N)r,r-r.r�r�r�r�r�r�r�r�r�r�rrrrrrrr�Ms		r�cs�eZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Z�ZS)�TestHarmonicMeancCstj|_dSr@)r/Z
harmonic_meanr~r[rrrr��szTestHarmonicMean.setUpcst���}|�d�|Sr�)rer��remove�r8rrrhrrr��s

zTestHarmonicMean.prepare_datacCsdddtdd�td�fS)Nr�r^r�r�r�z4.125r�r[rrrr��sz8TestHarmonicMean.prepare_values_for_repeated_single_testcCs dddg}|�|�|�d�dS)Nrrrr�rrrr�	test_zero�s
zTestHarmonicMean.test_zeroc
CsHtj}dgdddgfD],}|j|d��|�||j|�W5QRXqdS)NrZrrhr})rr)r/rr�r�r~)r8�excrrrrr�test_negative_error�sz$TestHarmonicMean.test_negative_errorcCs0ddddddg}t�|�|�|�|�d�dS)Nrr�r�r�g333333@r�r�rrrr��s
zTestHarmonicMean.test_intscCsHdddddg}t�|�|�|�|�d�|�|�ddddg�d�dS)Nr�r�r�r�r�r�rrr�test_floats_exact�s
z"TestHarmonicMean.test_floats_exactcCs(tdd�D]}|�|�|g�|�q
dS)Nrr��r"r4r~r{rrr�test_singleton_lists�sz%TestHarmonicMean.test_singleton_listsc	Cs�t}|�|�|d�|d�|d�|d�g�|d��|d�|d�|d�|d�g}t�|�|�|�|�|d��|d�|d�|d	�|d
�g}t�|�|�|�|�|d�d�dS)
Nr`r�r�r�z0.10z0.20z1.68z0.32z5.94z2.75i�iC)rr4r~rr�r�rrr�test_decimals_exact�s.

z$TestHarmonicMean.test_decimals_exactc	Csft}|dd�|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|d	d
��dS)Nrrr}r�rir�rr�i|i�r�r�rrrr��s<
zTestHarmonicMean.test_fractionscCs$dtd�dg}|�|�|�d�dS)Nrprr�)rr4r~rrrrr��szTestHarmonicMean.test_infcCs(dtd�dg}|�t�|�|���dS)Nrpr�r�)rrerrr~rrrrr��szTestHarmonicMean.test_nanc	sPd�dddddddd	d
g	}|�|��}|��fdd�|D��}|�||�dS)
N�or�r�r�r�r�r�r�r�r�csg|]}|��qSrrr�r�rrr!�sz>TestHarmonicMean.test_multiply_data_points.<locals>.<listcomp>r�r�rr�r�test_multiply_data_points�s
z*TestHarmonicMean.test_multiply_data_pointscCs:dd�td�D�}|�|�}|�|d�}|�||�dS)NcSsg|]}t�dd��qS)rrirr rrrr!�sz6TestHarmonicMean.test_doubled_data.<locals>.<listcomp>r�rr�r�rrrr�s
z"TestHarmonicMean.test_doubled_data)r,r-r.r�r�r�rr	r�r
rr
r�r�r�rrrjrrrhrr�srcsTeZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
�ZS)�
TestMediancCstj|_dSr@�r/�medianr~r[rrrr�szTestMedian.setUpcs(t���}t|�ddkr$|�d�|S)Nrr)rer�rKr�r�rhrrr�
s

zTestMedian.prepare_datacCs&ddddddg}|�|�|�d�dS)Nrrr}r�rir�r�r�r�rrr�test_even_intsszTestMedian.test_even_intscCs(dddddddg}|�|�|�d�dS)Nrrr}r�rir�r~r�r�rrr�
test_odd_intsszTestMedian.test_odd_intscCsVt}|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS)Nrrrr}r�rir�r�rrr�test_odd_fractionss,
zTestMedian.test_odd_fractionscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS�Nrrrr}r�rir�r�r�rrr�test_even_fractions%s4
zTestMedian.test_even_fractionscCsJt}|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)N�2.5�3.1�4.2�5.7�5.8r�r�rrr�test_odd_decimals-s"
zTestMedian.test_odd_decimalscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.2rrrrrz3.65r�r�rrr�test_even_decimals5s(
zTestMedian.test_even_decimals)r,r-r.r�r�rrrrrrrjrrrhrrsrc@seZdZdd�Zdd�ZdS)�TestMedianDataTypecCstj|_dSr@rr[rrrr�@szTestMedianDataType.setUpcCs(ttd��}|t|�kr$t�|�q|S)Nr`r�r�rrrr�CszTestMedianDataType.prepare_dataN)r,r-r.r�r�rrrrr>src@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
TestMedianLowcCstj|_dSr@)r/Z
median_lowr~r[rrrr�LszTestMedianLow.setUpcCs&ddddddg}|�|�|�d�dS�Nrrr}r�rir�r�r�rrrrOszTestMedianLow.test_even_intscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dSrr�r�rrrrUs4
z!TestMedianLow.test_even_fractionscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS�Nz1.1z2.2z3.3z4.4r>z6.6r�r�rrrr]s(
z TestMedianLow.test_even_decimalsN�r,r-r.r�rrrrrrrr Ksr c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestMedianHighcCstj|_dSr@)r/Zmedian_highr~r[rrrr�gszTestMedianHigh.setUpcCs&ddddddg}|�|�|�d�dSr!r�r�rrrrjszTestMedianHigh.test_even_intscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dSrr�r�rrrrps4
z"TestMedianHigh.test_even_fractionscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dSr"r�r�rrrrxs(
z!TestMedianHigh.test_even_decimalsNr#rrrrr$fsr$c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestMedianGroupedcCstj|_dSr@)r/Zmedian_groupedr~r[rrrr��szTestMedianGrouped.setUpcCs�dddddddg}|�|�|�d�dddddddg}|�|�|�d�ddddddddd	d	d
g}|�|�|d�d�dd
d
d
d
ddddddddddg}|j|�|d�ddd�dS)Nr�rl�r`g�+@rir�r��r�g`3@r������rg������4@�:�0�yE>�r'�r4r~rJr�rrr�test_odd_number_repeated�s"z*TestMedianGrouped.test_odd_number_repeatedcCs�ddddddddddg
}|j|�|d�ddd	�d
dddddg}|j|�|�d
dd	�d
dddddddddddg}|�|�|�d�ddddddddddg
}|�|�|�d�dS)Nrir�r`r�r'r�g�����*3@r-r.rr}r�g["8���@r�r��@)rJr~r4r�rrr�test_even_number_repeated�sz+TestMedianGrouped.test_even_number_repeatedcCsLdddtdd�td�fD].}dD]$}|g|}|�|�|�t|��q qdS)Ng333333@�Dg��ޗCr�r�z32.9714r�)rrr4r~rr�rrrr��s
z,TestMedianGrouped.test_repeated_single_valuecCsPt}|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�d�dS)Nrir�r~rlr^�@r�r�rrrr�s,
z$TestMedianGrouped.test_odd_fractionscCsXt}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�d�dS)Nrir�r~rlr^�
@r�r�rrrr�s4
z%TestMedianGrouped.test_even_fractionscCsFt}|d�|d�|d�|d�|d�g}t�|�|�|�|�d�dS)Nr>�6.5�7.5�8.5g@r�r�rrrr�s"
z#TestMedianGrouped.test_odd_decimalscCs�t}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�d�|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�d�dS)Nr>r6r7r8�@g@r�r�rrrr�s(
(
z$TestMedianGrouped.test_even_decimalscCs�ddddddddddg
}|�|�|d�d	�dddddddddddg}|j|�|d�d
dd�d
d
ddddddddddg}|�|�|d�d�dS)Ng@r�r�r4r5r�r�r�g@g["8���@r-r.����ii�,�@iTr�g�p@r/r�rrr�
test_interval�szTestMedianGrouped.test_intervalcCsxdddg}|�t|j|�dddg}|�t|j|�dddg}d}|�t|j||�dddg}d}|�t|j||�dS)N��rrr}r})r8r#�intervalrrr�test_data_type_error�s



z&TestMedianGrouped.test_data_type_errorN)
r,r-r.r�r0r2r�rrrrr>rBrrrrr%�s	
	r%c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestModecCstj|_dSr@)r/�moder~r[rrrr��szTestMode.setUpcCsdddddddddddgS)	Nrr}r�rr~rr�rrr[rrrr��szTestMode.prepare_datacCs"tddd�}|�|�|�d�dSr�rr�rrrr��szTestMode.test_range_datacCs4d}|�|�|�d�d��}|�|�|�d�dS)NZabcbdbrzfe fi fo fum fi fi�fi)r4r~r�r�rrr�test_nominal_dataszTestMode.test_nominal_datacCsDttd��}td�D]*}||g}t�|�|�|�|�|�qdSr��rXr"rr�r4r~)r8r#rQr�rrr�test_discrete_data	s


zTestMode.test_discrete_datacCs<dddddddddddddddd	d	g}|�|�|�d�dS)
Nrrr}r�rir�rr�r~r�r�rrr�test_bimodal_datas&zTestMode.test_bimodal_datacCs"ttd��}|�|�|�d�dS)Nr�r)rXr"r4r~r�rrr�test_unique_dataszTestMode.test_unique_datacCs|�t|jd�dSr@r}r[rrr�test_none_dataszTestMode.test_none_datacCs(t�ddddg�}|�|�|�d�dS)Nrr)rA�Counterr4r~r�rrr�test_counter_data%szTestMode.test_counter_dataN)r,r-r.r�r�r�rFrHrIrJrKrMrrrrrC�srCc@seZdZdd�ZdS)�
TestMultiModecCsBtj}|�|d�dg�|�|d�dddg�|�|d�g�dS)NZaabbbbbbbbccrZaabbbbccddddeeffffggr�r�r?)r/�	multimoder4)r8rOrrr�test_basics/szTestMultiMode.test_basicsN)r,r-r.rPrrrrrN-srNc@s$eZdZdd�Zdd�Zdd�ZdS)�	TestFMeanc
Cs�tj}t}t}dddgddf|d�|d�|d�gdd	f|d
d�|dd
�|dd�gddfdddddgddfdd|dd�gddfdtdddg�ddffD]2\}}}||�}|�t|�t|�|�|||�q�dS)Nr�r��@�@�floats�3.5�4.0�5.25�decimalsrrr�rr��	fractionsTF�333333�?Zbooleans�mixed types)�r�r�rRrSrY�iterator)	r/�fmeanrrr�r.rrr4)r8r^r�r�r#�
expected_meanr��actual_meanrrrrP8s �	zTestFMean.test_basicsc	Cs�tj}tj}|�|��|g�W5QRX|�|��|tg��W5QRX|�t��|d�W5QRX|�t��|dddg�W5QRX|�t��|�W5QRX|�t��|dddgd�W5QRXdS)Nr�r�r��F)r/r^rr�r�rP)r8r^rrrr�test_error_casesIszTestFMean.test_error_casesc	Cs�tj}td�}td�}|�t�|d|g��d�|�t�|||g��d�|�t�|d|g��d�|�t��|||g�W5QRXdS�NZNan�Infr�r�znan and infinityZinfinity)	r/r^rrerrr%r�r$)r8r^�NaNrdrrr�test_special_valuesYszTestFMean.test_special_valuesN)r,r-r.rPrbrfrrrrrQ6srQc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�VarianceStdevMixinr"cCs6dddtdd�td�fD]}|�|�|g�d�qdS)Nr�g������3@g���%�Br�r�z8.392rr�r{rrrr�osz$VarianceStdevMixin.test_single_valuecCsHdddtdd�td�fD]*}dD] }|g|}|�|�|�d�q qdS)	Nr�r�g@�6��<Cr}rz62.4802)rr}rir`rr�r�rrrr�ts
z-VarianceStdevMixin.test_repeated_single_valuecCs4dgd}|�|�}|j|ddd�|�|d�dS)Ng.�F7ݚ�?ryrYg��ؗ�Ҍ<r.r)r~rJr4r�rrr�test_domain_error_regression{s

z/VarianceStdevMixin.test_domain_error_regressionc
sNddddddddd	d
g
}|�|�}d��fdd
�|D�}|�|�|�|�dS)Ng{�G�z�?gR���Q�?g
ףp=
�?gR���Q@g�p=
ף@g��Q�	@r1g�Q���@g�G�z�@g��Q�@gj�@csg|]}|��qSrrr���shiftrrr!�sz6VarianceStdevMixin.test_shift_data.<locals>.<listcomp>)r~rJ�r8r�rr#rrir�test_shift_data�s

z"VarianceStdevMixin.test_shift_datac
sNdddddddddd	g
}|�|�}d
��fdd�|D�}|�|�|�|�dS)
Nrr}r�rirr~r�r�r�iʚ;csg|]}|��qSrrr�rirrr!�sz<VarianceStdevMixin.test_shift_data_exact.<locals>.<listcomp>r�rkrrir�test_shift_data_exact�s

z(VarianceStdevMixin.test_shift_data_exactcCs6dd�td�D�}|�|�}|�|�t|��|�dS)NcSsg|]}t�dd��qS)rr�rr rrrr!�sz:VarianceStdevMixin.test_iter_list_same.<locals>.<listcomp>r�)r"r~r4r�r�rrr�test_iter_list_same�s
z&VarianceStdevMixin.test_iter_list_sameN)
r,r-r.r(r�r�rhrlrmrnrrrrrggs
	rgc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TestPVariancecCstj|_dSr@)r/�	pvariancer~r[rrrr��szTestPVariance.setUpcCs0ttd��}t�|�d}|�|�|�|�dS)NrygP�_ArGr�rrr�test_exact_uniform�s
z TestPVariance.test_exact_uniformcCs&ddddg}d}|�|�|�|�dS)Nr�rrlr�g�6@r��r8r#�exactrrrr��szTestPVariance.test_intscCsXt}|dd�|dd�|dd�|dd�g}|dd�}|�|�}|�||�|�|t�dS)Nrr�r}rr��rr~r4�assertIsInstance�r8r�r#rsrtrrrr��s$

zTestPVariance.test_fractionscCsNt}|d�|d�|d�|d�g}|d�}|�|�}|�||�|�|t�dS)Nz12.1z12.2z12.5z12.9z0.096875�rr~r4ru�r8r�r#rsrtrrrr��s
zTestPVariance.test_decimalsN)r,r-r.r�rqr�r�r�rrrrro�s
	roc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestVariancecCstj|_dSr@)r/�variancer~r[rrrr��szTestVariance.setUpcCs6dddtdd�td�fD]}|�tj|j|g�qdS)Nr�g33333�8@g�(G�!=Cr�r�z4.2084�rrr�r/rr~r{rrrr��szTestVariance.test_single_valuecCs&ddddg}d}|�|�|�|�dS)Nr�rrlr�r�r�rrrrrr��szTestVariance.test_intscCsXt}|dd�|dd�|dd�|dd�g}|dd�}|�|�}|�||�|�|t�dS)Nrr�r}rrrtrvrrrr��s$

zTestVariance.test_fractionscCsZt}|d�|d�|d�|d�g}d|d�|d�}|�|�}|�||�|�|t�dS)Nrrr~r�z9.5r}rwrxrrrr��s
zTestVariance.test_decimalscCs0d}|�|�|�d�|�|j|dd�d�dS)N�r�rpr�rp��xbarr�r�r�rrr�test_center_not_at_mean�sz$TestVariance.test_center_not_at_meanN)	r,r-r.r�r�r�r�r�rrrrrry�s		ryc@s$eZdZdd�Zdd�Zdd�ZdS)�
TestPStdevcCstj|_dSr@)r/Zpstdevr~r[rrrr��szTestPStdev.setUpcCs8dd�td�D�}t�t�|��}|�|�|�|�dS)NcSsg|]}t�dd��qS)i��r*rr rrrr!�sz7TestPStdev.test_compare_to_variance.<locals>.<listcomp>r�)r"r�sqrtr/rpr4r~r�rrr�test_compare_to_variance�sz#TestPStdev.test_compare_to_variancecCs0d}|�|�|�d�|�|j|dd�d�dS)N)r}r�rr�r�r�)�mur9r�r�rrrrsz"TestPStdev.test_center_not_at_meanN)r,r-r.r�r�rrrrrr��sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	TestStdevcCstj|_dSr@)r/�stdevr~r[rrrr�szTestStdev.setUpcCs6dddtdd�td�fD]}|�tj|j|g�qdS)N�QgH�z�wi@gf7?+�Brir�z35.719r{r{rrrr�szTestStdev.test_single_valuecCs8dd�td�D�}t�t�|��}|�|�|�|�dS)NcSsg|]}t�dd��qS)rhr~rr rrrr!sz6TestStdev.test_compare_to_variance.<locals>.<listcomp>r�)r"rr�r/rzr4r~r�rrrr�sz"TestStdev.test_compare_to_variancecCsd}|�|j|dd�d�dS)Nr|rpr}r�r�r�rrrrsz!TestStdev.test_center_not_at_meanN)r,r-r.r�r�r�rrrrrr�sr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestGeometricMeancCstj}|�|dddg�d�|�|ddg�d�|�|dg�d�t�d	�td
d�td
d�td
d
�tdd
d�td
dd�ddddddgdd�td�D�dd�td�D�dd�td�D�f	D]B}t�tt	|��t	d
�t
|�}||�}|�t�|t
|���q�dS)Nr_r*r��B@r�g"@g@g�1@l���;rrkr�ryr�r}rr�r^rlri�xrcSsg|]}t�d��qS)�I@�r�expovariate�r�rQrrrr!*sz1TestGeometricMean.test_basics.<locals>.<listcomp>cSsg|]}t�dd��qS)r�r4)r�lognormvariater�rrrr!+s��cSsg|]}t�ddd��qS)r��i�)r�
triangularr�rrrr!,sr�)r/�geometric_mean�assertAlmostEqualr�seedr"r�prodr�rrKre�iscloser)r8r��rngZ
gm_decimalZgm_floatrrrrPs$


� zTestGeometricMean.test_basicsc	Cs�tj}t}t}d}dddgdf|d�|d�|d�gd	f|d
d�|dd
�|dd�gdfdd|dd�gdfdtdddg�dffD]2\}}||�}|�t|�t|�|j||dd�q|dS)Ng�d�@r�r�rRrTrUrVrWrXrrr�rr�rYr[)r\rYr]ri�Zplaces)	r/r�rrr�r.rrr�)r8r�r�r�r_r#r�r`rrr�test_various_input_types2s�z*TestGeometricMean.test_various_input_typescCs�tj}d}|d|d|d|g�}|�t�|d|��|�t�|��d}|d|d|d|g�}|�t�|d|��|�|d�dS)Ngp~gK@g8@r�gprY)r/r�rerr�r�r%�assertNotEqual)r8r�ZlargeZbig_gmZsmallZsmall_gmrrr�test_big_and_smallDsz$TestGeometricMean.test_big_and_smallc	Cstj}tj}|�|��|g�W5QRX|�|��|dddg�W5QRX|�|��|dddg�W5QRX|�|��|tg��W5QRX|�t��|d�W5QRX|�t��|dddg�W5QRX|�t��|�W5QRX|�t��|dddgd�W5QRXdS)	Nr�rYrRg�r�r�r�ra)r/r�rr�r�rP)r8r�rrrrrbSs$z"TestGeometricMean.test_error_casesc	Cs�tj}td�}td�}|�t�|d|g��d�|�t�|||g��d�|�t�|d|g��d�|�t��|||g�W5QRXdSrc)	r/r�rrerrr%r�r$)r8r�rerdrrrrfgsz%TestGeometricMean.test_special_valuesN)r,r-r.rPr�r�rbrfrrrrr�s
r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TestQuantilescsltj}dddddg}t�|�dgfddgfd	d
dgfdd
ddgfdddddgfddd
dddgfddd
dddddgfdddddddddd g	fd!d"dd
d
d#dd$dddd%gfd&d'd(dd)d
dd*d+ddd,dd-d.gff
D�]R\}}|�||||d/��|�t|||d/��|d�tttfD]F�|t	�|�|d/�}|�
�fd0d1�|D��|�|tt	�|����qt|�dk�r||�|||d/�|�t|�}d|d2|d}d|d3|d4}|||g}	|�|||d/�||	|d5d6�||f�d7d8�}
tt	|
|��}|t	|
|�|d/�}|�
t
d9d1�t||�D���q�tdd:�D]8}
tjtd;�|
d<�}||�\}}}|�|t�|���q.dS)=Nr�r'�r=i^rr�@o@r}�i@�t@r��d@g�t@riga@g�k@g@r@g�u@r��^@��u@r��Y@g�j@g�r@gXv@r�gV@gg@g`t@g�v@r��T@� l@g�q@g�v@r`gR@gZ@ge@�n@g�p@g�t@g@v@gw@�rc3s|]}tt|��k�VqdSr@��allrr��Zdatatyperrr��sz4TestQuantiles.test_specific_cases.<locals>.<genexpr>rrZrh�	inclusive�r�methodcSsd|dS�Nr�g3333�J�@rr	rrrr��sz,TestQuantiles.test_specific_cases.<locals>.fcss|]\}}t�||�VqdSr@�rr��r�rRrrrrr��sr�rk��k)r/�	quantilesrr�r4rKrrrr�rerXr�r�rOr"�choicesr)r8r�r#rrrtZsdata�lo�hiZpadded_datar��exp�actr��q1�q2�q3rr�r�test_specific_casesus`

���
� z!TestQuantiles.test_specific_casescs�tj}ddddg}t�|�dgfddgfdd	d
gfdddd
gfdddddgfddd	dd
dgfddddddd
dgfdddddddddd g	fd!d"ddd	d#dd$d
d
dd%gfd&d'd(dd)d	dd*d+dd
d,dd-d.gff
D]�\}}|�||||d/d0��|�t|||d/d0��|d�tttfD]H�|t	�|�|d/d0�}|�
�fd1d2�|D��|�|tt	�|����qd3d4�}tt	||��}|t	||�|d/d0�}|�
td5d2�t
||�D���q�|�|d6dgdd/d0�d7d8d9d:d;d<d=d>d?g	�|�|td6d@�dd/d0�d7d8d9d:d;d<d=d>d?g	�dAdB�tdC�D�}||dDd/d0�}	|�t|��|�t|��||dDdE�}|�||	�tddF�D]<}
tjtd�|
dG�}||d/dH�\}}}
|�|t�|���q^dS)INrkr'i�i rrg�r@r}r�gy@r�g�e@g@@rir�r�g�v@g��@r�g�b@g��@r�g0a@�r�gpw@gP�@r�g@`@g�g@g�{@g@�@r�g@_@r�r�g�@r`r�g�a@g�f@g�q@r�g~@g�@g��@r�r�c3s|]}tt|��k�VqdSr@r�r�r�rrr��sz>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>cSsd|dSr�rr	rrrr��sz6TestQuantiles.test_specific_cases_inclusive.<locals>.fcss|]\}}t�||�VqdSr@r�r�rrrr��sr�$@r�g>@gD@r�gN@g�Q@r�g�V@r�cSsg|]}t�d��qS)ry)r�	randranger�rrrr!�sz?TestQuantiles.test_specific_cases_inclusive.<locals>.<listcomp>i�� r�r�r��r�)r/r�rr�r4rKrrrr�rerXr�rOr"rrdrr�r)r8r�r#rrrtr�r�r�rr�r�r�r�rr�r�test_specific_cases_inclusive�sd

��� ��z+TestQuantiles.test_specific_cases_inclusivecCsTtj}tdd�D]>}dg|}|�||�dddg�|�||dd�dddg�qdS)Nrr�r�r�r�)r/r�r"r4)r8r�rr#rrr�test_equal_inputs�s
�zTestQuantiles.test_equal_inputsc	s�tj}d}dd�t|�D��tt���|kr>��t�d��q���dD]:}||}|�	�fdd�|�|d�D�t
t|||���qJdD]\}||||d	h}�fd
d�|�|d�D�}dd�t||d	d��D�}|�||k�q�dS)
NrycSsg|]}t�d��qS)皙�����?r�r�rrrr!�sz9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>r�)
rrrir�r�r�rkr'r�r�r�r6rycsg|]}t��|��qSr��bisect�r��qr�rrr!�sr�)
rlr��;�m��i;i�isi�i)&rcsg|]}t��|��qSrr�r�r�rrr!�scSsh|]\}}||�qSrr)r��pr�rrr�	<setcomp>�sz8TestQuantiles.test_equal_sized_groups.<locals>.<setcomp>)
r/r�r"rK�setr�rr��sortr4rXrOre)r8r��totalrZ
group_sizeZgroup_sizes�posZsizesrr�r�test_equal_sized_groups�s"�z%TestQuantiles.test_equal_sized_groupsc	Cshtj}tj}|�t��|�W5QRX|�t��|dddgddd�W5QRX|�t��|dddgd�W5QRX|�|��|dddgdd�W5QRX|�|��|dddgdd�W5QRX|�t��|dddgd	d�W5QRX|�t��|dddgd
d�W5QRX|�|��|dgdd�W5QRX|�t��|dddgdd�W5QRXdS)Nr�r�r�rlr�r�rrZr��Xr�)r/r�rr�rPr$)r8r�rrrrrb	s(zTestQuantiles.test_error_casesN)r,r-r.r�r�r�r�rbrrrrr�ss
66r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
d
d��Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)$�TestNormalDistc	CsB|j�dd�}|�t��t|�W5QRX|�t|j�d�dS)Nr<r�)Z_muZ_sigma)r��
NormalDistr�rP�varsr4rY�	__slots__�r8�ndrrr�
test_slots 	szTestNormalDist.test_slotsc	Cs�|j�dd�}|�|jd�|�|jd�|�|jd�|j��}|�|jd�|�|jd�|�|jd�|�|jj��|j�dd�W5QRXGdd�d|jj�}|d	d
�}|�t|�|�dS)Nr�r^i!rri����c@seZdZdS)zGTestNormalDist.test_instantiation_and_attributes.<locals>.NewNormalDistNr+rrrr�
NewNormalDist7	sr�r'ri)	r�r�r4r�r�rzr�rr)r8r�r��nndrrr�!test_instantiation_and_attributes&	s

z0TestNormalDist.test_instantiation_and_attributesc	Cs�|jj}dddddg}|�|�|�|dd��|�|�t|��|dd��|�|�t|��|dd��|�|jj��|�g�W5QRX|�|jj��|�dg�W5QRXGd	d
�d
|�}|�|�}|�t|�|�dS)N�`rj�Zr��nrr~r�c@seZdZdS)zBTestNormalDist.test_alternative_constructor.<locals>.NewNormalDistNr+rrrrr�L	sr�)	r�r�r4Zfrom_samplesrYr�r�rr)r8r�r#r�r�rrr�test_alternative_constructor<	s
z+TestNormalDist.test_alternative_constructorcCs�|jj}d\}}|||�}d}|�|�}|�t|�|�|�ttt|��th�|j�	|�}|�
||d|ko�||dkn�d}|j|dd�}|j|dd�}	|j|dd�}
|j|dd�}|�||
�|�|	|�|�||	�dS)N)ryr4r�r�rkzhappiness and joy)r�ztrouble and despair)r�r�Zsamplesr4rKr�r�rrr�rer�)r8r�r��sigmar�rr#r~Zdata1Zdata2Zdata3Zdata4rrr�test_sample_generationQ	s"

.z%TestNormalDist.test_sample_generationc
3Cs�|jj}|dd�}|�|�d�|�d��|�|�d�|�d��td�D]$}|�|�d|�|�d|��qJd}tdd�D]6}|�||�|�|�|}|j|�|�|d	d
�q~|�}tddddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:g2�D]@\}}|j|�|d;�|d	d
�|j|�|d;�|d	d
��q(|dd<�}	|�|jj	��|	�d�W5QRX|�
|�td=��d>�|�
|�td?��d>�|�t
�|�td@����dS)ANrkr`rr�r�gP?r�rr�r�g+��ݓ��?ggDio��?g������?gV}��b�?g�Q�|�?gF���x�?g��g��s�?g�٬�\m�?g�� �rh�?g�K7�A`�?g��|гY�?g����Q�?g���QI�?gsh��|?�?g�=yX�5�?g|a2U0*�?g��Q��?g���N@�?g�/�$�?g~��k	��?g]�C����?gw��/��?g�~�:p��?g�>W[���?gM�
O��?gW[����?g鷯��?g{�G�z�?g
q���h�?g�|a2U�?g��K7�A�?gvq
�-�?gj�t��?g�c]�F�?g�\�C���?gףp=
��?g�����?ga2U0*��?g�y�):��?g(��y�?g��N@a�?gf�c]�F�?g"lxz�,�?g�O��n�?g�3��7��?g�e�c]��?g��n���?g��T����?r�r�-InfrYrdre)r�r�Z
assertLess�pdfr"r��cdfrNr�rr4rrerr)
r8r�r�rQ�dxr
Zest_pdf�ZZpx�Yrrr�test_pdfg	s�
"� 
zTestNormalDist.test_pdfc	s"|jj}|dd���fdd�tdd�D�}|�ttt|��th�|�|t|��|���	d�d�|�}dD]:\}}|j
|�	|�|d	d
�|j
|�	|�d|d	d
�qn|dd�}|�|jj��|�	d
�W5QRX|���	td��d�|���	td��d�|�
t���	td����dS)Nrkr`csg|]}��|��qSr)r�r��r�rrr!�	sz+TestNormalDist.test_cdf.<locals>.<listcomp>rr'r�))rYr�)r�gqZ� �?)r�g��E_A�?)g�Q���?gGɫs��?)g��(\��?g؞Y���?)g��Q��?g���9#�?)gH�z�G�?g&S���?)rZg�MbX9�?)g���Q��?gT㥛� �?)g�������?g�?�?)gffffff@g_�x�Z�?)g��Q�@g��#0��?)g)\��(@gu<f�2��?)gףp=
�@gVe����?)gH�z�G@g9���?rir�r�rr�r�rYrdre)r�r�r"r4r�r�rrr�r�r�r�rrerr)r8r�Zcdfsr��zZcum_probr�rr�r�test_cdf�	s 

zTestNormalDist.test_cdfc	CsJ|jj}|dd�}|�|�d�|j�|�}dddd�}|��D]b\}}t|dd	�D]L\}}|d
|}	|j|�|	�|dd�d
|	}	|j|�|	�|dd�qTq@|�|dd��d�d�d}
td|
�D]$}	|	|
}	|�|�	|�|	��|	�q�tdd�D]F}d|}	|�|�	|�|	��|	�d
|	}	|�|�	|�|	��|	�q�td�D]"}|j|�|�	|��|dd��qJ|�
|jj��|�d�W5QRX|�
|jj��|�d�W5QRX|�
|jj��|�d
�W5QRX|�
|jj��|�d�W5QRX|�
|jj��|dd�}|�d�W5QRX|�t
�|�td����dS)Nrkr`r�)
rYgR���Q�?g�S㥛@g���S
@gT㥛� @g^�I�@g� �rh�@g+��N@g��C��@gV-��o@)
g� �rh��?g\��(\�?g�~j�t@g+��@g�MbX9@g�(\�B@g��v��@g����@g��Sc@g�K7�A�@)
gP��n��?g�S㥛@g���Q�@g��n��
@g��(\@gP��n@g�����@g��� �r@gˡE��@g�l�q@)r�r�r�r)�startr�r}r�r�rmr�g��>���?g���E@i�3rpr'rirYr�g�������?rre)r�r�r4Zinv_cdfr��itemsrNr�r"r�r�rrerrr)r8r�Ziqr��ppr�rowr�r
r�rrRrrr�test_inv_cdf�	sL
�
 
zTestNormalDist.test_inv_cdfcCsj|j��}dgfddgfdddgfdddd	gffD]2\}}|j|d
�}|�tdd�t||�D���q2dS)
NrrrYr}g�ǘ���ۿg�ǘ����?r�g/�$���g/�$���?r�css"|]\}}tj||dd�VqdS)r�)Zabs_tolNr�r�rrrr��	s�z0TestNormalDist.test_quantiles.<locals>.<genexpr>)r�r�r�rer�rO)r8r�rrrrrr�test_quantiles�	s

��zTestNormalDist.test_quantilescCs~|jj}|dd�|dd�df|dd�|dd�dffD]6\}}}|j|�|�|dd�|j|�|�|dd�q4dd	d
�dd�}|dd�|dd�f|dd�|dd�f|dd�|dd�f|d
d�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�f|dd�|dd�ffD]B\}}|j|�|�|||�d	d�|j|�|�|||�d	d��q||�}|�t��|��W5QRX|�t��|�||�W5QRX|�t��|�d�W5QRX|�|jj��|�|dd��W5QRX|�|jj��|dd��|�W5QRXdS) NrYrpr�gɎ�@���?gM-[닄�?r�r�i ri)�stepsr�cs�tj}|j|jd}|t|j|j�}||�d||���fdd�t|�D�}tt|j|��}tt|j|��}	t||�||	��}
|tt	||	��|
S)Nrpcsg|]}�|��qSrrr��r�r�rrr!
szHTestNormalDist.test_overlap.<locals>.overlap_numeric.<locals>.<listcomp>)
rr�r�rr�r"rXr�r�rd)r�r�r�r�r��center�widthZx_arrZxpZypr�rr�r�overlap_numeric
sz4TestNormalDist.test_overlap.<locals>.overlap_numericra�Ar�rkr`r�ri����r��r�r�gj�t��?g�~j�t�h?gj�t��?ga2U0*�3?g��MbX�?rr)r�r�r�Zoverlapr�rPr)r8r�ZX1ZX2Zpublished_resultr�r�rrr�test_overlap�	sF�� zTestNormalDist.test_overlapcCsX|j�dd�}|�|jd�|�|jd�|�|jd�|�|jd�|�|jd�dS)Nrkr`��)r�r�r4r�rrDr�rz)r8r�rrr�test_properties9
szTestNormalDist.test_propertiescCsL|jj}|dd�}|dd�}|�|||dd��|�|||dd��dS)Nrkr�rmri�rlr�)r�r�r4�r8r�r�r�rrr�'test_same_type_addition_and_subtractionA
s


z6TestNormalDist.test_same_type_addition_and_subtractionc	Cs�|jj}|dd�}d}|�|
|dd��|�||dd��|�|||dd��|�|||dd��|�|||dd��|�|||dd��|�|||dd	��|�|||dd	��|�|||dd
��|�t��||W5QRXdS)Nrkr`r�rr�r�i����r�r�r�)r�r�r4r�rP)r8r�r�r&rrr�test_translation_and_scalingH
s
z+TestNormalDist.test_translation_and_scalingcCs||jj}|dd�}|
}|�||�|�|j|j�|�|j|j�|}|�||�|�|j|j�|�|j|j�dS)Nrkr�)r�r�ZassertIsNotr4r�r�rrrr�test_unary_operationsX
s
z$TestNormalDist.test_unary_operationscCs"|jj}|�}|dd�}|�}|dd�}|dd�}|dd�}|�||�|�||�|�||�|�||�|�||�Gdd�d�}|�}	|�|�|	�t�|�||	kd�|�|	|kd�Gdd�d|�}
|
d	d
d�}|d	d
�}|�||�Gdd
�d
�}|d	d
�}
|d	d
�}|�||
�dS)Nrr�r�c@seZdZdd�ZdS)z'TestNormalDist.test_equality.<locals>.AcSsdSr�rrgrrr�__eq__t
sz.TestNormalDist.test_equality.<locals>.A.__eq__N)r,r-r.rrrrrrJs
srJr�cseZdZ�fdd�Z�ZS)z5TestNormalDist.test_equality.<locals>.SizedNormalDistcst��||�||_dSr@)re�__init__r)r8r�r�rrhrrr~
sz>TestNormalDist.test_equality.<locals>.SizedNormalDist.__init__)r,r-r.rrjrrrhr�SizedNormalDist}
srrkr`�9c@seZdZdd�ZdS)z3TestNormalDist.test_equality.<locals>.LognormalDistcSs||_||_dSr@)r�r�)r8r�r�rrrr�
sz<TestNormalDist.test_equality.<locals>.LognormalDist.__init__N)r,r-r.rrrrr�
LognormalDist�
sr	)r�r�r�r4r�NotImplemented)r8r��nd1�nd2�nd3Znd4Znd5Znd6rJrr�sr	Zlndr�rrr�
test_equalityd
s2






zTestNormalDist.test_equalitycCsZ|j�dd�}t�|�}|�||�t�|�}|�||�t�t�|��}|�||�dS)N��B@��@)r�r��copyr4�deepcopy�pickle�loads�dumps)r8r�rrr
rrr�test_pickle_and_copy�
s

z#TestNormalDist.test_pickle_and_copycCsH|jj}|dd�|dd�|dd�|dd�|dd�h}|�t|�d�dS)Nrkr`r�g.@r�rbr})r�r�r4rK)r8ZNDrrrr�test_hashability�
s,zTestNormalDist.test_hashabilitycCs"|j�dd�}|�t|�d�dS)Nrrz NormalDist(mu=37.5, sigma=5.625))r�r�r4�reprr�rrr�	test_repr�
szTestNormalDist.test_reprN)r,r-r.r�r�r�r�r�r�rZskip_if_pgo_taskr�r�r�r�rrrrrrrrrrrr�	s$	'
@
?,	r�c@s eZdZeZdd�Zdd�ZdS)�TestNormalDistPythoncCs|jtjd<dSr2�r�r
�modulesr[rrrr��
szTestNormalDistPython.setUpcCsttjd<dSr2�r/r
rr[rrr�tearDown�
szTestNormalDistPython.tearDownN)r,r-r.r6r�r�rrrrrr�
srr:c@s eZdZeZdd�Zdd�ZdS)�TestNormalDistCcCs|jtjd<dSr2rr[rrrr��
szTestNormalDistC.setUpcCsttjd<dSr2rr[rrrr�
szTestNormalDistC.tearDownN)r,r-r.r;r�r�rrrrrr �
sr cCs|�t���|Sr@)ZaddTestsrZDocTestSuite)�loaderZtests�ignorerrr�
load_tests�
sr#�__main__)r"r#)Lr�rA�collections.abcrr�rrrrr
r=�testrrrYrr/r
rr!r)r*Zimport_fresh_moduler6r;r�r1r?rXr]rsr�r�r�r�r�r�rr
rr2r=rCr^rnr|r�r�r�r�r�r�r�rrrr r$r%rCrNrQrgroryr�r�r�r�r�rr>r r#r,�mainrrrr�<module>s�
:+
_
>@w-@4d:c'H
@`X9
r:	1B%'Y%	



F1le Man4ger