
    -i                     >   S SK rS SKrS SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr   " S S\\5      rS	S
/S-  r/ SQr\R                   " S5      R#                  SS5      r\R                   " S SS5      R#                  SS5      r\R)                  5       rS \SS2SSS24'   S S/r\" S5      r\SSS2   r\R4                  " \5      rS\SSS2'   S r\R:                  R=                  S\
5      S 5       rS r \R:                  R=                  S\
5      S 5       r!S r"S r#g)    N)assert_array_equal)BaseEstimator)SelectorMixin)CSC_CONTAINERSvalidate_datac                   2    \ rS rSrSrSS jrS	S jrS rSrg)
StepSelector   z`Retain every `step` features (beginning with 0).

If `step < 1`, then no features are selected.
c                     Xl         g Nstep)selfr   s     \/var/www/html/venv/lib/python3.13/site-packages/sklearn/feature_selection/tests/test_base.py__init__StepSelector.__init__   s    	    Nc                     [        XSS9nU $ )Ncsc)accept_sparser   )r   Xys      r   fitStepSelector.fit   s    $7r   c                     [         R                  " U R                  [        S9nU R                  S:  a  SUS S U R                  2'   U$ )Ndtype   T)npzerosn_features_in_boolr   )r   masks     r   _get_support_maskStepSelector._get_support_mask   s:    xx++4899>!%DDIIr   r   )   r   )	__name__
__module____qualname____firstlineno____doc__r   r   r%   __static_attributes__ r   r   r
   r
      s    
r   r
   TF   )r   r'               r'   
   r   
ABCDEFGHIJ c                  X   [        5       n U R                  [        [        5      R	                  [        5      n[        5       R                  [        [        5      n[        [        U5        [        [        U5        [        R                  U R	                  [        R                  [        R                  5      5      R                  :X  d   e[        R                  U R	                  [        R                  [        R                  5      5      R                  :X  d   eU R	                  [        /5      n[        [        UR                  5       5        [         R"                  " [$        5         U R	                  [        R&                  " S/S//5      5        S S S 5        g ! , (       d  f       g = fNr   r'   )r
   r   r   r   	transformfit_transformr   Xtr    int32astyper   float32feature_namesfeature_names_travelpytestraises
ValueErrorarray)sel	Xt_actual
Xt_actual2names_t_actuals       r   test_transform_denserJ   ,   s   
.C1''*I--a3Jr9%r:& 88s}}QXXbhh%78>>>>>::qxx

';<BBBBB ]]M?3N(<(<(>? 
z	"bhhaSz*+ 
#	"	"s   (*F
F)csc_containerc                    U " [         5      n[        5       nUR                  U5      R                  U5      nUR	                  U5      n[        [        UR                  5       5        [        [        UR                  5       5        [        R                  UR                  UR                  [        R                  5      5      R                  :X  d   e[        R                  UR                  UR                  [        R                  5      5      R                  :X  d   e[        R                  " [        5         UR                  [        R                   " S/S//5      5        S S S 5        g ! , (       d  f       g = fr8   )r   r
   r   r9   r:   r   r;   toarrayr    r<   r=   r   r>   rB   rC   rD   rE   )rK   X_sprF   rG   rH   s        r   test_transform_sparserO   @   s    D
.C''-I""4(Jr9,,./r:--/0 88s}}T[[%:;AAAAA::t{{2::'>?EEEEE 
z	"bhhaSz*+ 
#	"	"   6*E))
E7c                     [        5       n U R                  [        [        5      R	                  [
        5      n[        [        U5        [        R                  U R	                  [
        R                  [        R                  5      5      R                  :X  d   e[        R                  U R	                  [
        R                  [        R                  5      5      R                  :X  d   eU R	                  [        /5      n[        [        UR                  5       5        [         R"                  " [$        5         U R	                  [        R&                  " S/S//5      5        S S S 5        g ! , (       d  f       g = fr8   )r
   r   r   r   inverse_transformr;   r   Xinvr    r<   r=   r   r>   r@   feature_names_invrA   rB   rC   rD   rE   )rF   Xinv_actualnames_inv_actuals      r   test_inverse_transform_denserW   R   s    
.C''!Q-11"5Kt[) 88s,,RYYrxx-@AGGGGG::..ryy/DEKKKKK ,,o->?(*:*@*@*BC 
z	"bhhaSz23 
#	"	"rP   c                    U " [         5      nU " [        5      n[        5       nUR                  U5      R	                  U5      n[        [        UR                  5       5        [        R                  UR	                  UR                  [        R                  5      5      R                  :X  d   e[        R                  UR	                  UR                  [        R                  5      5      R                  :X  d   e[        R                  " [        5         UR	                  [        R                   " S/S//5      5        S S S 5        g ! , (       d  f       g = fr8   )r   r;   r
   r   rR   r   rS   rM   r    r<   r=   r   r>   rB   rC   rD   rE   )rK   rN   Xt_sprF   rU   s        r   test_inverse_transform_sparserZ   d   s    D"E
.C''$-11%8Kt[0023 88s,,U\\"((-CDJJJJJ::..u||BJJ/GHNNNNN 
z	"bhhaSz23 
#	"	"s   *E
Ec                      [        5       n U R                  [        [        5        [	        [
        U R                  5       5        [	        [        U R                  SS95        g )NT)indices)r
   r   r   r   r   supportget_supportsupport_inds)rF   s    r   test_get_supportr`   u   s<    
.CGGAqMw 12|S__T_%BCr   c            
      j   [         R                  " S5      n U R                  U R                  / SQ[        R
                  S9U R                  / SQSS9U R                  / SQSS9U R                  / SQ[        R                  S9S.5      nS	 Hr  n[        US
9R                  SS9nUR                  U5        UR                  U5      nUR                  R                  5        H  u  pVXaR                  U   :X  a  M   e   Mt     [        SS
9R                  SS9nUR                  U[        5        Sn[         R                  " [        US9   UR                  U5      n	SSS5        [!        W	R"                  UR"                  5        U	R$                  UR$                  S   S4:X  d   eg! , (       d  f       NP= f)zGCheck output dtypes for dataframes is consistent with the input dtypes.pandas)g      ?333333@g      @r   )abrd   category)jre   re   )g      @rc   g333333?)rd   re   cd)r'      r   )r9   r   zNo features were selected)matchN)rB   importorskip	DataFrameSeriesr    r>   float64r
   
set_outputr   r9   dtypesitemsr   warnsUserWarningr   indexshape)
pdr   r   rF   outputnamer   sel0msgoutput0s
             r   test_output_dataframer}   |   s_   			X	&B
?"**=?*=?*=?"**=		
	A %0080D
q!!==..0KDHHTN*** 1  Q**X*>DHHQN
%C	k	-..# 
. w}}agg.==QWWQZO+++	 
.	-s   F$$
F2)$numpyr    rB   numpy.testingr   sklearn.baser   sklearn.feature_selection._baser   sklearn.utils.fixesr   sklearn.utils.validationr   r
   r]   r_   arangereshaper   r;   copyrS   r   listr?   r@   rE   rT   rJ   markparametrizerO   rW   rZ   r`   r}   r.   r   r   <module>r      s4     , & 9 . 2=- ( -!
IIbM!R YYq"a  A&vvxQ1WF\"!$HH]+  !$Q$ ,( .9, :,"4$ .94 :4 D,r   