Ë
    ÷Q(húZ  ã            
       ó>  — d dl Z d dlZd dlmZ d dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,  G d„ de
«      Z- G d„ de
«      Z. G d„ de«      Z/ ej`                  «       Z1e1jd                  e1jf                  cZ2Z4ejj                  jm                  d «      Z7d„ Z8d„ Z9ejt                  jw                  de2jx                  d   dz   e=dfd„ e>dfd„ e=dfd„ e=dfg«      d„ «       Z?ejt                  jw                  dd d e2jx                  d   dg«      d!„ «       Z@ejt                  jw                  dd"„ d#„ d$„ g«      d%„ «       ZAejt                  jw                  dd&„ d g«      d'„ «       ZBejt                  jw                  dd(„ d)„ d*„ g«      d+„ «       ZC G d,„ d-e
«      ZDd.„ ZEd/„ ZFd0„ ZGe,d1„ «       ZHd2„ ZIejt                  jw                  d3 ed4d5¬6«       ed5¬7«       edd5¬8«       edgd5¬8«      g«      d9„ «       ZJe,d:„ «       ZKd;„ ZLd<„ ZMd=„ ZNd>„ ZOd?„ ZPd@„ ZQdA„ ZRdB„ ZSdC„ ZTdD„ ZUdE„ ZVejt                  jw                  dF e$ ed ¬7«       e «       «      dGf ed ¬7«      eVfg«      dH„ «       ZWejt                  jw                  dIeeeg«      dJ„ «       ZXdK„ ZYejt                  jw                  dLe=dMdNge=dOdP„ gf«      dQ„ «       ZZejt                  jw                  dRdSdTg«      dU„ «       Z[dV„ Z\y)Wé    N)ÚMock)Údatasets)ÚBaseEstimator)ÚCCAÚPLSCanonicalÚPLSRegression)Úmake_friedman1)ÚPCA)ÚHistGradientBoostingClassifierÚRandomForestClassifier)ÚNotFittedError)ÚSelectFromModel)Ú
ElasticNetÚElasticNetCVÚLassoÚLassoCVÚLinearRegressionÚLogisticRegressionÚPassiveAggressiveClassifierÚSGDClassifier)Úmake_pipeline)Ú	LinearSVC)ÚMinimalClassifierÚassert_allcloseÚassert_array_almost_equalÚassert_array_equalÚskip_if_32bitc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNaNTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S ©NT©ÚsuperÚ__sklearn_tags__Ú
input_tagsÚ	allow_nan©ÚselfÚtagsÚ	__class__s     €úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/feature_selection/tests/test_from_model.pyr$   zNaNTag.__sklearn_tags__&   ó!   ø€ Ü‰wÑ'Ó)ˆØ$(ˆ�‰Ô!Øˆó    ©Ú__name__Ú
__module__Ú__qualname__r$   Ú__classcell__©r*   s   @r+   r   r   %   ó   ø„ ÷ð r-   r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNoNaNTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S )NFr"   r'   s     €r+   r$   zNoNaNTag.__sklearn_tags__-   s!   ø€ Ü‰wÑ'Ó)ˆØ$)ˆ�‰Ô!Øˆr-   r.   r3   s   @r+   r6   r6   ,   r4   r-   r6   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNaNTagRandomForestc                 óF   •— t         ‰| �  «       }d|j                  _        |S r!   r"   r'   s     €r+   r$   z#NaNTagRandomForest.__sklearn_tags__4   r,   r-   r.   r3   s   @r+   r9   r9   3   r4   r-   r9   c                  ó  — t        dddd d ¬«      } dD ]`  }t        | |¬«      }|j                  t        t        «       t        j                  t        «      5  |j                  t        «       d d d «       Œb y # 1 sw Y   ŒmxY w)Nçš™™™™™¹?é
   T©ÚalphaÚmax_iterÚshuffleÚrandom_stateÚtol)Úgobbledigookz.5 * gobbledigook©Ú	threshold)	r   r   ÚfitÚdataÚyÚpytestÚraisesÚ
ValueErrorÚ	transform)ÚclfrF   Úmodels      r+   Útest_invalid_inputrP   ?   st   € Ü
Ø˜B¨¸4ÀTô€Cð ;ò "ˆ	Ü ¨yÔ9ˆØ�	‰	”$œÔÜ�]‰]œ:Ó&ñ 	"Ø�O‰OœDÔ!÷	"ð 	"ñ"÷	"ð 	"ús   ÁA7Á7B 	c                  ó„   — t        «       } t        | ¬«      }|j                  t        t        «       |j
                  | u sJ ‚y )N©Ú	estimator)r   r   rG   rH   rI   rS   ©ÚestÚtransformers     r+   Útest_input_estimator_unchangedrW   J   s6   € ä
 Ó
"€CÜ!¨CÔ0€KØ‡O�O”Dœ!ÔØ× Ñ  CÑ'Ð'Ñ'r-   zmax_features, err_type, err_msgé   zmax_features ==c                  ó   — y)Ng      ø?© ©ÚXs    r+   ú<lambda>r]   [   ó   � r-   z3max_features must be an instance of int, not float.c                 ó.   — t         j                  d   dz   S ©NrX   )rH   Úshaper[   s    r+   r]   r]   `   s   € ”d—j‘j ‘m aÑ'€ r-   c                  ó   — y)NéÿÿÿÿrZ   r[   s    r+   r]   r]   e   r^   r-   c                 ó  — t        j                  |«      }t        dd¬«      }t        || t        j
                   ¬«      }t        j                  ||¬«      5  |j                  t        t        «       d d d «       y # 1 sw Y   y xY w)Né   r   ©Ún_estimatorsrB   ©rS   Úmax_featuresrF   ©Úmatch)ÚreÚescaper   r   ÚnpÚinfrJ   rK   rG   rH   rI   )ri   Úerr_typeÚerr_msgrN   rV   s        r+   Útest_max_features_errorrr   R   sh   € ô4 �i‰i˜Ó €GÜ
 ¨a¸aÔ
