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.7/test/__pycache__/test_statistics.cpython-37.opt-2.pyc
B

��gc)�@sPddlZddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZdd�Zdd�Z
dd	�Zd_dd
�ZGdd�d�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGd d!�d!ej�ZGd"d#�d#ej�ZGd$d%�d%ej�ZGd&d'�d'ej�ZGd(d)�d)ej�ZGd*d+�d+ej�ZGd,d-�d-ej�Z Gd.d/�d/ej�Z!Gd0d1�d1ej�Z"Gd2d3�d3ej�Z#Gd4d5�d5�Z$Gd6d7�d7�Z%Gd8d9�d9e$e%�Z&Gd:d;�d;e�Z'Gd<d=�d=e�Z(Gd>d?�d?e�Z)Gd@dA�dAe$�Z*GdBdC�dCee*e%�Z+GdDdE�dEee*e%�Z,GdFdG�dGee*�Z-GdHdI�dIee%�Z.GdJdK�dKe-e%�Z/GdLdM�dMe-e%�Z0GdNdO�dOe-�Z1GdPdQ�dQee*e%�Z2GdRdS�dSe$�Z3GdTdU�dUe3ee%�Z4GdVdW�dWe3ee%�Z5GdXdY�dYe3e�Z6GdZd[�d[e3e�Z7d\d]�Z8e9d^k�rLe�:�dS)`�N)�Decimal)�FractioncCst�d|�S)N�)�math�copysign)�x�r�0/usr/local/lib/python3.7/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_equals
rcCs:tt|�t|��}t||�}|r*||ntd�}||fS)N�inf)�max�absr)�actual�expected�base�abs_err�rel_errrrr	�_calc_errors<s
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_equalLs"r%c@seZdZdS)�
_DoNothingN)�__name__�
__module__�__qualname__rrrr	r&�s$r&c@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)�self�first�secondr#r$�msg�checkrrr	�assertApproxEqual�sz!NumericTestCase.assertApproxEqualc
	Csrt|�t|�kr:dt|�t|�f}|�||�}|�|��x2tt||��D] \}\}}	|�||	||||�qJWdS)Nz0sequences differ in length: %d items != %d items)�len�_formatMessage�failureException�	enumerate�zipr/)
r0r1r2r#r$r3�standardMsg�ir�errr	r.�s
z!NumericTestCase._check_approx_seqcCs>t||||�rdS|�|||||�}|�||�}|�|��dS)N)r%�_make_std_err_msgr7r8)r0r1r2r#r$r3�idxr;rrr	r/�s
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)	r1r2r#r$r?�template�headerrrrrr	r>�sz!NumericTestCase._make_std_err_msg)NNN)N)
r'r(r)r#r$r5r.r/�staticmethodr>rrrr	r*�s

+
	r*c@seZdZdd�ZdS)�TestSigncCs$|�td�d�|�td�d�dS)Ngrg����)�assertEqualr
)r0rrr	�
testZeroesszTestSign.testZeroesN)r'r(r)rFrrrr	rCsrCc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ApproxEqualSymmetryTestcCsXdddtd�tdd�g}ddd	td
�tdd�g}x"t||�D]\}}|�||�q<WdS)Ni�	gfffff�B@gfffff�(�z2.54��6i�	g������B@gR����(�z2.59�)rrr:�do_relative_symmetry)r0Zargs1Zargs2rrrrr	�test_relative_symmetrys
z.ApproxEqualSymmetryTest.test_relative_symmetrycCstt||�t||�}}||}t||�t||�}}||d}|�t||d|d��|�t||d|d��dS)Nrr)r#r$)�minrr�
assertTruer%)r0rr�deltaZrel_err1Zrel_err2r$rrr	rK-sz,ApproxEqualSymmetryTest.do_relative_symmetrycCsdddddg}d}x�|D]�}x�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*WqWdS)Ni�������ki�mr�d)r#r$rr)�intrrrrr�do_symmetry_test)r0�argsrOr�type_rr"�rrrr	�
test_symmetry9s
z%ApproxEqualSymmetryTest.test_symmetryc
Cs@d}t||||�}t||||�}|�|||�||||f��dS)Nz+approx_equal comparisons don't match for %r)r%rE�format)r0rrr#r$r@Zflag1Zflag2rrr	rUQsz(ApproxEqualSymmetryTest.do_symmetry_testN)r'r(r)rLrKrYrUrrrr	rGsrGc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�ApproxEqualExactTestcCsJt||||d�}|�|d|�t||||d�}|�|d|�dS)N)r#r$zequality failure for x=%r)r%rN)r0rr#r$�resultrrr	�do_exactly_equal_test^sz*ApproxEqualExactTest.do_exactly_equal_testcCs xdD]}|�|dd�qWdS)N)�*iMi~:��iiU�
i�r)r])r0rrrr	�test_exactly_equal_intsds
z,ApproxEqualExactTest.test_exactly_equal_intscCs xdD]}|�|dd�qWdS)N)g�z�G��?g/�$���?g�����e�@g7@gpf@g!�rh��Q@gB`��"KB@r)r])r0rrrr	�test_exactly_equal_floatsis
z.ApproxEqualExactTest.test_exactly_equal_floatscCsRt}xH|dd�|d�|dd�|dd�|dd	�|dd�gD]}|�|dd�q8WdS)
NrrrrQ��	��#�$)rr])r0�F�frrr	�test_exactly_equal_fractionsns8z1ApproxEqualExactTest.test_exactly_equal_fractionscCs.t}x$t|d���D]}|�|dd�qWdS)Nz8.2 31.274 912.04 16.745 1.2047r)r�map�splitr])r0�D�drrr	�test_exactly_equal_decimalstsz0ApproxEqualExactTest.test_exactly_equal_decimalscCsJxDdD]<}|�|dd�|�|ddd�t|d�}|�|dd�qWdS)N)�i�i\i�i��g{�G�z�?r�
i�)r]r)r0rrhrrr	�test_exactly_equal_absolutezs


z0ApproxEqualExactTest.test_exactly_equal_absolutecCs2|�td�td�d�|�td�td�d�dS)Nz3.571z0.01rz81.3971)r]r)r0rrr	�$test_exactly_equal_absolute_decimals�sz9ApproxEqualExactTest.test_exactly_equal_absolute_decimalscCsDx(dddtdd�gD]}|�|dd�qW|�td�dtd	��dS)
Ni� g33333SY@g�z�G�rQ�rg{�G�z�?z11.68z0.01)rr]r)r0rrrr	�test_exactly_equal_relative�sz0ApproxEqualExactTest.test_exactly_equal_relativecCsLx(dddtdd�gD]}|�|dd�qWt}|�|d�|d	�|d
��dS)Ni9�gˡE��0@g\��(h��rb�g�������?g{�G�z�?z7.2z0.1z0.01)rr]r)r0rrlrrr	�test_exactly_equal_both�sz,ApproxEqualExactTest.test_exactly_equal_bothN)r'r(r)r]r`rarirnrrrsrurwrrrr	r[Xsr[c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�ApproxEqualUnequalTestcCs<x6||fD](}t||dddd�}|�|d|�qWdS)Nrr)r#r$zinequality failure for x=%r)r%�assertFalse)r0rrr\rrr	�do_exactly_unequal_test�sz.ApproxEqualUnequalTest.do_exactly_unequal_testcCsxdD]}|�|�qWdS)N)i�i��i�i�iXC)rz)r0rrrr	�test_exactly_unequal_ints�s
z0ApproxEqualUnequalTest.test_exactly_unequal_intscCsxdD]}|�|�qWdS)N)g��Q�#@g����[�@gfffff�G@gףp=
W"@g=
ףp=1@)rz)r0rrrr	�test_exactly_unequal_floats�s
z2ApproxEqualUnequalTest.test_exactly_unequal_floatscCs@t}x6|dd�|dd�|dd�|dd�gD]}|�|�q*WdS)	NrrQrdrc���eiς)rrz)r0rgrhrrr	�test_exactly_unequal_fractions�s*z5ApproxEqualUnequalTest.test_exactly_unequal_fractionscCs&x ttd���D]}|�|�qWdS)Nz!3.1415 298.12 3.47 18.996 0.00245)rjrrkrz)r0rmrrr	�test_exactly_unequal_decimals�sz4ApproxEqualUnequalTest.test_exactly_unequal_decimalsN)r'r(r)rzr{r|r�r�rrrr	rx�s
rxc@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	Csfd}x\||||fD]H}|�||�}|�t||d|dd�|�|�t|||ddd�|�qWdS)NzTest failure for x={!r}, y={!r}rr)r#r$)rZrNr%ry)r0rrOr@r"r3rrr	�do_approx_equal_abs_test�s
z/ApproxEqualInexactTest.do_approx_equal_abs_testcCs*x$dD]}|�|d�|�|d�qWdS)N)i��iI���i����rPrrrc�%i�i�&i6�jrqr)r�)r0rrrr	�test_approx_equal_absolute_ints�s
z6ApproxEqualInexactTest.test_approx_equal_absolute_intscCs6x0dD](}|�|d�|�|d�|�|d�qWdS)N)	g�t��q�gfffffFX�g333333�g333333�g�?g�?g333333@g�Q���@g�����ҭ@g�?g{�G�z�?g-C��6?)r�)r0rrrr	�!test_approx_equal_absolute_floats�s
z8ApproxEqualInexactTest.test_approx_equal_absolute_floatscCs\tdd�}dddddddd	d
ddg}x2d
d�|D�D] }|�||�|�|t|��q4WdS)Nr�i����i�rPrDrrQrH��"�Gcss|]}t|d�VqdS)r�N)r)�.0rrrr	�	<genexpr>�szNApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>)rr�r)r0rO�
numeratorsrhrrr	�$test_approx_equal_absolute_fractions�s

