
    ri&                        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dez   Zej4                  ddifej4                  dddfej4                  dd ifej6                  ddifej6                  dddfej6                  dd ifgZeD  cg c]  \  } }| ej4                  k(  r| |f c}} Zej<                  j?                  de      d        Z ej<                  j?                  de      d        Z!ej<                  j?                  de      d        Z"ej<                  j?                  de      d        Z#ej<                  j?                  dg d      ej<                  j?                  de      d               Z$d Z%ej<                  j?                  de      ej<                  j?                  dejL                  ejN                  g      ej<                  j?                  dejP                  ejR                  g      ej<                  j?                  de      d                              Z*ej<                  j?                  d!e      ej<                  j?                  de      d"               Z+ej<                  j?                  d#e      d$        Z,d% Z-ej<                  j?                  d&ej6                  ej4                  g      d'        Z.d( Z/yc c}} w ))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)
sparse_csr
sparse_cscsparse_csr_arraysparse_csc_array)arraykernelrbfknn   )r   n_neighborsc                     t        | |d      S N   gammar   xys     r/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/semi_supervised/tests/test_label_propagation.py<lambda>r!          
1ar :     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_transductionr;   .   s]    jj3*sCj3*=\RGF

!j
!
%
%gv
6C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{Gz?atolr/   )pytestskipr0   r1   r2   r   label_distributions_r4   s         r    test_distributionrC   6   s}    (u$V	
 jj3*sCj3*=\RGF

!j
!
%
%gv
6C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/   )r0   r1   r2   r   predictr   r4   s         r    test_predictrG   B   sg    jj3*sCj3*=\RGF

!j
!
%
%gv
6Cs{{S#J<0"((A3-@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'   rE   r*   r,   r=   r/   )r0   r1   r2   r   predict_probar   r4   s         r    test_predict_probarJ   J   sn    jj3*sCj3*=\RGF

!j
!
%
%gv
6CC%%Szl3RXXSzl5K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.      rL   r   r-   r*   axisd   绽|=)max_iterrK   tolr   )r   astypelabel_propagationLabelSpreadingr2   _build_graphr0   zeroslenr+   arangedotlinalginveyesumnewaxisr   rB   )r5   r6   r7   rK   rQ   Xr   r   r:   SYexpecteds               r     test_label_spreading_closed_formrn   R   sM    IcPQRDAq	E*AAccFE

*
*
7
;
;Aq
ACA
#a&)a-(8AAbiiA	!SbS&	AvvbiimmBFF3q6$AEAI$MNPQRH!$Q

]33H

*
*EuEC GGAqMHc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   rO   r   rP   FrT   r.   rV   r-   )r.   rY   rZ   rL   )r[   r\   r   ij)indexingrW   g-C6?r>   )r   r]   r0   ra   rb   rc   nonzeror^   LabelPropagationr2   r`   tuplemeshgridrd   re   rf   rg   shaperU   rh   ri   r   rB   )r5   rQ   rj   r   rl   unlabelled_idxlabelled_idxr:   T_barTuuTulY_lY_urm   s                 r    "test_label_propagation_closed_formr~   m   s   IcPQRDAq	E*AAccF
#a&)a-()AAbiiAq%x[((*1-NahK1$--/2L

,
,cuC
PCGGAqME
bkk..4PQ
RC
bkk.,NO
PC	!SbS&	A
L!O
C
&&		bffSYYq\&:S&@A3G
MCvvxH"%H^Q!$Q

]33HHc66TBr#   accepted_sparse_type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)   FrT   r,   r=   rE   r-   r/   )
r   datar]   indicesindptrr2   r   rF   r0   r   )r   r   r+   r6   r7   rj   r9   r:   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#   constructorc                    	 t        j                  ddgddgddgg      }g d}t        j                  g dg dg dg      	t        j                  g dg d	g d
g      }d	 fd	} ||      j                  ||      }|j                         }t	        |j                  d      d       t        |      r|j                         }t	        ||       y )Nr&   r'   r)   r,   )r&   r&   r'   )r(   r&   r&   )r'   r&   r)   )r=   r=   r'   )r=         ?r   )r'   r   g      ?c                     t              S N)r   )r   r   
aff_matrixr   s     r    kernel_affinity_matrixzMtest_label_propagation_build_graph_normalized.<locals>.kernel_affinity_matrix   s    !*k::r#   r   r-   rW   r   )r0   r   r2   r`   r   rh   r   toarray)
r   r6   r7   rj   r9   rm   r   r:   graphr   s
   `        @r    -test_label_propagation_build_graph_normalizedr      s     	3*sCj3*56AF ?O_MNJxx*;=NOPH; 1
2
6
6q&
ACEEII1I%q)E8$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'   rE   r,   r   i  r   r[   
   )r   r-   r-   )	r   r0   r   r^   r_   r2   n_iter_r   rF   )r   rj   r   mdls       r    test_convergence_speedr      sw     	S#Jc
S#J?AQRA
A

*
*%$
GCGGAqM ;;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'   rE   r,   r   r-   r   z+max_iter=1 was reached without convergence.)match  error)r0   r   r^   r_   r@   warnsr   r2   r   r[   rs   warningscatch_warningssimplefilter)rj   r   r   warn_msgs       r    test_convergence_warningr      s   
3*sCj3*56A
A

*
*%!
DC<H	(	9 1;;#,,&&&

,
,EA
FC	(	9 1;;#,,&&&

*
*%#
FC		 	 	" g'9:1 
,
,EC
HC		 	 	" 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   rY   r-   )r   r[   r   r   )r0   r   r   r   r   RuntimeWarningr2   )r   rj   r   r   s       r    *test_label_propagation_non_zero_normalizerr      s     	5%.5%.3*sCjIJA
 A
USa
HC		 	 	" 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	   r2   kneighbors_graphpowerr0   expr   r   T)rj   rl   r   r   nnWs         r    topk_rbfz5test_predict_sparse_callable_kernel.<locals>.topk_rbf   sp    "[K
q	$$QZ$8>>qAAEI
qvv166"{{ss
r#      r   r   r   )rQ   rR   
n_featuresn_informativen_redundant
n_repeatedrS   )	test_sizerS   r   rM   )Nr   gh㈵>)r   r]   r   r^   r_   r2   scorers   )r5   r   rQ   rR   n_testrj   r   X_trainX_testy_trainy_testmodels               r    #test_predict_sparse_callable_kernelr      s     IIFDAq 	
A'7	1Q($GVWf ,,H=E	IIgw;;vv&#---..h?E	IIgw;;vv&#---r#   )0__doc__r   numpyr0   r@   scipy.sparser   sklearn.datasetsr   sklearn.exceptionsr   sklearn.metrics.pairwiser   sklearn.model_selectionr   sklearn.neighborsr	   sklearn.semi_supervisedr
   r^   sklearn.utils._testingr   r   r   SPARSE_TYPESCONSTRUCTOR_TYPESrs   r_   
ESTIMATORSLP_ESTIMATORSmarkparametrizer;   rC   rG   rJ   rn   r~   int32int64float32float64r   r   r   r   r   r   )klassparamss   00r    <module>r      s   '    ! 0 1 / 4 . K  T-  ''(E):;''E!)LM**	:; %%%'89%%%'JK((	:;
" &!222 FO 0*=% >% 0*=H >H 0*=A >A 0*=M >M ";<0*=8 > =82C6 />288(<=2::rzz":;0*=
A > < > ?
A (9:0-@% A ;%* +->?	2 @	24 %%'8'I'IJ
	
$.Cs   /K+