HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_statistics.cpython-310.opt-2.pyc
o

�i���@s�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZddlmZddlmZddlZdd�Zdd	�Zd
d�Zd�dd�ZGdd�d�Zejddgd�Zejddgd�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
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,d-�d-e
j�Z'Gd.d/�d/e
j�Z(Gd0d1�d1e
j�Z)Gd2d3�d3e
j�Z*Gd4d5�d5e
j�Z+Gd6d7�d7e
j�Z,Gd8d9�d9e
j�Z-Gd:d;�d;e
j�Z.Gd<d=�d=e
j�Z/Gd>d?�d?e
j�Z0Gd@dA�dA�Z1GdBdC�dC�Z2GdDdE�dEe1e2�Z3GdFdG�dGe�Z4GdHdI�dIe�Z5GdJdK�dKe�Z6GdLdM�dMe1�Z7GdNdO�dOee7e2�Z8GdPdQ�dQee7e2�Z9GdRdS�dSee7�Z:GdTdU�dUee2�Z;GdVdW�dWe:e2�Z<GdXdY�dYe:e2�Z=GdZd[�d[e:�Z>Gd\d]�d]ee7e2�Z?Gd^d_�d_e
j�Z@Gd`da�dae
j�ZAGdbdc�dce1�ZBGddde�deeBee2�ZCGdfdg�dgeBee2�ZDGdhdi�dieBe�ZEGdjdk�dkeBe�ZFGdldm�dme
j�ZGGdndo�doe
j�ZHGdpdq�dqe
j�ZIGdrds�dse
j�ZJGdtdu�due
j�ZKGdvdw�dw�ZLGdxdy�dye
jeL�ZMe
�Nedz�Gd{d|�d|e
jeL��ZOd}d~�ZPeQdk�rLe
�R�dSdS)��N)�support)�
import_helper)�Decimal��FractioncCs	t�d|�S)N�)�math�copysign��x�r�1/usr/local/lib/python3.10/test/test_statistics.py�signsrcCs\	t|�t|�urdSt|t�rt�|�ot�|�S|��d}|��d}||ko-|dvS)NF�)�n�N)�type�
isinstance�floatr�isnanZas_tuple)�a�bZaexpZbexprrr
�
_nan_equal"s
rcCs<	tt|�t|��}t||�}|r||ntd�}||fS�N�inf)�max�absr)�actual�expected�base�abs_err�rel_errrrr
�_calc_errorsAs
	r"��-���q=�H�����z>cCs�	|dks	|dkr
td��t�|�st�|�rdS||krdSt�|�s)t�|�r+dSt||�}t||tt|�t|���}||kS)Nrz%error tolerances must be non-negativeFT)�
ValueErrorrr�isinfrr)r�y�tol�relZactual_errorZ
allowed_errorrrr
�approx_equalQs!r*c@seZdZ	dS)�
_DoNothingN��__name__�
__module__�__qualname__rrrr
r+�s#r+�
statistics�_statistics)Zblocked)Zfreshc@s.eZdZdgZdd�Ze�ed�dd��ZdS)�TestModulesZ_normal_dist_inv_cdfcC�$|jD]}|�tt|�jd�qdS�Nr0)�
func_names�assertEqual�getattr�
py_statisticsr.��selfZfnamerrr
�test_py_functions�s
�zTestModules.test_py_functions�requires _statisticscCr3)Nr1)r5r6r7�c_statisticsr.r9rrr
�test_c_functions�s
�zTestModules.test_c_functionsN)	r-r.r/r5r;�unittest�
skipUnlessr=r>rrrr
r2�s

r2c@s@eZdZ	dZZ	ddd�Zdd�Zddd�Zed	d
��Z	dS)
�NumericTestCaserNcCs\	|dur|j}|dur|j}t|tjj�r!t|tjj�r!|j}n|j}||||||�dS�N)r(r)r�collections�abc�Sequence�_check_approx_seq�_check_approx_num)r:�first�secondr(r)�msg�checkrrr
�assertApproxEqual�s��z!NumericTestCase.assertApproxEqualc
	Csnt|�t|�krdt|�t|�f}|�||�}|�|��tt||��D]\}\}}	|�||	||||�q$dS)Nz0sequences differ in length: %d items != %d items)�len�_formatMessage�failureException�	enumerate�ziprG)
r:rHrIr(r)rJ�standardMsg�ir�errr
rF�s��
�z!NumericTestCase._check_approx_seqcCs:t||||�r	dS|�|||||�}|�||�}|�|��rB)r*�_make_std_err_msgrNrO)r:rHrIr(r)rJ�idxrRrrr
rG	s

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")	rHrIr(r)rV�template�headerr r!rrr
rUs�z!NumericTestCase._make_std_err_msg)NNNrB)
r-r.r/r(r)rLrFrG�staticmethodrUrrrr
rA�s
�,
	rAc@seZdZ	dd�ZdS)�TestSigncCs$|�td�d�|�td�d�dS)N�rg����)r6r�r:rrr
�
testZeroes*szTestSign.testZeroesN)r-r.r/r^rrrr
rZ(srZc@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ApproxEqualSymmetryTestcCsTdddtd�tdd�g}ddd	td
�tdd�g}t||�D]
\}}|�||�qdS)Ni�	gfffff�B@gfffff�(�z2.54��6i�	g������B@gR����(�z2.59�)rrrQ�do_relative_symmetry)r:Zargs1Zargs2rrrrr
�test_relative_symmetry5s

�z.ApproxEqualSymmetryTest.test_relative_symmetrycCstt||�t||�}}||}t||�t||�}}||d}|�t||d|d��|�t||d|d��dS)Nrr�r(r))�minrr�
assertTruer*)r:rr�deltaZrel_err1Zrel_err2r)rrr
rdEsz,ApproxEqualSymmetryTest.do_relative_symmetrycCsgd�}d}|D]v}ttttfD]m}||�d}||}t|t||��}|j||||d�|j|||dd|d�|j|||d|dd�|j||||dd�|j|||d|d�|j|||dd|d�|j||ddd�|j||ddd�qqdS)N)i�������ki�mr�drfrr)�intrrrrr�do_symmetry_test)r:�argsrir�type_rr'�rrrr
�
test_symmetryQs"��z%ApproxEqualSymmetryTest.test_symmetryc
Cs@d}t||||�}t||||�}|�|||�||||f��dS)Nz+approx_equal comparisons don't match for %r)r*r6�format)r:rrr(r)rWZflag1Zflag2rrr
rois z(ApproxEqualSymmetryTest.do_symmetry_testN)r-r.r/rerdrsrorrrr
r`2s
r`c@�TeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�ApproxEqualExactTestcCsJt||||d�}|�|d|�t||||d�}|�|d|�dS)Nrfzequality failure for x=%r)r*rh)r:rr(r)�resultrrr
�do_exactly_equal_testvsz*ApproxEqualExactTest.do_exactly_equal_testcC�dD]	}|�|dd�qdS)N)�*iMi~:��iiU�
i�r�rx�r:rrrr
�test_exactly_equal_ints|��z,ApproxEqualExactTest.test_exactly_equal_intscCry)N)g�z�G��?g/�$���?g�����e�@g7@gpf@g!�rh��Q@gB`��"KB@rr|�r:rrrr
�test_exactly_equal_floats�rz.ApproxEqualExactTest.test_exactly_equal_floatscCsNt}|dd�|d�|dd�|dd�|dd	�|dd�fD]	}|�|dd�qdS)
Nrrrrk��	��#�$)rrx�r:�F�frrr
�test_exactly_equal_fractions�s6�z1ApproxEqualExactTest.test_exactly_equal_fractionscCs*t}t|d���D]	}|�|dd�q	dS)Nz8.2 31.274 912.04 16.745 1.2047r)r�map�splitrx)r:�D�drrr
�test_exactly_equal_decimals�s�z0ApproxEqualExactTest.test_exactly_equal_decimalscCsFdD]}|�|dd�|�|ddd�t|d�}|�|dd�qdS)N)�i�i\i�i���{�G�z�?r�
i�)rxr)r:rr�rrr
�test_exactly_equal_absolute�s
�z0ApproxEqualExactTest.test_exactly_equal_absolutecCs2|�td�td�d�|�td�td�d�dS)Nz3.571�0.01rz81.3971)rxrr]rrr
�$test_exactly_equal_absolute_decimals�sz9ApproxEqualExactTest.test_exactly_equal_absolute_decimalscCs@dddtdd�fD]	}|�|dd�q	|�td�dtd	��dS)
Ni� g33333SY@g�z�G�rk�rr�z11.68r��rrxrr�rrr
�test_exactly_equal_relative�sz0ApproxEqualExactTest.test_exactly_equal_relativecCsHdddtdd�fD]	}|�|dd�q	t}|�|d�|d	�|d
��dS)Ni9�gˡE��0@g\��(h��r��皙�����?r�z7.2z0.1r�r�)r:rr�rrr
�test_exactly_equal_both�sz,ApproxEqualExactTest.test_exactly_equal_bothN)r-r.r/rxr~r�r�r�r�r�r�r�rrrr
rvpsrvc@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�ApproxEqualUnequalTestcCs8||fD]}t||dddd�}|�|d|�qdS)Nrrrfzinequality failure for x=%r)r*�assertFalse)r:rrrwrrr
�do_exactly_unequal_test�s�z.ApproxEqualUnequalTest.do_exactly_unequal_testcC�dD]}|�|�qdS)N)i�i��i�i�iXC�r�r}rrr
�test_exactly_unequal_ints���z0ApproxEqualUnequalTest.test_exactly_unequal_intscCr�)N)g��Q�#@g����[�@gfffff�G@gףp=
W"@g=
ףp=1@r�r�rrr
�test_exactly_unequal_floats�r�z2ApproxEqualUnequalTest.test_exactly_unequal_floatscCs<t}|dd�|dd�|dd�|dd�fD]}|�|�qdS)	Nrrkr�r����eiς)rr�r�rrr
�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��r:r�rrr
�test_exactly_unequal_decimals�s�z4ApproxEqualUnequalTest.test_exactly_unequal_decimalsN)r-r.r/r�r�r�r�r�rrrr
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]$}|�||�}|�t||d|dd�|�|�t|||ddd�|�q
dS)N�Test failure for x={!r}, y={!r}rrrf�rtrhr*r��r:rrirWr'rJrrr
�do_approx_equal_abs_test�s�z/ApproxEqualInexactTest.do_approx_equal_abs_testcC�&dD]}|�|d�|�|d�qdS)N)i��iI���i����rjrrr��%i�i�&i6�jr�r�r�r}rrr
�test_approx_equal_absolute_ints���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�rrr
�!test_approx_equal_absolute_floats�s
�z8ApproxEqualInexactTest.test_approx_equal_absolute_floatscCsFtdd�}gd�}dd�|D�D]}|�||�|�|t|��qdS)Nr�)i������rjr\rrrkra��"�Gcss�|]}t|d�VqdS)r�Nr)�.0rrrr
�	<genexpr>�s�zNApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>)rr�r)r:ri�
numeratorsr�rrr
�$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�)r:rir�rrr
�#test_approx_equal_absolute_decimals�s
�z:ApproxEqualInexactTest.test_approx_equal_absolute_decimalscCs|�tddddd��dS)Ng�h㈵��>g�h㈵��r�rrf)rhr*r]rrr
�test_cross_zero��z&ApproxEqualInexactTest.test_cross_zeroc	Csjd}|d||d|fD]$}|�||�}|�t||dd|d�|�|�t||d|dd�|�qdS)Nr�rrrrfr�r�rrr
�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=
�?rfg�G�z��?i�i��?i�i�)rhr*r�r]rrr
�test_approx_equal_relative_intss
z6ApproxEqualInexactTest.test_approx_equal_relative_intscCr�)N)g{�G�Jf�皙������r�r�g\��(|B@g��ʡE>�@g��x��@�{�G�z�?r�)r�r�rrr
�!test_approx_equal_relative_floatsr�z8ApproxEqualInexactTest.test_approx_equal_relative_floatscCsht}tdd�}|dd�|dd�|dd�|dd	�fD]}|t|�fD]}|�||�|�||�q!qdS)
Nr�r��Tra��1�2�\�U)rrr�)r:r�rir�r�rrr
�$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�rrr
�#test_approx_equal_relative_decimalss�z:ApproxEqualInexactTest.test_approx_equal_relative_decimalscCst|r|jn|j}|t|||dd��|r|jn|j}|t||d|d��|s(|r+|jn|j}|t||||d��dS)Nrrf)rhr�r*)r:rrr(r)Ztol_flagZrel_flagrKrrr
�
do_check_both+sz$ApproxEqualInexactTest.do_check_bothcC�,|�dddddd�|�dddd	dd�dS)
N�R����@�+���@���Mbp?���W�8?Tg?5^�I��g%��C�����Mb`?g-C��6*?�r�r]rrr
�test_approx_equal_both13�z.ApproxEqualInexactTest.test_approx_equal_both1cC�|�dddddd�dS)Nr�r�r�gV�F�?8?TFr�r]rrr
�test_approx_equal_both28�z.ApproxEqualInexactTest.test_approx_equal_both2cCr�)Nr�r����MbP?r�FTr�r]rrr
�test_approx_equal_both3<r�z.ApproxEqualInexactTest.test_approx_equal_both3cCr�)
Ng=
ףp=@�@r�r�Fg�Q��[�@g�(\��[�@r�giUMu�>r�r]rrr
�test_approx_equal_both4@r�z.ApproxEqualInexactTest.test_approx_equal_both4N)r-r.r/r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
r��s"		r�c@r_)
�ApproxEqualSpecialsTestcCs�ttfD]=}|d�}|�t||��|�t||dd��|�t||dd��|�t||��|�t||��|�t|d��qdS)Nrrrr���)rrrhr*r�)r:rqrrrr
�test_infIs�z ApproxEqualSpecialsTest.test_infcCs>ttfD]}|d�}||d�dfD]
}|�t||��qqdS)N�nanrr�)rrr�r*)r:rqr��otherrrr
�test_nanSs��z ApproxEqualSpecialsTest.test_nancCs&t�dd�}|�t|dddd��dS)Nr[r\r�rf)rr	rhr*�r:Znzerorrr
�test_float_zeroesYsz)ApproxEqualSpecialsTest.test_float_zeroescCs&td�}|�t|td�ddd��dS)Nz-0.0rr�rf)rrhr*r�rrr
�test_decimal_zeroes]sz+ApproxEqualSpecialsTest.test_decimal_zeroesN)r-r.r/r�r�r�r�rrrr
r�Fs

r�c@�eZdZdd�Zdd�ZdS)�TestApproxEqualErrorscC�|�ttdddd�dS)Nrmr\r���assertRaisesr%r*r]rrr
�test_bad_toler�z"TestApproxEqualErrors.test_bad_tolcCr�)Nrmrr�r�r]rrr
�test_bad_relir�z"TestApproxEqualErrors.test_bad_relN)r-r.r/r�r�rrrr
r�bsr�c@r�)�TestNumericTestCasecCs.tj|�}|j|�}|D]}|�||�qdSrB)rArU�generate_substringsZassertIn)r:rpZ
actual_msgrZ	substringrrr
�do_testys


�zTestNumericTestCase.do_testcCs|�tttj��dSrB)rh�
issubclassrAr?�TestCaser]rrr
� test_numerictestcase_is_testcasesz4TestNumericTestCase.test_numerictestcase_is_testcasecC�d}|�|�dS)N)�@�@r���?N�r��r:rprrr
�test_error_msg_numeric��z*TestNumericTestCase.test_error_msg_numericcCr)N)�@g� @g�?r�r�rrrrr
�test_error_msg_sequence�rz+TestNumericTestCase.test_error_msg_sequencec	CsF	t||�\}}d|d|d|d|g}|dur!|�d|�|S)Nztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r"�append)	r:rHrIr(r)rVr r!Z
substringsrrr
r��s�z'TestNumericTestCase.generate_substringsN)r-r.r/r�r�rr	r�rrrr
r�ssr�c@s(eZdZeZddgZdd�Zdd�ZdS)�GlobalsTest�__doc__�__all__cCs(|jD]}|�t|j|�d|�qdS)Nz%s not present)�expected_metadatarh�hasattr�module)r:�metarrr
�	test_meta�s

��zGlobalsTest.test_metacCsB|j}|jD]}|�|�d�d|�|�t||�d|�qdS)N�_zprivate name "%s" in __all__zmissing name "%s" in __all__)rr
r��
startswithrhr)r:r�namerrr
�test_check_all�s
���zGlobalsTest.test_check_allN)r-r.r/r0rrrrrrrr
r�s
rc@s(eZdZe�ejjdkd�dd��ZdS)�DocTestsrz)Docstrings are omitted with -OO and abovecCs0tjttjd�\}}|�|d�|�|d�dS)N)Zoptionflagsr)�doctest�testmodr0�ELLIPSIS�
assertGreaterr6)r:ZfailedZtriedrrr
�test_doc_tests�szDocTests.test_doc_testsN)	r-r.r/r?ZskipIf�sys�flags�optimizerrrrr
r�s
�rc@�eZdZdd�ZdS)�StatisticsErrorTestcCs4d}|�ttd��|�ttjt�|tjj�dS)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.�StatisticsError)rhrr0r�r"r%�__base__)r:�errmsgrrr
�test_has_exception�s�

�z&StatisticsErrorTest.test_has_exceptionN)r-r.r/r%rrrr
r!��r!c@�DeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�ExactRatioTestcCs$dD]
}|�t�|�|df�qdS)N)i�����rrk�cl F�x:^Vr)r6r0�_exact_ratio)r:rSrrr
�test_int�s�zExactRatioTest.test_intcCs2d}|D]}t|d�}|�t�|�|df�qdS)N)���rr��&r�)rr6r0r+)r:r�rr�rrr
�
test_fraction�s

�zExactRatioTest.test_fractioncCsb|�t�d�d�|�t�d�d�dd�td�D�}|D]}t�|�\}}|�|||�qdS)Nr��rr���?)r�r�cS�g|]}t�dd��qS)���rm��random�uniform�r�rrrr
�
<listcomp>��z-ExactRatioTest.test_float.<locals>.<listcomp>rm)r6r0r+�range)r:�datar�num�denrrr
�
test_float�s�zExactRatioTest.test_floatcCsJt}tj}|�||d��d�|�||d��d�|�||d��d�dS)Nz0.125r0z12.345)i�	��z-1.98)i����r�)rr0r+r6)r:r�r+rrr
�test_decimal�s
zExactRatioTest.test_decimalcCs�td�}Gdd�dt�}Gdd�dt�}||fD]0}t|t|fD]'}||�}t�|�}|�||df�|�t|d�|�|�t�|d��q!qdS)N�INFc@�eZdZdS)z(ExactRatioTest.test_inf.<locals>.MyFloatNr,rrrr
�MyFloat��rCc@rB)z*ExactRatioTest.test_inf.<locals>.MyDecimalNr,rrrr
�	MyDecimal�rDrEr)	rrr0r+r6rrhrr&)r:rArCrErrqr�ratiorrr
r��s
��zExactRatioTest.test_infcCsttd�}Gdd�dt�}|||�fD]%}t�|�}|�t�|d��|�|dd�|�t|d�t|��qdS)N�NANc@rB)z.ExactRatioTest.test_float_nan.<locals>.MyFloatNr,rrrr
rC�rDrCrr)	rr0r+rhrr�assertIsr6r)r:rGrCr�rFrrr
�test_float_nan�s
�zExactRatioTest.test_float_nancCs�td�}td�}Gdd�dt�}|||�|||�fD]%}t�|�}|�t|d|��|�|dd�|�t|d�t|��qdS)NrG�sNANc@rB)z2ExactRatioTest.test_decimal_nan.<locals>.MyDecimalNr,rrrr
rErDrErr)rr0r+rhrrHr6r)r:rGrJrEr�rFrrr
�test_decimal_nans
�zExactRatioTest.test_decimal_nanN)
r-r.r/r,r/r>r@r�rIrKrrrr
r(�s
r(c@�<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�DecimalToRatioTestcCs<td�}|�t�|�|df�|�t�|�|df�dS)NrA)rr6r0r+)r:rrrr
�
test_infinitysz DecimalToRatioTest.test_infinitycCsDtd�td�fD]}t�|�\}}|�t||��|�|d�qdS)NrGrJ)rr0r+rhrrH)r:r�r<r=rrr
r�s
�zDecimalToRatioTest.test_nancCsltd�td�g}|D])}t�|�\}}|�|d�|�|d�t�|�\}}|�|d�|�|d�q
dS)Nz	9.8765e12z
9.8765e-12r)rr0r+�assertGreaterEqualrZassertLessEqual)r:Znumbersr�r<r=rrr
�	test_sign s�zDecimalToRatioTest.test_signcC�t�td��}|�|d�dS)Nz0.1234)ii��r0r+rr6�r:�trrr
�test_negative_exponent.�z)DecimalToRatioTest.test_negative_exponentcCrQ)Nz1.234e7)i K�rrSrTrrr
�test_positive_exponent3rWz)DecimalToRatioTest.test_positive_exponentcCs8t�td��}|�|d�t�td��}|�|d�dS)NZ1e2)rmrz1.47e5)i8>rrSrTrrr
�test_regression_205368sz(DecimalToRatioTest.test_regression_20536N)	r-r.r/rNr�rPrVrXrYrrrr
rM
s
rMc@�$eZdZdd�Zdd�Zdd�ZdS)�IsFiniteTestcCs0dtdd�dtd�fD]
}|�t�|��qdS)Nrkrr�r�5.5)rrrhr0�	_isfiniter�rrr
�test_finiteD��zIsFiniteTest.test_finitecCs*td�td�fD]
}|�t�|��qdSr�rrr�r0r]r�rrr
rNIs�zIsFiniteTest.test_infinitycCs0td�td�td�fD]
}|�t�|��qdS�Nr�rGrJr`r�rrr
r�Nr_zIsFiniteTest.test_nanN)r-r.r/r^rNr�rrrr
r[Asr[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�|�qdS)Nc@rB)z%CoerceTest.test_bool.<locals>.MyClassNr,rrrr
�MyClasso�rc)rnrrrrHr0�_coerce�bool)r:�Trcrrr
�	test_boolis
�zCoerceTest.test_boolcCs.	|�t�||�|�|�t�||�|�dSrB)rHr0re�r:�A�Brrr
�assertCoerceTor�zCoerceTest.assertCoerceTocCsV	|�||�Gdd�d|�}|�||�Gdd�d|�}|�||�|�||�dS)Nc@rB)z/CoerceTest.check_coerce_to.<locals>.SubclassOfANr,rrrr
�SubclassOfA|rdrnc@rB)z/CoerceTest.check_coerce_to.<locals>.SubclassOfBNr,rrrr
�SubclassOfBrdro)rl)r:rjrkrnrorrr
�check_coerce_towszCoerceTest.check_coerce_tocCs.	|�ttj||f�|�ttj||f�dSrB)r��	TypeErrorr0rerirrr
�assertCoerceRaises�rmzCoerceTest.assertCoerceRaisescCs�	|�t�||�|�Gdd�d|�}Gdd�d|�}Gdd�d|�}|||fD]}|�||�q(|�||�|�||�|�||�dS)Nc@rB)z*CoerceTest.check_type_coercions.<locals>.UNr,rrrr
�U�rdrsc@rB)z*CoerceTest.check_type_coercions.<locals>.VNr,rrrr
�V�rdrtc@rB)z*CoerceTest.check_type_coercions.<locals>.WNr,rrrr
�W�rdru)rHr0rerlrr)r:rgrsrtru�typrrr
�check_type_coercions�szCoerceTest.check_type_coercionscCs*|�t�tttfD]}|�t|�q
dSrB)rwrnrrrrp)r:rvrrr
r,�s
�zCoerceTest.test_intcCs|�t�|�tt�dSrB)rwrrprr]rrr
r/�s
zCoerceTest.test_fractioncC�|�t�dSrB)rwrr]rrr
r@��zCoerceTest.test_decimalcCrxrB)rwrr]rrr
r>�ryzCoerceTest.test_floatcCs:tttd�ttfD]}ttttfD]}|�	||�qq	dSrB)
�str�listr�tuple�dictrnrrrrr)r:Zbad_typeZ	good_typerrr
�test_non_numeric_types�s
��z!CoerceTest.test_non_numeric_typescCs:ttfD]}Gdd�d|�}|�|t�|�|t�qdS)Nc@rB)z6CoerceTest.test_incompatible_types.<locals>.MySubclassNr,rrrr
�
MySubclass�rdr)rrrrr)r:rgrrrr
�test_incompatible_types�s
�z"CoerceTest.test_incompatible_typesN)r-r.r/rhrlrprrrwr,r/r@r>r~r�rrrr
rbTs	rbc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�ConvertTestcCs&	|�||�|�t|�t|��dSrB)r6rHr�r:rr'rrr
�check_exact_equal�szConvertTest.check_exact_equalcCsPt�td�t�}|�|d�Gdd�dt�}t�td�|�}|�||d��dS)Nr�c@rB)z#ConvertTest.test_int.<locals>.MyIntNr,rrrr
�MyInt�rdr�ra)r0�_convertrrnr�)r:rr�rrr
r,�s
zConvertTest.test_intcCs\t�tdd�t�}|�|tdd��Gdd�dt�}t�tdd�|�}|�||dd��dS)N�_r*c�eZdZ�fdd�Z�ZS)z-ConvertTest.test_fraction.<locals>.MyFractionc�|�t��|��SrB��	__class__�super�__truediv__�r:r��r�rr
r���z9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__�r-r.r/r��
__classcell__rrr�r
�
MyFraction��r�r��
)r0r�rr�)r:rr�rrr
r/�s
zConvertTest.test_fractioncCsTt�tdd�t�}|�|d�Gdd�dt�}t�tdd�|�}|�||d��dS)	Nr\rg�cr�)z'ConvertTest.test_float.<locals>.MyFloatcr�rBr�r�r�rr
r��r�z3ConvertTest.test_float.<locals>.MyFloat.__truediv__r�rrr�r
rC�r�rCr�r�r1)r0r�rrr�)r:rrCrrr
r>�s
zConvertTest.test_floatcCsXt�tdd�t�}|�|td��Gdd�dt�}t�tdd�|�}|�||d��dS)	Nr�(z0.025cr�)z+ConvertTest.test_decimal.<locals>.MyDecimalcr�rBr�r�r�rr
r��r�z7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__r�rrr�r
rE�r�rEr�r�z-0.9375)r0r�rrr�)r:rrErrr
r@�s
zConvertTest.test_decimalcCsFtd�td�fD]}||fD]}t�|t|��}|�||�qqdSr)rrr0r�rr�)r:rArrrrr
r��s��zConvertTest.test_infcCs@td�td�td�fD]}t�|t|��}|�t||��qdSra)rrr0r�rrhr)r:r�rrrr
r��s�zConvertTest.test_nancCs<|�t��t�dt�Wd�dS1swYdSrB)r�rqr0r�rr]rrr
�test_invalid_input_type�s"�z#ConvertTest.test_invalid_input_typeN)r-r.r/r�r,r/r>r@r�r�r�rrrr
r��s


