Ë
    ÷Q(hC  ã                   óf  — 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*                  j-                  de«      d„ «       Zej*                  j-                  de«      d„ «       Zej*                  j-                  de«      d„ «       Zd„ Zd„ Zy)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/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/feature_selection/tests/test_chi2.pyÚmkchi2r      s   € ä”t˜qÔ!Ð!ó    Úcsr_containerc                 ó°  — t        d¬«      j                  t        t        «      }t        d¬«      j                  t        t        «      }t	         |j
                  d¬«      dg«       t	         |j                  t        «      t        j                  t        «      d d …dgf   «       t        d¬«      j                  t        t        «      }t	        t         |j
                  d¬«      «      ddg«        | t        t        j                  ¬«      }t        d¬«      j                  |t        «      }t	        t         |j
                  d¬«      «      ddg«        |j                  |«      }t	        |j                  |j                  d   dg«       |j                  «       }t        d¬«      j                  |t        «      j                  «       }t        ||«       y )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(      sJ  € ô �AŒ;�?‰?œ1œaÓ €DÜ�AŒ;�?‰?œ1œaÓ €DÜÐ'�t×'Ñ'°Ô5¸°sÔ;Ü�~�t—~‘~¤aÓ(¬"¯(©(´1«+²a¸!¸°fÑ*=Ô>ä�AŒ;�?‰?œ1œaÓ €DÜ”vÐ.˜d×.Ñ.°tÔ<Ó=ÀÀ1¸vÔFá
œ¤§¡Ô
,€CÜ�AŒ;�?‰?˜3¤Ó"€DÜ”vÐ.˜d×.Ñ.°tÔ<Ó=ÀÀ1¸vÔFØˆT�^‰^˜CÓ €FÜ�v—|‘| c§i¡i°¡l°AÐ%6Ô7ð �^‰^Ó€FÜ�qŒk×'Ñ'¨¬QÓ/×7Ñ7Ó9€GÜ˜f gÕ.r   Úcoo_containerc                 ó\   —  | t         «      }t        d¬«      j                  |t        «       y )Nr   r   )r   r   r$   r   )r)   ÚXcoos     r   Útest_chi2_coor,   5   s"   € ñ œÓ€DÜ
ˆQ„K×Ñ˜d¤AÕ&r   c                 óÖ   — ddgddggddg}}|t        j                  |«       | |«      fD ]0  }t        j                  t        «      5  t        ||«       d d d «       Œ2 y # 1 sw Y   Œ=xY w)Nr   r   g#B’¡œÇ»)r   r   ÚpytestÚraisesÚ
ValueErrorr   )r   r   r   s      r   Útest_chi2_negativer1   >   sp   € ð �ˆF�V˜Q�KÐ  1 a &€q€AØ”—‘˜!“™m¨AÓ.Ð/ò ˆÜ�]‰]œ:Ó&ñ 	Ü��AŒJ÷	ð 	ñ÷	ð 	ús   ÁAÁA(	c                  ój  — t        j                  d¬«      5 } t        j                  d«       t        ddgddggddg«      \  }}| D ]  }dt	        |«      v sŒt        d|z  «      ‚ 	 d d d «       t        dt        j                  g«       t        d   t        j                  «       y # 1 sw Y   ŒCxY w)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ˆAØ¤4¨£7Ò*Ü$Ð%BÀQÑ%FÓGÐGñ	H÷Hô �s˜Q¤§¡˜KÔ(Ü�q˜‘tœRŸV™VÕ$÷Hð Hús   —?B)ÁB)Â)B2c                  ó  — t        j                  ddgddgg«      } t        j                  ddgddgg«      }t        j                  j	                  | |«      \  }}t        | |«      \  }}t        ||«       t        ||«       y )Ng       @g      ð?g      ø?)r   r   ÚscipyÚstatsÚ	chisquarer   r   )ÚobsÚexpÚchi_scpÚp_scpÚchi_ourÚp_ours         r   Útest_chisquarerJ   T   sv   € ä
�(‰(�S˜#�J  c 
Ð+Ó
,€CÜ
�(‰(�S˜#�J  c 
Ð+Ó
,€Cä—[‘[×*Ñ*¨3°Ó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Ý Fß Pß >ò
 ’	š9¢iÐ0€Ú€ò"ð
 ‡�×Ñ˜¨.Ó9ñ/ó :ð/ð. ‡�×Ñ˜¨.Ó9ñ'ó :ð'ð ‡�×Ñ˜¨.Ó9ñó :ðò
%ó	,r   