
    0PhC                     t   d Z ddlZddlZddlZddlZddlmZm	Z	 ddl
mZ ddlmZmZ ddlmZmZ g dg dg d	g d
gZg dZd Zej                            de          d             Zej                            de          d             Zej                            de          d             Zd Zd ZdS )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                 .    t          t          |           S )zMake k-best chi2 selectorkr   r   s    i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/feature_selection/tests/test_chi2.pymkchi2r      s    tq!!!!    csr_containerc                 H   t          d                              t          t                    }t          d                              t          t                    }t	           |j        d          dg           t	           |j        t                    t          j        t                    d d dgf                    t          d                              t          t                    }t	          t           |j        d                    ddg            | t          t          j
                  }t          d                              |t                    }t	          t           |j        d                    ddg            |j        |          }t	          |j        |j        d         dg           |                                }t          d                              |t                                                    }t          ||           d S )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55s;;;~t~a(("(1++aaa!f*=>>>A;;;??1a  Dv.d.t<<<==1vFFF
-
,
,
,CA;;;??3""Dv.d.t<<<==1vFFFT^C  Fv|cilA%6777 ^^Fqkkk''Q//7799Gfg.....r   coo_containerc                 x     | t                     }t          d                              |t                     d S )Nr   r   )r   r   r$   r   )r)   Xcoos     r   test_chi2_coor,   5   s7     =D
QKKKdA&&&&&r   c                     ddgddggddg}}|t          j        |           | |          fD ]C}t          j        t                    5  t          ||           d d d            n# 1 swxY w Y   Dd S )Nr   r   g#Bǻ)r   r   pytestraises
ValueErrorr   )r   r   r   s      r   test_chi2_negativer1   >   s     FVQK 1a&qA!mmA../  ]:&& 	 	AJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   A%%A)	,A)	c                     t          j        d          5 } t          j        d           t          ddgddggddg          \  }}| D ]%}dt	          |          v rt          d|z            &	 d d d            n# 1 swxY w Y   t          |dt          j        g           t          |d         t          j                   d S )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h'''1v1v&A//Q 	H 	HA477**$%BQ%FGGG +	HH H H H H H H H H H H H H H H sQK(((qtRV$$$$$s   AA;;A?A?c                     t          j        ddgddgg          } t          j        ddgddgg          }t          j                            | |          \  }}t          | |          \  }}t          ||           t          ||           d S )Ng       @g      ?g      ?)r   r   scipystats	chisquarer   r   )obsexpchi_scpp_scpchi_ourp_ours         r   test_chisquarerJ   T   s    
(S#Jc
+
,
,C
(S#Jc
+
,
,C[**344NGUS))NGUgw///eU+++++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 7 7 7 7 7 7 7 F F F F F F P P P P P P P P > > > > > > > >
 YY			999iii0LL" " "
 .99/ / :9/. .99' ' :9' .99  :9
% 
% 
%	, 	, 	, 	, 	,r   