Ë
    ÷Q(ha"  ã                   ó  — d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZ dZej2                  ddifej2                  dddœfej2                  dd„ ifej4                  ddifej4                  dddœfej4                  dd„ ifgZej8                  j;                  de«      d„ «       Zej8                  j;                  de«      d„ «       Zej8                  j;                  de«      d„ «       Z ej8                  j;                  de«      d„ «       Z!ej8                  j;                  dg d¢«      ej8                  j;                  de«      d„ «       «       Z"d„ Z#ej8                  j;                  dddg«      ej8                  j;                  dejH                  ejJ                  g«      ej8                  j;                  d ejL                  ejN                  g«      ej8                  j;                  de«      d!„ «       «       «       «       Z(ej8                  j;                  d"e«      d#„ «       Z)d$„ Z*ej8                  j;                  d%ej4                  ej2                  g«      d&„ «       Z+d'„ Z,y)(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                 ó   — t        | |d¬«      S ©Né   ©Úgammar   ©ÚxÚys     úr/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/semi_supervised/tests/test_label_propagation.pyú<lambda>r      ó   € ¤
¨1¨a°rÔ :€ ó    c                 ó   — t        | |d¬«      S r   r   r   s     r   r   r   "   r    r!   zEstimator, parametersc                 ó¤   — t        j                  ddgddgddgg| ¬«      }g d¢} |d	i |¤Žj                  ||«      }|j                  d   dk(  sJ ‚y )
Nç      ð?ç        ç       @ç      @©Údtype©r   é   éÿÿÿÿr   r+   © )ÚnpÚasarrayÚfitÚtransduction_©Úglobal_dtypeÚ	EstimatorÚ
parametersÚsamplesÚlabelsÚclfs         r   Útest_fit_transductionr9   '   s]   € ä�j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CØ×Ñ˜QÑ 1Ò$Ð$Ñ$r!   c                 óð   — |d   dk(  rt        j                  d«       t        j                  ddgddgddgg| ¬«      }g d¢} |di |¤Žj	                  ||«      }t        |j                  d   d	d	gd
¬«       y )Nr   r   zHUnstable test for this configuration: changes in k-NN ordering break it.r$   r%   r(   r*   r   ç      à?g{®Gáz„?©Úatolr-   )ÚpytestÚskipr.   r/   r0   r   Úlabel_distributions_r2   s         r   Útest_distributionrA   /   s}   € à�(Ñ˜uÒ$Ü�‰ØVô	
ô �j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CÜ�C×,Ñ,¨QÑ/°#°s°À$ÖGr!   c                 óà   — t        j                  ddgddgddgg| ¬«      }g d¢} |d
i |¤Žj                  ||«      }t        |j	                  ddgg«      t        j
                  d	g«      «       y )Nr$   r%   r&   r'   r(   r*   r;   ç      @r+   r-   )r.   r/   r0   r   Úpredictr   r2   s         r   Útest_predictrE   ;   sg   € ä�j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CÜ�s—{‘{ S¨# J <Ó0´"·(±(¸A¸3³-Õ@r!   c                 óä   — t        j                  ddgddgddgg| ¬«      }g d¢} |di |¤Žj                  ||«      }t        |j	                  ddgg«      t        j
                  ddgg«      «       y )Nr$   r%   rC   r(   r*   r;   r-   )r.   r/   r0   r   Úpredict_probar   r2   s         r   Útest_predict_probarH   C   sn   € ä�j‰j˜3 ˜* s¨C j°3¸°*Ð=À\ÔR€GÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% g¨vÓ
6€CÜ�C×%Ñ%¨¨S z lÓ3´R·X±XÀÀS¸z¸lÓ5KÕLr!   Úalpha)çš™™™™™¹?g333333Ó?r;   gffffffæ?çÍÌÌÌÌÌì?c           	      ó"  — d}t        |dd¬«      \  }}|j                  | d¬«      }d|d d d…<   d	}t        j                  |¬
«      j	                  ||«      }|j                  «       }	t        j                  t        |«      |dz   f|j                  ¬«      }
d|
t        j                  t        |«      «      |f<   |
d d …d d…f   }
t        j                  t        j                  j                  t        j                  t        |	«      |	j                  ¬«      ||	z  z
  «      |