r�c@s&eZdZ	dd�Zdd�Zdd�ZdS)�FailNegTestcCs2ddtd�td�g}tt�|��}|�||�dS�Nr�@r�r�)rrr{r0�	_fail_negr6)r:�values�newrrr
�test_pass_through�szFailNegTest.test_pass_throughcCs@ddtd�td�fD]}|g}t�|�}|�tjt|�q
dSr�)rrr0r�r�r"�next)r:r�seq�itrrr
�test_negatives_raise�s

�z FailNegTest.test_negatives_raisec
Csrdt�dd�}ztt�dg|��Wntjy+}z|jd}WYd}~n
d}~ww|�d�|�||�dS)Nzbadness #%d�'i��r\rz(expected exception, but it didn't happen)	r5�randintr�r0r�r"rpZfailr6)r:rJrTr$rrr
�test_error_msgs��
zFailNegTest.test_error_msgN)r-r.r/r�r�r�rrrr
r��s
r�c@r�)�FindLteqTestc
Cs�gdfddgdfddgdffD]6\}}|j||d��#|�t��t�||�Wd�n1s1wYWd�n1s@wYqdS)Nrrr��rr)�subTestr�r%r0�
_find_lteq)r:rrrrr
�test_invalid_input_valuess

������z&FindLteqTest.test_invalid_input_valuesc	Cszgd�ddfgd�ddfgd�ddffD]&\}}}|j||d��|�|t�||��Wd�n1s5wYqdS)	N�rrrrr�rr�rrrrrr��rrr�r�r�r�rr�)r�r6r0r�)r:rr�
expected_irrr
�test_locate_successfullys����z%FindLteqTest.test_locate_successfullyN�r-r.r/r�r�rrrr
r�s
r�c@r�)�FindRteqTestc	CsbdgddfddgddffD]!\}}}|�t��t�|||�Wd�n1s)wYq
dS)Nrrr�r)r�r%r0�
_find_rteq)r:r�lrrrr
r�,s
����z&FindRteqTest.test_invalid_input_valuesc
Cs�gd�dddfgd�dddfgd�dddffD])\}}}}|j|||d	��|�|t�|||��Wd�n1s;wYqdS)
Nr�rrrr�r�r�r�)rr�r)r�r6r0r�)r:rr�rr�rrr
r�4s����z%FindRteqTest.test_locate_successfullyNr�rrrr
r�)sr�c@�\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�UnivariateCommonMixincCs|�t|j�dSrB�r�rq�funcr]rrr
�test_no_argsCsz"UnivariateCommonMixin.test_no_argscCs*gdtg�fD]}|�tj|j|�qdS)Nr)�iterr�r0r"r�)r:�emptyrrr
�test_empty_dataGs�z%UnivariateCommonMixin.test_empty_datacCs4	ttd��}|t|�krt�|�|t|�ks
|S�Nr��r{r:�sortedr5�shuffle�r:r;rrr
�prepare_dataLs
�z"UnivariateCommonMixin.prepare_datacCs0|��}|dd�}|�|�}|�||d�dS)Nzdata has been modified)r�r�ZassertListEqual)r:r;Zsavedrrrr
�test_no_inplace_modificationsSs
z3UnivariateCommonMixin.test_no_inplace_modificationscCs:gd�d}|�|�}t�|�|�|�}|�||�dS)N)rrr�r�r�r�rk�rm)r�r5r�r6�r:r;rrrrr
�test_order_doesnt_matter]s



