§
    ¢éUgµÅ  ã                   óh  — d dl Zd dlmZmZmZmZ d dlZd dlmZ	 d dl
Zd dl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0 d	d
l1m2Z2 	 d dl3Z3 e3j4        d¦  «         d dl5m6Z7 dZ8n# e9$ r dZ8Y nw xY we-ej:         ;                    d¦  «        gZ<ej:        j=        Z= G d„ d¦  «        Z> e=d¬¦  «         G d„ d¦  «        ¦   «         Z? e=d¬¦  «         G d„ d¦  «        ¦   «         Z@ e=d¬¦  «         G d„ d¦  «        ¦   «         ZA G d„ d¦  «        ZB e=d¬¦  «         G d„ d¦  «        ¦   «         ZC e=d¬¦  «         G d„ d¦  «        ¦   «         ZD e=ddg¬¦  «         G d „ d!¦  «        ¦   «         ZE e=d¬¦  «         G d"„ d#¦  «        ¦   «         ZF e=d¬¦  «         G d$„ d%¦  «        ¦   «         ZG G d&„ d'¦  «        ZH e=d¬¦  «         G d(„ d)¦  «        ¦   «         ZI e=d¬¦  «         G d*„ d+¦  «        ¦   «         ZJ e=d¬¦  «         G d,„ d-¦  «        ¦   «         ZK e=d¬¦  «         G d.„ d/¦  «        ¦   «         ZL G d0„ d1¦  «        ZM G d2„ d3¦  «        ZN e=d¬¦  «         G d4„ d5¦  «        ¦   «         ZOd6„ ZPd7efd8„ZQ e=d¬¦  «        d9„ ¦   «         ZRd:„ ZS e=d¬¦  «        d;„ ¦   «         ZT e=d¬¦  «        d<„ ¦   «         ZU e=dd=g¬¦  «        d>„ ¦   «         ZV e=d¬¦  «        d?„ ¦   «         ZW e=dd@g¬¦  «        dA„ ¦   «         ZXdS )Bé    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)Úarray_api_compatible)Úxp_assert_closeÚxp_assert_equalé   )Úhierarchy_test_dataÚAggTFÚskip_xp_backendsc                   ó  — e Zd Z ed¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         Zd„ Z ed¬¦  «        d„ ¦   «         Zd„ Z	 ed¬¦  «        d	„ ¦   «         Z
 ed¬¦  «        d
„ ¦   «         ZdS )ÚTestLinkageT©Úcpu_onlyc                 ó€   — |                      |j        gdgdz  z   ¦  «        }t          t          t          |¦  «         d S )Nç        é   )ÚasarrayÚnanÚassert_raisesÚ
ValueErrorr	   ©ÚselfÚxpÚys      úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/cluster/tests/test_hierarchy.pyÚ3test_linkage_non_finite_elements_in_distance_matrixz?TestLinkage.test_linkage_non_finite_elements_in_distance_matrixK   s<   € ð �JŠJ˜œ�x 3 %¨¡'Ñ)Ñ*Ô*ˆÝ•j¥'¨1Ñ-Ô-Ð-Ð-Ð-ó    c                 óf   — |                      d¦  «        }t          t          t          |¦  «         d S )N©r   )Úzerosr6   r7   r	   r8   s      r<   Ú"test_linkage_empty_distance_matrixz.TestLinkage.test_linkage_empty_distance_matrixR   s+   € ð �HŠH�T‰NŒNˆÝ•j¥'¨1Ñ-Ô-Ð-Ð-Ð-r>   c                 ó<   — dD ]}|                       ||¦  «         Œd S )N)r   ÚcompleteÚaverageÚweighted)Úcheck_linkage_tdist©r9   r:   Úmethods      r<   Útest_linkage_tdistzTestLinkage.test_linkage_tdistX   s4   € àCð 	1ð 	1ˆFØ×$Ò$ V¨RÑ0Ô0Ð0Ð0ð	1ð 	1r>   c                 óÚ   — t          |                     t          j        ¦  «        |¦  «        }t	          t          d|z   ¦  «        }t          ||                     |¦  «        d¬¦  «         d S )NÚlinkage_ytdist_ç»½×Ùß|Û=©Úatol©r	   r4   r*   ÚytdistÚgetattrr'   )r9   rI   r:   ÚZÚ	expectedZs        r<   rG   zTestLinkage.check_linkage_tdist]   s^   € å�B—J’JÕ2Ô9Ñ:Ô:¸FÑCÔCˆÝÕ/Ð1BÀVÑ1KÑLÔLˆ	Ý˜˜2Ÿ:š: iÑ0Ô0°uÐ=Ñ=Ô=Ð=Ð=Ð=r>   c                 ó<   — dD ]}|                       ||¦  «         Œd S )N)ÚcentroidÚmedianÚward)Úcheck_linkage_qrH   s      r<   Útest_linkage_XzTestLinkage.test_linkage_Xc   s4   € à4ð 	-ð 	-ˆFØ× Ò  ¨Ñ,Ô,Ð,Ð,ð	-ð 	-r>   c                 óÊ  — t          |                     t          j        ¦  «        |¦  «        }t	          t          d|z   ¦  «        }t          ||                     |¦  «        d¬¦  «         t          j        j         	                    t          j        d¬¦  «        }t          |                     |¦  «        |¦  «        }t          ||                     |¦  «        d¬¦  «         d S )NÚ
linkage_X_ç�íµ ÷Æ°>rN   Ú	euclidean)Úmetric)
r	   r4   r*   ÚXrR   r'   ÚscipyÚspatialÚdistancer$   )r9   rI   r:   rS   rT   r;   s         r<   rY   zTestLinkage.check_linkage_qh   s¿   € å�B—J’JÕ2Ô4Ñ5Ô5°vÑ>Ô>ˆÝÕ/°ÀÑ1FÑGÔGˆ	Ý˜˜2Ÿ:š: iÑ0Ô0°uÐ=Ñ=Ô=Ð=åŒMÔ"×(Ò(Õ)<Ô)>Ø0;ð )ñ =ô =ˆå�B—J’J˜q‘M”M 6Ñ*Ô*ˆÝ˜˜2Ÿ:š: iÑ0Ô0°uÐ=Ñ=Ô=Ð=Ð=Ð=r>   c                 ó‚  — t           j                             d¦  «        }d}|                     |d¦  «        }t	          |¦  «        }t          j        ¦   «         D ]d\  }}t          j        |||¦  «        }t          | 	                    |¦  «        |¦  «        }	t          |	| 	                    |¦  «        dd¬¦  «         Œed S )Nr   é   é   g›+¡†›„=çVçž¯Ò<)ÚrtolrO   )ÚnpÚrandomÚRandomStateÚrandr$   r#   Úitemsr"   r	   r4   r'   )
r9   r:   ÚrngÚnr`   ÚdrI   ÚcodeÚ	Z_trivialrS   s
             r<   Útest_compare_with_trivialz%TestLinkage.test_compare_with_trivials   sµ   € åŒi×#Ò# AÑ&Ô&ˆØˆØ�HŠH�Q˜‰NŒNˆÝ�!‰HŒHˆå,Ô2Ñ4Ô4ð 	Nð 	N‰LˆF�DÝ"Ô*¨1¨a°Ñ6Ô6ˆIÝ˜Ÿ
š
 1™œ vÑ.Ô.ˆAÝ˜A˜rŸzšz¨)Ñ4Ô4¸5ÀuÐMÑMÔMÐMÐMð	Nð 	Nr>   c                 óÖ   — t          |                     t          j        ¦  «        d¬¦  «        }t	          t          d¦  «        }t          ||                     |¦  «        d¬¦  «         d S )NT)Úoptimal_orderingÚlinkage_ytdist_single_olorM   rN   rP   )r9   r:   rS   rT   s       r<   Útest_optimal_leaf_orderingz&TestLinkage.test_optimal_leaf_ordering   s\   € å�B—J’JÕ2Ô9Ñ:Ô:ÈTÐRÑRÔRˆÝÕ/Ð1LÑMÔMˆ	Ý˜˜2Ÿ:š: iÑ0Ô0°uÐ=Ñ=Ô=Ð=Ð=Ð=r>   N)Ú__name__Ú
__module__Ú__qualname__r,   r=   rB   rJ   rG   rZ   rY   rs   rw   © r>   r<   r.   r.   I   s/  € € € € € àÐ˜tÐ$Ñ$Ô$ð.ð .ñ %Ô$ð.ð Ð˜tÐ$Ñ$Ô$ð.ð .ñ %Ô$ð.ð
 Ð˜tÐ$Ñ$Ô$ð1ð 1ñ %Ô$ð1ð>ð >ð >ð Ð˜tÐ$Ñ$Ô$ð-ð -ñ %Ô$ð-ð	>ð 	>ð 	>ð Ð˜tÐ$Ñ$Ô$ð	Nð 	Nñ %Ô$ð	Nð Ð˜tÐ$Ñ$Ô$ð>ð >ñ %Ô$ð>ð >ð >r>   r.   r/   c                   óF  — e Zd Z ej        g d¢g d¢g¦  «         ej        g d¢g d¢g¦  «         ej        g d¢g d¢g¦  «         ej        g d¢g d¢g¦  «         ej        g d¢g d¢g¦  «         ej        g d¢g d¢g¦  «         ej        g d¢g d¢g¦  «        dœZd„ Zd„ Zd	S )
ÚTestLinkageTies)r   r)   çß'Üež ö?rf   )rf   é   r~   r   )rf   r   gß'Üež @r   )rf   r   gçeÌvø @r   )rf   r   g€©Ž˜@r   ©r   rD   rE   rF   rV   rW   rX   c                 ó<   — dD ]}|                       ||¦  «         Œd S ©Nr€   )Úcheck_linkage_tiesrH   s      r<   Útest_linkage_tiesz!TestLinkageTies.test_linkage_tiesš   s6   € ð5ð 	0ð 	0ˆFà×#Ò# F¨BÑ/Ô/Ð/Ð/ð	0ð 	0r>   c                 óÈ   — |                      ddgddgddgg¦  «        }t          ||¬¦  «        }| j        |         }t          ||                      |¦  «        d¬¦  «         d S )Néÿÿÿÿr   r)   )rI   r]   rN   )r4   r	   Ú_expectationsr'   )r9   rI   r:   r`   rS   rT   s         r<   rƒ   z"TestLinkageTies.check_linkage_tiesŸ   sl   € Ø�JŠJ˜˜R˜ 1 a &¨1¨a¨&Ð1Ñ2Ô2ˆÝ�A˜fÐ%Ñ%Ô%ˆØÔ& vÔ.ˆ	Ý˜˜2Ÿ:š: iÑ0Ô0°uÐ=Ñ=Ô=Ð=Ð=Ð=r>   N)rx   ry   rz   ri   Úarrayr‡   r„   rƒ   r{   r>   r<   r}   r}   †   sX  € € € € € ð �"”(Ð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ð"0ð 0ð 0ð
>ð >ð >ð >ð >r>   r}   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestInconsistentc                 óP   — t           j        D ]}|                      ||¦  «         Œd S ©N)r*   Úinconsistent_ytdistÚcheck_inconsistent_tdist)r9   r:   Údepths      r<   Útest_inconsistent_tdistz(TestInconsistent.test_inconsistent_tdist©   s7   € Ý(Ô<ð 	5ð 	5ˆEØ×)Ò)¨%°Ñ4Ô4Ð4Ð4ð	5ð 	5r>   c                 óÆ   — |                      t          j        ¦  «        }t          t	          ||¦  «        |                      t          j        |         ¦  «        ¦  «         d S rŒ   )r4   r*   Úlinkage_ytdist_singler'   r   r�   )r9   r�   r:   rS   s       r<   rŽ   z)TestInconsistent.check_inconsistent_tdist­   s\   € Ø�JŠJÕ*Ô@ÑAÔAˆÝ� Q¨Ñ.Ô.ØŸ
š
Õ#6Ô#JÈ5Ô#QÑRÔRñ	Tô 	Tð 	Tð 	Tð 	Tr>   N)rx   ry   rz   r�   rŽ   r{   r>   r<   rŠ   rŠ   ¦   s7   € € € € € ð5ð 5ð 5ðTð Tð Tð Tð Tr>   rŠ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestCopheneticDistancec                 óè   — |                      g d¢¦  «        }|                      t          j        ¦  «        }t          |¦  «        }t	          ||                      ||j        ¬¦  «        d¬¦  «         d S )N©é  é'  éÿ   r™   r˜   r˜   r—   r—   r˜   r˜   r˜   éŠ   éÛ   r˜   r˜   ©ÚdtyperM   rN   )r4   r*   r’   r   r'   Úfloat64)r9   r:   Ú	expectedMrS   ÚMs        r<   Útest_linkage_cophenet_tdist_Zz4TestCopheneticDistance.test_linkage_cophenet_tdist_Z¶   sq   € à—J’Jð  9ð  9ð  9ñ :ô :ˆ	à�JŠJÕ*Ô@ÑAÔAˆÝ�Q‰KŒKˆÝ˜˜2Ÿ:š: i°r´z˜:ÑBÔBÈÐOÑOÔOÐOÐOÐOr>   c                 ól  — |                      t          j        ¦  «        }t          ||                      t          j        ¦  «        ¦  «        \  }}|                      g d¢|j        ¬¦  «        }|                      d|j        ¬¦  «        d         }t          ||d¬¦  «         t          ||d¬¦  «         d S )Nr–   rœ   g*É»2Qzä?r{   rM   rN   )r4   r*   r’   r   rQ   rž   r'   )r9   r:   rS   Úcr    rŸ   Ú	expectedcs          r<   Útest_linkage_cophenet_tdist_Z_Yz6TestCopheneticDistance.test_linkage_cophenet_tdist_Z_Y¾   s¶   € à�JŠJÕ*Ô@ÑAÔAˆÝ˜!˜RŸZšZÕ(;Ô(BÑCÔCÑDÔD‰ˆˆAØ—J’Jð  9ð  9ð  9Ø@BÄ
ð ñ Lô Lˆ	à—J’JÐ?ÀrÄz�JÑRÔRÐSUÔVˆ	Ý˜˜9¨5Ð1Ñ1Ô1Ð1Ý˜˜9¨5Ð1Ñ1Ô1Ð1Ð1Ð1r>   N)rx   ry   rz   r¡   r¥   r{   r>   r<   r”   r”   ³   s5   € € € € € ðPð Pð Pð2ð 2ð 2ð 2ð 2r>   r”   c                   óh   — e Zd Zd„ Z ed¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         ZdS )ÚTestMLabLinkageConversionc                 ó²   — |                      g |j        ¬¦  «        }t          t          |¦  «        |¦  «         t          t	          |¦  «        |¦  «         d S )Nrœ   )r4   rž   r(   r
   r   )r9   r:   r`   s      r<   Ú"test_mlab_linkage_conversion_emptyz<TestMLabLinkageConversion.test_mlab_linkage_conversion_emptyË   sP   € à�JŠJ�r ¤ˆJÑ,Ô,ˆÝÕ)¨!Ñ,Ô,¨aÑ0Ô0Ð0Ý�¨Ñ*Ô*¨AÑ.Ô.Ð.Ð.Ð.r>   Tr/   c                 óJ  — |                      g d¢g¦  «        }|                      g d¢g¦  «        }t          t          |¦  «        |                      ||j        ¬¦  «        d¬¦  «         t          t	          |¦  «        |                      ||j        ¬¦  «        d¬¦  «         d S )N)r2   ç      ð?ç      @ç       @©r)   rf   r   rœ   rg   ©rh   )r4   r'   r
   rž   r   )r9   r:   rS   ÚZms       r<   Ú'test_mlab_linkage_conversion_single_rowzATestMLabLinkageConversion.test_mlab_linkage_conversion_single_rowÑ   s±   € ð �JŠJÐ(Ð(Ð(Ð)Ñ*Ô*ˆØ�ZŠZ˜˜˜˜Ñ$Ô$ˆÝÕ)¨"Ñ-Ô-¨r¯zªz¸!À2Ä:¨zÑ/NÔ/NØ"ð	$ñ 	$ô 	$ð 	$å�¨Ñ*Ô*¨B¯JªJ°rÀÄ¨JÑ,LÔ,LØ"ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$r>   c                 óT  — |                      g d¢g d¢g d¢g d¢g d¢g¦  «        }|                      g d¢g d¢g d¢g d	¢g d
¢g|j        ¬¦  «        }t          t          |¦  «        |d¬¦  «         t          t	          |¦  «        |                      ||j        ¬¦  «        d¬¦  «         d S )N)r   é   rš   )é   r3   r›   )r)   é   r™   )rf   é	   r—   )é   é
   r˜   )r­   ç      @ç     @a@r­   )r¬   ç      @ç     `k@r­   )r2   g      @ç     ào@r¬   )r«   g       @ç     Àp@r»   )ç      @g      "@ç     pr@r¿   rœ   rg   r¯   )r4   rž   r'   r
   r   )r9   r:   r°   rS   s       r<   Ú*test_mlab_linkage_conversion_multiple_rowszDTestMLabLinkageConversion.test_mlab_linkage_conversion_multiple_rowsÛ   sñ   € ð �ZŠZ˜˜˜ k k kØ$˜˜ k k k°<°<°<ðAñ Bô Bˆà�JŠJÐ*Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*ð	,ð
  œZð ñ )ô )ˆõ 	Õ)¨"Ñ-Ô-¨q°uÐ=Ñ=Ô=Ð=Ý�¨Ñ*Ô*¨B¯JªJ°rÀÄ¨JÑ,LÔ,LØ"ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$r>   N)rx   ry   rz   r©   r,   r±   rÁ   r{   r>   r<   r§   r§   É   sw   € € € € € ð/ð /ð /ð Ð˜tÐ$Ñ$Ô$ð$ð $ñ %Ô$ð$ð Ð˜tÐ$Ñ$Ô$ð$ð $ñ %Ô$ð$ð $ð $r>   r§   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestFclusterc                 óê   — t           j        D ]}|                      |d|¦  «         Œt           j        D ]}|                      |d|¦  «         Œt           j        D ]}|                      |d|¦  «         Œd S ©Nr   rc   Úmaxclust)r*   Úfcluster_inconsistentÚcheck_fclusterdataÚfcluster_distanceÚfcluster_maxclust©r9   r:   Úts      r<   Útest_fclusterdatazTestFcluster.test_fclusterdataî   s“   € Ý$Ô:ð 	;ð 	;ˆAØ×#Ò# A ~°rÑ:Ô:Ð:Ð:Ý$Ô6ð 	7ð 	7ˆAØ×#Ò# A z°2Ñ6Ô6Ð6Ð6Ý$Ô6ð 	7ð 	7ˆAØ×#Ò# A z°2Ñ6Ô6Ð6Ð6ð	7ð 	7r>   c                 ó  — |                      t          t          d|z   ¦  «        |         ¦  «        }|                      t          j        ¦  «        }t	          |||¬¦  «        }t          t          ||¦  «        ¦  «         d S ©NÚ	fcluster_©Ú	criterionrÌ   )r4   rR   r*   ÚQ_Xr   r   r   )r9   rÌ   rÒ   r:   Ú	expectedTr`   ÚTs          r<   rÈ   zTestFcluster.check_fclusterdataö   sp   € à—J’J�wÕ':¸KÈ)Ñ<SÑTÔTÐUVÔWÑXÔXˆ	Ø�JŠJÕ*Ô.Ñ/Ô/ˆÝ˜ i°1Ð5Ñ5Ô5ˆÝ•˜a Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r>   c                 óê   — t           j        D ]}|                      |d|¦  «         Œt           j        D ]}|                      |d|¦  «         Œt           j        D ]}|                      |d|¦  «         Œd S rÅ   )r*   rÇ   Úcheck_fclusterrÉ   rÊ   rË   s      r<   Útest_fclusterzTestFcluster.test_fclusterý   s“   € Ý$Ô:ð 	7ð 	7ˆAØ×Ò  >°2Ñ6Ô6Ð6Ð6Ý$Ô6ð 	3ð 	3ˆAØ×Ò  :¨rÑ2Ô2Ð2Ð2Ý$Ô6ð 	3ð 	3ˆAØ×Ò  :¨rÑ2Ô2Ð2Ð2ð	3ð 	3r>   c                 ó  — |                      t          t          d|z   ¦  «        |         ¦  «        }t          |                      t          j        ¦  «        ¦  «        }t          |||¬¦  «        }t          t          ||¦  «        ¦  «         d S rÏ   )r4   rR   r*   r   rÓ   r   r   r   )r9   rÌ   rÒ   r:   rÔ   rS   rÕ   s          r<   r×   zTestFcluster.check_fcluster  sx   € à—J’J�wÕ':¸KÈ)Ñ<SÑTÔTÐUVÔWÑXÔXˆ	Ý�2—:’:Õ1Ô5Ñ6Ô6Ñ7Ô7ˆÝ�Q )¨qÐ1Ñ1Ô1ˆÝ•˜a Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r>   c                 óš   — t           j        D ]}|                      ||¦  «         Œt           j        D ]}|                      ||¦  «         Œd S rŒ   )r*   rÉ   Úcheck_fcluster_monocritrÊ   Ú check_fcluster_maxclust_monocritrË   s      r<   Útest_fcluster_monocritz#TestFcluster.test_fcluster_monocrit  sb   € Ý$Ô6ð 	0ð 	0ˆAØ×(Ò(¨¨BÑ/Ô/Ð/Ð/Ý$Ô6ð 	9ð 	9ˆAØ×1Ò1°!°RÑ8Ô8Ð8Ð8ð	9ð 	9r>   c                 ó"  — |                      t          j        |         ¦  «        }t          |                      t          j        ¦  «        ¦  «        }t          ||dt          |¦  «        ¬¦  «        }t          t          ||¦  «        ¦  «         d S )NÚmonocrit©rÒ   rß   )	r4   r*   rÉ   r   rÓ   r   r   r   r   ©r9   rÌ   r:   rÔ   rS   rÕ   s         r<   rÛ   z$TestFcluster.check_fcluster_monocrit  ss   € Ø—J’JÕ2ÔDÀQÔGÑHÔHˆ	Ý�2—:’:Õ1Ô5Ñ6Ô6Ñ7Ô7ˆÝ�Q˜ Z½(À1¹+¼+ÐFÑFÔFˆÝ•˜a Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r>   c                 ó"  — |                      t          j        |         ¦  «        }t          |                      t          j        ¦  «        ¦  «        }t          ||dt          |¦  «        ¬¦  «        }t          t          ||¦  «        ¦  «         d S )NÚmaxclust_monocritrà   )	r4   r*   rÊ   r   rÓ   r   r   r   r   rá   s         r<   rÜ   z-TestFcluster.check_fcluster_maxclust_monocrit  st   € Ø—J’JÕ2ÔDÀQÔGÑHÔHˆ	Ý�2—:’:Õ1Ô5Ñ6Ô6Ñ7Ô7ˆÝ�Q˜Ð%8Å8ÈAÁ;Ä;ÐOÑOÔOˆÝ•˜a Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r>   N)