@€Cä!Ø L¼R¿V¹V¸Gô€Kô 
�‰�x wÔ	/ñ !Ø�‰œœaÔ ÷!÷ !ñ !ús   ÁA;Á;Bri   é   c                 óV  — t        dd¬«      }t        || t        j                   ¬«      }|j	                  t
        t        «      }| �0|j                  | k(  sJ ‚|j                  d   |j                  k(  sJ ‚yt        |d«      rJ ‚|j                  d   t
        j                  d   k(  sJ ‚y)z>Check max_features_ and output shape for integer max_features.re   r   rf   rh   NrX   Úmax_features_)
r   r   rn   ro   Úfit_transformrH   rI   ru   ra   Úhasattr©ri   rN   rV   ÚX_transs       r+   Ú"test_inferred_max_features_integerrz   v   s¡   € ô !¨a¸aÔ
@€CÜ!Ø L¼R¿V¹V¸Gô€Kð ×'Ñ'¬¬aÓ0€GØÐØ×(Ñ(¨LÒ8Ð8Ð8Ø�}‰}˜QÑ ;×#<Ñ#<Ò<Ð<Ñ<ä˜;¨Ô8Ð8Ð8Ø�}‰}˜QÑ¤4§:¡:¨a¡=Ò0Ð0Ñ0r-   c                  ó   — yr`   rZ   r[   s    r+   r]   r]   ˆ   r^   r-   c                 ó    — | j                   d   S r`   ©ra   r[   s    r+   r]   r]   ˆ   s   € ˜AŸG™G A™J€ r-   c                 ó4   — t        | j                  d   d«      S ©NrX   i'  ©Úminra   r[   s    r+   r]   r]   ˆ   s   € ´#°a·g±g¸a±jÀ%Ó2H€ r-   c                 óþ   — t        dd¬«      }t        || t        j                   ¬«      }|j	                  t
        t        «      }|j                   | t
        «      k(  sJ ‚|j                  d   |j                  k(  sJ ‚y)z?Check max_features_ and output shape for callable max_features.re   r   rf   rh   rX   N)	r   r   rn   ro   rv   rH   rI   ru   ra   rx   s       r+   Ú#test_inferred_max_features_callablerƒ   †   sq   € ô !¨a¸aÔ
@€CÜ!Ø L¼R¿V¹V¸Gô€Kð ×'Ñ'¬¬aÓ0€GØ×$Ñ$©´TÓ(:Ò:Ð:Ð:Ø�=‰=˜Ñ˜{×8Ñ8Ò8Ð8Ñ8r-   c                 ó6   — t        t        | d   «      dz  «      S )Nr   rs   )ÚroundÚlenr[   s    r+   r]   r]   •   s   € ´E¼#¸aÀ¹d»)Àa¹-Ó4H€ r-   c                 óÜ   — g d¢g d¢g d¢g d¢g}g d¢}t        dd¬«      }t        || t        j                   ¬	«      }|j	                  ||«      }|j
                  d
   |j                  k(  sJ ‚y )N)g×£p=
×ë?çq=
×£põ¿g×£p=
×Ó?)gR¸…ëQÀg{®Gáz”¿g333333ë¿)rˆ   g¸…ëQ¸Þ¿gffffffÀ)g¸…ëQ¸þ?g®Gáz®÷?gÍÌÌÌÌÌä?)r   rX   r   rX   re   r   rf   rh   rX   )r   r   rn   ro   rv   ra   ru   )ri   r\   rI   rN   rV   ry   s         r+   Útest_max_features_array_liker‰   •   sr   € ò 	ÚÚÚð		€Aò 	€Aä
 ¨a¸aÔ
@€CÜ!Ø L¼R¿V¹V¸Gô€Kð ×'Ñ'¨¨1Ó-€GØ�=‰=˜Ñ˜{×8Ñ8Ò8Ð8Ñ8r-   c                 ó4   — t        | j                  d   d«      S r   r€   r[   s    r+   r]   r]   ©   s   € Œs�1—7‘7˜1‘:˜uÓ%€ r-   c                 ó    — | j                   d   S r`   r}   r[   s    r+   r]   r]   ©   s   € °·±¸±€ r-   c                  ó   — yr`   rZ   r[   s    r+   r]   r]   ©   r^   r-   c                 óÎ   — t        dd¬«      }t        | ¬«      }t        ||t        j                   ¬«      }|j                  t        t        «       |j                  t        «       y)z7Tests that the callable passed to `fit` is called on X.é2   r   rf   )Úside_effectrh   N)	r   r   r   rn   ro   rv   rH   rI   Úassert_called_with)ri   rN   ÚmrV   s       r+   Útest_max_features_callable_datar’   §   sL   € ô !¨b¸qÔ
A€CÜ˜Ô&€AÜ!¨C¸aÌBÏFÉFÈ7ÔS€KØ×Ñœd¤AÔ&Ø×ÑœÕr-   c                   ó   — e Zd Zd„ Zdd„Zy)ÚFixedImportanceEstimatorc                 ó   — || _         y ©N)Úimportances)r(   r—   s     r+   Ú__init__z!FixedImportanceEstimator.__init__µ   s
   € Ø&ˆÕr-   Nc                 óL   — t        j                  | j                  «      | _        y r–   )rn   Úarrayr—   Úfeature_importances_)r(   r\   rI   s      r+   rG   zFixedImportanceEstimator.fit¸   s   € Ü$&§H¡H¨T×-=Ñ-=Ó$>ˆÕ!r-   r–   )r/   r0   r1   r˜   rG   rZ   r-   r+   r”   r”   ´   s   „ ò'ô?r-   r”   c            	      ó   — t        j                  ddddddd¬«      \  } }| j                  d   }t        dd¬	«      }t	        |t
        j                   ¬