z.UnivariateCommonMixin.test_order_doesnt_mattercCsnGdd�dt�}Gdd�dt�}dd�}|��}|�|�}ttt|||fD]}|�||��}|�||�q%dS)Nc@rB)zBUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListNr,rrrr
�MyListlrDr�c@rB)zCUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleNr,rrrr
�MyTuplenrDr�cSsdd�|D�S)Ncss�|]}|VqdSrBr)r��objrrr
r�qs�zXUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator.<locals>.<genexpr>r�r;rrr
�	generatorp�zEUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator)r{r|r�r�r�r6)r:r�r�r�r;r�kindrwrrr
�test_type_of_data_collectionjs
�z2UnivariateCommonMixin.test_type_of_data_collectioncCs0tddd�}|�t|��}|�|�|�|�dS�N�r�r�)r:r�r{r6�r:r;rrrr
�test_range_dataxsz%UnivariateCommonMixin.test_range_datacCs.|�d�|�d�|�d�|�t��dS)Nr�gE@)�check_for_type_error�objectr]rrr
�test_bad_arg_types~s



z(UnivariateCommonMixin.test_bad_arg_typescGs|jt|jg|�R�dSrBr�rrrr
r��sz*UnivariateCommonMixin.check_for_type_errorcshGdd�dt�}|��}|�|�}t|ttfD]��fdd�|D�}t|�|�|��}|�||�qdS)Ncs,eZdZ�fdd�Z�fdd�ZeZ�ZS)z@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatc�t|�t��|��SrB�rr�r�r�r�rr
r���zLUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__cr�rB�rr��__add__r�r�rr
r��r�zHUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__)r-r.r/r�r��__radd__r�rrr�r
rC�srCc�g|]}�|��qSrr�r�r�r�rr
r8��zCUnivariateCommonMixin.test_type_of_data_element.<locals>.<listcomp>)rr�r�rrrr6)r:rC�rawrr;rwrr�r
�test_type_of_data_element�s
�z/UnivariateCommonMixin.test_type_of_data_elementN)
r-r.r/r�r�r�r�r�r�r�r�r�r�rrrr
r�@s