rx   ry   rz   rÍ   rÈ   rØ   r×   rÝ   rÛ   rÜ   r{   r>   r<   rÃ   rÃ   ë   s}   € € € € € ð7ð 7ð 7ð-ð -ð -ð3ð 3ð 3ð-ð -ð -ð9ð 9ð 9ð-ð -ð -ð-ð -ð -ð -ð -r>   rÃ   c                   ó   — e Zd Zd„ ZdS )ÚTestLeadersc                 óÈ  — t           j        }t          |¦  «        }|                     |¦  «        }t	          |¦  «        }t          |dd¬¦  «        }|                     g d¢¦  «        |                     g d¢¦  «        f}|                     ||j        ¬¦  «        }t          ||¦  «        }t          t          j
        |¦  «        t          j
        |¦  «        d¬¦  «         d S )	NrÆ   r   rÑ   )é5   é7   é8   )rf   r   r)   rœ   rg   r¯   )r*   rÓ   r$   r4   r	   r   Úint32r   r   ri   Úconcatenate)r9   r:   r`   ÚYrS   rÕ   ÚLrightÚLs           r<   Útest_leaders_singlezTestLeaders.test_leaders_single"  sÀ   € åÔ#ˆÝ�!‰HŒHˆØ�JŠJ�q‰MŒMˆÝ�A‰JŒJˆÝ�Q *°Ð2Ñ2Ô2ˆØ—*’*˜\˜\˜\Ñ*Ô*¨B¯JªJ°y°y°yÑ,AÔ,AÐBˆØ�JŠJ�q ¤ˆJÑ)Ô)ˆÝ�A�q‰MŒMˆÝ�œ qÑ)Ô)­2¬>¸&Ñ+AÔ+AÈÐNÑNÔNÐNÐNÐNr>   N)rx   ry   rz   rï   r{   r>   r<   rå   rå     s(   € € € € € ð
Oð 
Oð 
Oð 
Oð 
Or>   rå   z+`is_isomorphic` only supports NumPy backend©Únp_onlyÚreasonsc                   óz   — e Zd Z eddg¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zdd„ZdS )ÚTestIsIsomorphicTz,array-likes only supported for NumPy backendrð   c                 óV   — t          g d¢g d¢¦  «        sJ ‚t          g g ¦  «        sJ ‚d S ©N©r)   r)   r)   )rf   rf   rf   )r   )r9   r:   s     r<   Útest_array_likez TestIsIsomorphic.test_array_like3  s>   € õ ˜Y˜Y˜Y¨	¨	¨	Ñ2Ô2Ð2Ð2Ð2Ý˜R Ñ$Ô$Ð$Ð$Ð$Ð$Ð$r>   c                 óª   — |                      g d¢¦  «        }|                      g d¢¦  «        }t          ||¦  «        sJ ‚t          ||¦  «        sJ ‚d S rö   ©r4   r   ©r9   r:   ÚaÚbs       r<   Útest_is_isomorphic_1z%TestIsIsomorphic.test_is_isomorphic_19  ó^   € à�JŠJ�y�y�yÑ!Ô!ˆØ�JŠJ�y�y�yÑ!Ô!ˆÝ˜Q Ñ"Ô"Ð"Ð"Ð"Ý˜Q Ñ"Ô"Ð"Ð"Ð"Ð"Ð"r>   c                 óª   — |                      g d¢¦  «        }|                      g d¢¦  «        }t          ||¦  «        sJ ‚t          ||¦  «        sJ ‚d S )N)r)   r·   r)   )rf   r   rf   rú   rû   s       r<   Útest_is_isomorphic_2z%TestIsIsomorphic.test_is_isomorphic_2@  rÿ   r>   c                 ó~   — |                      g ¦  «        }|                      g ¦  «        }t          ||¦  «        sJ ‚d S rŒ   rú   rû   s       r<   Útest_is_isomorphic_3z%TestIsIsomorphic.test_is_isomorphic_3G  s<   € à�JŠJ�r‰NŒNˆØ�JŠJ�r‰NŒNˆÝ˜Q Ñ"Ô"Ð"Ð"Ð"Ð"Ð"r>   c                 óª   — |                      g d¢¦  «        }|                      g d¢¦  «        }t          ||¦  «        sJ ‚t          ||¦  «        sJ ‚d S )Nr®   )r)   r   rf   rú   rû   s       r<   Útest_is_isomorphic_4Az&TestIsIsomorphic.test_is_isomorphic_4AM  ó`   € ð �JŠJ�y�y�yÑ!Ô!ˆØ�JŠJ�y�y�yÑ!Ô!ˆÝ˜Q Ñ"Ô"Ð"Ð"Ð"Ý˜Q Ñ"Ô"Ð"Ð"Ð"Ð"Ð"r>   c                 ó²   — |                      g d¢¦  «        }|                      g d¢¦  «        }t          ||¦  «        du sJ ‚t          ||¦  «        du sJ ‚d S )N)r)   rf   r   r   )r)   r   rf   r   Frú   rû   s       r<   Útest_is_isomorphic_4Bz&TestIsIsomorphic.test_is_isomorphic_4BU  sj   € ð �JŠJ�|�|�|Ñ$Ô$ˆØ�JŠJ�|�|�|Ñ$Ô$ˆÝ˜Q Ñ"Ô" eÐ+Ð+Ð+Ð+Ý˜Q Ñ"Ô" eÐ+Ð+Ð+Ð+Ð+Ð+r>   c                 óª   — |                      g d¢¦  «        }|                      g d¢¦  «        }t          ||¦  «        sJ ‚t          ||¦  «        sJ ‚d S )N)r·   rf   r   )r³   r   rf   rú   rû   s       r<   Útest_is_isomorphic_4Cz&TestIsIsomorphic.test_is_isomorphic_4C]  r  r>   c                 ó@   — dD ]}|                       d||¬¦  «         Œd S )N©rf   r   r3   éè  ©r:   ©Úhelp_is_isomorphic_randperm©r9   r:   Úncs      r<   Útest_is_isomorphic_5z%TestIsIsomorphic.test_is_isomorphic_5e  s;   € ð ð 	>ð 	>ˆBØ×,Ò,¨T°2¸"Ð,Ñ=Ô=Ð=Ð=ð	>ð 	>r>   c                 óD   — dD ]}|                       d|dd|¬¦  «         Œd S )Nr  r  Tr3   r  r  r  s      r<   Útest_is_isomorphic_6z%TestIsIsomorphic.test_is_isomorphic_6k  sC   € ð ð 	Gð 	GˆBØ×,Ò,¨T°2°t¸QÀ2Ð,ÑFÔFÐFÐFð	Gð 	Gr>   c                 ó†   — |                      g d¢¦  «        }|                      g d¢¦  «        }t          ||¦  «        rJ ‚d S )Nr®   r÷   rú   rû   s       r<   Útest_is_isomorphic_7z%TestIsIsomorphic.test_is_isomorphic_7r  sH   € à�JŠJ�y�y�yÑ!Ô!ˆØ�JŠJ�y�y�yÑ!Ô!ˆÝ   AÑ&Ô&Ð&Ð&Ð&Ð&Ð&r>   Fr   c                óÐ  — t          d¦  «        D �]T}t          j                             |¦  «        |z                       t
          ¦  «        }t          j        |j        t
          ¬¦  «        }t          j                             |¦  «        }	t          d|j	        d         ¦  «        D ]}
