
    Pi&                     d   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j        ddifej        dddfej        dd ifej        ddifej        dddfej        dd ifgZd eD             Zej                            de          d             Z ej                            de          d             Z!ej                            de          d             Z"ej                            de          d             Z#ej                            dg d          ej                            de          d                         Z$d Z%ej                            de          ej                            dej&        ej'        g          ej                            d ej(        ej)        g          ej                            de          d!                                                 Z*ej                            d"e          ej                            de          d#                         Z+ej                            d$e          d%             Z,d& Z-ej                            d'ej        ej        g          d(             Z.d) Z/dS )*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     /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/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#   c                 <    g | ]\  }}|t           j        k    ||fS  )label_propagationLabelPropagation).0klassparamss      r    
<listcomp>r,   '   s9       !222 FO222r#   zEstimator, parametersc                     t          j        ddgddgddgg|           }g d} |d	i |                    ||          }|j        d         dk    sJ d S )
N      ?               @      @dtyper      r   r5   r&   )npasarrayfittransduction_global_dtype	Estimator
parameterssampleslabelsclfs         r    test_fit_transductionrB   .   sv    j3*sCj3*=\RRRGZZF
)
!
!j
!
!
%
%gv
6
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 |                    ||          }t          |j        d         d	d	gd
           d S )Nr   r   zHUnstable test for this configuration: changes in k-NN ordering break it.r.   r/   r2   r4   r         ?g{Gz?atolr&   )pytestskipr7   r8   r9   r   label_distributions_r;   s         r    test_distributionrJ   6   s    (u$$V	
 	
 	
 j3*sCj3*=\RRRGZZF
)
!
!j
!
!
%
%gv
6
6CC,Q/#s$GGGGGGr#   c                     t          j        ddgddgddgg|           }g d} |d
i |                    ||          }t          |                    ddgg          t          j        d	g                     d S )Nr.   r/   r0   r1   r2   r4   rD         @r5   r&   )r7   r8   r9   r   predictr   r;   s         r    test_predictrN   B   s    j3*sCj3*=\RRRGZZF
)
!
!j
!
!
%
%gv
6
6Cs{{S#J<00"(A3--@@@@@r#   c                     t          j        ddgddgddgg|           }g d} |di |                    ||          }t          |                    ddgg          t          j        ddgg                     d S )Nr.   r/   rL   r2   r4   rD   r&   )r7   r8   r9   r   predict_probar   r;   s         r    test_predict_probarQ   J   s    j3*sCj3*=\RRRGZZF
)
!
!j
!
!
%
%gv
6
6CC%%Szl33RXSzl5K5KLLLLLr#   alpha)皙?g333333?rD   gffffff??c           	      N   d}t          |dd          \  }}|                    | d          }d|d d d<   d	}t          j        |
                              ||          }|                                }	t          j        t          |          |dz   f|j	                  }
d|
t          j
        t          |                    |f<   |
d d d df         }
t          j        t          j                            t          j        t          |	          |	j	                  ||	z  z
            |
          }||                    d          d d t          j        f         z  }t          j        d|d|          }|                    ||           t#          ||j                   d S )Nr      r   	n_classes	n_samplesrandom_stateFcopyr6      rS   r   r5   r2   axisd   绽|=)max_iterrR   tolr   )r   astyper'   LabelSpreadingr9   _build_graphr7   zeroslenr3   arangedotlinalginveyesumnewaxisr   rI   )r<   r=   r>   rR   rX   Xr   r   rA   SYexpecteds               r     test_label_spreading_closed_formrt   R   s    IcPQRRRDAq	E**AAcccFE

*
7
7
7
;
;Aq
A
ACA
#a&&)a-(888AAbiA	!!!SbS&	AvbimmBF3q66$A$A$AEAI$MNNPQRRH!$$QQQ
]33H

*EuE  C GGAqMMMHc677777r#   c           
         d}t          |dd          \  }}|                    | d          }d|d d d<   t          j        t	          |          |d	z   f          }d	|t          j        t	          |                    |f<   |d d d
f                                         d         }|d d d
f         dk                                    d         }t          j        ddd          }|	                    ||           |
                                }|t          t          j        ||d                             }	|t          t          j        ||d                             }