r�c@seZdZ	dd�Zdd�ZdS)�UnivariateTypeMixincCs	Gdd�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>.MyFloatcr�rBr�r�r�rr
r��r�zTUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__cr�rB)rr��__rtruediv__r�r�rr
r��r�zUUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__cr�rB)rr��__sub__r�r�rr
r��r�zPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__cr�rB)rr��__rsub__r�r�rr
r��r�zQUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__cr�rB)rr��__pow__r�r�rr
r��r�zPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__cr�rBr�r�r�rr
r��r�zPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__)r-r.r/r�r�r�r�r�r�r�r�rrr�r
rC�srC)rrr)r:rCrrr
�#prepare_types_for_conservation_test�sz7UnivariateTypeMixin.prepare_types_for_conservation_testcsF|��}|��D]��fdd�|D�}|�|�}|�t|���qdS)Ncr�rrr�r�rr
r8�r�z<UnivariateTypeMixin.test_types_conserved.<locals>.<listcomp>)r�r�r�rHr)r:r;r�rwrr�r
�test_types_conserved�s
�z(UnivariateTypeMixin.test_types_conservedN)r-r.r/r�r�rrrr
r��s	r�c@r )�
TestSumCommoncCsdd�}||_dS)NcWstj|�\}}}t�||�SrB)r0�_sumre)rprg�valuerrrr
�simplified_sum�sz+TestSumCommon.setUp.<locals>.simplified_sum)r�)r:r�rrr
�setUp�s
zTestSumCommon.setUpN)r-r.r/r�rrrr
r��sr�c@r�)�TestSumcC�tj|_dSrB)r0r�r�r]rrr
r���z
TestSum.setUpcCs4gdtg�fD]}|�|�|�ttd�df�qdS)Nrr)r�r6r�rnrr�rrr
r��s�zTestSum.test_empty_datacCs$|�|�gd��ttd�df�dS)N)rrkr����i����r�rzr�<r�)r6r�rnrr]rrr
�	test_ints�s�zTestSum.test_intscCs&|�|�dgd�ttd�df�dS)Nrr��@)r6r�rrr]rrr
�test_floats�s�zTestSum.test_floatscCs.|�|�tdd�gd�ttdd�df�dS)Nrr���r)r6r�rr]rrr
�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�)rr6r��r:r�r;rrr
�
test_decimals�s��zTestSum.test_decimalscCs:dd�td�D�}|jt|�|�d�t�|�dd�dS)NcSr2)r3r�r4r7rrr
r8�r9z7TestSum.test_compare_with_math_fsum.<locals>.<listcomp>r�rg��ؗ�Ҭ<�r))r:rLrr�r�fsumr�rrr
�test_compare_with_math_fsum�s(z#TestSum.test_compare_with_math_fsumcC�.|�t|jgd�d�|�t|jgd��dS)N�rrr��999)rrr�r�r�r]rrr
�test_strings_fail��zTestSum.test_strings_failcCr�)Nr��999)rrr�rr�r]rrr
�test_bytes_failr�zTestSum.test_bytes_failcCs8|�t|jddtd�g�|�t|jddgtd��dS)Nrr�)r�rqr�rr]rrr
�test_mixed_sumszTestSum.test_mixed_sumN)
r-r.r/r�r�r�r�r�r�r�r�rrrrrr
r��sr�c@r )�SumTortureTestcCs�|�t�gd�d�ttd�df�|�t�gd�d�ttd�df�t�gd�d�\}}}|�|t�|�|d�|jt|�ddd	�dS)
N)r�}Ô%�I�Tr�}Ô%�I��r�g��@i@�)rrrr)�0��.�++rrr\g���^�,gV瞯�<r�)r6r0r�rrrHrL)r:rgr<�countrrr
�test_tortures��zSumTortureTest.test_tortureN)r-r.r/rrrrr
rr&rc@ru)�SumSpecialValuescCsNttfD] }|d�}t�d|dg�d}|�t|�|�|�t�|��qdS)Nr�rr)	rrr0r�rHrrhrr)r:rqr�rwrrr
r� s�zSumSpecialValues.test_nancCs>	|�t�|��|�t|�t|��|�|dk|dk�dS�Nr)rhrr&rHrr6)r:rrrrr
�check_infinity'szSumSpecialValues.check_infinitycCsLt�dd|dg�d}|�||�t�dd|d|dg�d}|�||�dS)Nrrr�r�)r0r�r�r:rrwrrr
�do_test_inf.szSumSpecialValues.do_test_infcC�$td�}dD]	}|�||�qdS�Nr�rr\)rr
�r:rrrrr
�test_float_inf6��zSumSpecialValues.test_float_infcCrr)rr
rrrr
�test_decimal_inf;rz!SumSpecialValues.test_decimal_infcCs8td�}t�dd|d|dg�d}|�t�|��dS�Nrrrr�r�)rr0r�rhrrrrrr
�test_float_mismatched_infs@sz+SumSpecialValues.test_float_mismatched_infscCsftd�}dd|d|dg}t�tj��|�t�t�|�d��Wd�dS1s,wYdSr)	r�decimal�localcontextZExtendedContextrhrrr0r��r:rr;rrr
�3test_decimal_extendedcontext_mismatched_infs_to_nanFs
"�zDSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nancCs^td�}dd|d|dg}t�tj��|�tjtj|�Wd�dS1s(wYdSr)rrrZBasicContextr��InvalidOperationr0r�rrrr
�0test_decimal_basiccontext_mismatched_infs_to_nanMs
"�zASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nancCs(td�}d|dg}|�tjtj|�dS)NrJrr)rr�rrr0r�)r:rJr;rrr
�test_decimal_snan_raisesT�
z)SumSpecialValues.test_decimal_snan_raisesN)r-r.r/r�rr
rrrrrrrrrr
r	sr	c@rZ)�AverageMixincCs6dddtdd�td�fD]}|�|�|g�|�qdS)Nr�g@E@g�X_yCrc�z0.28�rrr6r�r�rrr
�test_single_value`��zAverageMixin.test_single_valuecC�dddtdd�td�fS)N�@ra���7y�!C�=�Cz4.9712�rrr]rrr
�'prepare_values_for_repeated_single_testesz4AverageMixin.prepare_values_for_repeated_single_testc
Csf|��D],}dD]'}|j||d��|g|}|�|�|�|�Wd�n1s*wYqqdS)N�rrkr�r�)rr)r*r�r6r��r:rrr;rrr
�test_repeated_single_valuehs
����z'AverageMixin.test_repeated_single_valueN)r-r.r/r"r*r-rrrr
r]src@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestMeancCr�rB)r0�meanr�r]rrr
r�rr�zTestMean.setUpcCs|�|�gd��d�dS)N)rrr�rr�r6r�r]rrr
�test_torture_pepur�zTestMean.test_torture_pepcC�(gd�}t�|�|�|�|�d�dS)N)rrrr�r�r�r�rkrkr�r�r�r�r�r�r�g@@�r5r�r6r�r�rrr
r�yrzTestMean.test_intscCr2)N)g@1@g�3@�4@g�5@g�5@g@7@g 9@g�;@g6@r3r�rrr
r�rzTestMean.test_floatscCsJt}|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.634z2.517z3.912z4.072z5.813z3.5896�rr5r�r6r�r�rrr
r��s"
zTestMean.test_decimalsc	C�ft}|dd�|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|d	d
��dS)Nrrr�r�rkr�r�r�i�i��rr5r�r6r��r:r�r;rrr
r���<
zTestMean.test_fractionscCs`gd�}ttfD]%}dD] }|d�|}||g}|�|�}|�t�|��|�||�qqdS)N�rr�rkr�r�rr)rrr�rhrr&r6)r:r�r�rrr;rwrrr
r��s

��zTestMean.test_infc	Cs:dddtd�dddtd�g}|�|�}|�t�|��dS)	Nrr�r�rrr�rkz-inf)rr�rhrr�r:r;rwrrr
�test_mismatched_infs�s
zTestMean.test_mismatched_infscCsFgd�}ttfD]}|d�}||g}|�|�}|�t�|��qdS)Nr:r�)rrr�rhrr)r:r�r�rr;rwrrr
r��s

