§
    ¨éUgK  ã            
       óú  — 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j                             d ¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        Z d„ Z!ej"         #                    d¦  «        ej"         $                    dd„ eD ¦   «         ¦  «        d„ ¦   «         ¦   «         Z%ej"         $                    dd„ eD ¦   «         ¦  «        d„ ¦   «         Z&ej"         #                    d¦  «        ej"         $                    de¦  «        d„ ¦   «         ¦   «         Z'ej"         #                    d¦  «        ej"         $                    d eee¦  «        ¦  «        d„ ¦   «         ¦   «         Z(ej"         #                    d¦  «        ej"         $                    d eee¦  «        ¦  «        d„ ¦   «         ¦   «         Z)ej"         $                    de *                    ¦   «         ¦  «        d„ ¦   «         Z+ej"         $                    d e,efi e¤Ž -                    ¦   «         ¦  «        d„ ¦   «         Z.dS ) é    )Ú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                  ón   — t          t          t          z   ¦  «        t          t          ¦  «        k    sJ ‚d S ©N)ÚsortedÚSYMMETRIC_METRICSÚNON_SYMMETRIC_METRICSÚSUPERVISED_METRICS© ó    úh/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/metrics/cluster/tests/test_common.pyÚ"test_symmetric_non_symmetric_unionr"   ]   sC   € ÝÕ#Õ&;Ñ;Ñ<Ô<ÅÝñAô Aò ð ð ð ð ð r    zignore::FutureWarningzmetric_name, y1, y2c                 ó,   — g | ]}|t           t          f‘ŒS r   ©Úy1Úy2©Ú.0Únames     r!   ú
<listcomp>r*   f   s   € ÐIÐIÐI¨t˜T¥2¥r˜NÐIÐIÐIr    c                 ó|   — t           |          } |||¦  «        t          j         |||¦  «        ¦  «        k    sJ ‚d S r   ©r   ÚpytestÚapprox©Úmetric_namer%   r&   r   s       r!   Útest_symmetryr1   d   sC   € õ
   Ô,€FØˆ6�"�b‰>Œ>�Vœ]¨6¨6°"°b©>¬>Ñ:Ô:Ò:Ð:Ð:Ð:Ð:Ð:r    c                 ó,   — g | ]}|t           t          f‘ŒS r   r$   r'   s     r!   r*   r*   n   s   € ÐMÐMÐM¨t˜T¥2¥r˜NÐMÐMÐMr    c                 ó|   — t           |          } |||¦  «        t          j         |||¦  «        ¦  «        k    sJ ‚d S r   r,   r/   s       r!   Útest_non_symmetryr4   m   sC   € õ   Ô,€FØˆ6�"�b‰>Œ>�Vœ]¨6¨6°"°b©>¬>Ñ:Ô:Ò:Ð:Ð:Ð:Ð:Ð:r    r0   c                 óÀ  — g d¢}g d¢}t           |          } |g d¢g d¢¦  «        dk    sJ ‚ |g d¢g d¢¦  «        dk    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                          ¦   «         rJ ‚d S )N)r   r   r   é   r6   r6   )r   r   r   r6   r6   )r   r   r   r6   é   g        )r   r   r6   r6   r7   )r   r   r6   r6   r6   )r   r6   r6   r6   r6   g      ð?)r   r   r   r   r   r   )r   r6   r7   r   é   é   r   )r   r-   r.   ÚnpÚarrayÚany)r0   Úupper_bound_1Úupper_bound_2r   Úlower_bound_1Úlower_bound_2Úscores          r!   Útest_normalized_outputrB   v   sH  € ð 'Ð&Ð&€MØ&Ð&Ð&€MÝ Ô,€FØˆ6�/�/�/ ? ? ?Ñ3Ô3°cÒ9Ð9Ð9Ð9Øˆ6�/�/�/ ? ? ?Ñ3Ô3°cÒ9Ð9Ð9Ð9Øˆ6�/�/�/ ? ? ?Ñ3Ô3°cÒ9Ð9Ð9Ð9Øˆ6�/�/�/ ? ? ?Ñ3Ô3°cÒ9Ð9Ð9Ð9Øˆ6�- Ñ/Ô/µ6´=ÀÑ3EÔ3EÒEÐEÐEÐEà&Ð&Ð&€MØ&Ð&Ð&€MÝŒHØ	ˆ�˜}Ñ	-Ô	-¨v¨v°mÀ]Ñ/SÔ/SÐTñô €Eð ˜’	�ŠÑ Ô Ð Ð Ð Ð Ð r    c                 ó  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }| t          v rut          |          } |||¦  «        }t          | |d|z
  |¦  «        ¦  «         t          | |d|z
  d|z
  ¦  «        ¦  «         t          | ||d|z
  ¦  «        ¦  «         d S t          |          }t           j                             dd¬¦  «        } |||¦  «        }t          | ||d|z
  ¦  «        ¦  «         d S )N)r   r   r   r6   r6   r   r6   )r6   r   r6   r   r6   r6   r   r6   é
   )é   rD   r   )r:   r;   r   r   ÚUNSUPERVISED_METRICSÚrandomÚrandint)r0   Úy_labelÚy_predr   Úscore_1ÚXs         r!   Útest_permute_labelsrM   ‹   s  € õ
 ŒhÐ,Ð,Ð,Ñ-Ô-€GÝŒXÐ+Ð+Ð+Ñ,Ô,€FØÕ(Ð(Ð(Ý# KÔ0ˆØ�&˜ Ñ)Ô)ˆÝ˜  ¨¨F©
°GÑ!<Ô!<Ñ=Ô=Ð=Ý˜  ¨¨F©
°A¸±KÑ!@Ô!@ÑAÔAÐAÝ˜  ¨°°G±Ñ!<Ô!<Ñ=Ô=Ð=Ð=Ð=å% kÔ2ˆÝŒI×Ò˜b wÐÑ/Ô/ˆØ�&˜˜FÑ#Ô#ˆÝ˜  ¨¨1¨v©:Ñ!6Ô!6Ñ7Ô7Ð7Ð7Ð7r    c                 óþ  — g d¢}g d¢}d„ }| t           v r_t           |          } |||¦  «        } ||¦  «        } ||¦  «        }t          ||¦  «        D ]\  \  }}	\  }
}| |||
¦  «        k    sJ ‚Œd S t          |          }t          j                             dd¬¦  «        } |||¦  «        }| ||                     t          ¦  «        |¦  «        k    sJ ‚ ||¦  «        }|D ]\  }}	| |||¦  «        k    sJ ‚Œd S )N)r   r   r   r   r6   r6   r6   r6   )r   r6   r7   r   r8   r9   é   rE   c              3   óL  K  — t          j        | ¦  «        } | dfV — |                      ¦   «         dfV — d„ |                      ¦   «         D ¦   «         dfV — t          j        d„ |                      ¦   «         D ¦   «         t          ¬¦  «        dfV — | dz
  d	fV — | dz   d