«      }||j                  d¬«      d d …t        j                   f   z  }t        j                  d|d|¬«      }|j	                  ||«       t#        ||j$                  «       y )Nr   éÈ   r   ©Ú	n_classesÚ	n_samplesÚrandom_stateF©Úcopyr,   é   rJ   r   r+   r(   ©Úaxiséd   ç»½×Ùß|Û=)Ú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   sM  € ð €IÜ¨¸cÐPQÔR�D€A€qØ	�‰� EˆÓ*€AØ€A�cˆ€c�Fà€EÜ
×
*Ñ
*°Ô
7×
;Ñ
;¸A¸qÓ
A€Cà×ÑÓ€AÜ
�‰”#�a“&˜) a™-Ð(°·±Ô8€AØ€A„b‡i�i”�A“Ó˜ÐÑØ	Š!ˆSˆbˆSˆ&‰	€Aä�v‰v”b—i‘i—m‘m¤B§F¡F¬3¨q«6¸¿¹Ô$AÀEÈAÁIÑ$MÓNÐPQÓR€HØ�—‘ !�Ó$¢Q¬¯
©
 ]Ñ3Ñ3€Hä
×
*Ñ
*Ø˜E u°Eô€Cð ‡G�GˆAˆq„Mä�H˜c×6Ñ6Õ7r!   c           
      ó  — d}t        |dd¬«      \  }}|j                  | d¬«      }d|d d d…<   t        j                  t	        |«      |d	z   f«      }d	|t        j
                  t	        |«      «      |f<   |d d …d
f   j                  «       d   }|d d …d
f   dk(  j                  «       d   }t        j                  ddd¬«      }|j                  ||«       |j                  «       }|t        t        j                  ||d¬«      «         }	|t        t        j                  ||d¬«      «         }
|d d …d d…f   }||d d …f   }t        j                  t        j                  t        j                  j                  t        j                   |	j"                  d   «      |	z
  «      |
«      |«      }|j%                  «       }|||d d …f<   ||j'                  d	¬«      d d …t        j(                  f   z  }t+        ||j,                  d¬«       y )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Ü¨¸cÐPQÔR�D€A€qØ	�‰� EˆÓ*€AØ€A�cˆ€c�FÜ
�‰”#�a“&˜) a™-Ð(Ó)€AØ€A„b‡i�i”�A“Ó˜ÐÑØ’q˜%�x‘[×(Ñ(Ó*¨1Ñ-€NØ’a˜�h‘K 1Ñ$×-Ñ-Ó/°Ñ2€Lä
×
,Ñ
,°c¸uÈCÔ
P€CØ‡G�GˆAˆq„Mà×ÑÓ€EØ
””b—k‘k .°.È4ÔPÓQÑ
R€CØ
””b—k‘k .°,ÈÔNÓOÑ
P€CØ	Š!ˆSˆbˆSˆ&‰	€AØ
ˆLš!ˆOÑ
€CÜ
�&‰&”—‘œŸ	™	Ÿ™¤b§f¡f¨S¯Y©Y°q©\Ó&:¸SÑ&@ÓAÀ3ÓGÈÓ
M€Cà�v‰v‹x€HØ"%€Hˆ^šQÐÑØ�—‘ !�Ó$¢Q¬¯
©
 ]Ñ3Ñ3€Hä�H˜c×6Ñ6¸TÖBr!   Úaccepted_sparse_typer   r   Úindex_dtyper)   c                 ó–  — t        ddgddgddgg| «      }|j                  j                  |d¬«      |_        |j                  j                  |d¬«      |_        |j                  j                  |d¬«      |_        g d¢} |di |¤Žj                  ||«      }t        |j                  dd	gg«      t        j                  d
