Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_statistics.cpython-311.opt-2.pyc
�

�Ke���@�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZddlmZddlmZddlZd�Zd�Zd�Zdyd�ZGd�d
��Zejddg���Zejddg���ZGd�dej��ZGd�dej��ZGd�dej��Z Gd�dej��Z!Gd�dej��Z"Gd�dej��Z#Gd�dej��Z$Gd �d!ej��Z%Gd"�d#ej��Z&Gd$�d%ej��Z'Gd&�d'ej��Z(Gd(�d)ej��Z)Gd*�d+ej��Z*Gd,�d-ej��Z+Gd.�d/ej��Z,Gd0�d1ej��Z-Gd2�d3ej��Z.Gd4�d5ej��Z/Gd6�d7ej��Z0Gd8�d9��Z1Gd:�d;��Z2Gd<�d=e1e2��Z3Gd>�d?e��Z4Gd@�dAe��Z5GdB�dCe��Z6GdD�dEe1��Z7GdF�dGee7e2��Z8GdH�dIee7e2��Z9GdJ�dKee7��Z:GdL�dMee2��Z;GdN�dOe:e2��Z<GdP�dQe:e2��Z=GdR�dSe:��Z>GdT�dUee7e2��Z?GdV�dWej��Z@GdX�dYej��ZAGdZ�d[e1��ZBGd\�d]eBee2��ZCGd^�d_eBee2��ZDGd`�daeBe��ZEGdb�dcej��ZFGdd�deeBe��ZGGdf�dgej��ZHGdh�diej��ZIGdj�dkej��ZJGdl�dmej��ZKGdn�doej��ZLGdp�dq��ZMGdr�dsejeM��ZNejOedt��Gdu�dvejeM����ZPdw�ZQeRdxkrejS��dSdS)z�N)�support)�
import_helper�requires_IEEE_754)�Decimal��Fractionc�.�	tjd|��S)N�)�math�copysign��xs �>/usr/local/apps/python3/lib/python3.11/test/test_statistics.py�signrs��D��=��A����c�:�	t|��t|��urdSt|t��r(tj|��otj|��S|���d}|���d}||ko|dvS)NF�)�n�N)�type�
isinstance�floatr�isnan�as_tuple)�a�b�aexp�bexps    r�
_nan_equalr#s����*�A�w�w�d�1�g�g����u��!�U���/��z�!�}�}�.���A���.��:�:�<�<��?�D��:�:�<�<��?�D��D�L�2�t�z�1�2rc��	tt|��t|����}t||z
��}|r||zntd��}||fS�N�inf)�max�absr)�actual�expected�base�abs_err�rel_errs     r�_calc_errorsr*BsY����s�6�{�{�C��M�M�*�*�D��&�8�#�$�$�G�"�4�g�d�l�l��e���G��W��r��-���q=�H�����z>c
��	|dks|dkrtd���tj|��stj|��rdS||krdStj|��stj|��rdSt	||z
��}t||tt	|��t	|����z��}||kS)Nrz%error tolerances must be non-negativeFT)�
ValueErrorrr�isinfr$r#)r�y�tol�rel�actual_error�
allowed_errors      r�approx_equalr5Rs��� �B�Q�w�w�#��'�'��@�A�A�A��z�!�}�}���
�1�
�
���u��A�v�v��t��z�!�}�}���
�1�
�
���u��q�1�u�:�:�L���S��S��V�V�S��V�V�!4�!4�4�5�5�M��=�(�(rc��eZdZ	dS)�
_DoNothingN��__name__�
__module__�__qualname__�rrr7r7�s������"�F	�Drr7�
statistics�_statistics)�blocked)�freshc�N�eZdZdgZd�Zejed��d���ZdS)�TestModules�_normal_dist_inv_cdfc�v�|jD]0}|�tt|��jd���1dS�Nr=)�
func_names�assertEqual�getattr�
py_statisticsr:��self�fnames  r�test_py_functionszTestModules.test_py_functions�sG���_�	U�	U�E����W�]�E�:�:�E�|�T�T�T�T�	U�	Ur�requires _statisticsc�v�|jD]0}|�tt|��jd���1dS)Nr>)rFrGrH�c_statisticsr:rJs  r�test_c_functionszTestModules.test_c_functions�sG���_�	U�	U�E����W�\�5�9�9�D�m�T�T�T�T�	U�	UrN)	r9r:r;rFrM�unittest�
skipUnlessrPrQr<rrrBrB�s_������(�)�J�U�U�U��X���'=�>�>�U�U�?�>�U�U�UrrBc�F�eZdZ	dxZZ	dd�Zd�Zdd�Zed���Z	dS)	�NumericTestCaserNc���	|�|j}|�|j}t|tjj��r't|tjj��r|j}n|j}||||||��dS�N)r1r2r�collections�abc�Sequence�_check_approx_seq�_check_approx_num)rK�first�secondr1r2�msg�checks       r�assertApproxEqualz!NumericTestCase.assertApproxEqual�s���	�8�;��(�C��;��(�C��5�+�/�":�;�;�	+��6�;�?�#;�<�<�	+��*�E�E��*�E�
��e�V�S�#�s�+�+�+�+�+rc	�^�t|��t|��krLdt|��t|��fz}|�||��}|�|���tt	||����D]"\}\}}	|�||	||||���#dS)Nz0sequences differ in length: %d items != %d items)�len�_formatMessage�failureException�	enumerate�zipr\)
rKr]r^r1r2r_�standardMsg�ir�es
          rr[z!NumericTestCase._check_approx_seq�s����u�:�:��V���$�$�B��u�:�:�s�6�{�{�+�,�
��%�%�c�;�7�7�C��'�'��,�,�,�!�#�e�V�"4�"4�5�5�	;�	;�H�A�u��!��"�"�1�a��c�3��:�:�:�:�	;�	;rc��t||||��rdS|�|||||��}|�||��}|�|���rW)r5�_make_std_err_msgrdre)rKr]r^r1r2r_�idxrhs        rr\z!NumericTestCase._check_approx_num
sa����v�s�C�0�0�	��4��,�,�U�F�C��c�J�J���!�!�#�{�3�3���#�#�C�(�(�(rc�Z�d}|�
d|z}||z}t||��\}}|||||||fzS)Nzk  %r != %r
  values differ by more than tol=%r and rel=%r
  -> absolute error = %r
  -> relative error = %rz,numeric sequences first differ at index %d.
)r*)	r]r^r1r2rm�template�headerr(r)s	         rrlz!NumericTestCase._make_std_err_msgsS��

'�	��?�D�s�J�F���(�H�'��v�6�6�����5�&�#�s�G�W�E�E�Er)NNNrW)
r9r:r;r1r2rar[r\�staticmethodrlr<rrrUrU�s���������M�C�#�:>�*,�*,�*,�*,�X	;�	;�	;�)�)�)�)��F�F��\�F�F�FrrUc��eZdZ	d�ZdS)�TestSignc��|�td��d��|�td��d��dS)N�r
g����)rGr�rKs r�
testZeroeszTestSign.testZeroes+s@������c���B�'�'�'�����d���R�(�(�(�(�(rN)r9r:r;rxr<rrrsrs)s&������?�)�)�)�)�)rrsc�&�eZdZd�Zd�Zd�Zd�ZdS)�ApproxEqualSymmetryTestc���dddtd��tdd��g}ddd	td
��tdd��g}t||��D]\}}|�||���dS)Ni�	gfffff�B@gfffff�(�z2.54��6i�	g������B@gR����(�z2.59�)rrrg�do_relative_symmetry)rK�args1�args2rrs     r�test_relative_symmetryz.ApproxEqualSymmetryTest.test_relative_symmetry6s����t�V�W�V�_�_�h�r�2�6F�6F�G���t�V�W�V�_�_�h�r�2�6F�6F�G����u�%�%�	,�	,�D�A�q��%�%�a��+�+�+�+�	,�	,rc�@�t||��t||��}}||z
}t||z��t||z��}}||zdz}|�t	||d|�����|�t	||d|�����dS)Nrr�r1r2)�minr#r$�
assertTruer5)rKrr�delta�rel_err1�rel_err2r2s       rrz,ApproxEqualSymmetryTest.do_relative_symmetryFs����1�a�y�y�#�a��)�)�1���A��� ��q��\�\�3�u�Q�w�<�<�(���(�"�A�%��	
����Q��q�c�:�:�:�;�;�;�����Q��q�c�:�:�:�;�;�;�;�;rc	��gd�}d}|D�]5}ttttfD�]}||��dz}||z}t	|t||��z��}|�||||���|�|||dzd|z���|�|||dz
|dz���|�||||dz���|�|||dz
|���|�|||dz
d|z���|�||dd���|�||dd�������7dS)N)i�������ki�mr�dr�r
r)�intrrrr$r#�do_symmetry_test)rK�argsr�r�type_rr0�rs        r�
test_symmetryz%ApproxEqualSymmetryTest.test_symmetryRs���'�'�'�����	:�	:�A��u�g�x�8�
:�
:���E�!�H�H�S�L����I����c�!�Q�i�i��(�(���%�%�a���1�%�=�=�=��%�%�a���a��Q�q�S�%�A�A�A��%�%�a���a��Q�q�S�%�A�A�A��%�%�a���1�Q�3�%�?�?�?��%�%�a���a��Q�%�?�?�?��%�%�a���a��Q�q�S�%�A�A�A��%�%�a���q�%�9�9�9��%�%�a���q�%�9�9�9�9�#
:�	:�	:rc
��d}t||||��}t||||��}|�|||�||||f����dS)Nz+approx_equal comparisons don't match for %r)r5rG�format)rKrrr1r2ro�flag1�flag2s        rr�z(ApproxEqualSymmetryTest.do_symmetry_testjs`��@���Q��3��,�,���Q��3��,�,�������x����1�c�3�7G�'H�'H�I�I�I�I�IrN)r9r:r;r�rr�r�r<rrrzrz3sU������,�,�,� 
<�
<�
<�:�:�:�0J�J�J�J�Jrrzc�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�ApproxEqualExactTestc��t||||���}|�|d|z��t||||���}|�|d|z��dS)Nr�zequality failure for x=%r)r5r�)rKrr1r2�results     r�do_exactly_equal_testz*ApproxEqualExactTest.do_exactly_equal_testwsn���a����5�5�5������ ;�a� ?�@�@�@��q�b�1�"�#�3�7�7�7������ ;�q�b� @�A�A�A�A�Arc�>�dD]}|�|dd���dS)N)�*iMi~:��iiU�
i�r�r��rKrs  r�test_exactly_equal_intsz,ApproxEqualExactTest.test_exactly_equal_ints}s6��=�	0�	0�A��&�&�q�!�Q�/�/�/�/�	0�	0rc�>�dD]}|�|dd���dS)N)g�z�G��?g/�$���?g�����e�@g7@gpf@g!�rh��Q@gB`��"KB@rr��rKrs  r�test_exactly_equal_floatsz.ApproxEqualExactTest.test_exactly_equal_floats�s6��E�	0�	0�A��&�&�q�!�Q�/�/�/�/�	0�	0rc	���t}|dd��|d��|dd��|dd��|dd	��|dd��fD]}|�|dd���dS)
Nr
rrr���	��#�$)rr��rK�F�fs   r�test_exactly_equal_fractionsz1ApproxEqualExactTest.test_exactly_equal_fractions�s������!�A�q�'�'�1�1�Q�4�4���1�a���!�!�A�q�'�'�1�1�R��9�9�a�a��1�g�g�F�	0�	0�A��&�&�q�!�Q�/�/�/�/�	0�	0rc��t}t|d�����D]}|�|dd���dS)Nz8.2 31.274 912.04 16.745 1.2047r)r�map�splitr�)rK�D�ds   r�test_exactly_equal_decimalsz0ApproxEqualExactTest.test_exactly_equal_decimals�sR�����Q�9�?�?�A�A�B�B�	0�	0�A��&�&�q�!�Q�/�/�/�/�	0�	0rc��dD]Z}|�|dd��|�|dzdd��t|d��}|�|dd���[dS)N)�i�i\i�i���{�G�z�?r�
i�)r�r)rKrr�s   r�test_exactly_equal_absolutez0ApproxEqualExactTest.test_exactly_equal_absolute�sy��/�	3�	3�A��&�&�q�$��2�2�2��&�&�q��t�T�1�5�5�5���D�!�!�A��&�&�q�$��2�2�2�2�	3�	3rc���|�td��td��d��|�td��td��d��dS)Nz3.571�0.01rz81.3971)r�rrws r�$test_exactly_equal_absolute_decimalsz9ApproxEqualExactTest.test_exactly_equal_absolute_decimals�sW���"�"�7�7�#3�#3�W�V�_�_�a�H�H�H��"�"�G�I�$6�$6�#6������K�K�K�K�Krc���dddtdd��fD]}|�|dd���|�td��dtd	����dS)
Ni� g33333SY@g�z�G�r��rr�z11.68r��rr�rr�s  r�test_exactly_equal_relativez0ApproxEqualExactTest.test_exactly_equal_relative�si����x��!�R���9�	3�	3�A��&�&�q�!�T�2�2�2�2��"�"�7�7�#3�#3�Q�����H�H�H�H�Hrc���dddtdd��fD]}|�|dd���t}|�|d��|d	��|d
����dS)Ni9�gˡE��0@g\��(h��r��皙�����?r�z7.2z0.1r�r�)rKrr�s   r�test_exactly_equal_bothz,ApproxEqualExactTest.test_exactly_equal_both�sx�����(�1�a�.�.�9�	5�	5�A��&�&�q�#�t�4�4�4�4����"�"�1�1�U�8�8�Q�Q�u�X�X�q�q��y�y�A�A�A�A�ArN)r9r:r;r�r�r�r�r�r�r�r�r�r<rrr�r�qs�������B�B�B�0�0�0�
0�0�0�
0�0�0�0�0�0�	3�	3�	3�L�L�L�
I�I�I�B�B�B�B�Brr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�ApproxEqualUnequalTestc�t�||fD]1}t||dzdd���}|�|d|z���2dS)Nr
rr�zinequality failure for x=%r)r5�assertFalse)rKrrr�s    r�do_exactly_unequal_testz.ApproxEqualUnequalTest.do_exactly_unequal_test�s^���a�R��	H�	H�A�!�!�Q�q�S�a�Q�7�7�7�F����V�%B�Q�%F�G�G�G�G�	H�	Hrc�:�dD]}|�|���dS)N)i�i��i�i�iXC�r�r�s  r�test_exactly_unequal_intsz0ApproxEqualUnequalTest.test_exactly_unequal_ints�s2��/�	,�	,�A��(�(��+�+�+�+�	,�	,rc�:�dD]}|�|���dS)N)g��Q�#@g����[�@gfffff�G@gףp=
W"@g=
ףp=1@r�r�s  r�test_exactly_unequal_floatsz2ApproxEqualUnequalTest.test_exactly_unequal_floats�s2��3�	,�	,�A��(�(��+�+�+�+�	,�	,rc��t}|dd��|dd��|dd��|dd��fD]}|�|���dS)	Nr
r�r�r����eiς)rr�r�s   r�test_exactly_unequal_fractionsz5ApproxEqualUnequalTest.test_exactly_unequal_fractions�sh�����!�A�q�'�'�1�1�Q��7�7�A�A�b�"�I�I�q�q��e�}�}�=�	,�	,�A��(�(��+�+�+�+�	,�	,rc��ttd�����D]}|�|���dS)Nz!3.1415 298.12 3.47 18.996 0.00245)r�rr�r��rKr�s  r�test_exactly_unequal_decimalsz4ApproxEqualUnequalTest.test_exactly_unequal_decimals�sI���W�A�G�G�I�I�J�J�	,�	,�A��(�(��+�+�+�+�	,�	,rN)r9r:r;r�r�r�r�r�r<rrr�r��sb������H�H�H�
,�,�,�
,�,�,�
,�,�,�,�,�,�,�,rr�c�n�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZdS)�ApproxEqualInexactTestc	��d}||z||z
fD]l}|�||��}|�t||d|zd���|��|�t|||dzd���|���mdS)N�Test failure for x={!r}, y={!r}rrr��r�r�r5r��rKrr�ror0r_s      r�do_approx_equal_abs_testz/ApproxEqualInexactTest.do_approx_equal_abs_test�s���4���e�)�Q��Y�'�	J�	J�A��/�/�!�Q�'�'�C��O�O�L��A�1�U�7��B�B�B�C�H�H�H����\�!�Q�E�!�G��C�C�C�S�I�I�I�I�	J�	Jrc�h�dD].}|�|d��|�|d���/dS)N)i��iI���i����r�rr
r��%i�i�&i6�jr�r�r�r�s  r�test_approx_equal_absolute_intsz6ApproxEqualInexactTest.test_approx_equal_absolute_ints�sJ��J�	0�	0�A��)�)�!�R�0�0�0��)�)�!�Q�/�/�/�/�	0�	0rc��dD]D}|�|d��|�|d��|�|d���EdS)N)	g�t��q�gfffffFX�g333333�g333333���?��?g333333@g�Q���@g�����ҭ@��?r��-C��6?r�r�s  r�!test_approx_equal_absolute_floatsz8ApproxEqualInexactTest.test_approx_equal_absolute_floats�s`��L�	5�	5�A��)�)�!�S�1�1�1��)�)�!�T�2�2�2��)�)�!�V�4�4�4�4�	5�	5rc��tdd��}gd�}d�|D��D];}|�||��|�|t|�����<dS)Nr
�)i������r�rvrr
r�r|��"�Gc3�6K�|]}t|d��V��dS)r�Nr)�.0rs  r�	<genexpr>zNApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>�s*����6�6�a�(�1�b�/�/�6�6�6�6�6�6r)rr�r)rKr��
numeratorsr�s    r�$test_approx_equal_absolute_fractionsz;ApproxEqualInexactTest.test_approx_equal_absolute_fractions�sv����B����@�@�@�
�6�6�:�6�6�6�	;�	;�A��)�)�!�U�3�3�3��)�)�!�U�5�\�\�:�:�:�:�	;�	;rc���td��}ttd�����D]/}|�||��|�||���0dS)Nr�z1.0 3.5 36.08 61.79 7912.3648)rr�r�r�)rKr�r�s   r�#test_approx_equal_absolute_decimalsz:ApproxEqualInexactTest.test_approx_equal_absolute_decimals�sn��������W�=�C�C�E�E�F�F�	5�	5�A��)�)�!�U�3�3�3��)�)�1�"�e�4�4�4�4�	5�	5rc�R�|�tdddd�����dS)Ng�h㈵��>g�h㈵��r�rr�)r�r5rws r�test_cross_zeroz&ApproxEqualInexactTest.test_cross_zero�s+������T�5�d��B�B�B�C�C�C�C�Crc
��d}|d|zz|d|z
zfD]l}|�||��}|�t||dd|z���|��|�t||d|dz���|���mdS)Nr�r
rrr�r�r�s      r�do_approx_equal_rel_testz/ApproxEqualInexactTest.do_approx_equal_rel_test�s���4���Q�u�W�+�q�!�E�'�{�+�	J�	J�A��/�/�!�Q�'�'�C��O�O�L��A�1�!�E�'�B�B�B�C�H�H�H����\�!�Q�A�5��7�C�C�C�S�I�I�I�I�	J�	Jrc��|�tdddd�����|�tdddd�����|�tdddd	�����|�td
ddd	�����|�tdddd	�����dS)N�@�/rg
ףp=
�?r�g�G�z��?i�i��?i�i�)r�r5r�rws r�test_approx_equal_relative_intsz6ApproxEqualInexactTest.test_approx_equal_relative_intss�������R����=�=�=�>�>�>�����R����=�=�=�>�>�>�����S�#�1�%�@�@�@�A�A�A�����S�#�1�%�@�@�@�A�A�A�����c�3�A�5�A�A�A�B�B�B�B�Brc�h�dD].}|�|d��|�|d���/dS)N)g{�G�Jf�皙������r�r�g\��(|B@g��ʡE>�@g��x��@�{�G�z�?r�)r�r�s  r�!test_approx_equal_relative_floatsz8ApproxEqualInexactTest.test_approx_equal_relative_floatssJ��E�	5�	5�A��)�)�!�T�2�2�2��)�)�!�V�4�4�4�4�	5�	5rc��t}tdd��}|dd��|dd��|dd��|dd	��fD]C}|t|��fD]/}|�||��|�||���0�DdS)
Nr�r��Tr|��1�2�\�U)rrr�)rKr�r�r�r�s     r�$test_approx_equal_relative_fractionsz;ApproxEqualInexactTest.test_approx_equal_relative_fractionss�������A�����!�A�r�(�(�A�A�b�"�I�I�q�q��R�y�y�!�!�B��)�)�<�	5�	5�A��U�5�\�\�*�
5�
5���-�-�a��3�3�3��-�-�q�b�!�4�4�4�4�
5�	5�	5rc���ttd�����D]I}|�|td����|�|td�����JdS)Nz$0.02 1.0 5.7 13.67 94.138 91027.9321�0.001�0.05)r�rr�r�r�s  r�#test_approx_equal_relative_decimalsz:ApproxEqualInexactTest.test_approx_equal_relative_decimalssq���W�D�J�J�L�L�M�M�	?�	?�A��)�)�!�W�W�-=�-=�>�>�>��)�)�1�"�g�f�o�o�>�>�>�>�	?�	?rc��|r|jn|j}|t|||d�����|r|jn|j}|t||d|�����|s|r|jn|j}|t||||�����dS)Nrr�)r�r�r5)rKrrr1r2�tol_flag�rel_flagr`s        r�
do_check_bothz$ApproxEqualInexactTest.do_check_both,s���#+�A�����1A��
��l�1�a�S�a�0�0�0�1�1�1�#+�A�����1A��
��l�1�a�Q�C�0�0�0�1�1�1�$,�O��O����t�?O��
��l�1�a�S�c�2�2�2�3�3�3�3�3rc�n�|�dddddd��|�dddd	dd��dS)
N�R����@�+���@���Mbp?���W�8?Tg?5^�I��g%��C�����Mb`?g-C��6*?�rrws r�test_approx_equal_both1z.ApproxEqualInexactTest.test_approx_equal_both14sD�����5�%����d�C�C�C����6�6�5�&�$��E�E�E�E�Erc�:�|�dddddd��dS)NrrrgV�F�?8?TFrrws r�test_approx_equal_both2z.ApproxEqualInexactTest.test_approx_equal_both29s&�����5�%����e�D�D�D�D�Drc�:�|�dddddd��dS)Nrr���MbP?rFTrrws r�test_approx_equal_both3z.ApproxEqualInexactTest.test_approx_equal_both3=s&�����5�%����t�D�D�D�D�Drc�n�|�dddddd��|�dddd	dd��dS)
Ng=
ףp=@�@r�r Fg�Q��[�@g�(\��[�@rgiUMu�>rrws r�test_approx_equal_both4z.ApproxEqualInexactTest.test_approx_equal_both4AsD�����4��t�U�E�5�A�A�A����6�6�4��u�e�D�D�D�D�DrN)r9r:r;r�r�r�r�r�r�r�rrrrrrrr!r$r<rrr�r��s������J�J�J�0�0�0�5�5�5�;�;�;�5�5�5�D�D�D�J�J�J�C�C�C�5�5�5�5�5�5�?�?�?�4�4�4�F�F�F�
E�E�E�E�E�E�E�E�E�E�Err�c�&�eZdZd�Zd�Zd�Zd�ZdS)�ApproxEqualSpecialsTestc	���ttfD]�}|d��}|�t||����|�t||dd����|�t||dd����|�t||����|�t||����|�t|d������dS)Nr"rr
r���)rrr�r5r�)rKr�r"s   r�test_infz ApproxEqualSpecialsTest.test_infJs����W�%�	6�	6�E��%��,�,�C��O�O�L��c�2�2�3�3�3��O�O�L��c�1�a�8�8�9�9�9��O�O�L��c�1�d�;�;�<�<�<��O�O�L�#���t�4�4�5�5�5����\�#��t�4�4�5�5�5����\�#�t�4�4�5�5�5�5�	6�	6rc��ttfD]A}|d��}||d��dfD]%}|�t||�����&�BdS)N�nanr"r()rrr�r5)rKr�r+�others    r�test_nanz ApproxEqualSpecialsTest.test_nanTsq���W�%�	;�	;�E��%��,�,�C��u�u�U�|�|�T�2�
;�
;��� � ��c�5�!9�!9�:�:�:�:�
;�	;�	;rc�|�tjdd��}|�t|ddd�����dS)Nrurvr�r�)rrr�r5�rK�nzeros  r�test_float_zeroesz)ApproxEqualSpecialsTest.test_float_zeroesZs<���
�c�2�&�&������U�C�S�c�B�B�B�C�C�C�C�Crc��td��}|�t|td��dd�����dS)Nz-0.0rr�r�)rr�r5r/s  r�test_decimal_zeroesz+ApproxEqualSpecialsTest.test_decimal_zeroes^s<�����������U�G�A�J�J�C�S�I�I�I�J�J�J�J�JrN)r9r:r;r)r-r1r3r<rrr&r&GsX������6�6�6�;�;�;�D�D�D�K�K�K�K�Krr&c��eZdZd�Zd�ZdS)�TestApproxEqualErrorsc�N�|�ttdddd��dS)Nr�rvr���assertRaisesr.r5rws r�test_bad_tolz"TestApproxEqualErrors.test_bad_tolfs&�����*�l�C��b�#�F�F�F�F�Frc�N�|�ttdddd��dS)Nr�r
rr7rws r�test_bad_relz"TestApproxEqualErrors.test_bad_reljs&�����*�l�C��a��F�F�F�F�FrN)r9r:r;r9r;r<rrr5r5cs:������G�G�G�G�G�G�G�Grr5c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestNumericTestCasec�l�tj|�}|j|�}|D]}|�||���dSrW)rUrl�generate_substrings�assertIn)rKr��
actual_msgr&�	substrings     r�do_testzTestNumericTestCase.do_testzsN��$�6��=�
�+�4�+�T�2��!�	1�	1�I��M�M�)�Z�0�0�0�0�	1�	1rc�j�|�tttj����dSrW)r��
issubclassrUrR�TestCaserws r� test_numerictestcase_is_testcasez4TestNumericTestCase.test_numerictestcase_is_testcase�s'�����
�?�H�4E�F�F�G�G�G�G�Grc�4�d}|�|��dS)N)�@�@r���?N�rC�rKr�s  r�test_error_msg_numericz*TestNumericTestCase.test_error_msg_numeric�s��*�����T�����rc�4�d}|�|��dS)N)�@g� @g�?r�r�rLrMs  r�test_error_msg_sequencez+TestNumericTestCase.test_error_msg_sequence�s��)�����T�����rc��	t||��\}}d|zd|zd|zd|zg}|�|�d|z��|S)Nztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r*�append)	rKr]r^r1r2rmr(r)�
substringss	         rr?z'TestNumericTestCase.generate_substrings�se��C�'��v�6�6�����3���3��%��/�%��/�	�
��?����2�S�8�9�9�9��rN)r9r:r;rCrGrNrQr?r<rrr=r=tsb������1�1�1�H�H�H����
���
����rr=c�&�eZdZeZddgZd�Zd�ZdS)�GlobalsTest�__doc__�__all__c�r�|jD].}|�t|j|��d|z���/dS)Nz%s not present)�expected_metadatar��hasattr�module)rK�metas  r�	test_metazGlobalsTest.test_meta�sO���*�	5�	5�D��O�O�G�D�K��6�6�,�t�3�
5�
5�
5�
5�	5�	5rc���|j}|jD]U}|�|�d��d|z��|�t||��d|z���VdS)N�_zprivate name "%s" in __all__zmissing name "%s" in __all__)r\rXr��
startswithr�r[)rKr\�names   r�test_check_allzGlobalsTest.test_check_all�s�������N�	C�	C�D����T�_�_�S�1�1�;�d�B�
D�
D�
D�
�O�O�G�F�D�1�1�:�T�A�
C�
C�
C�
C�	C�	CrN)r9r:r;r=r\rZr^rcr<rrrVrV�sG������
�F�"�I�.��5�5�5�	C�	C�	C�	C�	CrrVc�^�eZdZejejjdkd��d���ZdS)�DocTestsrz)Docstrings are omitted with -OO and abovec��tjttj���\}}|�|d��|�|d��dS)N)�optionflagsr)�doctest�testmodr=�ELLIPSIS�
assertGreaterrG)rK�failed�trieds   r�test_doc_testszDocTests.test_doc_tests�sQ�� ��
��@P�Q�Q�Q�
������5�!�$�$�$������#�#�#�#�#rN)	r9r:r;rR�skipIf�sys�flags�optimizernr<rrrere�sQ�������X�_�S�Y�'�1�,�@�B�B�$�$�B�B�$�$�$rrec��eZdZd�ZdS)�StatisticsErrorTestc���d}|�ttd����|�ttjt
��|tjjz��dS)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.�StatisticsError)r�r[r=rErvr.�__base__)rK�errmsgs  r�test_has_exceptionz&StatisticsErrorTest.test_has_exception�si��+�	�	
����
�,=�>�>�?�?�?�����:�5�z�B�B���3�<�<�	�	�	�	�	rN)r9r:r;ryr<rrrtrt�s#������	�	�	�	�	rrtc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�ExactRatioTestc�d�dD],}|�tj|��|df���-dS)N)i�����rr��cl F�x:^Vr
)rGr=�_exact_ratio)rKris  r�test_intzExactRatioTest.test_int�sG��,�	A�	A�A����Z�4�Q�7�7�!�Q��@�@�@�@�	A�	Arc��d}|D]<}t|d��}|�tj|��|df���=dS)N)���r
r��&r�)rrGr=r)rKr�rr�s    r�
test_fractionzExactRatioTest.test_fraction�sY��$�
��	B�	B�A���B���A����Z�4�Q�7�7�!�R��A�A�A�A�	B�	Brc�B�|�tjd��d��|�tjd��d��d�td��D��}|D]2}tj|��\}}|�|||z���3dS)Nr��r
r���?)r�r�c�8�g|]}tjdd����S)���r���random�uniform�r�r`s  r�
<listcomp>z-ExactRatioTest.test_float.<locals>.<listcomp>�s$��>�>�>�a���t�S�)�)�>�>�>rr�)rGr=r�range)rK�datar�num�dens     r�
test_floatzExactRatioTest.test_float�s�������0��7�7��@�@�@�����0��7�7��@�@�@�>�>�5��:�:�>�>�>���	)�	)�A�!�.�q�1�1�H�C�����Q��C��(�(�(�(�	)�	)rc��t}tj}|�||d����d��|�||d����d��|�||d����d��dS)Nz0.125r�z12.345)i�	��z-1.98)i����r	)rr=rrG)rKr�rs   r�test_decimalzExactRatioTest.test_decimal�s�����!�.�������a�a��j�j�1�1�6�:�:�:������a�a��k�k�2�2�K�@�@�@������a�a��j�j�1�1�9�=�=�=�=�=rc��td��}Gd�dt��}Gd�dt��}||fD]�}t|t|fD]�}||��}tj|��}|�||df��|�t|d��|��|�tj|d��������dS)N�INFc��eZdZdS)�(ExactRatioTest.test_inf.<locals>.MyFloatNr8r<rr�MyFloatr����������Drr�c��eZdZdS)�*ExactRatioTest.test_inf.<locals>.MyDecimalNr8r<rr�	MyDecimalr��r�rr�r)	rrr=rrGrr�rr/)rKr�r�r�r"r�r�ratios        rr)zExactRatioTest.test_inf�s���E�l�l��	�	�	�	�	�e�	�	�	�	�	�	�	�	��	�	�	��#��;�	6�	6�C���'�9�=�
6�
6���E�#�J�J��"�/��2�2��� � ���D�	�2�2�2�� � ��e�A�h����7�7�7�����
�5��8� 4� 4�5�5�5�5�
6�	6�	6rc��td��}Gd�dt��}|||��fD]�}tj|��}|�t	j|d����|�|dd��|�t|d��t|������dS)N�NANc��eZdZdS)�.ExactRatioTest.test_float_nan.<locals>.MyFloatNr8r<rrr�r��r�rr�rr
)	rr=rr�rr�assertIsrGr)rKr�r�r+r�s     r�test_float_nanzExactRatioTest.test_float_nan�s����E�l�l��	�	�	�	�	�e�	�	�	�������&�	8�	8�C��+�C�0�0�E��O�O�D�J�u�Q�x�0�0�1�1�1��M�M�%��(�D�)�)�)����T�%��(�^�^�T�#�Y�Y�7�7�7�7�		8�	8rc��td��}td��}Gd�dt��}|||��|||��fD]�}tj|��}|�t	|d|����|�|dd��|�t|d��t|������dS)Nr��sNANc��eZdZdS)�2ExactRatioTest.test_decimal_nan.<locals>.MyDecimalNr8r<rrr�r�r�rr�rr
)rr=rr�rr�rGr)rKr�r�r�r+r�s      r�test_decimal_nanzExactRatioTest.test_decimal_nans����e�n�n���v����	�	�	�	�	��	�	�	����3����y�y����?�	8�	8�C��+�C�0�0�E��O�O�J�u�Q�x��5�5�6�6�6��M�M�%��(�D�)�)�)����T�%��(�^�^�T�#�Y�Y�7�7�7�7�		8�	8rN)
r9r:r;r�r�r�r�r)r�r�r<rrr{r{�s�������A�A�A�B�B�B�)�)�)�>�>�>�6�6�6�8�8�8�	8�	8�	8�	8�	8rr{c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�DecimalToRatioTestc���td��}|�tj|��|df��|�tj|��|df��dS)Nr�)rrGr=r)rKr"s  r�
test_infinityz DecimalToRatioTest.test_infinitysa���e�n�n������0��5�5��T�{�C�C�C�����0�#��6�6�#��t��E�E�E�E�Erc���td��td��fD]R}tj|��\}}|�t	||����|�|d���SdS)Nr�r�)rr=rr�rr�)rKr+r�r�s    rr-zDecimalToRatioTest.test_nansu���E�N�N�G�F�O�O�4�	%�	%�C�!�.�s�3�3�H�C��
�O�O�J�s�C�0�0�1�1�1��M�M�#�t�$�$�$�$�
	%�	%rc�Z�td��td��g}|D]�}tj|��\}}|�|d��|�|d��tj|��\}}|�|d��|�|d����dS)Nz	9.8765e12z
9.8765e-12r)rr=r�assertGreaterEqualrk�assertLessEqual)rK�numbersr�r�r�s     r�	test_signzDecimalToRatioTest.test_sign!s����;�'�'���)>�)>�?���		'�		'�A�"�.�q�1�1�H�C���#�#�C��+�+�+����s�A�&�&�&�!�.��r�2�2�H�C��� � ��a�(�(�(����s�A�&�&�&�&�		'�		'rc�t�tjtd����}|�|d��dS)Nz0.1234)ii��r=rrrG�rK�ts  r�test_negative_exponentz)DecimalToRatioTest.test_negative_exponent/s6���#�G�H�$5�$5�6�6������K�(�(�(�(�(rc�t�tjtd����}|�|d��dS)Nz1.234e7)i K�r
r�r�s  r�test_positive_exponentz)DecimalToRatioTest.test_positive_exponent4s6���#�G�I�$6�$6�7�7������M�*�*�*�*�*rc���tjtd����}|�|d��tjtd����}|�|d��dS)N�1e2)r�r
z1.47e5)i8>r
r�r�s  r�test_regression_20536z(DecimalToRatioTest.test_regression_205369sd��
�#�G�E�N�N�3�3������H�%�%�%��#�G�H�$5�$5�6�6������K�(�(�(�(�(rN)	r9r:r;r�r-r�r�r�r�r<rrr�r�sq������F�F�F�%�%�%�'�'�'�)�)�)�
+�+�+�
)�)�)�)�)rr�c� �eZdZd�Zd�Zd�ZdS)�IsFiniteTestc��dtdd��dtd��fD])}|�tj|�����*dS)Nr�r
r�rI�5.5)rrr�r=�	_isfiniter�s  r�test_finitezIsFiniteTest.test_finiteEsR���X�a��^�^�S�'�%�.�.�9�	5�	5�A��O�O�J�0��3�3�4�4�4�4�	5�	5rc��td��td��fD])}|�tj|�����*dSr!�rrr�r=r�r�s  rr�zIsFiniteTest.test_infinityJsN����,�,�����/�	6�	6�A����Z�1�!�4�4�5�5�5�5�	6�	6rc��td��td��td��fD])}|�tj|�����*dS�Nr+r�r�r�r�s  rr-zIsFiniteTest.test_nanOsV����,�,���������@�	6�	6�A����Z�1�!�4�4�5�5�5�5�	6�	6rN)r9r:r;r�r�r-r<rrr�r�BsA������5�5�5�
6�6�6�
6�6�6�6�6rr�c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�
CoerceTestc��ttttfD]l}|�tj|t��|��Gd�d|��}|�tj|t��|���mdS)Nc��eZdZdS)�%CoerceTest.test_bool.<locals>.MyClassNr8r<rr�MyClassr�p��������rr�)r�rrrr�r=�_coerce�bool)rK�Tr�s   r�	test_boolzCoerceTest.test_booljs����u�h��0�	F�	F�A��M�M�*�,�Q��5�5�q�9�9�9�"�"�"�"�"�!�"�"�"��M�M�*�,�W�d�;�;�W�E�E�E�E�	F�	Frc��	|�tj||��|��|�tj||��|��dSrW)r�r=r��rK�A�Bs   r�assertCoerceTozCoerceTest.assertCoerceTossM��.��
�
�j�(��A�.�.��2�2�2��
�
�j�(��A�.�.��2�2�2�2�2rc���	|�||��Gd�d|��}|�||��Gd�d|��}|�||��|�||��dS)Nc��eZdZdS)�/CoerceTest.check_coerce_to.<locals>.SubclassOfANr8r<rr�SubclassOfAr�}r�rr�c��eZdZdS)�/CoerceTest.check_coerce_to.<locals>.SubclassOfBNr8r<rr�SubclassOfBr��r�rr�)r�)rKr�r�r�r�s     r�check_coerce_tozCoerceTest.check_coerce_toxs���D����A�q�!�!�!�"�"�"�"�"�!�"�"�"����K��+�+�+�"�"�"�"�"�!�"�"�"����A�{�+�+�+����K��5�5�5�5�5rc��	|�ttj||f��|�ttj||f��dSrW)r8�	TypeErrorr=r�r�s   r�assertCoerceRaiseszCoerceTest.assertCoerceRaises�sI��K����)�Z�%7�!�Q��@�@�@����)�Z�%7�!�Q��@�@�@�@�@rc�n�	|�tj||��|��Gd�d|��}Gd�d|��}Gd�d|��}|||fD]}|�||���|�||��|�||��|�||��dS)Nc��eZdZdS)�*CoerceTest.check_type_coercions.<locals>.UNr8r<rr�Ur��r�rr�c��eZdZdS)�*CoerceTest.check_type_coercions.<locals>.VNr8r<rr�Vr��r�rr�c��eZdZdS)�*CoerceTest.check_type_coercions.<locals>.WNr8r<rr�Wr��r�rr�)r�r=r�r�r�)rKr�r�r�r��typs      r�check_type_coercionszCoerceTest.check_type_coercions�s���L�	
�
�
�j�(��A�.�.��2�2�2�����������������������������q�!�9�	(�	(�C�����3�'�'�'�'����A�q�!�!�!�����1�%�%�%�����1�%�%�%�%�%rc��|�t��tttfD]}|�t|���dSrW)r�r�rrrr�)rKr�s  rr�zCoerceTest.test_int�sO���!�!�#�&�&�&��8�W�-�	+�	+�C�� � ��c�*�*�*�*�	+�	+rc�z�|�t��|�tt��dSrW)r�rr�rrws rr�zCoerceTest.test_fraction�s2���!�!�(�+�+�+����X�u�-�-�-�-�-rc�:�|�t��dSrW)r�rrws rr�zCoerceTest.test_decimal�s���!�!�'�*�*�*�*�*rc�:�|�t��dSrW)r�rrws rr�zCoerceTest.test_float�s���!�!�%�(�(�(�(�(rc���tttd��ttfD]5}t
tttfD]}|�	||����6dSrW)
�str�listr�tuple�dictr�rrrr�)rK�bad_type�	good_types   r�test_non_numeric_typesz!CoerceTest.test_non_numeric_types�sb���d�D��J�J��t�<�	=�	=�H�!�5�(�G�<�
=�
=�	��'�'�	�8�<�<�<�<�
=�	=�	=rc��ttfD]F}Gd�d|��}|�|t��|�|t���GdS)Nc��eZdZdS)�6CoerceTest.test_incompatible_types.<locals>.MySubclassNr8r<rr�
MySubclassr�r�rr)rrr�r)rKr�rs   r�test_incompatible_typesz"CoerceTest.test_incompatible_types�si����"�	9�	9�A�%�%�%�%�%�Q�%�%�%��#�#�A�w�/�/�/��#�#�J��8�8�8�8�	9�	9rN)r9r:r;r�r�r�r�r�r�r�r�r�r�rr<rrr�r�Us�������*F�F�F�3�3�3�

6�
6�
6�A�A�A�
&�&�&� +�+�+�.�.�.�
+�+�+�)�)�)�=�=�=�
9�9�9�9�9rr�c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�ConvertTestc��	|�||��|�t|��t|����dSrW)rGr�r�rKrr0s   r�check_exact_equalzConvertTest.check_exact_equal�sA��C�����A�����
�
�d�1�g�g�t�A�w�w�'�'�'�'�'rc�(�tjtd��t��}|�|d��Gd�dt��}tjtd��|��}|�||d����dS)Nr�c��eZdZdS)�#ConvertTest.test_int.<locals>.MyIntNr8r<rr�MyIntr
�r�rrr|)r=�_convertrr�r)rKrrs   rr�zConvertTest.test_int�s���������c�2�2�����q�"�%�%�%������C����������e�4�4�����q�%�%��)�)�,�,�,�,�,rc�J�tjtdd��t��}|�|tdd����Gd�dt��}tjtdd��|��}|�||dd����dS)N�_r~c���eZdZ�fd�Z�xZS)�-ConvertTest.test_fraction.<locals>.MyFractionc�l��|�t���|����SrW��	__class__�super�__truediv__�rKr,rs  �rrz9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__��'����~�~�e�g�g�&9�&9�%�&@�&@�A�A�Ar�r9r:r;r�
__classcell__�rs@r�
MyFractionr��A�������
B�
B�
B�
B�
B�
B�
B�
B�
Brrr��
)r=rrr)rKrrs   rr�zConvertTest.test_fraction�s�������R� 0� 0�(�;�;�����q�(�2�r�"2�"2�3�3�3�	B�	B�	B�	B�	B��	B�	B�	B�
����R� 0� 0�*�=�=�����q�*�*�R��"4�"4�5�5�5�5�5rc�,�tjtdd��t��}|�|d��Gd�dt��}tjtdd��|��}|�||d����dS)	Nrvrg�c���eZdZ�fd�Z�xZS)�'ConvertTest.test_float.<locals>.MyFloatc�l��|�t���|����SrWrrs  �rrz3ConvertTest.test_float.<locals>.MyFloat.__truediv__�rrrrs@rr�r �rrr�r�r�r�)r=rrrr)rKrr�s   rr�zConvertTest.test_float�s�������Q����7�7�����q�$�'�'�'�	B�	B�	B�	B�	B�e�	B�	B�	B�
����A����8�8�����q�'�'�%�.�.�1�1�1�1�1rc�F�tjtdd��t��}|�|td����Gd�dt��}tjtdd��|��}|�||d����dS)	Nr
�(z0.025c���eZdZ�fd�Z�xZS)�+ConvertTest.test_decimal.<locals>.MyDecimalc�l��|�t���|����SrWrrs  �rrz7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__�rrrrs@rr�r%�rrr�r�r�z-0.9375)r=rrrr)rKrr�s   rr�zConvertTest.test_decimal�s�������B����9�9�����q�'�'�"2�"2�3�3�3�	B�	B�	B�	B�	B��	B�	B�	B�
����b� 1� 1�9�=�=�����q�)�)�I�"6�"6�7�7�7�7�7rc���td��td��fD]B}||fD]:}tj|t	|����}|�||���;�CdSr!)rrr=rrr)rKr�r"rs    rr)zConvertTest.test_inf�sw���%�L�L�'�%�.�.�1�	/�	/�C��c�T�{�
/�
/���'��T�#�Y�Y�7�7���&�&�q�#�.�.�.�.�
/�	/�	/rc���td��td��td��fD]G}tj|t	|����}|�t
||�����HdSr�)rrr=rrr�r)rKr+rs   rr-zConvertTest.test_nan�sk���%�L�L�'�%�.�.�'�&�/�/�B�	0�	0�C��#�C��c���3�3�A��O�O�J�q�#�.�.�/�/�/�/�	0�	0rc��|�t��5tjdt��ddd��dS#1swxYwYdSrW)r8r�r=rrrws r�test_invalid_input_typez#ConvertTest.test_invalid_input_type�s���
�
�
�y�
)�
)�	-�	-����e�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�A�A�
AN)r9r:r;rr�r�r�r�r)r-r*r<rrrr�s�������(�(�(�
-�-�-�6�6�6�2�2�2�8�8�8�/�/�/�0�0�0�
-�-�-�-�-rrc�"�eZdZ	d�Zd�Zd�ZdS)�FailNegTestc��ddtd��td��g}ttj|����}|�||��dS�Nr
�@r�r�)rrr�r=�	_fail_negrG)rK�values�news   r�test_pass_throughzFailNegTest.test_pass_through�sP���S�(�1�+�+�w�q�z�z�2���:�'��/�/�0�0�������%�%�%�%�%rc���ddtd��td��fD]@}|g}tj|��}|�tjt|���AdSr.)rrr=r0r8rv�next)rKr�seq�its    r�test_negatives_raisez FailNegTest.test_negatives_raisesk���S�(�1�+�+�w�q�z�z�2�	D�	D�A��2�$�C��%�c�*�*�B����j�8�$��C�C�C�C�	D�	Drc�(�dtjdd��z}	ttjdg|����|�d��n)#tj$r}|jd}Yd}~nd}~wwxYw|�||��dS)Nzbadness #%d�'i��rvz(expected exception, but it didn't happenr)	r��randintr5r=r0�failrvr�rG)rKr_rjrxs    r�test_error_msgzFailNegTest.test_error_msgs����f�n�U�E�:�:�:��	B���%�r�d�C�0�0�1�1�1�
�I�I�@�A�A�A�A���)�	�	�	��V�A�Y�F�F�F�F�F�F�����	����	
�����%�%�%�%�%s�#A�A9�"
A4�4A9N)r9r:r;r3r8r=r<rrr,r,�sG������*�&�&�&�D�D�D�	&�	&�	&�	&�	&rr,c�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�UnivariateCommonMixinc�F�|�t|j��dSrW�r8r��funcrws r�test_no_argsz"UnivariateCommonMixin.test_no_argss �����)�T�Y�/�/�/�/�/rc�|�gdtg��fD](}|�tj|j|���)dS)Nr<)�iterr8r=rvrB)rK�emptys  r�test_empty_dataz%UnivariateCommonMixin.test_empty_datasL���"�d�2�h�h�'�	L�	L�E����j�8�$�)�U�K�K�K�K�	L�	Lrc��	ttd����}|t|��kr'tj|��|t|��k�'|S�Nr��r�r��sortedr��shuffle�rKr�s  r�prepare_dataz"UnivariateCommonMixin.prepare_data!sO��0��E�"�I�I�����f�T�l�l�"�"��N�4� � � ��f�T�l�l�"�"��rc��|���}|dd�}|�|��}|�||d��dS)Nzdata has been modified)rNrB�assertListEqual)rKr��savedr`s    r�test_no_inplace_modificationsz3UnivariateCommonMixin.test_no_inplace_modifications(sP��� � �"�"���Q�Q�Q����I�I�d�O�O�����T�5�*B�C�C�C�C�Crc��gd�dz}|�|��}tj|��|�|��}|�||��dS)N)r
rr�r�r�r�r��r�)rBr�rLrG�rKr�r&r%s    r�test_order_doesnt_matterz.UnivariateCommonMixin.test_order_doesnt_matter2s^��(�'�'��+���9�9�T�?�?����t�������4��������6�*�*�*�*�*rc�F�Gd�dt��}Gd�dt��}d�}|���}|�|��}ttt|||fD]6}|�||����}|�||���7dS)Nc��eZdZdS)�BUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListNr8r<rr�MyListrYAr�rrZc��eZdZdS)�CUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleNr8r<rr�MyTupler\Cr�rr]c��d�|D��S)Nc3�K�|]}|V��dSrWr<)r��objs  rr�zXUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator.<locals>.<genexpr>Fs"����(�(�C�C�(�(�(�(�(�(rr<�r�s r�	generatorzEUnivariateCommonMixin.test_type_of_data_collection.<locals>.generatorEs��(�(�4�(�(�(�(r)r�r�rNrBrErG)rKrZr]rbr�r&�kindr�s        r�test_type_of_data_collectionz2UnivariateCommonMixin.test_type_of_data_collection?s���	�	�	�	�	�T�	�	�	�	�	�	�	�	�e�	�	�	�	)�	)�	)�� � �"�"���9�9�T�?�?���5�$����C�	/�	/�D��Y�Y�t�t�D�z�z�*�*�F����V�X�.�.�.�.�	/�	/rc��tddd��}|�t|����}|�|�|��|��dS�N�r	r�)r�rBr�rG�rKr�r&s   r�test_range_dataz%UnivariateCommonMixin.test_range_dataMsP���R��Q�����9�9�T�$�Z�Z�(�(��������4���(�3�3�3�3�3rc���|�d��|�d��|�d��|�t����dS)Nr�gE@)�check_for_type_error�objectrws r�test_bad_arg_typesz(UnivariateCommonMixin.test_bad_arg_typesSs^��	
�!�!�$�'�'�'��!�!�"�%�%�%��!�!�$�'�'�'��!�!�&�(�(�+�+�+�+�+rc�8�|jt|jg|�R�dSrWrArMs  rrkz*UnivariateCommonMixin.check_for_type_errorbs'�����)�T�Y�6��6�6�6�6�6�6rc�N��Gd�dt��}|���}|�|��}t|ttfD]Q��fd�|D��}t|��|�|����}|�||���RdS)Nc�,��eZdZ�fd�Z�fd�ZeZ�xZS)�@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatc�r��t|��t���|����SrW�rrrrs  �rrzLUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__j�+���!�t�D�z�z�%�'�'�"5�"5�e�"<�"<�=�=�=rc�r��t|��t���|����SrW�rr�__add__rs  �rrwzHUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__l�)���!�t�D�z�z�%�'�'�/�/�%�"8�"8�9�9�9r)r9r:r;rrw�__radd__rrs@rr�rqisJ�������
>�
>�
>�
>�
>�
:�
:�
:�
:�
:��H�H�H�H�Hrr�c�&��g|]
}�|����Sr<r<�r�rrcs  �rr�zCUnivariateCommonMixin.test_type_of_data_element.<locals>.<listcomp>ss!���)�)�)��D�D��G�G�)�)�)r)rrNrBrrrrG)rKr��rawr&r�r�rcs      @r�test_type_of_data_elementz/UnivariateCommonMixin.test_type_of_data_elementes����	�	�	�	�	�e�	�	�	����!�!���9�9�S�>�>���G�W�h�7�	/�	/�D�)�)�)�)�S�)�)�)�D�#�T�(�^�^�D�I�I�d�O�O�4�4�F����V�X�.�.�.�.�	/�	/rN)
r9r:r;rCrGrNrRrVrdrirmrkr}r<rrr?r?s�������0�0�0�L�L�L�
���D�D�D�+�+�+�/�/�/�4�4�4�
,�
,�
,�7�7�7�/�/�/�/�/rr?c��eZdZ	d�Zd�ZdS)�UnivariateTypeMixinc�T�	Gd�dt��}ttt|fS)Nc�b��eZdZ�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�ZeZ	�fd�Z
e
Z�xZS)�HUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloatc�r��t|��t���|����SrWrsrs  �rrzTUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__�rtrc�r��t|��t���|����SrW)rr�__rtruediv__rs  �rr�zUUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__�s+���!�t�D�z�z�%�'�'�"6�"6�u�"=�"=�>�>�>rc�r��t|��t���|����SrW)rr�__sub__rs  �rr�zPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__�rxrc�r��t|��t���|����SrW)rr�__rsub__rs  �rr�zQUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__�s+���!�t�D�z�z�%�'�'�"2�"2�5�"9�"9�:�:�:rc�r��t|��t���|����SrW)rr�__pow__rs  �rr�zPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__�rxrc�r��t|��t���|����SrWrvrs  �rrwzPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__�rxrc�r��t|��t���|����SrW)rr�__mul__rs  �rr�zPUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__mul__�rxr)
r9r:r;rr�r�r�r�rwryr��__rmul__rrs@rr�r��s��������
>�
>�
>�
>�
>�
?�
?�
?�
?�
?�
:�
:�
:�
:�
:�
;�
;�
;�
;�
;�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:��H�
:�
:�
:�
:�
:��H�H�H�H�Hrr�)rrr)rKr�s  r�#prepare_types_for_conservation_testz7UnivariateTypeMixin.prepare_types_for_conservation_test�s@��B�	�	�	�	�	�e�	�	�	�"�w��'�2�2rc����|���}|���D]H��fd�|D��}|�|��}|�t	|������IdS)Nc�&��g|]
}�|����Sr<r<r{s  �rr�z<UnivariateTypeMixin.test_types_conserved.<locals>.<listcomp>�s!���'�'�'�Q���a���'�'�'r)rNr�rBr�r)rKr�r�r�rcs    @r�test_types_conservedz(UnivariateTypeMixin.test_types_conserved�s����� � �"�"���<�<�>�>�	.�	.�D�'�'�'�'�$�'�'�'�A��Y�Y�q�\�\�F��M�M�$�v�,�,��-�-�-�-�	.�	.rN)r9r:r;r�r�r<rrrrxs7�������3�3�3�*.�.�.�.�.rrc��eZdZd�ZdS)�
TestSumCommonc��d�}||_dS)Nc�P�tj|�\}}}tj||��SrW)r=�_sumr�)r�r��valuers    r�simplified_sumz+TestSumCommon.setUp.<locals>.simplified_sum�s'��$�/�4�0�K�A�u�a��%�e�Q�/�/�/r)rB)rKr�s  r�setUpzTestSumCommon.setUp�s��	0�	0�	0�#��	�	�	rN)r9r:r;r�r<rrr�r��s#������
#�#�#�#�#rr�c�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�TestSumc�(�tj|_dSrW)r=r�rBrws rr�z
TestSum.setUp�����O��	�	�	rc��gdtg��fD]@}|�|�|��tt	d��df���AdS)Nr<r)rErGrBr�rrMs  rrGzTestSum.test_empty_data�s\����T�"�X�X�&�	E�	E�D����T�Y�Y�t�_�_�s�H�Q�K�K��.C�D�D�D�D�	E�	Erc��|�|�gd���ttd��df��dS)N)r
r�r����i����rgr�r
�<r�)rGrBr�rrws r�	test_intszTestSum.test_ints�sI��������#?�#?�#?�@�@��x��|�|�Q�/�	1�	1�	1�	1�	1rc��|�|�dgdz��ttd��df��dS)NrKrg�@)rGrBrrrws r�test_floatszTestSum.test_floats�sH��������D�6�"�9�-�-���#����3�	5�	5�	5�	5�	5rc��|�|�tdd��gdz��ttdd��df��dS)Nr
r(��r)rGrBrrws r�test_fractionszTestSum.test_fractions�sV��������H�Q��$5�$5�#6�s�#:�;�;�"�H�Q��N�N�C�8�	:�	:�	:�	:�	:rc
�4�t}|d��|d��|d��|d��|d��|d��|d��|d��g}|�|�|��ttd	��d
f��dS)Nrz5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686r�)rrGrB�rKr�r�s   r�
test_decimalszTestSum.test_decimals�s�������'�
�
�A�A�g�J�J���'�
�
�A�A�h�K�K���'�
�
�A�A�g�J�J���'�
�
�A�A�g�J�J���	
������4���!�7�8�#4�#4�a�8�	:�	:�	:�	:�	:rc���d�td��D��}|�t|�|��d��t	j|��d���dS)Nc�8�g|]}tjdd����S)r�r(r�r�s  rr�z7TestSum.test_compare_with_math_fsum.<locals>.<listcomp>�s$��@�@�@�q���t�T�*�*�@�@�@rr(r
g��ؗ�Ҭ<�r2)r�rarrBr�fsumrMs  r�test_compare_with_math_fsumz#TestSum.test_compare_with_math_fsum�s^��A�@�E�$�K�K�@�@�@�����u�T�Y�Y�t�_�_�Q�%7�8�8�$�)�D�/�/�u��U�U�U�U�Urc��|�t|jgd�d��|�t|jgd���dS)N�r
rr��999)r
rr�r�rArws r�test_strings_failzTestSum.test_strings_fail�sI�����)�T�Y�	�	�	�5�A�A�A����)�T�Y�0@�0@�0@�A�A�A�A�Arc��|�t|jgd�d��|�t|jgd���dS)Nr��999)r
rr�r�rArws r�test_bytes_failzTestSum.test_bytes_fail�sI�����)�T�Y�	�	�	�6�B�B�B����)�T�Y�0A�0A�0A�B�B�B�B�Brc	���|�t|jddtd��g��|�t|jddgtd����dS)Nr
r/)r8r�rBrrws r�test_mixed_sumzTestSum.test_mixed_sum�sW��	
���)�T�Y��C�����0D�E�E�E����)�T�Y��C��'�!�*�*�E�E�E�E�ErN)
r9r:r;r�rGr�r�r�r�r�r�r�r�r<rrr�r��s�������
$�$�$�E�E�E�
1�1�1�5�5�5�:�:�:�:�:�:�V�V�V�B�B�B�
C�C�C�
F�F�F�F�Frr�c��eZdZd�ZdS)�SumTortureTestc���|�tjgd�dz��tt	d��df��|�tjgd�dz��tt	d��df��tjgd�dz��\}}}|�|t��|�|d��|�t|��dd�	��dS)
N)r
�}Ô%�I�Tr
�}Ô%�I��r:g��@i@�)r�r
r
r�)�0��.�++r
r�rvg���^�,gV瞯�<r�)rGr=r�rrr�ra)rKr�r��counts    r�test_torturezSumTortureTest.test_torture�s��������)>�)>�)>�u�)D�E�E���'�!2�!2�E�:�	<�	<�	<������)>�)>�)>�u�)D�E�E���'�!2�!2�E�:�	<�	<�	<�"��(?�(?�(?��(E�F�F�
��3���
�
�a����������&�&�&����u�S�z�z�7���>�>�>�>�>rN)r9r:r;r�r<rrr�r��s#������	?�	?�	?�	?�	?rr�c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�SumSpecialValuesc��ttfD]t}|d��}tjd|dg��d}|�t|��|��|�tj|�����udS)Nr+r
r)	rrr=r�r�rr�rr)rKr�r+r�s    rr-zSumSpecialValues.test_nan�s����W�%�	0�	0�E��%��,�,�C��_�a��a�[�1�1�!�4�F��M�M�$�v�,�,��.�.�.��O�O�D�J�v�.�.�/�/�/�/�		0�	0rc���	|�tj|����|�t	|��t	|����|�|dk|dk��dS�Nr)r�rr/r�rrG)rKrr"s   r�check_infinityzSumSpecialValues.check_infinity�sc��F�����
�1�
�
�&�&�&��
�
�d�1�g�g�t�C�y�y�)�)�)�����Q���a��(�(�(�(�(rc���tjdd|dg��d}|�||��tjdd|d|dg��d}|�||��dS)Nr
rr�r�)r=r�r��rKr"r�s   r�do_test_infzSumSpecialValues.do_test_infsq����!�Q��Q��0�0��3�����F�C�(�(�(���!�Q��Q��Q�!7�8�8��;�����F�C�(�(�(�(�(rc�^�td��}dD]}|�||z���dS�Nr"�r
rv)rr��rKr"rs   r�test_float_infzSumSpecialValues.test_float_infsA���E�l�l���	'�	'�D����T�#�X�&�&�&�&�	'�	'rc�^�td��}dD]}|�||z���dSr�)rr�r�s   r�test_decimal_infz!SumSpecialValues.test_decimal_infsA���e�n�n���	'�	'�D����T�#�X�&�&�&�&�	'�	'rc��td��}tjdd|d|dg��d}|�t	j|����dS�Nr"r
rr�r�)rr=r�r�rrr�s   r�test_float_mismatched_infsz+SumSpecialValues.test_float_mismatched_infssR���E�l�l����!�Q��Q���a�!8�9�9�!�<������
�6�*�*�+�+�+�+�+rc�"�td��}dd|d|dg}tjtj��5|�tjtj|��d����ddd��dS#1swxYwYdSr�)	r�decimal�localcontext�ExtendedContextr�rrr=r��rKr"r�s   r�3test_decimal_extendedcontext_mismatched_infs_to_nanzDSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nans����e�n�n���1�c�1�s�d�A�&��
�
!�'�"9�
:�
:�	B�	B��O�O�D�J�z��t�'<�'<�Q�'?�@�@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs�AB�B�Bc��td��}dd|d|dg}tjtj��5|�tjtj|��ddd��dS#1swxYwYdSr�)rr�r��BasicContextr8�InvalidOperationr=r�r�s   r�0test_decimal_basiccontext_mismatched_infs_to_nanzASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nan%s����e�n�n���1�c�1�s�d�A�&��
�
!�'�"6�
7�
7�	O�	O����g�6�
���N�N�N�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�	O�	Os�,A0�0A4�7A4c��td��}d|dg}|�tjtj|��dS)Nr�r
r)rr8r�r�r=r�)rKr�r�s   r�test_decimal_snan_raisesz)SumSpecialValues.test_decimal_snan_raises,s;���v�����4��|�����'�2�J�O�T�J�J�J�J�JrN)r9r:r;r-r�r�r�r�r�r�r�r�r<rrr�r��s�������0�0�0����)�)�)�'�'�'�
'�'�'�
,�,�,�B�B�B�O�O�O�K�K�K�K�Krr�c� �eZdZd�Zd�Zd�ZdS)�AverageMixinc��dddtdd��td��fD],}|�|�|g��|���-dS�Nr�g@E@g�X_yCr~�z0.28�rrrGrBr�s  r�test_single_valuezAverageMixin.test_single_value8s[���d�F�H�R��$4�$4�g�f�o�o�F�	0�	0�A����T�Y�Y��s�^�^�Q�/�/�/�/�	0�	0rc�F�dddtdd��td��fS)N�@r|���7y�!C�=�Cz4.9712�rrrws r�'prepare_values_for_repeated_single_testz4AverageMixin.prepare_values_for_repeated_single_test=s%���R���"�b�!1�!1�7�8�3D�3D�E�Erc��|���D]e}dD]`}|�||���5|g|z}|�|�|��|��ddd��n#1swxYwY�a�fdS)N�rr�r�rg)rr�)r��subTestrGrB�rKrr�r�s    r�test_repeated_single_valuez'AverageMixin.test_repeated_single_value@s����=�=�?�?�	9�	9�A�'�
9�
9���\�\�A�U�\�3�3�9�9��3�u�9�D��$�$�T�Y�Y�t�_�_�a�8�8�8�9�9�9�9�9�9�9�9�9�9�9����9�9�9�9��
9�	9�	9s�0A.�.A2�5A2N)r9r:r;r�r�r�r<rrr�r�5sD������0�0�0�
F�F�F�9�9�9�9�9rr�c�\�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�TestMeanc�(�tj|_dSrW)r=�meanrBrws rr�zTestMean.setUpJr�rc�\�|�|�gd���d��dS)N)r�r
r�r�r
�rGrBrws r�test_torture_pepzTestMean.test_torture_pepMs1��������#8�#8�#8�9�9�1�=�=�=�=�=rc��gd�}tj|��|�|�|��d��dS)N)rr
rr�r�r�r�r�r�rTr�r�r�r�r�r�g@@�r�rLrGrBrMs  rr�zTestMean.test_intsQsC��?�?�?����t����������4���&�1�1�1�1�1rc��gd�}tj|��|�|�|��d��dS)N)g@1@g�3@�4@g�5@g�5@g@7@g 9@g�;@g6@r�rMs  rr�zTestMean.test_floatsWsC��E�E�E����t����������4���)�4�4�4�4�4rc��t}|d��|d��|d��|d��|d��g}tj|��|�|�|��|d����dS)Nz1.634z2.517z3.912z4.072z5.813z3.5896�rr�rLrGrBr�s   rr�zTestMean.test_decimals]s}������'�
�
�A�A�g�J�J���'�
�
�A�A�g�J�J���'�
�
�K����t����������4���!�!�H�+�+�6�6�6�6�6rc
�@�t}|dd��|dd��|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��|d	d
����dS)Nr
rr�r�r�rTr�r�i�i��rr�rLrGrB�rKr�r�s   rr�zTestMean.test_fractionsds�������!�Q�����1�a���!�!�A�q�'�'�1�1�Q��7�7�A�A�a��G�G�Q�Q�q�!�W�W�a�a��1�g�g�N����t����������4���!�!�D�$�-�-�8�8�8�8�8rc��gd�}ttfD]m}dD]h}|d��|z}||gz}|�|��}|�t	j|����|�||���i�ndS)N�r
r�r�r�r�r�r")rrrBr�rr/rG)rKr|rcrr"r�r�s       rr)zTestMean.test_infks����o�o���G�$�	.�	.�D��
.�
.���d�5�k�k�$�&���c�U�{�����4��������
�6� 2� 2�3�3�3�� � ���-�-�-�-�
.�	.�	.rc
���dddtd��dddtd��g}|�|��}|�tj|����dS)	Nrr�rTr"r
r�r�z-inf)rrBr�rr�rKr�r�s   r�test_mismatched_infszTestMean.test_mismatched_infsvsU���1�a��u���q�!�Q��f�
�
�>�����4��������
�6�*�*�+�+�+�+�+rc���gd�}ttfD]O}|d��}||gz}|�|��}|�t	j|�����PdS)Nrr+)rrrBr�rr)rKr|rcr"r�r�s      rr-zTestMean.test_nan|so���o�o���G�$�	0�	0�D��$�u�+�+�C��#��;�D��Y�Y�t�_�_�F��O�O�D�J�v�.�.�/�/�/�/�		0�	0rc���d�gd�}|�|���z}|��fd�|D����}|�||��dS)Nge��A�	�333333@�@g������@g������@g333333@�������@g @g333333 @g������"@c���g|]}|�z��Sr<r<�r�r�cs  �rr�z*TestMean.test_big_data.<locals>.<listcomp>�����.�.�.�A�A�a�C�.�.�.r�rBrG�rKr�r&r�rs    @r�
test_big_datazTestMean.test_big_data�si�����<�<�<���9�9�T�?�?�Q�&�����.�.�.�.��.�.�.�/�/�������*�*�*�*�*rc��d�td��D��}|�|��}|�|dz��}|�||��dS)Nc�8�g|]}tjdd����S)r}r�r�r�s  rr�z.TestMean.test_doubled_data.<locals>.<listcomp>��$��;�;�;�!���r�1�%�%�;�;�;rr(r�r�rBrarUs    r�test_doubled_datazTestMean.test_doubled_data�s[��;�;�u�T�{�{�;�;�;���9�9�T�?�?�����4��6�"�"�����v�x�0�0�0�0�0rc�v�td��}|�tj|g��|��dS)N�1e4)rrGr=r�r�s  r�test_regression_20561zTestMean.test_regression_20561�s7��
�E�N�N�������!��-�-�q�1�1�1�1�1rc��|�tjddg��d��d}d}dD]Z}|�tj|g|z��|��|�tj|g|z��|���[dS)Ng�������g�g)rr�r�r�)rGr=r�)rK�big�tinyrs    r�test_regression_25177zTestMean.test_regression_25177�s���	
�����
#�%:�;�=�=�!�	#�	#�	#�$�����	>�	>�A����Z�_�c�U�1�W�5�5�s�;�;�;����Z�_�d�V�A�X�6�6��=�=�=�=�	>�	>rN)r9r:r;r�r�r�r�r�r�r)r
r-rrrr#r<rrr�r�Is�������$�$�$�>�>�>�2�2�2�5�5�5�7�7�7�9�9�9�	.�	.�	.�,�,�,�0�0�0�+�+�+�1�1�1�2�2�2�>�>�>�>�>rr�c�x��eZdZd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Z�xZS)�TestHarmonicMeanc�(�tj|_dSrW)r=�
harmonic_meanrBrws rr�zTestHarmonicMean.setUp�s���,��	�	�	rc�r��t�����}|�d��|Sr�)rrN�remove)rKr1rs  �rrNzTestHarmonicMean.prepare_data�s/������%�%�'�'���
�
�a�����
rc�F�dddtdd��td��fS)Nr�r|r�r�r�z4.125r�rws rr�z8TestHarmonicMean.prepare_values_for_repeated_single_test�s%���R���"�b�!1�!1�7�7�3C�3C�D�Drc�`�gd�}|�|�|��d��dS)N)r
rrrr��rKr1s  r�	test_zerozTestHarmonicMean.test_zero�s3������������6�*�*�A�.�.�.�.�.rc���tj}dggd�fD]L}|�|���5|�||j|��ddd��n#1swxYwY�MdS)Nrv)r
r�r�)r1)r=rvr�r8rB)rK�excr1s   r�test_negative_errorz$TestHarmonicMean.test_negative_error�s����(���t�Z�Z�Z�(�	:�	:�F����V��,�,�
:�
:��!�!�#�t�y�&�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��	:�	:s�A�A	�A	c��dggd�gd�gd�fD]w}|�|���5|�t��5|�|��ddd��n#1swxYwYddd��n#1swxYwY�xdS)Nz3.14)�1�2�3)r
r3r��4r�)gffffff@rrz5.6ra)r�r8r�rBrMs  r�test_invalid_type_errorz(TestHarmonicMean.test_invalid_type_error�s!���H��O�O����"�"�"�	
�	$�	$�D����4��(�(�
$�
$��&�&�y�1�1�$�$��I�I�d�O�O�O�$�$�$�$�$�$�$�$�$�$�$����$�$�$�$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$��
	$�	$s5�A:�A#�A:�#A'�'A:�*A'�+A:�:A>	�A>	c��gd�}tj|��|�|�|��d��dS)N)rr�r�r�r�r�g333333@r�rMs  rr�zTestHarmonicMean.test_ints�sC��#�#�#����t����������4���%�0�0�0�0�0rc���gd�}tj|��|�|�|��d��|�|�gd���d��dS)N)r�rKrKr�r�rK)rKr�r�r�r�r�rMs  r�test_floats_exactz"TestHarmonicMean.test_floats_exact�sl��(�(�(����t����������4���#�.�.�.�������#8�#8�#8�9�9�3�?�?�?�?�?rc��tdd��D],}|�|�|g��|���-dS)Nr
r��r�rGrBr�s  r�test_singleton_listsz%TestHarmonicMean.test_singleton_lists�sH���q�#���	0�	0�A����T�Y�Y��s�^�^�Q�/�/�/�/�	0�	0rc
��t}|�|�|d��|d��|d��|d��g��|d����|d��|d��|d��|d��g}tj|��|�|�|��|d����|d��|d��|d	��|d
��g}tj|��|�|�|��|d��dz��dS)
Nr~rr�rz0.10z0.20z1.68z0.32z5.94z2.75i�iC)rrGrBr�rLr�s   r�test_decimals_exactz$TestHarmonicMean.test_decimals_exact�s0����������A�A�b�E�E�1�1�R�5�5�!�!�B�%�%���2���#?�@�@�!�!�B�%�%�H�H�H���&�	�	�1�1�V�9�9�a�a��i�i���6���;����t����������4���!�!�F�)�)�4�4�4���&�	�	�1�1�V�9�9�a�a��i�i���6���;����t����������4���!�!�E�(�(�5�.�9�9�9�9�9rc
�@�t}|dd��|dd��|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��|d	d
����dS)Nr
rr�r�r�rTr�r�i|i�rrs   rr�zTestHarmonicMean.test_fractions�s�������!�Q�����1�a���!�!�A�q�'�'�1�1�Q��7�7�A�A�a��G�G�Q�Q�q�!�W�W�a�a��1�g�g�N����t����������4���!�!�E�4�.�.�9�9�9�9�9rc�|�dtd��dg}|�|�|��d��dS)Nr/r"r�)rrGrBr,s  rr)zTestHarmonicMean.test_inf�s<���u�U�|�|�S�)��������6�*�*�C�0�0�0�0�0rc��dtd��dg}|�tj|�|������dS)Nr/r+r�)rr�rrrBr,s  rr-zTestHarmonicMean.test_nan�sB���u�U�|�|�S�)������
�4�9�9�V�#4�#4�5�5�6�6�6�6�6rc���d�gd�}|�|���z}|��fd�|D����}|�||��dS)N�or
c���g|]}|�z��Sr<r<rs  �rr�z>TestHarmonicMean.test_multiply_data_points.<locals>.<listcomp>rrrrs    @r�test_multiply_data_pointsz*TestHarmonicMean.test_multiply_data_points�si�����<�<�<���9�9�T�?�?�1�$�����.�.�.�.��.�.�.�/�/�������*�*�*�*�*rc��d�td��D��}|�|��}|�|dz��}|�||��dS)Nc�8�g|]}tjdd����S)r
r�r�r�s  rr�z6TestHarmonicMean.test_doubled_data.<locals>.<listcomp>s$��:�:�:����q�!�$�$�:�:�:rr(rrrUs    rrz"TestHarmonicMean.test_doubled_datas[��:�:�e�D�k�k�:�:�:���9�9�T�?�?�����4��6�"�"�����v�x�0�0�0�0�0rc
�t�|�|�ddgddg��d��|�|�ddgddg���d��|�|�tddg��tddg����d��|�|�tdd��td	d��td
d��ggd���|�tdd��gdztd	d��gdzztd
d��gdzz����|�|�dgd
g��d��|�t
��5|�gd
�gd���ddd��n#1swxYwY|�tj��5|�gd
�ddg��ddd��n#1swxYwY|�tj��5|�dgdg��ddd��n#1swxYwY|�tj��5|�ddgddg��ddd��dS#1swxYwYdS)Nr#r�r�rgL@)�weightsr�r�r�r�r)r�rr�r�)r
r<r�r
rrg)rGrBrErr8r�r=rvrws r�test_with_weightsz"TestHarmonicMean.test_with_weightss���������B��8�a��W�5�5�t�<�<�<�������B��8�,-�r�7�#�4�4�59�	;�	;�	;�������4��R��>�>�#'��B��=�=�2�2�37�	9�	9�	9�����I�I�x��A�����Q����!�Q���H�*�*�*�U�U��I�I�x��A���'�!�+���A���'�!�+�,���1�~�~�&��+�,�
-�
-�	.�	.�	.�
	
