Ë
    0Ò^jOÇ  ã                   ó4  — 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
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&m'Z'm(Z(m)Z) d dl*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;c m<Z= d d	l>m?Z? d
dl@mAZA  G d„ d«      ZB	 d dlCZC eCjˆ                  d«       d dlEmFZG dZHej”                  j–                  ZK e5e«       G d„ d«      «       ZL e5e«       G d„ d«      «       ZM e5e«       G d„ d«      «       ZN e5ee«       G d„ d«      «       ZO e5e«       G d„ d«      «       ZP e5e«       G d„ d«      «       ZQ e5e«       G d„ d«      «       ZR e5e«       G d„ d «      «       ZS e5e«       G d!„ d"«      «       ZT e5e«       G d#„ d$«      «       ZU e5e«       G d%„ d&«      «       ZV e5e e«       G d'„ d(«      «       ZW e5e«       G d)„ d*«      «       ZX e5e«       G d+„ d,«      «       ZY e5e«       G d-„ d.«      «       ZZ e5e«       G d/„ d0«      «       Z[ e5e«       G d1„ d2«      «       Z\ e5e!«       G d3„ d4«      «       Z]d5„ Z^d6efd7„Z_ e5e«      d8„ «       Z` e5e#«      d9„ «       Za e5e$«      d:„ «       Zbd;„ Zcy# eI$ r dZHY �ŒÓw xY w)<é    N)Úassert_allcloseÚassert_equalÚassert_array_equalÚassert_)Úraises)ÚClusterWarningÚlinkageÚfrom_mlab_linkageÚto_mlab_linkageÚnum_obs_linkageÚinconsistentÚcophenetÚfclusterdataÚfclusterÚis_isomorphicÚsingleÚwardÚ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ÚcompleteÚaverageÚweightedÚcentroidÚmedian)ÚHeap)Ú_order_cluster_treeÚ
_hierarchyÚ_EUCLIDEAN_METHODSÚ_LINKAGE_METHODS)Úpdist)Úeager_warnsÚmake_xp_test_caseÚxp_assert_closeÚxp_assert_equalÚmake_xp_pytest_paramÚ_xp_copy_to_numpy©ÚLocké   )Úhierarchy_test_datac                   ó   — e Zd ZeZeZy)ÚeagerN)Ú__name__Ú
__module__Ú__qualname__r   r   © ó    úw/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/cluster/hierarchy/tests/test_hierarchy.pyr8   r8   =   s   „ ð €KØ'Ñr=   r8   ÚAggTFc                   ó  — e Zd Z edd¬«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zej                  j                  ddg d¢g d¢gfdg d¢g d¢gfdg d¢g d¢gfdg d¢g d¢gfdg d¢g d¢gfdg d¢g d¢gfdg d¢g d¢gfg«      d„ «       Zd„ Zej                  j                  de«      d„ «       Zd„ Z edd¬«      d„ «       Zej                  j                  deeeeeefD � ��cg c]  }t7        |«      ‘Œ c}}} «      d „ «       Zy!c c}}} w )"ÚTestLinkageú	jax.numpyú$Can't raise inside jax.pure_callback©Úreasonc                 ót   — |j                  |j                  gdgdz  z   «      }t        t        t        |«       y )Nç        é   )ÚasarrayÚnanÚassert_raisesÚ
ValueErrorr	   ©ÚselfÚxpÚys      r>   Ú3test_linkage_non_finite_elements_in_distance_matrixz?TestLinkage.test_linkage_non_finite_elements_in_distance_matrixV   s/   € ð �J‰J˜Ÿ™�x 3 %¨¡'Ñ)Ó*ˆÜ”j¤'¨1Õ-r=   c                 óP   — |j                  d«      }t        t        t        |«       y )N©r   )ÚzerosrK   rL   r	   rM   s      r>   Ú"test_linkage_empty_distance_matrixz.TestLinkage.test_linkage_empty_distance_matrix]   s   € à�H‰H�T‹NˆÜ”j¤'¨1Õ-r=   c                 ó6   — dD ]  }| j                  ||«       Œ y )N)r   r"   r#   r$   )Úcheck_linkage_tdist©rN   rO   Úmethods      r>   Útest_linkage_tdistzTestLinkage.test_linkage_tdistb   s!   € ØCò 	1ˆFØ×$Ñ$ V¨RÕ0ñ	1r=   c                 ó¶   — t        |j                  t        j                  «      |«      }t	        t        d|z   «      }t        ||j                  |«      d¬«       y )NÚlinkage_ytdist_ç»½×Ùß|Û=©Úatol©r	   rI   r6   ÚytdistÚgetattrr/   )rN   rY   rO   ÚZÚ	expectedZs        r>   rW   zTestLinkage.check_linkage_tdistf   sF   € ä�B—J‘JÔ2×9Ñ9Ó:¸FÓCˆÜÔ/Ð1BÀVÑ1KÓLˆ	Ü˜˜2Ÿ:™: iÓ0°uÖ=r=   c                 ó6   — dD ]  }| j                  ||«       Œ y )N)r%   r&   r   )Úcheck_linkage_qrX   s      r>   Útest_linkage_XzTestLinkage.test_linkage_Xl   s!   € Ø4ò 	-ˆFØ× Ñ  ¨Õ,ñ	-r=   c                 ó`  — t        |j                  t        j                  «      |«      }t	        t        d|z   «      }t        ||j                  |«      d¬«       |j                  t        j                  «      }t        |d¬«      }t        ||«      }t        ||j                  |«      d¬«       y )NÚ
linkage_X_ç�íµ ÷Æ°>r^   Ú	euclidean)Úmetric)r	   rI   r6   ÚXrb   r/   r,   )rN   rY   rO   rc   rd   rm   rP   s          r>   rf   zTestLinkage.check_linkage_qp   s‡   € ä�B—J‘JÔ2×4Ñ4Ó5°vÓ>ˆÜÔ/°ÀÑ1FÓGˆ	Ü˜˜2Ÿ:™: iÓ0°uÕ=à�J‰JÔ*×,Ñ,Ó-ˆÜ�!˜KÔ(ˆÜ�A�vÓˆÜ˜˜2Ÿ:™: iÓ0°uÖ=r=   c                 óX  — t         j                  j                  d«      }d}|j                  |d«      }t	        |«      }t        j                  «       D ]U  \  }}t        j                  |||«      }t        |j                  |«      |«      }	t        |	|j                  |«      dd¬«       ŒW y )Nr   é   é   g›+¡†›„=çVçž¯Ò<)Úrtolr_   )ÚnpÚrandomÚRandomStateÚrandr,   r+   Úitemsr)   r	   rI   r/   )
rN   rO   ÚrngÚnrm   ÚdrY   ÚcodeÚ	Z_trivialrc   s
             r>   Útest_compare_with_trivialz%TestLinkage.test_compare_with_trivial{   s�   € Ü�i‰i×#Ñ# AÓ&ˆØˆØ�H‰H�Q˜‹NˆÜ�!‹Hˆä,×2Ñ2Ó4ò 	N‰LˆF�DÜ"×*Ñ*¨1¨a°Ó6ˆIÜ˜Ÿ
™
 1› vÓ.ˆAÜ˜A˜rŸz™z¨)Ó4¸5ÀuÖMñ	Nr=   c                 ó²   — t        |j                  t        j                  «      d¬«      }t	        t        d«      }t        ||j                  |«      d¬«       y )NT)Úoptimal_orderingÚlinkage_ytdist_single_olor]   r^   r`   )rN   rO   rc   rd   s       r>   Útest_optimal_leaf_orderingz&TestLinkage.test_optimal_leaf_ordering†   sA   € Ü�B—J‘JÔ2×9Ñ9Ó:ÈTÔRˆÜÔ/Ð1LÓMˆ	Ü˜˜2Ÿ:™: iÓ0°uÖ=r=   zmethod,expectr   )r   r5   çß'Üež ö?rp   )rp   é   r‚   rƒ   r"   )rp   rƒ   gß'Üež @rƒ   r#   )rp   rƒ   gçeÌvø @rƒ   r$   r%   r&   r   )rp   rƒ   g€©Ž˜@rƒ   c                 ó¨   — |j                  ddgddgddgg«      }t        ||¬«      }|j                  ||j                  ¬«      }t        ||d¬«       y )Néÿÿÿÿr   r5   ©rY   ©Údtyperj   r^   )rI   r	   Úfloat64r/   )rN   rY   ÚexpectrO   rm   rc   s         r>   Útest_linkage_tieszTestLinkage.test_linkage_ties‹   sS   € ð" �J‰J˜˜R˜ 1 a &¨1¨a¨&Ð1Ó2ˆÜ�A˜fÔ%ˆØ—‘˜F¨"¯*©*�Ó5ˆÜ˜˜6¨Ö.r=   c                 ó”   — |j                  ddgddgg«      }t        t        |¬«      5  t        |«       d d d «       y # 1 sw Y   y xY w)Nr   r5   ©rO   )rI   r-   r   r	   ©rN   rO   rm   s      r>   Ú<test_unsupported_uncondensed_distance_matrix_linkage_warningzHTestLinkage.test_unsupported_uncondensed_distance_matrix_linkage_warning¡   sC   € Ø�J‰J˜˜A˜  A Ð'Ó(ˆÜœ¨BÔ/ñ 	Ü�AŒJ÷	÷ 	ñ 	ús	   ©>¾ArY   c                 óª   — |j                  ddgddgg«      }t        j                  t        «      5  t	        ||d¬«       d d d «       y # 1 sw Y   y xY w)Nr5   Ú	cityblock©rY   rl   ©rI   Úpytestr   rL   r	   )rN   rY   rO   rm   s       r>   Ú"test_euclidean_linkage_value_errorz.TestLinkage.test_euclidean_linkage_value_error¦   sJ   € à�J‰J˜˜A˜  A Ð'Ó(ˆÜ�]‰]œ:Ó&ñ 	:Ü�A˜f¨[Õ9÷	:÷ 	:ñ 	:ús   ±A	Á	Ac                 ó¢   — t        |j                  dg«      dd¬«      }t        |j                  ddgddgg«      dd¬«      }t        ||d¬«       y )Nr5   r   rk   r’   r   rq   ©rr   )r	   rI   r/   )rN   rO   ÚZ1ÚZ2s       r>   Útest_2x2_linkagezTestLinkage.test_2x2_linkage¬   sJ   € Ü�R—Z‘Z  “_¨X¸kÔJˆÜ�R—Z‘Z ! Q ¨!¨Q¨Ð 0Ó1¸(È;ÔWˆÜ˜˜B UÖ+r=   c                 ó    — |j                  g d¢«      }t        j                  t        «      5  t	        |d¬«       d d d «       y # 1 sw Y   y xY w)N)r   r   r…   r%   r†   r“   )rN   rO   Úvaluess      r>   Útest_centroid_neg_distancez&TestLinkage.test_centroid_neg_distance±   s=   € ð —‘šJÓ'ˆÜ�]‰]œ:Ó&ñ 	/ä�F :Õ.÷	/÷ 	/ñ 	/ús   ­AÁAÚfuncc                 óÀ   — |j                  ddgddgddgg«      }|j                  t        t        |«      |j                  d¬«      «      } ||«      }t	        ||«       y )Nr…   r   r5   rk   r’   )rI   r	   r2   r9   r/   )rN   rž   rO   rm   ÚexpectedÚobserveds         r>   Útest_wrapperszTestLinkage.test_wrappers¹   s^   € ð �J‰J˜˜R˜ 1 a &¨1¨a¨&Ð1Ó2ˆØ—:‘:ÜÔ% aÓ(°·±À{ÔSó
ˆñ ˜“7ˆÜ˜ (Õ+r=   N)r9   r:   r;   Úskip_xp_backendsrQ   rU   rZ   rW   rg   rf   r}   r�   r”   ÚmarkÚparametrizer‹   r�   r*   r•   rš   r�   r"   r#   r$   r%   r&   r   r1   r¢   )Ú.0rž   r1   s   000r>   rA   rA   S   s—  „ ñ �kÐ*PÔQñ.ó Rð.ò.ò
1ò>ò-ò	>ò	Nò>ð
 ‡[�[×Ñ˜_Ø	Ò+Ú+ð-ð 	.à	Ò+Ú+ð-ð 	.à	Ò+Ú+ð-ð 	.à	Ò+Ú+ð-ð 	.à	Ò+Ú+ð-ð 	.à	Ò+Ú+ð-ð 	.à	Ò+Ú+ð-ð 	.ð/ó ñ /ó!ð /òð
 ‡[�[×Ñ˜XÐ'9Ó:ñ:ó ;ð:ò
,ñ
 �kÐ*PÔQñ/ó Rð/ð ‡[�[×ÑØà! 7¨H°hÀÈÐM÷
ð 
àô ! Õ&ô
óñ,óñ,ùô
s   Ã%DrA   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestInconsistentc                 óR   — t         j                  D ]  }| j                  ||«       Œ y ©N)r6   Úinconsistent_ytdistÚcheck_inconsistent_tdist)rN   rO   Údepths      r>   Útest_inconsistent_tdistz(TestInconsistent.test_inconsistent_tdistÍ   s'   € Ü(×<Ñ<ò 	5ˆEØ×)Ñ)¨%°Õ4ñ	5r=   c                 ó®   — |j                  t        j                  «      }t        t	        ||«      |j                  t        j
                  |   «      «       y rª   )rI   r6   Úlinkage_ytdist_singler/   r   r«   )rN   r­   rO   rc   s       r>   r¬   z)TestInconsistent.check_inconsistent_tdistÑ   sA   € Ø�J‰JÔ*×@Ñ@ÓAˆÜœ Q¨Ó.ØŸ
™
Ô#6×#JÑ#JÈ5Ñ#QÓRõ	Tr=   N)r9   r:   r;   r®   r¬   r<   r=   r>   r¨   r¨   Ê   s   „ ò5óTr=   r¨   c                   ó8   — e Zd Zd„ Zd„ Z edd¬«      d„ «       Zy)ÚTestCopheneticDistancec                 óÐ   — |j                  g d¢«      }|j                  t        j                  «      }t        |«      }t	        ||j                  ||j
                  ¬«      d¬«       y )N©é  é'  éÿ   r·   r¶   r¶   rµ   rµ   r¶   r¶   r¶   éŠ   éÛ   r¶   r¶   r‡   r]   r^   )rI   r6   r°   r   r/   r‰   )rN   rO   Ú	expectedMrc   ÚMs        r>   Útest_linkage_cophenet_tdist_Zz4TestCopheneticDistance.test_linkage_cophenet_tdist_ZÚ   sP   € à—J‘Jò  9ó :ˆ	à�J‰JÔ*×@Ñ@ÓAˆÜ�Q‹KˆÜ˜˜2Ÿ:™: i°r·z±z˜:ÓBÈÖOr=   c                 óP  — |j                  t        j                  «      }t        ||j                  t        j                  «      «      \  }}|j                  g d¢|j
                  ¬«      }|j                  d|j
                  ¬«      d   }t        ||d¬«       t        ||d¬«       y )Nr´   r‡   g*É»2Qzä?r<   r]   r^   )rI   r6   r°   r   ra   r‰   r/   )rN   rO   rc   Úcr»   rº   Ú	expectedcs          r>   Útest_linkage_cophenet_tdist_Z_Yz6TestCopheneticDistance.test_linkage_cophenet_tdist_Z_Yâ   sŒ   € à�J‰JÔ*×@Ñ@ÓAˆÜ˜!˜RŸZ™ZÔ(;×(BÑ(BÓCÓD‰ˆˆAØ—J‘Jò  9Ø@BÇ
Á
ð ó Lˆ	à—J‘JÐ?ÀrÇzÁz�JÓRÐSUÑVˆ	Ü˜˜9¨5Õ1Ü˜˜9¨5Ö1r=   rB   rC   rD   c                 óÞ   — g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g}t        j                  t        d¬«      5  t        |j	                  |«      «       d d d «       y # 1 sw Y   y xY w)N)rG   ç      ð?rÂ   ç       @)rÃ   ç      (@rÂ   ç      @)rÅ   ç      @rÂ   rÃ   )ç      @g      ,@rÂ   rÅ   )ç      @ç      @rÂ   rÃ   )ç       @g      0@rÂ   rÅ   )ç      "@ç      $@rÂ   rÃ   )g      &@g      2@rÂ   rÅ   )g      *@ç      .@rÃ   rÈ   )g      1@g      4@rÃ   g      @@)g      3@g      5@rÃ   rÄ   zexcessive observations©Úmatch)r”   r   rL   r   rI   )rN   rO   Úarrs      r>   Útest_gh_22183z$TestCopheneticDistance.test_gh_22183ì   sb   € ò "Ú"Ú!Ú"Ú!Ú"Ú"Ú#Ú#Ú$Ú$ð
&ˆô �]‰]œ:Ð-EÔFñ 	&Ü�R—Z‘Z “_Ô%÷	&÷ 	&ñ 	&ús   ¿A#Á#A,N)r9   r:   r;   r¼   rÀ   r£   rÑ   r<   r=   r>   r²   r²   ×   s*   „ òPò2ñ �kÐ*PÔQñ&ó Rñ&r=   r²   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestMLabLinkageConversionc                 ó’   — |j                  g |j                  ¬«      }t        t        |«      |«       t        t	        |«      |«       y )Nr‡   )rI   r‰   r0   r
   r   rŽ   s      r>   Ú"test_mlab_linkage_conversion_emptyz<TestMLabLinkageConversion.test_mlab_linkage_conversion_empty  s7   € à�J‰J�r §¡ˆJÓ,ˆÜÔ)¨!Ó,¨aÔ0Üœ¨Ó*¨AÕ.r=   c                 ó  — |j                  g d¢g«      }|j                  g d¢g«      }t        t        |«      |j                  ||j                  ¬«      d¬«       t        t	        |«      |j                  ||j                  ¬«      d¬«       y )N)rG   rÂ   rÅ   rÃ   ©r5   rp   rƒ   r‡   rq   r—   )rI   r/   r
   r‰   r   )rN   rO   rc   ÚZms       r>   Ú'test_mlab_linkage_conversion_single_rowzATestMLabLinkageConversion.test_mlab_linkage_conversion_single_row
  so   € à�J‰JÒ(Ð)Ó*ˆØ�Z‰Zš˜Ó$ˆÜÔ)¨"Ó-¨r¯z©z¸!À2Ç:Á:¨zÓ/NØ"õ	$äœ¨Ó*¨B¯J©J°rÀÇÁ¨JÓ,LØ"ö	$r=   c                 ó.  — |j                  g d¢g d¢g d¢g d¢g d¢g«      }|j                  g d¢g d¢g d¢g d	¢g d
¢g|j                  ¬«      }t        t        |«      |d¬«       t        t	        |«      |j                  ||j                  ¬«      d¬«       y )N)rƒ   é   r¸   )é   rH   r¹   )r5   é   r·   )rp   é	   rµ   )é   é
   r¶   )rÃ   rÇ   ç     @a@rÃ   )rÅ   rÆ   ç     `k@rÃ   )rG   rÉ   ç     ào@rÅ   )rÂ   rÊ   ç     Àp@rÆ   )rÈ   rË   ç     pr@rÈ   r‡   rq   r—   )rI   r‰   r/   r
   r   )rN   rO   rØ   rc   s       r>   Ú*test_mlab_linkage_conversion_multiple_rowszDTestMLabLinkageConversion.test_mlab_linkage_conversion_multiple_rows  s‹   € à�Z‰Zš¢kÚ$¢k²<ðAó Bˆà�J‰JÒ*Ú*Ú*Ú*Ú*ð	,ð
  ŸZ™Zð ó )ˆô 	Ô)¨"Ó-¨q°uÕ=Üœ¨Ó*¨B¯J©J°rÀÇÁ¨JÓ,LØ"ö	$r=   N)r9   r:   r;   rÕ   rÙ   ræ   r<   r=   r>   rÓ   rÓ     s   „ ò/ò$ó$r=   rÓ   c                   ó>  — e Zd Z ee«      ej                  j                  dej                  D � �cg c]  }d|f‘Œ c}} ej                  D � �cg c]  }d|f‘Œ c}} z   ej                  D � �cg c]  }d|f‘Œ c}} z   «      d„ «       «       Zyc c}} w c c}} w c c}} w )ÚTestFclusterDataúcriterion,tr   ÚdistanceÚmaxclustc                 óÄ   — |j                  t        t        d|z   «      |   «      }|j                  t        j                  «      }t	        |||¬«      }t        ||«      sJ ‚y ©NÚ	fcluster_©Ú	criterionÚt)rI   rb   r6   ÚQ_Xr   r   )rN   rñ   rð   rO   Ú	expectedTrm   ÚTs          r>   Útest_fclusterdataz"TestFclusterData.test_fclusterdata%  sX   € ð —J‘JœwÔ':¸KÈ)Ñ<SÓTÐUVÑWÓXˆ	Ø�J‰JÔ*×.Ñ.Ó/ˆÜ˜ i°1Ô5ˆÜ˜Q 	Ô*Ð*Ñ*r=   N)r9   r:   r;   r.   r   r”   r¤   r¥   r6   Úfcluster_inconsistentÚfcluster_distanceÚfcluster_maxclustrõ   ©r¦   rñ   s   00r>   rè   rè   "  s•   „ ñ �}Ó%Ø‡[�[×Ñ˜]Ø&9×&OÑ&O×P ˆ.˜!Ò	ÓPØ$7×$IÑ$I×
J˜qˆJ˜Š?Ó
Jñ	Kà$7×$IÑ$I×
J˜qˆJ˜Š?Ó
Jñ	Kóñ
+óó &ñ+ùó	 	QùÛ
JùÛ
Js   ±BÁBÁ-Brè   c                   ó@  — e Zd Z eee«      ej                  j                  de	j                  D � �cg c]  }d|f‘Œ c}} e	j                  D � �cg c]  }d|f‘Œ c}} z   e	j                  D � �cg c]  }d|f‘Œ c}} z   «      d„ «       «       Z eeee«      ej                  j                  de	j                  «      d„ «       «       Z eeee«      ej                  j                  de	j                  «      d„ «       «       Z ee«      d	„ «       Zy
c c}} w c c}} w c c}} w )ÚTestFclusterré   r   rê   rë   c                 óä   — |j                  t        t        d|z   «      |   «      }t        |j                  t        j                  «      «      }t        |||¬«      }t        t        ||«      «       y rí   )rI   rb   r6   r   rò   r   r   r   )rN   rñ   rð   rO   ró   rc   rô   s          r>   Útest_fclusterzTestFcluster.test_fcluster6  s\   € ð —J‘JœwÔ':¸KÈ)Ñ<SÓTÐUVÑWÓXˆ	Ü�2—:‘:Ô1×5Ñ5Ó6Ó7ˆÜ�Q )¨qÔ1ˆÜ”˜a Ó+Õ,r=   rñ   c                 óò   — |j                  t        j                  |   «      }t        |j                  t        j                  «      «      }t        ||dt        |«      ¬«      }t        t        ||«      «       y )NÚmonocrit©rð   rÿ   )	rI   r6   r÷   r   rò   r   r   r   r   ©rN   rñ   rO   ró   rc   rô   s         r>   Útest_fcluster_monocritz#TestFcluster.test_fcluster_monocritC  s[   € ð —J‘JÔ2×DÑDÀQÑGÓHˆ	Ü�2—:‘:Ô1×5Ñ5Ó6Ó7ˆÜ�Q˜ Z¼(À1»+ÔFˆÜ”˜a Ó+Õ,r=   c                 óò   — |j                  t        j                  |   «      }t        |j                  t        j                  «      «      }t        ||dt        |«      ¬«      }t        t        ||«      «       y )NÚmaxclust_monocritr   )	rI   r6   rø   r   rò   r   r   r   r   r  s         r>   Útest_fcluster_maxclust_monocritz,TestFcluster.test_fcluster_maxclust_monocritK  s\   € ð —J‘JÔ2×DÑDÀQÑGÓHˆ	Ü�2—:‘:Ô1×5Ñ5Ó6Ó7ˆÜ�Q˜Ð%8Ä8ÈAÃ;ÔOˆÜ”˜a Ó+Õ,r=   c                 ó�  — |j                  dgdgdgg«      }t        |«      }t        t        |dd¬«      |j                  g d¢«      «       t        t        |dd¬«      |j                  g d¢«      «       t        t        |d	d¬«      |j                  g d
¢«      «       t        t        |dd¬«      |j                  g d
¢«      «       y )Nr5   rÜ   rH   rë   )rñ   rð   ©r5   r5   r5   rp   )rp   r5   r5   rƒ   r×   )rI   r   r   r   ©rN   rO   rP   rc   s       r>   Útest_fcluster_maxclust_gh_12651z,TestFcluster.test_fcluster_maxclust_gh_12651S  s¡   € à�J‰J˜˜˜a˜S 1 #�Ó'ˆÜ�1‹IˆÜœ8 A¨°jÔAØŸ:™:¢iÓ0ô	2äœ8 A¨°jÔAØŸ:™:¢iÓ0ô	2äœ8 A¨°jÔAØŸ:™:¢iÓ0ô	2äœ8 A¨°jÔAØŸ:™:¢iÓ0õ	2r=   N)r9   r:   r;   r.   r   r   r”   r¤   r¥   r6   rö   r÷   rø   rý   r   r  r  r	  rù   s   00r>   rû   rû   3  s,  „ ñ �v˜}Ó-Ø‡[�[×Ñ˜]Ø&9×&OÑ&O×P ˆ.˜!Ò	ÓPØ$7×$IÑ$I×
J˜qˆJ˜Š?Ó
Jñ	Kà$7×$IÑ$I×
J˜qˆJ˜Š?Ó
Jñ	Kóñ
-óó .ð-ñ �v˜}¨hÓ7Ø‡[�[×Ñ˜SÐ"5×"GÑ"GÓHñ-ó Ió 8ð-ñ �v˜}¨hÓ7Ø‡[�[×Ñ˜SÐ"5×"GÑ"GÓHñ-ó Ió 8ð-ñ �vÓñ
2ó ñ
2ùó9 	QùÛ
JùÛ
Js   ²DÁDÁ.Drû   c                   ó   — e Zd Zd„ Zy)ÚTestLeadersc                 óX  — t         j                  }t        |«      }t        |«      }t	        |dd¬«      }|j                  |«      }|j                  ||j                  ¬«      }t        ||«      }|j                  g d¢|j                  ¬«      }t        |j                  |«      |d¬«       y )Nrë   rƒ   rï   r‡   )é5   é7   é8   rp   rƒ   r5   rq   r—   )
r6   rò   r,   r	   r   rI   Úint32r   r/   Úconcat)rN   rO   rm   ÚYrc   rô   ÚLrŠ   s           r>   Útest_leaders_singlezTestLeaders.test_leaders_singled  s†   € ä×#Ñ#ˆÜ�!‹HˆÜ�A‹JˆÜ�Q *°Ô2ˆØ�J‰J�q‹MˆØ�J‰J�q §¡ˆJÓ)ˆÜ�A�q‹MˆØ—‘Ò1¸¿¹�ÓBˆÜ˜Ÿ	™	 !› f°5Ö9r=   N)r9   r:   r;   r  r<   r=   r>   r  r  a  s   „ ó
:r=   r  c                   óÔ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  dg d	¢«      d
„ «       Ze
j                  j                  dg d	¢«      d„ «       Zd„ Zdd„Zy)ÚTestIsIsomorphicc                 óD   — t        g d¢g d¢«      sJ ‚t        g g «      sJ ‚y ©Nr  )rp   rp   rp   )r   ©rN   s    r>   Útest_array_likez TestIsIsomorphic.test_array_liket  s"   € ÜšYª	Ô2Ð2Ð2Ü˜R Ô$Ð$Ñ$r=   c                 óˆ   — |j                  g d¢«      }|j                  g d¢«      }t        ||«      sJ ‚t        ||«      sJ ‚y r  ©rI   r   ©rN   rO   ÚaÚbs       r>   Útest_is_isomorphic_1z%TestIsIsomorphic.test_is_isomorphic_1x  ó>   € à�J‰J’yÓ!ˆØ�J‰J’yÓ!ˆÜ˜Q Ô"Ð"Ð"Ü˜Q Ô"Ð"Ñ"r=   c                 óˆ   — |j                  g d¢«      }|j                  g d¢«      }t        ||«      sJ ‚t        ||«      sJ ‚y )N)r5   rß   r5   )rp   rƒ   rp   r  r  s       r>   Útest_is_isomorphic_2z%TestIsIsomorphic.test_is_isomorphic_2  r!  r=   c                 ód   — |j                  g «      }|j                  g «      }t        ||«      sJ ‚y rª   r  r  s       r>   Útest_is_isomorphic_3z%TestIsIsomorphic.test_is_isomorphic_3†  s,   € à�J‰J�r‹NˆØ�J‰J�r‹NˆÜ˜Q Ô"Ð"Ñ"r=   c                 óˆ   — |j                  g d¢«      }|j                  g d¢«      }t        ||«      sJ ‚t        ||«      sJ ‚y )Nr×   )r5   rƒ   rp   r  r  s       r>   Útest_is_isomorphic_4Az&TestIsIsomorphic.test_is_isomorphic_4AŒ  ó@   € ð �J‰J’yÓ!ˆØ�J‰J’yÓ!ˆÜ˜Q Ô"Ð"Ð"Ü˜Q Ô"Ð"Ñ"r=   c                 óˆ   — |j                  g d¢«      }|j                  g d¢«      }t        ||«      rJ ‚t        ||«      rJ ‚y )N)r5   rp   rƒ   rƒ   )r5   rƒ   rp   rƒ   r  r  s       r>   Útest_is_isomorphic_4Bz&TestIsIsomorphic.test_is_isomorphic_4B”  sC   € ð �J‰J’|Ó$ˆØ�J‰J’|Ó$ˆÜ   AÔ&Ð&Ð&Ü   AÔ&Ð&Ð&Ð&r=   c                 óˆ   — |j                  g d¢«      }|j                  g d¢«      }t        ||«      sJ ‚t        ||«      sJ ‚y )N)rß   rp   rƒ   )rÛ   rƒ   rp   r  r  s       r>   Útest_is_isomorphic_4Cz&TestIsIsomorphic.test_is_isomorphic_4Cœ  r(  r=   Ú	nclusters)rp   rƒ   rH   c                 ó,   — | j                  d||¬«       y )Néè  r�   ©Úis_isomorphic_randperm©rN   r-  rO   s      r>   Útest_is_isomorphic_5z%TestIsIsomorphic.test_is_isomorphic_5¤  s   € ð 	×#Ñ# D¨)¸Ð#Õ;r=   c                 ó0   — | j                  d|dd|¬«       y )Nr/  TrH   r�   r0  r2  s      r>   Útest_is_isomorphic_6z%TestIsIsomorphic.test_is_isomorphic_6ª  s   € ð
 	×#Ñ# D¨)°T¸1ÀÐ#ÕDr=   c                 ól   — |j                  g d¢«      }|j                  g d¢«      }t        ||«      rJ ‚y )Nr×   r  r  r  s       r>   Útest_is_isomorphic_7z%TestIsIsomorphic.test_is_isomorphic_7±  s1   € à�J‰J’yÓ!ˆØ�J‰J’yÓ!ˆÜ   AÔ&Ð&Ð&Ð&r=   c                óø  — t         j                  j                  «       }t        d«      D ]Î  }|j	                  d||¬«      }|j                  |«      }	|	j                  |j                  t         j                  «      «      }
