Ë
    ÷Q(h  ã            
       óÜ  — d dl mZ d dlmZ d dl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 d dlmZ ee	eeeeeeedœ	Ze eed¬«      e
ed	œZg d
¢ZddgZg d¢Zej6                  j9                  d «      Zej=                  dd¬«      Zej=                  dd¬«      Z d„ Z!ejD                  jG                  deD � cg c]  } | ee f‘Œ	 c} «      d„ «       Z$ejD                  jG                  deD � cg c]  } | ee f‘Œ	 c} «      d„ «       Z%ejD                  jG                  de«      d„ «       Z&ejD                  jG                  d eee«      «      d„ «       Z'ejD                  jG                  d eee«      «      d„ «       Z(ejD                  jG                  dejS                  «       «      d„ «       Z*ejD                  jG                  d e+efi e¤ŽjY                  «       «      d„ «       Z-yc c} w c c} w )é    )Úpartial)ÚchainN)Úadjusted_mutual_info_scoreÚadjusted_rand_scoreÚcalinski_harabasz_scoreÚcompleteness_scoreÚdavies_bouldin_scoreÚfowlkes_mallows_scoreÚhomogeneity_scoreÚmutual_info_scoreÚnormalized_mutual_info_scoreÚ
rand_scoreÚsilhouette_scoreÚv_measure_score)Úassert_allclose)	r   r   r   r   r   r   r   r   r
   Ú	manhattan)Úmetric)r   Úsilhouette_manhattanr   r	   )r   r   r   r   r   r   r
   r   r   )r   r   r   r   r   r   r
   r   é   é   ©Úsizec                  óT   — t        t        t        z   «      t        t        «      k(  sJ ‚y ©N)ÚsortedÚSYMMETRIC_METRICSÚNON_SYMMETRIC_METRICSÚSUPERVISED_METRICS© ó    úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/metrics/cluster/tests/test_common.pyÚ"test_symmetric_non_symmetric_unionr"   ]   s+   € ÜÔ#Ô&;Ñ;Ó<ÄÜóAò ð ñ r    zmetric_name, y1, y2c                 óf   — t         |    } |||«      t        j                   |||«      «      k(  sJ ‚y r   ©r   ÚpytestÚapprox©Úmetric_nameÚy1Úy2r   s       r!   Útest_symmetryr+   c   ó1   € ô   Ñ,€FÙ�"�b‹>œVŸ]™]©6°"°b«>Ó:Ò:Ð:Ñ:r    c                 óf   — t         |    } |||«      t        j                   |||«      «      k7  sJ ‚y r   r$   r'   s       r!   Útest_non_symmetryr.   k   r,   r    r(   c                 ó|  — g d¢}g d¢}t         |    } |g d¢g d¢«      dkD  sJ ‚ |g d¢g d¢«      dkD  sJ ‚ |g d¢g d¢«      dk  sJ ‚ |g d¢g d¢«      dk  sJ ‚ |||«      t        j                  d«      k(  sJ ‚g d	¢}g d