«      }t	        ||t
        j                   ¬«      }|j                  | |«      }|j                  | |«      }t        ||«       t	        t        dd¬«      ¬«      }|j                  | |«      }t        j                  |j                  j                  «      }t        j                  | d¬«      }	t        d|j                  d   dz   «      D ]�  }
t	        t        dd¬«      |
t
        j                   ¬«      }|j                  | |«      }t        j                  |j                  j                  «      }t        j                  | d¬«      }t        | d d …|	d |
 f   | d d …|d |
 f   «       ŒŸ t        |j                  j                  |j                  j                  «       y )Néè  r=   é   r   F©Ú	n_samplesÚ
n_featuresÚn_informativeÚn_redundantÚ
n_repeatedrA   rB   rX   rŽ   rf   ©rS   rF   rh   gš™™™™™™?é*   ©r?   rB   rR   Ú	mergesort)Úkind)r   Úmake_classificationra   r   r   rn   ro   rv   r   r   ÚabsÚ
estimator_Úcoef_ÚargsortÚrange)r\   rI   ri   rU   Útransformer1Útransformer2ÚX_new1ÚX_new2Úscores1Úcandidate_indices1r¡   Úscores2Úcandidate_indices2s                r+   Útest_max_featuresr¸   ¼   sÊ  € ä×'Ñ'ØØØØØØØô�D€A€qð —7‘7˜1‘:€LÜ
 ¨b¸qÔ
A€Cä"¨S¼R¿V¹V¸GÔD€LÜ"Ø L¼R¿V¹V¸Gô€Lð ×'Ñ'¨¨1Ó-€FØ×'Ñ'¨¨1Ó-€FÜ�F˜FÔ#ô #¬U¸ÈRÔ-PÔQ€LØ×'Ñ'¨¨1Ó-€FÜ�f‰f�\×,Ñ,×2Ñ2Ó3€GÜŸ™ W H°;Ô?Ðä˜A˜vŸ|™|¨A™°Ñ2Ó3ò 
ˆ
Ü&Ü %°bÔ9Ø#Ü—v‘v�gô
ˆð
 ×+Ñ+¨A¨qÓ1ˆÜ—&‘&˜×0Ñ0×6Ñ6Ó7ˆÜŸZ™Z¨¨°{ÔCÐÜØŠaÐ# K ZÐ0Ð0Ñ1°1²QÐ8JÈ;ÈJÐ8WÐ5WÑ3Xõ	
ð
ô �L×+Ñ+×1Ñ1°<×3JÑ3J×3PÑ3PÕQr-   c            	      óØ  — t        j                  ddddddd¬«      \  } }| j                  d   }t        j                  g d¢«      }t        d|dz   «      D ]“  }t        t        |«      |t        j                   ¬	«      }|j                  | |«      }t        j                  |j                  «       «      d   }t        |t        j                  |«      «       |j                  d   |k(  rŒ“J ‚ y )
Nr�   r=   rž   r   FrŸ   rX   )
é   rº   rº   rº   rž   rž   rž   rs   rs   rX   )ri   rF   )r   rª   ra   rn   rš   r¯   r   r”   ro   rv   ÚwhereÚ_get_support_maskr   Úarange)r\   rI   ri   Úfeature_importancesr¡   rV   ÚX_newÚselected_feature_indicess           r+   Útest_max_features_tiebreakrÁ   ç   sß   € ä×'Ñ'ØØØØØØØô�D€A€qð —7‘7˜1‘:€LäŸ(™(Ò#AÓBÐÜ˜A˜|¨aÑ/Ó0ò 	,ˆ
Ü%Ü$Ð%8Ó9Ø#Ü—v‘v�gô
ˆð
 ×)Ñ)¨!¨QÓ/ˆÜ#%§8¡8¨K×,IÑ,IÓ,KÓ#LÈQÑ#OÐ ÜÐ3´R·Y±Y¸zÓ5JÔKØ�{‰{˜1‰~ Ó+Ð+Ð+ñ	,r-   c            	      ó`  — t        j                  ddddddd¬«      \  } }t        dd¬«      }t        |dt        j
                   ¬	«      }|j                  | |«      }t        |d