|	||
                  ||
<   Œ|rOt          j                             |¦  «        }||d|…         xx         dz  cc<   ||d|…         xx         |z  cc<   | 
                    |¦  «        }| 
                    |¦  «        }t          ||¦  «        | k    sJ ‚t          ||¦  «        | k    sJ ‚�ŒVd S )Nr   rœ   r   r)   )Úrangeri   rj   rl   ÚastypeÚintrA   ÚsizeÚpermutationÚshaper4   r   )r9   ÚnobsÚ	nclustersÚnonisoÚnerrorsr:   Úkrü   rý   ÚPÚiÚQs               r<   r  z,TestIsIsomorphic.help_is_isomorphic_randpermx  sX  € å�q‘”ð 	7ñ 	7ˆAÝ”—’ Ñ%Ô%¨	Ñ1×9Ò9½#Ñ>Ô>ˆAÝ”˜œ¥sÐ+Ñ+Ô+ˆAÝ”	×%Ò% iÑ0Ô0ˆAÝ˜1˜aœg aœjÑ)Ô)ð ð �Ø˜˜1œ”w��!‘�Øð -Ý”I×)Ò)¨$Ñ/Ô/�Ø�!�A�g�I”,��” 1Ñ$��‘Ø�!�A�g�I”,��” 9Ñ,��‘Ø—
’
˜1‘”ˆAØ—
’
˜1‘”ˆAÝ   AÑ&Ô&¨v¨:Ò6Ð6Ð6Ð6Ý   AÑ&Ô&¨v¨:Ò6Ð6Ð6Ð6Ñ6ð	7ð 	7r>   N)Fr   )rx   ry   rz   r,   rø   rþ   r  r  r  r  r
  r  r  r  r  r{   r>   r<   rô   rô   /  sï   € € € € € ð Ð˜dØ NÐOðQñ Qô Qð%ð %ñQô Qð%ð#ð #ð #ð#ð #ð #ð#ð #ð #ð#ð #ð #ð,ð ,ð ,ð#ð #ð #ð>ð >ð >ðGð Gð Gð'ð 'ð 'ð7ð 7ð 7ð 7ð 7ð 7r>   rô   c                   óì   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Z eddgd¬	¦  «        d
„ ¦   «         Z	 eddgd¬	¦  «        d„ ¦   «         Z
 eddgd¬	¦  «        d„ ¦   «         Z eddgd¬	¦  «        d„ ¦   «         ZdS )ÚTestIsValidLinkagec                 óH   — dD ]\  }}}|                       ||||¦  «         Œd S ©N))rf   r3   F)rf   r   F)r)   r´   T)rf   r´   T)Ú#check_is_valid_linkage_various_size©r9   r:   ÚnrowÚncolÚvalids        r<   Ú"test_is_valid_linkage_various_sizez5TestIsValidLinkage.test_is_valid_linkage_various_size�  sE   € ð">ð 	Lð 	LÑˆD�$˜à×4Ò4°T¸4ÀÈÑKÔKÐKÐKð	Lð 	Lr>   c                 óè   — |                      g d¢g d¢g|j        ¬¦  «        }|d |…d |…f         }t          t          |¦  «        |k    ¦  «         |st	          t
          t          |d¬¦  «         d S d S ©N)r   r)   r¬   rf   r3   )r   rf   r»   r   r   rœ   T©Úthrow)r4   rž   r   r   r6   r7   )r9   r-  r.  r/  r:   rS   s         r<   r+  z6TestIsValidLinkage.check_is_valid_linkage_various_size’  sš   € à�JŠJÐ)Ð)Ð)Ø)Ð)Ð)ð+Ø24´*ð ñ >ô >ˆàˆeˆtˆe�U�d�UˆlŒOˆÝÕ  Ñ#Ô# uÒ,Ñ-Ô-Ð-Øð 	GÝ�*Õ&6¸ÀÐFÑFÔFÐFÐFÐFð	Gð 	Gr>   c                 óÀ   — |                      g d¢g d¢g|j        ¬¦  «        }t          t          |¦  «        du ¦  «         t	          t
          t          |d¬¦  «         d S ©N©r   r)   r¬   rf   ©r   rf   r»   r   rœ   FTr3  )r4   Úint64r   r   r6   Ú	TypeError©r9   r:   rS   s      r<   Útest_is_valid_linkage_int_typez1TestIsValidLinkage.test_is_valid_linkage_int_type›  sk   € à�JŠJ˜˜˜Ø&˜˜ð(Ø/1¬xð ñ 9ô 9ˆåÕ  Ñ#Ô# uÐ,Ñ-Ô-Ð-Ý•iÕ!1°1¸DÐAÑAÔAÐAÐAÐAr>   c                 ó´   — |                      d|j        ¬¦  «        }t          t          |¦  «        du ¦  «         t	          t
          t          |d¬¦  «         d S ©N©r   r´   rœ   FTr3  )rA   rž   r   r   r6   r7   r;  s      r<   Útest_is_valid_linkage_emptyz.TestIsValidLinkage.test_is_valid_linkage_empty¢  sS   € à�HŠH�V 2¤:ˆHÑ.Ô.ˆÝÕ  Ñ#Ô# uÐ,Ñ-Ô-Ð-Ý•jÕ"2°A¸TÐBÑBÔBÐBÐBÐBr>   c                 ó  — t          ddd¦  «        D ]l}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          t          |¦  «        du ¦  «         Œmd S ©Nr´   é   r   r)   rf   T)r  ri   rj   rl   r4   r	   r   r   ©r9   r:   r%  r;   rS   s        r<   Útest_is_valid_linkage_4_and_upz1TestIsValidLinkage.test_is_valid_linkage_4_and_up¨  s   € õ �q˜"˜a‘”ð 	1ð 	1ˆAÝ”	—’˜q ! A¡#™w¨™zÑ*Ô*ˆAØ—