�zTestMean.test_nancsBd�gd�}|�|��}|��fdd�|D��}|�||�dS)Nge��A�	�333333@�@g������@g������@g333333@�������@g @g333333 @g������"@c�g|]}|��qSrrr���crr
r8�r�z*TestMean.test_big_data.<locals>.<listcomp>�r�r6�r:r;rrwrrBr
�
test_big_data�s
zTestMean.test_big_datacC�:dd�td�D�}|�|�}|�|d�}|�||�dS)NcSr2)r)rkr4r7rrr
r8�r9z.TestMean.test_doubled_data.<locals>.<listcomp>r�r�r:r�rLr�rrr
�test_doubled_data��
zTestMean.test_doubled_datacCs td�}|�t�|g�|�dS)NZ1e4)rr6r0r/r�rrr
�test_regression_20561�szTestMean.test_regression_20561cCs\|�t�ddg�d�d}d}dD]}|�t�|g|�|�|�t�|g|�|�qdS)Ng�������g�g)rr�rkr?)r6r0r/)r:�bigZtinyrrrr
�test_regression_25177�s���zTestMean.test_regression_25177N)r-r.r/r�r1r�r�r�r�r�r<r�rFrIrKrMrrrr
r.qs		r.cs�eZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Z�ZS)!�TestHarmonicMeancCr�rB)r0Z
harmonic_meanr�r]rrr
r��r�zTestHarmonicMean.setUpcst���}|�d�|Sr
)r�r��remove�r:r�r�rr
r��s

zTestHarmonicMean.prepare_datacCr$)Nr%rar&r'r(z4.125r)r]rrr
r*�r�z8TestHarmonicMean.prepare_values_for_repeated_single_testcC�gd�}|�|�|�d�dS)N)rrrrr0rPrrr
�	test_zero�szTestHarmonicMean.test_zeroc	CsZtj}dggd�fD] }|j|d��|�||j|�Wd�n1s%wYq
dS)Nr\)rrjr�)r�)r0r"r�r�r�)r:�excr�rrr
�test_negative_error�s���z$TestHarmonicMean.test_negative_errorc
Cs�dggd�gd�gd�fD]2}|j|d��"|�t��
|�|�Wd�n1s+wYWd�n1s:wYq
dS)Nz3.14)�1�2�3)rrVr��4rk)gffffff@r>r?z5.6r�)r�r�rqr�r�rrr
�test_invalid_type_error�s������z(TestHarmonicMean.test_invalid_type_errorcCr2)N)rr�r�r�r�r�g333333@r3r�rrr
r��rzTestHarmonicMean.test_intscCs>gd�}t�|�|�|�|�d�|�|�gd��d�dS)N)r�rrr�r�r)rr�r�r�r�r3r�rrr
�test_floats_exact�s
z"TestHarmonicMean.test_floats_exactcCs(tdd�D]}|�|�|g�|�qdS)Nrr��r:r6r�r�rrr
�test_singleton_listss�z%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)
Nrcr�r�r�z0.10z0.20z1.68z0.32z5.94z2.75i�iC)rr6r�r5r�r�rrr
�test_decimals_exact	s.

z$TestHarmonicMean.test_decimals_exactc	Cr6)Nrrr�r�rkr�r�r�i|i�r7r8rrr
r�r9zTestHarmonicMean.test_fractionscCs$dtd�dg}|�|�|�d�dS)Nr�rr�)rr6r�rPrrr
r�szTestHarmonicMean.test_infcCs(dtd�dg}|�t�|�|���dS)Nr�r�r�)rrhrrr�rPrrr
r� szTestHarmonicMean.test_nancsBd�gd�}|�|��}|��fdd�|D��}|�||�dS)N�or=csg|]}|��qSrrr�rBrr
r8*r�z>TestHarmonicMean.test_multiply_data_points.<locals>.<listcomp>rDrErrBr
�test_multiply_data_points%s
z*TestHarmonicMean.test_multiply_data_pointscCrG)NcSr2)rrkr4r7rrr
r8/r9z6TestHarmonicMean.test_doubled_data.<locals>.<listcomp>r�rrHr�rrr
rI-rJz"TestHarmonicMean.test_doubled_datac	Cs�|�|�ddgddg�d�|�|jddgddgd�d�|�|�tddg�tddg��d�|�|�tdd�td	d�td
d�ggd��|�tdd�gdtd	d�gdtd
d�gd��|�|�dgd
g�d�|�t��|�gd
�gd��Wd�n1s�wY|�tj��|�gd
�ddg�Wd�n1s�wY|�tj��|�dgdg�Wd�n1s�wY|�tj��|�ddgddg�Wd�dS1s�wYdS)Nr�r�rkr�gL@)�weightsr�r�r�r�r)rkrr�r�)rrr�rrr�)r6r�r�rr�rqr0r"r]rrr
�test_with_weights4s@��
��&������"�z"TestHarmonicMean.test_with_weights)r-r.r/r�r�r*rRrTrYr�rZr\r]r�r�r�r_rIrar�rrr�r
rN�s"rNcsTeZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
�ZS)�
TestMediancCr�rB�r0�medianr�r]rrr
r�Lr�zTestMedian.setUpcs*	t���}t|�ddkr|�d�|S)Nrr)r�r�rMr
r�r�rr
r�Os


zTestMedian.prepare_datacCrQ)N�rrr�r�rkr�r%r0r�rrr
�test_even_intsV�zTestMedian.test_even_intscCrQ)N)rrr�r�rkr�r�r�r0r�rrr
�
test_odd_ints\rgzTestMedian.test_odd_intscCsVt}|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS)Nrr�rr�r�rkr7r8rrr
�test_odd_fractionsbs,
zTestMedian.test_odd_fractionscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS�Nrr�rr�r�rkr�r7r8rrr
�test_even_fractionsj�4
zTestMedian.test_even_fractionscCsJt}|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)N�2.5�3.1�4.2�5.7�5.8r5r�rrr
�test_odd_decimalsrs"
zTestMedian.test_odd_decimalscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.2rmrnrorprqz3.65r5r�rrr
�test_even_decimalsz�(
zTestMedian.test_even_decimals)r-r.r/r�r�rfrhrirkrrrsr�rrr�r
rbJsrbc@r�)�TestMedianDataTypecCr�rBrcr]rrr
r��r�zTestMedianDataType.setUpcCs2ttd��}|t|�krt�|�|t|�ks|S)Nrcr�r�rrr
r��s