������B�4�!��-�-�r�2�2�2�
�
�
�y�
)�
)�	-�	-��I�I�i�i�i����,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
�
�
�z�9�
:�
:�	)�	)��I�I�i�i�i�!�Q��(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�
�
�
�z�9�
:�
:�	!�	!��I�I�r�d�Q�C� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�
�
�z�9�
:�
:�	(�	(��I�I�r�2�h��A��'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(sH�F;�;F?�F?�%H�H�H�6I�I�"I�J-�-J1�4J1)r9r:r;r�rNr�r-r0r6r�r9r<r>r�r)r-rErrJrrs@rr%r%�s�������-�-�-������E�E�E�/�/�/�
:�:�:�
$�
$�
$�1�1�1�@�@�@�0�0�0�
	:�	:�	:�:�:�:�1�1�1�
7�7�7�
+�+�+�1�1�1�(�(�(�(�(�(�(rr%c�H��eZdZd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
�xZS)	�
TestMedianc�(�tj|_dSrW�r=�medianrBrws rr�zTestMedian.setUp$����%��	�	�	rc���	t�����}t|��dzdkr|�d��|S)Nrr
)rrNrcrS)rKr�rs  �rrNzTestMedian.prepare_data'sD���9��w�w�#�#�%�%���t�9�9�Q�;�!����K�K��N�N�N��rc�`�gd�}|�|�|��d��dS)N�r
rr�r�r�rTr�r�rMs  r�test_even_intszTestMedian.test_even_ints.s3��!�!�!��������4���#�.�.�.�.�.rc�`�gd�}|�|�|��d��dS)N)r
rr�r�r�rTr�r�r�rMs  r�
test_odd_intszTestMedian.test_odd_ints4s3��$�$�$��������4���!�,�,�,�,�,rc��t}|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��|dd����dS)Nr
r�rr�r�r�rrs   r�test_odd_fractionszTestMedian.test_odd_fractions:s�������!�Q�����1�a���!�!�A�q�'�'�1�1�Q��7�7�A�A�a��G�G�<����t����������4���!�!�A�q�'�'�2�2�2�2�2rc	�*�t}|dd��|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��|dd����dS�Nr
r�rr�r�r�rTrrs   r�test_even_fractionszTestMedian.test_even_fractionsB�������!�Q�����1�a���!�!�A�q�'�'�1�1�Q��7�7�A�A�a��G�G�Q�Q�q�!�W�W�E����t����������4���!�!�A�q�'�'�2�2�2�2�2rc��t}|d��|d��|d��|d��|d��g}tj|��|�|�|��|d����dS)N�2.5�3.1�4.2�5.7�5.8rr�s   r�test_odd_decimalszTestMedian.test_odd_decimalsJs}������%���!�!�E�(�(�A�A�e�H�H�a�a��h�h���%���A����t����������4���!�!�E�(�(�3�3�3�3�3rc��t}|d��|d��|d��|d��|d��|d��g}tj|��|�|�|��|d����dS)Nz1.2r^r_r`rarbz3.65rr�s   r�test_even_decimalszTestMedian.test_even_decimalsRs�������%���!�!�E�(�(�A�A�e�H�H�a�a��h�h���%���!�!�E�(�(�K����t����������4���!�!�F�)�)�4�4�4�4�4r)r9r:r;r�rNrTrVrXr[rcrerrs@rrLrL"s��������&�&�&������/�/�/�-�-�-�3�3�3�3�3�3�4�4�4�5�5�5�5�5�5�5rrLc��eZdZd�Zd�ZdS)�TestMedianDataTypec�(�tj|_dSrWrNrws rr�zTestMedianDataType.setUp]rPrc��ttd����}|t|��kr'tj|��|t|��k�'|S)Nr~rJrMs  rrNzTestMedianDataType.prepare_data`sL���E�"�I�I�����f�T�l�l�"�"��N�4� � � ��f�T�l�l�"�"��rN)r9r:r;r�rNr<rrrgrg[s2������&�&�&�����rrgc�&�eZdZd�Zd�Zd�Zd�ZdS)�
TestMedianLowc�(�tj|_dSrW)r=�
median_lowrBrws rr�zTestMedianLow.setUpis���)��	�	�	rc�`�gd�}|�|�|��d��dS)NrSr�r�rMs  rrTzTestMedianLow.test_even_intsl�3��!�!�!��������4���!�,�,�,�,�,rc	�*�t}|dd��|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��|dd����dSrZrrs   rr[z!TestMedianLow.test_even_fractionsrr\rc��t}|d��|d��|d��|d��|d��|d��g}tj|��|�|�|��|d����dS�Nz1.1z2.2z3.3z4.4r�z6.6rr�s   rrez TestMedianLow.test_even_decimalsz�������%���!�!�E�(�(�A�A�e�H�H�a�a��h�h���%���!�!�E�(�(�K����t����������4���!�!�E�(�(�3�3�3�3�3rN�r9r:r;r�rTr[rer<rrrkrkhsP������*�*�*�-�-�-�3�3�3�4�4�4�4�4rrkc�&�eZdZd�Zd�Zd�Zd�ZdS)�TestMedianHighc�(�tj|_dSrW)r=�median_highrBrws rr�zTestMedianHigh.setUp�s���*��	�	�	rc�`�gd�}|�|�|��d��dS)NrSr�r�rMs  rrTzTestMedianHigh.test_even_ints�rorc	�*�t}|dd��|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��|dd����dSrZrrs   rr[z"TestMedianHigh.test_even_fractions�r\rc��t}|d��|d��|d��|d��|d��|d��g}tj|��|�|�|��|d����dSrrrr�s   rrez!TestMedianHigh.test_even_decimals�rsrNrtr<rrrvrv�sP������+�+�+�-�-�-�3�3�3�4�4�4�4�4rrvc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestMedianGroupedc�(�tj|_dSrW)r=�median_groupedrBrws rr�zTestMedianGrouped.setUp�s���-��	�	�	rc�v�gd�}|�|�|��d��gd�}|�|�|��d��gd�}|�|�|d��d��gd�}|�|�|d	��d
d���dS)
N)r�r�r�r�r~r~r�)r�rr�r�r�r�r~g�+@)r�r�r�r~rgrgrgrg�r�rr�g`3@)r��r�r�r�rgrgrg�r�r��r���rg������4@�:�0�yE>�r1�rGrBrarMs  r�test_odd_number_repeatedz*TestMedianGrouped.test_odd_number_repeated�s���+�+�+��������4���"�-�-�-�+�+�+��������4���&�1�1�1�:�:�:��������4��+�+�V�4�4�4�K�K�K�����t�y�y��q�1�1�;�D��I�I�I�I�Irc�x�gd�}|�|�|d��dd���gd�}|�|�|��dd���gd�}|�|�|��d	��gd
�}|�|�|��d��dS)N)
r�r�r�r~rgrgrgr�r�rr�g�����*3@r�r�)rr�r�r�r�r�g["8���@)rr�r�r�r�r�r�r�r�r�rTrTr)
r�r�r�r�r�r�r�r�rTrT�@)rarBrGrMs  r�test_even_number_repeatedz+TestMedianGrouped.test_even_number_repeated�s���6�6�6�����t�y�y��q�1�1�;�D��I�I�I�!�!�!�����t�y�y����
���E�E�E�3�3�3��������4���#�.�.�.�-�-�-��������4���$�/�/�/�/�/rc���dddtdd��td��fD]C}dD]>}|g|z}|�|�|��t	|�����?�DdS)N�333333@�Dg��ޗCr�r�z32.9714r��rrrGrBrr�s    rr�z,TestMedianGrouped.test_repeated_single_value�s����r�6�8�B��#4�#4�g�i�6H�6H�I�	<�	<�A�'�
<�
<���s�5�y��� � ����4���%��(�(�;�;�;�;�
<�	<�	<rc��dddtdd��td��fD]9}|�|�|g��t	|�����:dSr�r�r�s  rr�z#TestMedianGrouped.test_single_value�sc���d�F�H�R��$4�$4�g�f�o�o�F�	7�	7�A����T�Y�Y��s�^�^�U�1�X�X�6�6�6�6�	7�	7rc��t}|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��d��dS)Nr�r�r�rr|�@rrs   rrXz$TestMedianGrouped.test_odd_fractions�s������!�Q�����1�a���!�!�B��(�(�A�A�b�!�H�H�a�a��A�h�h�?����t����������4���#�.�.�.�.�.rc	��t}|dd��|dd��|dd��|dd��|dd��|dd��g}tj|��|�|�|��d��dS)Nr�r�r�rr|�
@rrs   rr[z%TestMedianGrouped.test_even_fractions�s�������!�Q�����1�a���!�!�B��(�(�A�A�b�!�H�H�a�a��A�h�h���"�a���I����t����������4���$�/�/�/�/�/rc��t}|d��|d��|d��|d��|d��g}tj|��|�|�|��d��dS)Nr��6.5�7.5�8.5g@rr�s   rrcz#TestMedianGrouped.test_odd_decimals�su������%���!�!�E�(�(�A�A�e�H�H�a�a��h�h���%���A����t����������4���$�/�/�/�/�/rc��t}|d��|d��|d��|d��|d��|d��g}tj|��|�|�|��d��|d��|d��|d��|d��|d��|d��g}tj|��|�|�|��d��dS)Nr�r�r�r��@�@rr�s   rrez$TestMedianGrouped.test_even_decimals�s�������%���!�!�E�(�(�A�A�e�H�H�a�a��h�h���%���!�!�E�(�(�K����t����������4���#�.�.�.���%���!�!�E�(�(�A�A�e�H�H�a�a��h�h���%���!�!�E�(�(�K����t����������4���#�.�.�.�.�.rc��gd�}|�|�|d��d��gd�}|�|�|d��dd���gd�}|�|�|d	��d
��dS)N)
�@rIrIr#r#r�r�r�r�rPrKg@)r�rIrIr#r#r#r�r�r�r�rPg["8���@r�r�)��r����r�r�r��r��,�@iTrgg�p@r�rMs  r�
test_intervalzTestMedianGrouped.test_interval�s���F�F�F��������4��.�.��6�6�6�L�L�L�����t�y�y��t�4�4�j�d��K�K�K�K�K�K��������4��,�,�e�4�4�4�4�4rc�:�gd�}|�t|j|��gd�}|�t|j|��gd�}d}|�t|j||��gd�}d}|�t|j||��dS)N)�r�r�)rrrr�r�rrA)rKr��intervals   r�test_data_type_errorz&TestMedianGrouped.test_data_type_errors����|�|�����)�T�Y��5�5�5��������)�T�Y��5�5�5��y�y�������)�T�Y��h�?�?�?��y�y�������)�T�Y��h�?�?�?�?�?rN)r9r:r;r�r�r�r�r�rXr[rcrer�r�r<rrr}r}�s�������.�.�.�J�J�J�$0�0�0�$<�<�<�7�7�7�/�/�/�0�0�0�0�0�0�/�/�/�5�5�5�@�@�@�@�@rr}c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestModec�(�tj|_dSrW)r=�moderBrws rr�zTestMode.setUpr�rc��	gd�S)N)r
r
r
r
r�r�r�r�rr�rr<rws rrNzTestMode.prepare_datas��9�0�0�0�0rc�z�tddd��}|�|�|��d��dSrfr;rMs  rrizTestMode.test_range_data s9���R��Q����������4���"�-�-�-�-�-rc���d}|�|�|��d��d���}|�|�|��d��dS)N�abcbdbrzfe fi fo fum fi fi�fi)rGrBr�rMs  r�test_nominal_datazTestMode.test_nominal_data%s^����������4���#�.�.�.�#�)�)�+�+��������4���$�/�/�/�/�/rc���ttd����}td��D]E}||gz}tj|��|�|�|��|���FdSrI�r�r�r�rLrGrB)rKr�rir�s    r�test_discrete_datazTestMode.test_discrete_data,sp���E�"�I�I�����r���	.�	.�A���s�
�A��N�1�������T�Y�Y�q�\�\�1�-�-�-�-�	.�	.rc�`�gd�}|�|�|��d��dS)N)r
r
rrrrr�r�r�rTrTrTrTr�r�r�r�rr�rMs  r�test_bimodal_datazTestMode.test_bimodal_data4s5��B�B�B��	
������4���!�,�,�,�,�,rc��ttd����}|�|�|��d��dS)Nr�r)r�r�rGrBrMs  r�test_unique_datazTestMode.test_unique_data;s9���E�"�I�I����������4���!�,�,�,�,�,rc�H�|�t|jd��dSrWrArws r�test_none_datazTestMode.test_none_dataAs$��
	