g«      «       y )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ÓV€AØ�V‰V�]‰]˜5 uˆ]Ó-€A„FØ—	‘	× Ñ  °5Ð Ó9€A„IØ�x‰x�‰˜{°ˆÓ7€A„HÚ€FÙ
Ñ
!�jÑ
!×
%Ñ
% a¨Ó
0€CÜ�s—{‘{ S¨# J <Ó0´"·(±(¸A¸3³-Õ@r!   Úconstructor_typec                 ó
  — t        ddgddgddgg| «      }t        j                  g d¢«      }t        j                  dd¬«      }|j                  ||«       |j                  dk  sJ ‚t        |j                  |«      g d	¢«       y )
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Š   ’   sw   € ô 	˜S #˜J¨¨c¨
°S¸#°JÐ?ÐAQÓR€AÜ
�‰’Ó€AÜ
×
*Ñ
*°%À$Ô
G€CØ‡G�GˆAˆq„Mð �;‰;˜ÒÐÐÜ�s—{‘{ 1“~¢yÕ1r!   c                  óô  — t        j                  ddgddgddgg«      } t        j                  g d¢«      }t        j                  dd¬«      }d}t	        j
                  t        |¬	«      5  |j                  | |«       d d d «       |j                  |j                  k(  sJ ‚t        j                  dd¬«      }t	        j
                  t        |¬	«      5  |j                  | |«       d d d «       |j                  |j                  k(  sJ ‚t        j                  dd
¬«      }t        j                  «       5  t        j                  dt        «       |j                  | |«       d d d «       t        j                  dd
¬«      }t        j                  «       5  t        j                  dt        «       |j                  | |«       d d d «       y # 1 sw Y   �ŒNxY w# 1 sw Y   ŒòxY w# 1 sw Y   ŒƒxY w# 1 sw Y   y xY w)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”   Ÿ   s‘  € ä
�‰�3˜�*˜s C˜j¨3°¨*Ð5Ó6€AÜ
�‰’Ó€AÜ
×
*Ñ
*°%À!Ô
D€CØ<€HÜ	�‰Ô(°Ô	9ñ Ø�‰��1Œ÷à�;‰;˜#Ÿ,™,Ò&Ð&Ð&ä
×
,Ñ
,°EÀAÔ
F€CÜ	�‰Ô(°Ô	9ñ Ø�‰��1Œ÷à�;‰;˜#Ÿ,™,Ò&Ð&Ð&ä
×
*Ñ
*°%À#Ô
F€CÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ'9Ô:Ø�‰��1Œ÷ô ×
,Ñ
,°EÀCÔ
H€CÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ'9Ô:Ø�‰��1Œ÷ð ÷ñ ú÷
ð ú÷
ð ú÷
ð ús0   Á*G	ÃGÄ3-G"Æ-G.Ç	GÇGÇ"G+Ç.G7ÚLabelPropagationClsc                 ó4  — t        j                  ddgddgddgddgg«      }t        j                  g d¢«      } | ddd¬«      }t        j                  «       5  t        j                  dt
        «       |j                  ||«       d d d «       y # 1 sw Y   y xY w)	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˜   ¹   s…   € ô 	�‰�5˜%�. 5¨% .°3¸°*¸sÀC¸jÐIÓJ€AÜ
�‰’Ó €AÙ
 U°SÀaÔ
H€CÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜g¤~Ô6Ø�‰��1Œ÷÷ ñ ús   Á-BÂBc           	      óˆ  — dd„}d}d}d}t        ||ddddd¬«      \  }}|j                  | «      }t        |||d¬«      \  }}}	}
t        j                  |¬	«      }|j                  ||	«       |j                  ||
«      d
k\  sJ ‚t        j                  |¬	«      }|j                  ||	«       |j                  ||
«      d
k\  sJ ‚y )Nr‡   c                 ó  — t        ddd¬«      }|j                  | «       d|j                  |d¬«      j                  d«      z  |z  }t	        j
                  |j                  |j                  ¬«       t        |«      sJ ‚|j                  S )	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_rbfz5test_predict_sparse_callable_kernel.<locals>.topk_rbfÎ   sp   € Ü¨"°[ÈÔKˆØ
�‰ˆqŒ	Ø�×$Ñ$ Q¨ZÐ$Ó8×>Ñ>¸qÓAÑAÀEÑIˆÜ
�‰ˆq�v‰v˜1Ÿ6™6Õ"Ü˜Œ{Ðˆ{Ø�s‰sˆ
r!   é   r�   r   r   )rO   rP   Ú
n_featuresÚn_informativeÚn_redundantÚ
n_repeatedrQ   )Ú	test_sizerQ   )r   rK   )Nr‡   gñhãˆµøä>)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ÜØØØØØØØô�D€A€qð 	
�‰�Ó€Aä'7Ø	ˆ1˜¨Qô(Ñ$€GˆV�W˜fô ×,Ñ,°HÔ=€EØ	‡I�Iˆg�wÔØ�;‰;�v˜vÓ&¨#Ò-Ð-Ð-ä×.Ñ.°hÔ?€EØ	‡I�Iˆg�wÔØ�;‰;�v˜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ó >ó =ð8ò2Cð6 ‡�×ÑÐ/°,ÀÐ1MÓNØ‡�×Ñ˜¨¯©°2·8±8Ð(<Ó=Ø‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×ÑÐ0°*Ó=ñ
Aó >ó <ó >ó Oð
Að ‡�×ÑÐ+Ð->Ó?ñ	2ó @ð	2òð4 ‡�×ÑØØ×%Ñ%Ð'8×'IÑ'IÐJóñ
ó	ð
ó$.r!   