|r1|j                  |«      }|
|d| xx   dz  cc<   |
|d| xx   |z  cc<   |j                  |«      }|j                  |
«      }
t        ||
«      | k(  sJ ‚t        |
|«      | k(  rŒÎJ ‚ y )Nrƒ   r   )Úsizer5   )rs   rt   Údefault_rngÚrangeÚintegersÚpermutationÚtakeÚastypeÚintprI   r   )rN   Únobsr-  ÚnonisoÚnerrorsrO   rx   Ú_r  Úpr  Úqs               r>   r1  z'TestIsIsomorphic.is_isomorphic_randperm·  så   € Ü�i‰i×#Ñ#Ó%ˆÜ�q“ò 	7ˆAØ—‘˜Q 	°�Ó5ˆAØ—‘ 	Ó*ˆAØ—‘�q—x‘x¤§¡Ó(Ó)ˆAÙØ—O‘O DÓ)�Ø�!�A�g�,“ 1Ñ$“Ø�!�A�g�,“ 9Ñ,“Ø—
‘
˜1“ˆAØ—
‘
˜1“ˆAÜ   AÓ&¨v¨:Ò6Ð6Ð6Ü   AÓ&¨v¨:Ó6Ð6Ð6ñ	7r=   N)Fr   )r9   r:   r;   r  r   r#  r%  r'  r*  r,  r”   r¤   r¥   r3  r5  r7  r1  r<   r=   r>   r  r  q  s{   „ ò%ò#ò#ò#ò#ò'ò#ð ‡[�[×Ñ˜[ª)Ó4ñ<ó 5ð<ð
 ‡[�[×Ñ˜[ª)Ó4ñEó 5ðEò'ô7r=   r  c                   ó~   — e Zd Zej                  j                  dg d¢«      d„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zy)ÚTestIsValidLinkageúnrow, ncol, valid©)rp   rH   F)rp   rƒ   F)r5   rÜ   T)rp   rÜ   Tc                 óÂ   — |j                  g d¢g d¢g|j                  ¬«      }|d |…d |…f   }t        t        |«      |d¬«       |st	        t
        t        |d¬«       y y ©N)r   r5   rÅ   rp   rH   )rƒ   rp   rÆ   rƒ   rƒ   r‡   F©Úcheck_namespaceT©Úthrow)rI   r‰   r0   r   rK   rL   )rN   ÚnrowÚncolÚvalidrO   rc   s         r>   Ú"test_is_valid_linkage_various_sizez5TestIsValidLinkage.test_is_valid_linkage_various_sizeÊ  sg   € ð �J‰JÒ)Ú)ð+Ø24·*±*ð ó >ˆàˆeˆtˆe�U�d�Uˆl‰OˆÜÔ(¨Ó+¨UÀEÕJÙÜœ*Ô&6¸ÀÖFð r=   c                 ó¦   — |j                  g d¢g d¢g|j                  ¬«      }t        t        |«      dd¬«       t	        t
        t        |d¬«       y ©N©r   r5   rÅ   rp   ©rƒ   rp   rÆ   rƒ   r‡   FrM  TrO  )rI   Úint64r0   r   rK   Ú	TypeError©rN   rO   rc   s      r>   Útest_is_valid_linkage_int_typez1TestIsValidLinkage.test_is_valid_linkage_int_typeÕ  sG   € à�J‰JšÚ&ð(Ø/1¯x©xð ó 9ˆäÔ(¨Ó+¨UÀEÕJÜ”iÔ!1°1¸DÖAr=   c                 óš   — |j                  d|j                  ¬«      }t        t        |«      dd¬«       t	        t
        t        |d¬«       y ©N©r   rÜ   r‡   FrM  TrO  )rT   r‰   r0   r   rK   rL   r[  s      r>   Útest_is_valid_linkage_emptyz.TestIsValidLinkage.test_is_valid_linkage_emptyÜ  s9   € à�H‰H�V 2§:¡:ˆHÓ.ˆÜÔ(¨Ó+¨UÀEÕJÜ”jÔ"2°A¸TÖBr=   c                 óü   — t        ddd«      D ]l  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }|j	                  |«      }t        t        |«      dd¬«       Œn y ©	NrÜ   é   rƒ   r5   rp   TFrM  )r;  rs   rt   rv   rI   r	   r0   r   ©rN   rO   ÚirP   rc   s        r>   Útest_is_valid_linkage_4_and_upz1TestIsValidLinkage.test_is_valid_linkage_4_and_upâ  sl   € ô �q˜"˜a“ò 	NˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAØ—
‘
œ7 1›:Ó&ˆAØ—
‘
˜1“ˆAÜÔ,¨QÓ/°ÀuÖMñ		Nr=   c                 óÞ  — t        ddd«      D ]Ñ  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }|j	                  |«      }t        j                  |«      |dz  df   j                  d«      }t        t        |«      dd¬	«       t        j                  t        «      5  t        j                  |d
¬«       d d d «       ŒÓ y # 1 sw Y   ŒÞxY w)NrÜ   rc  rƒ   r5   rp   r   éþÿÿÿFrM  TrO  ©r;  rs   rt   rv   rI   r	   ÚxpxÚatÚsetr0   r   r”   r   rL   r8   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“ò 	6ˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAØ—
‘
œ7 1›:Ó&ˆAØ—
‘
˜1“ˆAÜ—‘�q“	˜!˜Q™$ ˜'Ñ"×&Ñ& rÓ*ˆAÜÔ,¨QÓ/°ÈÕNÜ—‘œzÓ*ñ 6Ü×&Ñ& q°Ð&Ô5÷6ð 6ñ	6÷6ð 6úó   Ã C#Ã#C,	c                 óÞ  — t        ddd«      D ]Ñ  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }|j	                  |«      }t        j                  |«      |dz  df   j                  d«      }t        t        |«      dd¬«       t        j                  t        «      5  t        j                  |d	¬
«       d d d «       ŒÓ y # 1 sw Y   ŒÞxY w©NrÜ   rc  rƒ   r5   rp   rh  FrM  TrO  ri  rd  s        r>   Ú.test_is_valid_linkage_4_and_up_neg_index_rightzATestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_index_right÷  rn  ro  c                 óÞ  — t        ddd«      D ]Ñ  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }|j	                  |«      }t        j                  |«      |dz  df   j                  d«      }t        t        |«      dd¬«       t        j                  t        «      5  t        j                  |d	¬
«       d d d «       ŒÓ y # 1 sw Y   ŒÞxY w©NrÜ   rc  rƒ   r5   rp   g      à¿FrM  TrO  ri  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“ò 	6ˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAØ—
‘
œ7 1›:Ó&ˆAØ—
‘
˜1“ˆAÜ—‘�q“	˜!˜Q™$ ˜'Ñ"×&Ñ& tÓ,ˆAÜÔ,¨QÓ/°ÈÕNÜ—‘œzÓ*ñ 6Ü×&Ñ& q°Ð&Ô5÷6ð 6ñ	6÷6ð 6úro  c                 óÞ  — t        ddd«      D ]Ñ  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }|j	                  |«      }t        j                  |«      |dz  df   j                  d«      }t        t        |«      dd¬«       t        j                  t        «      5  t        j                  |d	¬
«       d d d «       ŒÓ y # 1 sw Y   ŒÞxY wrq  ri  rd  s        r>   Ú)test_is_valid_linkage_4_and_up_neg_countsz<TestIsValidLinkage.test_is_valid_linkage_4_and_up_neg_counts  rn  ro  N)r9   r:   r;   r”   r¤   r¥   rT  r\  r`  rf  rm  rr  ru  rw  r<   r=   r>   rH  rH  Ç  sX   „ ð ‡[�[×ÑÐ0ò 3Nó OñGóOðGòBòCòNò
6ò
6ò
6ó
6r=   rH  c                   óx   — e Zd Zd„ Zej
                  j                  dg d¢«      d„ «       Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zy
)ÚTestIsValidInconsistentc                 ó¦   — |j                  g d¢g d¢g|j                  ¬«      }t        t        |«      dd¬«       t	        t
        t        |d¬«       y rV  )rI   rY  r0   r   rK   rZ  ©rN   rO   ÚRs      r>   Útest_is_valid_im_int_typez1TestIsValidInconsistent.test_is_valid_im_int_type  sD   € à�J‰JšÚ&ð(Ø/1¯x©xð ó 9ˆäœ A›¨¸uÕEÜ”i¤¨a°tÖ<r=   rI  rJ  c                 óÂ   — |j                  g d¢g d¢g|j                  ¬«      }|d |…d |…f   }t        t        |«      |d¬«       |st	        t
        t        |d¬«       y y rL  )rI   r‰   r0   r   rK   rL   )rN   rQ  rR  rS  rO   r|  s         r>   Útest_is_valid_im_various_sizez5TestIsValidInconsistent.test_is_valid_im_various_size&  sd   € ð �J‰JÒ)Ú)ð+Ø24·*±*ð ó >ˆàˆeˆtˆe�U�d�Uˆl‰OˆÜœ A›¨¸uÕEÙÜœ*¤k°1¸DÖAð r=   c                 óš   — |j                  d|j                  ¬«      }t        t        |«      dd¬«       t	        t
        t        |d¬«       y r^  )rT   r‰   r0   r   rK   rL   r{  s      r>   Útest_is_valid_im_emptyz.TestIsValidInconsistent.test_is_valid_im_empty1  s6   € à�H‰H�V 2§:¡:ˆHÓ.ˆÜœ A›¨¸uÕEÜ”j¤+¨q¸Ö=r=   c                 óô   — t        ddd«      D ]h  }t        j                  j                  ||dz
  z  dz  «      }t	        |«      }t        |«      }|j                  |«      }t        t        |«      dd¬«       Œj y rb  )	r;  rs   rt   rv   r	   r   rI   r0   r   ©rN   rO   re  rP   rc   r|  s         r>   Útest_is_valid_im_4_and_upz1TestIsValidInconsistent.test_is_valid_im_4_and_up7  sj   € ô �q˜"˜a“ò 	IˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAÜ˜“
