§
    qŠtjC  ã                   ó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    úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/feature_selection/tests/test_chi2.pyÚmkchi2r      s   € å•t˜qÐ!Ñ!Ô!Ð!ó    Ú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ˆ;‰;Œ;�?Š?�1�aÑ Ô €DÝ�Aˆ;‰;Œ;�?Š?�1�aÑ Ô €DÝÐ'�tÔ'°Ð5Ñ5Ô5¸°sÑ;Ô;Ð;Ý�~�t”~¥aÑ(Ô(­"¬(µ1©+¬+°a°a°a¸!¸°fÔ*=Ñ>Ô>Ð>å�Aˆ;‰;Œ;�?Š?�1�aÑ Ô €DÝ•vÐ.˜dÔ.°tÐ<Ñ<Ô<Ñ=Ô=ÀÀ1¸vÑFÔFÐFà
ˆ-�¥¤Ð
,Ñ
,Ô
,€CÝ�Aˆ;‰;Œ;�?Š?˜3¥Ñ"Ô"€DÝ•vÐ.˜dÔ.°tÐ<Ñ<Ô<Ñ=Ô=ÀÀ1¸vÑFÔFÐFØˆTŒ^˜CÑ Ô €FÝ�v”| c¤i°¤l°AÐ%6Ñ7Ô7Ð7ð �^Š^ÑÔ€FÝ�qˆk‰kŒk×'Ò'¨­QÑ/Ô/×7Ò7Ñ9Ô9€GÝ˜f gÑ.Ô.Ð.Ð.Ð.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Ý
ˆQ€K�K„K×Ò˜d¥AÑ&Ô&Ð&Ð&Ð&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Ã   € ð �ˆF�V˜Q�KÐ  1 a &€q€AØ•”˜!‘”˜m˜m¨AÑ.Ô.Ð/ð ð ˆÝŒ]�:Ñ&Ô&ð 	ð 	Ý��A‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð 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Ñ'Ô'Ð'Ý˜˜1�v  1˜vÐ&¨¨A¨Ñ/Ô/‰ˆˆQØð 	Hð 	HˆAØ¥4¨¡7¤7Ð*Ð*Ý$Ð%BÀQÑ%FÑGÔGÐGð +ð	HðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hõ �s˜Q¥¤˜KÑ(Ô(Ð(Ý�q˜”t�RœVÑ$Ô$Ð$Ð$Ð$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Ô4�N€GˆUÝ  SÑ)Ô)�N€GˆUå˜g wÑ/Ô/Ð/Ý˜e UÑ+Ô+Ð+Ð+Ð+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Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð
 €Y€Y�	�	�	˜9˜9˜9 i i iÐ0€Ø€L€L€ð"ð "ð "ð
 „×Ò˜¨.Ñ9Ô9ð/ð /ñ :Ô9ð/ð. „×Ò˜¨.Ñ9Ô9ð'ð 'ñ :Ô9ð'ð „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð
%ð 
%ð 
%ð	,ð 	,ð 	,ð 	,ð 	,r   