���)�T�Y��5�5�5�5�5rc��tjdd���}|�|�|��d��dS)Nr
r)rrr)rX�CounterrGrB)rKrs  r�test_counter_datazTestMode.test_counter_dataHsA��

��!�q�)�)�)��	
������1���s�+�+�+�+�+rN)r9r:r;r�rNrir�r�r�r�r�r�r<rrr�r�s�������$�$�$�1�1�1�
.�.�.�
0�0�0�.�.�.�-�-�-�-�-�-�6�6�6�,�,�,�,�,rr�c��eZdZd�ZdS)�
TestMultiModec���tj}|�|d��dg��|�|d��gd���|�|d��g��dS)N�aabbbbbbbbccr�aabbbbccddddeeffffgg)rr�r�r�)r=�	multimoderG)rKr�s  r�test_basicszTestMultiMode.test_basicsUsu���(�	������>�2�2�S�E�:�:�:������#9�:�:�O�O�O�L�L�L������2����+�+�+�+�+rN)r9r:r;r�r<rrr�r�Ss#������,�,�,�,�,rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�	TestFMeanc
���tj}t}t}gd�ddf|d��|d��|d��gddf|dd	��|d
d��|dd
��gdd
fgd�ddfdd
|dd
��gddfdt	gd���ddffD]Q\}}}||��}|�t
|��t|��|�|||���RdS)N�r�rJ�@�@�floats�3.5�4.0�5.25�decimalsr�rr�r
r��	fractions)TFTTF�333333�?�booleansr��mixed types)r�r�r��iterator)	r=�fmeanrrrEr�rrrG)rKr�r�r�r��
expected_meanrc�actual_means        rr�zTestFMean.test_basics^s-��� ������
�
�
�t�X�.��a��h�h���%���!�!�F�)�)�
,�d�J�?��a��1�g�g�q�q��A�w�w���"�a���
)�4��=�
-�
-�
-�t�Z�@��1�a�a��A�h�h�
��}�5�-�
�"�"�"�
#�
#�T�:�6�*�	?�	?�%�D�-�� �%��+�+�K��M�M�$�{�+�+�U�D�9�9�9����[�-��>�>�>�>�	?�	?rc�"�tj}tj}|�|��5|g��ddd��n#1swxYwY|�|��5|t	g����ddd��n#1swxYwY|�t
��5|d��ddd��n#1swxYwY|�t
��5|gd���ddd��n#1swxYwY|�t
��5|��ddd��n#1swxYwY|�t
��5|gd�d��ddd��dS#1swxYwYdS)N�r�Nrg�r�rgr��F)r=r�rvr8rEr��rKr�rvs   r�test_error_caseszTestFMean.test_error_casesos���� ��$�4��
�
�
��
/�
/�	�	��E�"�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
��
/�
/�	�	��E�$�r�(�(�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	��E�$�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	"�	"��E�.�.�.�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�
�
�y�
)�
)�	�	��E�G�G�G�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	$�	$��E�,�,�,��#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$sk�A�A
�
A
�&B�B�B�0C�C�C�-D�D�D�,E�E�
E�(F�F�Fc��tj}td��}td��}|�t	j|d|g����d��|�t	j|||g����d��|�t	j|d|g����d��|�t��5|||g��ddd��dS#1swxYwYdS�N�Nan�Infr�r+znan and infinity�infinity)	r=r�rr�rrr/r8r.)rKr��NaNr�s    r�test_special_valueszTestFMean.test_special_valuess3��� ���E�l�l���E�l�l������
�5�5�"�c��#3�#3�4�4�e�<�<�<�����
�5�5�#�s��#4�#4�5�5�7I�J�J�J�����
�5�5�"�c��#3�#3�4�4�j�A�A�A�
�
�
�z�
*�
*�	�	��E�3���+����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	��C:�:C>�C>c	���tj}tj}|�|gd�dgdz��|gd�����|�|gd�gd���|gd�����|�|t	gd���t	gd�����|gd�����|�|��5|gd�dd	g��ddd��n#1swxYwY|�|��5|t	gd���t	dd	g����ddd��n#1swxYwY|�|��5|d
dgddg��ddd��n#1swxYwY|�|��5|t	d
dg��t	ddg����ddd��dS#1swxYwYdS)
N)r�r�r�r	rKr�)r�r�rg)rKrKr�)r�r�rgrg�r�rgrr
rr�rgrv)r=r�rvrGrEr8r�s   r�test_weightszTestFMean.test_weights�s1��� ��$�4������E�"�"�"�T�F�Q�J�/�/��E�"�"�"�#�#�	%�	%�	%�	
����E�,�,�,� 2� 2� 2�3�3��E�"�"�"�#�#�	%�	%�	%�	
����E�$�|�|�|�$�$�d�+=�+=�+=�&>�&>�?�?��E�"�"�"�#�#�	%�	%�	%��
�
��
/�
/�	(�	(��E�,�,�,��A��'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
�
��
/�
/�	4�	4��E�$�|�|�|�$�$�d�A�q�6�l�l�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�
�
�
��
/�
/�	%�	%��E�2�r�(�R��G�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�
�
�
��
/�
/�	1�	1��E�$��B�x�.�.�$��A�w�-�-�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1sH�C4�4C8�;C8�+E�E�E�+F�F�F�(+G � G$�'G$N)r9r:r;r�r�r�r�r<rrr�r�\sP������?�?�?�"$�$�$� 	�	�	�1�1�1�1�1rr�c�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�VarianceStdevMixinr+c��dddtdd��td��fD],}|�|�|g��d���-dS)Nr�g������3@g���%�Br�r�z8.392rr�r�s  rr�z$VarianceStdevMixin.test_single_value�s]���d�F�H�R��$4�$4�g�g�6F�6F�G�	0�	0�A����T�Y�Y��s�^�^�Q�/�/�/�/�	0�	0rc��dddtdd��td��fD]6}dD]1}|g|z}|�|�|��d���2�7dS)	Nrrg@�6��<Cr�r�z62.4802)rr�r�r~rr�r�s    rr�z-VarianceStdevMixin.test_repeated_single_value�sx���r�6�8�A�q�>�>�7�9�3E�3E�F�	5�	5�A�&�
5�
5���s�5�y��� � ����4���!�4�4�4�4�
5�	5�	5rc��dgdz}|�|��}|�|dd���|�|d��dS)Ng.�F7ݚ�?r:rug��ؗ�Ҍ<r�r)rBrar�r	s   r�test_domain_error_regressionz/VarianceStdevMixin.test_domain_error_regression�sY��"�"�5�(�����4�������v�s���6�6�6������*�*�*�*�*rc���gd�}|�|��}d��fd�|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�@c���g|]}|�z��Sr<r<�r�r�shifts  �rr�z6VarianceStdevMixin.test_shift_data.<locals>.<listcomp>�����'�'�'�a��E�	�'�'�'r)rBra�rKr|r&r�r�s    @r�test_shift_dataz"VarianceStdevMixin.test_shift_data�sd���K�J�J���9�9�S�>�>����'�'�'�'�3�'�'�'�����t�y�y�����9�9�9�9�9rc���gd�}|�|��}d��fd�|D��}|�|�|��|��dS)N)
r
r�r�r�r�r�r�r�r�r�iʚ;c���g|]}|�z��Sr<r<r�s  �rr�z<VarianceStdevMixin.test_shift_data_exact.<locals>.<listcomp>�r�rrr�s    @r�test_shift_data_exactz(VarianceStdevMixin.test_shift_data_exact�sa���/�/�/���9�9�S�>�>����'�'�'�'�3�'�'�'��������4���(�3�3�3�3�3rc���d�td��D��}|�|��}|�|�t|����|��dS)Nc�8�g|]}tjdd����S)r}r�r�r�s  rr�z:VarianceStdevMixin.test_iter_list_same.<locals>.<listcomp>�rrr()r�rBrGrErhs   r�test_iter_list_samez&VarianceStdevMixin.test_iter_list_same�sZ��<�;�u�T�{�{�;�;�;���9�9�T�?�?��������4��:�:�.�.��9�9�9�9�9rN)
r9r:r;r2r�r�r�r�r�r�r<rrr�r��su�������C�0�0�0�
5�5�5�+�+�+�:�:�:�4�4�4�
:�
:�
:�
:�
:rr�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�
TestPVariancec�(�tj|_dSrW)r=�	pvariancerBrws rr�zTestPVariance.setUp�s���(��	�	�	rc��ttd����}tj|��d}|�|�|��|��dS)Nr:gP�_Ar�rhs   r�test_exact_uniformz TestPVariance.test_exact_uniform�sP���E�%�L�L�!�!����t����$��������4���(�3�3�3�3�3rc�d�gd�}d}|�|�|��|��dS)N�r�r�rr�g�6@r��rKr��exacts   rr�zTestPVariance.test_ints�s6���~�~����������4���%�0�0�0�0�0rc��t}|dd��|dd��|dd��|dd��g}|dd��}|�|��}|�||��|�|t��dS)Nr
r�r�r�r��rrBrG�assertIsInstance�rKr�r�r	r�s     rr�zTestPVariance.test_fractions��������!�Q�����1�a���!�!�A�q�'�'�1�1�Q��7�7�3����!�Q�������4���������'�'�'����f�h�/�/�/�/�/rc�
�t}|d��|d��|d��|d��g}|d��}|�|��}|�||��|�|t��dS)Nz12.1z12.2z12.5z12.9z0.096875�rrBrGr�rKr�r�r	r�s     rr�zTestPVariance.test_decimals�s�������&�	�	�1�1�V�9�9�a�a��i�i���6���;����*�
�
�����4���������'�'�'����f�g�.�.�.�.�.rc��gd�}d}|�|��}|�||��|�|t��dS)N)rrr
g�q�q�?�rBrGrr�rKr�r	r�s    r�test_accuracy_bug_20499z%TestPVariance.test_accuracy_bug_20499�Q���y�y�������4���������'�'�'����f�e�,�,�,�,�,rN)	r9r:r;r�rr�r�r�rr<rrrr�sn������)�)�)�4�4�4�1�1�1�0�0�0�/�/�/�-�-�-�-�-rrc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TestVariancec�(�tj|_dSrW)r=�variancerBrws rr�zTestVariance.setUps���'��	�	�	rc��dddtdd��td��fD])}|�tj|j|g���*dS)Nr�g33333�8@g�(G�!=Cr�rz4.2084�rrr8r=rvrBr�s  rr�zTestVariance.test_single_values^���d�F�H�R��$4�$4�g�h�6G�6G�H�	J�	J�A����j�8�$�)�a�S�I�I�I�I�	J�	Jrc�d�gd�}d}|�|�|��|��dS)Nrrr�rs   rr�zTestVariance.test_intss6���~�~����������4���%�0�0�0�0�0rc��t}|dd��|dd��|dd��|dd��g}|dd��}|�|��}|�||��|�|t��dS)Nr
r�r�r�rrr
s     rr�zTestVariance.test_fractions rrc�(�t}|d��|d��|d��|d��g}d|d��z|d��z}|�|��}|�||��|�|t��dS)Nrr�r�r�z9.5r�rrs     rr�zTestVariance.test_decimals)s�������!���a�a��d�d�A�A�a�D�D�!�!�A�$�$�'���!�!�E�(�(�
�1�1�Q�4�4������4���������'�'�'����f�g�.�.�.�.�.rc��d}|�|�|��d��|�|�|d���d��dS)N�r�r/r�r/��xbarr�r�rMs  r�test_center_not_at_meanz$TestVariance.test_center_not_at_mean2sS����������4���#�.�.�.�������4�c��2�2�C�8�8�8�8�8rc��gd�}d}|�|��}|�||��|�|t��dS)N)rrrgUUUUUU�?rrs    rrz$TestVariance.test_accuracy_bug_204997rrN)
r9r:r;r�r�r�r�r�r$rr<rrrrs�������(�(�(�J�J�J�
1�1�1�0�0�0�/�/�/�9�9�9�
-�-�-�-�-rrc� �eZdZd�Zd�Zd�ZdS)�
TestPStdevc�(�tj|_dSrW)r=�pstdevrBrws rr�zTestPStdev.setUp@rPrc���d�td��D��}tjtj|����}|�|�|��|��dS)Nc�8�g|]}tjdd����S)i��r�r�r�s  rr�z7TestPStdev.test_compare_to_variance.<locals>.<listcomp>Es$��=�=�=�A���s�B�'�'�=�=�=rr()r�r�sqrtr=rrGrBrhs   r�test_compare_to_variancez#TestPStdev.test_compare_to_varianceCs[��=�=��t���=�=�=���9�Z�1�$�7�7�8�8��������4���(�3�3�3�3�3rc��d}|�|�|��d��|�|�|d���d��dS)N)r�rTr�r�rIr�)�mur�r�rMs  rr$z"TestPStdev.test_center_not_at_meanIsS����������4���#�.�.�.�������4�C��0�0�#�6�6�6�6�6rN)r9r:r;r�r-r$r<rrr'r'>sA������&�&�&�4�4�4�7�7�7�7�7rr'c�0�eZdZd�Zed���Zd�ZdS)�TestSqrtHelpersc��tjtd��tdd����D]�\}}tj||��}|�|t��||z|z|kr�B|�|dzd��|�||dz
dzz|cxko||dzdzzknc����dS)Nr�r
r(r)	�	itertools�productr�r=�_integer_sqrt_of_frac_rtorr�rGr�)rKr�mr�s    r�test_integer_sqrt_of_frac_rtoz-TestSqrtHelpers.test_integer_sqrt_of_frac_rtoQs����%�e�C�j�j�%��4�.�.�A�A�		A�		A�D�A�q��4�Q��:�:�A��!�!�!�S�)�)�)���s�1�u��z�z�����Q�q�S�!�$�$�$��O�O�A��Q���
�N�Q�?�?�?�?��a�!�e�a�Z��?�?�?�?�@�@�@�@�		A�		Arc�0�dtdtdtfd�}tj}td��D]�}|d|d��z��}|d|d��z��dz}|�||�	��5t||��}tj||��}|�	|||����ddd��n#1swxYwY��|�
tjd
d��d��|�t��5tjdd��ddd��n#1swxYwY|�t��5tjdd��ddd��n#1swxYwY|�t��5tjdd
��ddd��n#1swxYwY|�
tjd
d��tjdd����dS)Nr�root�returnc�.�|s|dkStj|tj��}tj|tj��}t|��}|t|��zdz}|t|��zdz}|dz|cxko|dzkncS)Nrur)r�	nextafterr"r)rr9�r_up�r_down�	frac_root�half_way_up�
half_way_downs       r�is_root_correctly_roundedzJTestSqrtHelpers.test_float_sqrt_of_frac.<locals>.is_root_correctly_rounded`s����
#��s�{�"��.��t�x�8�8�D� �N�4�$�(��;�;�F�#+�4�.�.�I�%.��$���%?�1�$D�K�'0�8�F�3C�3C�'C�q�&H�M�!�A�%��>�>�>�>�k�Q�.>�>�>�>�>�>ri`�r�r	r
)�	numerator�denonimatorrrurvr�r)rrr�r��	randranger�r�r=�_float_sqrt_of_fracr�rGr8r.�ZeroDivisionError)rKrBrErirCrDrr9s        r�test_float_sqrt_of_fracz'TestSqrtHelpers.test_float_sqrt_of_frac]s��	?��	?��	?�4�	?�	?�	?�	?�$�$�	��v���	D�	D�A�&�Y�r�Y�Y�r�]�]�':�;�;�I�(�y��y�y��}�}�)<�=�=��A�K����	�{��K�K�
D�
D�&�y�+�>�>��(�<�Y��T�T����� 9� 9�!�T� B� B�C�C�C�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D����
D�
D�
D�
D��	
����7��1�=�=�s�C�C�C�
�
�
�z�
*�
*�	2�	2��*�2�q�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�
�
�
�z�
*�
*�	2�	2��*�1�b�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2��
�
�0�
1�
1�	1�	1��*�1�a�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	
����7��B�?�?��A_�`a�cd�Ae�Ae�f�f�f�f�fsI�?AC�C	�C	�E�E�E�&F�F�F�-G�G�Gc�z�td��ddftd��ddftd��ddffD�]?\}}}tjtj��5|�tj||��|��ddd��n#1swxYwYtjtj��5}|xjdzc_t|��t|��z}tj|_	|�
��}ddd��n#1swxYwYtjtj��5|
}ddd��n#1swxYwY|�||����A|�tjd	d
��d��|�tj��5tjdd
��ddd��n#1swxYwY|�tj��5tjd
d��ddd��n#1swxYwY|�t��5tjd
d	��ddd��n#1swxYwY|�tjd
d��tjdd
����dS)Nz0.4481904599041192673635338663l:j�t9�)4]�!�l�7�3M�e'z0.7924949131383786609961759598lQ_Ar�,NE��*�z0.8500554152289934068192208727lkr�"-D��9}ZGr�rr
rurvr�r)rr�r��DefaultContextrGr=�_decimal_sqrt_of_frac�prec�
ROUND_05UP�roundingr,r8r�rG)rKr9rC�denominator�ctx�high_prec_ratio�high_prec_root�target_roots        r�test_decimal_sqrt_of_fracz)TestSqrtHelpers.test_decimal_sqrt_of_frac�s���5�
6�
6�8V�Xw�x�
�5�
6�
6�8V�Xw�x�
�5�
6�
6�8V�Xw�x�-
�	0�	0�(�D�)�[�
�%�g�&<�=�=�
a�
a�� � ��!A�)�[�!Y�!Y�[_�`�`�`�
a�
a�
a�
a�
a�
a�
a�
a�
a�
a�
a����
a�
a�
a�
a��%�g�&<�=�=�
8�����A�
���")�)�"4�"4�w�{�7K�7K�"K��&�1���!0�!5�!5�!7�!7��	
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8�
�%�g�&<�=�=�
.�
.�-�o��
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.����T�;�/�/�/�/�	
����9�!�Q�?�?��E�E�E�
�
�
�w�7�
8�
8�	4�	4��,�R��3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�
�
�
�w�7�
8�
8�	4�	4��,�Q��3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4��
�
�0�
1�
1�	3�	3��,�Q��2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	
����9�"�b�A�A�:�Cc�de�gh�Ci�Ci�j�j�j�j�jsm�*B�B	�B	�:AD�D	�"D	�E�E	�E	�?G!�!G%�(G%�H-�-H1�4H1�I4�4I8�;I8N)r9r:r;r7rrHrTr<rrr1r1OsZ������
A�
A�
A��*g�*g���*g�X#k�#k�#k�#k�#krr1c�&�eZdZd�Zd�Zd�Zd�ZdS)�	TestStdevc�(�tj|_dSrW)r=�stdevrBrws rr�zTestStdev.setUp�s���$��	�	�	rc��dddtdd��td��fD])}|�tj|j|g���*dS)N�QgH�z�wi@gf7?+�Br�r�z35.719rr�s  rr�zTestStdev.test_single_value�s\���f�f�h�q�"�o�o�w�x�7H�7H�I�	J�	J�A����j�8�$�)�a�S�I�I�I�I�	J�	Jrc���d�td��D��}tjtj|����}|�|�|��|��dS)Nc�8�g|]}tjdd����S)r�r�r�r�s  rr�z6TestStdev.test_compare_to_variance.<locals>.<listcomp>�rrr()r�rr,r=r�assertAlmostEqualrBrhs   rr-z"TestStdev.test_compare_to_variance�s[��;�;�u�T�{�{�;�;�;���9�Z�0��6�6�7�7�����t�y�y�����9�9�9�9�9rc�`�d}|�|�|d���d��dS)Nr!r/r"r�r�rMs  rr$z!TestStdev.test_center_not_at_mean�s3����������4�c��2�2�C�8�8�8�8�8rN)r9r:r;r�r�r-r$r<rrrVrV�sS������%�%�%�J�J�J�
:�:�:�9�9�9�9�9rrVc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestGeometricMeanc�R�tj}|�|gd���d��|�|ddg��d��|�|dg��d��tjd��tdd	��tdd
��tdd��tddd
��tddd��gd�d�td
��D��d�td��D��d�td��D��f	D]�}t
jtt|����td��t|��zz}||��}|�t
j|t|��������dS)N)r}r�r��B@rJg"@g@g�1@l���;r
r�r(r:r�r�r})r�r|rr��xr�c�6�g|]}tjd����S)�I@�r��expovariate�r�ris  rr�z1TestGeometricMean.test_basics.<locals>.<listcomp>�s#��@�@�@�a��#�D�)�)�@�@�@rc�8�g|]}tjdd����S)rr�)r��lognormvariaterhs  rr�z1TestGeometricMean.test_basics.<locals>.<listcomp>�s%��H�H�H�a��&�t�S�1�1�H�H�Hr��c�:�g|]}tjddd����S)rk�i�)r��
triangularrhs  rr�z1TestGeometricMean.test_basics.<locals>.<listcomp>�s'��K�K�K���"�4��t�4�4�K�K�Krrm)r=�geometric_meanr]r��seedr�r�prodr�rrcr��iscloser)rKro�rng�
gm_decimal�gm_floats     rr�zTestGeometricMean.test_basics�s���#�2�����~�~�l�l�l�;�;�T�B�B�B����~�~�s�C�j�9�9�3�?�?�?����~�~�v�h�7�7��@�@�@���N�#�#�#��a��
�
��a�����a�� � ��c�6�1�%�%��f�c�2�&�&�'�'�'�@�@�5��<�<�@�@�@�H�H�5��<�<�H�H�H�K�K�e�E�l�l�K�K�K�
�
	G�
	G�C���3�w��#4�#4�5�5�'�!�*�*�s�3�x�x�:O�P�J�%�~�c�*�*�H��O�O�D�L��5��3D�3D�E�E�F�F�F�F�
	G�
	Grc	��tj}t}t}d}gd�df|d��|d��|d��gdf|dd	��|d