¬«      }|j                  | |«      }t        |dd
¬	«      }|j                  | |«      }|j                  d   t        |j                  d   |j                  d   «      k(  sJ ‚|j                  t	        j                  | j                  d   «      t        j                  d d …f   «      }	t        || d d …|	d   f   «       y )Nr�   r=   rž   r   FrŸ   rŽ   rf   rh   g{®Gáz¤?r¥   rX   )r   rª   r   r   rn   ro   rv   ra   r�   rM   r½   Únewaxisr   )
r\   rI   rU   r°   r²   r±   r³   Útransformer3ÚX_new3Úselected_indicess
             r+   Útest_threshold_and_max_featuresrÇ     s  € Ü×'Ñ'ØØØØØØØô�D€A€qô !¨b¸qÔ
A€Cä"¨S¸qÌRÏVÉVÈGÔT€LØ×'Ñ'¨¨1Ó-€Fä"¨S¸DÔA€LØ×'Ñ'¨¨1Ó-€Fä"¨S¸qÈDÔQ€LØ×'Ñ'¨¨1Ó-€FØ�<‰<˜‰?œc &§,¡,¨q¡/°6·<±<À±?ÓCÒCÐCÐCØ#×-Ñ-¬b¯i©i¸¿¹À¹
Ó.CÄBÇJÁJÒPQÀMÑ.RÓSÐÜ�F˜AšaÐ!1°!Ñ!4Ð4Ñ5Õ6r-   c            	      ó$  — t        j                  ddddddd¬«      \  } }t        dd¬«      }t        d	d
gt        j
                  t        j                  g«      D ]µ  \  }}t        ||¬«      }|j                  | |«       t        |j                  d«      sJ ‚|j                  | «      }|j                  d   | j                  d   k  sJ ‚|j                  j                  }t	        j                  |«       ||«      kD  }t        || d d …|f   «       Œ· y )Nr�   r=   rž   r   FrŸ   rŽ   rf   ÚmeanÚmedianr¥   r›   rX   )r   rª   r   Úziprn   rÉ   rÊ   r   rG   rw   r¬   rM   ra   r›   r«   r   )	r\   rI   rU   rF   ÚfuncrV   r¿   r—   Úfeature_masks	            r+   Útest_feature_importancesrÎ     s   € ä×'Ñ'ØØØØØØØô�D€A€qô !¨b¸qÔ
A€CÜ ¨Ð1´B·G±G¼R¿Y¹YÐ3GÓHò 
=‰ˆ	�4Ü%°¸yÔIˆØ�‰˜˜1ÔÜ�{×-Ñ-Ð/EÔFÐFÐFà×%Ñ% aÓ(ˆØ�{‰{˜1‰~ §¡¨¡
Ò*Ð*Ð*Ø!×,Ñ,×AÑAˆä—v‘v˜kÓ*©T°+Ó->Ñ>ˆÜ! %¨ª1¨l¨?Ñ);Õ<ñ
=r-   c            	      ó  — t        j                  ddddddd¬«      \  } }t        j                  |j                  «      }||dk(  xx   dz  cc<   t        dd¬«      }t        |¬	«      }|j                  | |d ¬
«       |j                  «       }|j                  | ||¬
«       |j                  «       }t        j                  ||k(  «      rJ ‚|j                  | |d|z  ¬
«       |j                  «       }t        j                  ||k(  «      sJ ‚y )Néd   r=   rž   r   FrŸ   rX   )rB   Úfit_interceptrR   )Úsample_weight)
r   rª   rn   Úonesra   r   r   rG   r¼   Úall)r\   rI   rÒ   rU   rV   ÚmaskÚweighted_maskÚreweighted_masks           r+   Útest_sample_weightrØ   4  sü   € ä×'Ñ'ØØØØØØØô�D€A€qô —G‘G˜AŸG™GÓ$€MØ�!�q‘&Ó˜SÑ Óä
¨!¸5Ô
A€CÜ!¨CÔ0€KØ‡O�O�A�q¨€OÔ-Ø×(Ñ(Ó*€DØ‡O�O�A�q¨€OÔ6Ø×1Ñ1Ó3€MÜ�v‰v�m tÑ+Ô,Ð,Ð,Ø‡O�O�A�q¨¨MÑ(9€OÔ:Ø!×3Ñ3Ó5€OÜ�6‰6�- ?Ñ2Ô3Ð3Ñ3r-   rS   r<   r¦   r§   ©rB   )Úl1_ratiorB   c           	      ó  — t        j                  ddddddd¬«      \  }}t        | ¬«      }|j                  ||«       |j	                  |«      }t        j                  |j                  j                  «      dkD  }t        ||d d …|f   «       y )	NrÐ   r=   rž   r   FrŸ   rR   gñhãˆµøä>)
r   rª   r   rG   rM   rn   r«   r¬   r­   r   )rS   r\   rI   rV   r¿   rÕ   s         r+   Útest_coef_default_thresholdrÜ   P  sˆ   € ô ×'Ñ'ØØØØØØØô�D€A€qô "¨IÔ6€KØ‡O�O�A�qÔØ×!Ñ! !Ó$€EÜ�6‰6�+×(Ñ(×.Ñ.Ó/°$Ñ6€DÜ˜e Q¢q¨$ w¡ZÕ0r-   c            
      óŒ  — t        j                  dddddddd¬«      \  } }t        «       }t        dd	gt        j
                  t        j                  g«      D ]ë  \  }}d
dt        j                  fD ]Ð  }t        t        «       ||¬«      }|j                  | |«       t        |j                  d«      sJ ‚|j                  | «      }|j                  d
   | j                  d
   k  sJ ‚|j                  | |«       t        j                  j                  |j                   d|¬«      }| ||«      kD  }	t#        || d d …|	f   «       ŒÒ Œí y )Nr�   r=   rž   r   Frº   )r    r¡   r¢   r£   r¤   rA   rB   Ú	n_classesrÉ   rÊ   rX   rs   )rS   rF   Ú