�zTestMedianDataType.prepare_dataN)r-r.r/r�r�rrrr
ru�sruc@r_)
�
TestMedianLowcCr�rB)r0Z
median_lowr�r]rrr
r��r�zTestMedianLow.setUpcCrQ)Nrer�r0r�rrr
rf�rgzTestMedianLow.test_even_intscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dSrjr7r8rrr
rk�rlz!TestMedianLow.test_even_fractionscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS�Nz1.1z2.2z3.3z4.4r\z6.6r5r�rrr
rs�rtz TestMedianLow.test_even_decimalsN�r-r.r/r�rfrkrsrrrr
rv��
rvc@r_)
�TestMedianHighcCr�rB)r0Zmedian_highr�r]rrr
r��r�zTestMedianHigh.setUpcCrQ)Nrer�r0r�rrr
rf�rgzTestMedianHigh.test_even_intscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dSrjr7r8rrr
rk�rlz"TestMedianHigh.test_even_fractionscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dSrwr5r�rrr
rs�rtz!TestMedianHigh.test_even_decimalsNrxrrrr
rz�ryrzc@r�)�TestMedianGroupedcCr�rB)r0Zmedian_groupedr�r]rrr
r��r�zTestMedianGrouped.setUpcCstgd�}|�|�|�d�gd�}|�|�|�d�gd�}|�|�|d�d�gd�}|j|�|d	�d
dd�dS)
N)r�r��r|r|rcrcr|)r�r�r|r|r|r|rcg�+@)rkr�r�rcr�r�r�r��r}r�rkg`3@)r��r~r~r~r�r�r��rr�r���rg������4@�:�0�yE>�r(�r6r�rLr�rrr
�test_odd_number_repeated�sz*TestMedianGrouped.test_odd_number_repeatedcCsvgd�}|j|�|d�ddd�gd�}|j|�|�ddd�gd�}|�|�|�d	�gd
�}|�|�|�d�dS)N)
rkr�r�rcr�r�r�r}r}r�rkg�����*3@r�r�)rr�r�r�r�rkg["8���@)rr�r�r�r�r�rkrkrkrkr�r�r?)
r�r�r�r�rkrkrkrkr�r��@)rLr�r6r�rrr
�test_even_number_repeated�sz+TestMedianGrouped.test_even_number_repeatedcCsLdddtdd�td�fD]}dD]}|g|}|�|�|�t|��qqdS)N�333333@�Dg��ޗCr�r�z32.9714r+)rrr6r�rr,rrr
r-�s
��z,TestMedianGrouped.test_repeated_single_valuecCsPt}|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�d�dS)Nrkr�r�r�ra�@r7r8rrr
ri�s,
z$TestMedianGrouped.test_odd_fractionscCsXt}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�d�dS)Nrkr�r�r�ra�
@r7r8rrr
rks4
z%TestMedianGrouped.test_even_fractionscCsFt}|d�|d�|d�|d�|d�g}t�|�|�|�|�d�dS)Nr\�6.5�7.5�8.5g@r5r�rrr
rr	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\r�r�r��@g@r5r�rrr
rss(
(
z$TestMedianGrouped.test_even_decimalscCs\gd�}|�|�|d�d�gd�}|j|�|d�ddd�gd�}|�|�|d	�d
�dS)N)
�@rrr�r�r�r�r�r%rrg@)r�rrr�r�r�r�r�r�r%rg["8���@r�r�)��r����r�r�r��r��,�@iTr�g�p@r�r�rrr
�
test_intervalszTestMedianGrouped.test_intervalcCspgd�}|�t|j|�gd�}|�t|j|�gd�}d}|�t|j||�gd�}d}|�t|j||�dS)N)�r�r�)�r�r�r�r�r�r�)r:r;�intervalrrr
�test_data_type_error'sz&TestMedianGrouped.test_data_type_errorN)
r-r.r/r�r�r�r-rirkrrrsr�r�rrrr
r{�s	
	r{c@ru)�TestModecCr�rB)r0�moder�r]rrr
r�:r�zTestMode.setUpcCs
	gd�S)N)rrrrr�r�r�r�rr�rrr]rrr
r�=szTestMode.prepare_datacCs"tddd�}|�|�|�d�dSr�r[r�rrr
r�BszTestMode.test_range_datacCs4d}|�|�|�d�d��}|�|�|�d�dS)NZabcbdbrzfe fi fo fum fi fi�fi)r6r�r�r�rrr
�test_nominal_dataGszTestMode.test_nominal_datacCsDttd��}td�D]}||g}t�|�|�|�|�|�q
dSr��r{r:r5r�r6r�)r:r;rSr�rrr
�test_discrete_dataNs

�zTestMode.test_discrete_datacCrQ)N)rrrrrrr�r�rkr�r�r�r�r�r�r�r�rr0r�rrr
�test_bimodal_dataVszTestMode.test_bimodal_datacCs"ttd��}|�|�|�d�dS)Nr�r)r{r:r6r�r�rrr
�test_unique_data]szTestMode.test_unique_datacCs|�t|jd�dSrBr�r]rrr
�test_none_datacszTestMode.test_none_datacCs$tjddd�}|�|�|�d�dS)Nrr)rrr)rC�Counterr6r�)r:rCrrr
�test_counter_datajszTestMode.test_counter_dataN)r-r.r/r�r�r�r�r�r�r�r�r�rrrr
r�8sr�c@r )�
TestMultiModecCs@tj}|�|d�dg�|�|d�gd��|�|d�g�dS)NZaabbbbbbbbccrZaabbbbccddddeeffffgg)rr�r�r�)r0�	multimoder6)r:r�rrr
�test_basicswszTestMultiMode.test_basicsN)r-r.r/r�rrrr
r�usr�c@rZ)�	TestFMeanc	Cs�tj}t}t}gd�ddf|d�|d�|d�gddf|dd	�|d
d�|dd
�gdd
fgd�ddfdd
|dd
�gddfdtgd��ddffD]\}}}||�}|�t|�t|�|�|||�qEdS)N�r%r�@�@�floats�3.5�4.0�5.25�decimalsr�rr�rr��	fractions)TFTTF�333333�?Zbooleansr%�mixed types)r�r�r|�iterator)	r0�fmeanrrr�rHrrr6)r:r�r�r�r;�
expected_meanr��actual_meanrrr
r��s �	�zTestFMean.test_basicscCsJtj}tj}|�|��|g�Wd�n1swY|�|��|tg��Wd�n1s5wY|�t��|d�Wd�n1sNwY|�t��|gd��Wd�n1siwY|�t��|�Wd�n1s�wY|�t��|gd�d�Wd�dS1s�wYdS)N�r�Nr��r�r�r��F)r0r�r"r�r�rq)r:r�r"rrr
�test_error_cases�s(
��
���"�zTestFMean.test_error_casescC�tj}td�}td�}|�t�|d|g��d�|�t�|||g��d�|�t�|d|g��d�|�t��|||g�Wd�dS1sJwYdS�NZNan�Infr�r�znan and infinityZinfinity)	r0r�rrhrrr&r�r%)r:r��NaNr�rrr
�test_special_values��"�zTestFMean.test_special_valuesN)r-r.r/r�r�r�rrrr
r�~sr�c@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�VarianceStdevMixinr#cCs6dddtdd�td�fD]}|�|�|g�d�qdS)Nr�g������3@g���%�Br�r�z8.392rr!r�rrr
r"�r#z$VarianceStdevMixin.test_single_valuecCsHdddtdd�td�fD]}dD]}|g|}|�|�|�d�qqdS)	Nr@r�g@�6��<Cr�r�z62.4802)rr�rkrcrr!r,rrr
r-�s
��z-VarianceStdevMixin.test_repeated_single_valuecCs4dgd}|�|�}|j|ddd�|�|d�dS)Ng.�F7ݚ�?r�r[g��ؗ�Ҍ<r�r)r�rLrOr;rrr
�test_domain_error_regression�s

z/VarianceStdevMixin.test_domain_error_regressionc�>gd�}|�|�}d��fdd�|D�}|�|�|�|�dS)N)
g{�G�z�?gR���Q�?g
ףp=
�?gR���Q@g�p=
ף@g��Q�	@r�g�Q���@g�G�z�@g��Q�@gj�@crArrr���shiftrr
r8�r�z6VarianceStdevMixin.test_shift_data.<locals>.<listcomp>)r�rL�r:r�rr;rr�r
�test_shift_data�s

z"VarianceStdevMixin.test_shift_datacr�)N)
rr�r�r�rkr�r�r�r�r�iʚ;crArrr�r�rr
r8�r�z<VarianceStdevMixin.test_shift_data_exact.<locals>.<listcomp>rDr�rr�r
�test_shift_data_exact�s

z(VarianceStdevMixin.test_shift_data_exactcCs6dd�td�D�}|�|�}|�|�t|��|�dS)NcSr2)r)r�r4r7rrr
r8�r9z:VarianceStdevMixin.test_iter_list_same.<locals>.<listcomp>r�)r:r�r6r�r�rrr
�test_iter_list_same�s
z&VarianceStdevMixin.test_iter_list_sameN)
r-r.r/r)r"r-r�r�r�r�rrrr
r��s
	r�c@rL)�
TestPVariancecCr�rB)r0�	pvariancer�r]rrr
r��r�zTestPVariance.setUpcCs0ttd��}t�|�d}|�|�|�|�dS)Nr�gP�_Ar�r�rrr
�test_exact_uniform�s
z TestPVariance.test_exact_uniformcC�"gd�}d}|�|�|�|�dS)N�r�r�r�r�g�6@r0�r:r;�exactrrr
r���zTestPVariance.test_intscCsXt}|dd�|dd�|dd�|dd�g}|dd�}|�|�}|�||�|�|t�dS)Nrr�r�r�r��rr�r6�assertIsInstance�r:r�r;r�rwrrr
r��$

zTestPVariance.test_fractionscCsNt}|d�|d�|d�|d�g}|d�}|�|�}|�||�|�|t�dS)Nz12.1z12.2z12.5z12.9z0.096875�rr�r6r��r:r�r;r�rwrrr
r�s
zTestPVariance.test_decimalscC�2gd�}d}|�|�}|�||�|�|t�dS)N)rrrg�q�q�?�r�r6r�r�r:r;r�rwrrr
�test_accuracy_bug_20499�

z%TestPVariance.test_accuracy_bug_20499N)	r-r.r/r�r�r�r�r�r�rrrr
r��s		r�c@r')�TestVariancecCr�rB)r0�variancer�r]rrr
r�r�zTestVariance.setUpcC�6dddtdd�td�fD]}|�tj|j|g�qdS)Nr�g33333�8@g�(G�!=Cr r�z4.2084�rrr�r0r"r�r�rrr
r""r#zTestVariance.test_single_valuecCr�)Nr�r�r0r�rrr
r�'r�zTestVariance.test_intscCsXt}|dd�|dd�|dd�|dd�g}|dd�}|�|�}|�||�|�|t�dS)Nrr�r�r�rr�r�rrr
r�-r�zTestVariance.test_fractionscCsZt}|d�|d�|d�|d�g}d|d�|d�}|�|�}|�||�|�|t�dS)Nrr�r�r�z9.5r�r�r�rrr
r�6s
zTestVariance.test_decimalscC�0d}|�|�|�d�|�|j|dd�d�dS)N�r�r�r�r���xbarr�r0r�rrr
�test_center_not_at_mean?sz$TestVariance.test_center_not_at_meancCr�)N)rrrgUUUUUU�?r�r�rrr
r�Dr�z$TestVariance.test_accuracy_bug_20499N)
r-r.r/r�r"r�r�r�r�r�rrrr
r�s		r�c@rZ)�
TestPStdevcCr�rB)r0Zpstdevr�r]rrr
r�Mr�zTestPStdev.setUpcC�8dd�td�D�}t�t�|��}|�|�|�|�dS)NcSr2)i��r�r4r7rrr
r8Rr9z7TestPStdev.test_compare_to_variance.<locals>.<listcomp>r�)r:r�sqrtr0r�r6r�r�rrr
�test_compare_to_varianceP�z#TestPStdev.test_compare_to_variancecCr�)N)r�r�r�r�rr�)�mur�r0r�rrr
r�Vsz"TestPStdev.test_center_not_at_meanN)r-r.r/r�r�r�rrrr
r�Ksr�c@r_)
�	TestStdevcCr�rB)r0�stdevr�r]rrr
r�^r�zTestStdev.setUpcCr�)N�QgH�z�wi@gf7?+�Brkr�z35.719r�r�rrr
r"ar#zTestStdev.test_single_valuecCr�)NcSr2)rjr�r4r7rrr
r8hr9z6TestStdev.test_compare_to_variance.<locals>.<listcomp>r�)r:rr�r0r�r6r�r�rrr
r�fr�z"TestStdev.test_compare_to_variancecCsd}|�|j|dd�d�dS)Nr�r�r�r�r0r�rrr
r�lsz!TestStdev.test_center_not_at_meanN)r-r.r/r�r"r�r�rrrr
r�\s
r�c@r�)�TestGeometricMeancCs�tj}|�|gd��d�|�|ddg�d�|�|dg�d�t�d�tdd	�tdd
�tdd�tddd
�tddd�gd�dd�td
�D�dd�td�D�dd�td�D�f	D]!}t�tt	|��t	d�t
|�}||�}|�t�|t
|���qXdS)N)rbr�r��B@rg"@g@g�1@l���;rrmr�r�r�r�r))r�rar�rk�xr�cS�g|]}t�d��qS)�I@�r5�expovariate�r�rSrrr
r8��z1TestGeometricMean.test_basics.<locals>.<listcomp>cSr2)r4r�)r5�lognormvariater�rrr
r8�r9��cSsg|]	}t�ddd��qS)r��i�)r5�
triangularr�rrr
r8�sr�)r0�geometric_mean�assertAlmostEqualr5�seedr:r�prodr�rrMrh�iscloser)r:r�rngZ
gm_decimalZgm_floatrrr
r�rs&


� �zTestGeometricMean.test_basicscCs�tj}t}t}d}gd�df|d�|d�|d�gdf|dd	�|d
d�|dd
�gd
fdd
|dd
�gdfdtgd��dffD]\}}||�}|�t|�t|�|j||dd�q<dS)Ng�d�@r�r�r�r�r�r�r�rr�rr�r�r%r�)r�r|r�rk�Zplaces)	r0rrrr�rHrrr)r:rr�r�r�r;r�r�rrr
�test_various_input_types�s
��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�gpr[)r0rrhrrr�r&�assertNotEqual)r:rZlargeZbig_gmZsmallZsmall_gmrrr
�test_big_and_small�sz$TestGeometricMean.test_big_and_smallcCs�tj}tj}|�|��|g�Wd�n1swY|�|��|gd��Wd�n1s5wY|�|��|gd��Wd�n1sPwY|�|��|tg��Wd�n1skwY|�t��|d�Wd�n1s�wY|�t��|gd��Wd�n1s�wY|�t��|�Wd�n1s�wY|�t��|gd�d�Wd�dS1s�wYdS)N)r%r[r�)r%g�r�r�r�r�)r0rr"r�r�rq)r:rr"rrr
r��s4
����
���"�z"TestGeometricMean.test_error_casescCr�r�)	r0rrrhrrr&r�r%)r:rr�r�rrr
r��r�z%TestGeometricMean.test_special_valuesN)r-r.r/r�rr	r�r�rrrr
r�psr�c@r�)�
TestQuantilescstj}gd�}t�|�dgfddgfdddgfdgd	�fd
gd�fdgd
�fdgd�fdgd�fdgd�fdgd�ff
D]�\}}|�||||d��|�t|||d��|d�tttfD]"�|t	�|�|d�}|�
�fdd�|D��|�|tt	�|���q^t|�dkr�|�|||d�|�t|�}d|d|d}d|d|d}|||g}	|�|||d�||	|dd�||f�dd�}
tt	|
|��}|t	|
|�|d�}|�
t
d d�t||�D���q=tdd!�D]}
tjtd"�|
d#�}||�\}}}|�|t�|��q�dS)$N)r�r?�r�i^rr�@o@r��i@�t@r�)�d@r��t@rk)�a@��k@�@r@��u@r�)�^@r
rr��u@r�)�Y@rg�j@rg�r@rgXv@r�)	gV@rgg@rrrg`t@rg�v@r�)�T@rrr
� l@rg�q@rrrg�v@rc)gR@gZ@rge@r
r�n@g�p@rrg�t@rg@v@gw@�rc3� �|]}tt|��k�VqdSrB��allrr��Zdatatyperr
r����z4TestQuantiles.test_specific_cases.<locals>.<genexpr>rr\rj�	inclusive�r�methodcS�d|dS�Nr%g3333�J�@rr
rrr
r��r�z,TestQuantiles.test_specific_cases.<locals>.fcs� �|]\}}t�||�VqdSrB�rr�r�rTrrrr
r��r r�rm��k)r0�	quantilesr5r�r6rMrrrr�rhr{r�rrQr:�choicesrd)r:r+r;rrrwZsdata�lo�hiZpadded_datar��exp�actr*�q1�q2�q3rrr
�test_specific_cases�sP








