Ë
    8Ò^j1\  ã            
       óÒ  — 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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" 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Z2Z4d„ Z5d„ Z6ejn                  jq                  dd„ e9dfd„ e:dfg«      d„ «       Z;ejn                  jq                  dd de2jx                  d   dg«      d „ «       Z=ejn                  jq                  dd!„ d"„ d#„ g«      d$„ «       Z>ejn                  jq                  dd%„ dg«      d&„ «       Z?ejn                  jq                  dd'„ d(„ d)„ g«      d*„ «       Z@ G d+„ d,e
«      ZAd-„ ZBd.„ ZCd/„ ZDe,d0„ «       ZEd1„ ZFejn                  jq                  d2 ed3d4¬5«       ed4¬6«       edd4¬7«       edgd4¬7«      g«      d8„ «       ZGe,d9„ «       ZHd:„ ZId;„ ZJd<„ ZKd=„ ZLd>„ ZMd?„ ZNd@„ ZOdA„ ZPdB„ ZQdC„ ZRdD„ ZSdE„ ZTejn                  jq                  dF e$ ed ¬6«       e!«       «      dGf ed ¬6«      eTfg«      dH„ «       ZUejn                  jq                  dIeeeg«      dJ„ «       ZVdK„ ZWejn                  jq                  dLdMdNg«      dO„ «       ZXdP„ ZYejn                  jq                  dQdR„ dS„ g«      dT„ «       ZZy)Ué    N)ÚMock)Údatasets)ÚBaseEstimator)ÚCCAÚPLSCanonicalÚPLSRegression)Úmake_friedman1Úmake_regression)ÚPCA)ÚHistGradientBoostingClassifierÚRandomForestClassifier)ÚNotFittedError)ÚSelectFromModel)Ú
ElasticNetÚElasticNetCVÚLassoÚLassoCVÚLinearRegressionÚLogisticRegressionÚ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     €úz/var/www/ramen.bs-engineer-server.com/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__3   r,   r-   r.   r3   s   @r+   r9   r9   2   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   H   s6   € ä
 Ó
"€CÜ!¨CÔ0€KØ‡O�O”Dœ!ÔØ× Ñ  CÑ'Ð'Ñ'r-   zmax_features, err_type, err_msgc                  ó   — y)Ng      ø?© ©ÚXs    r+   ú<lambda>r\   T   ó   � r-   z3max_features must be an instance of int, not float.c                  ó   — y)NéÿÿÿÿrY   rZ   s    r+   r\   r\   Y   r]   r-   zmax_features ==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   )re   Úerr_typeÚerr_msgrN   rV   s        r+   Útest_max_features_errorrn   P   sh   € ô  �i‰i˜Ó €GÜ
 ¨a¸aÔ