norm_orderr­   )ÚaxisÚord)r   rª   r   rË   rn   rÉ   rÊ   ro   r   rG   rw   r¬   rM   ra   ÚlinalgÚnormr­   r   )
r\   rI   rU   rF   rÌ   ÚorderrV   r¿   r—   rÍ   s
             r+   Útest_2d_coefrå   l  s7  € ä×'Ñ'ØØØØØØØØô	�D€A€qô Ó
€CÜ ¨Ð1´B·G±G¼R¿Y¹YÐ3GÓHò A‰ˆ	�4Ø˜œBŸF™F�^ò 	AˆEä)Ü,Ó.¸)ÐPUôˆKð �O‰O˜A˜qÔ!Ü˜;×1Ñ1°7Ô;Ð;Ð;Ø×)Ñ)¨!Ó,ˆEØ—;‘;˜q‘> A§G¡G¨A¡JÒ.Ð.Ð.ð �G‰G�A�qŒMÜŸ)™)Ÿ.™.¨¯©¸À˜.ÓFˆKØ&©¨kÓ):Ñ:ˆLÜ% e¨Qªq°,¨Ñ-?Õ@ñ	AñAr-   c                  ó†  — t        dddd ¬«      } t        | ¬«      }|j                  t        t        t        j                  t        «      ¬«       |j                  }|j                  t        t        t        j                  t        «      ¬«       |j                  }||u sJ ‚|j                  t        «      }|j                  t        j                  t        t        f«      t        j                  t        t        f«      «       t        ||j                  t        «      «       t        t        «       ¬«      }t        |d«      rJ ‚y )Nr   Fre   )rB   rA   r@   rC   rR   ©ÚclassesÚpartial_fit)r   r   ré   rH   rI   rn   Úuniquer¬   rM   rG   ÚvstackÚconcatenater   r   rw   )rU   rV   Ú	old_modelÚ	new_modelÚX_transforms        r+   Útest_partial_fitrð   Œ  sï   € Ü
%Ø °°tô€Cô "¨CÔ0€KØ×ÑœD¤!¬R¯Y©Y´q«\ÐÔ:Ø×&Ñ&€IØ×ÑœD¤!¬R¯Y©Y´q«\ÐÔ:Ø×&Ñ&€IØ˜	Ñ!Ð!Ð!à×'Ñ'¬Ó-€KØ‡O�O”B—I‘Iœt¤T˜lÓ+¬R¯^©^¼QÄ¸FÓ-CÔDÜ˜k¨;×+@Ñ+@ÄÓ+FÔGô "Ô,BÓ,DÔE€KÜ�{ MÔ2Ð2Ð2Ð2r-   c                  óö   — t        d¬«      } t        | ¬«      }|j                  t        t        «       |j                  d¬«       |j                  t        t        «       |j                  j                  dk(  sJ ‚y )Nr   rÙ   rR   rÐ   )Úestimator__C)r   r   rG   rH   rI   Ú
set_paramsr¬   ÚCrT   s     r+   Útest_calling_fit_reinitializesrõ      s]   € Ü
 Ô
#€CÜ!¨CÔ0€KØ‡O�O”Dœ!ÔØ×Ñ¨ÐÔ,Ø‡O�O”Dœ!ÔØ×!Ñ!×#Ñ# sÒ*Ð*Ñ*r-   c                  óp  — t        ddddd ¬«      } t        | «      }|j                  t        t        «       |j                  t        «      }| j                  t        t        «       t        | d¬«      }t        |j                  t        «      |«       |j                  t        t        «       |j                  | usJ ‚t        | d¬«      }|j                  t        t        «       t        |j                  t        «      |«       t        ddddd ¬«      } t        | d¬«      }d}t        j                  t        |¬	«      5  |j                  t        t        «       d d d «       t        j                  t        |¬	«      5  |j                  t        t        «       d d d «       t        j                  t        |¬	«      5  |j                  t        «       d d d «       t        dddd ¬
«      j                  t        t        «      } t        | d¬«      }|j                  t        t        «       t        |j                  j                  | j                  «       |j                  t        t        «       t        |j                  j                  | j                  «       y # 1 sw Y   �Œ>xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒàxY w)Nr<   r=   Tr   r>   )ÚprefitFzEWhen `prefit=True`, `estimator` is expected to be a fitted estimator.rj   )r?   r@   rA   rC   )r   r   rG   rH   rI   rM   r   r¬   rJ   rK   r   ré   r   r­   )rN   rO   rï   rq   s       r+   Útest_prefitrø   ©  sò  € ô
 ˜c¨B¸È1ÐRVÔ
W€CÜ˜CÓ €EØ	‡I�IŒd”AÔØ—/‘/¤$Ó'€KØ‡G�GŒD”!ÔÜ˜C¨Ô-€EÜ˜eŸo™o¬dÓ3°[ÔAØ	‡I�IŒd”AÔØ×Ñ 3Ñ&Ð&Ð&ô ˜C¨Ô.€EØ	‡I�IŒd”AÔÜ˜eŸo™o¬dÓ3°[ÔAô ˜c¨B¸È1ÐRVÔ
W€CÜ˜C¨Ô-€EØU€GÜ	�‰”~¨WÔ	5ñ Ø�	‰	”$œÔ÷ä	�‰”~¨WÔ	5ñ #Ø×Ñœ$¤Ô"÷#ä	�‰”~¨WÔ	5ñ Ø�‰œÔ÷ô
 ˜c¨B¸À$Ô