ˆAÜ˜Q“ˆAØ—
‘
˜1“ˆAÜœK¨›N¨DÀ%ÖHñ	Ir=   c                 óÖ  — t        ddd«      D ]Í  }t        j                  j                  ||dz
  z  dz  «      }t	        |«      }t        |«      }t        j                  |«      |dz  df   j                  d«      }|j                  |«      }t        t        |«      dd¬	«       t        j                  t        «      5  t        j                  |d
¬«       d d d «       ŒÏ y # 1 sw Y   ŒÚxY w)NrÜ   rc  rƒ   r5   rp   r   ç       ÀFrM  TrO  ©r;  rs   rt   rv   r	   r   rj  rk  rl  rI   r0   r   r”   r   rL   r8   rƒ  s         r>   Ú(test_is_valid_im_4_and_up_neg_index_leftz@TestIsValidInconsistent.test_is_valid_im_4_and_up_neg_index_leftA  óÆ   € ô �q˜"˜a“ò 	1ˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAÜ˜“
ˆAÜ˜Q“ˆAÜ—‘�q“	˜!˜Q™$ ˜(Ñ#×'Ñ'¨Ó-ˆAØ—
‘
˜1“ˆAÜœK¨›N¨EÀ5ÕIÜ—‘œzÓ*ñ 1Ü×!Ñ! !¨4Ð!Ô0÷1ð 1ñ	1÷1ð 1úó   Â<CÃC(	c                 óÖ  — t        ddd«      D ]Í  }t        j                  j                  ||dz
  z  dz  «      }t	        |«      }t        |«      }t        j                  |«      |dz  df   j                  d«      }|j                  |«      }t        t        |«      dd¬«       t        j                  t        «      5  t        j                  |d	¬
