
    -iC                     f   S r SSKrSSKrSSKrSSKrSSKJrJ	r	  SSK
Jr  SSKJrJr  SSKJrJr  / SQ/ SQ/ S	Q/ S
Q/r/ SQrS r\R*                  R-                  S\5      S 5       r\R*                  R-                  S\5      S 5       r\R*                  R-                  S\5      S 5       rS rS rg)zs
Tests for chi2, currently the only feature selection function designed
specifically to work with sparse matrices.
    NSelectKBestchi2)
_chisquare)assert_array_almost_equalassert_array_equal)COO_CONTAINERSCSR_CONTAINERS)      r   )	   r   r   )   r   r   )r   r   r   )r   r   r   r   c                     [        [        U S9$ )zMake k-best chi2 selectorkr   r   s    \/var/www/html/venv/lib/python3.13/site-packages/sklearn/feature_selection/tests/test_chi2.pymkchi2r      s    tq!!    csr_containerc                 z   [        SS9R                  [        [        5      n[        SS9R                  [        [        5      n[	        UR
                  " SS9S/5        [	        UR                  " [        5      [        R                  " [        5      S S 2S/4   5        [        SS9R                  [        [        5      n[	        [        UR
                  " SS95      SS/5        U " [        [        R                  S9n[        SS9R                  U[        5      n[	        [        UR
                  " SS95      SS/5        UR                  " U5      n[	        UR                  UR                  S   S/5        UR                  5       n[        SS9R                  U[        5      R                  5       n[        X45        g )Nr   r   T)indicesr   r   )dtype)r   fitXyr   get_support	transformnparraysortedfloat64shapetoarrayfit_transformr   )r   r   XspXtransXtrans2s        r   	test_chi2r(      s;    A;??1a DA;??1a Dt''5s;t~~a("((1+a!f*=>A;??1a Dvd..t<=1vF

,CA;??3"Dvd..t<=1vF^^C Fv||ciilA%67 ^^Fqk''Q/779Gf.r   coo_containerc                 V    U " [         5      n[        SS9R                  U[        5        g )Nr   r   )r   r   r$   r   )r)   Xcoos     r   test_chi2_coor,   5   s"     D
QKdA&r   c                     SS/SS//SS/p!U[         R                  " U5      U " U5      4 H1  n[        R                  " [        5         [        X5        S S S 5        M3     g ! , (       d  f       ME  = f)Nr   r   g#Bǻ)r   r   pytestraises
ValueErrorr   )r   r   r   s      r   test_chi2_negativer1   >   s\     FVQK 1a&q!mA./]]:&J '& 0&&s   A!!
A0	c                  v   [         R                  " SS9 n [         R                  " S5        [        SS/SS//SS/5      u  pU  H   nS[	        U5      ;   d  M  [        SU-  5      e   S S S 5        [        WS[        R                  /5        [        WS   [        R                  5        g ! , (       d  f       NH= f)NT)recordalwaysr   r   zdivide by zerozFound unexpected warning %s)	warningscatch_warningssimplefilterr   reprAssertionErrorr   r   nan)warnedchipws       r   test_chi2_unused_featurer?   G   s     
	 	 	-h'1v1v&A/A47*$%BQ%FGG  
. sQK(qtRVV$ 
.	-s   ?B*B**
B8c                      [         R                  " SS/SS//5      n [         R                  " SS/SS//5      n[        R                  R	                  X5      u  p#[        X5      u  pE[        X$5        [        X55        g )Ng       @g      ?g      ?)r   r   scipystats	chisquarer   r   )obsexpchi_scpp_scpchi_ourp_ours         r   test_chisquarerJ   T   sj    
((S#Jc
+
,C
((S#Jc
+
,C[[**34NG)NGg/e+r   )__doc__r5   numpyr   r.   scipy.statsrA   sklearn.feature_selectionr   r   /sklearn.feature_selection._univariate_selectionr   sklearn.utils._testingr   r   sklearn.utils.fixesr	   r
   r   r   r   markparametrizer(   r,   r1   r?   rJ    r   r   <module>rU      s   
     7 F P >
 	9i0"
 .9/ :/. .9' :' .9 :
%	,r   