�
� �z!TestQuantiles.test_specific_casescs.tj}gd�}t�|�dgfddgfdddgfdgd	�fd
gd�fdgd
�fdgd�fdgd�fdgd�fdgd�ff
D]k\}}|�||||dd��|�t|||dd��|d�tttfD]#�|t	�|�|dd�}|�
�fdd�|D��|�|tt	�|���q`dd�}tt	||��}|t	||�|dd�}|�
tdd�t
||�D���q=|�|ddgddd�gd��|�|tdd �ddd�gd��d!d"�td#�D�}||d$dd�}	|�t|��|�t|��||d$d%�}|�||	�tdd&�D]}
tjtd�|
d'�}||dd(�\}}}
|�|t�|��q�dS))N)rmr?i�i rr��r@r�r
�y@r�)��e@r5�@@rk)rr��v@���@r�)��b@r
r5r6���@r�)g0a@�rr5gpw@r8gP�@r�)	g@`@rg�g@rr5r9g�{@r:g@�@r�)g@_@r;r7r
rr5rr6r8r<g�@rc)rg�a@rg�f@r
rg�q@rr9r6g~@r:g�@g��@r!r"c3rrBrr�rrr
r�	r z>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>cSr$r%rr
rrr
r�	r�z6TestQuantiles.test_specific_cases_inclusive.<locals>.fcsr&rBr'r(rrr
r�"	r rrm)	�$@r4g>@gD@r�gN@g�Q@rg�V@r�cSr�)r�)r5�	randranger�rrr
r8+	r�z?TestQuantiles.test_specific_cases_inclusive.<locals>.<listcomp>i�� rr�r)�r#)r0r+r5r�r6rMrrrr�rhr{rrQr:rOrgrr,rd)r:r+r;rrrwr�r/r0rr*r1r2r3rrr
�test_specific_cases_inclusive	sR








� ���z+TestQuantiles.test_specific_cases_inclusivecCsPtj}tdd�D]}dg|}|�||�gd��|�||dd�gd��qdS)Nrr�r>)r>r>r>r!rA)r0r+r:r6)r:r+rr;rrr
�test_equal_inputs7	s
��zTestQuantiles.test_equal_inputsc	s�tj}d}dd�t|�D��tt���|kr&��t�d��tt���|ks���dD]}||}|�	�fdd�|�|d�D�t
t|||���q,dD].}||||d	h}�fd
d�|�|d�D�}dd�t||d	d��D�}|�||k�qLdS)
Nr�cSr�)皙�����?r�r�rrr
r8B	r�z9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>rD)
rrrkr�r�r�rmr?r�r�r�rRr�c�g|]}t��|��qSr��bisect�r��qr�rr
r8K	r9r)
r�r �;�m��i;i�isi�i)&rcrErrFrHr�rr
r8R	r9cSsh|]\}}||�qSrr)r��prIrrr
�	<setcomp>S	r9z8TestQuantiles.test_equal_sized_groups.<locals>.<setcomp>)
r0r+r:rM�setr
r5r��sortr6r{rQrh)r:r+�totalrZ
group_sizeZgroup_sizes�posZsizesrr�r
�test_equal_sized_groups?	s&���z%TestQuantiles.test_equal_sized_groupscCstj}tj}|�t��|�Wd�n1swY|�t��|gd�ddd�Wd�n1s7wY|�t��|gd�d�Wd�n1sSwY|�|��|gd�dd�Wd�n1spwY|�|��|gd�dd�Wd�n1s�wY|�t��|gd�dd�Wd�n1s�wY|�t��|gd�dd	�Wd�n1s�wY|�|��|d
gdd�Wd�n1s�wY|�t��|gd�dd�Wd�dS1�swYdS)N)r�r�r�r�r�rrr\r��XrAr�)r�Nr�)r0r+r"r�rqr%)r:r+r"rrr
r�V	s:��������$�zTestQuantiles.test_error_casesN)r-r.r/r4rBrCrSr�rrrr
r
�s66r
c@r�)�TestBivariateStatisticsc	Cs�gd�ddgfddggd�ffD]X\}}|�tj��t�||�Wd�n1s+wY|�tj��t�||�Wd�n1sGwY|�tj��t�||�Wd�n1scwYqdS)Nr�rr�r�r0r"�
covariance�correlation�linear_regressionr�rrr
�test_unequal_size_erroro	s������z/TestBivariateStatistics.test_unequal_size_errorc	Cs�ggfgddgfddggfdgdgfdgddgfddgdgffD]X\}}|�tj��t�||�Wd�n1s;wY|�tj��t�||�Wd�n1sWwY|�tj��t�||�Wd�n1sswYq dS)NrrrVr�rrr
�test_small_sample_error{	s$


������z/TestBivariateStatistics.test_small_sample_errorN)r-r.r/rZr[rrrr
rUm	srUc@r�)�TestCorrelationAndCovariancecCs�gd�gd�dfgd�gd�dfgd�gd�dfgd�gd�dfgd�gd�d	ffD]\}}}|�t�||�|�|�t�||�|�q*dS)
Nr�r�r\rjr)r\)r�rr)rrrr)rr�rr��rr0rXrW)r:rr'rwrrr
�test_results�	s��z)TestCorrelationAndCovariance.test_resultscCslgd�}gd�}|�t�||�d�|�t�||�d�gd�}|�t�||�d�|�t�||�d�dS)Nr�)r�r�r�r�rk)r�rDg333333�?rr�r^r�rrr
�test_different_scales�	sz2TestCorrelationAndCovariance.test_different_scalesN)r-r.r/r_r`rrrr
r\�	sr\c@r�)�TestLinearRegressioncCsNgd�}gd�}|�tj��t�||�Wd�dS1s wYdS)N)rrrr�)r�r0r"rYr�rrr
�test_constant_input_error�	s
"�z.TestLinearRegression.test_constant_input_errorc
Cs�gd�gd�ddfgd�gd�ddfgd�gd�ddfgd�gd�dd	fgd�gd
�ddfgd�gd�d
dfgd�gd�ddffD]\}}}}t�||�\}}|�||�|�||�qAdS)Nr�)rrrrr)rmrmrmrm)r�r|r�r�rr]r\)r�rr�r�)gffffff@g������@r�rkr�)r0rYr)r:rr'Ztrue_interceptZ
true_slopeZslopeZ	interceptrrr
r_�	s�	�z!TestLinearRegression.test_resultsN)r-r.r/rbr_rrrr
ra�	srac@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#d$�Zd%d&�Zd'S)(�TestNormalDistcCsV|j�dd�}|�t��t|�Wd�n1swY|�t|j�d�dS)Nr�r�)Z_muZ_sigma)r�
NormalDistr�rq�varsr6r|�	__slots__�r:�ndrrr
�
test_slots�	s

�zTestNormalDist.test_slotscCs�|j�dd�}|�|jd�|�|jd�|�|jd�|j��}|�|jd�|�|jd�|�|jd�|�|jj��|j�dd�Wd�n1sOwYGdd�d|jj�}|d	d
�}|�t|�|�dS)Nr�rai!rri����c@rB)zGTestNormalDist.test_instantiation_and_attributes.<locals>.NewNormalDistNr,rrrr
�
NewNormalDist�	rDrjr?rk)	rrdr6r/r�r�r�r"r)r:rhrj�nndrrr
�!test_instantiation_and_attributes�	s
�
z0TestNormalDist.test_instantiation_and_attributescCs|jj}gd�}|�|�|�|dd��|�|�t|��|dd��|�|�t|��|dd��|�|jj��
|�g�Wd�n1sGwY|�|jj��|�dg�Wd�n1sdwYGdd�d|�}|�|�}|�t|�|�dS)N)�`rl�Zr��nr*r�r�c@rB)zBTestNormalDist.test_alternative_constructor.<locals>.NewNormalDistNr,rrrr
rj�	rDrj)	rrdr6Zfrom_samplesr|r�r�r"r)r:rdr;rjrkrrr
�test_alternative_constructor�	s��
z+TestNormalDist.test_alternative_constructorcCs�|jj}d\}}|||�}d}|�|�}|�t|�|�|�ttt|��th�|j�	|�}|�
||d|koA||dkn�d}|j|dd�}|j|dd�}	|j|dd�}
|j|dd�}|�||
�|�|	|�|�||	�dS)N)r�r�r�r�rmzhappiness and joy)rztrouble and despair)rrdZsamplesr6rMrOr�rrr/rhr)r:rdr��sigmarTrr;r�Zdata1Zdata2Zdata3Zdata4rrr
�test_sample_generation�	s"

