403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/scipy/cluster/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/scipy/cluster/tests/__pycache__/test_hierarchy.cpython-311.pyc
�

d�cm���F�ddlZddlmZmZmZmZddlZddlmZ	ddl
Zddl
mZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-	ddl.Z.e.j/d	��ddl0m1Z2d
Z3n
#e4$rdZ3YnwxYwGd�d
��Z5Gd�d��Z6Gd�d��Z7Gd�d��Z8Gd�d��Z9Gd�d��Z:Gd�d��Z;Gd�d��Z<Gd�d��Z=Gd�d��Z>Gd �d!��Z?Gd"�d#��Z@Gd$�d%��ZAGd&�d'��ZBGd(�d)��ZCGd*�d+��ZDGd,�d-��ZEGd.�d/��ZFd0�ZGd;d2�ZHd3�ZId4�ZJd5�ZKd6�ZLd7�ZMd8�ZNd9�ZOd:�ZPdS)<�N)�assert_allclose�assert_equal�assert_�assert_warns)�raises)�ClusterWarning�linkage�from_mlab_linkage�to_mlab_linkage�num_obs_linkage�inconsistent�cophenet�fclusterdata�fcluster�
is_isomorphic�single�leaders�
correspond�is_monotonic�maxdists�maxinconsts�maxRstat�is_valid_linkage�is_valid_im�to_tree�leaves_list�
dendrogram�set_link_color_palette�cut_tree�optimal_leaf_ordering�_order_cluster_tree�
_hierarchy�_LINKAGE_METHODS)�pdist)�Heap�)�hierarchy_test_data�AggTFc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestLinkagec��tjd��}tj|d<ttt
|��dS)N)�r)�np�zeros�nan�
assert_raises�
ValueErrorr	��self�ys  �D/usr/lib/python3/dist-packages/scipy/cluster/tests/test_hierarchy.py�3test_linkage_non_finite_elements_in_distance_matrixz?TestLinkage.test_linkage_non_finite_elements_in_distance_matrixDs4��
�H�T�N�N���v��!���j�'�1�-�-�-�-�-�c�d�tjd��}ttt|��dS)N�r)r-r.r0r1r	r2s  r5�"test_linkage_empty_distance_matrixz.TestLinkage.test_linkage_empty_distance_matrixKs'���H�T�N�N���j�'�1�-�-�-�-�-r7c�:�dD]}|�|���dS)N)r�complete�average�weighted)�check_linkage_tdist�r3�methods  r5�test_linkage_tdistzTestLinkage.test_linkage_tdistPs2��C�	-�	-�F��$�$�V�,�,�,�,�	-�	-r7c��ttj|��}ttd|z��}t	||d���dS)N�linkage_ytdist_绽���|�=��atol�r	r'�ytdist�getattrr)r3rA�Z�	expectedZs    r5r?zTestLinkage.check_linkage_tdistTsF���'�.��7�7���/�1B�V�1K�L�L�	���9�5�1�1�1�1�1�1r7c�:�dD]}|�|���dS)N)�centroid�median�ward)�check_linkage_qr@s  r5�test_linkage_XzTestLinkage.test_linkage_XZs2��4�	)�	)�F�� � ��(�(�(�(�	)�	)r7c�2�ttj|��}ttd|z��}t	||d���t
jj�tjd���}t||��}t	||d���dS)N�
linkage_X_���ư>rF�	euclidean)�metric)	r	r'�XrJr�scipy�spatial�distancer$)r3rArKrLr4s     r5rQzTestLinkage.check_linkage_q^s����'�)�6�2�2���/���1F�G�G�	���9�5�1�1�1�1��M�"�(�(�)<�)>�0;�
)�
=�
=���A�v������9�5�1�1�1�1�1�1r7c�6�tj�d��}d}|�|d��}t	|��}tj��D]>\}}tj|||��}t||��}t||dd����?dS)Nr��g�+����=�V瞯�<)�rtolrG)
r-�random�RandomState�randr$r#�itemsr"r	r)	r3�rng�nrX�drA�code�	Z_trivialrKs	         r5�test_compare_with_trivialz%TestLinkage.test_compare_with_trivialis����i�#�#�A�&�&�����H�H�Q��N�N���!�H�H��,�2�4�4�	B�	B�L�F�D�"�*�1�a��6�6�I���6�"�"�A��I�q�u�5�A�A�A�A�A�	B�	Br7c��ttjd���}ttd��}t	||d���dS)NT)�optimal_ordering�linkage_ytdist_single_olorErFrH)r3rKrLs   r5�test_optimal_leaf_orderingz&TestLinkage.test_optimal_leaf_orderingtsD���'�.��F�F�F���/�1L�M�M�	���9�5�1�1�1�1�1�1r7N)�__name__�
__module__�__qualname__r6r:rBr?rRrQrjrn�r7r5r*r*Cs�������.�.�.�.�.�.�
-�-�-�2�2�2�)�)�)�	2�	2�	2�	B�	B�	B�2�2�2�2�2r7r*c�F�eZdZejgd�gd�g��ejgd�gd�g��ejgd�gd�g��ejgd�gd�g��ejgd�gd�g��ejgd�gd�g��ejgd�gd�g��d�Zd�Zd�Zd	S)
�TestLinkageTies)rr&��'�e���?r^)r^�rurv)r^rvg�'�e��@rv)r^rvg�e�v�@rv)r^rvg����@rv�rr<r=r>rNrOrPc�:�dD]}|�|���dS�Nrw)�check_linkage_tiesr@s  r5�test_linkage_tiesz!TestLinkageTies.test_linkage_ties�s2��a�	,�	,�F��#�#�F�+�+�+�+�	,�	,r7c��tjddgddgddgg��}t||���}|j|}t	||d���dS)N���rr&�rArUrF)r-�arrayr	�
_expectationsr)r3rArXrKrLs     r5rzz"TestLinkageTies.check_linkage_ties�s^���H�r�2�h��A���A��/�0�0���A�f�%�%�%���&�v�.�	���9�5�1�1�1�1�1�1r7N)rorprqr-rr�r{rzrrr7r5rtrtzsV�������"�(�1�1�1�1�1�1�3�4�4��B�H�3�3�3�3�3�3�5�6�6��2�8�2�2�2�2�2�2�4�5�5��B�H�3�3�3�3�3�3�5�6�6��B�H�3�3�3�3�3�3�5�6�6��"�(�1�1�1�1�1�1�3�4�4����/�/�/�/�/�/�1�2�2���M�",�,�,�2�2�2�2�2r7rtc��eZdZd�Zd�ZdS)�TestInconsistentc�N�tjD]}|�|���dS�N)r'�inconsistent_ytdist�check_inconsistent_tdist)r3�depths  r5�test_inconsistent_tdistz(TestInconsistent.test_inconsistent_tdist�s5��(�<�	1�	1�E��)�)�%�0�0�0�0�	1�	1r7c�z�tj}tt||��tj|��dSr�)r'�linkage_ytdist_singlerr
r�)r3r�rKs   r5r�z)TestInconsistent.check_inconsistent_tdist�sB���5����Q��.�.�+�?��F�	H�	H�	H�	H�	Hr7N)rorprqr�r�rrr7r5r�r��s7������1�1�1�H�H�H�H�Hr7r�c��eZdZd�Zd�ZdS)�TestCopheneticDistancec��tjgd���}tj}t	|��}t||d���dS)N���'�r�r�r�r�r�r�r�r����r�r�rErF)r-rr'r�rr)r3�	expectedMrK�Ms    r5�test_linkage_cophenet_tdist_Zz4TestCopheneticDistance.test_linkage_cophenet_tdist_Z�sP���H�7�7�7�8�8�	��5���Q�K�K����9�5�1�1�1�1�1�1r7c���tj}t|tj��\}}t	jgd���}d}t
||d���t
||d���dS)Nr�g*ɻ2Qz�?rErF)r'r�rrIr-rr)r3rK�cr�r��	expectedcs      r5�test_linkage_cophenet_tdist_Z_Yz6TestCopheneticDistance.test_linkage_cophenet_tdist_Z_Y�sv���5���!�0�7�8�8���A��H�7�7�7�8�8�	�4�	���9�5�1�1�1�1���9�5�1�1�1�1�1�1r7N)rorprqr�r�rrr7r5r�r��s2������2�2�2�2�2�2�2�2r7r�c� �eZdZd�Zd�Zd�ZdS)�TestMLabLinkageConversionc��tjg��}ttg��|��tt	g��|��dSr��r-�asarrayrr
r)r3rXs  r5�"test_mlab_linkage_conversion_emptyz<TestMLabLinkageConversion.test_mlab_linkage_conversion_empty�sF���J�r�N�N���&�r�*�*�A�.�.�.��_�R�(�(�!�,�,�,�,�,r7c��tjgd�g��}gd�g}tt|��|��tt	|��|��dS)N)���?�@�@�r&r^rvr�)r3rK�Zms   r5�'test_mlab_linkage_conversion_single_rowzATestMLabLinkageConversion.test_mlab_linkage_conversion_single_row�s]���J�(�(�(�)�*�*���i�i�[���&�r�*�*�A�.�.�.��_�Q�'�'��,�,�,�,�,r7c��tjgd�gd�gd�gd�gd�g��}tjgd�gd�gd�gd	�gd
�gtj���}t	t|��|��t	t
|��|��dS)N)rvr,r�)��r�)r&�r�)r^�	r�)��
r�)r��@�@a@r�)r��@�`k@r�)r�g@��o@r�)r�g @��p@r�)�@g"@�pr@r���dtype)r-r�r�doublerr
r)r3r�rKs   r5�*test_mlab_linkage_conversion_multiple_rowszDTestMLabLinkageConversion.test_mlab_linkage_conversion_multiple_rows�s���
�Z����k�k�k�$���k�k�k�<�<�<�A�B�B���H�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�	*�
�I�
'�
'�
'��	�&�r�*�*�A�.�.�.��_�Q�'�'��,�,�,�,�,r7N)rorprqr�r�r�rrr7r5r�r��sA������-�-�-�-�-�-�-�-�-�-�-r7r�c�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TestFclusterc���tjD]}|�|d���tjD]}|�|d���tjD]}|�|d���dS�Nr
r[�maxclust)r'�fcluster_inconsistent�check_fclusterdata�fcluster_distance�fcluster_maxclust�r3�ts  r5�test_fclusterdatazTestFcluster.test_fclusterdata�s���$�:�	7�	7�A��#�#�A�~�6�6�6�6�$�6�	3�	3�A��#�#�A�z�2�2�2�2�$�6�	3�	3�A��#�#�A�z�2�2�2�2�	3�	3r7c��ttd|z��|}tj}t|||���}t	t||����dS�N�	fcluster_��	criterionr�)rJr'�Q_Xrrr)r3r�r��	expectedTrX�Ts      r5r�zTestFcluster.check_fclusterdata�sV���/��y�1H�I�I�!�L�	��#����i�1�5�5�5���
�a��+�+�,�,�,�,�,r7c���tjD]}|�|d���tjD]}|�|d���tjD]}|�|d���dSr�)r'r��check_fclusterr�r�r�s  r5�
test_fclusterzTestFcluster.test_fcluster�s���$�:�	3�	3�A�����>�2�2�2�2�$�6�	/�	/�A�����:�.�.�.�.�$�6�	/�	/�A�����:�.�.�.�.�	/�	/r7c���ttd|z��|}ttj��}t	|||���}tt
||����dSr�)rJr'rr�rrr)r3r�r�r�rKr�s      r5r�zTestFcluster.check_fcluster�s_���/��y�1H�I�I�!�L�	��&�*�+�+���Q�)�q�1�1�1���
�a��+�+�,�,�,�,�,r7c��tjD]}|�|���tjD]}|�|���dSr�)r'r��check_fcluster_monocritr�� check_fcluster_maxclust_monocritr�s  r5�test_fcluster_monocritz#TestFcluster.test_fcluster_monocrit�s^��$�6�	,�	,�A��(�(��+�+�+�+�$�6�	5�	5�A��1�1�!�4�4�4�4�	5�	5r7c���tj|}ttj��}t	||dt|�����}t
t||����dS)N�monocrit�r�r�)r'r�rr�rrrr�r3r�r�rKr�s     r5r�z$TestFcluster.check_fcluster_monocrit�sZ��'�9�!�<�	��&�*�+�+���Q��Z�(�1�+�+�F�F�F���
�a��+�+�,�,�,�,�,r7c���tj|}ttj��}t	||dt|�����}t
t||����dS)N�maxclust_monocritr�)r'r�rr�rrrrr�s     r5r�z-TestFcluster.check_fcluster_maxclust_monocrit�s[��'�9�!�<�	��&�*�+�+���Q��%8�8�A�;�;�O�O�O���
�a��+�+�,�,�,�,�,r7N)
rorprqr�r�r�r�r�r�r�rrr7r5r�r��s}������3�3�3�-�-�-�/�/�/�-�-�-�5�5�5�-�-�-�-�-�-�-�-r7r�c��eZdZd�ZdS)�TestLeadersc��tj}t|��}t|��}t	|dd���}tjgd���tjgd���f}t||��}t||��dS)Nr�rvr�)�5�7�8)r^rvr&)	r'r�r$r	rr-rrr)r3rX�YrKr��Lright�Ls       r5�test_leaders_singlezTestLeaders.test_leaders_singles}���#���!�H�H���A�J�J���Q�*��2�2�2���(�<�<�<�(�(�"�(�9�9�9�*=�*=�>���A�q�M�M���Q������r7N)rorprqr�rrr7r5r�r�s#������ � � � � r7r�c�L�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zdd�Zd
S)�TestIsIsomorphicc��gd�}gd�}tt||����tt||����dS)N�r&r&r&)r^r^r^�rr�r3�a�bs   r5�test_is_isomorphic_1z%TestIsIsomorphic.test_is_isomorphic_1�J���I�I���I�I���
�a��#�#�$�$�$��
�a��#�#�$�$�$�$�$r7c��gd�}gd�}tt||����tt||����dS)N)r&r�r&)r^rvr^r�r�s   r5�test_is_isomorphic_2z%TestIsIsomorphic.test_is_isomorphic_2r�r7c�H�g}g}tt||����dSr�r�r�s   r5�test_is_isomorphic_3z%TestIsIsomorphic.test_is_isomorphic_3s*�������
�a��#�#�$�$�$�$�$r7c��gd�}gd�}tt||����tt||����dS)Nr�)r&rvr^r�r�s   r5�test_is_isomorphic_4Az&TestIsIsomorphic.test_is_isomorphic_4A%r�r7c��gd�}gd�}tt||��dk��tt||��dk��dS)N)r&r^rvrv)r&rvr^rvFr�r�s   r5�test_is_isomorphic_4Bz&TestIsIsomorphic.test_is_isomorphic_4B,sT���L�L���L�L���
�a��#�#�u�,�-�-�-��
�a��#�#�u�,�-�-�-�-�-r7c��gd�}gd�}tt||����tt||����dS)N)r�r^rv)r,rvr^r�r�s   r5�test_is_isomorphic_4Cz&TestIsIsomorphic.test_is_isomorphic_4C3r�r7c�<�dD]}|�d|���dS)N�r^rvr�����help_is_isomorphic_randperm�r3�ncs  r5�test_is_isomorphic_5z%TestIsIsomorphic.test_is_isomorphic_5:s6���	7�	7�B��,�,�T�2�6�6�6�6�	7�	7r7c�@�dD]}|�d|dd���dS)Nr�r�Tr�r�rs  r5�test_is_isomorphic_6z%TestIsIsomorphic.test_is_isomorphic_6@s>���	@�	@�B��,�,�T�2�t�Q�?�?�?�?�	@�	@r7c�J�ttgd�gd�����dS)Nr�r�r�)r3s r5�test_is_isomorphic_7z%TestIsIsomorphic.test_is_isomorphic_7Gs+���M�)�)�)�Y�Y�Y�7�7�7�8�8�8�8�8r7Frc��td��D�]?}tjtj�|��|z��}tj|jtj���}tj�|��}td|jd��D]}	|||	||	<�|rOtj�|��}
||
d|�xxdz
cc<||
d|�xx|zcc<tt||��|k��tt||��|k����AdS)Nrvr�rr&)�ranger-�int_rarcr.�size�permutation�shaperr)r3�nobs�	nclusters�noniso�nerrors�kr�r��P�i�Qs           r5rz,TestIsIsomorphic.help_is_isomorphic_randpermKs<���q���	9�	9�A����	���t�,�,�y�8�9�9�A�����r�w�/�/�/�A��	�%�%�i�0�0�A��1�a�g�a�j�)�)�
�
����1��w��!����
-��I�)�)�$�/�/���!�A�g�I�,����1�$�����!�A�g�I�,����9�,�����M�!�Q�'�'��J�7�8�8�8��M�!�Q�'�'��J�7�8�8�8�8�	9�	9r7N)Fr)
rorprqr�r�r�r�r�r�rrrrrrr7r5r�r�s�������%�%�%�%�%�%�%�%�%�%�%�%�.�.�.�%�%�%�7�7�7�@�@�@�9�9�9�9�9�9�9�9�9r7r�c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestIsValidLinkagec�F�dD]\}}}|�|||���dS�N))r^r�F)r^rvF)r&r�T)r^r�T)�#check_is_valid_linkage_various_size�r3�nrow�ncol�valids    r5�"test_is_valid_linkage_various_sizez5TestIsValidLinkage.test_is_valid_linkage_various_size[sC��">�	H�	H��D�$���4�4�T�4��G�G�G�G�	H�	Hr7c���tjgd�gd�gtj���}|d|�d|�f}tt	|��|k��|sttt|d���dSdS�N)rr&r�r^r�)rvr^r�rvrvr�T��throw)r-r�r�rrr0r1)r3rrrrKs     r5rz6TestIsValidLinkage.check_is_valid_linkage_various_size`s����J�)�)�)�)�)�)�+�24�)�
=�
=�
=��
�e�t�e�U�d�U�l�O��� ��#�#�u�,�-�-�-��	G��*�&6���F�F�F�F�F�F�	G�	Gr7c���tjgd�gd�gt���}tt	|��dk��ttt|d���dS�N�rr&r�r^�rvr^r�rvr�FTr")r-r��intrrr0�	TypeError�r3rKs  r5�test_is_valid_linkage_int_typez1TestIsValidLinkage.test_is_valid_linkage_int_typeisg���J����&���(�/2�
4�
4�
4��� ��#�#�u�,�-�-�-��i�!1�1�D�A�A�A�A�A�Ar7c��tjdtj���}tt	|��dk��ttt|d���dS�N�rr�r�FTr")r-r.r�rrr0r1r*s  r5�test_is_valid_linkage_emptyz.TestIsValidLinkage.test_is_valid_linkage_emptypsR���H�V�2�9�-�-�-��� ��#�#�u�,�-�-�-��j�"2�A�T�B�B�B�B�B�Br7c���tddd��D]Y}tj�||dz
zdz��}t	|��}tt
|��dk���ZdS�Nr��rvr&r^T)r	r-rarcr	rr�r3rr4rKs    r5�test_is_valid_linkage_4_and_upz1TestIsValidLinkage.test_is_valid_linkage_4_and_upvsp���q�"�a���	1�	1�A��	���q�!�A�#�w��z�*�*�A���
�
�A��$�Q�'�'�4�/�0�0�0�0�	1�	1r7c�*�tddd��D]�}tj�||dz
zdz��}t	|��}d||dzdf<tt
|��dk��ttt|d	�
����dS)Nr�r2rvr&r^���rFTr"�	r	r-rarcr	rrr0r1r3s    r5�-test_is_valid_linkage_4_and_up_neg_index_leftz@TestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_index_left~����q�"�a���	G�	G�A��	���q�!�A�#�w��z�*�*�A���
�
�A��A�a��d�1�f�I��$�Q�'�'�5�0�1�1�1��*�&6���F�F�F�F�F�	G�	Gr7c�*�tddd��D]�}tj�||dz
zdz��}t	|��}d||dzdf<tt
|��dk��ttt|d�	����dS�
Nr�r2rvr&r^r6FTr"r7r3s    r5�.test_is_valid_linkage_4_and_up_neg_index_rightzATestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_index_right�r9r7c�*�tddd��D]�}tj�||dz
zdz��}t	|��}d||dzdf<tt
|��dk��ttt|d�	����dS�
Nr�r2rvr&r^g�FTr"r7r3s    r5�'test_is_valid_linkage_4_and_up_neg_distz:TestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_dist�s����q�"�a���	G�	G�A��	���q�!�A�#�w��z�*�*�A���
�
�A��A�a��d�1�f�I��$�Q�'�'�5�0�1�1�1��*�&6���F�F�F�F�F�	G�	Gr7c�*�tddd��D]�}tj�||dz
zdz��}t	|��}d||dzdf<tt
|��dk��ttt|d�	����dSr;r7r3s    r5�)test_is_valid_linkage_4_and_up_neg_countsz<TestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_counts�r9r7N)rorprqrrr+r/r4r8r<r?rArrr7r5rrZs�������H�H�H�
G�G�G�B�B�B�C�C�C�1�1�1�G�G�G�G�G�G�G�G�G�G�G�G�G�Gr7rc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestIsValidInconsistentc���tjgd�gd�gt���}tt	|��dk��ttt|d���dSr%)r-r�r(rrr0r)�r3�Rs  r5�test_is_valid_im_int_typez1TestIsValidInconsistent.test_is_valid_im_int_type�sc���J����&���(�/2�
4�
4�
4����A���%�'�(�(�(��i��a�t�<�<�<�<�<�<r7c�F�dD]\}}}|�|||���dSr)�check_is_valid_im_various_sizers    r5�test_is_valid_im_various_sizez5TestIsValidInconsistent.test_is_valid_im_various_size�sC��">�	C�	C��D�$���/�/��d�E�B�B�B�B�	C�	Cr7c���tjgd�gd�gtj���}|d|�d|�f}tt	|��|k��|sttt|d���dSdSr!)r-r�r�rrr0r1)r3rrrrFs     r5rIz6TestIsValidInconsistent.check_is_valid_im_various_size�s����J�)�)�)�)�)�)�+�24�)�
=�
=�
=��
�e�t�e�U�d�U�l�O����A���%�'�(�(�(��	B��*�k�1�D�A�A�A�A�A�A�	B�	Br7c��tjdtj���}tt	|��dk��ttt|d���dSr-)r-r.r�rrr0r1rEs  r5�test_is_valid_im_emptyz.TestIsValidInconsistent.test_is_valid_im_empty�sN���H�V�2�9�-�-�-����A���%�'�(�(�(��j�+�q��=�=�=�=�=�=r7c��tddd��D]h}tj�||dz
zdz��}t	|��}t|��}t
t|��dk���idSr1)r	r-rarcr	r
rr�r3rr4rKrFs     r5�test_is_valid_im_4_and_upz1TestIsValidInconsistent.test_is_valid_im_4_and_up�sx���q�"�a���	,�	,�A��	���q�!�A�#�w��z�*�*�A���
�
�A��Q���A��K��N�N�d�*�+�+�+�+�		,�	,r7c�H�tddd��D]�}tj�||dz
zdz��}t	|��}t|��}d||dzdf<t
t|��dk��ttt|d	�
����dS)Nr�r2rvr&r^��rFTr"�
r	r-rarcr	r
rrr0r1rOs     r5�(test_is_valid_im_4_and_up_neg_index_leftz@TestIsValidInconsistent.test_is_valid_im_4_and_up_neg_index_left�����q�"�a���	B�	B�A��	���q�!�A�#�w��z�*�*�A���
�
�A��Q���A��A�a��d�1�f�I��K��N�N�e�+�,�,�,��*�k�1�D�A�A�A�A�A�
	B�	Br7c�H�tddd��D]�}tj�||dz
