
    -ia"                        S r SSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJrJrJr  Sr\R2                  SS04\R2                  SSS.4\R2                  SS 04\R4                  SS04\R4                  SSS.4\R4                  SS 04/r\R8                  R;                  S\5      S 5       r\R8                  R;                  S\5      S 5       r\R8                  R;                  S\5      S 5       r \R8                  R;                  S\5      S 5       r!\R8                  R;                  S/ SQ5      \R8                  R;                  S\5      S 5       5       r"S r#\R8                  R;                  SSS/5      \R8                  R;                  S\RH                  \RJ                  /5      \R8                  R;                  S \RL                  \RN                  /5      \R8                  R;                  S\5      S! 5       5       5       5       r(\R8                  R;                  S"\5      S# 5       r)S$ r*\R8                  R;                  S%\R4                  \R2                  /5      S& 5       r+S' r,g)(z!test the label propagation module    N)issparse)make_classification)ConvergenceWarning
rbf_kernel)train_test_split)NearestNeighbors)_label_propagation)_convert_containerassert_allcloseassert_array_equal)array
sparse_csr
sparse_csckernelrbfknn   )r   n_neighborsc                     [        XSS9$ N   gammar   xys     g/var/www/html/venv/lib/python3.13/site-packages/sklearn/semi_supervised/tests/test_label_propagation.py<lambda>r          
1r :    c                     [        XSS9$ r   r   r   s     r   r   r   "   r    r!   zEstimator, parametersc                     [         R                  " SS/SS/SS//U S9n/ SQnU" S	0 UD6R                  X45      nUR                  S   S:X  d   eg )
N      ?               @      @dtyper      r   r+    )npasarrayfittransduction_global_dtype	Estimator
parameterssampleslabelsclfs         r   test_fit_transductionr9   '   s[    jj3*sCj3*=\RGF

!j
!
%
%g
6CQ1$$$r!   c                     US   S:X  a  [         R                  " S5        [        R                  " SS/SS/SS//U S9n/ SQnU" S0 UD6R	                  X45      n[        UR                  S   S	S	/S
S9  g )Nr   r   zHUnstable test for this configuration: changes in k-NN ordering break it.r$   r%   r(   r*   r         ?g{Gz?atolr-   )pytestskipr.   r/   r0   r   label_distributions_r2   s         r   test_distributionrA   /   s{    (u$V	
 jj3*sCj3*=\RGF

!j
!
%
%g
6CC,,Q/#s$Gr!   c                     [         R                  " SS/SS/SS//U S9n/ SQnU" S
0 UD6R                  X45      n[        UR	                  SS//5      [         R
                  " S	/5      5        g )Nr$   r%   r&   r'   r(   r*   r;         @r+   r-   )r.   r/   r0   r   predictr   r2   s         r   test_predictrE   ;   se    jj3*sCj3*=\RGF

!j
!
%
%g
6Cs{{S#J<0"((A3-@r!   c                     [         R                  " SS/SS/SS//U S9n/ SQnU" S0 UD6R                  X45      n[        UR	                  SS//5      [         R
                  " SS//5      5        g )Nr$   r%   rC   r(   r*   r;   r-   )r.   r/   r0   r   predict_probar   r2   s         r   test_predict_probarH   C   sl    jj3*sCj3*=\RGF

!j
!
%
%g
6CC%%Szl3RXXSzl5KLr!   alpha)皙?g333333?r;   gffffff??c           	         Sn[        USSS9u  pVUR                  U SS9nSUS S S2'   S	n[        R                  " US
9R	                  XV5      nUR                  5       n	[        R                  " [        U5      US-   4UR                  S9n
SU
[        R                  " [        U5      5      U4'   U
S S 2S S24   n
[        R                  " [        R                  R                  [        R                  " [        U	5      U	R                  S9X9-  -
  5      U
5      nXR                  SS9S S 2[        R                   4   -  n[        R                  " SUSUS9nUR	                  XV5        [#        XR$                  5        g )Nr      r   	n_classes	n_samplesrandom_stateFcopyr,      rJ   r   r+   r(   axisd   绽|=)max_iterrI   tolr   )r   astypelabel_propagationLabelSpreadingr0   _build_graphr.   zeroslenr)   arangedotlinalginveyesumnewaxisr   r@   )r3   r4   r5   rI   rO   Xr   r   r8   SYexpecteds               r    test_label_spreading_closed_formrl   K   sA    IcPQRDA	E*AAccFE

*
*
7
;
;A
ACA
#a&)a-(8AAbiiA	!SbS&	AvvbiimmBFF3q6$AEI$MNPQRH!$Q

]33H

*
*EuEC GGAMH667r!   c           
         Sn[        USSS9u  p#UR                  U SS9nSUS S S2'   [        R                  " [	        U5      US	-   45      nS	U[        R
                  " [	        U5      5      U4'   US S 2S
4   R                  5       S   nUS S 2S
4   S:H  R                  5       S   n[        R                  " SSSS9nUR                  X#5        UR                  5       nU[        [        R                  " XUSS95         n	U[        [        R                  " XVSS95         n
US S 2S S24   nXFS S 24   n[        R                  " [        R                  " [        R                  R                  [        R                   " U	R"                  S   5      U	-
  5      U
5      U5      nUR%                  5       nXUS S 24'   XR'                  S	S9S S 2[        R(                  4   -  n[+        XR,                  SS9  g )Nr   rM   r   rN   FrR   r,   rT   r+   )r,   rW   rX   rJ   )rY   rZ   r   ij)indexingrU   g-C6?r<   )r   r[   r.   r_   r`   ra   nonzeror\   LabelPropagationr0   r^   tuplemeshgridrb   rc   rd   re   shaperS   rf   rg   r   r@   )r3   rO   rh   r   rj   unlabelled_idxlabelled_idxr8   T_barTuuTulY_lY_urk   s                 r   "test_label_propagation_closed_formr|   f   s   IcPQRDA	E*AAccF
#a&)a-()AAbiiAq%x[((*1-NahK1$--/2L

,
,cuC
PCGGAME
bkk.4PQ
RC
bkk.NO
PC	!SbS&	A
!O
C
&&		bffSYYq\&:S&@A3G
MCvvxH"%^Q!$Q

]33HH66TBr!   accepted_sparse_typer   r   index_dtyper)   c                    [        SS/SS/SS//U 5      nUR                  R                  USS9Ul        UR                  R                  USS9Ul        UR                  R                  USS9Ul        / SQnU" S0 UD6R                  XV5      n[        UR                  SS	//5      [        R                  " S
/5      5        g )Nr$   r%   r&   r'   FrR   r*   r;   rC   r+   r-   )
r   datar[   indicesindptrr0   r   rD   r.   r   )r}   r~   r)   r4   r5   rh   r7   r8   s           r   test_sparse_input_typesr      s     	S#Jc
S#J?AUVAVV]]5u]-AF		  5 9AIxx{7AHF

!j
!
%
%a
0Cs{{S#J<0"((A3-@r!   constructor_typec                    [        SS/SS/SS//U 5      n[        R                  " / SQ5      n[        R                  " SSS9nUR                  X5        UR                  S:  d   e[        UR                  U5      / S	Q5        g )
Nr$   r%   rC   r*   r   i  r   rY   
   )r   r+   r+   )	r   r.   r   r\   r]   r0   n_iter_r   rD   )r   rh   r   mdls       r   test_convergence_speedr      su     	S#Jc
S#J?AQRA
A

*
*%$
GCGGAM ;;s{{1~y1r!   c                     [         R                  " SS/SS/SS//5      n [         R                  " / SQ5      n[        R                  " SSS9nSn[        R
                  " [        US	9   UR                  X5        S S S 5        UR                  UR                  :X  d   e[        R                  " SSS9n[        R
                  " [        US	9   UR                  X5        S S S 5        UR                  UR                  :X  d   e[        R                  " SS
S9n[        R                  " 5          [        R                  " S[        5        UR                  X5        S S S 5        [        R                  " SS
S9n[        R                  " 5          [        R                  " S[        5        UR                  X5        S S S 5        g ! , (       d  f       GNN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr$   r%   rC   r*   r   r+   r   z+max_iter=1 was reached without convergence.)match  error)r.   r   r\   r]   r>   warnsr   r0   r   rY   rq   warningscatch_warningssimplefilter)rh   r   r   warn_msgs       r   test_convergence_warningr      sk   
3*sCj3*56A
A

*
*%!
DC<H	(	9 
:;;#,,&&&

,
,EA
FC	(	9 
:;;#,,&&&

*
*%#
FC		 	 	"g'9: 
# 
,
,EC
HC		 	 	"g'9: 
#	" 
:	9
 
:	9
 
#	"
 
#	"s0   (GG,-G$-G5
G
G!$
G25
HLabelPropagationClsc                 >   [         R                  " SS/SS/SS/SS//5      n[         R                  " / SQ5      nU " SSSS9n[        R                  " 5          [        R                  " S[
        5        UR                  X5        S S S 5        g ! , (       d  f       g = f)	Ng      Y@r%   )r   r+   r,   r,   r   rW   r+   )r   rY   r   r   )r.   r   r   r   r   RuntimeWarningr0   )r   rh   r   r   s       r   *test_label_propagation_non_zero_normalizerr      sz     	5%.5%.3*sCjIJA
 A
USa
HC		 	 	"g~6 
#	"	"s   -B
Bc           
      j   SS jnSnSnSn[        UUSSSSSS9u  pVUR                  U 5      n[        XVUSS9u  pxp[        R                  " US	9nUR                  Xy5        UR                  X5      S
:  d   e[        R                  " US	9nUR                  Xy5        UR                  X5      S
:  d   eg )Nr   c                    [        SSSS9nUR                  U 5        SUR                  USS9R                  S5      -  U-  n[        R
                  " UR                  UR                  S9  [        U5      (       d   eUR                  $ )	Nr   	euclideanr   )r   metricn_jobsr,   distance)mode)out)	r	   r0   kneighbors_graphpowerr.   expr   r   T)rh   rj   r   r   nnWs         r   topk_rbf5test_predict_sparse_callable_kernel.<locals>.topk_rbf   sr    "[K
q	$$QZ$8>>qAAEI
qvv166"{{{ss
r!      r   r   r   )rO   rP   
n_featuresn_informativen_redundant
n_repeatedrQ   )	test_sizerQ   )r   rK   )Nr   gh㈵>)r   r[   r   r\   r]   r0   scorerq   )r3   r   rO   rP   n_testrh   r   X_trainX_testy_trainy_testmodels               r   #test_predict_sparse_callable_kernelr      s     IIFDA 	
A'7	Q($GW ,,H=E	IIg;;v&#---..h?E	IIg;;v&#---r!   )-__doc__r   numpyr.   r>   scipy.sparser   sklearn.datasetsr   sklearn.exceptionsr   sklearn.metrics.pairwiser   sklearn.model_selectionr   sklearn.neighborsr	   sklearn.semi_supervisedr
   r\   sklearn.utils._testingr   r   r   CONSTRUCTOR_TYPESrq   r]   
ESTIMATORSmarkparametrizer9   rA   rE   rH   rl   r|   int32int64float32float64r   r   r   r   r   r-   r!   r   <module>r      s   '    ! 0 1 / 4 . K  :  ''(E):;''E!)LM**	:; %%%'89%%%'JK((	:;
  0*=% >% 0*=H >H 0*=A >A 0*=M >M ";<0*=8 > =82C6 /,1MN288(<=2::rzz":;0*=
A > < > O
A +->?	2 @	24 %%'8'I'IJ
	
$.r!   