z;ApproxEqualInexactTest.test_approx_equal_absolute_fractionscCs>td�}x0ttd���D]}|�||�|�||�qWdS)Nz0.01z1.0 3.5 36.08 61.79 7912.3648)rrjrkr�)r0rOrmrrr	�#test_approx_equal_absolute_decimals�sz:ApproxEqualInexactTest.test_approx_equal_absolute_decimalscCs|�tddddd��dS)Ng�h㈵��>g�h㈵��g-C��6?r)r#r$)rNr%)r0rrr	�test_cross_zero�sz&ApproxEqualInexactTest.test_cross_zeroc	Csnd}xd|d||d|fD]H}|�||�}|�t||dd|d�|�|�t||d|dd�|�qWdS)NzTest failure for x={!r}, y={!r}rrr)r#r$)rZrNr%ry)r0rrOr@r"r3rrr	�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=
�?)r#r$g�G�z��?i�ig�?i�i�)rNr%ry)r0rrr	�test_approx_equal_relative_ints�s
z6ApproxEqualInexactTest.test_approx_equal_relative_intscCs*x$dD]}|�|d�|�|d�qWdS)N)g{�G�Jf�g��������g�������?g�?g\��(|B@g��ʡE>�@g��x��@g{�G�z�?g-C��6?)r�)r0rrrr	�!test_approx_equal_relative_floats�s
z8ApproxEqualInexactTest.test_approx_equal_relative_floatscCspt}tdd�}x\|dd�|dd�|dd�|dd	�gD]4}x.|t|�fD]}|�||�|�||�qFWq4WdS)
Nrbrv�TrH��1�2�\�U)rrr�)r0rgrOrhrmrrr	�$test_approx_equal_relative_fractions�s
*z;ApproxEqualInexactTest.test_approx_equal_relative_fractionscCs>x8ttd���D]&}|�|td��|�|td��qWdS)Nz$0.02 1.0 5.7 13.67 94.138 91027.9321z0.001z0.05)rjrrkr�)r0rmrrr	�#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)Nr)r#r$)rNryr%)r0rrr#r$Ztol_flagZrel_flagr4rrr	�
do_check_bothsz$ApproxEqualInexactTest.do_check_bothcCs,|�dddddd�|�dddd	dd�dS)
NgR����@g+���@g����Mbp?g���W�8?Tg?5^�I��g%��C��g����Mb`?g-C��6*?)r�)r0rrr	�test_approx_equal_both1sz.ApproxEqualInexactTest.test_approx_equal_both1cCs|�dddddd�dS)NgR����@g+���@g����Mbp?gV�F�?8?TF)r�)r0rrr	�test_approx_equal_both2 sz.ApproxEqualInexactTest.test_approx_equal_both2cCs|�dddddd�dS)NgR����@g+���@g����MbP?g���W�8?FT)r�)r0rrr	�test_approx_equal_both3$sz.ApproxEqualInexactTest.test_approx_equal_both3cCs,|�dddddd�|�dddd	dd�dS)
Ng=
ףp=@g@g{�G�z�?g����MbP?Fg�Q��[�@g�(\��[�@g{�G�z�?giUMu�>)r�)r0rrr	�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�x�ttfD]z}|d�}|�t||��|�t||dd��|�t||dd��|�t||��|�t||��|�t|d��q
WdS)Nrrrg{�G�z�?i�)rrrNr%ry)r0rWrrrr	�test_inf1sz ApproxEqualSpecialsTest.test_infcCsFx@ttfD]4}|d�}x&||d�dfD]}|�t||��q&Wq
WdS)N�nanri�)rrryr%)r0rWr��otherrrr	�test_nan;sz ApproxEqualSpecialsTest.test_nancCs&t�dd�}|�t|dddd��dS)NgrDg�������?)r#r$)rrrNr%)r0�nzerorrr	�test_float_zeroesAsz)ApproxEqualSpecialsTest.test_float_zeroescCs&td�}|�t|td�ddd��dS)Nz-0.0rg�������?)r#r$)rrNr%)r0r�rrr	�test_decimal_zeroesEsz+ApproxEqualSpecialsTest.test_decimal_zeroesN)r'r(r)r�r�r�r�rrrr	r�.s
r�c@seZdZdd�Zdd�ZdS)�TestApproxEqualErrorscCs|�ttdddd�dS)NrSrDg�������?)�assertRaisesr r%)r0rrr	�test_bad_tolMsz"TestApproxEqualErrors.test_bad_tolcCs|�ttdddd�dS)NrSrg��������)r�r r%)r0rrr	�test_bad_relQsz"TestApproxEqualErrors.test_bad_relN)r'r(r)r�r�rrrr	r�Jsr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestNumericTestCasecCs2tj|�}|j|�}x|D]}|�||�qWdS)N)r*r>�generate_substringsZassertIn)r0rVZ
actual_msgrZ	substringrrr	�do_testas


zTestNumericTestCase.do_testcCs|�tttj��dS)N)rN�
issubclassr*�unittest�TestCase)r0rrr	� test_numerictestcase_is_testcasegsz4TestNumericTestCase.test_numerictestcase_is_testcasecCsd}|�|�dS)N)g@g@g�?g�?N)r�)r0rVrrr	�test_error_msg_numericksz*TestNumericTestCase.test_error_msg_numericcCsd}|�|�dS)N)g@g� @g�?g�?rd)r�)r0rVrrr	�test_error_msg_sequencepsz+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)	r0r1r2r#r$r?rrZ
substringsrrr	r�us
z'TestNumericTestCase.generate_substringsN)r'r(r)r�r�r�r�r�rrrr	r�[s
r�c@s(eZdZeZddgZdd�Zdd�ZdS)�GlobalsTest�__doc__�__all__cCs,x&|jD]}|�t|j|�d|�qWdS)Nz%s not present)�expected_metadatarN�hasattr�module)r0�metarrr	�	test_meta�szGlobalsTest.test_metacCsF|j}x:|jD]0}|�|�d�d|�|�t||�d|�qWdS)N�_zprivate name "%s" in __all__zmissing name "%s" in __all__)r�r�ry�
startswithrNr�)r0r��namerrr	�test_check_all�s
zGlobalsTest.test_check_allN)r'r(r)�
statisticsr�r�r�r�rrrr	r��sr�c@s(eZdZe�ejjdkd�dd��ZdS)�DocTestsrz)Docstrings are omitted with -OO and abovecCs0tjttjd�\}}|�|d�|�|d�dS)N)Zoptionflagsr)�doctestZtestmodr��ELLIPSIS�
assertGreaterrE)r0ZfailedZtriedrrr	�test_doc_tests�szDocTests.test_doc_testsN)	r'r(r)r�ZskipIf�sys�flags�optimizer�rrrr	r��sr�c@seZdZdd�ZdS)�StatisticsErrorTestcCs4d}|�ttd��|�ttjt�|tjj�dS)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.�StatisticsError)rNr�r�r�r�r �__base__)r0�errmsgrrr	�test_has_exception�s

z&StatisticsErrorTest.test_has_exceptionN)r'r(r)r�rrrr	r��sr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�ExactRatioTestcCs(x"dD]}|�t�|�|df�qWdS)N)i�����rrQ�cl F�x:^Vr)rEr��_exact_ratio)r0r<rrr	�test_int�s
zExactRatioTest.test_intcCs6d}x,|D]$}t|d�}|�t�|�|df�q
WdS)N)���rr}�&r�)rrEr�r�)r0r�rrhrrr	�
test_fraction�s

zExactRatioTest.test_fractioncCsf|�t�d�d�|�t�d�d�dd�td�D�}x*|D]"}t�|�\}}|�|||�q<WdS)Ng�?)rrvg�?)rcrvcSsg|]}t�dd��qS)i����rS)�random�uniform)r�r�rrr	�
<listcomp>�sz-ExactRatioTest.test_float.<locals>.<listcomp>rS)rEr�r��range)r0�datar�num�denrrr	�
test_float�s
zExactRatioTest.test_floatcCsJt}tj}|�||d��d�|�||d��d�|�||d��d�dS)Nz0.125)rrvz12.345)i�	��z-1.98)i����r�)rr�r�rE)r0rlr�rrr	�test_decimal�s
zExactRatioTest.test_decimalcCs�td�}Gdd�dt�}Gdd�dt�}xr||fD]d}x^t|t|fD]N}||�}t�|�}|�||df�|�t|d�|�|�t�|d��qFWq4WdS)N�INFc@seZdZdS)z(ExactRatioTest.test_inf.<locals>.MyFloatN)r'r(r)rrrr	�MyFloat�sr�c@seZdZdS)z*ExactRatioTest.test_inf.<locals>.MyDecimalN)r'r(r)rrrr	�	MyDecimal�sr�r)	rrr�r�rErrNrr!)r0r�r�r�rrWr�ratiorrr	r��s
zExactRatioTest.test_infcCsxtd�}Gdd�dt�}xZ|||�fD]J}t�|�}|�t�|d��|�|dd�|�t|d�t|��q&WdS)N�NANc@seZdZdS)z.ExactRatioTest.test_float_nan.<locals>.MyFloatN)r'r(r)rrrr	r��sr�rr)	rr�r�rNrr�assertIsrEr)r0r�r�r�r�rrr	�test_float_nan�s
zExactRatioTest.test_float_nancCs�td�}td�}Gdd�dt�}xb|||�|||�fD]J}t�|�}|�t|d|��|�|dd�|�t|d�t|��q6WdS)Nr��sNANc@seZdZdS)z2ExactRatioTest.test_decimal_nan.<locals>.MyDecimalN)r'r(r)rrrr	r��sr�rr)rr�r�rNrr�rEr)r0r�r�r�r�r�rrr	�test_decimal_nan�s
zExactRatioTest.test_decimal_nanN)
r'r(r)r�r�r�r�r�r�r�rrrr	r��s
r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�DecimalToRatioTestcCs<td�}|�t�|�|df�|�t�|�|df�dS)Nr�)rrEr�r�)r0rrrr	�
test_infinity�sz DecimalToRatioTest.test_infinitycCsHxBtd�td�fD].}t�|�\}}|�t||��|�|d�qWdS)Nr�r�)rr�r�rNrr�)r0r�r�r�rrr	r��szDecimalToRatioTest.test_nancCsptd�td�g}xZ|D]R}t�|�\}}|�|d�|�|d�t�|�\}}|�|d�|�|d�qWdS)Nz	9.8765e12z
9.8765e-12r)rr�r��assertGreaterEqualr�ZassertLessEqual)r0Znumbersrmr�r�rrr	�	test_signs
zDecimalToRatioTest.test_signcCst�td��}|�|d�dS)Nz0.1234)iii�)r�r�rrE)r0�trrr	�test_negative_exponentsz)DecimalToRatioTest.test_negative_exponentcCst�td��}|�|d�dS)Nz1.234e7)i K�r)r�r�rrE)r0r�rrr	�test_positive_exponentsz)DecimalToRatioTest.test_positive_exponentcCs8t�td��}|�|d�t�td��}|�|d�dS)NZ1e2)rSrz1.47e5)i8>r)r�r�rrE)r0r�rrr	�test_regression_20536 sz(DecimalToRatioTest.test_regression_20536N)	r'r(r)r�r�r�r�r�r�rrrr	r��s
r�c@s$eZdZdd�Zdd�Zdd�ZdS)�IsFiniteTestcCs4x.dtdd�dtd�fD]}|�t�|��qWdS)NrQrrbg@z5.5)rrrNr��	_isfinite)r0rrrr	�test_finite,szIsFiniteTest.test_finitecCs.x(td�td�fD]}|�t�|��qWdS)Nr)rrryr�r�)r0rrrr	r�1szIsFiniteTest.test_infinitycCs4x.td�td�td�fD]}|�t�|��qWdS)Nr�r�r�)rrryr�r�)r0rrrr	r�6szIsFiniteTest.test_nanN)r'r(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)�
CoerceTestcCsRxLttttfD]<}|�t�|t�|�Gdd�d|�}|�t�|t�|�qWdS)Nc@seZdZdS)z%CoerceTest.test_bool.<locals>.MyClassN)r'r(r)rrrr	�MyClassWsr�)rTrrrr�r��_coerce�bool)r0�Tr�rrr	�	test_boolQszCoerceTest.test_boolcCs,|�t�||�|�|�t�||�|�dS)N)r�r�r�)r0�A�Brrr	�assertCoerceToZszCoerceTest.assertCoerceTocCsT|�||�Gdd�d|�}|�||�Gdd�d|�}|�||�|�||�dS)Nc@seZdZdS)z/CoerceTest.check_coerce_to.<locals>.SubclassOfAN)r'r(r)rrrr	�SubclassOfAdsrc@seZdZdS)z/CoerceTest.check_coerce_to.<locals>.SubclassOfBN)r'r(r)rrrr	�SubclassOfBgsr)r)r0r�rrrrrr	�check_coerce_to_szCoerceTest.check_coerce_tocCs,|�ttj||f�|�ttj||f�dS)N)r��	TypeErrorr�r�)r0r�rrrr	�assertCoerceRaiseskszCoerceTest.assertCoerceRaisescCs�|�t�||�|�Gdd�d|�}Gdd�d|�}Gdd�d|�}x|||fD]}|�||�qPW|�||�|�||�|�||�dS)Nc@seZdZdS)z*CoerceTest.check_type_coercions.<locals>.UN)r'r(r)rrrr	�Uvsrc@seZdZdS)z*CoerceTest.check_type_coercions.<locals>.VN)r'r(r)rrrr	�Vwsrc@seZdZdS)z*CoerceTest.check_type_coercions.<locals>.WN)r'r(r)rrrr	�Wxsr	)r�r�r�rr)r0r�rrr	�typrrr	�check_type_coercionspszCoerceTest.check_type_coercionscCs.|�t�xtttfD]}|�t|�qWdS)N)rrTrrrr)r0r
rrr	r��s
zCoerceTest.test_intcCs|�t�|�tt�dS)N)rrrr)r0rrr	r��s
zCoerceTest.test_fractioncCs|�t�dS)N)rr)r0rrr	r��szCoerceTest.test_decimalcCs|�t�dS)N)rr)r0rrr	r��szCoerceTest.test_floatcCsBx<tttd�ttfD]&}x ttttfD]}|�	||�q&WqWdS)N)
�str�listr�tuple�dictrTrrrr)r0Zbad_typeZ	good_typerrr	�test_non_numeric_types�sz!CoerceTest.test_non_numeric_typescCs>x8ttfD],}Gdd�d|�}|�|t�|�|t�q
WdS)Nc@seZdZdS)z6CoerceTest.test_incompatible_types.<locals>.MySubclassN)r'r(r)rrrr	�
MySubclass�sr)rrrr)r0r�rrrr	�test_incompatible_types�sz"CoerceTest.test_incompatible_typesN)r'r(r)r�rrrrr�r�r�r�rrrrrr	r�<s	r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�ConvertTestcCs$|�||�|�t|�t|��dS)N)rEr�r)r0rr"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>.MyIntN)r'r(r)rrrr	�MyInt�srrH)r��_convertrrTr)r0rrrrr	r��s
zConvertTest.test_intcCs\t�tdd�t�}|�|tdd��Gdd�dt�}t�tdd�|�}|�||dd��dS)N�_r�cseZdZ�fdd�Z�ZS)z-ConvertTest.test_fraction.<locals>.MyFractioncs|�t��|��S)N)�	__class__�super�__truediv__)r0r�)rrr	r�sz9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__)r'r(r)r�
__classcell__rr)rr	�
MyFraction�srr��
)r�rrr)r0rrrrr	r��s
zConvertTest.test_fractioncCsTt�tdd�t�}|�|d�Gdd�dt�}t�tdd�|�}|�||d��dS)	NrDrg�cseZdZ�fdd�Z�ZS)z'ConvertTest.test_float.<locals>.MyFloatcs|�t��|��S)N)rrr)r0r�)rrr	r�sz3ConvertTest.test_float.<locals>.MyFloat.__truediv__)r'r(r)rrrr)rr	r��sr�rcrvg�?)r�rrrr)r0rr�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��|��S)N)rrr)r0r�)rrr	r�sz7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__)r'r(r)rrrr)rr	r��sr�i�roz-0.9375)r�rrrr)r0rr�rrr	r��s
zConvertTest.test_decimalcCsNxHtd�td�fD]4}x.||fD] }t�|t|��}|�||�q"WqWdS)Nr)rrr�rrr)r0r�rrrrr	r��szConvertTest.test_infcCsDx>td�td�td�fD]$}t�|t|��}|�t||��qWdS)Nr�r�r�)rrr�rrrNr)r0r�rrrr	r��szConvertTest.test_nanN)
r'r(r)rr�r�r�r�r�r�rrrr	r�s


rc@s$eZdZdd�Zdd�Zdd�ZdS)�FailNegTestcCs2ddtd�td�g}tt�|��}|�||�dS)Nrg@rbrp)rrr
r��	_fail_negrE)r0�values�newrrr	�test_pass_through�szFailNegTest.test_pass_throughcCsDx>ddtd�td�gD]&}|g}t�|�}|�tjt|�qWdS)Nrg@rbrp)rrr�r r�r��next)r0r�seq�itrrr	�test_negatives_raise�s
z FailNegTest.test_negatives_raisec
Cspdt�dd�}ytt�dg|��Wn.tjk
rT}z|jd}Wdd}~XYnX|�d�|�||�dS)Nzbadness #%di'i��rDrz(expected exception, but it didn't happen)	r�Zrandintr$r�r r�rVZfailrE)r0r3r=r�rrr	�test_error_msg�s
zFailNegTest.test_error_msgN)r'r(r)r#r'r(rrrr	r�src@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�UnivariateCommonMixincCs|�t|j�dS)N)r�r�func)r0rrr	�test_no_args�sz"UnivariateCommonMixin.test_no_argscCs.x(gdtg�fD]}|�tj|j|�qWdS)Nr)�iterr�r�r�r*)r0�emptyrrr	�test_empty_data�sz%UnivariateCommonMixin.test_empty_datacCs,ttd��}x|t|�kr&t�|�qW|S)Nrq)r
r��sortedr��shuffle)r0r�rrr	�prepare_datasz"UnivariateCommonMixin.prepare_datacCs0|��}|dd�}|�|�}|�||d�dS)Nzdata has been modified)r1r*ZassertListEqual)r0r�Zsavedr�rrr	�test_no_inplace_modificationss
z3UnivariateCommonMixin.test_no_inplace_modificationscCsFddddddddgd}|�|�}t�|�|�|�}|�||�dS)NrrrbrprQ�rS)r*r�r0rE)r0r�rrrrr	�test_order_doesnt_matters



z.UnivariateCommonMixin.test_order_doesnt_mattercCsrGdd�dt�}Gdd�dt�}dd�}|��}|�|�}x2ttt|||fD]}|�||��}|�||�qLWdS)Nc@seZdZdS)zBUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListN)r'r(r)rrrr	�MyList$sr5c@seZdZdS)zCUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleN)r'r(r)rrrr	�MyTuple&sr6cSsdd�|D�S)Ncss|]
}|VqdS)Nr)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)r
rr1r*r,rE)r0r5r6r8r�r�kindr\rrr	�test_type_of_data_collection"s
z2UnivariateCommonMixin.test_type_of_data_collectioncCs0tddd�}|�t|��}|�|�|�|�dS)N�r�rb)r�r*r
rE)r0r�rrrr	�test_range_data0sz%UnivariateCommonMixin.test_range_datacCs.|�d�|�d�|�d�|�t��dS)Nr�gE@)�check_for_type_error�object)r0rrr	�test_bad_arg_types6s



z(UnivariateCommonMixin.test_bad_arg_typescGs|jt|jf|��dS)N)r�rr*)r0rVrrr	r=Esz*UnivariateCommonMixin.check_for_type_errorcslGdd�dt�}|��}|�|�}xDt|ttfD]4��fdd�|D�}t|�|�|��}|�||�q0WdS)Ncs,eZdZ�fdd�Z�fdd�ZeZ�ZS)z@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatcst|�t��|��S)N)rrr)r0r�)rrr	rMszLUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__cst|�t��|��S)N)rr�__add__)r0r�)rrr	r@OszHUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__)r'r(r)rr@�__radd__rrr)rr	r�Lsr�csg|]}�|��qSrr)r�r)r9rr	r�VszCUnivariateCommonMixin.test_type_of_data_element.<locals>.<listcomp>)rr1r*rrrrE)r0r��rawrr�r\r)r9r	�test_type_of_data_elementHs
z/UnivariateCommonMixin.test_type_of_data_elementN)
r'r(r)r+r.r1r2r4r:r<r?r=rCrrrr	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��|��S)N)rrr)r0r�)rrr	rhszTUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__cst|�t��|��S)N)rr�__rtruediv__)r0r�)rrr	rEjszUUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__cst|�t��|��S)N)rr�__sub__)r0r�)rrr	rFlszPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__cst|�t��|��S)N)rr�__rsub__)r0r�)rrr	rGnszQUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__cst|�t��|��S)N)rr�__pow__)r0r�)rrr	rHpszPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__cst|�t��|��S)N)rrr@)r0r�)rrr	r@rszPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__)r'r(r)rrErFrGrHr@rArrr)rr	r�gsr�)rrr)r0r�rrr	�#prepare_types_for_conservation_testesz7UnivariateTypeMixin.prepare_types_for_conservation_testcsJ|��}x<|��D]0��fdd�|D�}|�|�}|�t|���qWdS)Ncsg|]}�|��qSrr)r�r)r9rr	r�}sz<UnivariateTypeMixin.test_types_conserved.<locals>.<listcomp>)r1rIr*r�r)r0r�rmr\r)r9r	�test_types_conservedws

z(UnivariateTypeMixin.test_types_conservedN)r'r(r)rIrJrrrr	rD[s
rDc@seZdZdd�ZdS)�
TestSumCommoncCsdd�}||_dS)NcWstj|�\}}}t�||�S)N)r��_sumr�)rVr��valuerrrr	�simplified_sum�sz+TestSumCommon.setUp.<locals>.simplified_sum)r*)r0rNrrr	�setUp�szTestSumCommon.setUpN)r'r(r)rOrrrr	rK�srKc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestSumcCstj|_dS)N)r�rLr*)r0rrr	rO�sz
TestSum.setUpcCstxngdtg�fD]\}|�|�|�ttd�df�|�|�|d�ttd�df�|�|�|d�ttd�df�qWdS)Nrrr�gffffff@)r,rEr*rTrr)r0r�rrr	r.�szTestSum.test_empty_datacCsX|�|�ddddddddg�ttd�d	f�|�|�d
ddddgd
�ttd�df�dS)NrrQrb���i����r;r^�<rvrprrdi�i�)rEr*rTr)r0rrr	�	test_ints�szTestSum.test_intscCsL|�|�dgd�ttd�df�|�|�ddddgd�ttd�d	f�dS)
Ng�?r;g@g�?g�?g�?g�?g	@rp)rEr*rr)r0rrr	�test_floats�szTestSum.test_floatscCs.|�|�tdd�gd�ttdd�df�dS)Nri�i�r)rEr*r)r0rrr	�test_fractions�szTestSum.test_fractionsc	CsXt}|d�|d�|d�|d�|d�|d�|d�|d�g}|�|�|�ttd	�d
f�dS)Nz0.001z5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686rv)rrEr*)r0rlr�rrr	�
test_decimals�s
zTestSum.test_decimalscCs:dd�td�D�}|jt|�|�d�t�|�dd�dS)NcSsg|]}t�dd��qS)i����i�)r�r�)r�r�rrr	r��sz7TestSum.test_compare_with_math_fsum.<locals>.<listcomp>i�rg��ؗ�Ҭ<)r$)r�r5rr*rZfsum)r0r�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)ri�)r�r�)r�r�rrr	r��sz/TestSum.test_start_argument.<locals>.<listcomp>rSrr^r�i��g@��x�D)r�r*rEr)r0r�r�rrr	�test_start_argument�s
zTestSum.test_start_argumentcCs4|�t|jdddgd�|�t|jddddg�dS)NrrrbZ999)r�rr*)r0rrr	�test_strings_fail�szTestSum.test_strings_failcCs4|�t|jdddgd�|�t|jddddg�dS)Nrrrbs999)r�rr*)r0rrr	�test_bytes_fail�szTestSum.test_bytes_failcCs8|�t|jddtd�g�|�t|jddgtd��dS)Nrg@)r�rr*r)r0rrr	�test_mixed_sum�szTestSum.test_mixed_sumN)r'r(r)rOr.rSrTrUrVrWrXrYrZr[rrrr	rP�srPc@seZdZdd�ZdS)�SumTortureTestcCs�|�t�ddddgd�ttd�df�|�t�ddddgd�ttd�df�t�ddddgd�\}}}|�|t�|�|d�|jt|�d	d
d�dS)Nrg}Ô%�I�Tg}Ô%�I��i'g��@i@�g0��.�++rDg���^�,gV瞯�<)r$)rEr�rLrrr�r5)r0r�r��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)�SumSpecialValuescCsRxLttfD]@}|d�}t�d|dg�d}|�t|�|�|�t�|��q
WdS)Nr�rr)	rrr�rLr�rrNrr)r0rWr�r\rrr	r��s
zSumSpecialValues.test_nancCs<|�t�|��|�t|�t|��|�|dk|dk�dS)Nr)rNrr!r�rrE)r0rrrrr	�check_infinity�szSumSpecialValues.check_infinitycCsLt�dd|dg�d}|�||�t�dd|d|dg�d}|�||�dS)Nrrrbrp)r�rLr`)r0rr\rrr	�do_test_inf�szSumSpecialValues.do_test_infcCs(td�}xdD]}|�||�qWdS)Nr)rrD)rra)r0rr
rrr	�test_float_inf�s
zSumSpecialValues.test_float_infcCs(td�}xdD]}|�||�qWdS)Nr)rrD)rra)r0rr
rrr	�test_decimal_infs
z!SumSpecialValues.test_decimal_infcCs8td�}t�dd|d|dg�d}|�t�|��dS)Nrrrrbrp)rr�rLrNrr)r0rr\rrr	�test_float_mismatched_infssz+SumSpecialValues.test_float_mismatched_infsc	CsPtd�}dd|d|dg}t�tj�� |�t�t�|�d��WdQRXdS)Nrrrrbrp)	r�decimal�localcontextZExtendedContextrNrrr�rL)r0rr�rrr	�3test_decimal_extendedcontext_mismatched_infs_to_nanszDSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nanc	CsHtd�}dd|d|dg}t�tj��|�tjtj|�WdQRXdS)Nrrrrbrp)rrerfZBasicContextr��InvalidOperationr�rL)r0rr�rrr	�0test_decimal_basiccontext_mismatched_infs_to_nanszASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nancCs(td�}d|dg}|�tjtj|�dS)Nr�rr)rr�rerhr�rL)r0r�r�rrr	�test_decimal_snan_raisess
z)SumSpecialValues.test_decimal_snan_raisesN)r'r(r)r�r`rarbrcrdrgrirjrrrr	r_�sr_c@s$eZdZdd�Zdd�Zdd�ZdS)�AverageMixincCs:x4dddtdd�td�fD]}|�|�|g�|�qWdS)Nr�g@E@g�X_yCrJ�z0.28)rrrEr*)r0rrrr	�test_single_value&szAverageMixin.test_single_valuecCsdddtdd�td�fS)Ng@rHg��7y�!C�=�Cz4.9712)rr)r0rrr	�'prepare_values_for_repeated_single_test+sz4AverageMixin.prepare_values_for_repeated_single_testcCsZxT|��D]H}xBdD]:}|j||d��"|g|}|�|�|�|�WdQRXqWq
WdS)N)rrQrqr;)rr])rp�subTestrEr*)r0rr]r�rrr	�test_repeated_single_value.s