’
˜1‘”ˆAÝ˜‘
”
ˆAÝÕ$ QÑ'Ô'¨4Ð/Ñ0Ô0Ð0Ð0ð		1ð 	1r>   ú	jax.numpyú)jax arrays do not support item assignmentT©rò   r0   c                 óP  — t          ddd¦  «        D ]“}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }d||dz  df<   t          t          |¦  «        du ¦  «         t          t          t          |d	¬
¦  «         Œ”d S )Nr´   rC  r   r)   rf   éþÿÿÿr   FTr3  ©
r  ri   rj   rl   r4   r	   r   r   r6   r7   rD  s        r<   Ú-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Ø—
’
˜1‘”ˆAÝ˜‘
”
ˆAØˆAˆa�‰d�1ˆf‰IÝÕ$ QÑ'Ô'¨5Ð0Ñ1Ô1Ð1Ý�*Õ&6¸ÀÐFÑFÔFÐFÐFð	Gð 	Gr>   c                 óP  — t          ddd¦  «        D ]“}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }d||dz  df<   t          t          |¦  «        du ¦  «         t          t          t          |d¬	¦  «         Œ”d S ©
Nr´   rC  r   r)   rf   rJ  FTr3  rK  rD  s        r<   Ú.test_is_valid_linkage_4_and_up_neg_index_rightzATestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_index_right¿  rM  r>   c                 óP  — t          ddd¦  «        D ]“}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }d||dz  df<   t          t          |¦  «        du ¦  «         t          t          t          |d¬	¦  «         Œ”d S ©
Nr´   rC  r   r)   rf   g      à¿FTr3  rK  rD  s        r<   Ú'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Ø—
’
˜1‘”ˆAÝ˜‘
”
ˆAØˆAˆa�‰d�1ˆf‰IÝÕ$ QÑ'Ô'¨5Ð0Ñ1Ô1Ð1Ý�*Õ&6¸ÀÐFÑFÔFÐFÐFð	Gð 	Gr>   c                 óP  — t          ddd¦  «        D ]“}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }d||dz  df<   t          t          |¦  «        du ¦  «         t          t          t          |d¬	¦  «         Œ”d S rO  rK  rD  s        r<   Ú)test_is_valid_linkage_4_and_up_neg_countsz<TestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_countsÛ  rM  r>   N)rx   ry   rz   r0  r+  r<  r@  rE  r,   rL  rP  rS  rU  r{   r>   r<   r(  r(  Š  se  € € € € € ðLð Lð Lð
Gð Gð GðBð Bð BðCð Cð Cð1ð 1ð 1ð Ð�kØJÐKØ#ð%ñ %ô %ð	Gð 	Gñ%ô %ð	Gð Ð�kØJÐKØ#ð%ñ %ô %ð	Gð 	Gñ%ô %ð	Gð Ð�kØJÐKØ#ð%ñ %ô %ð	Gð 	Gñ%ô %ð	Gð Ð�kØJÐKØ#ð%ñ %ô %ð	Gð 	Gñ%ô %ð	Gð 	Gð 	Gr>   r(  c                   ó¼   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Z eddgd¬	¦  «        d
„ ¦   «         Z	 eddgd¬	¦  «        d„ ¦   «         Z
 eddgd¬	¦  «        d„ ¦   «         ZdS )ÚTestIsValidInconsistentc                 óÀ   — |                      g d¢g d¢g|j        ¬¦  «        }t          t          |¦  «        du ¦  «         t	          t
          t          |d¬¦  «         d S r6  )r4   r9  r   r   r6   r:  ©r9   r:   ÚRs      r<   Útest_is_valid_im_int_typez1TestIsValidInconsistent.test_is_valid_im_int_typeí  sg   € à�JŠJ˜˜˜Ø&˜˜ð(Ø/1¬xð ñ 9ô 9ˆå•˜A‘” %Ð'Ñ(Ô(Ð(Ý•i¥¨a°tÐ<Ñ<Ô<Ð<Ð<Ð<r>   c                 óH   — dD ]\  }}}|                       ||||¦  «         Œd S r*  )Úcheck_is_valid_im_various_sizer,  s        r<   Útest_is_valid_im_various_sizez5TestIsValidInconsistent.test_is_valid_im_various_sizeô  sE   € ð">ð 	Gð 	GÑˆD�$˜à×/Ò/°°d¸EÀ2ÑFÔFÐFÐFð	Gð 	Gr>   c                 óè   — |                      g d¢g d¢g|j        ¬¦  «        }|d |…d |…f         }t          t          |¦  «        |k    ¦  «         |st	          t
          t          |d¬¦  «         d S d S r2  )r4   rž   r   r   r6   r7   )r9   r-  r.  r/  r:   rZ  s         r<   r]  z6TestIsValidInconsistent.check_is_valid_im_various_sizeù  s–   € à�JŠJÐ)Ð)Ð)Ø)Ð)Ð)ð+Ø24´*ð ñ >ô >ˆàˆeˆtˆe�U�d�UˆlŒOˆÝ•˜A‘” %Ò'Ñ(Ô(Ð(Øð 	BÝ�*¥k°1¸DÐAÑAÔAÐAÐAÐAð	Bð 	Br>   c                 ó´   — |                      d|j        ¬¦  «        }t          t          |¦  «        du ¦  «         t	          t
          t          |d¬¦  «         d S r>  )rA   rž   r   r   r6   r7   rY  s      r<   Útest_is_valid_im_emptyz.TestIsValidInconsistent.test_is_valid_im_empty  sO   € à�HŠH�V 2¤:ˆHÑ.Ô.ˆÝ•˜A‘” %Ð'Ñ(Ô(Ð(Ý•j¥+¨q¸Ð=Ñ=Ô=Ð=Ð=Ð=r>   c                 ó   — t          ddd¦  «        D ]{}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          |¦  «        }t          t          |¦  «        du ¦  «         Œ|d S rB  )	r  ri   rj   rl   r4   r	   r   r   r   ©r9   r:   r%  r;   rS   rZ  s         r<   Útest_is_valid_im_4_and_upz1TestIsValidInconsistent.test_is_valid_im_4_and_up  s‡   € õ �q˜"˜a‘”ð 	,ð 	,ˆAÝ”	—’˜q ! A¡#™w¨™zÑ*Ô*ˆAØ—