.z%TestNormalDist.test_sample_generationc
Cs�|jj}|dd�}|�|�d�|�d��|�|�d�|�d��td�D]}|�|�d|�|�d|��q%d}tdd�D]}|�||�|�|�|}|j|�|�|d	d
�q?|�}tgd��D]\}}|j|�|d�|d	d
�|j|�|d�|d	d
�qd|dd
�}	|�|jj	��
|	�d�Wd�n1s�wY|�
|�td��d�|�
|�td��d�|�t
�|�td����dS)Nrmrcr*r�r�gP?rnr^r�r)2�+��ݓ��?rsrsggDio��?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����?rr�-Infr[r�r�)rrdZ
assertLess�pdfr:r�cdfrPr�r"r6rrhrr)
r:rdrTrS�dxrZest_pdf�ZZpx�Yrrr
�test_pdf
s*
"
�zTestNormalDist.test_pdfcs6|jj}|dd���fdd�tdd�D�}|�ttt|��th�|�|t|��|���	d�d�|�}dD]\}}|j
|�	|�|d	d
�|j
|�	|�d|d	d
�q7|dd�}|�|jj��
|�	d
�Wd�n1sqwY|���	td��d�|���	td��d�|�
t���	td����dS)Nrmrccsg|]}��|��qSr)rvr��rTrr
r85
r�z+TestNormalDist.test_cdf.<locals>.<listcomp>rr?r�))r[r�)r�gqZ� �?)r�g��E_A�?)g�Q���?gGɫs��?)g��(\��?g؞Y���?)g��Q��?g���9#�?)gH�z�G�?g&S���?)r�g�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���?rkrr�rrnrtr[r�r�)rrdr:r6rOr�rrr�rvrr�r"rhrr)r:rdZcdfsrx�zZcum_probryrr{r
�test_cdf2
s"

�zTestNormalDist.test_cdfcCs�|jj}|dd�}|�|�d�|j�|�}dddd�}|��D]1\}}t|dd	�D]&\}}|d
|}	|j|�|	�|dd�d
|	}	|j|�|	�|dd�q*q |�|dd��d�d�d}
td|
�D]}	|	|
}	|�|�	|�|	��|	�qetdd�D]#}d|}	|�|�	|�|	��|	�d
|	}	|�|�	|�|	��|	�q}td�D]}|j|�|�	|��|dd�q�|�
|jj��
|�d�Wd�n1s�wY|�
|jj��
|�d�Wd�n1s�wY|�
|jj��
|�d
�Wd�n	1�swY|�
|jj��
|�d�Wd�n	1�s#wY|�
|jj��|dd�}|�d�Wd�n	1�sEwY|�t
�|�td����dS)Nrmrcr�)
r[gR���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�rr�r)�startr>r�rr�r�r�g��>���?g���E@i�3r�r?rkr[r�g�������?rr�)rrdr6Zinv_cdfr/�itemsrPrr:rvr�r"rhrrr)r:rdZiqrx�ppr�rowr/rrMrrTrrr
�test_inv_cdfP
sX
��
����
�zTestNormalDist.test_inv_cdfcCsh|j��}dgfddgfdddgfdgd�ffD]\}}|j|d	�}|�td
d�t||�D���qdS)Nrrr[r�g�ǘ���ۿg�ǘ����?r�)g/�$���r[g/�$���?rcss$�|]
\}}tj||dd�VqdS)r�)Zabs_tolNr'r(rrr
r��
s��z0TestNormalDist.test_quantiles.<locals>.<genexpr>)rrdr+rhrrQ)r:rxrrrrrr
�test_quantiles�
s


���zTestNormalDist.test_quantilescCs�|jj}|dd�|dd�df|dd�|dd�dffD]\}}}|j|�|�|dd�|j|�|�|dd�qdd	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] \}}|j|�|�|||�d	d�|j|�|�|||�d	d�q�|�}|�t��|��Wd�n1s�wY|�t��|�||�Wd�n	1�swY|�t��
|�d�Wd�n	1�s-wY|�|jj��|�|dd��Wd�n	1�sMwY|�|jj��|dd��|�Wd�dS1�snwYdS) Nr[r�r�gɎ�@���?gM-[닄�?r�ri rk)�stepsr|cs�	tj}|j|jd}|t|j|j�}||�d||���fdd�t|�D�}tt|j|��}tt|j|��}	t||�||	��}
|tt	||	��|
S)Nr�csg|]}�|��qSrrr��rwr~rr
r8�
r9zHTestNormalDist.test_overlap.<locals>.overlap_numeric.<locals>.<listcomp>)
rr�r/rr�r:r{r�rurg)rTryr�r|r��center�widthZx_arrZxpZyprQrr�r
�overlap_numeric�
sz4TestNormalDist.test_overlap.<locals>.overlap_numericr��Ar%rmrcror3i����r��r�r�gj�t��?g�~j�t�h?gj�t��?ga2U0*�3?g��MbX�?rr)rrdrZoverlapr�rqr")r:rdZX1ZX2Zpublished_resultr�rTrrr
�test_overlap�
sP��
����$�zTestNormalDist.test_overlapcCs(|jj}|dd�}|�|�d�d�|�|�d�d�|�|�d�d�|�t��|��Wd�n1s8wY|�t��|�dd�Wd�n1sSwY|�t��
|�d�Wd�n1smwY|�|jj��|dd	��d�Wd�dS1s�wYdS)
Nrmrc�gffffff@�:gffffff�r[rr)rrdr6Zzscorer�rqr")r:rdrTrrr
�test_zscore�
s"

���"�zTestNormalDist.test_zscorecCsX|j�dd�}|�|jd�|�|jd�|�|jd�|�|jd�|�|jd�dS)Nrmrc��)rrdr6r/rdr�r�r�)r:rTrrr
�test_properties�
szTestNormalDist.test_propertiescCsL|jj}|dd�}|dd�}|�|||dd��|�|||dd��dS)Nrmr�r�rk�r�r�)rrdr6�r:rdrTryr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��
||Wd�dS1s�wYdS)Nrmrcr�r3rorni����r�r�r�)rrdr6r�rq)r:rdrTr'rrr
�test_translation_and_scaling�
s

"�z+TestNormalDist.test_translation_and_scalingcCs||jj}|dd�}|
}|�||�|�|j|j�|�|j|j�|}|�||�|�|j|j�|�|j|j�dS)Nrmr�)rrdZassertIsNotr6r/r�r�rrr
�test_unary_operationss
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@r )z'TestNormalDist.test_equality.<locals>.AcSsdSr�rr�rrr
�__eq__'sz.TestNormalDist.test_equality.<locals>.A.__eq__N)r-r.r/r�rrrr
rj&r&rjr�cr�)z5TestNormalDist.test_equality.<locals>.SizedNormalDistcst��||�||_dSrB)r��__init__r)r:r�rqrr�rr
r�1s
z>TestNormalDist.test_equality.<locals>.SizedNormalDist.__init__)r-r.r/r�r�rrr�r
�SizedNormalDist0r�r�rmrc�9c@r )z3TestNormalDist.test_equality.<locals>.LognormalDistcSs||_||_dSrB)r�rq)r:r�rqrrr
r�<s
z<TestNormalDist.test_equality.<locals>.LognormalDist.__init__N)r-r.r/r�rrrr
�
LognormalDist;r&r�)rrdrr6r��NotImplemented)r:rd�nd1�nd2Znd3Znd4Znd5Znd6rjrr��sr�Zlndrhrrr
�
test_equalitys2






zTestNormalDist.test_equalitycCs>|j�dd�}t�|�}|�||�t�|�}|�||�dS)N��B@��@)rrd�copyr6�deepcopy)r:rhr�r�rrr
�	test_copyCs


zTestNormalDist.test_copyc	Csr|j�dd�}ttjd�D](}|j|d��t�tj||d��}|�||�Wd�n1s1wYqdS)Nr�r�r)�proto)�protocol)	rrdr:�pickle�HIGHEST_PROTOCOLr��loads�dumpsr6)r:rhr�Zpickledrrr
�test_pickleJs���zTestNormalDist.test_picklecCsH|jj}|dd�|dd�|dd�|dd�|dd�h}|�t|�d�dS)Nrmrcrg.@r�r�r�)rrdr6rM)r:ZNDr�rrr
�test_hashabilityQs,zTestNormalDist.test_hashabilitycCs"|j�dd�}|�t|�d�dS)Nr�r�z NormalDist(mu=37.5, sigma=5.625))rrdr6�reprrgrrr
�	test_reprVszTestNormalDist.test_reprN)r-r.r/rirlrprrrzr}rZskip_if_pgo_taskr�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rc�	s*	'
@
?,rcc@� eZdZeZdd�Zdd�ZdS)�TestNormalDistPythoncC�|jtjd<dSr4�rr�modulesr]rrr
r�`�zTestNormalDistPython.setUpcC�ttjd<dSr4�r0rr�r]rrr
�tearDowncr�zTestNormalDistPython.tearDownN)r-r.r/r8rr�r�rrrr
r�^sr�r<c@r�)�TestNormalDistCcCr�r4r�r]rrr
r�jr�zTestNormalDistC.setUpcCr�r4r�r]rrr
r�mr�zTestNormalDistC.tearDownN)r-r.r/r=rr�r�rrrr
r�gsr�cCs	|�t���|SrB)ZaddTestsrZDocTestSuite)�loaderZtests�ignorerrr
�
load_testsssr��__main__)r#r$)SrGrC�collections.abcr�rrrr�r5rr?�testrZtest.supportrrr�rr0rrr"r*r+Zimport_fresh_moduler8r=r�r2rArZr`rvr�r�r�r�r�rrr!r(rMr[rbr�r�r�r�r�r�r�r�rr	rr.rNrbrurvrzr{r�r�r�r�r�r�r�r�r�r
rUr\rarcr�r@r�r�r-�mainrrrr
�<module>s�
:+��
_
>@w-@4d>c':
@`y9
r=	1B,.Y%&
	