z'AverageMixin.test_repeated_single_valueN)r'r(r)rmrprrrrrr	rk#srkc@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestMeancCstj|_dS)N)r��meanr*)r0rrr	rO8szTestMean.setUpcCs|�|�ddddg�d�dS)Ng}Ô%�I�Trrbg}Ô%�I��)rEr*)r0rrr	�test_torture_pep;szTestMean.test_torture_pepcCsDddddddddddddddd	d
g}t�|�|�|�|�d�dS)NrrrrbrprQr3rdrvrcg@@)r�r0rEr*)r0r�rrr	rS?s$
zTestMean.test_intscCs4ddddddddg}t�|�|�|�|�d	�dS)
Ng@1@g�3@g4@g�5@g�5@g@7@g 9@g�;@g6@)r�r0rEr*)r0r�rrr	rTEs
zTestMean.test_floatscCsJt}|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.634z2.517z3.912z4.072z5.813z3.5896)rr�r0rEr*)r0rlr�rrr	rVKs"
zTestMean.test_decimalsc	Csft}|dd�|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|d	d
��dS)NrrrbrprQr3rdrvi�i�)rr�r0rEr*)r0rgr�rrr	rURs<
zTestMean.test_fractionscCsndddddg}xZttfD]N}xHdD]@}|d�|}||g}|�|�}|�t�|��|�||�q"WqWdS)NrrbrQrdrc)rrDr)rrr*rNrr!rE)r0rBr9r
rr�r\rrr	r�Ys