«       d d d «       ŒÏ y # 1 sw Y   ŒÚxY w)NrÜ   rc  rƒ   r5   rp   r†  FrM  TrO  r‡  rƒ  s         r>   Ú)test_is_valid_im_4_and_up_neg_index_rightzATestIsValidInconsistent.test_is_valid_im_4_and_up_neg_index_rightN  r‰  rŠ  c                 óÖ  — t        ddd«      D ]Í  }t        j                  j                  ||dz
  z  dz  «      }t	        |«      }t        |«      }t        j                  |«      |dz  df   j                  d«      }|j                  |«      }t        t        |«      dd¬«       t        j                  t        «      5  t        j                  |d	¬
«       d d d «       ŒÏ y # 1 sw Y   ŒÚxY wrt  r‡  rƒ  s         r>   Ú"test_is_valid_im_4_and_up_neg_distz:TestIsValidInconsistent.test_is_valid_im_4_and_up_neg_dist[  sÆ   € ô �q˜"˜a“ò 	1ˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAÜ˜“
ˆAÜ˜Q“ˆAÜ—‘�q“	˜!˜Q™$ ˜'Ñ"×&Ñ& tÓ,ˆAØ—
‘
˜1“ˆAÜœK¨›N¨EÀ5ÕIÜ—‘œzÓ*ñ 1Ü×!Ñ! !¨4Ð!Ô0÷1ð 1ñ	1÷1ð 1úrŠ  N)r9   r:   r;   r}  r”   r¤   r¥   r  r�  r„  rˆ  rŒ  rŽ  r<   r=   r>   ry  ry    sQ   „ ò=ð ‡[�[×ÑÐ0ò 3Nó OñBóOðBò>òIò1ò1ó1r=   ry  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestNumObsLinkagec                 óh   — |j                  d|j                  ¬«      }t        t        t        |«       y ©Nr_  r‡   )rT   r‰   rK   rL   r   r[  s      r>   Útest_num_obs_linkage_emptyz,TestNumObsLinkage.test_num_obs_linkage_emptyl  s$   € à�H‰H�V 2§:¡:ˆHÓ.ˆÜ”j¤/°1Õ5r=   c                 ód   — |j                  g d¢g|j                  ¬«      }t        |«      dk(  sJ ‚y )NrW  r‡   rp   ©rI   r‰   r   r[  s      r>   Útest_num_obs_linkage_1x4z*TestNumObsLinkage.test_num_obs_linkage_1x4q  s.   € à�J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ˜qÓ! QÒ&Ð&Ñ&r=   c                 ój   — |j                  g d¢g d¢g|j                  ¬«      }t        |«      dk(  sJ ‚y )NrW  rX  r‡   rƒ   r•  r[  s      r>   Útest_num_obs_linkage_2x4z*TestNumObsLinkage.test_num_obs_linkage_2x4v  s9   € à�J‰JšÚ&ð(Ø/1¯z©zð ó ;ˆä˜qÓ! QÒ&Ð&Ñ&r=   c                 óÌ   — t        ddd«      D ]T  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }t        |«      |k(  rŒTJ ‚ y )NrÜ   rc  rƒ   r5   rp   )r;  rs   rt   rv   rI   r	   r   rd  s        r>   Útest_num_obs_linkage_4_and_upz/TestNumObsLinkage.test_num_obs_linkage_4_and_up|  s^   € ô �q˜"˜a“ò 	+ˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAØ—
‘
œ7 1›:Ó&ˆAÜ" 1Ó%¨Ó*Ð*Ð*ñ	+r=   c                 óÐ   — t        dd«      D ]W  }t        j                  j                  |d«      }t	        |«      }|j                  t        |«      «      }t        |«      |k(  rŒWJ ‚ y )Nrp   rà   rÜ   )r;  rs   rt   rv   r,   rI   r	   r   )rN   rO   ry   rm   r  rc   s         r>   Ú!test_num_obs_linkage_multi_matrixz3TestNumObsLinkage.test_num_obs_linkage_multi_matrix„  sY   € ä�q˜"“ò 	+ˆAÜ—	‘	—‘˜q !Ó$ˆAÜ�a“ˆAØ—
‘
œ7 1›:Ó&ˆAÜ" 1Ó%¨Ó*Ð*Ð*ñ		+r=   N)r9   r:   r;   r“  r–  r˜  rš  rœ  r<   r=   r>   r�  r�  i  s   „ ò6ò
'ò
'ò+ó+r=   r�  c                   óf   — e Zd Zd„ Zd„ Zej                  j                  dg d¢«      d„ «       Zd„ Z	y)ÚTestLeavesListc                 óŒ   — |j                  g d¢g|j                  ¬«      }t        |«       t        t	        |«      ddgd¬«       y )NrW  r‡   r   r5   rq   r—   ©rI   r‰   r   r   r   r[  s      r>   Útest_leaves_list_1x4z#TestLeavesList.test_leaves_list_1x4�  s6   € à�J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ�Œ
Üœ A›¨¨A¨°UÖ;r=   c                 ó’   — |j                  g d¢g d¢g|j                  ¬«      }t        |«       t        t	        |«      g d¢d¬«       y )NrW  rX  r‡   )r   r5   rp   rq   r—   r   r[  s      r>   Útest_leaves_list_2x4z#TestLeavesList.test_leaves_list_2x4–  s=   € à�J‰JšÚ&ð(Ø/1¯z©zð ó ;ˆä�Œ
Üœ A›ª	¸Ö>r=   rY   )r   r"   r#   r$   r%   r&   r   c                 óº   — t         j                  }|j                  t        ||«      «      }t	        |«      }t        |j                  «       t        |«      d¬«       y )Nrq   r—   )r6   rò   rI   r	   r   r   Ú	pre_orderr   )rN   rY   rO   rm   rc   Únodes         r>   Útest_leaves_list_Qz!TestLeavesList.test_leaves_list_Q�  sD   € ô  ×#Ñ#ˆØ�J‰J”w˜q &Ó)Ó*ˆÜ�q‹zˆÜ˜Ÿ™Ó(¬+°a«.¸uÖEr=   c                 ó  — t         j                  }|j                  t        |d«      «      }t	        |«      }t        |j                  «       |j                  «       j                  «       |j                  «       j                  «       z   d¬«       y )Nr   rq   r—   )	r6   rò   rI   r	   r   r   r¥  Úget_leftÚ	get_right)rN   rO   rm   rc   r¦  s        r>   Útest_Q_subtree_pre_orderz'TestLeavesList.test_Q_subtree_pre_order¦  sf   € ä×#Ñ#ˆØ�J‰J”w˜q (Ó+Ó,ˆÜ�q‹zˆÜ˜Ÿ™Ó(ØŸ™›×2Ñ2Ó4°t·~±~Ó7G×7QÑ7QÓ7SÑSØ"ö	$r=   N)
r9   r:   r;   r¡  r£  r”   r¤   r¥   r§  r«  r<   r=   r>   rž  rž  �  s=   „ ò<ò?ð ‡[�[×Ñ˜XÚSóUñFóUðFó$r=   rž  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCorrespondc                 ó¤   — |j                  d|j                  ¬«      }|j                  d|j                  ¬«      }t        t        t        ||«       y )NrS   r‡   r_  )rT   r‰   rK   rL   r   r  s       r>   Útest_correspond_emptyz$TestCorrespond.test_correspond_empty³  s<   € à�H‰H�T §¡ˆHÓ,ˆØ�H‰H�U "§*¡*ˆHÓ-ˆÜ”j¤*¨a°Õ3r=   c                 óê  — t        dd«      D ]j  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }|j	                  |«      }t        t        ||«      «       Œl t        ddd«      D ]j  }t        j                  j                  ||dz
  z  dz  «      }|j	                  t        |«      «      }|j	                  |«      }t        t        ||«      «       Œl y )Nrp   rÜ   r5   rc  rƒ   )r;  rs   rt   rv   rI   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Ø—