’
˜1‘”ˆAÝ˜‘
”
ˆAÝ˜Q‘”ˆAÝ•K ‘N”N dÐ*Ñ+Ô+Ð+Ð+ð	,ð 	,r>   rF  rG  TrH  c                 ón  — t          ddd¦  «        D ]¢}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          |¦  «        }d||dz  df<   t          t          |¦  «        du ¦  «         t          t          t          |d	¬
¦  «         Œ£d S )Nr´   rC  r   r)   rf   ç       Àr   FTr3  ©r  ri   rj   rl   r4   r	   r   r   r   r6   r7   rc  s         r<   Ú(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Ø—
’
˜1‘”ˆAÝ˜‘
”
ˆAÝ˜Q‘”ˆAØˆAˆa�‰d�1ˆf‰IÝ•K ‘N”N eÐ+Ñ,Ô,Ð,Ý�*¥k°1¸DÐAÑAÔAÐAÐAð	Bð 	Br>   c                 ón  — t          ddd¦  «        D ]¢}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          |¦  «        }d||dz  df<   t          t          |¦  «        du ¦  «         t          t          t          |d¬	¦  «         Œ£d S )
Nr´   rC  r   r)   rf   rf  FTr3  rg  rc  s         r<   Ú)test_is_valid_im_4_and_up_neg_index_rightzATestIsValidInconsistent.test_is_valid_im_4_and_up_neg_index_right!  ri  r>   c                 ón  — t          ddd¦  «        D ]¢}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          |¦  «        }d||dz  df<   t          t          |¦  «        du ¦  «         t          t          t          |d¬	¦  «         Œ£d S rR  rg  rc  s         r<   Ú"test_is_valid_im_4_and_up_neg_distz:TestIsValidInconsistent.test_is_valid_im_4_and_up_neg_dist0  ri  r>   N)rx   ry   rz   r[  r^  r]  ra  rd  r,   rh  rk  rm  r{   r>   r<   rW  rW  ê  s!  € € € € € ð=ð =ð =ðGð Gð Gð
Bð Bð Bð>ð >ð >ð,ð ,ð ,ð Ð�kØJÐKØ#ð%ñ %ô %ð
Bð 
Bñ%ô %ð
Bð Ð�kØJÐKØ#ð%ñ %ô %ð
Bð 
Bñ%ô %ð
Bð Ð�kØJÐKØ#ð%ñ %ô %ð
Bð 
Bñ%ô %ð
Bð 
Bð 
Br>   rW  c                   ón   — e Zd Z ed¬¦  «        d„ ¦   «         Zd„ Zd„ Z ed¬¦  «        d„ ¦   «         ZdS )ÚTestNumObsLinkageTr/   c                 ót   — |                      d|j        ¬¦  «        }t          t          t          |¦  «         d S ©Nr?  rœ   )rA   rž   r6   r7   r   r;  s      r<   Útest_num_obs_linkage_emptyz,TestNumObsLinkage.test_num_obs_linkage_emptyB  s3   € ð �HŠH�V 2¤:ˆHÑ.Ô.ˆÝ•j¥/°1Ñ5Ô5Ð5Ð5Ð5r>   c                 ó~   — |                      g d¢g|j        ¬¦  «        }t          t          |¦  «        d¦  «         d S )Nr7  rœ   rf   ©r4   rž   r   r   r;  s      r<   Útest_num_obs_linkage_1x4z*TestNumObsLinkage.test_num_obs_linkage_1x4H  s>   € à�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝ•_ QÑ'Ô'¨Ñ+Ô+Ð+Ð+Ð+r>   c                 ó„   — |                      g d¢g d¢g|j        ¬¦  «        }t          t          |¦  «        d¦  «         d S )Nr7  r8  rœ   r   rt  r;  s      r<   Útest_num_obs_linkage_2x4z*TestNumObsLinkage.test_num_obs_linkage_2x4M  sO   € à�JŠJ˜˜˜Ø&˜˜ð(Ø/1¬zð ñ ;ô ;ˆå•_ QÑ'Ô'¨Ñ+Ô+Ð+Ð+Ð+r>   c                 ó   — t          ddd¦  «        D ]k}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          t          |¦  «        |¦  «         Œld S )Nr´   rC  r   r)   rf   )r  ri   rj   rl   r4   r	   r   r   rD  s        r<   Útest_num_obs_linkage_4_and_upz/TestNumObsLinkage.test_num_obs_linkage_4_and_upS  s{   € õ �q˜"˜a‘”ð 	0ð 	0ˆAÝ”	—’˜q ! A¡#™w¨™zÑ*Ô*ˆAØ—
’
˜1‘”ˆAÝ˜‘
”
ˆAÝ�¨Ñ+Ô+¨QÑ/Ô/Ð/Ð/ð		0ð 	0r>   N)rx   ry   rz   r,   rr  ru  rw  ry  r{   r>   r<   ro  ro  @  s„   € € € € € àÐ˜tÐ$Ñ$Ô$ð6ð 6ñ %Ô$ð6ð
,ð ,ð ,ð
,ð ,ð ,ð Ð˜tÐ$Ñ$Ô$ð0ð 0ñ %Ô$ð0ð 0ð 0r>   ro  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLeavesListc                 ó¤   — |                      g d¢g|j        ¬¦  «        }t          |¦  «         t          t	          |¦  «        ddgd¬¦  «         d S )Nr7  rœ   r   r)   rg   r¯   ©r4   rž   r   r   r   r;  s      r<   Útest_leaves_list_1x4z#TestLeavesList.test_leaves_list_1x4a  sP   € à�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝ�‰
Œ
ˆ
Ý� A™œ¨¨A¨°UÐ;Ñ;Ô;Ð;Ð;Ð;r>   c                 óª   — |                      g d¢g d¢g|j        ¬¦  «        }t          |¦  «         t          t	          |¦  «        g d¢d¬¦  «         d S )Nr7  r8  rœ   )r   r)   rf   rg   r¯   r}  r;  s      r<   Útest_leaves_list_2x4z#TestLeavesList.test_leaves_list_2x4g  sa   € à�JŠJ˜˜˜Ø&˜˜ð(Ø/1¬zð ñ ;ô ;ˆå�‰
Œ
ˆ
Ý� A™œ¨	¨	¨	¸Ð>Ñ>Ô>Ð>Ð>Ð>r>   c                 ó<   — dD ]}|                       ||¦  «         Œd S r‚   )Úcheck_leaves_list_QrH   s      r<   Útest_leaves_list_Qz!TestLeavesList.test_leaves_list_Qn  s6   € ð)ð 	1ð 	1ˆFà×$Ò$ V¨RÑ0Ô0Ð0Ð0ð	1ð 	1r>   c                 óä   — |                      t          j        ¦  «        }t          ||¦  «        }t	          |¦  «        }t          |                     ¦   «         t          |¦  «        d¬¦  «         d S )Nrg   r¯   )r4   r*   rÓ   r	   r   r   Ú	pre_orderr   )r9   rI   r:   r`   rS   Únodes         r<   r‚  z"TestLeavesList.check_leaves_list_Qs  s\   € à�JŠJÕ*Ô.Ñ/Ô/ˆÝ�A�vÑÔˆÝ�q‰zŒzˆÝ˜ŸšÑ(Ô(­+°a©.¬.¸uÐEÑEÔEÐEÐEÐEr>   c                 ó`  — |                      t          j        ¦  «        }t          |d¦  «        }t	          |¦  «        }t          |                     ¦   «         |                     ¦   «                              ¦   «         |                     ¦   «                              ¦   «         z   d¬¦  «         d S )Nr   rg   r¯   )	r4   r*   rÓ   r	   r   r   r…  Úget_leftÚ	get_right)r9   r:   r`   rS   r†  s        r<   Útest_Q_subtree_pre_orderz'TestLeavesList.test_Q_subtree_pre_orderz  s–   € à�JŠJÕ*Ô.Ñ/Ô/ˆÝ�A�xÑ Ô ˆÝ�q‰zŒzˆÝ˜ŸšÑ(Ô(¨4¯=ª=©?¬?×+DÒ+DÑ+FÔ+FØ-1¯^ª^Ñ-=Ô-=×-GÒ-GÑ-IÔ-Iñ,Jà"ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$r>   N)rx   ry   rz   r~  r€  rƒ  r‚  rŠ  r{   r>   r<   r{  r{  ^  sb   € € € € € ð<ð <ð <ð?ð ?ð ?ð1ð 1ð 1ð
Fð Fð Fð$ð $ð $ð $ð $r>   r{  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestCorrespondc                 ó®   — |                      d|j        ¬¦  «        }|                      d|j        ¬¦  «        }t          t          t          ||¦  «         d S )Nr@   rœ   r?  )rA   rž   r6   r7   r   )r9   r:   r;   rS   s       r<   Útest_correspond_emptyz$TestCorrespond.test_correspond_empty‡  sJ   € à�HŠH�T ¤ˆHÑ,Ô,ˆØ�HŠH�U "¤*ˆHÑ-Ô-ˆÝ•j¥*¨a°Ñ3Ô3Ð3Ð3Ð3r>   c                 óø  — t          dd¦  «        D ]k}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          t          ||¦  «        ¦  «         Œlt          ddd¦  «        D ]k}t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }t          |¦  «        }t          t          ||¦  «        ¦  «         Œld S )Nrf   r´   r)   rC  r   )r  ri   rj   rl   r4   r	   r   r   rD  s        r<   Útest_correspond_2_and_upz'TestCorrespond.test_correspond_2_and_up�  sæ   € õ �q˜!‘”ð 	&ð 	&ˆAÝ”	—’˜q ! A¡#™w¨™zÑ*Ô*ˆAØ—
’
˜1‘”ˆAÝ˜‘
”
ˆAÝ•J˜q !Ñ$Ô$Ñ%Ô%Ð%Ð%Ý�q˜"˜a‘”ð 	&ð 	&ˆAÝ”	—’˜q ! A¡#™w¨™zÑ*Ô*ˆAØ—
’
˜1‘”ˆAÝ˜‘
”
ˆAÝ•J˜q !Ñ$Ô$Ñ%Ô%Ð%Ð%ð		&ð 	&r>   c                 óØ  — t          t          t          t          dd¦  «        ¦  «        t          t          dd¦  «        ¦  «        ¦  «        ¦  «        t          t          t          t          dd¦  «        ¦  «        t          t          dd¦  «        ¦  «        ¦  «        ¦  «        z   D ]Á\  }}t          j                             ||dz
  z  dz  ¦  «        }t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }|                     |¦  «        }t          |¦  «        }t          |¦  «        }t          ||¦  «        rJ ‚t          ||¦  «        rJ ‚ŒÂd S )Nrf   r´   r   r3   r)   ©	ÚlistÚzipr  ri   rj   rl   r4   r	   r   ©r9   r:   r%  Újr;   Úy2rS   ÚZ2s           r<   Ú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ð 		)ð 		)‰FˆQ�å”	—’˜q ! A¡#™w¨™zÑ*Ô*ˆAÝ”—’  1 Q¡3¡¨¡
Ñ+Ô+ˆBØ—
’
˜1‘”ˆAØ—’˜B‘”ˆBÝ˜‘
”
ˆAÝ˜‘”ˆBÝ! ! RÑ(Ô(Ð(Ð(Ð(Ý! " aÑ(Ô(Ð(Ð(Ð(Ð(ð		)ð 		)r>   c                 óØ  — t          t          t          t          dd¦  «        ¦  «        t          t          dd¦  «        ¦  «        ¦  «        ¦  «        t          t          t          t          dd¦  «        ¦  «        t          t          dd¦  «        ¦  «        ¦  «        ¦  «        z   D ]Á\  }}t          j                             ||dz
  z  dz  ¦  «        }t          j                             ||dz
  z  dz  ¦  «        }|                     |¦  «        }|                     |¦  «        }t          |¦  «        }t          |¦  «        }t          ||¦  «        rJ ‚t          ||¦  «        rJ ‚ŒÂd S )Nrf   r·   é   é   r)   r’  r•  s           r<   Útest_correspond_4_and_up_2z)TestCorrespond.test_correspond_4_and_up_2©  s/  € õ �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ð 		)ð 		)‰FˆQ�å”	—’˜q ! A¡#™w¨™zÑ*Ô*ˆAÝ”—’  1 Q¡3¡¨¡
Ñ+Ô+ˆBØ—
’
˜1‘”ˆAØ—’˜B‘”ˆBÝ˜‘
”
ˆAÝ˜‘”ˆBÝ! ! RÑ(Ô(Ð(Ð(Ð(Ý! " aÑ(Ô(Ð(Ð(Ð(Ð(ð		)ð 		)r>   c                 ó  — t          dd¦  «        D ]r}t          j                             |d¦  «        }t	          |¦  «        }|                     |¦  «        }t          |¦  «        }t          t          |¦  «        |¦  «         Œsd S )Nrf   r¸   r´   )	r  ri   rj   rl   r$   r4   r	   r   r   )r9   r:   ro   r`   rì   rS   s         r<   Ú!test_num_obs_linkage_multi_matrixz0TestCorrespond.test_num_obs_linkage_multi_matrix·  sx   € å�q˜"‘”ð 	0ð 	0ˆAÝ”	—’˜q !Ñ$Ô$ˆAÝ�a‘”ˆAØ—
’
˜1‘”ˆAÝ˜‘
”
ˆAÝ�¨Ñ+Ô+¨QÑ/Ô/Ð/Ð/ð	0ð 	0r>   N)rx   ry   rz   rŽ  r�  r™  r�  rŸ  r{   r>   r<   rŒ  rŒ  „  s_   € € € € € ð4ð 4ð 4ð&ð &ð &ð)ð )ð )ð)ð )ð )ð0ð 0ð 0ð 0ð 0r>   rŒ  c                   óz   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Z ed
dgd¬¦  «        d„ ¦   «         Zd„ ZdS )ÚTestIsMonotonicc                 ót   — |                      d|j        ¬¦  «        }t          t          t          |¦  «         d S rq  )rA   rž   r6   r7   r   r;  s      r<   Útest_is_monotonic_emptyz'TestIsMonotonic.test_is_monotonic_emptyÄ  s1   € à�HŠH�V 2¤:ˆHÑ.Ô.ˆÝ•j¥,°Ñ2Ô2Ð2Ð2Ð2r>   c                 óf   — |                      g d¢g|j        ¬¦  «        }t          |¦  «        sJ ‚d S )N©r   r)   ç333333Ó?rf   rœ   ©r4   rž   r   r;  s      r<   Útest_is_monotonic_1x4z%TestIsMonotonic.test_is_monotonic_1x4É  s8   € à�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝ˜A‰ŒÐÐÐÐÐr>   c                 ól   — |                      g d¢g d¢g|j        ¬¦  «        }t          |¦  «        sJ ‚d S )Nr¥  )rf   r   çš™™™™™Ù?r   rœ   r§  r;  s      r<   Útest_is_monotonic_2x4_Tz'TestIsMonotonic.test_is_monotonic_2x4_TÎ  sI   € à�JŠJ˜˜˜Ø&˜˜ð(Ø/1¬zð ñ ;ô ;ˆå˜A‰ŒÐÐÐÐÐr>   c                 ól   — |                      g d¢g d¢g|j        ¬¦  «        }t          |¦  «        rJ ‚d S )N)r   r)   rª  rf   )rf   r   r¦  r   rœ   r§  r;  s      r<   Útest_is_monotonic_2x4_Fz'TestIsMonotonic.test_is_monotonic_2x4_FÔ  sI   € à�JŠJ˜˜˜Ø&˜˜ð(Ø/1¬zð ñ ;ô ;ˆå ‘?”?Ð"Ð"Ð"Ð"Ð"r>   c                 ór   — |                      g d¢g d¢g d¢g|j        ¬¦  «        }t          |¦  «        sJ ‚d S )Nr¥  ©rf   r   rª  rf   ©r´   r3   g333333ã?r´   rœ   r§  r;  s      r<   Útest_is_monotonic_3x4_Tz'TestIsMonotonic.test_is_monotonic_3x4_TÚ  sR   € à�JŠJ˜˜˜Ø&˜˜Ø&˜˜ð(à/1¬zð ñ ;ô ;ˆõ ˜A‰ŒÐÐÐÐÐr>   c                 ór   — |                      g d¢g d¢g d¢g|j        ¬¦  «        }t          |¦  «        rJ ‚d S )Nr¥  )rf   r   çš™™™™™É?rf   r°  rœ   r§  r;  s      r<   Útest_is_monotonic_3x4_F1z(TestIsMonotonic.test_is_monotonic_3x4_F1á  óR   € à�JŠJ˜˜˜Ø&˜˜Ø&˜˜ð(à/1¬zð ñ ;ô ;ˆõ   ‘?”?Ð"Ð"Ð"Ð"Ð"r>   c                 ór   — |                      g d¢g d¢g d¢g|j        ¬¦  «        }t          |¦  «        rJ ‚d S )N)r   r)   gš™™™™™é?rf   r¯  r°  rœ   r§  r;  s      r<   Útest_is_monotonic_3x4_F2z(TestIsMonotonic.test_is_monotonic_3x4_F2è  rµ  r>   c                 ór   — |                      g d¢g d¢g d¢g|j        ¬¦  «        }t          |¦  «        rJ ‚d S )Nr¥  r¯  )r´   r3   r³  r´   rœ   r§  r;  s      r<   Útest_is_monotonic_3x4_F3z(TestIsMonotonic.test_is_monotonic_3x4_F3ï  rµ  r>   c                 ó‚   — t          |                     t          j        ¦  «        d¦  «        }t	          |¦  «        sJ ‚d S ©Nr   ©r	   r4   r*   rQ   r   r;  s      r<   Ú test_is_monotonic_tdist_linkage1z0TestIsMonotonic.test_is_monotonic_tdist_linkage1ö  s;   € õ �B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆÝ˜A‰ŒÐÐÐÐÐr>   rF  rG  TrH  c                 óŒ   — t          |                     t          j        ¦  «        d¦  «        }d|d<   t	          |¦  «        rJ ‚d S )Nr   r2   )rf   rf   r¼  r;  s      r<   Ú test_is_monotonic_tdist_linkage2z0TestIsMonotonic.test_is_monotonic_tdist_linkage2ü  sD   € õ �B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆØˆˆ#‰Ý ‘?”?Ð"Ð"Ð"Ð"Ð"r>   c                 ó†   — |                      t          j        ¦  «        }t          |d¦  «        }t	          |¦  «        sJ ‚d S r»  )r4   r*   rÓ   r	   r   )r9   r:   r`   rS   s       r<   Útest_is_monotonic_Q_linkagez+TestIsMonotonic.test_is_monotonic_Q_linkage  s@   € ð �JŠJÕ*Ô.Ñ/Ô/ˆÝ�A�xÑ Ô ˆÝ˜A‰ŒÐÐÐÐÐr>   N)rx   ry   rz   r£  r¨  r«  r­  r±  r´  r·  r¹  r½  r,   r¿  rÁ  r{   r>   r<   r¡  r¡  Á  så   € € € € € ð3ð 3ð 3ð
ð ð ð
ð ð ð#ð #ð #ðð ð ð#ð #ð #ð#ð #ð #ð#ð #ð #ðð ð ð Ð�kØJÐKØ#ð%ñ %ô %ð#ð #ñ%ô %ð#ðð ð ð ð r>   r¡  c                   óz   — e Zd Zd„ Z eddgd¬¦  «        d„ ¦   «         Z eddgd¬¦  «        d„ ¦   «         Zd„ Zd	S )
ÚTestMaxDistsc                 ót   — |                      d|j        ¬¦  «        }t          t          t          |¦  «         d S rq  )rA   rž   r6   r7   r   r;  s      r<   Útest_maxdists_empty_linkagez(TestMaxDists.test_maxdists_empty_linkage  s1   € à�HŠH�V 2¤:ˆHÑ.Ô.ˆÝ•j¥(¨AÑ.Ô.Ð.Ð.Ð.r>   rF  rG  TrH  c                 ó¦   — |                      g d¢g|j        ¬¦  «        }t          |¦  «        }t          ||¦  «        }t	          ||d¬¦  «         d S )N©r   r)   r¦  r´   rœ   rg   rN   )r4   rž   r   Úcalculate_maximum_distancesr'   )r9   r:   rS   ÚMDÚ
expectedMDs        r<   Ú!test_maxdists_one_cluster_linkagez.TestMaxDists.test_maxdists_one_cluster_linkage  sW   € ð
 �JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝ�a‰[Œ[ˆÝ0°°BÑ7Ô7ˆ
Ý˜˜J¨UÐ3Ñ3Ô3Ð3Ð3Ð3r>   c                 ó<   — dD ]}|                       ||¦  «         Œd S ©N©r   rD   rX   rV   rW   )Úcheck_maxdists_Q_linkagerH   s      r<   Útest_maxdists_Q_linkagez$TestMaxDists.test_maxdists_Q_linkage   s7   € ð Kð 	6ð 	6ˆFØ×)Ò)¨&°"Ñ5Ô5Ð5Ð5ð	6ð 	6r>   c                 óÆ   — |                      t          j        ¦  «        }t          ||¦  «        }t	          |¦  «        }t          ||¦  «        }t          ||d¬¦  «         d S )Nrg   rN   )r4   r*   rÓ   r	   r   rÈ  r'   )r9   rI   r:   r`   rS   rÉ  rÊ  s          r<   rÏ  z%TestMaxDists.check_maxdists_Q_linkage'  s[   € à�JŠJÕ*Ô.Ñ/Ô/ˆÝ�A�vÑÔˆÝ�a‰[Œ[ˆÝ0°°BÑ7Ô7ˆ
Ý˜˜J¨UÐ3Ñ3Ô3Ð3Ð3Ð3r>   N)rx   ry   rz   rÅ  r,   rË  rÐ  rÏ  r{   r>   r<   rÃ  rÃ    s¨   € € € € € ð/ð /ð /ð
 Ð�kØJÐKØ#ð%ñ %ô %ð4ð 4ñ%ô %ð4ð Ð�kØJÐKØ#ð%ñ %ô %ð6ð 6ñ%ô %ð6ð4ð 4ð 4ð 4ð 4r>   rÃ  c                   ó¤   — e Zd Z ed¬¦  «        d„ ¦   «         Zd„ Z eddgd¬¦  «        d„ ¦   «         Z eddgd¬¦  «        d	„ ¦   «         Zd
„ ZdS )ÚTestMaxInconstsTr/   c                 ó®   — |                      d|j        ¬¦  «        }|                      d|j        ¬¦  «        }t          t          t          ||¦  «         d S rq  )rA   rž   r6   r7   r   ©r9   r:   rS   rZ  s       r<   Útest_maxinconsts_empty_linkagez.TestMaxInconsts.test_maxinconsts_empty_linkage2  sL   € ð �HŠH�V 2¤:ˆHÑ.Ô.ˆØ�HŠH�V 2¤:ˆHÑ.Ô.ˆÝ•j¥+¨q°!Ñ4Ô4Ð4Ð4Ð4r>   c                 óæ   — |                      g d¢g|j        ¬¦  «        }t          j                             dd¦  «        }|                      |¦  «        }t          t          t          ||¦  «         d S ©NrÇ  rœ   rf   r´   )r4   rž   ri   rj   rl   r6   r7   r   rÕ  s       r<   Útest_maxinconsts_difrow_linkagez/TestMaxInconsts.test_maxinconsts_difrow_linkage9  s`   € ð �JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝŒI�NŠN˜1˜aÑ Ô ˆØ�JŠJ�q‰MŒMˆÝ•j¥+¨q°!Ñ4Ô4Ð4Ð4Ð4r>   rF  rG  rH  c                 óê   — |                      g d¢g|j        ¬¦  «        }|                      g d¢g|j        ¬¦  «        }t          ||¦  «        }t          |||¬¦  «        }t	          ||d¬¦  «         d S )NrÇ  rœ   ©r   r   r   r¦  r  rg   rN   )r4   rž   r   Ú!calculate_maximum_inconsistenciesr'   )r9   r:   rS   rZ  rÉ  rÊ  s         r<   Ú$test_maxinconsts_one_cluster_linkagez4TestMaxInconsts.test_maxinconsts_one_cluster_linkageA  s~   € ð
 �JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆØ�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝ˜˜AÑÔˆÝ6°q¸!ÀÐCÑCÔCˆ
Ý˜˜J¨UÐ3Ñ3Ô3Ð3Ð3Ð3r>   c                 ó<   — dD ]}|                       ||¦  «         Œd S rÍ  )Úcheck_maxinconsts_Q_linkagerH   s      r<   Útest_maxinconsts_Q_linkagez*TestMaxInconsts.test_maxinconsts_Q_linkageL  s7   € ð Kð 	9ð 	9ˆFØ×,Ò,¨V°RÑ8Ô8Ð8Ð8ð	9ð 	9r>   c                 óê   — |                      t          j        ¦  «        }t          ||¦  «        }t	          |¦  «        }t          ||¦  «        }t          |||¬¦  «        }t          ||d¬¦  «         d S )Nr  rg   rN   )r4   r*   rÓ   r	   r   r   rÜ  r'   )r9   rI   r:   r`   rS   rZ  rÉ  rÊ  s           r<   rß  z+TestMaxInconsts.check_maxinconsts_Q_linkageS  so   € à�JŠJÕ*Ô.Ñ/Ô/ˆÝ�A�vÑÔˆÝ˜‰OŒOˆÝ˜˜AÑÔˆÝ6°q¸!ÀÐCÑCÔCˆ
Ý˜˜J¨UÐ3Ñ3Ô3Ð3Ð3Ð3r>   N)	rx   ry   rz   r,   rÖ  rÙ  rÝ  rà  rß  r{   r>   r<   rÓ  rÓ  0  sÐ   € € € € € àÐ˜tÐ$Ñ$Ô$ð5ð 5ñ %Ô$ð5ð5ð 5ð 5ð Ð�kØJÐKØ#ð%ñ %ô %ð4ð 4ñ%ô %ð4ð Ð�kØJÐKØ#ð%ñ %ô %ð9ð 9ñ%ô %ð9ð4ð 4ð 4ð 4ð 4r>   rÓ  c                   óÂ   — e Zd Zd„ Zd„ Z ed¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Z	 ed	d
gd¬¦  «        d„ ¦   «         Z
d„ Z ed	d
gd¬¦  «        d„ ¦   «         Zd„ ZdS )ÚTestMaxRStatc                 ó<   — dD ]}|                       ||¦  «         Œd S )N)gffffff
@r†   r´   )Úcheck_maxRstat_invalid_index©r9   r:   r%  s      r<   Útest_maxRstat_invalid_indexz(TestMaxRStat.test_maxRstat_invalid_index_  s4   € Øð 	5ð 	5ˆAØ×-Ò-¨a°Ñ4Ô4Ð4Ð4ð	5ð 	5r>   c                 ó$  — |                      g d¢g|j        ¬¦  «        }|                      g d¢g|j        ¬¦  «        }t          |t          ¦  «        rt	          t
          t          |||¦  «         d S t	          t          t          |||¦  «         d S )NrÇ  rœ   rÛ  )r4   rž   Ú