zTestMean.test_infc	Cs:dddtd�dddtd�g}|�|�}|�t�|��dS)	Nrrpr3rrrbrQz-inf)rr*rNrr)r0r�r\rrr	�test_mismatched_infsds
zTestMean.test_mismatched_infscCsPdddddg}x<ttfD]0}|d�}||g}|�|�}|�t�|��qWdS)NrrbrQrdrcr�)rrr*rNrr)r0rBr9rr�r\rrr	r�js

zTestMean.test_nanc	sPd�dddddddd	d
g	}|�|��}|��fdd�|D��}|�||�dS)
Nge��Ag333333@g@g������@g������@g333333@g������@g @g333333 @g������"@csg|]}|��qSrr)r�r)�crr	r�ysz*TestMean.test_big_data.<locals>.<listcomp>)r*rE)r0r�rr\r)rwr	�
test_big_datass
zTestMean.test_big_datacCs:dd�td�D�}|�|�}|�|d�}|�||�dS)NcSsg|]}t�dd��qS)r�rQ)r�r�)r�r�rrr	r�~sz.TestMean.test_doubled_data.<locals>.<listcomp>i�r)r�r*r5)r0r�rrrrr	�test_doubled_data|s
zTestMean.test_doubled_datacCs td�}|�t�|g�|�dS)NZ1e4)rrEr�rt)r0rmrrr	�test_regression_20561�szTestMean.test_regression_20561cCs`|�t�ddg�d�d}d}x<dD]4}|�t�|g|�|�|�t�|g|�|�q$WdS)Ng�������g�g)rrbrQr�)rEr�rt)r0ZbigZtinyrrrr	�test_regression_25177�s
zTestMean.test_regression_25177N)r'r(r)rOrurSrTrVrUr�rvr�rxryrzr{rrrr	rs7s		rscs�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|_dS)N)r�Z
harmonic_meanr*)r0rrr	rO�szTestHarmonicMean.setUpcst���}|�d�|S)Nr)rr1�remove)r0r!)rrr	r1�s

zTestHarmonicMean.prepare_datacCsdddtdd�td�fS)Ng@rHg��7y�!Crnroz4.125)rr)r0rrr	rp�sz8TestHarmonicMean.prepare_values_for_repeated_single_testcCs dddg}|�|�|�d�dS)Nrrr)rEr*)r0r!rrr	�	test_zero�s
zTestHarmonicMean.test_zeroc
CsLtj}x@dgdddgfD],}|j|d��|�||j|�WdQRXqWdS)NrDrrPrb)r!)r�r�rqr�r*)r0�excr!rrr	�test_negative_error�sz$TestHarmonicMean.test_negative_errorcCs0ddddddg}t�|�|�|�|�d�dS)Nrrprvrog333333@)r�r0rEr*)r0r�rrr	rS�s
zTestHarmonicMean.test_intscCsHdddddg}t�|�|�|�|�d�|�|�ddddg�d�dS)Ng�?g�?g�?g�?)r�r0rEr*)r0r�rrr	�test_floats_exact�s
z"TestHarmonicMean.test_floats_exactcCs,x&tdd�D]}|�|�|g�|�qWdS)Nrr)r�rEr*)r0rrrr	�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)
NrJr�rRz0.05z0.10z0.20z1.68z0.32z5.94z2.75i�iC)rrEr*r�r0)r0rlr�rrr	�test_decimals_exact�s.

z$TestHarmonicMean.test_decimals_exactc	Csft}|dd�|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|d	d
��dS)NrrrbrprQr3rdrvi|i�)rr�r0rEr*)r0rgr�rrr	rU�s<
zTestHarmonicMean.test_fractionscCs$dtd�dg}|�|�|�d�dS)Ng@rg�?)rrEr*)r0r!rrr	r��szTestHarmonicMean.test_infcCs(dtd�dg}|�t�|�|���dS)Ng@r�g�?)rrNrrr*)r0r!rrr	r��szTestHarmonicMean.test_nanc	sPd�dddddddd	d
g	}|�|��}|��fdd�|D��}|�||�dS)
N�og333333@g@g������@g������@g333333@g������@g @g333333 @g������"@csg|]}|��qSrr)r�r)rwrr	r��sz>TestHarmonicMean.test_multiply_data_points.<locals>.<listcomp>)r*rE)r0r�rr\r)rwr	�test_multiply_data_points�s
z*TestHarmonicMean.test_multiply_data_pointscCs:dd�td�D�}|�|�}|�|d�}|�||�dS)NcSsg|]}t�dd��qS)rrQ)r�r�)r�r�rrr	r��sz6TestHarmonicMean.test_doubled_data.<locals>.<listcomp>i�r)r�r*r5)r0r�rrrrr	ry�s
z"TestHarmonicMean.test_doubled_data)r'r(r)rOr1rpr~r�rSr�r�r�rUr�r�r�ryrrr)rr	r|�sr|csTeZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
�ZS)�
TestMediancCstj|_dS)N)r��medianr*)r0rrr	rO�szTestMedian.setUpcs(t���}t|�ddkr$|�d�|S)Nrr)rr1r6r�)r0r�)rrr	r1�s

zTestMedian.prepare_datacCs&ddddddg}|�|�|�d�dS)NrrrbrprQr3g@)rEr*)r0r�rrr	�test_even_ints�szTestMedian.test_even_intscCs(dddddddg}|�|�|�d�dS)NrrrbrprQr3rc)rEr*)r0r�rrr	�
test_odd_intsszTestMedian.test_odd_intscCsVt}|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS)NrrdrrbrprQ)rr�r0rEr*)r0rgr�rrr	�test_odd_fractionss,
zTestMedian.test_odd_fractionscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS)NrrdrrbrprQr3)rr�r0rEr*)r0rgr�rrr	�test_even_fractionss4
zTestMedian.test_even_fractionscCsJt}|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz2.5z3.1z4.2z5.7z5.8)rr�r0rEr*)r0rlr�rrr	�test_odd_decimalss"
zTestMedian.test_odd_decimalscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.2z2.5z3.1z4.2z5.7z5.8z3.65)rr�r0rEr*)r0rlr�rrr	�test_even_decimalss(
zTestMedian.test_even_decimals)r'r(r)rOr1r�r�r�r�r�r�rrr)rr	r��sr�c@seZdZdd�Zdd�ZdS)�TestMedianDataTypecCstj|_dS)N)r�r�r*)r0rrr	rO*szTestMedianDataType.setUpcCs,ttd��}x|t|�kr&t�|�qW|S)NrJ)r
r�r/r�r0)r0r�rrr	r1-szTestMedianDataType.prepare_dataN)r'r(r)rOr1rrrr	r�(sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
TestMedianLowcCstj|_dS)N)r�Z
median_lowr*)r0rrr	rO6szTestMedianLow.setUpcCs&ddddddg}|�|�|�d�dS)NrrrbrprQr3)rEr*)r0r�rrr	r�9szTestMedianLow.test_even_intscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS)NrrdrrbrprQr3)rr�r0rEr*)r0rgr�rrr	r�?s4
z!TestMedianLow.test_even_fractionscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.1z2.2z3.3z4.4z5.5z6.6)rr�r0rEr*)r0rlr�rrr	r�Gs(
z TestMedianLow.test_even_decimalsN)r'r(r)rOr�r�r�rrrr	r�5sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestMedianHighcCstj|_dS)N)r�Zmedian_highr*)r0rrr	rOQszTestMedianHigh.setUpcCs&ddddddg}|�|�|�d�dS)NrrrbrprQr3)rEr*)r0r�rrr	r�TszTestMedianHigh.test_even_intscCs^t}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�|dd��dS)NrrdrrbrprQr3)rr�r0rEr*)r0rgr�rrr	r�Zs4
z"TestMedianHigh.test_even_fractionscCsPt}|d�|d�|d�|d�|d�|d�g}t�|�|�|�|�|d��dS)Nz1.1z2.2z3.3z4.4z5.5z6.6)rr�r0rEr*)r0rlr�rrr	r�bs(
z!TestMedianHigh.test_even_decimalsN)r'r(r)rOr�r�r�rrrr	r�Psr�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestMedianGroupedcCstj|_dS)N)r�Zmedian_groupedr*)r0rrr	rOnszTestMedianGrouped.setUpcCs�dddddddg}|�|�|�d�dddddddg}|�|�|�d�ddddddddd	d	d
g}|�|�|d�d�dd
d
d
d
ddddddddddg}|j|�|d�ddd�dS)Nr}r�rJg�+@rQrqr;�r�g`3@ro�����rg������4@g:�0�yE>)r#)rEr*r5)r0r�rrr	�test_odd_number_repeatedqs"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)NrQrqrJr;r�r�g�����*3@g:�0�yE>)r#rrbrpg["8���@r3g@g@)r5r*rE)r0r�rrr	�test_even_number_repeated�sz+TestMedianGrouped.test_even_number_repeatedcCsTxNdddtdd�td�fD]2}x,dD]$}|g|}|�|�|�t|��q$WqWdS)Ng333333@�Dg��ޗCr�rz32.9714)rrQrqr;)rrrEr*r)r0rr]r�rrr	rr�s

