403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/numpy/lib/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/numpy/lib/tests/__pycache__/test_histograms.cpython-312.pyc
�

	�g����ddlZddlmZmZmZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZmZddlZGd�d�ZGd�d�ZGd�d	�Zy)
�N)�	histogram�histogramdd�histogram_bin_edges)
�assert_�assert_equal�assert_array_equal�assert_almost_equal�assert_array_almost_equal�
assert_raises�assert_allclose�assert_array_max_ulp�assert_raises_regex�suppress_warningsc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"e#jHjKd!�"�d#��Z&d$�Z'y%)&�
TestHistogramc��y�N���selfs �AC:\Python312\Lib\site-packages\numpy/lib/tests/test_histograms.py�setup_methodzTestHistogram.setup_method����c��yrrrs r�teardown_methodzTestHistogram.teardown_methodrrc��d}tjj|�}t|�\}}t	tj
|d��|�ttjddd��\}}t|d�y)N�dr��axis�
)�np�random�randrr�sum�linspacer)r�n�v�a�bs     r�test_simplezTestHistogram.test_simplesb�����I�I�N�N�1����1����A��R�V�V�A�A�&��*��2�;�;�q�"�c�2�3���A��1�b�!rc�8�tgd�ddg�\}}t|dg�t|ddg�tttddgd��tddgd��\}}t	|tjdg��t|tjddg��y)N�����r.r/r��bins��?�@)rrr�
ValueErrorrr"�arrayr)r�hist�edges�h�es     r�test_one_binzTestHistogram.test_one_bins�����q�!�f�5���e��4�!��'��5�1�a�&�)��j�)�a��V�!�<��!�Q��a�(���1��Q����!��
�&���2�8�8�R��H�-�.rc���d}tjj|�}t|d��\}}tj|tj
|�z�}t
|d�tjd�}gd�}t||d��\}}t|d�ttj|tj
|�z�d�t||d��\}}t|gd	��tjd�}d
dddtjg}t||d��\}}t|gd
��tjgd	�ddtjgd��\}}t|dd
g�y)NrT��densityr.r!�rr.r0�r!皙�����?Fr-rr0rA)rBrBrB���?��?��?)r"r#r$rr%�diffr	�arangerr�inf)	rr'r(r)r*�arear3�counts�dmys	         r�test_densityzTestHistogram.test_density)s.�����I�I�N�N�1�����D�)���1��v�v�a�"�'�'�!�*�n�%���D�!�$�
�I�I�b�M������D�$�/���1��1�b�!��R�V�V�A�����
�N�+�Q�/���D�%�0���1��1�l�+�
�I�I�b�M���1�a��B�F�F�#����D�$�/���1��1�.�/��l�l��3��R�V�V�,�d�<�����V�c�1�X�&rc�l�tjd�dz}t|ddg��\}}t|j	�d�t|ddg��\}}t|j	�d�t|ddgd��\}}t|tj|�zj	�dd	�
�tjd�dz}t|ddg|d��\}}t|tj|�zj	�d�t|dddg|�
�\}}t||dd�y)Nr!rDr�	��ranger.T�rQr?���decimal�rQ�weightsr?��r3rQrW���)r"rHrrr%r	rG)rr)r:r*�ws     r�
test_outlierszTestHistogram.test_outliersIs���I�I�b�M�B�����1�a�&�)���1��Q�U�U�W�a� ���1�b�'�*���1��Q�U�U�W�a� ���1�a�&�$�7���1��Q������^�0�0�2�A�r�B�
�I�I�b�M�B�����1�a�&�!�T�B���1��a�"�'�'�!�*�n�)�)�+�Q�/����1�a�&�!�<���1��Q��!�B�� rc���tjd�dz}tjd�dz}ttd�5t	|ddg|d��\}}ddd�y#1swYyxYw)	Nr!rD�z
same shape asr.rOTrV)r"rHrr6r)rr)r[r:r*s     r�test_arr_weights_mismatchz'TestHistogram.test_arr_weights_mismatchasa���I�I�b�M�B����I�I�b�M�B���
 ��_�
=�	G��Q�q�!�f�a��F�D�A�q�	G�	G�	G�s�A�A(c���tjd�dz}t|�\}}ttj|j
tj��t|d��\}}ttj|j
tj��t|tjdt���\}}ttj|j
tj��t|tjdt���\}}ttj|j
tj��y)Nr!rDTr>�rW)r"rHrr�
issubdtype�dtype�integer�floating�ones�int�float)rr)r:r*s    r�	test_typezTestHistogram.test_typehs����I�I�b�M�B�����|���1���
�
�a�g�g�r�z�z�2�3���D�)���1���
�
�a�g�g�r�{�{�3�4���B�G�G�B��$4�5���1���
�
�a�g�g�r�z�z�2�3���B�G�G�B��$6�7���1���
�
�a�g�g�r�{�{�3�4rc��tjgd�tj��}tjgd�tj��}tj||d��\}}}t	|j�d�y)N)g2V��Eq@g��x>fQ�g-��VT5@�rc)g!����@g���S��@g���^z�@rr2�@)r"r7�float32�histogram2drr%)r�x�y�counts_hist�xedges�yedgess      r�test_f32_roundingzTestHistogram.test_f32_roundingwsV���H�H�8��
�
�K���H�H�<�B�J�J�O��&(�n�n�Q���&D�#��V�V��[�_�_�&��+rc�z�tjgd�tj��}tj|�\}}t	�5}|jtd�}tjgd��\}}tt|�d�t||�t||�ddd�y#1swYyxYw)N)r.r.rrkzConverting input from .*)TTFr.)
r"r7�uint8rr�record�RuntimeWarningr�lenr)rr)�int_hist�	int_edges�sup�recr8r9s        r�test_bool_conversionz"TestHistogram.test_bool_conversion~s���
�H�H�Y�b�h�h�/�� �l�l�1�o���)�
�
 �	1�C��*�*�^�-G�H�C��,�,�':�;�K�D�%���S��1�%��t�X�.��u�i�0�
	1�	1�	1�s