‘
œ7 1›:Ó&ˆAØ—
‘
˜1“ˆAÜ”J˜q !Ó$Õ%ð		&ô
 �q˜"˜a“ò 	&ˆAÜ—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAØ—
‘
œ7 1›:Ó&ˆAØ—
‘
˜1“ˆ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                  j                  ||dz
  z  dz  «      }t        j                  j                  ||dz
  z  dz  «      }|j                  t        |«      «      }|j                  t        |«      «      }|j                  |«      }|j                  |«      }t        ||«      rJ ‚t        ||«      sŒÇJ ‚ y )Nrp   rÜ   rƒ   rH   r5   ©	ÚlistÚzipr;  rs   rt   rv   rI   r	   r   ©rN   rO   re  ÚjrP   Úy2rc   r™   s           r>   Útest_correspond_4_and_upz'TestCorrespond.test_correspond_4_and_upÇ  sþ   € ô œC¤¤U¨1¨a£[Ó 1´4¼¸aÀ»Ó3DÓEÓFÜœC¤¤U¨1¨a£[Ó 1´4¼¸aÀ»Ó3DÓEÓFñGò 		)‰FˆQ�ä—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAÜ—‘—‘  1 Q¡3¡¨¡
Ó+ˆBØ—
‘
œ7 1›:Ó&ˆAØ—‘œG B›KÓ(ˆBØ—
‘
˜1“ˆAØ—‘˜B“ˆ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                  j                  ||dz
  z  dz  «      }t        j                  j                  ||dz
  z  dz  «      }|j                  t        |«      «      }|j                  t        |«      «      }|j                  |«      }|j                  |«      }t        ||«      rJ ‚t        ||«      sŒÇJ ‚ y )Nrp   rß   é   é   r5   r³  r¶  s           r>   Útest_correspond_4_and_up_2z)TestCorrespond.test_correspond_4_and_up_2Õ  sþ   € ô œC¤¤U¨1¨a£[Ó 1´4¼¸bÀ"»Ó3FÓGÓHÜœC¤¤U¨1¨a£[Ó 1´4¼¸bÀ"»Ó3FÓGÓHñIò 		)‰FˆQ�ä—	‘	—‘˜q ! A¡#™w¨™zÓ*ˆAÜ—‘—‘  1 Q¡3¡¨¡
Ó+ˆBØ—
‘
œ7 1›:Ó&ˆAØ—‘œG B›KÓ(ˆBØ—
‘
˜1“ˆAØ—‘˜B“ˆBÜ! ! RÔ(Ð(Ð(Ü! " aÕ(Ð(Ð(ñ		)r=   N)r9   r:   r;   r¯  r±  r¹  r½  r<   r=   r>   r­  r­  °  s   „ ò4ò&ò)ó)r=   r­  c                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestIsMonotonicc                 óh   — |j                  d|j                  ¬«      }t        t        t        |«       y r’  )rT   r‰   rK   rL   r   r[  s      r>   Útest_is_monotonic_emptyz'TestIsMonotonic.test_is_monotonic_emptyç  s$   € à�H‰H�V 2§:¡:ˆHÓ.ˆÜ”j¤,°Õ2r=   c                 ó^   — |j                  g d¢g|j                  ¬«      }t        |«      sJ ‚y )N©r   r5   ç333333Ó?rp   r‡   ©rI   r‰   r   r[  s      r>   Útest_is_monotonic_1x4z%TestIsMonotonic.test_is_monotonic_1x4ì  s'   € à�J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ˜AŒÐ‰r=   c                 ód   — |j                  g d¢g d¢g|j                  ¬«      }t        |«      sJ ‚y )NrÃ  )rp   rƒ   çš™™™™™Ù?rƒ   r‡   rÅ  r[  s      r>   Útest_is_monotonic_2x4_Tz'TestIsMonotonic.test_is_monotonic_2x4_Tñ  s2   € à�J‰JšÚ&ð(Ø/1¯z©zð ó ;ˆä˜AŒÐ‰r=   c                 ód   — |j                  g d¢g d¢g|j                  ¬«      }t        |«      rJ ‚y )N)r   r5   rÈ  rp   )rp   rƒ   rÄ  rƒ   r‡   rÅ  r[  s      r>   Útest_is_monotonic_2x4_Fz'TestIsMonotonic.test_is_monotonic_2x4_F÷  s5   € à�J‰JšÚ&ð(Ø/1¯z©zð ó ;ˆä ”?Ð"Ð"�?r=   c                 ój   — |j                  g d¢g d¢g d¢g|j                  ¬«      }t        |«      sJ ‚y )NrÃ  ©rp   rƒ   rÈ  rp   ©rÜ   rH   g333333ã?rÜ   r‡   rÅ  r[  s      r>   Útest_is_monotonic_3x4_Tz'TestIsMonotonic.test_is_monotonic_3x4_Tý  s7   € à�J‰JšÚ&Ú&ð(à/1¯z©zð ó ;ˆô ˜AŒÐ‰r=   c                 ój   — |j                  g d¢g d¢g d¢g|j                  ¬«      }t        |«      rJ ‚y )NrÃ  )rp   rƒ   çš™™™™™É?rp   rÎ  r‡   rÅ  r[  s      r>   Útest_is_monotonic_3x4_F1z(TestIsMonotonic.test_is_monotonic_3x4_F1  ó:   € à�J‰JšÚ&Ú&ð(à/1¯z©zð ó ;ˆô   ”?Ð"Ð"�?r=   c                 ój   — |j                  g d¢g d¢g d¢g|j                  ¬«      }t        |«      rJ ‚y )N)r   r5   gš™™™™™é?rp   rÍ  rÎ  r‡   rÅ  r[  s      r>   Útest_is_monotonic_3x4_F2z(TestIsMonotonic.test_is_monotonic_3x4_F2  rÓ  r=   c                 ój   — |j                  g d¢g d¢g d¢g|j                  ¬«      }t        |«      rJ ‚y )NrÃ  rÍ  )rÜ   rH   rÑ  rÜ   r‡   rÅ  r[  s      r>   Útest_is_monotonic_3x4_F3z(TestIsMonotonic.test_is_monotonic_3x4_F3  rÓ  r=   c                 óp   — |j                  t        t        j                  d«      «      }t	        |«      sJ ‚y ©Nr   )rI   r	   r6   ra   r   r[  s      r>   Ú test_is_monotonic_tdist_linkage1z0TestIsMonotonic.test_is_monotonic_tdist_linkage1  s,   € ð �J‰J”wÔ2×9Ñ9¸8ÓDÓEˆÜ˜AŒÐ‰r=   c                 ó¾   — |j                  t        t        j                  d«      «      }t	        j
                  |«      d   j                  d«      }t        |«      rJ ‚y )Nr   )rp   rp   rG   )rI   r	   r6   ra   rj  rk  rl  r   r[  s      r>   Ú test_is_monotonic_tdist_linkage2z0TestIsMonotonic.test_is_monotonic_tdist_linkage2  sK   € ð �J‰J”wÔ2×9Ñ9¸8ÓDÓEˆÜ�F‰F�1‹I�d‰O×Ñ Ó$ˆÜ ”?Ð"Ð"�?r=   c                 ót   — t         j                  }|j                  t        |d«      «      }t	        |«      sJ ‚y rÙ  )r6   rò   rI   r	   r   )rN   rO   rm   rc   s       r>   Útest_is_monotonic_Q_linkagez+TestIsMonotonic.test_is_monotonic_Q_linkage&  s0   € ô  ×#Ñ#ˆØ�J‰J”w˜q (Ó+Ó,ˆÜ˜AŒÐ‰r=   N)r9   r:   r;   rÁ  rÆ  rÉ  rË  rÏ  rÒ  rÕ  r×  rÚ  rÜ  rÞ  r<   r=   r>   r¿  r¿  ä  s9   „ ò3ò