z,TestMedianGrouped.test_repeated_single_valuecCsPt}|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�d�dS)NrQrprcrrHg@)rr�r0rEr*)r0rgr�rrr	r��s,
z$TestMedianGrouped.test_odd_fractionscCsXt}|dd�|dd�|dd�|dd�|dd�|dd�g}t�|�|�|�|�d�dS)NrQrprcrrHg
@)rr�r0rEr*)r0rgr�rrr	r��s4
z%TestMedianGrouped.test_even_fractionscCsFt}|d�|d�|d�|d�|d�g}t�|�|�|�|�d�dS)Nz5.5z6.5z7.5z8.5g@)rr�r0rEr*)r0rlr�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)Nz5.5z6.5z7.5z8.5g@g@)rr�r0rEr*)r0rlr�rrr	r��s(
(
z$TestMedianGrouped.test_even_decimalscCs�ddddddddddg
}|�|�|d�d	�dddddddddddg}|j|�|d�d
dd�d
d
ddddddddddg}|�|�|d�d�dS)Ng@g@g@g@g
@g@g@g�?g@g["8���@g:�0�yE>)r#����iii,i@iTr;g�p@)rEr*r5)r0r�rrr	�
test_interval�szTestMedianGrouped.test_intervalcCsxdddg}|�t|j|�dddg}|�t|j|�dddg}d}|�t|j||�dddg}d}|�t|j||�dS)N��rrrb)r�rr*)r0r��intervalrrr	�test_data_type_error�s