d��|dd
��gd
fdd
|dd
��gdfdt	gd���dffD]Q\}}||��}|�t
|��t|��|�||d����RdS)Ng�d�@r�r�r�r�r�r�r�rr�r
r�r�r�r�)r�r�r�r���places)	r=rorrrEr�rrr])rKror�r�r�r�rcr�s        r�test_various_input_typesz*TestGeometricMean.test_various_input_types�s��#�2�������
�
�
�
�x�(��a��h�h���%���!�!�F�)�)�
,�j�9��a��1�g�g�q�q��A�w�w���"�a���
)�;�7��1�a�a��A�h�h�
��/�'�
�"�"�"�
#�
#�Z�0�
�
	I�
	I�J�D�$�)�.��.�.�K��M�M�$�{�+�+�U�D�9�9�9��"�"�;�
�a�"�H�H�H�H�
	I�
	Irc��tj}d}|d|zd|zd|zg��}|�tj|d|z����|�tj|����d}|d|zd|zd|zg��}|�tj|d|z����|�|d��dS)Ngp~gK@g8@rbgpru)r=ror�rrrr�r/�assertNotEqual)rKro�large�big_gm�small�small_gms      r�test_big_and_smallz$TestGeometricMean.test_big_and_small�s���#�2���������t�e�|�T�E�\� J�K�K�������V�T�E�\�:�:�;�;�;������F�+�+�,�,�,���!�>�4�%�<����t�e�|�"L�M�M�������X�t�e�|�<�<�=�=�=����H�c�*�*�*�*�*rc�
�tj}tj}|�|��5|g��ddd��n#1swxYwY|�|��5|gd���ddd��n#1swxYwY|�|��5|gd���ddd��n#1swxYwY|�|��5|t	g����ddd��n#1swxYwY|�t
��5|d��ddd��n#1swxYwY|�t
��5|gd���ddd��n#1swxYwY|�t
��5|��ddd��n#1swxYwY|�t
��5|gd�d��ddd��dS#1swxYwYdS)N)r�rur�)r�g�r�r�r�r�)r=rorvr8rEr�)rKrorvs   rr�z"TestGeometricMean.test_error_cases�s��#�2��$�4��
�
�
��
/�
/�	�	��N�2����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
��
/�
/�	-�	-��N�+�+�+�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
�
�
��
/�
/�	.�	.��N�,�,�,�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�
�
�
��
/�
/�	%�	%��N�4��8�8�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�
�
�
�y�
)�
)�	!�	!��N�4� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�
�
�y�
)�
)�	+�	+��N�>�>�>�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
�
�
�y�
)�
)�	�	��N����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	-�	-��N�<�<�<��,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s��A�A
�
A
�&B�B�B� B:�:B>�B>�C?�?D�D�$D<�<E�E�!E;�;E?�E?� F7�7F;�>F;�G8�8G<�?G<c��tj}td��}td��}|�t	j|d|g����d��|�t	j|||g����d��|�t	j|d|g����d��|�t��5|||g��ddd��dS#1swxYwYdSr�)	r=rorr�rrr/r8r.)rKror�r�s    rr�z%TestGeometricMean.test_special_values	s3��#�2���E�l�l���E�l�l������
�>�>�2�s�)�#<�#<�=�=�u�E�E�E�����
�>�>�3��*�#=�#=�>�>�@R�S�S�S�����
�>�>�2�s�)�#<�#<�=�=�z�J�J�J�
�
�
�z�
*�
*�	(�	(��N�C�#��;�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(r�c���tj}d}gd�gd�gd�gd�gd�g}|D]S}|�|���5||��}|�||d�	��ddd��n#1swxYwY�TdS)
Ng�Y�};t@)rr�r�r�)rr�r�r�)rr�r�r�)rr�r�r�)r/r�r�r�)�vr�rw)r=ror�r])rKror�r1r�r�s      r�test_mixed_int_and_floatz*TestGeometricMean.test_mixed_int_and_float	s��#�2��(�
��L�L��N�N������� � � �
���	M�	M�A������"�"�
M�
M�,�n�Q�/�/���&�&�{�M�!�&�L�L�L�
M�
M�
M�
M�
M�
M�
M�
M�
M�
M�
M����
M�
M�
M�
M��	M�	Ms�$A*�*A.	�1A.	N)	r9r:r;r�ryr�r�r�r�r<rrr`r`�sy������G�G�G�,I�I�I�$
+�
+�
+�-�-�-�(	(�	(�	(�M�M�M�M�Mrr`c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�
TestQuantilesc�v��tj}gd�}tj|��dgfddgfdddgfdgd	�fd
gd�fdgd
�fdgd�fdgd�fdgd�fdgd�ff
D�]�\}}|�||||�����|�t|||�����|dz
��tttfD]o�|t�|��|���}|�
�fd�|D����|�|tt�|�������pt|��dkr!|�|||���|��t|��}d|dz|dz
}d|dz|dz
}|||gz}	|�|||���||	|d���||f��d�}
tt|
|����}|t|
|��|���}|�
td�t||��D���������tdd��D]\}
tjtd ��|
�!��}||��\}}}|�|tj|�����]dS)"N)rcr��r�i^r
r�@o@r��i@�t@r�)�d@r���t@r�)�a@��k@�@r@��u@rT)�^@r�r�r���u@r�)�Y@r�g�j@r�g�r@r�gXv@r�)	gV@r�gg@r�r�r�g`t@r�g�v@r�)�T@r�r�r�� l@r�g�q@r�r�r�g�v@r~)gR@gZ@r�ge@r�r��n@g�p@r�r�g�t@r�g@v@gw@�rc3�X�K�|]$}tt|���k��V��%dSrW��allr�r�r�datatypes  �rr�z4TestQuantiles.test_specific_cases.<locals>.<genexpr>H	�6�����I�I�Q��D��G�G�x�$7� 8� 8�I�I�I�I�I�Irrrvr��	inclusive�r�methodc��d|zdz
S�Nr�g3333�J�@r<r
s rr�z,TestQuantiles.test_specific_cases.<locals>.fZ	����Q�w��)�)rc3�FK�|]\}}tj||��V��dSrW�rrr�r�rjrs   rr�z4TestQuantiles.test_specific_cases.<locals>.<genexpr>^	�2����M�M�t�q�!���Q�� 2� 2�M�M�M�M�M�Mrr�r���k)r=�	quantilesr�rLrGrcrrrr�r�r�rKr�rgr��choicesrO)rKr�r�rr&r��sdata�lo�hi�padded_datar��exp�actr��q1�q2�q3r�s                 @r�test_specific_casesz!TestQuantiles.test_specific_cases/	s]����(�	�(�(�(����t����
��G�
���L�
�����
�%�%�%�&�
�,�,�,�-�
�3�3�3�4�
�A�A�A�B�
�O�O�O�P�
� � � �
!�
�5�5�5�
6�
�)	O�)	O�K�A�x�
���X�y�y���';�';�';�<�<�<����S���4�1�!5�!5�!5�6�6��A��>�>�>�"�G�X�6�
H�
H��"��3�x��#6�#6�!�<�<�<�����I�I�I�I�&�I�I�I�I�I�I�� � ���c�(�H�.E�.E�)F�)F�G�G�G�G��8�}�}��!�!�� � ���8�q�!9�!9�!9�8�D�D�D��4�L�L�E��U�1�X���a��(�B��U�2�Y���r��*�B��"�b��/�K�����	�$�!�$�$�$��	�+��;�?�?�?��D�	�
�
�
�
*�
*�
*��s�1�h�'�'�(�(�C��)�C��4�L�L�A�.�.�.�C��O�O�C�M�M�s�3��}�}�M�M�M�M�M�N�N�N�N��q�"���	:�	:�A��>�%��*�*��2�2�2�D�"��4���J�B��B����R��!2�4�!8�!8�9�9�9�9�	:�	:rc�
��tj}gd�}tj|��dgfddgfdddgfdgd	�fd
gd�fdgd
�fdgd�fdgd�fdgd�fdgd�ff
D�]U\}}|�||||d�����|�t|||d�����|dz
��tttfD]p�|t�|��|d���}|�
�fd�|D����|�|tt�|�������qd�}tt||����}|t||��|d���}|�
td�t||��D��������W|�|ddgdd���gd���|�|tdd��dd���gd���d�td ��D��}||d!d���}	|�t!|����|�t#|����||d!�"��}|�||	��tdd#��D]^}
tjtd��|
�$��}||d�%��\}}}
|�|tj|�����_dS)&N)r�r�i�i r
r��r@r�r��y@r�)��e@r��@@r�)r�r���v@���@rT)��b@r�r�r����@r�)g0a@�r�r�gpw@r�gP�@r�)	g@`@r�g�g@r�r�r�g�{@r�g@�@r�)g@_@r�r�r�r�r�r�r�r�r�g�@r~)r�g�a@r�g�f@r�r�g�q@r�r�r�g~@r�g�@g��@r�r�c3�X�K�|]$}tt|���k��V��%dSrWr�r�s  �rr�z>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>	r�rc��d|zdz
Sr�r<r
s rr�z6TestQuantiles.test_specific_cases_inclusive.<locals>.f�	r�rc3�FK�|]\}}tj||��V��dSrWr�r�s   rr�z>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>�	r�rrr�)	�$@rg>@gD@regN@g�Q@r�g�V@r�c�6�g|]}tjd����S)r:)r�rErhs  rr�z?TestQuantiles.test_specific_cases_inclusive.<locals>.<listcomp>�	s#��=�=�=�Q�� ��(�(�=�=�=ri�� r�r�r��r�)r=r�r�rLrGrcrrrr�r�r�r�rgr�r)r�r#r�rO)rKr�r�rr&r�r�r�r�r%r�r�r�r�r�s              @r�test_specific_cases_inclusivez+TestQuantiles.test_specific_cases_inclusivee	s�����(�	�#�#�#����t����
��G�
���L�
�����
�%�%�%�&�
�,�,�,�-�
�3�3�3�4�
�>�>�>�?�
�P�P�P�Q�
�'�'�'�
(�
�5�5�5�
6�
�	O�	O�K�A�x�
���X�y�y���;�'O�'O�'O�P�P�P����S���4�1�[�!I�!I�!I�J�J�A�PQ�E�R�R�R�"�G�X�6�
H�
H��"��3�x��#6�#6�!�K�P�P�P�����I�I�I�I�&�I�I�I�I�I�I�� � ���c�(�H�.E�.E�)F�)F�G�G�G�G�
*�
*�
*��s�1�h�'�'�(�(�C��)�C��4�L�L�A�k�B�B�B�C��O�O�C�M�M�s�3��}�}�M�M�M�M�M�N�N�N�N������A�s�8�r�+�F�F�F�O�O�O�	Q�	Q�	Q������5��C�=�=�B�{�K�K�K�O�O�O�	Q�	Q�	Q�
>�=�%��*�*�=�=�=����4�2�k�:�:�:�����C��I�I�������C��I�I�����9�T�R�(�(�(������6�*�*�*��q�"���	:�	:�A��>�%��*�*��2�2�2�D�"��4��<�<�<�J�B��B����R��!2�4�!8�!8�9�9�9�9�	:�	:rc���tj}tdd��D]L}dg|z}|�||��gd���|�||d���gd����MdS)Nrr�r�)r�r�r�r�r�)r=r�r�rG)rKr�rr�s    r�test_equal_inputszTestQuantiles.test_equal_inputs�	s����(�	��q�"���	0�	0�A��6�A�:�D����Y�Y�t�_�_�.@�.@�.@�A�A�A����Y�Y�t�K�@�@�@�.�.�.�
0�
0�
0�
0�	0�	0rc���tj}d}d�t|��D���tt	�����|krG��t
jd����tt	�����|k�G����dD]P}||z}|�	�fd�|�|���D��tt|||�������QdD]c}||z||zdzh}�fd	�|�|���D��}d
�t||dd���D��}|�||k���ddS)Nr:c�6�g|]}tjd����S)皙�����?rfrhs  rr�z9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>�	s#��>�>�>�A��"�3�'�'�>�>�>rr�)
r
rr�r�rgr	r�r�r�r(rkr�r:c�:��g|]}tj�|����Sr<��bisect�r��qr�s  �rr�z9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>�	s%���F�F�F�A���t�Q�'�'�F�F�Frr�)
rr��;�m��i;i�isi�i)&r
c�:��g|]}tj�|����Sr<r�r�s  �rr�z9TestQuantiles.test_equal_sized_groups.<locals>.<listcomp>�	s%���H�H�H�a�6�=��q�)�)�H�H�Hrc��h|]
\}}||z
��Sr<r<)r��pr�s   r�	<setcomp>z8TestQuantiles.test_equal_sized_groups.<locals>.<setcomp>�	s ��9�9�9�t�q�!�Q��U�9�9�9r)
r=r�r�rc�setrSr�rg�sortrGr�rgr�)	rKr��totalr�
group_size�group_sizes�pos�sizesr�s	        @r�test_equal_sized_groupsz%TestQuantiles.test_equal_sized_groups�	s�����(�	���>�>��u���>�>�>���#�d�)�)�n�n��%�%��K�K��*�3�/�/�0�0�0��#�d�)�)�n�n��%�%��	�	����O�	<�	<�A��!��J����F�F�F�F���4�1�1E�1E�1E�F�F�F��U�:�u�j�9�9�:�:�
<�
<�
<�
<�E�	2�	2�A� �A�:�u��z�A�~�6�K�H�H�H�H�9�9�T�Q�3G�3G�3G�H�H�H�C�9�9�s�3��A�B�B��'8�'8�9�9�9�E��O�O�E�[�0�1�1�1�1�		2�	2rc��tj}tj}|�t��5|��ddd��n#1swxYwY|�t��5|gd�dd���ddd��n#1swxYwY|�t��5|gd�d��ddd��n#1swxYwY|�|��5|gd�d���ddd��n#1swxYwY|�|��5|gd�d���ddd��n#1swxYwY|�t��5|gd�d���ddd��n#1swxYwY|�t
��5|gd�d�	��ddd��n#1swxYwY|�|��5|d
gd���ddd��n#1swxYwY|�t��5|gd�d���ddd��dS#1swxYwYdS)Nr�rr�r�rrvr��Xr�r�)r�Nr)r=r�rvr8r�r.)rKr�rvs   rr�zTestQuantiles.test_error_cases�	s����(�	�$�4��
�
�
�y�
)�
)�	�	��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	-�	-��I�l�l�l�B�!�,�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
�
�
�y�
)�
)�	'�	'��I�l�l�l�A�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
�
�
��
/�
/�	)�	)��I�l�l�l�a�(�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�
�
�
��
/�
/�	*�	*��I�l�l�l�b�)�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�
�
�
�y�
)�
)�	+�	+��I�l�l�l�c�*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
�
�
�z�
*�
*�	0�	0��I�l�l�l�3�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�
�
�
��
/�
/�	!�	!��I�r�d�a� � � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�
�
�y�
)�
)�	+�	+��I�n�n�n��*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s��A
�
A�A�/B�B�B�1C�C�C�,D�D�D�(E�E�E�)F�F	�F	�*G�G
�
G
�&H�H�H�&I�I�
IN)r9r:r;r�r�r�r�r�r<rrr�r�-	sa������4:�4:�4:�l4:�4:�4:�l0�0�0�2�2�2�.+�+�+�+�+rr�c��eZdZd�Zd�ZdS)�TestBivariateStatisticsc��gd�ddgfddggd�ffD]�\}}|�tj��5tj||��ddd��n#1swxYwY|�tj��5tj||��ddd��n#1swxYwY|�tj��5tj||��ddd��n#1swxYwY��dS)Nr�r
r�r8r=rv�
covariance�correlation�linear_regressionrs   r�test_unequal_size_errorz/TestBivariateStatistics.test_unequal_size_error�	s���
�Y�Y��A�����V�Y�Y�Y��
�		3�		3�D�A�q��"�"�:�#=�>�>�
,�
,��%�a��+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��"�"�:�#=�>�>�
-�
-��&�q�!�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��"�"�:�#=�>�>�
3�
3��,�Q��2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��		3�		3s5�A�A	�A	�B#�#B'	�*B'	�
C/�/C3	�6C3	c��ggfgddgfddggfdgdgfdgddgfddgdgffD]�\}}|�tj��5tj||��ddd��n#1swxYwY|�tj��5tj||��ddd��n#1swxYwY|�tj��5tj||��ddd��n#1swxYwY��dS)Nr
rr�rs   r�test_small_sample_errorz/TestBivariateStatistics.test_small_sample_error�	s���
��H�
�!�Q��M���W�b�M��T�A�4�L��T�A�q�7�O���W�q�d�O�

�
	3�
	3�D�A�q��"�"�:�#=�>�>�
,�
,��%�a��+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��"�"�:�#=�>�>�
-�
-��&�q�!�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��"�"�:�#=�>�>�
3�
3��,�Q��2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��
	3�
	3s6�A'�'A+	�.A+	�B3�3B7	�:B7	�C?�?D	�D	N)r9r:r;r�r�r<rrr�r��	s2������
3�
3�
3�3�3�3�3�3rr�c��eZdZd�Zd�ZdS)�TestCorrelationAndCovariancec��gd�gd�dfgd�gd�dfgd�gd�dfgd�gd�dfgd�gd�d	ffD]X\}}}|�tj||��|��|�tj||��|���YdS)
Nr�r
�rvr�r}rv)r�rr
)r
rr
r)r
r�rr��r]r=r�r�)rKrr0r�s    r�test_resultsz)TestCorrelationAndCovariance.test_results�	s���
�Y�Y�	�	�	�1�%�
�Y�Y����b�)�
�Y�Y�	�	�	�2�&�
�Y�Y�	�	�	�1�%�
�Y�Y�	�	�	�3�'�
�	H�	H�L�A�q�&�
�"�"�:�#9�!�Q�#?�#?��H�H�H��"�"�:�#8��A�#>�#>��G�G�G�G�	H�	Hrc�f�gd�}gd�}|�tj||��d��|�tj||��d��gd�}|�tj||��d��|�tj||��d��dS)Nr�)r�rrgr�r�)r�r�g333333�?r
r�r�rs   r�test_different_scalesz2TestCorrelationAndCovariance.test_different_scales�	s����I�I���L�L�����z�5�a��;�;�S�A�A�A����z�4�Q��:�:�A�>�>�>��L�L�����z�5�a��;�;�Q�?�?�?����z�4�Q��:�:�C�@�@�@�@�@rN)r9r:r;r�r�r<rrr�r��	s:������	H�	H�	H�A�A�A�A�Arr�c� �eZdZd�Zd�Zd�ZdS)�TestLinearRegressionc��gd�}gd�}|�tj��5tj||��ddd��dS#1swxYwYdS)N)r
r
r
r�)r8r=rvr�rs   r�test_constant_input_errorz.TestLinearRegression.test_constant_input_error

s����J�J���J�J��
�
�
�z�9�
:�
:�	/�	/��(��A�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A�A�Ac
� �gd�gd�ddfgd�gd�ddfgd�gd�ddfgd�gd�dd	fgd�gd
�ddfgd�gd�d
dfgd�gd�ddffD]K\}}}}tj||��\}}|�||��|�||���LdS)Nr�)rrrrr
)r�r�r�r�)r�r�r�r�rr�rv)r�r�r�rg)gffffff@g������@r�r�r�)r=r�r])rKrr0�true_intercept�
true_slope�slope�	intercepts       rr�z!TestLinearRegression.test_results
s���
�Y�Y�	�	�	�1�a�(�
�Y�Y�	�	�	�1�a�(�
�Y�Y�����a�0�
�Y�Y����b�!�,�
�Y�Y����a��,�
�Y�Y����b�!�,�
�Y�Y�����C�0�1
�	6�	6�,�A�q�.�*� *�;�A�q�A�A��E�9��"�"�9�n�=�=�=��"�"�5�*�5�5�5�5�	6�	6rc��gd�}gd�}tj||d���\}}|�|d��|�|d��dS)N)r�rgrr#)�i�ibiT)�proportionalg�N�4@ru)r=r�r]rG)rKrr0r�r�s     r�test_proportionalz&TestLinearRegression.test_proportional
sf������ � � ��%�7��1�4�P�P�P���y����u�j�1�1�1�����C�(�(�(�(�(rN)r9r:r;r�r�rr<rrr�r�
sA������/�/�/�6�6�6�)�)�)�)�)rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	j
d���Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestNormalDistc��|j�dd��}|�t��5t	|��ddd��n#1swxYwY|�t
|j��d��dS)Nr�r�)�_mu�_sigma)r\�
NormalDistr8r��varsrGr��	__slots__�rK�nds  r�
test_slotszTestNormalDist.test_slots.
s���
�[�
#�
#�C��
,�
,��
�
�
�y�
)�
)�	�	���H�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����r�|�,�,�.?�@�@�@�@�@s�A�A�Ac���|j�dd��}|�|jd��|�|jd��|�|jd��|j���}|�|jd��|�|jd��|�|jd��|�|jj��5|j�dd��ddd��n#1swxYwYGd�d|jj��}|d	d
��}|�t|��|��dS)Nr�r|i!rr
i����c��eZdZdS)�GTestNormalDist.test_instantiation_and_attributes.<locals>.NewNormalDistNr8r<rr�
NewNormalDistrE
r�rrr�r�)	r\r	rGr�rXrr8rvr)rKr
r�nnds    r�!test_instantiation_and_attributesz0TestNormalDist.test_instantiation_and_attributes4
s���
�[�
#�
#�C��
,�
,�������#�&�&�&������2�&�&�&������e�,�,�,��[�
#�
#�
%�
%�������!�$�$�$������1�%�%�%������d�+�+�+��
�
�t�{�:�
;�
;�	-�	-��K�"�"�3��,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	�	�	�	�	�D�K�2�	�	�	��m�C��#�#������c���M�2�2�2�2�2s�6D�D"�%D"c�J�|jj}gd�}|�|�|��|dd����|�|�t	|����|dd����|�|�t|����|dd����|�|jj��5|�g��ddd��n#1swxYwY|�|jj��5|�dg��ddd��n#1swxYwYGd�d|��}|�|��}|�t|��|��dS)N)�`r��Zr
�nr~r�r�c��eZdZdS)�BTestNormalDist.test_alternative_constructor.<locals>.NewNormalDistNr8r<rrrrZ
r�rr)	r\r	rG�from_samplesr�rEr8rvr)rKr	r�rrs     r�test_alternative_constructorz+TestNormalDist.test_alternative_constructorJ
s���[�+�
�%�%�%������0�0��6�6�
�
�2�q�8I�8I�J�J�J�����0�0��t���=�=�z�z�"�a�?P�?P�Q�Q�Q�����0�0��d���<�<�j�j��Q�>O�>O�P�P�P�
�
�
�t�{�:�
;�
;�	(�	(��#�#�B�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
�
�t�{�:�
;�
;�	*�	*��#�#�R�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	�	�	�	�	�J�	�	�	��(�(��.�.������c���M�2�2�2�2�2s$�#D�D	�D	�/E�E�Ec��|jj}d\}}|||��}d}|�|��}|�t	|��|��|�tt
t|����th��|j�	|��}|�
||dzz
|cxko||dzzknc��d}|�|d���}|�|d���}	|�|d���}
|�|d���}|�||
��|�|	|��|�||	��dS)N)r:r�r(r�r�zhappiness and joy)rpztrouble and despair)r\r	�samplesrGrcr�r�rrr�r�r{)rKr	r/�sigmar�rr�r#�data1�data2�data3�data4s            r�test_sample_generationz%TestNormalDist.test_sample_generation_
sx���[�+�
��	��E��J�r�5�!�!�����y�y��|�|������T���A�&�&�&�����S��t�_�_�-�-��w�7�7�7��{����%�%������U�1�W���<�<�<�<��U�1�W��<�<�<�<�=�=�=�
���	�	�!�"5�	�6�6���	�	�!�"7�	�8�8���	�	�!�"5�	�6�6���	�	�!�"7�	�8�8�������&�&�&������&�&�&����E�5�)�)�)�)�)rc	���|jj}|dd��}|�|�d��|�d����|�|�d��|�d����t	d��D]D}|�|�d|z
��|�d|z�����Ed}t	dd��D]^}|�||z��|�|��z
|z}|�|�|��|d	�
���_|��}tgd���D]b\}}|�|�|dz��|d	�
��|�|�|dz��|d	�
���c|dd
��}	|�|jj	��5|	�d��ddd��n#1swxYwY|�
|�td����d��|�
|�td����d��|�tj|�td��������dS)Nr�r~r~r�r	gP?rrCr�rw)2�+��ݓ��?r&r&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�-Infrur�r�)r\r	�
assertLess�pdfr�r]�cdfrfr8rvrGrr�rr)
rKr	r�ri�dxr�est_pdf�Z�px�Ys
          r�test_pdfzTestNormalDist.test_pdfu
s����[�+�
��J�s�B����������b�	�	�1�5�5��:�:�.�.�.�������c�
�
�A�E�E�#�J�J�/�/�/��r���	C�	C�A��"�"�1�5�5��q��>�>�1�5�5��q��>�>�B�B�B�B�
���r�3���	@�	@�A��u�u�Q��V�}�}�q�u�u�Q�x�x�/�2�5�G��"�"�1�5�5��8�8�W�Q�"�?�?�?�?��J�L�L��� 
� 
� 
���
	D�
	D�E�A�r�
�"�"�1�5�5��U��#3�#3�R��"�B�B�B��"�"�1�5�5�!��e��#4�#4�b��"�C�C�C�C��J�s�A����
�
�
�t�{�:�
;�
;�	�	�
�E�E�"�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������u�V�}�}�-�-�s�3�3�3�������u�U�|�|�,�,�c�2�2�2�����
�1�5�5��u���#6�#6�7�7�8�8�8�8�8s�?H!�!H%�(H%c	�n��|jj}|dd����fd�tdd��D��}|�t	tt|����th��|�|t|����|���	d��d��|��}dD]_\}}|�
|�	|��|d�	��|�
|�	|��d
|z
d�	���`|dd��}|�|jj��5|�	d��ddd��n#1swxYwY|���	td
����d��|���	td����d
��|�
tj��	td��������dS)Nr�r~c�:��g|]}��|����Sr<)r*)r�rr�s  �rr�z+TestNormalDist.test_cdf.<locals>.<listcomp>�
s#���0�0�0�Q����a���0�0�0rr
r�r�))rur�)r�gqZ� �?)rg��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���?r�rwr�rrr'rur�r�)r\r	r�rGr�r�rrrKr*r]r8rvr�rr)rKr	�cdfsr-�z�cum_probr/r�s       @r�test_cdfzTestNormalDist.test_cdf�
s0����[�+�
��J�s�B����0�0�0�0�%��3�-�-�0�0�0������S��t�_�_�-�-��w�7�7�7�����v�d�|�|�,�,�,�������s���T�*�*�*�
�J�L�L���	H�	H�K�A�x�
�"�"�1�5�5��8�8�X�a�"�@�@�@��"�"�1�5�5�!��9�9�c�H�n�Q�"�G�G�G�G��J�s�A����
�
�
�t�{�:�
;�
;�	�	�
�E�E�"�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������u�V�}�}�-�-�s�3�3�3�������u�U�|�|�,�,�c�2�2�2�����
�1�5�5��u���#6�#6�7�7�8�8�8�8�8s�E7�7E;�>E;c	�Z�|jj}|dd��}|�|�d��|j��|��}dddd�}|���D]�\}}t
|d�	��D]j\}}|d
|zz}	|�|�|	��|d���d
|	z
}	|�|�|	��|d����k��|�|dd���d��d��d}
td|
��D]C}	|	|
z}	|�|�	|�|	����|	���Dtdd��D]�}d|z}	|�|�	|�|	����|	��d
|	z
}	|�|�	|�|	����|	����td��D]@}|�|�|�	|����|d����A|�
|jj��5|�d��ddd��n#1swxYwY|�
|jj��5|�d��ddd��n#1swxYwY|�
|jj��5|�d
��ddd��n#1swxYwY|�
|jj��5|�d��ddd��n#1swxYwY|�
|jj��5|dd��}|�d��ddd��n#1swxYwY|�tj|�td��������dS)Nr�r~r�)
rugR���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�rIr�r
)�startr�r�rwr�r#r�g��>���?g���E@i�3r/r�r�rurg�������?rr�)r\r	rG�inv_cdfr��itemsrfr]r�r*r8rvr�rrr)rKr	�iqr-�ppr'�rowr�rr�rrjs            r�test_inv_cdfzTestNormalDist.test_inv_cdf�
s4���[�+�
��Z��R�
 �
 ��������D�)�)�2�7�3�3�3�

�J�L�L��7�7�7�	8�8�������	B�	B�I�D�#�#�C�q�1�1�1�
B�
B���Q��4�S�D�>�)���&�&��	�	�!���}�a��&�B�B�B��!�G���&�&�q�y�y��|�|�Q�q�&�A�A�A�A�	
B�	
���z�z�"�c�2�2�:�:�8�D�D�i�P�P�P�
���q�!���	=�	=�A�
��F�A��"�"�2�6�6�"�*�*�Q�-�-�#8�#8�!�<�<�<�<��q�"���	=�	=�A�����A��"�"�2�6�6�"�*�*�Q�-�-�#8�#8�!�<�<�<��a��A��"�"�2�6�6�"�*�*�Q�-�-�#8�#8�!�<�<�<�<�
�s���	G�	G�A��"�"�2�:�:�b�f�f�Q�i�i�#8�#8�!�A�"�F�F�F�F��
�
�t�{�:�
;�
;�	�	��J�J�s�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�t�{�:�
;�
;�	�	��J�J�t����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�t�{�:�
;�
;�	�	��J�J�s�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�t�{�:�
;�
;�	�	��J�J�s�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�t�{�:�
;�
;�	�	���C��#�#�B��J�J�s�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	
����
�1�9�9�U�5�\�\�#:�#:�;�;�<�<�<�<�<sZ�;J�J!�$J!�K)�)K-�0K-�L5�5L9�<L9�N�N�N�+"O�O� Oc
�
�|j���}dgfddgfdddgfdgd�ffD]U\}}|�|�	��}|�t	d
�t||��D�������VdS)Nr
rrur�g�ǘ���ۿg�ǘ����?r�)g/�$���rug/�$���?r�c3�JK�|]\}}tj||d���V��dS)r�)�abs_tolNr�r�s   rr�z0TestNormalDist.test_quantiles.<locals>.<genexpr>sK���� ?� ?� $��1�!%��Q��6� B� B� B� ?� ?� ?� ?� ?� ?r)r\r	r�r�r�rg)rKr-rr&r%s     r�test_quantileszTestNormalDist.test_quantiles�
s����K�"�"�$�$��
��G�
���J�
��&�!�"�
�&�&�&�'�	�	@�	@�K�A�x��[�[�1�[�%�%�F��O�O�C� ?� ?�(+�H�f�(=�(=� ?� ?� ?�?�?�
@�
@�
@�
@�	@�	@rc���|jj}|dd��|dd��df|dd��|dd��dffD]\\}}}|�|�|��|d���|�|�|��|d����]dd	d
�d�}|dd��|dd��f|dd��|dd��f|dd��|dd��f|dd��|d
d��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]o\}}|�|�|��|||��d	���|�|�|��|||��d	����p|��}|�t
��5|���ddd��n#1swxYwY|�t
��5|�||��ddd��n#1swxYwY|�t
��5|�d��ddd��n#1swxYwY|�|jj��5|�|dd����ddd��n#1swxYwY|�|jj��5|dd���|��ddd��dS#1swxYwYdS)Nrur/r�gɎ�@���?gM-[닄�?r�rwi r�)�stepsr4c�����	tj}|j|jzdz}|t|j|j��z}||z
�d|z|z���fd�t|��D��}t
t|j|����}t
t|j|����}	t||��||	����}
|tt||	����|
zS)Nr/c� ��g|]
}�|�zz��Sr<r<)r�rir+r8s  ��rr�zHTestNormalDist.test_overlap.<locals>.overlap_numeric.<locals>.<listcomp>s!���8�8�8�a�U�Q�r�T�\�8�8�8r)
rr�r�r#rXr�r�r�r)r�)
r�r/rEr4r��center�width�x_arr�xp�ypr�r+r8s
           @@r�overlap_numericz4TestNormalDist.test_overlap.<locals>.overlap_numerics�����>��9�D��f�q�v�o��,�F���A�G�Q�W�-�-�-�E��U�N�E��u��u�$�B�8�8�8�8�8�5��<�<�8�8�8�E��c�!�%��'�'�(�(�B��c�!�%��'�'�(�(�B����R���$�$�r�(�(�+�+�E��4��C��R�(�(�)�)�E�1�1rr��Ar�r�r~rr�i����r��r�rgj�t��?g�~j�t�h?gj�t��?ga2U0*�3?g��MbX�?r
r)r\r	r]�overlapr8r�rv)rKr	�X1�X2�published_resultrMr�s       r�test_overlapzTestNormalDist.test_overlaps����[�+�
���C��%�%�z�z�#�s�';�';�W�E���C��%�%�z�z�#�s�';�';�W�E�)�	O�	O�$�B��$�
�"�"�2�:�:�b�>�>�3C�A�"�N�N�N��"�"�2�:�:�b�>�>�3C�A�"�N�N�N�N�,1�A�	2�	2�	2�	2�	2���C��%�%�z�z�#�s�';�';�<���C��%�%�z�z�#�s�';�';�<���C��%�%�z�z�#�s�';�';�<���B��"�"�J�J�r�3�$7�$7�8���C��$�$�j�j��b�&9�&9�:���D�"�%�%�z�z�#�r�':�':�;���D�"�%�%�z�z�$��';�';�<���C��$�$�j�j��b�&9�&9�:���C��$�$�j�j��b�&9�&9�:���C��$�$�j�j��b�&9�&9�:���C��$�$�j�j��b�&9�&9�:���E�5�)�)�:�:�e�U�+C�+C�D���E�5�)�)�:�:�e�V�+D�+D�E���E�5�)�)�:�:�e�U�+C�+C�D�)�	V�	V�F�B��,
�"�"�2�:�:�b�>�>�?�?�2�r�3J�3J�ST�"�U�U�U��"�"�2�:�:�b�>�>�?�?�2�r�3J�3J�ST�"�U�U�U�U�
�J�L�L��
�
�
�y�
)�
)�	�	�
�I�I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
�I�I�a��O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
�I�I�d�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�t�{�:�
;�
;�	(�	(�
�I�I�j�j��A�&�&�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
�
�t�{�:�
;�
;�	(�	(��J�q�!���$�$�Q�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(sZ�;J�J �#J �K$�$K(�+K(�	L+�+L/�2L/� N�N�N�+ O�O�Oc��|jj}|dd��}|�|�d��d��|�|�d��d��|�|�d��d��|�t
��5|���ddd��n#1swxYwY|�t
��5|�dd��ddd��n#1swxYwY|�t
��5|�d��ddd��n#1swxYwY|�|jj��5|dd	���d��ddd��dS#1swxYwYdS)
Nr�r~�gffffff@�:gffffff�rur
r)r\r	rG�zscorer8r�rv)rKr	r�s   r�test_zscorezTestNormalDist.test_zscoreGs����[�+�
��J�s�B����������#����,�,�,�������"���t�,�,�,�������#����,�,�,�
�
�
�y�
)�
)�	�	�
�H�H�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
�H�H�Q��N�N�N�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
�H�H�T�N�N�N�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�t�{�:�
;�
;�	)�	)��J�q�!���#�#�C�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)sH�.C�C�C�4D�D�D�<E�E"�%E"� F5�5F9�<F9c�J�|j�dd��}|�|jd��|�|jd��|�|jd��|�|jd��|�|jd��dS)Nr�r~��)r\r	rGr�rOr�rXr)rKr�s  r�test_propertieszTestNormalDist.test_propertiesVs����K�"�"�3��+�+��������%�%�%������3�'�'�'�������%�%�%������"�%�%�%������S�)�)�)�)�)rc���|jj}|dd��}|dd��}|�||z|dd����|�||z
|dd����dS)Nr�r�r#r��rr�)r\r	rG�rKr	r�r/s    r�'test_same_type_addition_and_subtractionz6TestNormalDist.test_same_type_addition_and_subtraction^s����[�+�
��J�s�B�����J�r�1��������Q��
�
�3�� 3� 3�4�4�4�����Q��
�
�2�r� 2� 2�3�3�3�3�3rc��|jj}|dd��}d}|�|
|dd����|�||dd����|�||z|dd����|�||z|dd����|�||z
|dd����|�||z
|dd����|�||z|dd	����|�||z|dd	����|�||z|dd
����|�t��5||zddd��dS#1swxYwYdS)Nr�r~r�r�rri����r(rOr�)r\r	rGr8r�)rKr	r�r0s    r�test_translation_and_scalingz+TestNormalDist.test_translation_and_scalinges����[�+�
��J�s�B���������!��Z�Z��R�0�0�1�1�1����!��Z�Z��b�1�1�2�2�2�����Q��
�
�3�� 3� 3�4�4�4�����Q��
�
�3�� 3� 3�4�4�4�����Q��
�
�2�r� 2� 2�3�3�3�����Q��
�
�3�� 3� 3�4�4�4�����Q��
�
�4�� 5� 5�6�6�6�����Q��
�
�4�� 5� 5�6�6�6�����Q��
�
�2�s� 3� 3�4�4�4�
�
�
�y�
)�
)�	�	�
��E�E�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�,E?�?F�Fc��|jj}|dd��}|
}|�||��|�|j|j��|�|j|j��|}|�||��|�|j|j��|�|j|j��dS)Nr�r�)r\r	�assertIsNotrGr�rXr_s    r�test_unary_operationsz$TestNormalDist.test_unary_operationsus����[�+�
��J�s�B����
�B������A�����������(�(�(������!�'�*�*�*�
�B������A���������!�&��)�)�)������!�'�*�*�*�*�*rc�d�|jj}|��}|dd��}|��}|dd��}|dd��}|dd��}|�||��|�||��|�||��|�||��|�||��Gd�d��}|��}	|�|�|	��t
��|�||	kd��|�|	|kd��Gd�d|��}
|
d	d
d��}|d	d
��}|�||��Gd�d
��}|d	d
��}
|d	d
��}|�||
��dS)Nrr�r�c��eZdZd�ZdS)�'TestNormalDist.test_equality.<locals>.Ac��dSrIr<)rKr,s  r�__eq__z.TestNormalDist.test_equality.<locals>.A.__eq__�s���rrN)r9r:r;rjr<rrr�rh�s#������
�
�
�
�
rr�r�c���eZdZ�fd�Z�xZS)�5TestNormalDist.test_equality.<locals>.SizedNormalDistc�Z��t���||��||_dSrW)r�__init__r)rKr/rrrs    �rrnz>TestNormalDist.test_equality.<locals>.SizedNormalDist.__init__�s(������ � ��U�+�+�+�����r)r9r:r;rnrrs@r�SizedNormalDistrl�s8�������
�
�
�
�
�
�
�
�
rror�r~�9c��eZdZd�ZdS)�3TestNormalDist.test_equality.<locals>.LognormalDistc�"�||_||_dSrW)r/r)rKr/rs   rrnz<TestNormalDist.test_equality.<locals>.LognormalDist.__init__�s�����"��
�
�
rN)r9r:r;rnr<rr�
LognormalDistrr�s#������
#�
#�
#�
#�
#rrt)r\r	r{rGrj�NotImplemented)rKr	�nd1�nd2�nd3�nd4�nd5�nd6r�rro�srt�lndr
s               r�
test_equalityzTestNormalDist.test_equality�s+���[�+�
��j�l�l���j��A�����j�l�l���j��A�����j��A�����j��A�������C��%�%�%�����c�"�"�"�����c�"�"�"����C��%�%�%����C��%�%�%�	�	�	�	�	�	�	�	�
�A�C�C��������A����7�7�7�������2�&�&�&�����c��2�&�&�&�	�	�	�	�	�j�	�	�	�
�O�C��R�(�(���j��b�!�!������C� � � �
	#�	#�	#�	#�	#�	#�	#�	#��m�C��$�$��
�Z��R�
 �
 �����B��$�$�$�$�$rc���|j�dd��}tj|��}|�||��tj|��}|�||��dS)N��B@��@)r\r	�copyrG�deepcopy)rKr
rvrws    r�	test_copyzTestNormalDist.test_copy�sg��
�[�
#�
#�D�%�
0�
0���i��m�m������S�!�!�!��m�B��������S�!�!�!�!�!rc�R�|j�dd��}ttjdz��D]n}|�|���5tjtj||�����}|�||��ddd��n#1swxYwY�odS)Nr�r�r
)�proto)�protocol)	r\r	r��pickle�HIGHEST_PROTOCOLr��loads�dumpsrG)rKr
r��pickleds    r�test_picklezTestNormalDist.test_pickle�s���
�[�
#�
#�D�%�
0�
0���6�2�Q�6�7�7�	.�	.�E����E��*�*�
.�
.� �,�v�|�B��'G�'G�'G�H�H��� � ��W�-�-�-�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.��	.�	.s�?B�B	�"B	c���|jj}|dd��|dd��|dd��|dd��|dd��h}|�t|��d��dS)Nr�r~r�g.@r�rr�)r\r	rGrc)rK�NDr|s   r�test_hashabilityzTestNormalDist.test_hashability�sp��
�[�
#��
�R��R�[�[�"�"�U�D�/�/�2�2�c�2�;�;���2�r�
�
�B�B�s�B�K�K�P������Q����#�#�#�#�#rc��|j�dd��}|�t|��d��dS)Nr�r�z NormalDist(mu=37.5, sigma=5.625))r\r	rG�reprrs  r�	test_reprzTestNormalDist.test_repr�s<��
�[�
#�
#�D�%�
0�
0������b���#E�F�F�F�F�FrN)r9r:r;rrrr$r0r6r�skip_if_pgo_taskr?rCrTrYr\r`rbrer~r�r�r�r�r<rrrr%
sP������A�A�A�3�3�3�,3�3�3�**�*�*�,%9�%9�%9�N9�9�9�<
��>=�>=���>=�@@�@�@�=(�=(�=(�~
)�
)�
)�*�*�*�4�4�4���� 
+�
+�
+�*%�*%�*%�X"�"�"�.�.�.�$�$�$�
G�G�G�G�Grrc��eZdZeZd�Zd�ZdS)�TestNormalDistPythonc�.�|jtjd<dSrE�r\rp�modulesrws rr�zTestNormalDistPython.setUp����$(�K���L�!�!�!rc�.�ttjd<dSrE�r=rpr�rws r�tearDownzTestNormalDistPython.tearDown����$.���L�!�!�!rN)r9r:r;rIr\r�r�r<rrr�r��s7������
�F�0�0�0�/�/�/�/�/rr�rNc��eZdZeZd�Zd�ZdS)�TestNormalDistCc�.�|jtjd<dSrEr�rws rr�zTestNormalDistC.setUp�r�rc�.�ttjd<dSrEr�rws rr�zTestNormalDistC.tearDown�r�rN)r9r:r;rPr\r�r�r<rrr�r��s7������
�F�0�0�0�/�/�/�/�/rr�c�T�	|�tj����|SrW)�addTestsrh�DocTestSuite)�loader�tests�ignores   r�
load_testsr��s%��0�	�N�N�7�'�)�)�*�*�*��Lr�__main__)r+r,)Tr�rX�collections.abcr�r�rhr3rr�r�rprR�testr�test.supportrrrr�rr=rrr*r5r7�import_fresh_modulerIrPrFrBrUrsrzr�r�r�r&r5r=rVrertr{r�r�r�rr,r?rr�r�r�r�r�r�r%rLrgrkrvr}r�r�r�r�rrr'r1rVr`r�r�r�r�rr�rSr�r�r9�mainr<rr�<module>r�s����
�
�
�
�����������������������������
�
�
�
�
�
�
�
�
�
�
�
�����������9�9�9�9�9�9�9�9�����������������
���3�3�3�>
�
�
� 2)�2)�2)�2)�t$	�$	�$	�$	�$	�$	�$	�$	�V2�
�1�,�;H�/�K�K�K�
�0�}�0��8E��H�H�H��
U�
U�
U�
U�
U�(�#�
U�
U�
U�XF�XF�XF�XF�XF�h�'�XF�XF�XF�~)�)�)�)�)�x� �)�)�)�;J�;J�;J�;J�;J�h�/�;J�;J�;J�|=B�=B�=B�=B�=B�8�,�=B�=B�=B�@,�,�,�,�,�X�.�,�,�,�>tE�tE�tE�tE�tE�X�.�tE�tE�tE�nK�K�K�K�K�h�/�K�K�K�8	G�	G�	G�	G�	G�H�-�	G�	G�	G�"%�%�%�%�%�(�+�%�%�%�ZC�C�C�C�C�(�#�C�C�C�,$�$�$�$�$�x� �$�$�$�
�
�
�
�
�(�+�
�
�
�=8�=8�=8�=8�=8�X�&�=8�=8�=8�@1)�1)�1)�1)�1)��*�1)�1)�1)�h6�6�6�6�6�8�$�6�6�6�&a9�a9�a9�a9�a9��"�a9�a9�a9�H;-�;-�;-�;-�;-�(�#�;-�;-�;-�|&�&�&�&�&�(�#�&�&�&�<`/�`/�`/�`/�`/�`/�`/�`/�F'.�'.�'.�'.�'.�'.�'.�'.�T	#�	#�	#�	#�	#�)�+>�	#�	#�	#�7F�7F�7F�7F�7F�o�7F�7F�7F�t
?�
?�
?�
?�
?�_�
?�
?�
?�;K�;K�;K�;K�;K��;K�;K�;K�@9�9�9�9�9�(�9�9�9�(]>�]>�]>�]>�]>���.A�]>�]>�]>�@v(�v(�v(�v(�v(���6I�v(�v(�v(�r65�65�65�65�65��,�65�65�65�r
�
�
�
�
��*=�
�
�
�4�4�4�4�4�J� 3�4�4�4�64�4�4�4�4�Z�!4�4�4�4�6u@�u@�u@�u@�u@�
�u@�u@�u@�p:,�:,�:,�:,�:,���.A�:,�:,�:,�z,�,�,�,�,�H�%�,�,�,�A1�A1�A1�A1�A1��!�A1�A1�A1�L?:�?:�?:�?:�?:�.�?:�?:�?:�D)-�)-�)-�)-�)-�&��9L�)-�)-�)-�X,-�,-�,-�,-�,-�%��8K�,-�,-�,-�\7�7�7�7�7�#�_�7�7�7�"^k�^k�^k�^k�^k�h�'�^k�^k�^k�B9�9�9�9�9�"�O�9�9�9�(fM�fM�fM�fM�fM��)�fM�fM�fM�Ra+�a+�a+�a+�a+�H�%�a+�a+�a+�H3�3�3�3�3�h�/�3�3�3�>A�A�A�A�A�8�#4�A�A�A�0)�)�)�)�)�8�,�)�)�)�:]G�]G�]G�]G�]G�]G�]G�]G�F
/�/�/�/�/�8�,�n�/�/�/����\�#9�:�:�/�/�/�/�/�h�'��/�/�;�:�/�����z����H�M�O�O�O�O�O��r