|d d d df         }||d d f         }t          j        t          j        t          j                            t          j        |	j        d                   |	z
            |
          |          }|                                }|||d d f<   ||                    d	          d d t          j        f         z  }t+          ||j        d           d S )Nr   rV   r   rW   Fr[   r6   r]   r5   )r6   r`   ra   rS   )rb   rc   r   ij)indexingr^   g-C6?rE   )r   rd   r7   rg   rh   ri   nonzeror'   r(   r9   rf   tuplemeshgridrj   rk   rl   rm   shaper\   rn   ro   r   rI   )r<   rX   rp   r   rr   unlabelled_idxlabelled_idxrA   T_barTuuTulY_lY_urs   s                 r    "test_label_propagation_closed_formr   m   s   IcPQRRRDAq	E**AAcccF
#a&&)a-())AAbiAqqq%x[((**1-NaaahK1$--//2L

,cuC
P
P
PCGGAqMMME
bk..4PPPQQ
RC
bk.,NNNOO
PC	!!!SbS&	A
L!!!O
C
&	bfSYq\&:&:S&@AA3GG
M
MCvvxxH"%H^QQQ!$$QQQ
]33HHc6TBBBBBBr#   accepted_sparse_typeindex_dtyper3   c                    t          ddgddgddgg|           }|j                            |d          |_        |j                            |d          |_        |j                            |d          |_        g d} |di |                    ||          }t          |                    dd	gg          t          j	        d
g                     d S )Nr.   r/   r0   r1   Fr[   r4   rD   rL   r5   r&   )
r   datard   indicesindptrr9   r   rM   r7   r   )r   r   r3   r=   r>   rp   r@   rA   s           r    test_sparse_input_typesr      s     	S#Jc
S#J?AUVVAV]]5u]--AF	  5 99AIx{77AHZZF
)
!
!j
!
!
%
%a
0
0Cs{{S#J<0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	} ||                              ||          }|                                }t	          |                    d          d           t          |          r|                                }t	          ||           d S )Nr.   r/   r1   r4   )r.   r.   r/   )r0   r.   r.   )r/   r.   r1   )rD   rD   r/   )rD         ?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   r5   r^   r   )r7   r   r9   rf   r   rn   r   toarray)
r   r=   r>   rp   r@   rs   r   rA   graphr   s
   `        @r    -test_label_propagation_build_graph_normalizedr      s%    	3*sCj3*566AZZF ???OOO___MNNJx*;*;*;=N=N=NOPPH; ; ; ; ; ; ; )1
2
2
2
6
6q&
A
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        dk     sJ t          |                    |          g d	           d S )
Nr.   r/   rL   r4   r   i  r   rb   
   )r   r5   r5   )	r   r7   r   r'   re   r9   n_iter_r   rM   )r   rp   r   mdls       r    test_convergence_speedr      s     	S#Jc
S#J?AQRRA
A

*%$
G
G
GCGGAqMMM ;s{{1~~yyy1111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  |                    | |           d d d            n# 1 swxY w Y   |j        |j	        k    sJ t          j
        dd          }t	          j        t          |	          5  |                    | |           d d d            n# 1 swxY w Y   |j        |j	        k    sJ t          j        dd
          }t          j                    5  t          j        dt                     |                    | |           d d d            n# 1 swxY w Y   t          j
        dd
          }t          j                    5  t          j        dt                     |                    | |           d d d            d S # 1 swxY w Y   d S )Nr.   r/   rL   r4   r   r5   r   z+max_iter=1 was reached without convergence.)match  error)r7   r   r'   re   rG   warnsr   r9   r   rb   r(   warningscatch_warningssimplefilter)rp   r   r   warn_msgs       r    test_convergence_warningr      s   
3*sCj3*566A
A

*%!
D
D
DC<H	(	9	9	9  1              ;#,&&&&

,EA
F
F
FC	(	9	9	9  1              ;#,&&&&

*%#
F
F
FC		 	"	"  g'9:::1               
,EC
H
H
HC		 	"	"  g'9:::1                 sH   'B

BBC;;C?C?1E>>FF21G00G47G4LabelPropagationClsc                 F   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
                     |                    ||           d d d            d S # 1 swxY w Y   d S )	Ng      Y@r/   )r   r5   r6   r6   r   r`   r5   )r   rb   r   r   )r7   r   r   r   r   RuntimeWarningr9   )r   rp   r   r   s       r    *test_label_propagation_non_zero_normalizerr      s     	5%.5%.3*sCjIJJA
  A

USa
H
H
HC		 	"	"  g~6661                 s   1BBBc           	         dd}d}d}d}t          ||ddddd          \  }}|                    |           }t          |||d	          \  }}}	}
t          j        |
          }|                    ||	           |                    ||
          dk    sJ t          j        |
          }|                    ||	           |                    ||
          dk    sJ d S )Nr   h㈵>c                     t          ddd          }|                    |            d|                    |d                              d          z  |z  }t	          j        |j        |j                   t          |          sJ |j        S )	Nr   	euclideanr   )r   metricn_jobsr6   distance)mode)out)	r	   r9   kneighbors_graphpowerr7   expr   r   T)rp   rr   r   r   nnWs         r    topk_rbfz5test_predict_sparse_callable_kernel.<locals>.topk_rbf   s    "[KKK
q			$$QZ$88>>qAAAEI
qv16""""{{{s
r#      r   r   r   )rX   rY   
n_featuresn_informativen_redundant
n_repeatedrZ   )	test_sizerZ   r   rT   )Nr   r   )r   rd   r   r'   re   r9   scorer(   )r<   r   rX   rY   n_testrp   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   numpyr7   rG   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_TYPESr(   re   
ESTIMATORSLP_ESTIMATORSmarkparametrizerB   rJ   rN   rQ   rt   r   int32int64float32float64r   r   r   r   r   r   r&   r#   r    <module>r      s8   ' '       ! ! ! ! ! ! 0 0 0 0 0 0 1 1 1 1 1 1 / / / / / / 4 4 4 4 4 4 . . . . . . K K K K K K          T-  '(E):;'E!)L)LM*	::; %%'89%%'J'JK(	::;
 %   0*==% % >=% 0*==H H >=H 0*==A A >=A 0*==M M >=M ";";";<<0*==8 8 >= =<82C C C6 />>28(<==2:rz":;;0*==
A 
A >= <; >= ?>
A (9::0-@@% % A@ ;:%* +->??	2 	2 @?	2  4 %'8'IJ 
 
	 
$. $. $. $. $.r#   