z&TestMedianGrouped.test_data_type_errorN)
r'r(r)rOr�r�rrr�r�r�r�r�r�rrrr	r�ks	
	r�c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestModecCstj|_dS)N)r��moder*)r0rrr	rO�szTestMode.setUpcCsdddddddddddgS)	Nrrbrprdrcrrvrr)r0rrr	r1�szTestMode.prepare_datacCs"tddd�}|�tj|j|�dS)Nr;r�rb)r�r�r�r�r*)r0r�rrr	r<�szTestMode.test_range_datacCs4d}|�|�|�d�d��}|�|�|�d�dS)NZabcbdbrzfe fi fo fum fi fi�fi)rEr*rk)r0r�rrr	�test_nominal_data�szTestMode.test_nominal_datacCsHttd��}x6td�D]*}||g}t�|�|�|�|�|�qWdS)Nrq)r
r�r�r0rEr*)r0r�r<rmrrr	�test_discrete_data�s


zTestMode.test_discrete_datacCs<dddddddddddddddd	d	g}|�tj|j|�dS)
NrrrbrprQr3rdrvrc)r�r�r�r*)r0r�rrr	�test_bimodal_data�s&zTestMode.test_bimodal_datacCs"ttd��}|�tj|j|�dS)Nrq)r
r�r�r�r�r*)r0r�rrr	�test_unique_data_failuresz!TestMode.test_unique_data_failurecCs|�t|jd�dS)N)r�rr*)r0rrr	�test_none_dataszTestMode.test_none_datacCs(t�ddddg�}|�tj|j|�dS)Nrr)r+�Counterr�r�r�r*)r0r�rrr	�test_counter_dataszTestMode.test_counter_dataN)r'r(r)rOr1r<r�r�r�r�r�r�rrrr	r��sr�c@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�VarianceStdevMixing�-���q=cCs:x4dddtdd�td�fD]}|�|�|g�d�qWdS)Nr~g������3@g���%�Brtr�z8.392r)rrrEr*)r0rrrr	rm!sz$VarianceStdevMixin.test_single_valuecCsPxJdddtdd�td�fD].}x(dD] }|g|}|�|�|�d�q$WqWdS)	Ng������@r�g@�6��<Crbrdz62.4802)rrbrQrJr)rrrEr*)r0rr]r�rrr	rr&s