zdz��}t	|��}t|��}d||dzdf<t
t|��dk��ttt|d�	����dS)
Nr�r2rvr&r^rRFTr"rSrOs     r5�)test_is_valid_im_4_and_up_neg_index_rightzATestIsValidInconsistent.test_is_valid_im_4_and_up_neg_index_right�rUr7c�H�tddd��D]�}tj�||dz
zdz��}t	|��}t|��}d||dzdf<t
t|��dk��ttt|d�	����dSr>rSrOs     r5�"test_is_valid_im_4_and_up_neg_distz:TestIsValidInconsistent.test_is_valid_im_4_and_up_neg_dist�rUr7N)rorprqrGrJrIrMrPrTrWrYrrr7r5rCrC�s�������=�=�=�C�C�C�
B�B�B�>�>�>�,�,�,�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	Br7rCc�&�eZdZd�Zd�Zd�Zd�ZdS)�TestNumObsLinkagec�|�tjdtj���}ttt
|��dS�Nr.r�)r-r.r�r0r1rr*s  r5�test_num_obs_linkage_emptyz,TestNumObsLinkage.test_num_obs_linkage_empty�s0���H�V�2�9�-�-�-���j�/�1�5�5�5�5�5r7c��tjgd�gtj���}tt	|��d��dS)Nr&r�r^�r-r�r�rrr*s  r5�test_num_obs_linkage_1x4z*TestNumObsLinkage.test_num_obs_linkage_1x4�s=���J����'�r�y�9�9�9���_�Q�'�'��+�+�+�+�+r7c��tjgd�gd�gtj���}tt	|��d��dS)Nr&r'r�rvr`r*s  r5�test_num_obs_linkage_2x4z*TestNumObsLinkage.test_num_obs_linkage_2x4�sM���J����&���(�/1�y�
:�
:�
:���_�Q�'�'��+�+�+�+�+r7c���tddd��D]V}tj�||dz
zdz��}t	|��}tt
|��|���WdS)Nr�r2rvr&r^)r	r-rarcr	rrr3s    r5�test_num_obs_linkage_4_and_upz/TestNumObsLinkage.test_num_obs_linkage_4_and_up�sl���q�"�a���	0�	0�A��	���q�!�A�#�w��z�*�*�A���
�
�A����+�+�Q�/�/�/�/�	0�	0r7N)rorprqr^rarcrerrr7r5r[r[�sP������6�6�6�
,�,�,�
,�,�,�0�0�0�0�0r7r[c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestLeavesListc��tjgd�gtj���}t|��t	t|��ddg��dS)Nr&r�rr&�r-r�r�rrrr*s  r5�test_leaves_list_1x4z#TestLeavesList.test_leaves_list_1x4	sJ���J����'�r�y�9�9�9����
�
�
��[��^�^�a��V�,�,�,�,�,r7c��tjgd�gd�gtj���}t|��t	t|��gd���dS)Nr&r'r�)rr&r^rir*s  r5�test_leaves_list_2x4z#TestLeavesList.test_leaves_list_2x4sZ���J����&���(�/1�y�
:�
:�
:����
�
�
��[��^�^�Y�Y�Y�/�/�/�/�/r7c�:�dD]}|�|���dSry)�check_leaves_list_Qr@s  r5�test_leaves_list_Qz!TestLeavesList.test_leaves_list_Qs4��)�	-�	-�F��$�$�V�,�,�,�,�	-�	-r7c��tj}t||��}t|��}t	|���t
|����dSr�)r'r�r	rr�	pre_orderr)r3rArXrK�nodes     r5rnz"TestLeavesList.check_leaves_list_QsJ���#���A�v�����q�z�z���T�^�^�%�%�{�1�~�~�6�6�6�6�6r7c�6�tj}t|d��}t|��}t	|���|������|������z��dS)Nr)r'r�r	rrrq�get_left�	get_right)r3rXrKrrs    r5�test_Q_subtree_pre_orderz'TestLeavesList.test_Q_subtree_pre_order"s����#���A�x� � ���q�z�z���T�^�^�%�%��
�
���(A�(A�(C�(C�*.�.�.�*:�*:�*D�*D�*F�*F�)G�	I�	I�	I�	I�	Ir7N)rorprqrjrlrornrvrrr7r5rgrgsd������-�-�-�0�0�0�-�-�-�
7�7�7�I�I�I�I�Ir7rgc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestCorrespondc��tjd��}tjd��}ttt||��dS)Nr9r.)r-r.r0r1r)r3r4rKs   r5�test_correspond_emptyz$TestCorrespond.test_correspond_empty,s6���H�T�N�N���H�U�O�O���j�*�a��3�3�3�3�3r7c��tdd��D]V}tj�||dz
zdz��}t	|��}tt
||�����Wtddd��D]V}tj�||dz
zdz��}t	|��}tt
||�����WdS)Nr^r�r&r2rv)r	r-rarcr	rrr3s    r5�test_correspond_2_and_upz'TestCorrespond.test_correspond_2_and_up2s����q�!���	&�	&�A��	���q�!�A�#�w��z�*�*�A���
�
�A��J�q�!�$�$�%�%�%�%��q�"�a���	&�	&�A��	���q�!�A�#�w��z�*�*�A���
�
�A��J�q�!�$�$�%�%�%�%�	&�	&r7c��ttttdd����ttdd��������ttttdd����ttdd��������zD]�\}}tj�||dz
zdz��}tj�||dz
zdz��}t
|��}t
|��}tt||��d��tt||��d����dS)Nr^r�rvr�r&F�	�list�zipr	r-rarcr	rr�r3r�jr4�y2rK�Z2s       r5�test_correspond_4_and_upz'TestCorrespond.test_correspond_4_and_up>s���C��U�1�a�[�[� 1� 1�4��a����3D�3D�E�E�F�F��C��U�1�a�[�[� 1� 1�4��a����3D�3D�E�E�F�F�G�	3�	3�F�Q���	���q�!�A�#�w��z�*�*�A������1�Q�3���
�+�+�B���
�
�A�����B���A�r�*�*�E�2�2�2���B��*�*�E�2�2�2�2�	3�	3r7c��ttttdd����ttdd��������ttttdd����ttdd��������zD]�\}}tj�||dz
zdz��}tj�||dz
zdz��}t
|��}t
|��}tt||��d��tt||��d����dS)Nr^r���r&Fr~r�s       r5�test_correspond_4_and_up_2z)TestCorrespond.test_correspond_4_and_up_2Js���C��U�1�a�[�[� 1� 1�4��b�"�
�
�3F�3F�G�G�H�H��C��U�1�a�[�[� 1� 1�4��b�"�
�
�3F�3F�G�G�H�H�I�	3�	3�F�Q���	���q�!�A�#�w��z�*�*�A������1�Q�3���
�+�+�B���
�
�A�����B���A�r�*�*�E�2�2�2���B��*�*�E�2�2�2�2�	3�	3r7c���tdd��D]]}tj�|d��}t	|��}t|��}t
t|��|���^dS)Nr^r�r�)r	r-rarcr$r	rr)r3rfrXr�rKs     r5�!test_num_obs_linkage_multi_matrixz0TestCorrespond.test_num_obs_linkage_multi_matrixVsi���q�"���	0�	0�A��	���q�!�$�$�A��a���A���
�
�A����+�+�Q�/�/�/�/�		0�	0r7N)rorprqrzr|r�r�r�rrr7r5rxrx+s_������4�4�4�
&�
&�
&�
3�
3�
3�
3�
3�
3�0�0�0�0�0r7rxc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestIsMonotonicc�d�tjd��}ttt|��dS)Nr.)r-r.r0r1rr*s  r5�test_is_monotonic_emptyz'TestIsMonotonic.test_is_monotonic_empty`s)���H�V�����j�,��2�2�2�2�2r7c��tjgd�gtj���}tt	|��d��dS)N�rr&�333333�?r^r�T�r-r�r�rrr*s  r5�test_is_monotonic_1x4z%TestIsMonotonic.test_is_monotonic_1x4es;���J����'�r�y�9�9�9���\�!�_�_�d�+�+�+�+�+r7c��tjgd�gd�gtj���}tt	|��d��dS)Nr�)r^rv皙�����?rvr�Tr�r*s  r5�test_is_monotonic_2x4_Tz'TestIsMonotonic.test_is_monotonic_2x4_TjsK���J����&���(�/1�y�
:�
:�
:���\�!�_�_�d�+�+�+�+�+r7c��tjgd�gd�gtj���}tt	|��d��dS)N)rr&r�r^)r^rvr�rvr�Fr�r*s  r5�test_is_monotonic_2x4_Fz'TestIsMonotonic.test_is_monotonic_2x4_FpsK���J����&���(�/1�y�
:�
:�
:���\�!�_�_�e�,�,�,�,�,r7c��tjgd�gd�gd�gtj���}tt	|��d��dS)Nr��r^rvr�r^�r�r�g333333�?r�r�Tr�r*s  r5�test_is_monotonic_3x4_Tz'TestIsMonotonic.test_is_monotonic_3x4_TvsT���J����&���&���(�/1�y�
:�
:�
:��	�\�!�_�_�d�+�+�+�+�+r7c��tjgd�gd�gd�gtj���}tt	|��d��dS)Nr�)r^rv皙�����?r^r�r�Fr�r*s  r5�test_is_monotonic_3x4_F1z(TestIsMonotonic.test_is_monotonic_3x4_F1}�T���J����&���&���(�/1�y�
:�
:�
:��	�\�!�_�_�e�,�,�,�,�,r7c��tjgd�gd�gd�gtj���}tt	|��d��dS)N)rr&g�������?r^r�r�r�Fr�r*s  r5�test_is_monotonic_3x4_F2z(TestIsMonotonic.test_is_monotonic_3x4_F2�r�r7c��tjgd�gd�gd�gtj���}tt	|��d��dS)Nr�r�)r�r�r�r�r�Fr�r*s  r5�test_is_monotonic_3x4_F3z(TestIsMonotonic.test_is_monotonic_3x4_F3�r�r7c�t�ttjd��}tt	|��d��dS�NrT�r	r'rIrrr*s  r5� test_is_monotonic_tdist_linkage1z0TestIsMonotonic.test_is_monotonic_tdist_linkage1�s3��
�'�.��9�9���\�!�_�_�d�+�+�+�+�+r7c�~�ttjd��}d|d<tt	|��d��dS)Nrr�)r^r^Fr�r*s  r5� test_is_monotonic_tdist_linkage2z0TestIsMonotonic.test_is_monotonic_tdist_linkage2�s<��
�'�.��9�9����#���\�!�_�_�e�,�,�,�,�,r7c�x�tj}t|d��}tt	|��d��dSr�)r'r�r	rr)r3rXrKs   r5�test_is_monotonic_Q_linkagez+TestIsMonotonic.test_is_monotonic_Q_linkage�s7��
 �#���A�x� � ���\�!�_�_�d�+�+�+�+�+r7N)rorprqr�r�r�r�r�r�r�r�r�r�r�rrr7r5r�r�_s�������3�3�3�
,�,�,�
,�,�,�-�-�-�,�,�,�-�-�-�-�-�-�-�-�-�,�,�,�-�-�-�,�,�,�,�,r7r�c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestMaxDistsc�|�tjdtj���}ttt
|��dSr])r-r.r�r0r1rr*s  r5�test_maxdists_empty_linkagez(TestMaxDists.test_maxdists_empty_linkage�s0���H�V�2�9�-�-�-���j�(�A�.�.�.�.�.r7c��tjgd�gtj���}t|��}t	|��}t||d���dS)N�rr&r�r�r�r_rF)r-r�r�r�calculate_maximum_distancesr)r3rK�MD�
expectedMDs    r5�!test_maxdists_one_cluster_linkagez.TestMaxDists.test_maxdists_one_cluster_linkage�sR���J����'�r�y�9�9�9��
�a�[�[��0��3�3�
���J�U�3�3�3�3�3�3r7c�:�dD]}|�|���dS�N�rr<rPrNrO)�check_maxdists_Q_linkager@s  r5�test_maxdists_Q_linkagez$TestMaxDists.test_maxdists_Q_linkage�s2��J�	2�	2�F��)�)�&�1�1�1�1�	2�	2r7c��tj}t||��}t|��}t	|��}t||d���dS�Nr_rF)r'r�r	rr�r)r3rArXrKr�r�s      r5r�z%TestMaxDists.check_maxdists_Q_linkage�sL���#���A�v����
�a�[�[��0��3�3�
���J�U�3�3�3�3�3�3r7N)rorprqr�r�r�r�rrr7r5r�r��sP������/�/�/�
4�4�4�2�2�2�4�4�4�4�4r7r�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestMaxInconstsc��tjdtj���}tjdtj���}ttt
||��dSr])r-r.r�r0r1r�r3rKrFs   r5�test_maxinconsts_empty_linkagez.TestMaxInconsts.test_maxinconsts_empty_linkage�sH���H�V�2�9�-�-�-���H�V�2�9�-�-�-���j�+�q�!�4�4�4�4�4r7c���tjgd�gtj���}tj�dd��}ttt||��dS�Nr�r�r^r�)r-r�r�rarcr0r1rr�s   r5�test_maxinconsts_difrow_linkagez/TestMaxInconsts.test_maxinconsts_difrow_linkage�sP��
�J����'�r�y�9�9�9���I�N�N�1�a� � ���j�+�q�!�4�4�4�4�4r7c��tjgd�gtj���}tjgd�gtj���}t||��}t	||��}t||d���dS)Nr�r��rrrr�r_rF)r-r�r�r�!calculate_maximum_inconsistenciesr)r3rKrFr�r�s     r5�$test_maxinconsts_one_cluster_linkagez4TestMaxInconsts.test_maxinconsts_one_cluster_linkage�su���J����'�r�y�9�9�9���J����'�r�y�9�9�9��
��A�
�
��6�q�!�<�<�
���J�U�3�3�3�3�3�3r7c�:�dD]}|�|���dSr�)�check_maxinconsts_Q_linkager@s  r5�test_maxinconsts_Q_linkagez*TestMaxInconsts.test_maxinconsts_Q_linkage�s2��J�	5�	5�F��,�,�V�4�4�4�4�	5�	5r7c��tj}t||��}t|��}t	||��}t||��}t
||d���dSr�)r'r�r	r
rr�r)r3rArXrKrFr�r�s       r5r�z+TestMaxInconsts.check_maxinconsts_Q_linkage�s]���#���A�v������O�O��
��A�
�
��6�q�!�<�<�
���J�U�3�3�3�3�3�3r7N)rorprqr�r�r�r�r�rrr7r5r�r��s_������5�5�5�5�5�5�4�4�4�5�5�5�4�4�4�4�4r7r�c�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�TestMaxRStatc�:�dD]}|�|���dS)N)gffffff
@r}r�)�check_maxRstat_invalid_index�r3rs  r5�test_maxRstat_invalid_indexz(TestMaxRStat.test_maxRstat_invalid_index�s2���	1�	1�A��-�-�a�0�0�0�0�	1�	1r7c�4�tjgd�gtj���}tjgd�gtj���}t|t��rttt|||��dSttt|||��dS)Nr�r�r�)	r-r�r��
isinstancer(r0r1rr)�r3rrKrFs    r5r�z)TestMaxRStat.check_maxRstat_invalid_index�s����J����'�r�y�9�9�9���J����'�r�y�9�9�9���a����	8��*�h��1�a�8�8�8�8�8��)�X�q�!�Q�7�7�7�7�7r7c�T�td��D]}|�|���dS�Nr�)r	�check_maxRstat_empty_linkager�s  r5�test_maxRstat_empty_linkagez(TestMaxRStat.test_maxRstat_empty_linkage�s8���q���	1�	1�A��-�-�a�0�0�0�0�	1�	1r7c��tjdtj���}tjdtj���}ttt
|||��dSr])r-r.r�r0r1rr�s    r5r�z)TestMaxRStat.check_maxRstat_empty_linkage�sJ���H�V�2�9�-�-�-���H�V�2�9�-�-�-���j�(�A�q�!�4�4�4�4�4r7c�T�td��D]}|�|���dSr�)r	�check_maxRstat_difrow_linkager�s  r5�test_maxRstat_difrow_linkagez)TestMaxRStat.test_maxRstat_difrow_linkage�s8���q���	2�	2�A��.�.�q�1�1�1�1�	2�	2r7c���tjgd�gtj���}tj�dd��}ttt|||��dSr�)r-r�r�rarcr0r1rr�s    r5r�z*TestMaxRStat.check_maxRstat_difrow_linkagesR��
�J����'�r�y�9�9�9���I�N�N�1�a� � ���j�(�A�q�!�4�4�4�4�4r7c�T�td��D]}|�|���dSr�)r	�"check_maxRstat_one_cluster_linkager�s  r5�!test_maxRstat_one_cluster_linkagez.TestMaxRStat.test_maxRstat_one_cluster_linkages8���q���	7�	7�A��3�3�A�6�6�6�6�	7�	7r7c��tjgd�gtj���}tjgd�gtj���}t||d��}t	||d��}t||d���dS)Nr�r�r�r&r_rF)r-r�r�rr�r)r3rrKrFr�r�s      r5r�z/TestMaxRStat.check_maxRstat_one_cluster_linkagesy���J����'�r�y�9�9�9���J����'�r�y�9�9�9��
�a��A�
�
��6�q�!�Q�?�?�
���J�U�3�3�3�3�3�3r7c�`�dD]*}td��D]}|�||����+dS)Nr�r�)r	�check_maxRstat_Q_linkage)r3rArs   r5�test_maxRstat_Q_linkagez$TestMaxRStat.test_maxRstat_Q_linkagesN��J�	9�	9�F��1�X�X�
9�
9���-�-�f�a�8�8�8�8�
9�	9�	9r7c���tj}t||��}t|��}t	||d��}t||d��}t
||d���dS)Nr&r_rF)r'r�r	r
rr�r)r3rArrXrKrFr�r�s        r5r�z%TestMaxRStat.check_maxRstat_Q_linkagesa���#���A�v������O�O��
�a��A�
�
��6�q�!�Q�?�?�
���J�U�3�3�3�3�3�3r7N)
rorprqr�r�r�r�r�r�r�r�r�r�rrr7r5r�r��s�������1�1�1�8�8�8�1�1�1�5�5�5�2�2�2�5�5�5�7�7�7�4�4�4�9�9�9�
4�4�4�4�4r7r�c��eZdZd�Zd�Zd�Zej�e	d���d���Z
ej�e	d���d���Zd�Zej�e	d���d	���Z
d
�Zd�Zd�Zd
S)�TestDendrogramc��ttjd��}t|d���}|d}t	|gd���dS)NrT��no_plot�leaves�r^r�r&rrvr�)r	r'rIrr)r3rKrFr�s    r5�$test_dendrogram_single_linkage_tdistz3TestDendrogram.test_dendrogram_single_linkage_tdist$sM���'�.��9�9���q�$�'�'�'���8����V�/�/�/�0�0�0�0�0r7c�t�ttjd��}ttt
|d���dS)Nr�foo��orientation)r	r'rIr0r1rr*s  r5�test_valid_orientationz%TestDendrogram.test_valid_orientation+s2���'�.��9�9���j�*�a�U�C�C�C�C�C�Cr7c���ttjd��}tjgd���}t||d���}t||���d���}||ksJ�dS)Nr)r&rvr^r,r�r�T)�labelsr�)r	r'rIr-rr�tolist)r3rKr��result1�result2s     r5�test_labels_as_array_or_listz+TestDendrogram.test_labels_as_array_or_list/sr���'�.��9�9����,�,�,�-�-���Q�v�t�<�<�<���Q�v�}�}����E�E�E���'�!�!�!�!�!�!r7z
no matplotlib)�reasonc	��tjgd�gd�gd�g��}tj��t	jt��5}t|ttd�������ddd��n#1swxYwYdt|j��vsJ�t	jtd���5t|g���ddd��n#1swxYwYtj��dS)N)rr&r�r�)r^rvr�r�)r�r�r�r,�d)r�z.Dimensions of Z and labels must be consistent.)�match)
r-r�plt�figure�pytestrr1rrr	�str�value�close)r3�link�exc_infos   r5�test_valid_label_sizez$TestDendrogram.test_valid_label_size7s~���x��N�N��N�N��N�N�
����
	�
����
�]�:�
&�
&�	6�(��t�D��s���$4�$4�5�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�?��h�n�%�%�&�&�&�&��]��F�H�H�H�	(�	(�
�t�B�'�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
	�	�����s$�
,B�B�	B�C�C"�%C"c�:�dD]}|�|���dS)N)�top�bottom�left�right)�check_dendrogram_plot)r3r�s  r5�test_dendrogram_plotz#TestDendrogram.test_dendrogram_plotKs2��=�	4�	4�K��&�&�{�3�3�3�3�	4�	4r7c��ttjd��}gd�gd�gd�gd�gd�gd�ggd�gd	�gd
�gd�gd�ggd
�gd�gd�d�}tj��}|�d��}t
|||���}t||��t
|||dd���|dvr|���dn|�	��d}t|�
��d��t|���d��t
|||d���|dvr|���dn|�	��d}t|�
��d��t
|||d���|dvr|���dn|�	��d}t|���d��tj��t
||���}tj��t||��dS)Nr)�C1�C0rrr�r�r�r�r�)r�r�r�r�)r�r�r�r��r�r�r�r��r�r�r�r��r�r��.@r)��F@r��K@r)��A@r�I@r)�9@r�@E@r)�$@r��@@r)�2�5�1�0�3�4r�)rrrrrr��
color_list�dcoord�icoord�ivlr��leaves_color_list��)�axr�r]�Z)r-r��leaf_font_size�
leaf_rotation)r
rr)r-r�r0)r-r�r/r�)
r	r'rIrr�add_subplotrr�get_xticklabels�get_yticklabels�get_rotation�get_sizer)	r3r�rK�expected�figr-�R1�	testlabel�R2s	         r5rz$TestDendrogram.check_dendrogram_plotPs����'�.��9�9��"@�"@�"@�7�7�7�7�7�7�9�9�9�9�9�9�;�;�;�	=�
 6�5�5�7�7�7�7�7�7�7�7�7�9�9�9�	;�
:�9�9�0�0�0�)M�)M�)M���� �j�l�l��
�_�_�S�
!�
!����b�k�
:�
:�
:���R��"�"�"�	�1���"$�B�	8�	8�	8�	8��/�/�/�
��� � ��#�#��#�#�%�%�a�(�	�
	�Y�+�+�-�-�r�2�2�2��Y�'�'�)�)�2�.�.�.��1���!#�	%�	%�	%�	%��/�/�/�
��� � ��#�#��#�#�%�%�a�(�	�
	�Y�+�+�-�-�r�2�2�2��1���"$�	&�	&�	&�	&��/�/�/�
��� � ��#�#��#�#�%�%�a�(�	�
	�Y�'�'�)�)�2�.�.�.��	������{�
3�
3�
3���	�����R��"�"�"�"�"r7c
��ttjd��}t|ddd���}t	j��t
|dggd�ggd�gd	d
gddgddgd
���t|ddd���}t	j��t
|gd�gd�gd�gd�gd�ggd�gd�gd�gd�ggd�gd�gd�d
���dS)Nrr^�lastpT)�show_contractedr)r�r�r�r�r�(2)z(4)r,r�r&�mtica)rrrrr)r�r�r�r�rr)rrrr)rr�D@r@)rr�@@@rA)r r!r"r#r>)r^r�r&rr�)rrrrr)r	r'rIrrrrr�s   r5�test_dendrogram_truncate_modez,TestDendrogram.test_dendrogram_truncate_mode�sI���'�.��9�9���q�!�W�d�;�;�;���	�����Q��v�$<�$<�$<�#=�$:�$:�$:�#;�!&���$%�q�6�/3�T�l���	�	�	�
�q�!�W�d�;�;�;���	�����Q�'?�'?�'?�$<�$<�$<�$<�$<�$<�$>�$>�$>�$@�$@�$@�$B�%;�$:�$:�$<�$<�$<�$<�$<�$<�$<�$<�$<�$>�!<� ;� ;�#2�?�?�.L�.L�.L���	�	�	�	�	r7c��ttjd��}tgd���t	|ddd���}tgd���|d}t|gd	���td��dS)
Nr)r��mr4rT�g�)r��above_threshold_color�color_threshold)rE�rr�rDr4rr')r�rDrErErE)r	r'rIrrr)r3rKrFr's    r5�test_dendrogram_colorsz%TestDendrogram.test_dendrogram_colors�s����'�.��9�9���3�3�3�4�4�4��q�$�-0�#�
G�
G�
G���=�=�=�>�>�>��|�_�
��Z�!:�!:�!:�;�;�;�	�t�$�$�$�$�$r7c	���tjgd�gd�gd�gd�gd�gd�g��}t|d��}t|d���}gd�}|d	}t	||��dS)
N�r&rr�rrr&�rr^r�rr&rrTr��rrrr�C2rQr+�r-rr	rr�r3�x�zrg�
exp_colors�colorss      r5�%test_dendrogram_leaf_colors_zero_distz4TestDendrogram.test_dendrogram_leaf_colors_zero_dist�s���
�H�i�i�i��i�i��i�i��i�i��i�i��i�i�!�
"�
"��
�A�x� � ���q�$�'�'�'��9�9�9�
��&�'���V�Z�(�(�(�(�(r7c	���tjgd�gd�gd�gd�gd�gd�g��}t|d��}t|d���}gd	�}|d
}t	||��dS)NrL)rrg�������?rNrMrOrTr�rPr+rRrSs      r5�test_dendrogram_leaf_colorsz*TestDendrogram.test_dendrogram_leaf_colors�s���
�H�i�i�i�!�k�k��i�i��i�i��i�i��i�i�!�
"�
"��
�A�x� � ���q�$�'�'�'��9�9�9�
��&�'���V�Z�(�(�(�(�(r7N)rorprqr�r�r�r�mark�skipif�have_matplotlibrrrrBrJrXrZrrr7r5r�r�#s ������1�1�1�D�D�D�"�"�"��[���O�+�O��D�D���E�D��&�[���O�+�O��D�D�4�4�E�D�4�:#�:#�:#�x�[���O�+�O��D�D���E�D��:
%�
%�
%�
)�
)�
)�
)�
)�
)�
)�
)r7r�c��|jddz}tj|dz
f��}tjd��}td|dz
��D]�}d|dd�<||df}||df}||kr|t	|��|z
|d<||kr|t	|��|z
|d<||df|d<|���||<��|S�Nrr&�rvr�r^�r
r-r.r	r(�max)rKrf�B�qrrr
s       r5r�r������	���
�Q��A�
��!�A�#����A�
�����A�
�1�a�!�e�_�_�	�	����!�!�!����A��w���!�Q�$����1�9�9��S��Y�Y��]�#�A�a�D��A�:�:��S��Z�Z�!�^�$�A�a�D���A��w��!���u�u�w�w��!����Hr7rvc��|jddz}tj|dz
f��}tjd��}td|dz
��D]�}d|dd�<||df}||df}||kr|t	|��|z
|d<||kr|t	|��|z
|d<|||f|d<|���||<��|Sr_ra)	rKrFrrfrcrdrrr
s	         r5r�r��rer7c�\�tj||z
�����|kSr�)r-�absrb)r�r��tols   r5�
within_tolrj�s%��
�6�!�a�%�=�=������$�$r7c�H�tttddgddgg��dS)Nrr&)rrr	rrr7r5�<test_unsupported_uncondensed_distance_matrix_linkage_warningrls'�����A�q�6�A�q�6�*:�;�;�;�;�;r7c��tjjjD]&}t	t
tddgddgg|d����'dS)Nr&�	cityblock�rArW)rY�cluster�	hierarchy�_EUCLIDEAN_METHODSr0r1r	r~s r5�"test_euclidean_linkage_value_errorrssW���-�)�<�9�9���j�'�Q��F�Q��F�+;�#�K�	9�	9�	9�	9�	9�9�9r7c�|�tdgdd���}tddgddggdd���}t||��dS)Nr&rrVror)r	r)�Z1r�s  r5�test_2x2_linkagerv
sO��	�!��X�k�	:�	:�	:�B�	�1�a�&�1�a�&�!�(�;�	G�	G�	G�B��B������r7c��tj�d��d}tj�|d��}tjj�|��}t|��}t||�
��k��t|���|�
��k��t|���|���k��t|���|�
��k��dS)N��2r�)r-ra�seed�randnrYrprqrPrrrtru)rrXrK�trees    r5�test_node_comparer}s����I�N�N�2����
�D�
�	����a� � �A�
�
��$�$�Q�'�'�A��1�:�:�D��D�4�=�=�?�?�"�#�#�#��D�N�N���t�}�}���.�/�/�/��D�N�N������ 0� 0�0�1�1�1��D�N�N����
�
���/�0�0�0�0�0r7c	���tj�d��d}tj�|d��}tjj�|��}t|��}t|dd�dftj
|����t|dd�dftj|����t|�d��tj
|dz
dd����t|dd�dgft|d�	����t|dd�dd
gft|ddg�	����t|dd�d
dgft|ddg�	����t|��}tjd�|D����}t|dd�tj|dg��ft|d�
����t|dd�tj|ddg��ft|ddg�
����t|dd�tj|ddg��ft|ddg�
����dS)Nrxryr�rr}r&���r�)�
n_clustersi����r�c��g|]	}|j��
Srr)�dist)�.0rrs  r5�
<listcomp>z!test_cut_tree.<locals>.<listcomp>,s��4�4�4�d��	�4�4�4r7)�height)r-rarzr{rYrprqrPrr�aranger.rbr!r�searchsorted)rrXrK�cutree�nodes�heightss      r5�
test_cut_treer�sW���I�N�N�2����
�D�
�	����a� � �A�
�
��$�$�Q�'�'�A�
�a�[�[�F������1���r�y����/�/�/������2��������/�/�/�����A����	�$��(�B�� ;� ;�<�<�<������B�4���(�1��";�";�";�<�<�<������B��9��%�x��q�"�g�'F�'F�'F�G�G�G������C��9��%�x��r�1�g�'F�'F�'F�G�G�G���"�"�E��h�4�4�e�4�4�4�5�5�G������2�?�7�Q�C�8�8�8�9��!�A�&�&�&�(�(�(������2�?�7�Q��G�<�<�<�=��!�Q��G�,�,�,�.�.�.������2�?�7�R��G�<�<�<�=��!�R��G�,�,�,�.�.�.�.�.r7c�D�tttj��tj��}tj}t||d���tttjd��tj��}tj}t||d���dS)NrErFrPrU)r r	r'rIrmrrX�linkage_X_ward_olo)rKrLs  r5rnrn6s����g�&9�&@�A�A�1�8�	:�	:�A�#�=�I��A�y�u�-�-�-�-�	�g�&9�&;�V�D�D�1�3�	5�	5�A�#�6�I��A�y�u�-�-�-�-�-�-r7c���tjgd���}t|��}|���}t	|dd��t	|dd��|���|���}t	|dd��t	|dd��|�dd��|���}t	|dd	��t	|dd
��|���|���|�dd��|���}t	|dd��t	|dd��|���|���}t	|dd��t	|dd��dS)
N)r^r}r���rv�keyrvrr�r&r}g@r^rr�r�)r-rr%�get_minr�
remove_min�change_value)�values�heap�pairs   r5�	test_Heapr�Ds���
�X�)�)�)�
*�
*�F���<�<�D��<�<�>�>�D���e��a� � � ���g���%�%�%��O�O�����<�<�>�>�D���e��a� � � ���g���#�#�#����a������<�<�>�>�D���e��a� � � ���g���"�"�"��O�O�����O�O�������a������<�<�>�>�D���e��a� � � ���g���"�"�"��O�O�����<�<�>�>�D���e��a� � � ���g���#�#�#�#�#r7r`)Q�numpyr-�
numpy.testingrrrrrrr0�scipy.cluster.hierarchyrYrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#�scipy.spatial.distancer$�scipy.cluster._hierarchyr%�r'�
matplotlib�use�matplotlib.pyplot�pyplotrr]�	Exceptionr*rtr�r�r�r�r�r�rrCr[rgrxr�r�r�r�r�r�r�rjrlrsrvr}r�rnr�rrr7r5�<module>r�s���D����N�N�N�N�N�N�N�N�N�N�N�N�
�
�
�
�*�*�*�*�*�*�����7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�)�(�(�(�(�(�)�)�)�)�)�)�!�!�!�!�!�!�
������J�N�5����#�#�#�#�#�#��O�O�������O�O�O�����42�42�42�42�42�42�42�42�n2�2�2�2�2�2�2�2�:H�H�H�H�H�H�H�H�2�2�2�2�2�2�2�2�(-�-�-�-�-�-�-�-�8/-�/-�/-�/-�/-�/-�/-�/-�d	 �	 �	 �	 �	 �	 �	 �	 �G9�G9�G9�G9�G9�G9�G9�G9�TJG�JG�JG�JG�JG�JG�JG�JG�ZDB�DB�DB�DB�DB�DB�DB�DB�N0�0�0�0�0�0�0�0�4 I� I� I� I� I� I� I� I�F10�10�10�10�10�10�10�10�hE,�E,�E,�E,�E,�E,�E,�E,�P4�4�4�4�4�4�4�4�4!4�!4�!4�!4�!4�!4�!4�!4�H;4�;4�;4�;4�;4�;4�;4�;4�|r)�r)�r)�r)�r)�r)�r)�r)�j
�
�
�$
�
�
�
�$%�%�%�<�<�<�9�9�9����	1�	1�	1�.�.�.�4.�.�.�$�$�$�$�$s�.B�B�B

Youez - 2016 - github.com/yon3zu
LinuXploit