ò
ò#òò#ò#ò#òò#ór=   r¿  c                   ó`   — e Zd Zd„ Zd„ Zej                  j                  dg d¢«      d„ «       Zy)ÚTestMaxDistsc                 óh   — |j                  d|j                  ¬«      }t        t        t        |«       y r’  )rT   r‰   rK   rL   r   r[  s      r>   Útest_maxdists_empty_linkagez(TestMaxDists.test_maxdists_empty_linkage1  s$   € à�H‰H�V 2§:¡:ˆHÓ.ˆÜ”j¤(¨AÕ.r=   c                 óŽ   — |j                  g d¢g|j                  ¬«      }t        |«      }t        ||«      }t	        ||d¬«       y )N©r   r5   rÄ  rÜ   r‡   rq   r^   )rI   r‰   r   Úcalculate_maximum_distancesr/   )rN   rO   rc   ÚMDÚ
expectedMDs        r>   Ú!test_maxdists_one_cluster_linkagez.TestMaxDists.test_maxdists_one_cluster_linkage6  s<   € à�J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ�a‹[ˆÜ0°°BÓ7ˆ
Ü˜˜J¨UÖ3r=   rY   ©r   r"   r   r%   r&   c                 ó¤   — t         j                  }|j                  t        ||«      «      }t	        |«      }t        ||«      }t        ||d¬«       y )Nrq   r^   )r6   rò   rI   r	   r   rå  r/   )rN   rY   rO   rm   rc   ræ  rç  s          r>   Útest_maxdists_Q_linkagez$TestMaxDists.test_maxdists_Q_linkage=  sE   € ô  ×#Ñ#ˆØ�J‰J”w˜q &Ó)Ó*ˆÜ�a‹[ˆÜ0°°BÓ7ˆ
Ü˜˜J¨UÖ3r=   N)	r9   r:   r;   râ  rè  r”   r¤   r¥   rë  r<   r=   r>   rà  rà  .  s7   „ ò/ò
4ð ‡[�[×ÑØÒFóHñ4óHñ4r=   rà  c                   óf   — e Zd Zd„ Zd„ Zd„ Zej                  j                  dg d¢«      d„ «       Z	y)ÚTestMaxInconstsc                 ó¤   — |j                  d|j                  ¬«      }|j                  d|j                  ¬«      }t        t        t        ||«       y r’  )rT   r‰   rK   rL   r   ©rN   rO   rc   r|  s       r>   Útest_maxinconsts_empty_linkagez.TestMaxInconsts.test_maxinconsts_empty_linkageK  s<   € à�H‰H�V 2§:¡:ˆHÓ.ˆØ�H‰H�V 2§:¡:ˆHÓ.ˆÜ”j¤+¨q°!Õ4r=   c                 óÒ   — |j                  g d¢g|j                  ¬«      }t        j                  j	                  dd«      }|j                  |«      }t        t        t        ||«       y ©Nrä  r‡   rp   rÜ   )rI   r‰   rs   rt   rv   rK   rL   r   rï  s       r>   Útest_maxinconsts_difrow_linkagez/TestMaxInconsts.test_maxinconsts_difrow_linkageQ  sL   € ð �J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ�I‰I�N‰N˜1˜aÓ ˆØ�J‰J�q‹MˆÜ”j¤+¨q°!Õ4r=   c                 óÔ   — |j                  g d¢g|j                  ¬«      }|j                  g d¢g|j                  ¬«      }t        ||«      }t        |||¬«      }t	        ||d¬«       y )Nrä  r‡   ©r   r   r   rÄ  r�   rq   r^   )rI   r‰   r   Ú!calculate_maximum_inconsistenciesr/   ©rN   rO   rc   r|  ræ  rç  s         r>   Ú$test_maxinconsts_one_cluster_linkagez4TestMaxInconsts.test_maxinconsts_one_cluster_linkageY  sZ   € à�J‰JšÐ'¨r¯z©zˆJÓ:ˆØ�J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ˜˜AÓˆÜ6°q¸!ÀÔCˆ
Ü˜˜J¨UÖ3r=   rY   ré  c                 óâ   — t         j                  }t        ||«      }|j                  t	        |«      «      }|j                  |«      }t        ||«      }t        |||¬«      }t        ||d¬«       y )Nr�   rq   r^   )r6   rò   r	   rI   r   r   rö  r/   ©rN   rY   rO   rm   rc   r|  ræ  rç  s           r>   Útest_maxinconsts_Q_linkagez*TestMaxInconsts.test_maxinconsts_Q_linkagea  s`   € ô  ×#Ñ#ˆÜ�A�vÓˆØ�J‰J”| A“Ó'ˆØ�J‰J�q‹MˆÜ˜˜AÓˆÜ6°q¸!ÀÔCˆ
Ü˜˜J¨UÖ3r=   N)
r9   r:   r;   rð  ró  rø  r”   r¤   r¥   rû  r<   r=   r>   rí  rí  H  s<   „ ò5ò5ò4ð ‡[�[×ÑØÒFóHñ4óHñ4r=   rí  c                   ó   — e Zd Zd„ Zej
                  j                  d ed«      «      d„ «       Zej
                  j                  d ed«      «      d„ «       Z	d„ Z
ej
                  j                  dg d¢«      d	„ «       Zy
)ÚTestMaxRStatc                 óæ  — |j                  g d¢g|j                  ¬«      }|j                  g d¢g|j                  ¬«      }t        j                  t        «      5  t        ||d«       d d d «       t        j                  t        «      5  t        ||d«       d d d «       t        j                  t        «      5  t        ||d«       d d d «       y # 1 sw Y   ŒhxY w# 1 sw Y   ŒExY w# 1 sw Y   y xY w)Nrä  r‡   rõ  gffffff
@r…   rÜ   )rI   r‰   r”   r   rZ  r   rL   rï  s       r>   Útest_maxRstat_invalid_indexz(TestMaxRStat.test_maxRstat_invalid_indexq  sÀ   € à�J‰JšÐ'¨r¯z©zˆJÓ:ˆØ�J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ�]‰]œ9Ó%ñ 	 Ü�Q˜˜3Ô÷	 ä�]‰]œ:Ó&ñ 	Ü�Q˜˜2Ô÷	ä�]‰]œ:Ó&ñ 	Ü�Q˜˜1Ô÷	ð 	÷		 ð 	 ú÷	ð 	ú÷	ð 	ús$   ÁCÂ	CÂ8C'ÃCÃC$Ã'C0re  rÜ   c                 ó¦   — |j                  d|j                  ¬«      }|j                  d|j                  ¬«      }t        t        t        |||«       y r’  )rT   r‰   rK   rL   r   ©rN   re  rO   rc   r|  s        r>   Útest_maxRstat_empty_linkagez(TestMaxRStat.test_maxRstat_empty_linkage|  s@   € ð �H‰H�V 2§:¡:ˆHÓ.ˆØ�H‰H�V 2§:¡:ˆHÓ.ˆÜ”j¤(¨A¨q°!Õ4r=   c                 óÔ   — |j                  g d¢g|j                  ¬«      }t        j                  j	                  dd«      }|j                  |«      }t        t        t        |||«       y rò  )rI   r‰   rs   rt   rv   rK   rL   r   r  s        r>   Útest_maxRstat_difrow_linkagez)TestMaxRStat.test_maxRstat_difrow_linkageƒ  sN   € ð �J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ�I‰I�N‰N˜1˜aÓ ˆØ�J‰J�q‹MˆÜ”j¤(¨A¨q°!Õ4r=   c                 óÖ   — |j                  g d¢g|j                  ¬«      }|j                  g d¢g|j                  ¬«      }t        ||d«      }t        ||d|«      }t	        ||d¬«       y )Nrä  r‡   rõ  r5   rq   r^   )rI   r‰   r   rö  r/   r÷  s         r>   Ú!test_maxRstat_one_cluster_linkagez.TestMaxRStat.test_maxRstat_one_cluster_linkageŒ  s^   € à�J‰JšÐ'¨r¯z©zˆJÓ:ˆØ�J‰JšÐ'¨r¯z©zˆJÓ:ˆÜ�a˜˜AÓˆÜ6°q¸!¸QÀÓCˆ
Ü˜˜J¨UÖ3r=   rY   ré  c                 óä   — t         j                  }t        ||«      }|j                  t	        |«      «      }|j                  |«      }t        ||d«      }t        ||d|«      }t        ||d¬«       y )Nr5   rq   r^   )r6   rò   r	   rI   r   r   rö  r/   rú  s           r>   Útest_maxRstat_Q_linkagez$TestMaxRStat.test_maxRstat_Q_linkage”  sd   € ô  ×#Ñ#ˆÜ�A�vÓˆØ�J‰J”| A“Ó'ˆØ�J‰J�q‹MˆÜ�a˜˜AÓˆÜ6°q¸!¸QÀÓCˆ
Ü˜˜J¨UÖ3r=   N)r9   r:   r;   rÿ  r”   r¤   r¥   r;  r  r  r  r  r<   r=   r>   rý  rý  n  s‰   „ ò	ð ‡[�[×Ñ˜S¡%¨£(Ó+ñ5ó ,ð5ð ‡[�[×Ñ˜S¡%¨£(Ó+ñ5ó ,ð5ò4ð ‡[�[×ÑØÒFóHñ4óHñ4r=   rý  c                   óÖ  — e Zd Zd„ Zd„ Zd„ Zej                  j                  e	 d¬«      d„ «       Z
 edd¬«       ed	d
¬«      ej                  j                  e	 d¬«      ej                  j                  dg d¢«      d„ «       «       «       «       Z edd¬«       ed	d
¬«      ej                  j                  e	 d¬«      d„ «       «       «       Zej                  d„ «       Zd„ Zd„ Zd„ Zy)ÚTestDendrogramc                 ó–   — |j                  t        t        j                  d«      «      }t	        |d¬«      }|d   }t        |g d¢«       y )Nr   T©Úno_plotÚleaves©rp   rH   r5   r   rƒ   rÜ   )rI   r	   r6   ra   r   r   )rN   rO   rc   r|  r  s        r>   Ú$test_dendrogram_single_linkage_tdistz3TestDendrogram.test_dendrogram_single_linkage_tdist¤  s>   € à�J‰J”wÔ2×9Ñ9¸8ÓDÓEˆÜ�q $Ô'ˆØ�8‘ˆÜ�VÒ/Õ0r=   c                 ó„   — |j                  t        t        j                  d«      «      }t	        t
        t        |d¬«       y )Nr   Úfoo©Úorientation)rI   r	   r6   ra   rK   rL   r   r[  s      r>   Útest_valid_orientationz%TestDendrogram.test_valid_orientation«  s,   € Ø�J‰J”wÔ2×9Ñ9¸8ÓDÓEˆÜ”j¤*¨a¸UÖCr=   c                 óÂ   — |j                  t        t        j                  d«      «      }g d¢}t	        ||j                  |«      d¬«      }t	        ||d¬«      }||k(  sJ ‚y )Nr   )r5   rƒ   rp   rÛ   rÜ   rH   T)Úlabelsr  )rI   r	   r6   ra   r   )rN   rO   rc   r  Úresult1Úresult2s         r>   Útest_labels_as_array_or_listz+TestDendrogram.test_labels_as_array_or_list¯  sV   € à�J‰J”wÔ2×9Ñ9¸8ÓDÓEˆÚ#ˆÜ˜Q r§z¡z°&Ó'9À4ÔHˆÜ˜Q v°tÔ<ˆØ˜'Ò!Ð!Ñ!r=   zno matplotlibrD   c           	      óÎ  — |j                  g d¢g d¢g d¢g«      }t        j                  «        t        j                  t
        «      5 }t        |t        t        d«      «      ¬«       d d d «       dt        j                  «      v sJ ‚t        j                  t
        d¬«      5  t        |g ¬«       d d d «       t        j                  «        y # 1 sw Y   ŒhxY w# 1 sw Y   Œ*xY w)N)r   r5   rÂ   rÜ   )rp   rƒ   rÂ   rH   )rÜ   rH   rÃ   rÛ   éd   )r  z.Dimensions of Z and labels must be consistent.rÎ   )rI   ÚpltÚfigurer”   r   rL   r   r´  r;  ÚstrÚvalueÚclose)rN   rO   ÚlinkÚexc_infos       r>   Útest_valid_label_sizez$TestDendrogram.test_valid_label_size·  s¾   € à�z‰zÚÚÚð
ó ˆô
 	�
‰
ŒÜ�]‰]œ:Ó&ð 	6¨(Ü�t¤D¬¨s«Ó$4Õ5÷	6à?Ü�h—n‘nÓ%ñ&ð 	&ð &ô �]‰]ÜØFôHñ 	(ô �t BÕ'÷	(ô
 	�	‰	�÷	6ð 	6ú÷
	(ð 	(ús   Á CÂ$CÃCÃC$ÚtorchzFMPL 3.9.2 & torch DeprecationWarning from __array_wrap__ and NumPy 2.0z
dask.arrayz.dask.array has bad interaction with matplotlibr  )ÚtopÚbottomÚleftÚrightc                 óH  — |j                  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
                  «       }|j                  d«      }t        |||¬«      }t        j                   |d   «      |d<   t        ||«       t        |||dd¬«       |dv r|j                  «       d   n|j                  «       d   }t        |j                  «       d«       t        |j                  «       d«       t        |||d¬«       |dv r|j                  «       d   n|j                  «       d   }t        |j                  «       d«       t        |||d¬«       |dv r|j                  «       d   n|j                  «       d   }t        |j                  «       d«       t	        j                  «        t        ||¬«      }	t	        j                  «        t        j                   |	d   «      |	d<   t        |	|«       y )Nr   )ÚC1ÚC0r,  r,  r,  ©rG   rá   rá   rG   )rG   râ   râ   rG   )rG   rã   rã   râ   ©rG   rä   rä   rã   ©rá   rå   rå   rä   ©rÇ   rÇ   rÍ   rÍ   )ç     €F@r1  ç     €K@r2  )ç     €A@r3  ç      I@r4  )ç      9@r5  ç     @E@r6  )rÌ   rÌ   ç     à@@r7  )Ú2Ú5Ú1Ú0Ú3Ú4r  )r+  r+  r,  r,  r,  r,  ©Ú
color_listÚdcoordÚicoordÚivlr  Úleaves_color_listéÝ   )Úaxr  r@  ro   éZ   )rE  r  Úleaf_font_sizeÚleaf_rotation)r&  r'  r   )rE  r  rH  )rE  r  rG  r  )rI   r	   r6   ra   r  r  Úadd_subplotr   rs   r   Úget_xticklabelsÚget_yticklabelsÚget_rotationÚget_sizer!  )
rN   r  rO   rc   r    ÚfigrE  ÚR1Ú	testlabelÚR2s
             r>   Útest_dendrogram_plotz#TestDendrogram.test_dendrogram_plotË  s  € ð �J‰J”wÔ2×9Ñ9¸8ÓDÓEˆÚ"@Ú7Ú7Ú9Ú9Ú;ð	=ò
  6Ú7Ú7Ú7Ú9ð	;ò
 :Ú0Ú)Mñˆô  �j‰j‹lˆØ�_‰_˜SÓ!ˆô ˜˜b¨kÔ:ˆÜ—z‘z " X¡,Ó/ˆˆ8‰Ü�R˜Ô"ô 	�1˜¨Ø"$°Bõ	8ð Ð/Ñ/ð ×ÑÓ  Ò#à×#Ñ#Ó% aÑ(ð 	ô
 	�Y×+Ñ+Ó-¨rÔ2Ü�Y×'Ñ'Ó)¨2Ô.Ü�1˜¨Ø!#õ	%ð Ð/Ñ/ð ×ÑÓ  Ò#à×#Ñ#Ó% aÑ(ð 	ô
 	�Y×+Ñ+Ó-¨rÔ2Ü�1˜¨Ø"$õ	&ð Ð/Ñ/ð ×ÑÓ  Ò#à×#Ñ#Ó% aÑ(ð 	ô
 	�Y×'Ñ'Ó)¨2Ô.Ü�	‰	Œô ˜ {Ô3ˆÜ�	‰	ŒÜ—z‘z " X¡,Ó/ˆˆ8‰Ü�R˜Õ"r=   c           
      óô  — |j                  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œ«       y )Nr   rp   ÚlastpT)Úshow_contractedr@  r,  )rG   rå   rå   rG   r0  ú(2)z(4)rÛ   rÞ   r>  Úmtica)r+  r,  r,  r,  r-  )rG   rã   rã   rG   r.  r/  )r3  r3  r1  r1  )r5  r5  ç      D@rX  )rÌ   rÌ   ç     @@@rY  )r8  r9  r:  r;  rV  )rp   rH   r5   r   rß   )r+  r+  r,  r,  r,  )	rI   r	   r6   ra   r   r  r!  rs   r   rï  s       r>   Útest_dendrogram_truncate_modez,TestDendrogram.test_dendrogram_truncate_mode  sö   € ð �J‰J”wÔ2×9Ñ9¸8ÓDÓEˆä�q˜!˜W°dÔ;ˆÜ�	‰	ŒÜ—j‘j  8¡Ó-ˆˆ(‰Ü�Q¨ vÚ$<Ð#=Ú$:Ð#;Ø!&¨ Ø$% q 6Ø/3°T¨lñô 	ô �q˜!˜W°dÔ;ˆÜ�	‰	ŒÜ—j‘j  8¡Ó-ˆˆ(‰Ü�QÒ'?Ú$<Ú$<Ú$>Ú$@ð$Bò %;Ú$<Ú$<Ú$<ð$>ò !<Ú#2Ú.Lñõ 	r=   c                 ó   — t        «       S rª   r3   r  s    r>   Údendrogram_lockzTestDendrogram.dendrogram_lock9  s	   € ä‹vˆr=   c                 ó  — |j                  t        t        j                  d«      «      }|5  t	        g d¢«       t        |ddd¬«      }t	        g d¢«       |d   }t        |g d	¢«       t	        d «       d d d «       y # 1 sw Y   y xY w)
Nr   )r¾   ÚmrP   ÚkTÚgéú   )r  Úabove_threshold_colorÚcolor_threshold)r`  Úrr¾   r^  rP   r_  r?  )r¾   r^  r`  r`  r`  )rI   r	   r6   ra   r   r   r   )rN   rO   r\  rc   r|  r?  s         r>   Útest_dendrogram_colorsz%TestDendrogram.test_dendrogram_colors=  sz   € à�J‰J”wÔ2×9Ñ9¸8ÓDÓEˆàñ 	)ä"Ò#7Ô8Ü˜1 dØ14ÀcôKˆAä"Ò#AÔBà˜<™ˆJÜ˜Ò%>Ô?ô # 4Ô(÷	)÷ 	)ñ 	)ús   ¬AA=Á=Bc           	      óÌ   — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }|j                  t        |d«      «      }t        |d¬«      }g d¢}|d	   }t	        ||«       y )
N©r5   r   r   ©r   r   r5   ©r   rp   r   ©r   r5   r   r   Tr  ©r,  r+  r+  r,  ÚC2rl  rC  ©rs   rI   r	   r   r   ©rN   rO   rm   rc   rz   Ú
exp_colorsÚcolorss          r>   Ú%test_dendrogram_leaf_colors_zero_distz4TestDendrogram.test_dendrogram_leaf_colors_zero_distN  se   € ô �J‰Jš	Ú!Ú!Ú!Ú!Ú!ð#ó $ˆð �J‰J”w˜q (Ó+Ó,ˆÜ�q $Ô'ˆÚ9ˆ
ØÐ&Ñ'ˆÜ�V˜ZÕ(r=   c           	      óÌ   — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }|j                  t        |d«      «      }t        |d¬«      }g d	¢}|d
   }t	        ||«       y )Nrg  )r   r   gš™™™™™ñ?ri  rh  rj  r   Tr  rk  rC  rm  rn  s          r>   Útest_dendrogram_leaf_colorsz*TestDendrogram.test_dendrogram_leaf_colors]  se   € ô �J‰Jš	Ú#Ú!Ú!Ú!Ú!ð#ó $ˆð �J‰J”w˜q (Ó+Ó,ˆÜ�q $Ô'ˆÚ9ˆ
ØÐ&Ñ'ˆÜ�V˜ZÕ(r=   N)r9   r:   r;   r  r  r  r”   r¤   ÚskipifÚhave_matplotlibr$  r£   r¥   rR  rZ  Úfixturer\  re  rq  rs  r<   r=   r>   r
  r
  ¡  s-  „ ò1òDò"ð ‡[�[×Ñ˜OÐ+°OÐÓDñó Eðñ& �gð!ôñ �lØ@ôð ‡[�[×Ñ˜OÐ+°OÐÓDØ‡[�[×Ñ˜]Ò,NÓOñ<#ó Pó Eóó	ð<#ñ| �gð"ôñ �lØ@ôð ‡[�[×Ñ˜OÐ+°OÐÓDñó Eóó	ðð> ‡^�^ñó ðò)ò")ó)r=   r
  c                 óÆ  — | j                   d   dz   }|j                  |dz
  f| j                  ¬«      }t        d|dz
  «      D �]  }|j                  d«      }| |df   }| |df   }||k\  rH||j	                  ||j
                  ¬«      |z
     }t        j                  |d«      j                  |«      }||k\  rH||j	                  ||j
                  ¬«      |z
     }	t        j                  |d«      j                  |	«      }t        j                  |d«      j                  | |df   «      }t        j                  ||«      j                  |j                  |«      «      }�Œ |S ©Nr   r5   r‡   )rƒ   rp   )
ÚshaperT   rˆ   r;  rI   rY  rj  rk  rl  Úmax)
rc   rO   ry   ÚBre  rF  r(  r)  Úb_leftÚb_rights
             r>   rå  rå  m  s<  € à	�‰�‰
�Q‰€AØ
�‰�!�A‘#�˜qŸw™wˆÓ'€AÜ�1�a˜!‘e‹_ó (ˆØ�H‰H�T‹NˆØ��A�‰wˆØ�!�Q�$‘ˆØ�1Š9Ø�r—z‘z $¨b¯h©h�zÓ7¸!Ñ;Ñ<ˆFÜ—‘�q˜!“× Ñ  Ó(ˆAØ�AŠ:Ø˜Ÿ
™
 5°·±˜
Ó9¸AÑ=Ñ>ˆGÜ—‘�q˜!“× Ñ  Ó)ˆAÜ�F‰F�1�a‹L×Ñ˜Q˜q !˜t™WÓ%ˆÜ�F‰F�1�a‹L×Ñ˜RŸV™V A›YÓ'Šð(ð €Hr=   rƒ   c                 óÖ  — | j                   d   dz   }|j                  | |«      }|j                  |dz
  f|¬«      }t        d|dz
  «      D �]  }|j                  d«      }| |df   }	| |df   }
|	|k\  rH||j	                  |	|j
                  ¬«      |z
     }t        j                  |d«      j                  |«      }|
|k\  rH||j	                  |
|j
                  ¬«      |z
     }t        j                  |d«      j                  |«      }t        j                  |d«      j                  |||f   «      }t        j                  ||«      j                  |j                  |«      «      }�Œ |S rx  )
ry  Úresult_typerT   r;  rI   rY  rj  rk  rl  rz  )rc   r|  r_  rO   ry   rˆ   r{  re  rF  r(  r)  r|  r}  s                r>   rö  rö  €  sH  € à	�‰�‰
�Q‰€AØ�N‰N˜1˜aÓ €EØ
�‰�!�A‘#�˜uˆÓ%€AÜ�1�a˜!‘e‹_ó (ˆØ�H‰H�T‹NˆØ��A�‰wˆØ�!�Q�$‘ˆØ�1Š9Ø�r—z‘z $¨b¯h©h�zÓ7¸!Ñ;Ñ<ˆFÜ—‘�q˜!“× Ñ  Ó(ˆAØ�AŠ:Ø˜Ÿ
™
 5°·±˜
Ó9¸AÑ=Ñ>ˆGÜ—‘�q˜!“× Ñ  Ó)ˆAÜ�F‰F�1�a‹L×Ñ˜Q˜q !˜t™WÓ%ˆÜ�F‰F�1�a‹L×Ñ˜RŸV™V A›YÓ'Šð(ð €Hr=   c                 ó  — t         j                  j                  d«       d}t         j                  j                  |d«      }| j	                  t        |«      «      }t        |«      }t        ||j                  «       kD  «       t        |j                  «       |j                  «       kD  «       t        |j                  «       |j                  «       k(  «       t        |j                  «       |j                  «       k7  «       y )Né   é2   rÜ   )
rs   rt   ÚseedÚrandnrI   r   r   r   r©  rª  )rO   rA  rm   rc   Útrees        r>   Útest_node_comparer†  ”  s¨   € ä‡I�I‡N�N�2ÔØ€DÜ
�	‰	�‰˜˜aÓ €AØ
�
‰
”4˜“7Ó€AÜ�1‹:€DÜˆD�4—=‘=“?Ñ"Ô#ÜˆD�N‰NÓ˜tŸ}™}›Ñ.Ô/ÜˆD�N‰NÓ §¡Ó 0Ñ0Ô1ÜˆD�N‰NÓ §¡£Ñ/Õ0r=   c           	      ó~  — t         j                  j                  d«       d}t         j                  j                  |d«      }| j	                  t        |«      «      }t        |«      }t        |d d …df   | j                  |«      dd¬«       t        |d d …df   | j                  |«      dd¬«       t        t        j                  |«      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        |«      }| j	                  |D �cg c]  }|j                  ‘Œ c}«      }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¬«       y c c}w )Nr�  r‚  rÜ   r   rq   F)rr   Úcheck_dtyper…   r5   éûÿÿÿrH   )Ú
n_clustersr—   iöÿÿÿrà   )Úheight)rs   rt   rƒ  r„  rI   r   r    r/   ÚarangerT   r   rz  r(   ÚdistÚsearchsorted)rO   rA  rm   rc   ÚcutreeÚnodesr¦  Úheightss           r>   Útest_cut_treer’  ¡  sÙ  € ä‡I�I‡N�N�2ÔØ€DÜ
�	‰	�‰˜˜aÓ €AØ
�
‰
”4˜“7Ó€AÜ�a‹[€Fô �Fš1˜a˜4‘L "§)¡)¨D£/¸È5ÕQÜ�Fš1˜b˜5‘M 2§8¡8¨D£>¸È5ÕQÜ”—‘˜FÓ#×'Ñ'¨Ó*¬B¯I©I°d¸Q±hÀÀBÓ,GÔHä�Fš1˜r˜d˜7‘O¤X¨a¸AÔ%>ÀUÕKÜ�Fš1˜r 3˜i˜<Ñ(¬(°1À!ÀRÀÔ*IÐPUÕVÜ�Fš1˜s B˜i˜<Ñ(¬(°1À"ÀaÀÔ*IÐPUÕVä Ó"€EØ�j‰j°Ö6¨˜$Ÿ)›)Ò6Ó7€Gä�Fš1œbŸo™o¨g¸°sÓ;Ð;Ñ<Ü˜Q qÔ)°õ7ä�Fš1œbŸo™o¨g¸¸2°wÓ?Ð?Ñ@Ü˜Q¨¨2 wÔ/°eõ=ä�Fš1œbŸo™o¨g¸¸A°wÓ?Ð?Ñ@Ü˜Q¨¨A wÔ/°eö=ùò 7s   Å:H:c                 óö  — t        | j                  t        t        j                  «      «      | j                  t        j                  «      «      }t        j
                  }t        || j                  |«      d¬«       t        | j                  t        t        j                  d«      «      | j                  t        j                  «      «      }t        j                  }t        || j                  |«      d¬«       y )Nr]   r^   r   rj   )	r!   rI   r	   r6   ra   r€   r/   rm   Úlinkage_X_ward_olo)rO   rc   rd   s      r>   r�   r�   ½  s²   € ô 	˜bŸj™j¬Ô1D×1KÑ1KÓ)LÓMØ Ÿj™jÔ)<×)CÑ)CÓDó	F€Aä#×=Ñ=€IÜ�A�r—z‘z )Ó,°5Õ9ô 	˜bŸj™j¬Ô1D×1FÑ1FÈÓ)OÓPØ Ÿj™jÔ)<×)>Ñ)>Ó?ó	A€Aä#×6Ñ6€IÜ�A�r—z‘z )Ó,°5Ö9r=   c                  óÜ  — t        j                  g d¢«      } t        | «      }|j                  «       }t	        |d   d«       t	        |d   d«       |j                  «        |j                  «       }t	        |d   d«       t	        |d   d«       |j                  dd«       |j                  «       }t	        |d   d	«       t	        |d   d
«       |j                  «        |j                  «        |j                  dd«       |j                  «       }t	        |d   d«       t	        |d   d«       |j                  «        |j                  «       }t	        |d   d«       t	        |d   d«       y )N)rp   r…   r   ç      ø¿rƒ   Úkeyrƒ   r   r–  r5   r…   g      @rp   r   rà   rÜ   )rs   rI   r'   Úget_minr   Ú
remove_minÚchange_value)rœ   Ú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=   )dÚnumpyrs   Únumpy.testingr   r   r   r   r”   r   rK   Úscipy.cluster.hierarchyr   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$   r%   r&   Ú"scipy.cluster.hierarchy._hierarchyr'   Ú'scipy.cluster.hierarchy._hierarchy_implr(   r)   r*   r+   Úscipy.spatial.distancer,   Úscipy._lib._array_apir-   r.   r/   r0   r1   r2   Úscipy._external.array_api_extraÚ	_externalÚarray_api_extrarj  Ú	threadingr4   Ú r6   r8   Ú
matplotlibÚuseÚmatplotlib.pyplotÚpyplotr  ru  Ú	Exceptionr¤   r£   rA   r¨   r²   rÓ   rè   rû   r  r  rH  ry  r�  rž  r­  r¿  rà  rí  rý  r
  rå  rö  r†  r’  r�   r�  r<   r=   r>   ú<module>r¯     sj  ðóD ß TÓ TÛ Ý *÷3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3÷ 3ñ 3õ 4÷ó õ )÷L÷ L÷ .Ð -å å !÷(ñ (ðÛà€J‡N�N�5Ôå#Ø€Oð —;‘;×/Ñ/Ð ñ �7Ó÷s,ð s,ó ðs,ñl �<Ó ÷	Tð 	Tó !ð	Tñ �8Ó÷&&ð &&ó ð&&ñR Ð$ oÓ6÷$ð $ó 7ð$ñ@ �<Ó ÷+ð +ó !ð+ñ  �8Ó÷*2ð *2ó ð*2ñZ �7Ó÷:ð :ó ð:ñ �=Ó!÷R7ð R7ó "ðR7ñj Ð#Ó$÷Q6ð Q6ó %ðQ6ñh �;Ó÷I1ð I1ó  ðI1ñX �?Ó#÷ +ð  +ó $ð +ñF �; Ó(÷$ð $ó )ð$ñD �:Ó÷0)ð 0)ó ð0)ñf �<Ó ÷Fð Fó !ðFñR �8Ó÷4ð 4ó ð4ñ2 �;Ó÷"4ð "4ó  ð"4ñJ �8Ó÷/4ð /4ó ð/4ñd �:Ó÷H)ð H)ó ðH)òVð& /0°Bó ñ( �7Óñ	1ó ð	1ñ �8Óñ=ó ð=ñ6 Ð(Ó)ñ:ó *ð:ó$øð# ò ØƒOðús   Â%J ÊJÊJ