isinstancer  r6   r7   r   r:  ©r9   r%  r:   rS   rZ  s        r<   rå  z)TestMaxRStat.check_maxRstat_invalid_indexc  sˆ   € à�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆØ�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝ�a�ÑÔð 	8Ý�*¥h°°1°aÑ8Ô8Ð8Ð8Ð8å�)¥X¨q°!°QÑ7Ô7Ð7Ð7Ð7r>   Tr/   c                 óV   — t          d¦  «        D ]}|                      ||¦  «         Œd S ©Nr´   )r  Úcheck_maxRstat_empty_linkageræ  s      r<   Útest_maxRstat_empty_linkagez(TestMaxRStat.test_maxRstat_empty_linkagel  s:   € å�q‘”ð 	5ð 	5ˆAØ×-Ò-¨a°Ñ4Ô4Ð4Ð4ð	5ð 	5r>   c                 ó°   — |                      d|j        ¬¦  «        }|                      d|j        ¬¦  «        }t          t          t          |||¦  «         d S rq  )rA   rž   r6   r7   r   rê  s        r<   rí  z)TestMaxRStat.check_maxRstat_empty_linkageq  sL   € à�HŠH�V 2¤:ˆHÑ.Ô.ˆØ�HŠH�V 2¤:ˆHÑ.Ô.ˆÝ•j¥(¨A¨q°!Ñ4Ô4Ð4Ð4Ð4r>   c                 óV   — t          d¦  «        D ]}|                      ||¦  «         Œd S rì  )r  Úcheck_maxRstat_difrow_linkageræ  s      r<   Útest_maxRstat_difrow_linkagez)TestMaxRStat.test_maxRstat_difrow_linkagew  s:   € Ý�q‘”ð 	6ð 	6ˆAØ×.Ò.¨q°"Ñ5Ô5Ð5Ð5ð	6ð 	6r>   c                 óè   — |                      g d¢g|j        ¬¦  «        }t          j                             dd¦  «        }|                      |¦  «        }t          t          t          |||¦  «         d S rØ  )r4   rž   ri   rj   rl   r6   r7   r   rê  s        r<   rñ  z*TestMaxRStat.check_maxRstat_difrow_linkage{  sb   € ð �JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝŒI�NŠN˜1˜aÑ Ô ˆØ�JŠJ�q‰MŒMˆÝ•j¥(¨A¨q°!Ñ4Ô4Ð4Ð4Ð4r>   rF  rG  rH  c                 óV   — t          d¦  «        D ]}|                      ||¦  «         Œd S rì  )r  Ú"check_maxRstat_one_cluster_linkageræ  s      r<   Ú!test_maxRstat_one_cluster_linkagez.TestMaxRStat.test_maxRstat_one_cluster_linkageƒ  s<   € õ �q‘”ð 	;ð 	;ˆAØ×3Ò3°A°rÑ:Ô:Ð:Ð:ð	;ð 	;r>   c                 óì   — |                      g d¢g|j        ¬¦  «        }|                      g d¢g|j        ¬¦  «        }t          ||d¦  «        }t          ||d|¦  «        }t	          ||d¬¦  «         d S )NrÇ  rœ   rÛ  r)   rg   rN   )r4   rž   r   rÜ  r'   )r9   r%  r:   rS   rZ  rÉ  rÊ  s          r<   rõ  z/TestMaxRStat.check_maxRstat_one_cluster_linkageŠ  s}   € à�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆØ�JŠJ˜˜˜Ð'¨r¬zˆJÑ:Ô:ˆÝ�a˜˜AÑÔˆÝ6°q¸!¸QÀÑCÔCˆ
Ý˜˜J¨UÐ3Ñ3Ô3Ð3Ð3Ð3r>   c                 ób   — dD ]+}t          d¦  «        D ]}|                      |||¦  «         ŒŒ,d S )NrÎ  r´   )r  Úcheck_maxRstat_Q_linkage)r9   r:   rI   r%  s       r<   Útest_maxRstat_Q_linkagez$TestMaxRStat.test_maxRstat_Q_linkage’  sS   € ð Kð 	=ð 	=ˆFÝ˜1‘X”Xð =ð =�Ø×-Ò-¨f°a¸Ñ<Ô<Ð<Ð<ð=ð	=ð 	=r>   c                 óì   — |                      t          j        ¦  «        }t          ||¦  «        }t	          |¦  «        }t          ||d¦  «        }t          ||d|¦  «        }t          ||d¬¦  «         d S )Nr)   rg   rN   )r4   r*   rÓ   r	   r   r   rÜ  r'   )	r9   rI   r%  r:   r`   rS   rZ  rÉ  rÊ  s	            r<   rù  z%TestMaxRStat.check_maxRstat_Q_linkageš  sp   € à�JŠJÕ*Ô.Ñ/Ô/ˆÝ�A�vÑÔˆÝ˜‰OŒOˆÝ�a˜˜AÑÔˆÝ6°q¸!¸QÀÑCÔCˆ
Ý˜˜J¨UÐ3Ñ3Ô3Ð3Ð3Ð3r>   N)rx   ry   rz   rç  rå  r,   rî  rí  rò  rñ  rö  rõ  rú  rù  r{   r>   r<   rã  rã  ]  s  € € € € € ð5ð 5ð 5ð8ð 8ð 8ð Ð˜tÐ$Ñ$Ô$ð5ð 5ñ %Ô$ð5ð5ð 5ð 5ð6ð 6ð 6ð5ð 5ð 5ð Ð�kØJÐKØ#ð%ñ %ô %ð;ð ;ñ%ô %ð;ð4ð 4ð 4ð Ð�kØJÐKØ#ð%ñ %ô %ð=ð =ñ%ô %ð=ð
4ð 4ð 4ð 4ð 4r>   rã  c                   ó  — e Zd Zd„ Zd„ Zd„ Zej                             e	 d¬¦  «        d„ ¦   «         Z
ej                             e	 d¬¦  «        d„ ¦   «         Zd„ Zej                             e	 d¬¦  «        d	„ ¦   «         Zd
„ Zd„ Zd„ ZdS )ÚTestDendrogramc                 ó¶   — t          |                     t          j        ¦  «        d¦  «        }t	          |d¬¦  «        }|d         }t          |g d¢¦  «         d S )Nr   T©Úno_plotÚleaves©rf   r3   r)   r   r   r´   )r	   r4   r*   rQ   r   r   )r9   r:   rS   rZ  r  s        r<   Ú$test_dendrogram_single_linkage_tdistz3TestDendrogram.test_dendrogram_single_linkage_tdist§  sY   € å�B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆÝ�q $Ð'Ñ'Ô'ˆØ�8”ˆÝ�VÐ/Ð/Ð/Ñ0Ô0Ð0Ð0Ð0r>   c                 óš   — t          |                     t          j        ¦  «        d¦  «        }t	          t
          t          |d¬¦  «         d S )Nr   Úfoo©Úorientation)r	   r4   r*   rQ   r6   r7   r   r;  s      r<   Útest_valid_orientationz%TestDendrogram.test_valid_orientation®  s>   € Ý�B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆÝ•j¥*¨a¸UÐCÑCÔCÐCÐCÐCr>   c                 óæ   — t          |                     t          j        ¦  «        d¦  «        }g d¢}t	          ||                     |¦  «        d¬¦  «        }t	          ||d¬¦  «        }||k    sJ ‚d S )Nr   )r)   r   rf   r³   r´   r3   T)Úlabelsr   )r	   r4   r*   rQ   r   )r9   r:   rS   r
  Úresult1Úresult2s         r<   Útest_labels_as_array_or_listz+TestDendrogram.test_labels_as_array_or_list²  sw   € å�B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆØ#Ð#Ð#ˆÝ˜Q r§z¢z°&Ñ'9Ô'9À4ÐHÑHÔHˆÝ˜Q v°tÐ<Ñ<Ô<ˆØ˜'Ò!Ð!Ð!Ð!Ð!Ð!r>   zno matplotlib)Úreasonc           	      óþ  — |                      g d¢g d¢g d¢g¦  «        }t          j        ¦   «          t          j        t
          ¦  «        5 }t          |t          t          d¦  «        ¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   dt          |j
        ¦  «        v sJ ‚t          j        t
          d¬¦  «        5  t          |g ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «          d S )N)r   r)   r«   r´   )rf   r   r«   r3   )r´   r3   r­   r³   éd   )r
  z.Dimensions of Z and labels must be consistent.)Úmatch)r4   ÚpltÚfigureÚpytestr   r7   r   r“  r  ÚstrÚvalueÚclose)r9   r:   ÚlinkÚexc_infos       r<   Útest_valid_label_sizez$TestDendrogram.test_valid_label_sizeº  s€  € à�zŠzØˆ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                 ó<   — dD ]}|                       ||¦  «         Œd S )N)ÚtopÚbottomÚleftÚright)Úcheck_dendrogram_plot)r9   r:   r  s      r<   Útest_dendrogram_plotz#TestDendrogram.test_dendrogram_plotÎ  s4   € à=ð 	8ð 	8ˆKØ×&Ò& {°BÑ7Ô7Ð7Ð7ð	8ð 	8r>   c                 ó(  — t          |                     t          j        ¦  «        d¦  «        }g d¢g d¢g d¢g d¢g d¢g d¢gg d¢g d	¢g d