z-VarianceStdevMixin.test_repeated_single_valuecCs4dgd}|�|�}|j|ddd�|�|d�dS)Ng.�F7ݚ�?i'gg��ؗ�Ҍ<)r#r)r*r5r�)r0r�r\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�	@g@g�Q���@g�G�z�@g��Q�@gj�@csg|]}|��qSrr)r�r)�shiftrr	r�Bsz6VarianceStdevMixin.test_shift_data.<locals>.<listcomp>)r*r5)r0rBrr�r)r�r	�test_shift_data7s

z"VarianceStdevMixin.test_shift_datac
sNdddddddddd	g
}|�|�}d
��fdd�|D�}|�|�|�|�dS)
NrrbrprQrdrcrqr~roiʚ;csg|]}|��qSrr)r�r)r�rr	r�Ksz<VarianceStdevMixin.test_shift_data_exact.<locals>.<listcomp>)r*rE)r0rBrr�r)r�r	�test_shift_data_exactEs

z(VarianceStdevMixin.test_shift_data_exactcCs6dd�td�D�}|�|�}|�|�t|��|�dS)NcSsg|]}t�dd��qS)r�rv)r�r�)r�r�rrr	r�Vsz:VarianceStdevMixin.test_iter_list_same.<locals>.<listcomp>i�)r�r*rEr,)r0r�rrrr	�test_iter_list_sameNs
z&VarianceStdevMixin.test_iter_list_sameN)
r'r(r)r$rmrrr�r�r�r�rrrr	r�s
	r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TestPVariancecCstj|_dS)N)r��	pvariancer*)r0rrr	rO]szTestPVariance.setUpcCs0ttd��}t�|�d}|�|�|�|�dS)Ni'gP�_A)r