@€Cä!Ø L¼R¿V¹V¸Gô€Kô 
�‰�x wÔ	/ñ !Ø�‰œœaÔ ÷!÷ !ñ !ús   ÁA;Á;Bre   é   é   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.ra   r   rb   rd   Nrp   Úmax_features_)
r   r   rj   rk   Úfit_transformrH   rI   rr   ÚshapeÚhasattr©re   rN   rV   ÚX_transs       r+   Ú"test_inferred_max_features_integerrx   j   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©Nrp   rY   rZ   s    r+   r\   r\   |   r]   r-   c                 ó    — | j                   d   S rz   ©rt   rZ   s    r+   r\   r\   |   s   € ˜AŸG™G A™J€ r-   c                 ó4   — t        | j                  d   d«      S ©Nrp   i'  ©Úminrt   rZ   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.ra   r   rb   rd   rp   N)	r   r   rj   rk   rs   rH   rI   rr   rt   rv   s       r+   Ú#test_inferred_max_features_callabler‚   z   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   ro   )ÚroundÚlenrZ   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   rp   r   rp   ra   r   rb   rd   rp   )r   r   rj   rk   rs   rt   rr   )re   r[   rI   rN   rV   rw   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   rZ   s    r+   r\   r\   �   s   € Œs�1—7‘7˜1‘:˜uÓ%€ r-   c                 ó    — | j                   d   S rz   r|   rZ   s    r+   r\   r\   �   s   € °·±¸±€ r-   c                  ó   — yrz   rY   rZ   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   rb   )Úside_effectrd   N)	r   r   r   rj   rk   rs   rH   rI   Úassert_called_with)re   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•   )rj   Úarrayr–   Úfeature_importances_)r(   r[   rI   s      r+   rG   zFixedImportanceEstimator.fit¬   s   € Ü$&§H¡H¨T×-=Ñ-=Ó$>ˆÕ!r-   r•   )r/   r0   r1   r—   rG   rY   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   rp   r�   rb   ©rS   rF   rd   gš™™™™™™?é*   ©r?   rB   rR   Ú	mergesort)Úkind)r   Úmake_classificationrt   r   r   rj   rk   rs   r   r   ÚabsÚ
estimator_Úcoef_ÚargsortÚrange)r[   rI   re   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ž   rp   )
é   r¹   r¹   r¹   r�   r�   r�   ro   ro   rp   )re   rF   )r   r©   rt   rj   r™   r®   r   r“   rk   rs   ÚwhereÚ_get_support_maskr   Úarange)r[   rI   re   Ú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�   rb   rd   g{®Gáz¤?r¤   rp   )r   r©   r   r   rj   rk   rs   rt   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�   rb   ÚmeanÚmedianr¤   rš   rp   )r   r©   r   Úziprj   rÈ   rÉ   r   rG   ru   r«   rM   rt   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ž   rp   )rB   Úfit_interceptrR   )Úsample_weight)
r   r©   rj   Úonesrt   r   r   rG   r»   Úall)r[   rI   rÑ   rU   rV   ÚmaskÚweighted_maskÚreweighted_masks           r+   Útest_sample_weightr×   (  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   rj   rª   r«   r¬   r   )rS   r[   rI   rV   r¾   rÔ   s         r+   Útest_coef_default_thresholdrÜ   D  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É   rp   ro   )rS   rF   Ú
norm_orderr¬   )ÚaxisÚord)r   r©   r   rÊ   rj   rÈ   rÉ   rk   r   rG   ru   r«   rM   rt   ÚlinalgÚnormr¬   r   )
r[   rI   rU   rF   rË   ÚorderrV   r¾   r–   rÌ   s
             r+   Útest_2d_coefrå   `  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 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   Fra   Úpa1)rB   rA   r@   rC   Úlearning_raterR   ©ÚclassesÚpartial_fit)r   r   rë   rH   rI   rj   Úuniquer«   rM   rG   ÚvstackÚconcatenater   r   ru   )rU   rV   Ú	old_modelÚ	new_modelÚX_transforms        r+   Útest_partial_fitrò   €  sñ   € Ü
Ø °°tÈ5ô€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.rf   )r?   r@   rA   rC   )r   r   rG   rH   rI   rM   r   r«   rJ   rK   r   rë   r   r¬   )rN   rO   rñ   rm   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`.ra   r   rb   Tc                 ó    — | j                   d   S rz   r|   rZ   s    r+   r\   z*test_prefit_max_features.<locals>.<lambda>Î  s   € È1Ï7É7ÐSTÉ:€ r-   ©rù   re   z[When `prefit=True` and `max_features` is a callable, call `fit` before calling `transform`.rf   Ng      @)re   z!`max_features` must be an integer)r   rG   rH   rI   r   rJ   rK   r   rM   rõ   rL   )rS   rO   rm   re   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d¬«      \  } }t        g d¢d¬«      }t        |¬«      }|j                  | |«       |j	                  «       }|j                  «       }t        j                  t        | j                  d   «      D �cg c]  }d	|› �‘Œ	 c}«      |   }t        ||«       y
c c}w )zWCheck if ElasticNetCV works with a list of floats.

    Non-regression test for #30936.ra   r�   r   )r    r¡   rB   )g      Ð?ç      à?g      è?rÙ   rR   rp   ÚxN)r
   r   r   rG   Úget_feature_names_outÚget_supportrj   r™   r®   rt   r   )r[   rI   rS   ÚselectorÚ	names_outrÔ   ÚiÚexpecteds           r+   Ú'test_get_feature_names_out_elasticnetcvr  á  s—   € ô  a°qÀqÔI�D€A€qÜÒ&7ÀaÔH€IÜ¨Ô3€HØ‡L�L��AÔà×.Ñ.Ó0€IØ×ÑÓ!€DÜ�x‰x¬%°·±¸±
Ó*;Ö< Q˜1˜Q˜CšÒ<Ó=¸dÑC€HÜ�y (Õ+ùò =s   ÂB+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.ro   r   rb   Trp   rý   zThis z_ instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.rf   NÚx3)r   rG   rH   rI   r   Útyper/   rJ   rK   r   r  )rN   rO   Únamerm   Ú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   rb   z0.5*meanrE   r   )
r   r   rG   rH   rI   rM   rj   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 * meanrp   )r   r   rG   rH   rI   rM   rF   rt   )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   rp   )	r   r   rH   Úcopyrj   Únanrk   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   rb   rR   rp   )
r9   rH   r  r   rG   rI   rj   r  rk   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  7  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•   )rj   rª   Úexplained_variance_)Úpca_estimators    r+   Ú_pca_importancesr!  A  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_getterrp   )r   rG   rH   rI   rM   rt   )rS   r#  r  s      r+   Útest_importance_getterr$  E  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   rp   )Ún_componentsr   N)r	   r   r   rG   Úscore)r%  r[   rI   rS   rO   s        r+   Útest_select_from_model_plsr)  W  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 rz   )rj   r¼   rt   )rS   r[   s    €r+   r#  zHtest_estimator_does_not_support_feature_names.<locals>.importance_getterm  s   ø€ Ü�y‰y˜Ÿ™ ™Ó$Ð$r-   )r#  Úerrorrp   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_namesr=  d  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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¹   )rS   re   )r   rp   ro   ré   r5  N)rJ   r1  r   r2  r   r   rë   r   r5  r4  ru   )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'rf   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_errorrJ  �  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=Úfeature_importancec                 ó6   — | j                  «       j                  S r•   )Úsparsifyr¬   rR   s    r+   r\   r\   ¦  s   € ˜)×,Ñ,Ó.×4Ñ4€ r-   c                 óR   — | j                  «       j                  j                  «       S r•   )rM  r¬   ÚtocscrR   s    r+   r\   r\   §  s   € ˜)×,Ñ,Ó.×4Ñ4×:Ñ:Ó<€ r-   c                 ór  — t        t        «       | ¬«      }t        t        «       ¬«      }|j                  t        t        «       |j                  t        t        «       t        |j                  «       |j                  «       «       t        |j                  t        «      |j                  t        «      «       y )N)rS   r#  rR   )	r   r   rG   rH   rI   r   r  r   rM   )rK  Úfrom_model_sparseÚfrom_model_denses      r+   Útest_feature_importance_sparserS  £  sŠ   € ô (Ü$Ó&Ð:LôÐô 'Ô1CÓ1EÔFÐà×Ñœ$¤Ô"Ø×ÑœœqÔ!äÐ(×4Ñ4Ó6Ð8H×8TÑ8TÓ8VÔWÜÐ%×/Ñ/´Ó5Ð7G×7QÑ7QÔRVÓ7WÕXr-   )[rh   r6  Úunittest.mockr   Únumpyrj   rJ   Úsklearnr   Úsklearn.baser   Úsklearn.cross_decompositionr   r   r   Úsklearn.datasetsr	   r
   Úsklearn.decompositionr   Úsklearn.ensembler   r   Úsklearn.exceptionsr   Úsklearn.feature_selectionr   Úsklearn.linear_modelr   r   r   r   r   r   r   Úsklearn.pipeliner   Úsklearn.svmr   Úsklearn.utils._testingr   r   r   r   r   r   r6   r9   r2  ÚirisrH   ÚtargetrI   rP   rW   ÚmarkÚparametrizeÚ	TypeErrorrL   rn   rt   rx   r‚   rˆ   r‘   r“   r·   rÀ   rÆ   rÍ   r×   rÜ   rå   rò   r÷   rú   rþ   r  r  r  r  r  r  r  r!  r$  r)  r=  r?  rJ  rS  rY   r-   r+   ú<module>rg     s~  ðÛ 	Û Ý ã Û å Ý &ß HÑ Hß <Ý %ß SÝ -Ý 5÷÷ ñ õ +Ý !÷õ ôˆ]ô ôˆ}ô ôÐ/ô ð €x×ÑÓ€Ø
�)‰)�T—[‘[€€€aò"ò(ð ‡�×ÑØ%ñ ØØAð	
ñ ØØð	
ðóñ!óð!ð ‡�×Ñ˜¨!¨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 ‡�×Ñ˜ d¨E ]Ó3ñ:ó 4ð:ò7ð( ‡�×ÑØá4Ù<ðóñ
Yóñ
Yr-   