¢}t        j                   |||«       |||«      g«      }|dk  j                  «       rJ ‚y )N)r   r   r   é   r0   r0   )r   r   r   r0   r0   )r   r   r   r0   é   g        )r   r   r0   r0   r1   )r   r   r0   r0   r0   )r   r0   r0   r0   r0   g      ð?)r   r   r   r   r   r   )r   r0   r1   r   é   é   r   )r   r%   r&   ÚnpÚarrayÚany)r(   Úupper_bound_1Úupper_bound_2r   Úlower_bound_1Úlower_bound_2Úscores          r!   Útest_normalized_outputr<   s   sÏ   € â&€MÚ&€MÜ Ñ,€FÙ’/¢?Ó3°cÒ9Ð9Ð9Ù’/¢?Ó3°cÒ9Ð9Ð9Ù’/¢?Ó3°cÒ9Ð9Ð9Ù’/¢?Ó3°cÒ9Ð9Ð9Ù�- Ó/´6·=±=ÀÓ3EÒEÐEÐEâ&€MÚ&€MÜ�H‰HÙ	�˜}Ó	-©v°mÀ]Ó/SÐTó€Eð ˜‘	�‰Ô Ð Ð Ð r    c                 ó²  — t        j                  g d¢«      }t        j                  g d¢«      }| t        v rXt        |    } |||«      }t        | |d|z
  |«      «       t        | |d|z
  d|z
  «      «       t        | ||d|z
  «      «       y t        |    }t         j
                  j                  dd¬«      } |||«      }t        | ||d|z
  «      «       y )N)r   r   r   r0   r0   r   r0   )r0   r   r0   r   r0   r0   r   r0   é
   )é   r>   r   )r4   r5   r   r   ÚUNSUPERVISED_METRICSÚrandomÚrandint)r(   Úy_labelÚy_predr   Úscore_1ÚXs         r!   Útest_permute_labelsrG   †   sÈ   € ô �h‰hÒ,Ó-€GÜ�X‰XÒ+Ó,€FØÔ(Ñ(Ü# KÑ0ˆÙ˜ Ó)ˆÜ˜¡¨¨F©
°GÓ!<Ô=Ü˜¡¨¨F©
°A¸±KÓ!@ÔAÜ˜¡¨°°G±Ó!<Õ=ä% kÑ2ˆÜ�I‰I×Ñ˜b wÐÓ/ˆÙ˜˜FÓ#ˆÜ˜¡¨¨1¨v©:Ó!6Õ7r    c                 ó¨  — g d¢}g d¢}d„ }| t         v rKt         |    } |||«      } ||«      } ||«      }t        ||«      D ]  \  \  }}	\  }
}| |||
«      k(  rŒJ ‚ y t        |    }t        j                  j                  dd¬«      } |||«      }| ||j                  t        «      |«      k(  sJ ‚ ||«      }|D ]  \  }}	| |||«      k(  rŒJ ‚ y )N)r   r   r   r   r0   r0   r0   r0   )r   r0   r1   r   r2   r3   é   r?   c              3   óŒ  K  — t        j                  | «      } | df–— | j                  «       df–— | j                  «       D �cg c]  }t        |«      dz   ‘Œ c}df–— t        j                  | j                  «       D �cg c]  }t        |«      dz   ‘Œ c}t        ¬«      df–— | dz
  df–— | dz   d	f–— y c c}w c c}w ­w)