fV — d S )Nzarray of intszlist of intsc                 ó2   — g | ]}t          |¦  «        d z   ‘ŒS ©z-a©Ústr©r(   Úxs     r!   r*   zDtest_format_invariance.<locals>.generate_formats.<locals>.<listcomp>¬   s"   € Ð1Ð1Ð1 �s�1‰vŒv˜‰}Ð1Ð1Ð1r    zlist of strsc                 ó2   — g | ]}t          |¦  «        d z   ‘ŒS rR   rS   rU   s     r!   r*   zDtest_format_invariance.<locals>.generate_formats.<locals>.<listcomp>®   s"   € Ð8Ð8Ð8¨•c˜!‘f”f˜t‘mÐ8Ð8Ð8r    )Údtypezarray of strsr6   zincluding negative intszstrictly positive ints)r:   r;   ÚtolistÚobject)Úys    r!   Úgenerate_formatsz0test_format_invariance.<locals>.generate_formats¨   sØ   è è € ÝŒH�Q‰KŒKˆØ�Ð Ð Ð Ð Ø�hŠh‰jŒj˜.Ð(Ð(Ð(Ð(Ø1Ð1 a§h¢h¡j¤jÐ1Ñ1Ô1°>ÐAÐAÐAÐAåŒHÐ8Ð8¨Q¯XªX©Z¬ZÐ8Ñ8Ô8ÅÐGÑGÔGØð
ð 	
ð 	
ð 	
ð �!‰eÐ.Ð.Ð.Ð.Ð.Ø�!‰eÐ-Ð-Ð-Ð-Ð-Ð-Ð-r    rD   )é   rD   r   )r   ÚziprF   r:   rG   rH   ÚastypeÚfloat)r0   Úy_truerJ   r\   r   rK   Ú
y_true_genÚ
y_pred_genÚ
y_true_fmtÚfmt_nameÚ
y_pred_fmtÚ_rL   s                r!   Útest_format_invariancerh       so  € ð
 &Ð%Ð%€FØ%Ð%Ð%€Fð
.ð 
.ð 
.ð Õ(Ð(Ð(Ý# KÔ0ˆØ�&˜ Ñ(Ô(ˆØ%Ð% fÑ-Ô-ˆ
Ø%Ð% fÑ-Ô-ˆ
Ý7:¸:ÀzÑ7RÔ7Rð 	=ð 	=Ñ3Ñ"ˆZ˜¡O Z°Ø˜f˜f Z°Ñ<Ô<Ò<Ð<Ð<Ð<Ð<ð	=ð 	=õ & kÔ2ˆÝŒI×Ò˜b wÐÑ/Ô/ˆØ�&˜˜FÑ#Ô#ˆØ˜&˜& §¢­%¡¤°&Ñ9Ô9Ò9Ð9Ð9Ð9Ø%Ð% fÑ-Ô-ˆ
Ø$.ð 	4ð 	4Ñ ˆJ˜Ø˜f˜f Q¨
Ñ3Ô3Ò3Ð3Ð3Ð3Ð3ð	4ð 	4r    r   c                 ó2   — dD ]\  }} | |g|g¦  «         Œd S )N))r   r   )r   r6   )r6   r   )r6   r6   r   )r   ÚiÚjs      r!   Útest_single_samplerl   Å   s:   € ð 1ð ð ‰ˆˆ1Øˆ�ˆs�Q�CÑÔÐÐðð r    zmetric_name, metric_funcc                 ó  — | t           v rTd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}nnt          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 ¦  «         d S # 1 swxY w Y   d S )Nr   r6   rD   )r7   rD   r   zcontains (NaN|infinity))Úmatch)	r   r:   ÚinfÚnanrG   rH   r-   ÚraisesÚ
ValueError)r0   Úmetric_funcÚinvalidsrL   Úargss        r!   Útest_inf_nan_inputrv   Ì   sH  € ð Õ(Ð(Ð(à�ˆV•b”f�bœfÐ%Ð&Ø�ˆV•b”f�bœfÐ%Ð&Ø�ˆV•b”f�bœfÐ%Ð&ð
ˆˆõ ŒI×Ò˜b wÐÑ/Ô/ˆØ�œ¥¤Ð(Ð)¨Aµ´½¼Ð/?Ð+@À1ÅrÄvÍrÌvÐFVÐBWÐXˆÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Øð 	ð 	ˆDØˆK˜ÐÐÐð	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ã'D Ä DÄD)/Ú	functoolsr   Ú	itertoolsr   Únumpyr:   r-   Úsklearn.metrics.clusterr   r   r   r   r	   r
   r   r   r   r   r   r   Úsklearn.utils._testingr   r   rF   r   r   ÚNORMALIZED_METRICSrG   ÚRandomStateÚrngrH   r%   r&   r"   ÚmarkÚfilterwarningsÚparametrizer1   r4   rB   rM   rh   Úvaluesrl   ÚdictÚitemsrv   r   r    r!   ú<module>r…      sô  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2ð #=Ø.ØØ,Ø*Ø*Ø$@Ø&Ø2ð
ð 
Ð ð )Ø#˜GÐ$4¸[ÐIÑIÔIØ6Ø0ð	ð Ð ð ð ð Ð ð -Ð.BÐCÐ ð	ð 	ð 	Ð ð 	„i×Ò˜AÑÔ€Ø‡[‚[�˜€[ÑÔ€Ø‡[‚[�˜€[ÑÔ€ðð ð ð „×ÒÐ3Ñ4Ô4Ø„×ÒØÐIÐIÐ7HÐIÑIÔIñô ð;ð ;ñô ñ 5Ô4ð;ð
 „×ÒØÐMÐMÐ7LÐMÑMÔMñô ð;ð ;ñô ð;ð „×ÒÐ3Ñ4Ô4Ø„×Ò˜Ð(:Ñ;Ô;ð!ð !ñ <Ô;ñ 5Ô4ð!ð& „×ÒÐ3Ñ4Ô4Ø„×Ò˜¨¨Ð.@ÐBVÑ(WÔ(WÑXÔXð8ð 8ñ YÔXñ 5Ô4ð8ð& „×ÒÐ3Ñ4Ô4Ø„×Ò˜¨¨Ð.@ÐBVÑ(WÔ(WÑXÔXð4ð 4ñ YÔXñ 5Ô4ð4ðB „×Ò˜Ð#5×#<Ò#<Ñ#>Ô#>Ñ?Ô?ðð ñ @Ô?ðð „×ÒØ  Ð%7Ð PÐ PÐ;OÐ PÐ P× VÒ VÑ XÔ Xñô ðð ñô ðð ð r    