G×
KÑ
KÌDÔRSÓ
T€CÜ˜C¨Ô-€EØ	‡I�IŒd”AÔÜ�E×$Ñ$×*Ñ*¨C¯I©IÔ6Ø	×Ñ”dœAÔÜ�E×$Ñ$×*Ñ*¨C¯I©IÕ6÷ñ ú÷#ñ #ú÷ð ús$   Ä;JÅ9JÆ7J,ÊJÊJ)Ê,J5c                  ó°  — t        dd¬«      } | j                  t        t        «       t	        | dd„ ¬«      }d}t        j                  t        |¬«      5  |j                  t        «       d	d	d	«       d
}|j                  |¬«       t        j                  t        d¬«      5  |j                  t        «       d	d	d	«       y	# 1 sw Y   ŒWxY w# 1 sw Y   y	xY w)z:Check the interaction between `prefit` and `max_features`.re   r   rf   Tc                 ó    — | j                   d   S r`   r}   r[   s    r+   r]   z*test_prefit_max_features.<locals>.<lambda>Ú  s   € È1Ï7É7ÐSTÉ:€ r-   ©r÷   ri   z[When `prefit=True` and `max_features` is a callable, call `fit` before calling `transform`.rj   Ng      @)ri   z!`max_features` must be an integer)r   rG   rH   rI   r   rJ   rK   r   rM   ró   rL   )rS   rO   rq   ri   s       r+   Útest_prefit_max_featuresrü   Ô  sµ   € ô '°AÀAÔF€IØ‡M�M”$œÔÜ˜I¨dÑAUÔV€Eð	&ð ô 
�‰”~¨WÔ	5ñ Ø�‰œÔ÷ð €LØ	×Ñ ,ÐÔ/Ü	�‰”zÐ)LÔ	Mñ Ø�‰œÔ÷ð ÷ð ú÷ð ús   ÁC Â!CÃ C	ÃCc                  óˆ  — t        dd¬«      } | j                  t        t        «       t	        | dd¬«      }t        |«      j                  }d|› d�}t        j                  t        |¬	«      5  |j                  «        d
d
d
«       |j                  t        t        «       |j                  «       }|dgk(  sJ ‚y
# 1 sw Y   Œ<xY w)z;Check the interaction between prefit and the feature names.rs   r   rf   TrX   rû   zThis z_ instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.rj   NÚx3)r   rG   rH   rI   r   Útyper/   rJ   rK   r   Úget_feature_names_out)rN   rO   Únamerq   Úfeature_namess        r+   Ú!test_prefit_get_feature_names_outr  í  s®   € ä
 ¨a¸aÔ
@€CØ‡G�GŒD”!ÔÜ˜C¨¸1Ô=€Eä�‹;×Ñ€Dà
�ˆvð =ð 	=ð ô 
�‰”~¨WÔ	5ñ &Ø×#Ñ#Ô%÷&ð 
‡I�IŒd”AÔØ×/Ñ/Ó1€MØ˜T˜FÒ"Ð"Ñ"÷&ð &ús   Á,B8Â8Cc                  óZ  — t        dd¬«      } t        | d¬«      }|j                  t        t        «       |j                  t        «      }| j                  t        t        «       dt        j                  | j                  «      z  }| j                  |kD  }t        |t        d d …|f   «       y )NrŽ   r   rf   z0.5*meanrE   ç      à?)
r   r   rG   rH   rI   rM   rn   rÉ   r›   r   )rU   rO   rï   rF   rÕ   s        r+   Útest_threshold_stringr     s�   € Ü
 ¨b¸qÔ
A€CÜ˜C¨:Ô6€EØ	‡I�IŒd”AÔØ—/‘/¤$Ó'€Kð ‡G�GŒD”!ÔØ”b—g‘g˜c×6Ñ6Ó7Ñ7€IØ×#Ñ# iÑ/€DÜ˜k¬4²°4°©=Õ9r-   c                  ó  — t        ddddd ¬«      } t        | d¬«      }|j                  t        t        «       |j                  t        «      }d|_        |j                  d	   |j                  t        «      j                  d	   kD  sJ ‚y )
Nr<   r=   Tr   r>   z
0.1 * meanrE   z
1.0 * meanrX   )r   r   rG   rH   rI   rM   rF   ra   )rN   rO   rï   s      r+   Ú test_threshold_without_refittingr    ss   € ä
˜c¨B¸È1ÐRVÔ
W€CÜ˜C¨<Ô8€EØ	‡I�IŒd”AÔØ—/‘/¤$Ó'€Kð #€E„OØ×Ñ˜QÑ %§/¡/´$Ó"7×"=Ñ"=¸aÑ"@Ò@Ð@Ñ@r-   c                  óÜ   — t        d¬«      } t        | ¬«      }t        j                  «       }t        j
                  |d<   t        j                  |d<   |j                  t        t        «       y )Nr   rÙ   rR   rX   )	r   r   rH   Úcopyrn   Únanro   rG   rI   )rN   rO   Únan_datas      r+   Útest_fit_accepts_nan_infr    sI   € ä