Nzarray of intszlist of intsz-azlist of strs)Údtypezarray of strsr0   zincluding negative intszstrictly positive ints)r4   r5   ÚtolistÚstrÚobject)ÚyÚxs     r!   Úgenerate_formatsz0test_format_invariance.<locals>.generate_formats    s±   è ø€ Ü�H‰H�Q‹KˆØ�Ð Ò Ø�h‰h‹j˜.Ð(Ò(Ø&'§h¡h£jÖ1 Œs�1‹v˜‹}Ò1°>ÐAÒAä�H‰H¨Q¯X©X«ZÖ8¨”c˜!“f˜t“mÒ8ÄÔGØð
ò 	
ð �!‰eÐ.Ð.Ò.Ø�!‰eÐ-Ð-Ó-ùò 2ùâ8ùs   ‚ACÁB:Á(CÂB?Â.Cr>   )é   r>   r   )r   Úzipr@   r4   rA   rB   ÚastypeÚfloat)r(   Úy_truerD   rQ   r   rE   Ú
y_true_genÚ
y_pred_genÚ
y_true_fmtÚfmt_nameÚ
y_pred_fmtÚ_rF   s                r!   Útest_format_invariancer]   ™   s  € ò &€FÚ%€Fò
.ð Ô(Ñ(Ü# KÑ0ˆÙ˜ Ó(ˆÙ% fÓ-ˆ
Ù% fÓ-ˆ
Ü7:¸:ÀzÓ7Rò 	=Ñ3Ñ"ˆZ˜¡O Z°Ø™f Z°Ó<Ó<Ð<Ð<ñ	=ô & kÑ2ˆÜ�I‰I×Ñ˜b wÐÓ/ˆÙ˜˜FÓ#ˆØ™& §¡¬%£°&Ó9Ò9Ð9Ð9Ù% fÓ-ˆ
Ø$.ò 	4Ñ ˆJ˜Ø™f Q¨
Ó3Ó3Ð3Ð3ñ	4r    r   c                 ó.   — dD ]  \  }} | |g|g«       Œ y )N))r   r   )r   r0   )r0   r   )r0   r0   r   )r   ÚiÚjs      r!   Útest_single_samplera   ½   s%   € ð 1ò ‰ˆˆ1Ù�ˆs�Q�CÕñr    zmetric_name, metric_funcc                 ór  — | t         v rlddgt        j                  t        j                  gfddgt        j                  t        j                  gfddgt        j                  t        j                  gfg}n†t        j                  j                  dd¬«      }|t        j                  t        j                  gf|t        j                  t        j                  gf|t        j                  t        j                  gfg}t        j                  t        d¬«      5  |D ]  } ||Ž  Œ	 	 d d d «       y # 1 sw Y   y xY w)Nr   r0   r>   )r1   r>   r   zcontains (NaN|infinity))Úmatch)	r   r4   ÚinfÚnanrA   rB   r%   ÚraisesÚ
ValueError)r(   Úmetric_funcÚinvalidsrF   Úargss        r!   Útest_inf_nan_inputrk   Ä   s÷   € ð Ô(Ñ(à�ˆV”b—f‘fœbŸf™fÐ%Ð&Ø�ˆV”b—f‘fœbŸf™fÐ%Ð&Ø�ˆV”b—f‘fœbŸf™fÐ%Ð&ð
‰ô �I‰I×Ñ˜b wÐÓ/ˆØœŸ™¤§¡Ð(Ð)¨A´·±¼¿¹Ð/?Ð+@À1ÄrÇvÁvÌrÏvÉvÐFVÐBWÐXˆÜ	�‰”zÐ)CÔ	Dñ Øò 	ˆDÙ˜Òñ	÷÷ ñ ús   ÄD-Ä-D6).Ú	functoolsr   Ú	itertoolsr   Únumpyr4   r%   Úsklearn.metrics.clusterr   r   r   r   r	   r
   r   r   r   r   r   r   Úsklearn.utils._testingr   r   r@   r   r   ÚNORMALIZED_METRICSrA   ÚRandomStateÚrngrB   r)   r*   r"   ÚmarkÚparametrizer+   r.   r<   rG   r]   Úvaluesra   ÚdictÚitemsrk   )Únames   0r!   ú<module>rz      s=  ðÝ Ý ã Û ÷÷ ÷ ó õ 3ð #=Ø.ØØ,Ø*Ø*Ø$@Ø&Ø2ñ
Ð ð )Ù#Ð$4¸[ÔIØ6Ø0ñ	Ð ò Ð ð -Ð.BÐCÐ ò	Ð ð 	‡i�i×Ñ˜AÓ€Ø‡[�[�˜€[Ó€Ø‡[�[�˜€[Ó€òð ‡�×ÑØÐ7HÖI¨t˜T 2 ršNÒIóñ;óð;ð
 ‡�×ÑØÐ7LÖM¨t˜T 2 ršNÒMóñ;óð;ð
 ‡�×Ñ˜Ð(:Ó;ñ!ó <ð!ð$ ‡�×Ñ˜©Ð.@ÐBVÓ(WÓXñ8ó Yð8ð$ ‡�×Ñ˜©Ð.@ÐBVÓ(WÓXñ4ó Yð4ðB ‡�×Ñ˜Ð#5×#<Ñ#<Ó#>Ó?ñó @ðð ‡�×ÑØ¡Ð%7Ñ PÐ;OÑ P× VÑ VÓ XóñóñùòG Jùò Ns   Â<G$
Ã/G)