�
AB1�1B:c�b�tjjd�}tjd�dz}t	|�\}}t	|d��\}}t	||��\}}t	||d��\}	}
t|dz|�t||	�tjddd�}tjtjd�tjd�f�}t	|tjd	�|�
�\}}t||�t	gd�dgd
��
�\}}t|gd��t	gd�dgd
�d��\}}t|tjgd��dzdzdz�t	tjd�gd�gd�d��\}}t|gd��y)Nr�Tr>ra�rWr?rr!r^�r3rW)r.r/r/r1r1)r1r0r/r.)r1r�rr.)r3rWr?g$@rlrOr@)	r/r.r.r.r.r.r.r.r.)皙�����?rBrBg333333�?)
r"r#r$rfrr
r&�concatenate�zerosrHrr7r	)rr(r[r)r*�na�nb�wa�wb�nwa�nwbs           r�test_weightszTestHistogram.test_weights�s`���I�I�N�N�3����G�G�C�L�1�����|���1��1�d�+���B��1�a�(���B��Q��4�8���S�!�!�a�%��,�!�"�c�*�
�K�K��2�r�"���N�N�B�H�H�Q�K������4�5���1�2�9�9�R�=�!�<���B�!�"�a�(��<�a��F���B��2�|�,���q�,��F���B�!�"�b�h�h�|�&<�s�&B�R�&G�!�&K�L���I�I�a�L�*�/��?���1�	�A�1�2rc	��tjgd��}tjgd��dtjgd��zz}t|gd�|��\}}t|tjddg�dtjdd	g�zz�t|ddd	g|�
�\}}t|tjddg�dtjdd	g�zz�ddlm}tjgd��}tj|d�|d�|d	�g�}t|gd�|��\}}t||d�|d
�g�t|ddd	g|�
�\}}t||d�|d
�g�y)N�g�������?�@gffffff@)r.rZr/y�?)r/r.r/)rr/r0r�r.r/r0rYr)�Decimalr�)r"r7rr
rUr�)r�valuesrWr�r�r�s      r�test_exotic_weightsz!TestHistogram.test_exotic_weights�sM�����/�*���(�(�:�&��b�h�h�y�.A�)A�A���6�	�7�C���B�!�"�b�h�h��1�v�&6��b�h�h��1�v�>N�9N�&N�O��6��!�Q���I���B�!�"�b�h�h��1�v�&6��b�h�h��1�v�>N�9N�&N�O�	$����/�*���(�(�G�A�J���
�G�A�J�?�@���6�	�7�C���B�!�"�w�q�z�7�1�:�&>�?��6��!�Q���I���B�!�"�w�q�z�7�1�:�&>�?rc��tjgd��}tj|ddgd��t|gd��y)Nr����r!r)rQr3)r"r7rr
)rr�s  r�test_no_side_effectsz"TestHistogram.test_no_side_effects�s0�����/�*��
���V�C��9�3�7�!�&�/�:rc��tgddg��\}}t|tjdg��t|tjddg��y)Nrr.r2�rrr"r7�rr)r*s   r�
test_emptyzTestHistogram.test_empty�sA����A�q�6�+���1��1�b�h�h��s�m�,��1�b�h�h��1�v�.�/rc�x�tjddd��}t|d�ttt|d�y)NrCr4r��numr�g333333@)r"r&rr�	TypeError�r�valss  r�test_error_binnum_typez$TestHistogram.test_error_binnum_type�s,���{�{�3���-���$����i��D�#�6rc���tjddd��}t|ddg��ttt|tj
dg��ttt|dtjg��y)NrCr4rr�rF��?rP)r"r&rrr6�nanrIr�s  r�test_finite_rangezTestHistogram.test_finite_range�sN���{�{�3���-���$�t�D�k�*��j�)�T�"�&�&���G��j�)�T�$�r�v�v��Grc��tjddd��}ttd�5tj|ddg��ddd�y#1swYyxYw)	NrCr4rr�zmax must be larger thanrBg{�G�z�?rP)r"r&rr6rr�s  r�test_invalid_rangez TestHistogram.test_invalid_range�sF���{�{�3���-��
 ��-F�
G�	2��L�L��c�4�[�1�	2�	2�	2�s�A�Ac��tjgd��}tj|dd��\}}|dkD}|dd|}|dd|}t|||�D]"\}}}	t	||k\�t	||	k��$y)N)iQi�i�i&i�ii�ih )r/i��r3rQrrZr.)r"r7r�zipr)
r�arrr8r9�mask�
left_edges�right_edgesro�left�rights
          r�test_bin_edge_casesz!TestHistogram.test_bin_edge_cases�s����h�h�=�>���l�l�3�T��C���e��a�x���3�B�Z��%�
��A�B�i��o��!�#�z�;�?�	�N�A�t�U��A��I���A��I��	rc��tjgd��}tj|dd��\}}t|dd�y)N�	rCrCrCr4r5rlrlg@g@����r�r�rZr.)r"r7rr)rr�r8r9s    r�test_last_bin_inclusive_rangez+TestHistogram.test_last_bin_inclusive_range�s5���h�h�C�D���l�l�3�R�y�A���e��T�"�X�q�!rc���tjddd��}tjddgddgg�}ttd�5tj
||�	�ddd�y#1swYyxYw)
NrCr4rr�rrDg333333�?z
must be 1dr2)r"r&r7rr6r)rr�r3s   r�test_bin_array_dimsz!TestHistogram.test_bin_array_dims�s\���{�{�3���-���x�x�!�S��C��:�.�/��
 ��\�
:�	*��L�L��D�)�	*�	*�	*�s�A%�%A.c���tjdg�}tjgd�d��}tt�5tj||��\}}ddd�y#1swYyxYw)Nr/)r.r0r.�uint64rkr2)r"r7rr6r)rr�r3r8r9s     r� test_unsigned_monotonicity_checkz.TestHistogram.test_unsigned_monotonicity_checksT���h�h��s�m���x�x�	��2��
�:�
&�	7��,�,�s��6�K�D�%�	7�	7�	7�s�A#�#A,c
�~�ttttd�D�cgc]}t	j
d���c}tjgz�ttttd�D�cgc]}t	j
d���c}tjgz�t	jtd�D�cgc]}t	j
d���c}dgz�t	jtd�D�cgc]}t	j
d���c}dgz�ycc}wcc}wcc}wcc}w)Nr!g�������?rDg�?)rr6rrQr"r7rI)r�is  r�test_object_array_of_0dz%TestHistogram.test_object_array_of_0ds����j��u�R�y�9�!�����
�9�b�f�f�W�I�E�	G��j��u�R�y�9�!�����
�9�R�V�V�H�D�	F�	���U�2�Y�7��b�h�h�s�m�7�;K�:L�L�M�
���U�2�Y�7��b�h�h�s�m�7�2�$�>�?��
:��9��8��7s�D+�/D0�D5�D:c���tjddtjg�}tjtjtjg�}t�}|j	t
�|5t
tt|d��t
tt|d��t|dd��\}}t|j�d�t|dd��\}}t|j�d�t|ddg��\}}t|j�d�t|ddg��\}}t|j�d�ddd�y#1swYyxYw)Nrr.�autor2�rr.r�r/)r"r7r�r�filterrxrr6rrr%)r�one_nan�all_nanr|r:r*s      r�test_some_nan_valuesz"TestHistogram.test_some_nan_valuess���(�(�A�q�"�&�&�>�*���(�(�B�F�F�B�F�F�+�,�� �!���
�
�>�"�
�	%��*�i��v�F��*�i��v�F��W�6��@�D�A�q������!�$��W�6��@�D�A�q������!�$��W�A�q�6�2�D�A�q������!�$��W�A�q�6�2�D�A�q������!�$�	%�	%�	%�s
�;CE!�!E*c��tjdd�}tjgd��}tjgd��}||z}||z}tjd�}t	||��\}}t	|j|�|j|���\}	}
t	||��\}}t
||�t
|	|�t
||z
jt�|�t
|
jt�|�t
|j|j�t
|
j|�y)Nz
2000-01-01�D)	rrr.r.r/r0r�r!�)rr/�r�ztimedelta64[D]r2)r"�
datetime64r7rcr�astyperrg)
r�begin�offsetsr3�dates�	date_bins�td�d_count�d_edge�t_count�t_edge�i_count�i_edges
             r�
test_datetimezTestHistogram.test_datetime,s����
�
�l�C�0���(�(�8�9���x�x�
�&�������D�L�	�
�X�X�&�
'��
$�E�	�:����#�G�N�N�2�$6�T�[�[��_�M����#�G�$�7�����W�g�&��W�g�&��f�u�n�,�,�S�1�6�:��V�]�]�3�'��0��V�\�\�5�;�;�/��V�\�\�2�&rc��dtj|�jzdz
}tjd|zdzd|zdz
g|��}t	|d��\}}t|d|zdzdd|zdz
g�t|ddg�y)NrXr.r/r1rkr2r)r"rc�itemsizer7rr)rrc�exponentr�r8r;s      r�do_signed_overflow_boundsz'TestHistogram.do_signed_overflow_boundsEs����r�x�x���/�/�/�!�3���h�h��H���q�(�!�X�+��/�:�%�H���C�a�(���a��Q�!�X�+���)�1�a��k�A�o�>�?��T�A�q�6�"rc�:�|jtj�|jtj�|jtj�|jtj
�|jtj�yr)r�r"�byte�short�intc�int_�longlongrs r�test_signed_overflow_boundsz)TestHistogram.test_signed_overflow_boundsLs\���&�&�r�w�w�/��&�&�r�x�x�0��&�&�r�w�w�/��&�&�r�w�w�/��&�&�r�{�{�3rc�R�tj|�j}tjdg|�}tjd|zdg|�}|j	|�ddk7rytj
|d|��\}}t
|dg�t
|j|�y)Nr4r5rr.r��r"�finfo�epsr7r�rrrc�r�float_small�float_larger�r�rQ�count�x_locs        r�do_precision_lower_boundz&TestHistogram.do_precision_lower_boundSs����h�h�{�#�'�'���h�h��u�k�*�����#��)�S�)�;�7���<�<��$�Q�'�1�,���|�|�C�a�u�=���u��U�Q�C� ��U�[�[�+�.rc�R�tj|�j}tjdg|�}tjdd|z
g|�}|j	|�ddk7rytj
|d|��\}}t
|dg�t
|j|�y)Nr4rCrZr.r�rr�r�s        r�do_precision_upper_boundz&TestHistogram.do_precision_upper_boundbs����h�h�{�#�'�'���h�h��u�k�*�����#�s�S�y�)�;�7���<�<��$�R�(�A�-���|�|�C�a�u�=���u��U�Q�C� ��U�[�[�+�.rc�L�|j||�|j||�yr)r�r�)rr�r�s   r�do_precisionzTestHistogram.do_precisionrs"���%�%�k�;�?��%�%�k�;�?rc�,�|jtjtj�|jtjtj�|jtjtj
�|jtjtj�|jtjtj
�|jtjtj
�yr)r�r"�half�single�double�
longdoublers r�test_precisionzTestHistogram.test_precisionvs������"�'�'�2�9�9�-����"�'�'�2�9�9�-����"�'�'�2�=�=�1����"�)�)�R�Y�Y�/����"�)�)�R�]�]�3����"�)�)�R�]�]�3rc�<�tgd�ddg�\}}tgd�ddg�}t||�tjgd��}t|dd��\}}t|dd��}t||�t|dd	��\}}t|dd	��}t||�y)
Nr-r.r/r�r�r�r�r�r�)rrrr"r7)rr8r;r9r�s     r�test_histogram_bin_edgesz&TestHistogram.test_histogram_bin_edgess����L�1�a�&�1���a�#�L�1�a�&�9���5�!�$��h�h�C�D���C�b�	�:���a�#�C�b�	�B���5�!�$��C�f�F�;���a�#�C�f�F�C���5�!�$rc��tjddgdz�}tjtd��5t|d��ddd�y#1swYyxYw)Nr.g�?r!zToo many bins for data range)�matchr2)r"r7�pytest�raisesr6r)rr�s  r�test_small_value_rangez$TestHistogram.test_small_value_range�sG���h�h��9�~��*�+��
�]�]�:�-K�
L�	$��c��#�	$�	$�	$�s�A
�
Az,Bad memory reports lead to OOM in ci testing)�reasonc���tjddg�}d}d}tjd�}tj||||f��}t	t|�td��y)Ni�r0i�i�>)�sampler3)r.r/)r"r�rHrr�type)rr�xbins�ybins�zbinsr8s      r�test_big_arrayszTestHistogram.test_big_arrays�sU�����9�a�.�)�������	�	�%� ���~�~�V�5�%��2G�H���T�$�Z��f��.rc��tjtjdgd��dd��\}}tjddg�}t||�y)	Ng$��x�z>f8rkr/)g��x�0�ge��l	�r�r.r)r"rr7r)rr8r;�
expected_hists    r�
test_gh_23110zTestHistogram.test_gh_23110�sG���,�,�r�x�x���5�A�$%�%7�9���a����!�Q��(�
��4��/rN)(�__name__�
__module__�__qualname__rrr+r<rMr\r_rirtr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��mark�skiprrrrrrrs���
�
�	"�/�'�@!�0G�
5�,�1�"3�:@�<;�0�
7�H�2�	�"�
*�7�	@�%�2'�2#�4�
/�/� @�4�%�$��[�[���K��L�/�M�/�0rrc���eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Ze
jjdgd��d
��Ze
jjdgd��d��Zd�Zd�Zy)�TestHistogramOptimBinNumsz]
    Provide test coverage when using provided estimators for optimal number of
    bins
    c��gd�}|D]S}tg|��\}}t|tjdg��t|tjddg���Uy)N��fd�scott�rice�sturges�doane�sqrtr��stoner2rr.r�)r�estimator_list�	estimatorr)r*s     rr�z$TestHistogramOptimBinNums.test_empty�sU��<��(�	4�I��R�i�0�D�A�q��q�"�(�(�A�3�-�0��q�"�(�(�A�q�6�"2�3�	4rc���ddddddddd�dddddd	dd
d�dddd
ddddd�d�}|j�D]�\}}tjdd|dzdz�}tjdd|dzdz�}tj||f�}|j�D]E\}}tj||�\}	}
tt
|	�|dj||����G��y)z�
        Straightforward testing with a mixture of linspace data (for
        consistency). All test values have been precomputed and the values
        shouldn't change
        r1rXr�r/r�r!��rO��#��Gr���2i�i�r�rZr�r.r0�*For the {0} estimator with datasize of {1}��err_msgN)�itemsr"r&r�rrry�format)r�
basic_test�testlen�expectedResults�x1�x2ror�numbinsr)r*s           rr+z%TestHistogramOptimBinNums.test_simple�s��$%��A�1�&'��A��K�#$��B�2�&(�"�b�1�N�#%��B�2�&(�"�b�2�O�	P�
�)3�(8�(8�(:�		P�$�G�_����S�"�g��l�Q�&6�7�B����Q��G�q�L�1�$4�5�B�����B�x�(�A�&5�&;�&;�&=�
P�"�	�7��|�|�A�y�1���1��S��V�W�74�4:�F�9�g�4N�P�
P�
		Prc
�p�dddddddd�dddddddd�dddddddd�d�}|j�D]�\}}tj|�jt�}|j�D]E\}}tj
||�\}}t
t|�|dj||����G��y)	z�
        Smaller datasets have the potential to cause issues with the data
        adaptive methods, especially the FD method. All bin numbers have been
        precalculated.
        r.)rrrrrrrr/r0�r.r/r0r%r&N)	r(r"rHr�rhrrryr))	r�	small_datr+r,�testdatr�expbinsr)r*s	         r�
test_smallz$TestHistogramOptimBinNums.test_small�s��� !�1�a�A�"#�Q��<� �1�a�A�"#�Q��<� �1�a�A�"#�Q��<�	=�	�)2���(9�	P�$�G�_��i�i��(�/�/��6�G�&5�&;�&;�&=�
P�"�	�7��|�|�G�Y�7���1��S��V�W�74�4:�F�9�g�4N�P�
P�	Prc�J�gd�}|D]}tttgd�|��y)zS
        Check a Value Error is thrown when an unknown string is passed in
        )�mad�freeman�
histograms�IQRr1N)rr6r)r�
check_listrs   r�test_incorrect_methodsz0TestHistogramOptimBinNums.test_incorrect_methods�s(��=�
�#�	G�I��*�i��I�F�	Grc	���tjd�}ddddddddd�}|j�D]D\}}tj||�\}}t	t|�|dj
|����Fy)z�
        Check that methods handle no variance in data
        Primarily for Scott and FD as the SD and IQR are both 0 in this case
        rr.rz{0} estimator, No Variance testr&N)r"rfr(rrryr))r�
novar_dataset�novar_resultdictrr/r)r*s       r�test_novariancez)TestHistogramOptimBinNums.test_novariance�s~��
�����
�"#�a��q�%&��1�q�J��#3�"8�"8�":�	?��I�w��<�<�
�y�9�D�A�q���Q���3,�,2�F�9�,=�
?�	?rc�P�tjd�}d|ddd|ddt|d�}t|tjddd��t|d	�}t|tj
ddg��t|d
�}t|tjddd��y)zu
        Check when IQR is 0, but variance exists, we return the sturges value
        and not the fd value.
        ��rNr0r���r�rrr)r"rfrrr&r7)r�lim_var_data�
edges_auto�edges_fd�
edges_sturgess     r�test_limited_variancez/TestHistogramOptimBinNums.test_limited_variance�s���
�w�w�t�}����R�a����R�S��(��v�>�
��Z����Q��R�!8�9�&�|�T�:���X�r�x�x��C��1�2�+�L�)�D�
��]�B�K�K��3��$;�<rc�$�tjddd�}tjtjddd�|f�}dddd	d
�}|j�D]3\}}tj||�\}}tt
|�|��5y)a�
        Check the FD, Scott and Doane with outliers.

        The FD estimates a smaller binwidth since it's less affected by
        outliers. Since the range is so (artificially) large, this means more
        bins, most of which will be empty, but the data of interest usually is
        unaffected. The Scott estimator is more affected and returns fewer bins,
        despite most of the variance being in one area of the data. The Doane
        estimator lies somewhere between the other two.
        r�r!r$i�������r��r^rA)rrrrN)r"r&�hstackr(rrry)r�xcenter�outlier_dataset�outlier_resultdictrr/r)r*s        r�test_outlierz&TestHistogramOptimBinNums.test_outlier
s����+�+�c�2�r�*���)�)�R�[�[��t�Q�%?��$I�J��$&��R�!�L��"4�":�":�"<�	*��I�w��<�<���;�D�A�q���Q���)�	*rc�R�d�}td�D��cgc]P}tjddd��j�j	t
�D�cgc]}|||���
c}��R}}}t
tj|d��dz
�}t|gd	�d
��ycc}wcc}}w)
zQVerify that Scott's rule and Stone's rule converges for normally distributed datac��tjj|�}|jdd|��}t	tj
|d�d�t	tj
|d�d�}}|||zzS)Nrr/)�loc�scale�sizerr)r"r#�RandomState�normalryr)�seedrU�rngror)r*s      r�nbins_ratiozBTestHistogramOptimBinNums.test_scott_vs_stone.<locals>.nbins_ratio!sl���)�)�'�'��-�C��
�
�q���
�5�A��r�|�|�A�w�/��2�3�S����a��9Q�RS�9T�5U�q�A���A��;�rr!rr1)�start�stopr�rrrD)g333333�?g
ףp=
�?g{�G�z�?g���Q��?r/rTN)	rQr"�	geomspace�roundr�rg�abs�meanr	)rrZrXrU�ll�avgs      r�test_scott_vs_stonez-TestHistogramOptimBinNums.test_scott_vs_stones���	� ��)�%��46�<�<�b�s�XY�3Z�3`�3`�3b�3i�3i�jm�3n�o�4�{�4��&�o�%��%��"�'�'�"�1�%��+�,���C�!9�1�E��p��%s�AB#�B�"B#�B#c	��ddddddd�ddddddd�d	d	d
dd	dd�d�}|j�D]�\}}tjd
d|dzdz�}tjdd|dzdz�}tjdd|�}tj|||f�}|j�D]\\}}	tj||d��\}
}dj|�}|dj|�z
}t
t|
�|	|���^��y)z�
        Straightforward testing with a mixture of linspace data (for
        consistency). Adding in a 3rd mixture that will then be
        completely ignored. All test values have been precomputed and
        the shouldn't change.
        rXrSr!)rrrrr�rr� r��P�!�E�r#r�rZr�r/r.r!r0rJi���)i��r�rPzFor the {0} estimatorz with datasize of {0}r&N)r(r"r&rLrr)rry)
rr*r+r,r-r.�x3rorr/r)r*�msgs
             r�test_simple_rangez+TestHistogramOptimBinNums.test_simple_range.s-��$%��B�(*�B��D�#%��B�(*�B��E�#%��B�(*�B��E��
�)3�(8�(8�(:�	;�$�G�_����S�"�g��l�Q�&6�7�B����Q��G�q�L�1�$4�5�B����T�3��0�B��	�	�2�r�2�,�'�A�&5�&;�&;�&=�
;�"�	�7��|�|�A�y�)�D���1�-�4�4�Y�?���.�5�5�g�>�>���S��V�W�c�:�	
;�	;rr3)r�rrrrrrc�$�tjgd�tj��}tj||��\}}tj|j	tj
�|��\}}t
||�t
||�y)N)���r�rkr2)r"r7�int8rr��int32r)rr3r)r8r9�hist32�edges32s       r�test_signed_integer_dataz2TestHistogramOptimBinNums.test_signed_integer_dataMsa��
�H�H�\����1���l�l�1�4�0���e��,�,�q�x�x����'9��E�����4��(��5�'�*rc
�*�t�5}|dk(r|jt�tt	j
t	jt	jd�d�|�t	jd��ddd�y#1swYyxYw)zE
        Test that bin width for integer data is at least 1.
        rrOrBN)rr�rxrr"r�tilerH)rr3r|s   r�test_integerz&TestHistogramOptimBinNums.test_integerWsj���
 �	�C��w���
�
�>�*���&�&�r�w�w�r�y�y��|�T�'B�D�I��	�	�!��
�	�	�	�s�A5B	�	Bc	�T�ttjtjtjd�d�d�tjd�dz�ttjtjtjd�d�ddg�ddg�y)	zX
        Test that the bin-width>=1 requirement *only* applies to auto binning.
        rOrBrrr/rBr�N)rr"rrvrHrs r�test_integer_non_autoz/TestHistogramOptimBinNums.test_integer_non_autodsw��	��"�"�2�7�7�2�9�9�Q�<��#>��C��I�I�b�M�A��	�	��"�"�2�7�7�2�9�9�Q�<��#>��R��I�
��H�	rc	�R�gd�}|D]}tttgd�|gd���� y)z=
        Check that weighted data raises a TypeError
        )rrrrr�r1raN)rr�r)rrrs   r�test_simple_weightedz.TestHistogramOptimBinNums.test_simple_weightedos,��D��'�	8�I��)�Y�	�#�Y�
8�	8rN)r	r
r�__doc__r�r+r5r<r@rHrPrcrlr�r�parametrizertrwryr{rrrrr�s����
4�P�4P�(G�?�=�$*�(F� ;�>�[�[���V�&B�C�+�C�+��[�[���V�&B�C�	�C�	�	�8rrc�f�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zy)�TestHistogramddc	��tjgd�gd�gd�gd�gd�gd�g�}t|ddd	gd
dgd
dgg��\}}tjgd
�gd�gd�ggd
�gd�gd�gg�}t||�gd�gd�gd�g}t||d��\}}t	tj
||dzk(��t|ddd	gd
dgd
dggd��\}}tjgd�gd�gd�ggd�gd�gd�gg�}t
||dzd�tj|dd	��D�cgc]}tj|���}}t|dddgd
dgd
dgg� �\}}tjd
d
gd
d
gd
d
ggd
d	gd
d
gd	d
ggd
d	gd
d
gd
d
ggd
d
gd
d
gd
d
ggg�}t||�tjd!�}d"|ttd#��ttd#��ttd#��f<ttjd#�tjd#�tjd#�gd#�\}}t||�ycc}w)$N)r�rDrE)r�rEr�)r�r�rD)rDrDrE)rDrEr�)rDr�r�)r/r0r0rZr.rr0rP)rr.r)rrr.)r.rr)rnrr/)rr.r/r0T�r3r?g(@)r/r0r1r1rR)rr.rr)rrr.r)r.rrrg@r)r1r0r/rnr/r�)r�r�r�r4r�)
r"r7rrr�allr
�split�squeezer��listrQrH)	rro�Hr9�answer�edrp�z�Zs	         rr+zTestHistogramdd.test_simple{s\���H�H�n�o�~�$�o��H�
I���q�)�')�1�g��1�v��1�v�%>�@���5����I�y�)�<�%�y�)�<�>�?���1�f�%��,��
5���q�r�4�8���5�����q�F�S�L�(�)�*��q�)�')�1�g��1�v��1�v�%>�'+�-���5����L�,��E�(�,��E�G�H��!�!�V�b�[�!�4�%'�H�H�Q���$:�;�q�R�Z�Z��]�;��;��
�I�r�1�g��1�v��1�v�%>�@���5����Q��F�Q��F�Q��F�3���F�Q��F�Q��F�3���F�Q��F�Q��F�3���F�Q��F�Q��F�3�5�6��	�1�f�%��H�H�Y���<>��$�u�Q�x�.�$�u�Q�x�.�$�u�Q�x�.�
8�9���	�	�!��b�i�i��l�B�I�I�a�L�I�1�M���5��1�a� ��
<s�%Ic��d}tjjdd�}|D])}t||�\}}t	|j
|k(��+y)N))r�r1rA)rAr1r�)r�rAr1)r1rAr�)rAr�r1)r1r�rAr!r0�r"r#r$rr�shape�rr3�rr*r�r9s      r�
test_shape_3dzTestHistogramdd.test_shape_3d�sL�����I�I�N�N�2�q�!���	"�A�"�1�a�(�H�A�u��A�G�G�q�L�!�	"rc��d}tjjdd�}|D])}t||�\}}t	|j
|k(��+y)N))r�r1r�rA)r1r�r�rA)r�rAr1r�)r�rAr�r1)r�r�rAr1)r1rAr�r�)rAr�r�r1)r�r�r1rA)r�r1rAr�)rAr1r�r�)rAr�r�r1)r1rAr�r�)r1r�r�rA)r�r1rAr�)r�r�r1rA)rAr�r1r�)rAr�r1r�)r1r�rAr�)r1r�rAr�)r�rAr1r�)r�r1r�rA)r�rAr�r1)rAr1r�r�)r�r�rAr1r!r1r�r�s      r�
test_shape_4dzTestHistogramdd.test_shape_4d�sO��H��
�I�I�N�N�2�q�!���	"�A�"�1�a�(�H�A�u��A�G�G�q�L�!�	"rc��tjjdd�}t|�\}}t|d��\}}t|tjd���\}}t||�t|tjd�dzd��\}}t||�t|tjdt�dz��\}}t|d|z�y)Nrr/Tr>rar�)r"r#r$rrfrrg)rr(r8r9�n_hist�w_hists      rr�zTestHistogramdd.test_weights�s����I�I�N�N�3��"��!�!�n���e�#�A�t�4�
���#�A�r�w�w�s�|�<�
����6�4�(�#�A�r�w�w�s�|�a�/?��N�
����6�6�*�#�A�r�w�w�s�C�/@�1�/D�E�
����6�1�t�8�,rc��tjdt�}t|d��\}}t	|dtj
gd���y)N)r!r/r/r2r)r�rCrD)r"r�rgrrr7)rror8r9s    r�test_identical_samplesz&TestHistogramdd.test_identical_samples�s9���H�H�W�c�"��!�!�!�,���e��5��8�R�X�X�o�%>�?rc���tgggddgddgf��\}}t|tjdgg��tjggggd��\}}t|tjd��y)Nrr.r2rCr/)r/r/r/)rr
r"r7r�r�s   rr�zTestHistogramdd.test_empty�sg���B��8�A�q�6�A�q�6�*:�;���1��Q����2�$�� 0�1��~�~�r�2�r�l��3���1��Q����� 3�4rc
�t�tjd�jdd�}tttj
|gd���tttj
|gd���tttj
|dddgd�g��t
tj
|dddgd	�g���y)
NrXr/r1)rZr/r1r�r2)r.g�G�z��?r.r.r.)r.r/r0���r-)r"rH�reshaperr6rr)rros  r�test_bins_errorsz TestHistogramdd.test_bins_errors�s}��
�I�I�a�L� � ��A�&���j�"�.�.�!�-�H��j�"�.�.�!�/�J��������A�q�-�0H�	J�����q��1�a��'>�?�@rc
�|�tjd��5tjd�jdd�}tjddgddgddgg�}tj
|dtjddgg�	�\}}t||�tj
|dtjd
dtjg�g�	�\}}t||�tj
|dtjdtjgg�	�\}}t||�ddd�y#1swYyxYw)N�ignore)�invalidrAr0r/r.rr!r2rZ)r"�errstaterHr�r7rrIr)rro�expectedr:r;s     r�test_inf_edgeszTestHistogramdd.test_inf_edges�s���
�[�[��
*�	)��	�	�!��$�$�Q��*�A��x�x�!�Q��!�Q��!�Q�� 8�9�H��>�>�!�1����w��2�.>�*?�@�D�A�q��A�x�(��>�>�!�1�b�h�h��A�r�v�v��.G�*H�I�D�A�q��A�x�(��>�>�!�1����w��2�6�6�.B�*C�D�D�A�q��A�x�(�	)�	)�	)�s�DD2�2D;c���dg}gd�g}t||��\}}t|ddk(�t|ddk(�dg}gd�g}t||��\}}t|ddk(�t|ddk(�dg}gd�g}t||��\}}t|ddk(�t|ddk(�d	g}gd�g}t||��\}}t|ddk(�t|ddk(�y)
Ng�G�����?)rCrDr4r2rrCr.r4g8��?gq���h�?)rr)rror3r8�_s     r�test_rightmost_binedgez&TestHistogramdd.test_rightmost_binedge�s���
�N������a�d�+���a���Q��3�����Q��2�
��
�E������a�d�+���a���Q��3�����Q��2�
��
�N������a�d�+���a���Q��3�����Q��3���
�H������a�d�+���a���Q��3�����Q��3��rc	�&�tjjd�}t|ddgddgddgg��ttt|ddgddgdtj
gg��ttt|ddgtjdgddgg��y)N)rr0rCr4rFr�rDrP)r"r#rrr6rIr�r�s  rr�z!TestHistogramdd.test_finite_range�s����y�y����)���D�#�s��d�D�\�D�#�;� G�H��j�+�t�!�3�Z�$����b�f�f�~�F�	H��j�+�t�!�3�Z�"�&�&�$��$���E�	Grc��tjgd��}tjgd��}tjgd��}d}t||f||f��\}}tjdgdgg�}t||�y)z: Test that adjacent entries in an edge array can be equal )rr.r/)rr/r/r.r2r5r4N�r"r7rr)rrorp�x_edges�y_edgesr8r9�
hist_expecteds        r�test_equal_edgesz TestHistogramdd.test_equal_edgesss���H�H�Y����H�H�Y����(�(�9�%����!�1�a�&���/A�B���e����
�D�
�D�"
��
�	�T�=�)rc�(�tjgd��}|dz}tjgd��}|dz}t||f||f��\}}t|dj|j�t|dj|j�y)z< Test that if an edge array is input, its type is preserved )rr!r�r!)rr�rSr�r2rr.N)r"r7rrrc)rrorpr�r�r8r9s       r�test_edge_dtypezTestHistogramdd.test_edge_dtypesu���H�H�[�!��
��F���(�(�>�*���B�,��!�1�a�&���/A�B���e��U�1�X�^�^�W�]�]�3��U�1�X�^�^�W�]�]�3rc��d}tjdgtj�}tjddgtj�}||z}||z}t||f||f��\}}t	|dd�y)NlrrZr.r2)rr)r"r7�int64rr)r�bigror�rpr�r8r9s        r�test_large_integersz#TestHistogramdd.test_large_integerssn�����H�H�a�S�"�(�(�#���(�(�B��8�R�X�X�.���!�G����-��!�1�a�&���/A�B���e��T�$�Z��#rc���tjgd��}tjgd��}tjddgddgg�}tjdgdgdzzdgdzzdgdzz�}tjdgdgdzzdgdzzdgdzz�}t||f||f��\}}t||�t||f||fd�	�\}}t|d
�y)N)rr/rX)rrArXr0rOr.r�r2Tr�g�?r�)rr�r��relative_areasrorpr8r9s        r�test_density_non_uniform_2dz+TestHistogramdd.test_density_non_uniform_2d's����(�(�9�%���(�(�9�%�����
��F�
��F�#���

�H�H�a�S�A�3�q�5�[�A�3�q�5�(�A�3�q�5�0�1���H�H�a�S�A�3�q�5�[�A�3�q�5�(�A�3�q�5�0�1��"�1�a�&���/A�B���e��T�>�*�"�1�a�&���/A�4�P���e��T�9�%rc���tjd�}tjgd��}t||d��\}}t	|f|fd��\}}t||�t||d�y)Nr!r@Tr>r)r"rHr7rrr)rr(r3r8r9�hist_dd�edges_dds       r�test_density_non_uniform_1dz+TestHistogramdd.test_density_non_uniform_1dBs_���I�I�b�M���x�x�(�)����4��6���e�'���t�g�t�D�����T�7�#��U�H�Q�K�(rN)r	r
rr+r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrysQ��#!�J"�"�	-�@�
5�A�
)� �.G�*�	4�
$�&�6)rr)�numpyr"rrr�
numpy.testingrrrr	r
rrr
rrr�rrrrrr�<module>r�sH���=�=����
�V0�V0�rQ8�Q8�hP)�P)r

Youez - 2016 - github.com/yon3zu
LinuXploit