r�r�r0rEr*)r0r�rrrr	�test_exact_uniform`s
z TestPVariance.test_exact_uniformcCs&ddddg}d}|�|�|�|�dS)Nrprdrrog�6@)rEr*)r0r��exactrrr	rSgszTestPVariance.test_intscCsXt}|dd�|dd�|dd�|dd�g}|dd�}|�|�}|�||�|�|t�dS)Nrrprbrdrv)rr*rE�assertIsInstance)r0rgr�r�r\rrr	rUms$

zTestPVariance.test_fractionscCsNt}|d�|d�|d�|d�g}|d�}|�|�}|�||�|�|t�dS)Nz12.1z12.2z12.5z12.9z0.096875)rr*rEr�)r0rlr�r�r\rrr	rVvs
zTestPVariance.test_decimalsN)r'r(r)rOr�rSrUrVrrrr	r�[s
	r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestVariancecCstj|_dS)N)r��variancer*)r0rrr	rO�szTestVariance.setUpcCs:x4dddtdd�td�fD]}|�tj|j|g�qWdS)Nreg33333�8@g�(G�!=Crlr�z4.2084)rrr�r�r�r*)r0rrrr	rm�szTestVariance.test_single_valuecCs&ddddg}d}|�|�|�|�dS)Nrprdrror�)rEr*)r0r�r�rrr	rS�szTestVariance.test_intscCsXt}|dd�|dd�|dd�|dd�g}|dd�}|�|�}|�||�|�|t�dS)Nrrprbrdr)rr*rEr�)r0rgr�r�r\rrr	rU�s$

zTestVariance.test_fractionscCsZt}|d�|d�|d�|d�g}d|d�|d�}|�|�}|�||�|�|t�dS)Nrrdrcrpz9.5rb)rr*rEr�)r0rlr�r�r\rrr	rV�s
zTestVariance.test_decimalsN)r'r(r)rOrmrSrUrVrrrr	r��s
	r�c@seZdZdd�Zdd�ZdS)�
TestPStdevcCstj|_dS)N)r�Zpstdevr*)r0rrr	rO�szTestPStdev.setUpcCs8dd�td�D�}t�t�|��}|�|�|�|�dS)NcSsg|]}t�dd��qS)i��r�)r�r�)r�r�rrr	r��sz7TestPStdev.test_compare_to_variance.<locals>.<listcomp>i�)r�r�sqrtr�r�rEr*)r0r�rrrr	�test_compare_to_variance�sz#TestPStdev.test_compare_to_varianceN)r'r(r)rOr�rrrr	r��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�	TestStdevcCstj|_dS)N)r�Zstdevr*)r0rrr	rO�szTestStdev.setUpcCs:x4dddtdd�td�fD]}|�tj|j|g�qWdS)N�QgH�z�wi@gf7?+�BrQrtz35.719)rrr�r�r�r*)r0rrrr	rm�szTestStdev.test_single_valuecCs8dd�td�D�}t�t�|��}|�|�|�|�dS)NcSsg|]}t�dd��qS)rPrc)r�r�)r�r�rrr	r��sz6TestStdev.test_compare_to_variance.<locals>.<listcomp>i�)r�rr�r�r�rEr*)r0r�rrrr	r��sz"TestStdev.test_compare_to_varianceN)r'r(r)rOrmr�rrrr	r��sr�cCs|�t���|S)N)ZaddTestsr�ZDocTestSuite)�loaderZtests�ignorerrr	�
load_tests�sr��__main__)rr);r+Zcollections.abcrer�rr�r�r�rZ	fractionsrr�r
rrr%r&r�r*rCrGr[rxr�r�r�r�r�r�r�r�r�r�r�rrr)rDrKrPr\r_rkrsr|r�r�r�r�r�r�r�r�r�r�r�r�r'�mainrrrr	�<module>sp
:+_
>@w-@4d:c'H
@`X9
r<B%#