(°aÔ
8€Cä cÔ*€Eä�y‰y‹{€HÜ—&‘&€HˆQ�KÜ—&‘&€HˆQ�Kà	‡I�IŒd”AÕr-   c                  óø   — t        dd¬«      } t        j                  «       }t        | ¬«      }|j	                  |t
        «       t        j                  |d<   t        j                  |d<   |j                  |«       y )NrÐ   r   rf   rR   rX   )
r9   rH   r
  r   rG   rI   rn   r  ro   rM   )rN   r  rO   s      r+   Útest_transform_accepts_nan_infr  &  sW   € ä
¨#¸AÔ
>€CÜ�y‰y‹{€Hä cÔ*€EØ	‡I�IˆhœÔä—&‘&€HˆQ�KÜ—&‘&€HˆQ�Kà	‡O�O�HÕr-   c                  óü   — t        «       } t        | ¬«      }|j                  «       j                  j                  du sJ ‚t        «       }t        |¬«      }|j                  «       j                  j                  du sJ ‚y )NrR   TF)r   r   r$   r%   r&   r6   )Úallow_nan_estrO   Ú
no_nan_ests      r+   Ú'test_allow_nan_tag_comes_from_estimatorr  4  sj   € Ü“H€MÜ mÔ4€EØ×!Ñ!Ó#×.Ñ.×8Ñ8¸DÑ@Ð@Ð@ä“€JÜ jÔ1€EØ×!Ñ!Ó#×.Ñ.×8Ñ8¸EÑAÐAÑAr-   c                 ó@   — t        j                  | j                  «      S r–   )rn   r«   Úexplained_variance_)Úpca_estimators    r+   Ú_pca_importancesr  >  s   € Ü�6‰6�-×3Ñ3Ó4Ð4r-   zestimator, importance_getterz$named_steps.logisticregression.coef_c                 ó¢   — t        | d|¬«      }|j                  t        t        «       |j	                  t        «      j
                  d   dk(  sJ ‚y )NrÉ   )rF   Úimportance_getterrX   )r   rG   rH   rI   rM   ra   )rS   r  Úselectors      r+   Útest_importance_getterr  B  sJ   € ô Ø˜VÐ7Hô€Hð ‡L�L””qÔØ×ÑœdÓ#×)Ñ)¨!Ñ,°Ò1Ð1Ñ1r-   ÚPLSEstimatorc                 ó°   — t        ddd¬«      \  }} | d¬«      }t        t        |«      |«      j                  ||«      }|j	                  ||«      dkD  sJ ‚y)	zœCheck the behaviour of SelectFromModel with PLS estimators.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12410
    rŽ   r=   r   ©r    r¡   rB   rX   )Ún_componentsr  N)r	   r   r   rG   Úscore)r  r\   rI   rS   rO   s        r+   Útest_select_from_model_plsr!  T  sW   € ô  B°2ÀAÔF�D€A€qÙ¨!Ô,€IÜœ/¨)Ó4°iÓ@×DÑDÀQÈÓJ€EØ�;‰;�q˜!Ó˜sÒ"Ð"Ñ"r-   c                  ó$  ‡— t        j                  d«       t        j                  dd¬«      \  Š} t	        ‰j
                  «      }ˆfd„}t        t        «       |¬«      j                  ‰| «      }t        |j                  ‰j
                  «       t	        |j                  «       «      }||k  sJ ‚t        j                  «       5  t        j                  dt        «       |j!                  ‰j"                  dd «       d	d	d	«       y	# 1 sw Y   y	xY w)
zvSelectFromModel works with estimators that do not support feature_names_in_.

    Non-regression test for #21949.
    ÚpandasT©Úas_frameÚ
return_X_yc                 óH   •— t        j                  ‰j                  d   «      S r`   )rn   r½   ra   )rS   r\   s    €r+   r  zHtest_estimator_does_not_support_feature_names.<locals>.importance_getterj  s   ø€ Ü�y‰y˜Ÿ™ ™Ó$Ð$r-   )r  ÚerrorrX   rž   N)rJ   Úimportorskipr   Ú	load_irisÚsetÚcolumnsr   r   rG   r   Úfeature_names_in_r   ÚwarningsÚcatch_warningsÚsimplefilterÚUserWarningrM   Úiloc)rI   Úall_feature_namesr  r  Úfeature_names_outr\   s        @r+   Ú-test_estimator_does_not_support_feature_namesr5  a  sá   ø€ ô
 ×Ñ˜Ô!Ü×Ñ t¸Ô=�D€A€qÜ˜AŸI™I›Ðô%ô ÜÓÐ/@ôç	�cˆ!ˆQƒið ô
 �x×1Ñ1°1·9±9Ô=ä˜H×:Ñ:Ó<Ó=ÐØÐ0Ò0Ð0Ð0ä	×	 Ñ	 Ó	"ñ (Ü×Ñ˜g¤{Ô3à×Ñ˜1Ÿ6™6 ! A˜;Ô'÷(÷ (ñ (ús   Ã9DÄDzerror, err_msg, max_featuresz max_features == 10, must be <= 4r=   zmax_features == 5, must be <= 4c                 ó&   — | j                   d   dz   S r`   r}   )Úxs    r+   r]   r]   �  s   € À!Ç'Á'È!Á*ÈqÁ.€ r-   c                 óä   — t        j                  ddd¬«      \  }}t        j                  | |¬«      5  t	        t        «       |¬«      j                  ||ddg¬«       d	d	d	«       y	# 1 sw Y   y	xY w)