¢g d¢g d¢gg d¢g d¢g d¢dœ}t	          j        ¦   «         }|                     d¦  «        }t          |||¬¦  «        }t          j        |d         ¦  «        |d<   t          ||¦  «         t          |||dd¬¦  «         |dv r| 
                    ¦   «         d         n|                     ¦   «         d         }t          |                     ¦   «         d¦  «         t          |                     ¦   «         d¦  «         t          |||d¬¦  «         |dv r| 
                    ¦   «         d         n|                     ¦   «         d         }t          |                     ¦   «         d¦  «         t          |||d¬¦  «         |dv r| 
                    ¦   «         d         n|                     ¦   «         d         }t          |                     ¦   «         d¦  «         t	          j        ¦   «          t          ||¬¦  «        }	t	          j        ¦   «          t          j        |	d         ¦  «        |	d<   t          |	|¦  «         d S )Nr   )ÚC1ÚC0r$  r$  r$  ©r2   rº   rº   r2   )r2   r¼   r¼   r2   )r2   r½   r½   r¼   ©r2   r¾   r¾   r½   ©rº   rÀ   rÀ   r¾   ©r¹   r¹   ç      .@r)  )ç     €F@r*  ç     €K@r+  )ç     €A@r,  ç      I@r-  )ç      9@r.  ç     @E@r/  )ç      $@r0  ç     à@@r1  )Ú2Ú5Ú1Ú0Ú3Ú4r  )r#  r#  r$  r$  r$  r$  ©Ú
color_listÚdcoordÚicoordÚivlr  Úleaves_color_listéÝ   )Úaxr  r:  re   éZ   )r?  r  Úleaf_font_sizeÚleaf_rotation)r  r  r   )r?  r  rB  )r?  r  rA  r  )r	   r4   r*   rQ   r  r  Úadd_subplotr   ri   r   Úget_xticklabelsÚget_yticklabelsÚget_rotationÚget_sizer  )
r9   r  r:   rS   ÚexpectedÚfigr?  ÚR1Ú	testlabelÚR2s
             r<   r   z$TestDendrogram.check_dendrogram_plotÓ  s  € å�B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆØ"@Ð"@Ð"@Ø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Ð:Ñ:Ô:ˆÝ”z " X¤,Ñ/Ô/ˆˆ8‰Ý�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ˆÝŒ	‰ŒˆÝ”z " X¤,Ñ/Ô/ˆˆ8‰Ý�R˜Ñ"Ô"Ð"Ð"Ð"r>   c           
      ó"  — t          |                     t          j        ¦  «        d¦  «        }t	          |ddd¬¦  «        }t          j        ¦   «          t          j        |d         ¦  «        |d<   t          |dgg d¢gg d	¢gd
dgddgddgdœ¦  «         t	          |ddd¬¦  «        }t          j        ¦   «          t          j        |d         ¦  «        |d<   t          |g d¢g d¢g d¢g d¢g d¢gg d	¢g d¢g d¢g d¢gg d¢g d¢g d¢dœ¦  «         d S )Nr   rf   ÚlastpT)Úshow_contractedr:  r$  )r2   rÀ   rÀ   r2   r(  ú(2)z(4)r³   r¶   r8  Úmtica)r#  r$  r$  r$  r%  )r2   r½   r½   r2   r&  r'  )r,  r,  r*  r*  )r.  r.  ç      D@rR  )r0  r0  ç     @@@rS  )r2  r3  r4  r5  rP  )rf   r3   r)   r   r·   )r#  r#  r$  r$  r$  )	r	   r4   r*   rQ   r   r  r  ri   r   rÕ  s       r<   Útest_dendrogram_truncate_modez,TestDendrogram.test_dendrogram_truncate_mode  sƒ  € å�B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆå�q˜!˜W°dÐ;Ñ;Ô;ˆÝŒ	‰ŒˆÝ”j  8¤Ñ-Ô-ˆˆ(‰Ý�Q¨ vØ$<Ð$<Ð$<Ð#=Ø$:Ð$:Ð$:Ð#;Ø!&¨ Ø$% q 6Ø/3°T¨lðð ñ 	ô 	ð 	õ �q˜!˜W°dÐ;Ñ;Ô;ˆÝŒ	‰ŒˆÝ”j  8¤Ñ-Ô-ˆˆ(‰Ý�QÐ'?Ð'?Ð'?Ø$<Ð$<Ð$<Ø$<Ð$<Ð$<Ø$>Ð$>Ð$>Ø$@Ð$@Ð$@ð$Bð %;Ð$:Ð$:Ø$<Ð$<Ð$<Ø$<Ð$<Ð$<Ø$<Ð$<Ð$<ð$>ð !<Ð ;Ð ;Ø#2 ? ?Ø.LÐ.LÐ.Lðð ñ 	ô 	ð 	ð 	ð 	r>   c                 ó  — t          |                     t          j        ¦  «        d¦  «        }t	          g d¢¦  «         t          |ddd¬¦  «        }t	          g d¢¦  «         |d         }t          |g d	¢¦  «         t	          d ¦  «         d S )
Nr   )r£   Úmr;   r#  TÚgéú   )r   Úabove_threshold_colorÚcolor_threshold)rW  Úrr£   rV  r;   r#  r9  )r£   rV  rW  rW  rW  )r	   r4   r*   rQ   r   r   r   )r9   r:   rS   rZ  r9  s        r<   Útest_dendrogram_colorsz%TestDendrogram.test_dendrogram_colors1  s¡   € å�B—J’JÕ2Ô9Ñ:Ô:¸HÑEÔEˆåÐ3Ð3Ð3Ñ4Ô4Ð4Ý�q $Ø-0À#ðGñ Gô GˆåÐ=Ð=Ð=Ñ>Ô>Ð>à�|”_ˆ
Ý�ZÐ!:Ð!:Ð!:Ñ;Ô;Ð;õ 	˜tÑ$Ô$Ð$Ð$Ð$r>   c           	      óÎ   — |                      g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          |d¦  «        }t          |d¬¦  «        }g d¢}|d	         }t          ||¦  «         d S )
N©r)   r   r   ©r   r   r)   ©r   rf   r   ©r   r)   r   r   Trÿ  ©r$  r#  r#  r$  ÚC2rc  r=  ©r4   r	   r   r   ©r9   r:   ÚxÚzrp   Ú
exp_colorsÚcolorss          r<   Ú%test_dendrogram_leaf_colors_zero_distz4TestDendrogram.test_dendrogram_leaf_colors_zero_dist@  s”   € ð �JŠJ˜	˜	˜	Ø!˜	˜	Ø!˜	˜	Ø!˜	˜	Ø!˜	˜	Ø!˜	˜	ð#ñ $ô $ˆõ �A�xÑ Ô ˆÝ�q $Ð'Ñ'Ô'ˆØ9Ð9Ð9ˆ
ØÐ&Ô'ˆÝ�V˜ZÑ(Ô(Ð(Ð(Ð(r>   c           	      óÎ   — |                      g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          |d¦  «        }t          |d¬¦  «        }g d	¢}|d
         }t          ||¦  «         d S )Nr^  )r   r   gš™™™™™ñ?r`  r_  ra  r   Trÿ  rb  r=  rd  re  s          r<   Útest_dendrogram_leaf_colorsz*TestDendrogram.test_dendrogram_leaf_colorsO  s”   € ð �JŠJ˜	˜	˜	Ø#˜˜Ø!˜	˜	Ø!˜	˜	Ø!˜	˜	Ø!˜	˜	ð#ñ $ô $ˆõ �A�xÑ Ô ˆÝ�q $Ð'Ñ'Ô'ˆØ9Ð9Ð9ˆ
ØÐ&Ô'ˆÝ�V˜ZÑ(Ô(Ð(Ð(Ð(r>   N)rx   ry   rz   r  r  r  r  ÚmarkÚskipifÚhave_matplotlibr  r!  r   rT  r\  rj  rl  r{   r>   r<   rý  rý  ¤  s   € € € € € ð1ð 1ð 1ðDð Dð Dð"ð "ð "ð „[×Ò˜OÐ+°OÐÑDÔDðð ñ EÔDðð& „[×Ò˜OÐ+°OÐÑDÔDð8ð 8ñ EÔDð8ð<#ð <#ð <#ð| „[×Ò˜OÐ+°OÐÑDÔDðð ñ EÔDðð>%ð %ð %ð)ð )ð )ð)ð )ð )ð )ð )r>   rý  c                 óô  — | j         d         dz   }|                     |dz
  f| j        ¬¦  «        }|                     d¦  «        }t          d|dz
  ¦  «        D ]ž}d|d d …<   | |df         }| |df         }||k    r(||                     ||j        ¬¦  «        |z
           |d<   ||k    r(||                     ||j        ¬¦  «        |z
           |d<   | |df         |d<   |                     |¦  «        ||<   ŒŸ|S ©Nr   r)   rœ   )r   r2   rf   )r  rA   r�   r  r4   r9  Úmax)rS   r:   ro   ÚBÚqr%  r  r  s           r<   rÈ  rÈ  _  s  € à	Œ�Œ
�Q‰€AØ
�Š�!�A‘#�˜qœwˆÑ'Ô'€AØ
�Š�‰Œ€AÝ�1�a˜!‘e‰_Œ_ð 	ð 	ˆØˆˆ!ˆ!ˆ!‰Ø��A�ŒwˆØ�!�Q�$”ˆØ�1Š9ˆ9Ø�R—Z’Z ¨B¬H�ZÑ5Ô5¸Ñ9Ô:ˆAˆa‰DØ�AŠ:ˆ:Ø�R—Z’Z ¨R¬X�ZÑ6Ô6¸Ñ:Ô;ˆAˆa‰DØ��A�Œwˆˆ!‰Ø�vŠv�a‰yŒyˆˆ!‰ˆØ€Hr>   r   c                 ó  — | j         d         dz   }|                     | |¦  «        }|                     |dz
  f|¬¦  «        }|                     d¦  «        }t          d|dz
  ¦  «        D ]ž}d|d d …<   | |df         }	| |df         }
|	|k    r(||                     |	|j        ¬¦  «        |z
           |d<   |
|k    r(||                     |
|j        ¬¦  «        |z
           |d<   |||f         |d<   |                     |¦  «        ||<   ŒŸ|S rq  )r  Úresult_typerA   r  r4   r9  rr  )rS   rZ  r#  r:   ro   r�   rs  rt  r%  r  r  s              r<   rÜ  rÜ  q  s  € à	Œ�Œ
�Q‰€AØ�NŠN˜1˜aÑ Ô €EØ
�Š�!�A‘#�˜uˆÑ%Ô%€AØ
�Š�‰Œ€AÝ�1�a˜!‘e‰_Œ_ð 	ð 	ˆØˆˆ!ˆ!ˆ!‰Ø��A�ŒwˆØ�!�Q�$”ˆØ�1Š9ˆ9Ø�R—Z’Z ¨B¬H�ZÑ5Ô5¸Ñ9Ô:ˆAˆa‰DØ�AŠ:ˆ:Ø�R—Z’Z ¨R¬X�ZÑ6Ô6¸Ñ:Ô;ˆAˆa‰DØ��A�Œwˆˆ!‰Ø�vŠv�a‰yŒyˆˆ!‰ˆØ€Hr>   c           	      ón   — t          t          t          |                      ddgddgg¦  «        ¦  «         d S )Nr   r)   )r   r   r	   r4   r  s    r<   Ú<test_unsupported_uncondensed_distance_matrix_linkage_warningrx  „  s3   € å•¥¨"¯*ª*°q¸!°f¸qÀ!¸fÐ5EÑ*FÔ*FÑGÔGÐGÐGÐGr>   c           
      ó¦   — t           j        j        j        D ]9}t	          t
          t          |                      ddgddgg¦  «        |d¬¦  «         Œ:d S )Nr)   Ú	cityblock©rI   r_   )ra   ÚclusterÚ	hierarchyÚ_EUCLIDEAN_METHODSr6   r7   r	   r4   )r:   rI   s     r<   Ú"test_euclidean_linkage_value_errorr  ‰  sc   € Ý”-Ô)Ô<ð 9ð 9ˆÝ•j¥'¨2¯:ª:¸¸1°vÀÀ1¸vÐ6FÑ+GÔ+GØ#¨Kð	9ñ 	9ô 	9ð 	9ð 	9ð9ð 9r>   c                 óÌ   — t          |                      dg¦  «        dd¬¦  «        }t          |                      ddgddgg¦  «        dd¬¦  «        }t          ||d¬¦  «         d S )Nr)   r   r^   r{  r   rg   r¯   )r	   r4   r'   )r:   ÚZ1r˜  s      r<   Útest_2x2_linkager‚  �  sj   € å	�—’˜Q˜C‘”¨¸+Ð	FÑ	FÔ	F€BÝ	�—’˜a ˜V a¨ VÐ,Ñ-Ô-°hÀ{Ð	SÑ	SÔ	S€BÝ�B˜ Ð'Ñ'Ô'Ð'Ð'Ð'r>   c                 ó¬  — t           j                             d¦  «         d}t           j                             |d¦  «        }|                      |¦  «        }t
          j        j                             |¦  «        }t          |¦  «        }t          ||                     ¦   «         k    ¦  «         t          |                     ¦   «         |                     ¦   «         k    ¦  «         t          |                     ¦   «         |                     ¦   «         k    ¦  «         t          |                     ¦   «         |                     ¦   «         k    ¦  «         d S )Né   é2   r´   )ri   rj   ÚseedÚrandnr4   ra   r|  r}  rX   r   r   rˆ  r‰  )r:   r  r`   rS   Útrees        r<   Útest_node_comparer‰  –  sô   € å„I‡N‚N�2ÑÔÐØ€DÝ
