Ë
    ÷Q(h”  ã                   ó  — d Z ddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ ddgddgddgd	d	gd	d
gd
d	ggZg d¢Zddgd
d
gdd
ggZg d¢Zg d¢Zg d¢Zd	dgdd	gdd	ggZ ej*                  «       Zej.                  j1                  d	«      Zej5                  ej6                  j8                  «      Zej<                  e   e_        ej6                  e   e_        ej>                  jA                  de«      d„ «       Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'ej>                  jA                  de«      d„ «       Z(d„ Z)d„ Z*d„ Z+ej>                  jA                  dg d¢«      d „ «       Z,ej>                  jA                  d!ejZ                  gez   «      d"„ «       Z.y)#z*
Testing for the nearest centroid module.
é    N)Údatasets)ÚNearestCentroid)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)ÚCSR_CONTAINERSéþÿÿÿéÿÿÿÿé   é   )r
   r
   r
   r   r   r   é   )r
   r   r   )iàÿÿÿé@   éP   gÓæj„=gHKb†Ói):gÍ6·–ý·8Úcsr_containerc                 ó`  —  | t         «      } | t        «      }t        «       }|j                  t         t        «       t        |j                  t        «      t        «       t        |j                  t        «      t        «       t        |j                  t        «      t        «       t        d¬«      }|j                  t         t        «       t        |j                  t        «      t        «       t        |j                  t        «      t        «       t        |j                  t        «      t        «       t        d¬«      }|j                  t         t        «       t        |j                  t        «      t        «       t        |j                  t        «      t        «       t        |j                  t        «      t        «       t        ddg¬«      }|j                  t         t        «       t        |j                  t        «      t        «       t        «       }|j                  |t        «       t        |j                  |«      t        «       t        «       }|j                  |t        «       t        |j                  t        «      t        «       t        «       }|j                  t         t        «       t        |j                  |«      t        «       t        «       }|j                  |j                  «       t        «       t        |j                  |j                  «       «      t        «       y )NÚuniform©ÚpriorsÚ	empiricalg      Ð?g      è?)ÚXÚTr   ÚfitÚyr   ÚpredictÚtrue_resultr   Údecision_functionÚtrue_discriminant_scoresÚpredict_probaÚ
true_probaÚtrue_result_prior1ÚtocooÚtolil)r   ÚX_csrÚT_csrÚclfs       úk/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/neighbors/tests/test_nearest_centroid.pyÚtest_classification_toyr'   %   sü  € ñ œ!Ó€EÙœ!Ó€Eô Ó
€CØ‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3Ü˜c×3Ñ3´AÓ6Ô8PÔQÜ˜c×/Ñ/´Ó2´JÔ?ô  Ô
+€CØ‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3Ü˜c×3Ñ3´AÓ6Ô8PÔQÜ˜c×/Ñ/´Ó2´JÔ?ä
 Ô
-€CØ‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3Ü˜c×3Ñ3´AÓ6Ô8PÔQÜ˜c×/Ñ/´Ó2´JÔ?ô  $¨ Ô
.€CØ‡G�GŒAŒq„MÜ�s—{‘{¤1“~Ô'9Ô:ô Ó
€CØ‡G�GˆE”1ÔÜ�s—{‘{ 5Ó)¬;Ô7ô Ó
€CØ‡G�GˆE”1ÔÜ�s—{‘{¤1“~¤{Ô3ô Ó
€CØ‡G�GŒAŒq„MÜ�s—{‘{ 5Ó)¬;Ô7ô Ó
€CØ‡G�GˆE�K‰K‹Mœ1ÔÜ�s—{‘{ 5§;¡;£=Ó1´;Õ?ó    c                  ó8  — dD ]•  } t        | ¬«      j                  t        j                  t        j                  «      }t        j                  |j                  t        j                  «      t        j                  k(  «      }|dkD  rŒ„J dt        |«      z   «       ‚ y )N©Ú	euclideanÚ	manhattan©ÚmetricgÍÌÌÌÌÌì?úFailed with score = ©	r   r   ÚirisÚdataÚtargetÚnpÚmeanr   Ústr)r.   r%   Úscores      r&   Ú	test_irisr8   Y   sq   € à,ò @ˆÜ VÔ,×0Ñ0´·±¼D¿K¹KÓHˆÜ—‘˜Ÿ™¤D§I¡IÓ.´$·+±+Ñ=Ó>ˆØ�s‹{Ð?Ð2´S¸³ZÑ?Ó?ˆ{ñ@r(   c                  óL  — dD ]Ÿ  } dD ]˜  }t        | |¬«      }|j                  t        j                  t        j                  «      }t        j                  |j                  t        j                  «      t        j                  k(  «      }|dkD  rŒ‡J dt        |«      z   «       ‚ Œ¡ y )Nr*   )Nçš™™™™™¹?g      à?)r.   Úshrink_thresholdgš™™™™™é?r/   r0   )r.   r;   r%   r7   s       r&   Útest_iris_shrinkager<   a   s‰   € à,ò DˆØ 0ò 	DÐÜ!¨ÐBRÔSˆCØ—'‘'œ$Ÿ)™)¤T§[¡[Ó1ˆCÜ—G‘G˜CŸK™K¬¯	©	Ó2´d·k±kÑAÓBˆEØ˜3“;ÐCÐ 6¼¸U»Ñ CÓC�;ñ		DñDr(   c                  óÆ  — dd l } t        «       }|j                  t        j                  t        j
                  «       |j                  t        j                  t        j
                  «      }| j                  |«      }| j                  |«      }t        |«      |j                  k(  sJ ‚|j                  t        j                  t        j
                  «      }t        ||d«       y )Nr   z>Failed to generate same score after pickling (classification).)Úpickler   r   r1   r2   r3   r7   ÚdumpsÚloadsÚtypeÚ	__class__r   )r>   Úobjr7   ÚsÚobj2Úscore2s         r&   Útest_picklerG   k   s—   € Ûô Ó
€CØ‡G�GŒD�I‰I”t—{‘{Ô#Ø�I‰I”d—i‘i¤§¡Ó-€EØ�‰�SÓ€Aà�<‰<˜‹?€DÜ�‹:˜Ÿ™Ò&Ð&Ð&Ø�Z‰ZœŸ	™	¤4§;¡;Ó/€FÜØØØHõr(   c                  ó@  — t        j                  ddgddgddgddgddgg«      } t        j                  g d¢«      }t        d¬«      }|j                  | |«       t        j                  d	d
gddgg«      }t         j                  j                  |j                  |«       y )Nr   r   r   é   é   )r   r   r   r   r   r:   ©r;   g;4,F]ëè?gðCïžMXë?gJ¸�Gpƒ@g‚Uõò@)r4   Úarrayr   r   Útestingr   Ú
centroids_)r   r   r%   Úexpected_results       r&   Útest_shrinkage_correctrP   ~   s‹   € ô 	�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&°1°a°&Ð9Ó:€AÜ
�‰’Ó!€AÜ
¨3Ô
/€CØ‡G�GˆAˆq„MÜ—h‘h ¨IÐ 6¸À8Ð8LÐMÓN€OÜ‡J�J×(Ñ(¨¯©¸ÕIr(   c                  ó  — t        d¬«      } t        j                  t        «      }d||dk(  <   | j	                  t
        |«       | j                  }| j	                  t
        t        «       t        || j                  «       y )Ng{®Gáz„?rK   r   r
   )r   r4   Úasarrayr   r   r   rN   r   )r%   Úy_indÚcentroid_encodeds      r&   Ú"test_shrinkage_threshold_decoded_yrU   Œ   s[   € Ü
¨4Ô
0€CÜ�J‰J”q‹M€EØ€Eˆ%�2‰+ÑØ‡G�GŒAˆuÔØ—~‘~ÐØ‡G�GŒAŒq„MÜÐ'¨¯©Õ8r(   c                  óŒ  — t         j                  j                  d«      } | j                  dd«      }| j	                  ddd«      }| j                  d«      }t        d¬«      }|j                  ||«       |j                  |«      }t        d¬«      }||z   }|j                  ||«       |j                  |«      }t        ||«       y )Nr   é2   r   r:   rK   )	r4   ÚrandomÚRandomStateÚrandÚrandintr   r   r   r   )Úrngr   r   Únoiser%   Úy_initÚX_noiseÚy_translates           r&   Útest_predict_translated_datara   –   s¤   € ô �)‰)×
Ñ
 Ó
"€CØ�‰��RÓ€AØ�‰�A�q˜"Ó€AØ�H‰H�R‹L€EÜ
¨3Ô
/€CØ‡G�GˆAˆq„MØ�[‰[˜‹^€FÜ
¨3Ô
/€CØ�%‰i€GØ‡G�GˆG�QÔØ—+‘+˜gÓ&€KÜ�v˜{Õ+r(   c                 óü   —  | t         «      }t        d¬«      }|j                  t         t        «       |j                  }|j                  |t        «       t        |j                  |«       t        |ddgddgg«       y )Nr,   r-   r
   r   )r   r   r   r   rN   r   )r   r#   r%   Údense_centroids       r&   Útest_manhattan_metricrd   §   sa   € ñ œ!Ó€Eä
 Ô
-€CØ‡G�GŒAŒq„MØ—^‘^€NØ‡G�GˆE”1ÔÜ�s—~‘~ ~Ô6Ü�~¨¨R¨°1°a°&Ð'9Õ:r(   c                  ó  — t        j                  d«      } d| d d …df<   d| d d …df<   t        j                  d«      }d|d<   t        d¬«      }t	        j
                  t        «      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)	N)é
   r   g$bŒ@£‘Á¿r   g_LéOÑ‡ï¿r   rf   r:   rK   )r4   ÚemptyÚzerosr   ÚpytestÚraisesÚ
ValueErrorr   )r   r   r%   s      r&   Útest_features_zero_varrl   ´   sz   € ô 	�‰�Ó€AØ€A‚aˆ€d�GØ€A‚aˆ€d�GÜ
�‰�"‹€AØ€A€a�Dä
¨3Ô
/€CÜ	�‰”zÓ	"ñ Ø�‰��1Œ÷÷ ñ ús   Á'BÂBc                  ó´   — t        ddg¬«      } t        j                  t        d¬«      5  | j	                  t
        t        «       ddd«       y# 1 sw Y   yxY w)zGCheck that we raise an error when the user-defined priors are negative.r	   é   r   zpriors must be non-negative©ÚmatchN)r   ri   rj   rk   r   r   r   )r%   s    r&   Útest_negative_priors_errorrq   Â   sA   € ä
 " a Ô
)€CÜ	�‰”zÐ)FÔ	Gñ Ø�‰””1Œ÷÷ ñ ús   ªAÁAc                  óR  — ddg} t        | ¬«      }t        j                  t        d¬«      5  |j	                  t
        t        «       ddd«       t        |j                  t        j                  | «      t        j                  | «      j                  «       z  «       y# 1 sw Y   ŒWxY w)zfCheck that we raise a warning and normalize the user-defined priors when they
    don't sum to 1.
    r   rn   r   zAThe priors do not sum to 1. Normalizing such that it sums to one.ro   N)r   ri   ÚwarnsÚUserWarningr   r   r   r   Úclass_prior_r4   rR   Úsum)r   r%   s     r&   Útest_warn_non_normalized_priorsrw   É   s   € ð �ˆV€FÜ
 Ô
(€CÜ	�‰ÜØQô
ñ ð 	�‰””1Œ÷	ô �C×$Ñ$¤b§j¡j°Ó&8¼2¿:¹:ÀfÓ;M×;QÑ;QÓ;SÑ&SÕT÷ð ús   ¬BÂB&Úresponse_method)r   r   Úpredict_log_probac                 óÔ   — t        d¬«      j                  t        t        «      }t	        j
                  t        «      5   t        || «      t        «       ddd«       y# 1 sw Y   yxY w)z{Check that we raise an AttributeError with Manhattan metric when trying
    to call a non-thresholded response method.
    r,   r-   N)	r   r   r   r   ri   rj   ÚAttributeErrorÚgetattrr   )rx   r%   s     r&   Ú(test_method_not_available_with_manhattanr}   Ø   sM   € ô  Ô
-×
1Ñ
1´!´QÓ
7€CÜ	�‰”~Ó	&ñ )Ø%Œ��_Ó%¤aÔ(÷)÷ )ñ )ús   ¾AÁA'Úarray_constructorc                 ó  — t        j                  t        t        «      df«      }|dd…dfxx   dz  cc<    | |«      }t	        «       }t        j                  t        d¬«      5  |j                  |t        «       ddd«       y# 1 sw Y   yxY w)zHCheck that we raise an error when the variance for all features is zero.r   Nr   zAll features have zero variancero   )	r4   ÚonesÚlenr   r   ri   rj   rk   r   )r~   r   r%   s      r&   Útest_error_zero_variancesr‚   ä   sn   € ô 	�‰””Q“˜�Ó€AØ‚aˆ€dƒGˆq�LƒGÙ˜!Ó€Aä
Ó
€CÜ	�‰”zÐ)JÔ	Kñ Ø�‰�”1Œ÷÷ ñ ús   Á#BÂB)/Ú__doc__Únumpyr4   ri   Úsklearnr   Úsklearn.neighborsr   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr   r   r   r   r   r    r   r   Ú	load_irisr1   rX   rY   r\   Úpermutationr3   ÚsizeÚpermr2   ÚmarkÚparametrizer'   r8   r<   rG   rP   rU   ra   rd   rl   rq   rw   r}   rL   r‚   © r(   r&   ú<module>r�      sÒ  ðñó Û å Ý -÷ñ õ
 /ð 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€Ú€Øˆ"€X��1ˆv˜˜1�vÐ€Ú€ÚÐ â(Ð Ø�+Ð ¨aÐ 0°;ÀÐ2BÐC€
ð
 €x×ÑÓ€Ø‡i�i×Ñ˜AÓ€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„ð ‡�×Ñ˜¨.Ó9ñ0@ó :ð0@òf@òDòò&Jò9ò,ð" ‡�×Ñ˜¨.Ó9ñ	;ó :ð	;òòòUð ‡�×ÑØÒRóñ)óð)ð ‡�×ÑÐ,¨r¯x©x¨j¸>Ñ.IÓJñó Kñr(   