zDTest that partial_fit from SelectFromModel validates `max_features`.rÐ   rº   r   r  rj   ©rS   ri   rX   rç   N)r   rª   rJ   rK   r   r   ré   )r(  rq   ri   r\   rI   s        r+   Ú&test_partial_fit_validate_max_featuresr:  }  si   € ô ×'Ñ'ØØØô�D€A€qô 
�‰�u GÔ	,ñ ,ÜÜ#“o°Lô	
ç
‰+�a˜ Q¨ Fˆ+Ô
+÷,÷ ,ñ ,ús   ³*A&Á&A/r%  TFc                 ó  — t        j                  d«       t        j                  | d¬«      \  }}t	        t        «       d¬«      j                  ||g d¢¬«      }| r!t        |j                  |j                  «       y	t        |d«      rJ ‚y	)
zITest that partial_fit from SelectFromModel validates `feature_names_in_`.r#  Tr$  rº   r9  )r   rX   rs   rç   r-  N)rJ   r)  r   r*  r   r   ré   r   r-  r,  rw   )r%  r\   rI   r  s       r+   Ú'test_partial_fit_validate_feature_namesr<  ’  s{   € ô ×Ñ˜Ô!Ü×Ñ x¸DÔA�D€A€qä¬«ÀqÔI×UÑUØ	ˆ1’ið Vó €Hñ Ü˜8×5Ñ5°q·y±yÕAä˜8Ð%8Ô9Ð9Ð9Ð9r-   c                  ó€  — t        t        «       ¬«      } d}d}t        j                  t        |¬«      5 }| j                  t        t        «      j                  t        «       ddd«       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚y# 1 sw Y   ŒSxY w)zþCheck that we raise the proper AttributeError when the estimator
    does not implement the `partial_fit` method, which is decorated with
    `available_if`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28108
    rR   z5This 'SelectFromModel' has no attribute 'partial_fit'z8'LinearRegression' object has no attribute 'partial_fit'rj   N)r   r   rJ   rK   ÚAttributeErrorrG   rH   rI   ré   Ú
isinstanceÚvalueÚ	__cause__Ústr)Ú
from_modelÚ	outer_msgÚ	inner_msgÚ	exec_infos       r+   Ú)test_from_model_estimator_attribute_errorrG  ¡  s‘   € ô !Ô+;Ó+=Ô>€JàG€IØJ€IÜ	�‰”~¨YÔ	7ð 2¸9Ø�‰”tœQÓ×+Ñ+¬DÔ1÷2ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷2ð 2ús   ´.B4Â4B=)]rl   r.  Úunittest.mockr   Únumpyrn   rJ   Úsklearnr   Úsklearn.baser   Úsklearn.cross_decompositionr   r   r   Úsklearn.datasetsr	   Úsklearn.decompositionr
   Úsklearn.ensembler   r   Úsklearn.exceptionsr   Úsklearn.feature_selectionr   Úsklearn.linear_modelr   r   r   r   r   r   r   r   Úsklearn.pipeliner   Úsklearn.svmr   Úsklearn.utils._testingr   r   r   r   r   r   r6   r9   r*  ÚirisrH   ÚtargetrI   ÚrandomÚRandomStateÚrngrP   rW   ÚmarkÚparametrizera   rL   Ú	TypeErrorrr   rz   rƒ   r‰   r’   r”   r¸   rÁ   rÇ   rÎ   rØ   rÜ   rå   rð   rõ   rø   rü   r  r  r  r  r  r  r  r  r!  r5  r:  r<  rG  rZ   r-   r+   ú<module>r^     sÉ  ðÛ 	Û Ý ã Û å Ý &ß HÑ HÝ +Ý %ß SÝ -Ý 5÷	÷ 	ó 	õ +Ý !÷õ ôˆ]ô ôˆ}ô ôÐ/ô ð €x×ÑÓ€Ø
�)‰)�T—[‘[€€€aØ‡i�i×Ñ˜AÓ€ò"ò(ð ‡�×ÑØ%ð �J‰J�q‰M˜AÑØØð	
ñ ØØAð	
ñ (ØØð	
ñ ØØð	
ð!óñ2!ó3ð2!ð ‡�×Ñ˜¨!¨Q°·
±
¸1±¸tÐ)DÓEñ1ó Fð1ð ‡�×ÑØÙÑ&Ñ(HÐIóñ9ó	ð9ð ‡�×Ñ˜Ñ*HÈ!Ð)LÓMñ9ó Nð9ð" ‡�×ÑØÙ%Ñ';¹[ÐIóñó	ðô?˜}ô ?ò(RòV,ò47ð2 ñ=ó ð=ò24ð8 ‡�×ÑØá�C bÔ)Ù˜RÔ Ù˜A¨BÔ/Ù˜q˜c°Ô3ð	óñ1óð1ð& ñAó ðAò>3ò(+ò(7òVò2#ò&
:ò	Aò
òòBò5ð ‡�×ÑØ"ñ ™#¨1Ô-Ñ/AÓ/CÓDØ2ð	
ñ 
˜!Ô	Ð.Ð/ðó	ñ2ó	ð2ð ‡�×Ñ˜¨#¨|¸]Ð)KÓLñ	#ó Mð	#ò(ð8 ‡�×ÑØ"à	Ð7¸Ð<Ø	Ð6Ñ8PÐQðóñ,óð,ð ‡�×Ñ˜ d¨E ]Ó3ñ:ó 4ð:ó7r-   