Œ	�Š˜˜aÑ Ô €AØ
�
Š
�1‰Œ€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Ð0r>   z%`cut_tree` uses non-standard indexingc           	      óf  — t           j                             d¦  «         d}t           j                             |d¦  «        }|                      |¦  «        }t
          j        j                             |¦  «        }t          |¦  «        }t          |d d …df         |                      |¦  «        dd¬¦  «         t          |d d …df         |                      |¦  «        dd¬¦  «         t          t          j        |¦  «                             d¦  «        t          j        |d	z
  dd¦  «        ¦  «         t          |d d …d
gf         t          |d¬¦  «        d¬¦  «         t          |d d …d
dgf         t          |ddg¬¦  «        d¬¦  «         t          |d d …dd
gf         t          |ddg¬¦  «        d¬¦  «         t          |¦  «        }|                      d„ |D ¦   «         ¦  «        }t          |d d …t          j        |dg¦  «        f         t          |d¬¦  «        d¬¦  «         t          |d d …t          j        |ddg¦  «        f         t          |ddg¬¦  «        d¬¦  «         t          |d d …t          j        |ddg¦  «        f         t          |ddg¬¦  «        d¬¦  «         d S )Nr„  r…  r´   r   rg   F)rh   Úcheck_dtyper†   r)   éûÿÿÿr3   )Ú
n_clustersr¯   iöÿÿÿr¸   c                 ó   — g | ]	}|j         ‘Œ
S r{   )Údist)Ú.0r†  s     r<   ú
<listcomp>z!test_cut_tree.<locals>.<listcomp>·  s   € Ð6Ð6Ð6¨˜$œ)Ð6Ð6Ð6r>   )Úheight)ri   rj   r†  r‡  r4   ra   r|  r}  rX   r   r'   ÚarangerA   r   rr  r!   Úsearchsorted)r:   r  r`   rS   ÚcutreeÚnodesÚheightss          r<   Útest_cut_treer˜  ¤  s°  € å„I‡N‚N�2ÑÔÐØ€DÝ
Œ	�Š˜˜aÑ Ô €AØ
�
Š
�1‰Œ€AÝŒÔ×$Ò$ QÑ'Ô'€AÝ�a‰[Œ[€Fõ �F˜1˜1˜1˜a˜4”L "§)¢)¨D¡/¤/¸È5ÐQÑQÔQÐQÝ�F˜1˜1˜1˜b˜5”M 2§8¢8¨D¡>¤>¸È5ÐQÑQÔQÐQÝ•”˜FÑ#Ô#×'Ò'¨Ñ*Ô*­B¬I°d¸Q±hÀÀBÑ,GÔ,GÑHÔHÐHå�F˜1˜1˜1˜r˜d˜7”O¥X¨a¸AÐ%>Ñ%>Ô%>ÀUÐKÑKÔKÐKÝ�F˜1˜1˜1˜r 3˜i˜<Ô(­(°1À!ÀRÀÐ*IÑ*IÔ*IÐPUÐVÑVÔVÐVÝ�F˜1˜1˜1˜s B˜i˜<Ô(­(°1À"ÀaÀÐ*IÑ*IÔ*IÐPUÐVÑVÔVÐVå Ñ"Ô"€EØ�jŠjÐ6Ð6°Ð6Ñ6Ô6Ñ7Ô7€Gå�F˜1˜1˜1�bœo¨g¸°sÑ;Ô;Ð;Ô<Ý˜Q qÐ)Ñ)Ô)°ð7ñ 7ô 7ð 7å�F˜1˜1˜1�bœo¨g¸¸2°wÑ?Ô?Ð?Ô@Ý˜Q¨¨2 wÐ/Ñ/Ô/°eð=ñ =ô =ð =å�F˜1˜1˜1�bœo¨g¸¸A°wÑ?Ô?Ð?Ô@Ý˜Q¨¨A wÐ/Ñ/Ô/°eð=ñ =ô =ð =ð =ð =r>   c                 ó(  — t          t          |                      t          j        ¦  «        ¦  «        |                      t          j        ¦  «        ¦  «        }t          j        }t          ||                      |¦  «        d¬¦  «         t          t          |                      t          j        ¦  «        d¦  «        |                      t          j        ¦  «        ¦  «        }t          j        }t          ||                      |¦  «        d¬¦  «         d S )NrM   rN   rX   r]   )	r    r	   r4   r*   rQ   rv   r'   r`   Úlinkage_X_ward_olo)r:   rS   rT   s      r<   rw   rw   Á  sÜ   € õ 	�g b§j¢jÕ1DÔ1KÑ&LÔ&LÑMÔMØ ŸjšjÕ)<Ô)CÑDÔDñ	Fô 	F€Aå#Ô=€IÝ�A�r—z’z )Ñ,Ô,°5Ð9Ñ9Ô9Ð9õ 	�g b§j¢jÕ1DÔ1FÑ&GÔ&GÈÑPÔPØ ŸjšjÕ)<Ô)>Ñ?Ô?ñ	Aô 	A€Aå#Ô6€IÝ�A�r—z’z )Ñ,Ô,°5Ð9Ñ9Ô9Ð9Ð9Ð9r>   z"`Heap` only supports NumPy backendc                 óÊ  — |                       g d¢¦  «        }t          |¦  «        }|                     ¦   «         }t          |d         d¦  «         t          |d         d¦  «         |                     ¦   «          |                     ¦   «         }t          |d         d¦  «         t          |d         d¦  «         |                     dd¦  «         |                     ¦   «         }t          |d         d	¦  «         t          |d         d
¦  «         |                     ¦   «          |                     ¦   «          |                     dd¦  «         |                     ¦   «         }t          |d         d¦  «         t          |d         d¦  «         |                     ¦   «          |                     ¦   «         }t          |d         d¦  «         t          |d         d¦  «         d S )N)rf   r†   r   ç      ø¿r   Úkeyr   r  rœ  r)   r†   g      @rf   r   r¸   r´   )r4   r%   Úget_minr   Ú
remove_minÚchange_value)r:   ÚvaluesÚheapÚpairs       r<   Ú	test_Heapr¤  Ð  s   € à�ZŠZÐ+Ð+Ð+Ñ,Ô,€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” Ñ#Ô#Ð#Ð#Ð#r>   )YÚnumpyri   Únumpy.testingr   r   r   r   r  r   r6   Úscipy.cluster.hierarchyra   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   Úscipy.spatial.distancer$   Úscipy.cluster._hierarchyr%   Úscipy.conftestr&   Úscipy._lib._array_apir'   r(   Ú r*   Ú
matplotlibÚuseÚmatplotlib.pyplotÚpyplotr  ro  Ú	Exceptionrm  ÚusefixturesÚ
pytestmarkr,   r.   r}   rŠ   r”   r§   rÃ   rå   rô   r(  rW  ro  r{  rŒ  r¡  rÃ  rÓ  rã  rý  rÈ  rÜ  rx  r  r‚  r‰  r˜  rw   r¤  r{   r>   r<   ú<module>r´     sd  ðð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ð )Ð (Ð (Ð (Ð (Ð (Ø )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà !Ð !Ð !Ð !Ð !Ð !ð
ØÐÐÐà€J„N�5ÑÔÐà#Ð#Ð#Ð#Ð#Ð#Ø€O€OøØð ð ð Ø€O€O€Oðøøøð # F¤K×$;Ò$;Ð<NÑ$OÔ$OÐP€
Ø”;Ô/Ð ð:>ð :>ð :>ð :>ð :>ñ :>ô :>ð :>ðz Ð˜4Ð Ñ Ô ð>ð >ð >ð >ð >ñ >ô >ñ !Ô ð>ð> Ð˜4Ð Ñ Ô ð	Tð 	Tð 	Tð 	Tð 	Tñ 	Tô 	Tñ !Ô ð	Tð Ð˜4Ð Ñ Ô ð2ð 2ð 2ð 2ð 2ñ 2ô 2ñ !Ô ð2ð*$ð $ð $ð $ð $ñ $ô $ð $ðD Ð˜4Ð Ñ Ô ð0-ð 0-ð 0-ð 0-ð 0-ñ 0-ô 0-ñ !Ô ð0-ðf Ð˜4Ð Ñ Ô ðOð Oð Oð Oð Oñ Oô Oñ !Ô ðOð Ð˜$ØIÐJðLñ Lô LðV7ð V7ð V7ð V7ð V7ñ V7ô V7ñLô LðV7ðr Ð˜4Ð Ñ Ô ð\Gð \Gð \Gð \Gð \Gñ \Gô \Gñ !Ô ð\Gð~ Ð˜4Ð Ñ Ô ðRBð RBð RBð RBð RBñ RBô RBñ !Ô ðRBðj0ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ð< Ð˜4Ð Ñ Ô ð"$ð "$ð "$ð "$ð "$ñ "$ô "$ñ !Ô ð"$ðJ Ð˜4Ð Ñ Ô ð90ð 90ð 90ð 90ð 90ñ 90ô 90ñ !Ô ð90ðx Ð˜4Ð Ñ Ô ðIð Ið Ið Ið Iñ Iô Iñ !Ô ðIðX Ð˜4Ð Ñ Ô ð4ð 4ð 4ð 4ð 4ñ 4ô 4ñ !Ô ð4ðB*4ð *4ð *4ð *4ð *4ñ *4ô *4ð *4ðZD4ð D4ð D4ð D4ð D4ñ D4ô D4ð D4ðN Ð˜4Ð Ñ Ô ðw)ð w)ð w)ð w)ð w)ñ w)ô w)ñ !Ô ðw)ðtð ð ð$ /0°Bð ð ð ð ð& Ð˜4Ð Ñ Ô ðHð Hñ !Ô ðHð9ð 9ð 9ð Ð˜4Ð Ñ Ô ð(ð (ñ !Ô ð(ð Ð˜4Ð Ñ Ô ð
1ð 
1ñ !Ô ð
1ð Ð˜$Ð)PÐ(QÐRÑRÔRð=ð =ñ SÔRð=ð8 Ð˜4Ð Ñ Ô ð:ð :ñ !Ô ð:ð Ð˜$Ð)MÐ(NÐOÑOÔOð$ð $ñ PÔOð$ð $ð $s   Á<B ÂB#Â"B#