U
    ½mœd8U  ã                   @   sš  d dl Z d dlZd dlmZ d dlZd dlZd dlZd dl	m
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 d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dlm"Z" d dl#Z#G dd„ deƒZ$G dd„ deƒZ%G dd„ deƒZ&G dd„ deƒZ'G dd„ deƒZ(G dd„ de'ƒZ)G dd„ de'e(ƒZ*G dd „ d e*ƒZ+G d!d"„ d"eƒZ,G d#d$„ d$eƒZ-G d%d&„ d&ƒZ.G d'd(„ d(eƒZ/d)d*„ Z0d+d,„ Z1d-d.„ Z2d/d0„ Z3d1d2„ Z4d3d4„ Z5d5d6„ Z6d7d8„ Z7d9d:„ Z8d;d<„ Z9d=d>„ Z:d?d@„ Z;dAdB„ Z<dCdD„ Z=dEdF„ Z>ej? @dGedHd dI�ejAd dJ�fedHd dI�ejBd dJ�fg¡dKdL„ ƒZCdMdN„ ZDdOdP„ ZEG dQdR„ dReƒZFdSZGdTdU„ ZHG dVdW„ dWeƒZIdXdY„ ZJdZd[„ ZKG d\d]„ d]ƒZLG d^d_„ d_eLeƒZMd`da„ ZNdbdc„ ZOG ddde„ deeƒZPeeQdf�dgdh„ ƒZRdidj„ ZSdkdl„ ZTdmdn„ ZUdodp„ ZVdqdr„ ZWdsdt„ ZXdudv„ ZYdwdx„ ZZG dydz„ dzƒZ[G d{d|„ d|e[eƒZ\ej? @d}eƒ e\ƒ g¡d~d„ ƒZ]d€d�„ Z^dS )‚é    N)Úassert_array_equal)Úassert_no_warnings)Úignore_warnings)ÚBaseEstimatorÚcloneÚis_classifier)ÚSVC)ÚStandardScaler)Ú_get_output_config)ÚPipeline)ÚGridSearchCV)ÚDecisionTreeClassifier)ÚDecisionTreeRegressor)Údatasets)ÚTransformerMixin)ÚMockDataFrame)Úconfig_contextc                   @   s   e Zd Zddd„ZdS )ÚMyEstimatorr   Nc                 C   s   || _ || _d S ©N)Úl1Úempty)Úselfr   r   © r   úP/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/sklearn/tests/test_base.pyÚ__init__#   s    zMyEstimator.__init__)r   N©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   "   s   r   c                   @   s   e Zd Zddd„ZdS )ÚKNc                 C   s   || _ || _d S r   )ÚcÚd)r   r    r!   r   r   r   r   )   s    z
K.__init__)NNr   r   r   r   r   r   (   s   r   c                   @   s   e Zd Zddd„ZdS )ÚTNc                 C   s   || _ || _d S r   )ÚaÚb)r   r#   r$   r   r   r   r   /   s    z
T.__init__)NNr   r   r   r   r   r"   .   s   r"   c                   @   s   e Zd Zdd„ ZdS )ÚNaNTagc                 C   s   ddiS )NÚ	allow_nanTr   ©r   r   r   r   Ú
_more_tags5   s    zNaNTag._more_tagsN©r   r   r   r(   r   r   r   r   r%   4   s   r%   c                   @   s   e Zd Zdd„ ZdS )ÚNoNaNTagc                 C   s   ddiS ©Nr&   Fr   r'   r   r   r   r(   :   s    zNoNaNTag._more_tagsNr)   r   r   r   r   r*   9   s   r*   c                   @   s   e Zd Zdd„ ZdS )ÚOverrideTagc                 C   s   ddiS r+   r   r'   r   r   r   r(   ?   s    zOverrideTag._more_tagsNr)   r   r   r   r   r,   >   s   r,   c                   @   s   e Zd Zdd„ ZdS )ÚDiamondOverwriteTagc                 C   s   t ƒ S r   )Údictr'   r   r   r   r(   D   s    zDiamondOverwriteTag._more_tagsNr)   r   r   r   r   r-   C   s   r-   c                   @   s   e Zd ZdS )ÚInheritDiamondOverwriteTagN©r   r   r   r   r   r   r   r/   H   s   r/   c                   @   s$   e Zd ZdZe dg¡fdd„ZdS )ÚModifyInitParamsz_Deprecated behavior.
    Equal parameters but with a type cast.
    Doesn't fulfill a is a
    r   c                 C   s   |  ¡ | _d S r   )Úcopyr#   ©r   r#   r   r   r   r   R   s    zModifyInitParams.__init__N)r   r   r   Ú__doc__ÚnpÚarrayr   r   r   r   r   r1   L   s   r1   c                   @   s   e Zd ZdZddd„ZdS )ÚBuggyz9A buggy estimator that does not set its parameters right.Nc                 C   s
   d| _ d S )Né   ©r#   r3   r   r   r   r   Y   s    zBuggy.__init__)N©r   r   r   r4   r   r   r   r   r   r7   V   s   r7   c                   @   s(   e Zd Zdd„ Zddd„Zd	dd„ZdS )
ÚNoEstimatorc                 C   s   d S r   r   r'   r   r   r   r   ^   s    zNoEstimator.__init__Nc                 C   s   | S r   r   ©r   ÚXÚyr   r   r   Úfita   s    zNoEstimator.fitc                 C   s   d S r   r   ©r   r=   r   r   r   Úpredictd   s    zNoEstimator.predict)NN)N)r   r   r   r   r?   rA   r   r   r   r   r;   ]   s   
r;   c                   @   s   e Zd ZdZdd„ ZdS )ÚVargEstimatorz-scikit-learn estimators shouldn't have vargs.c                 G   s   d S r   r   )r   Zvargsr   r   r   r   k   s    zVargEstimator.__init__Nr:   r   r   r   r   rB   h   s   rB   c                  C   sn   ddl m} m} | |dd�}t|ƒ}||k	s0t‚| ¡ | ¡ ksDt‚| |t d¡d�}t|ƒ}||k	sjt‚d S )Nr   ©Ú	SelectFprÚ	f_classifçš™™™™™¹?©Úalpha)é
   é   )Úsklearn.feature_selectionrD   rE   r   ÚAssertionErrorÚ
get_paramsr5   Zzeros©rD   rE   ÚselectorZnew_selectorr   r   r   Ú
test_clones   s    rP   c                  C   s<   ddl m} m} | |dd�}d|_t|ƒ}t|dƒr8t‚d S )Nr   rC   rF   rG   ÚtestÚown_attribute)rK   rD   rE   rR   r   ÚhasattrrL   rN   r   r   r   Útest_clone_2…   s
    rT   c               	   C   sš   t ƒ } d| _t t¡� t| ƒ W 5 Q R X tƒ }t t¡� t|ƒ W 5 Q R X tƒ }t t¡� t|ƒ W 5 Q R X t	ƒ }t t¡� t|ƒ W 5 Q R X d S )NrJ   )
r7   r#   ÚpytestÚraisesÚRuntimeErrorr   r;   Ú	TypeErrorrB   r1   )ZbuggyZno_estimatorZvarg_estÚestr   r   r   Útest_clone_buggy“   s    rZ   c                  C   s^   t t g ¡d�} t| ƒ}t| j|jƒ t t t dgg¡¡d�} t| ƒ}t| jj|jjƒ d S )N©r   r   )	r   r5   r6   r   r   r   ÚspZ
csr_matrixÚdata©ÚclfZclf2r   r   r   Útest_clone_empty_array§   s    r`   c                  C   s(   t tjd�} t| ƒ}| j|jks$t‚d S ©Nr[   )r   r5   Únanr   r   rL   r^   r   r   r   Útest_clone_nan²   s    rc   c                  C   sj   dd„ t tƒD ƒ} | D ]N}|t d¡ƒ}t|d�}t|ƒ}|jj|jjksNt‚t	|j 
¡ |j 
¡ ƒ qd S )Nc                 S   s    g | ]}|  d ¡rtt|ƒ‘qS )Z_matrix)ÚendswithÚgetattrr\   )Ú.0Únamer   r   r   Ú
<listcomp>»   s    
 z.test_clone_sparse_matrices.<locals>.<listcomp>é   r[   )Údirr\   r5   Úeyer   r   r   Ú	__class__rL   r   Ztoarray)Zsparse_matrix_classesÚclsZsparse_matrixr_   Z
clf_clonedr   r   r   Útest_clone_sparse_matricesº   s    ÿ
rn   c                  C   s&   t t d�} t| ƒ}| j|jks"t‚d S ra   )r   r   r   rL   r^   r   r   r   Útest_clone_estimator_typesÇ   s    
ro   c               	   C   s*   d} t jt| d�� ttƒ W 5 Q R X d S )Nz8You should provide an instance of scikit-learn estimator©Úmatch)rU   rV   rX   r   r   )Úmsgr   r   r   Ú%test_clone_class_rather_than_instanceÐ   s    rs   c                  C   sT   t ƒ } t| ƒ ttƒ tƒ ƒ}t|ƒdks,t‚tdgd d�}tt|ƒƒdksPt‚d S )NzT(a=K(), b=K())Zlong_paramsiè  r9   iå  )r   Úreprr"   r   rL   Úlen)Úmy_estimatorrQ   Zsome_estr   r   r   Ú	test_reprØ   s    rw   c                  C   s   t ƒ } t| ƒ d S r   )r   Ústr)rv   r   r   r   Útest_strã   s    ry   c               	   C   sv   t tƒ tƒ} d| jdd�ks t‚d| jdd�ks4t‚| jdd� | jjdksPt‚t t	¡� | jdd� W 5 Q R X d S )NÚa__dT)ÚdeepFrJ   )rz   )Za__a)
r"   r   rM   rL   Ú
set_paramsr#   r!   rU   rV   Ú
ValueError)rQ   r   r   r   Útest_get_paramsé   s    r~   c                  C   sj   t ƒ } t| ƒst‚tt| dddgiƒƒs,t‚ttd| fgƒƒsBt‚ttdt| dddgiƒfgƒƒsft‚d S )NÚCrF   r8   ÚsvcZsvc_cv)r   r   rL   r   r   )r€   r   r   r   Útest_is_classifierö   s
    r�   c               	   C   sX   t dtƒ fgƒ} t t¡� | jdd� W 5 Q R X t t¡� | jdd� W 5 Q R X d S )Nr€   T)Zsvc__stupid_param)Zsvm__stupid_param)r   r   rU   rV   r}   r|   )r_   r   r   r   Útest_set_paramsþ   s
    r‚   c                     sR   G ‡ fdd„dt ƒ} dddœ‰ td| ƒ fgƒt| ƒ i ƒfD ]}|jddd� q:d S )Nc                       s   e Zd Z‡ ‡fdd„Z‡  ZS )z?test_set_params_passes_all_parameters.<locals>.TestDecisionTreec                    s   t ƒ jf |Ž |ˆkst‚| S r   )Úsuperr|   rL   )r   Úkwargs)rl   Úexpected_kwargsr   r   r|     s    zJtest_set_params_passes_all_parameters.<locals>.TestDecisionTree.set_params)r   r   r   r|   Ú__classcell__r   ©r…   )rl   r   ÚTestDecisionTree  s   rˆ   ri   rJ   )Ú	max_depthZmin_samples_leafÚ	estimator)Zestimator__max_depthZestimator__min_samples_leaf)r   r   r   r|   )rˆ   rY   r   r‡   r   Ú%test_set_params_passes_all_parameters  s    

þr‹   c                  C   s0   t tƒ i ƒ} | jtƒ dd� | jjdks,t‚d S )Ng      E@)rŠ   Zestimator__C)r   r   r|   r   rŠ   r   rL   )Zgscvr   r   r   Ú$test_set_params_updates_valid_params#  s    rŒ   ztree,datasetrJ   )r‰   Úrandom_state)r�   c           	      C   sh   t j d¡}|\}}|  ||¡ |jddt|ƒd�}|  ||¡}| j|||d�}d}||ksdt|ƒ‚d S )Nr   r8   rI   )Úsize)Úsample_weightz5Unweighted and weighted scores are unexpectedly equal)r5   ÚrandomZRandomStater?   Úrandintru   ÚscorerL   )	ÚtreeZdatasetÚrngr=   r>   r�   Zscore_unweightedZscore_weightedrr   r   r   r   Útest_score_sample_weight+  s    r•   c                  C   sb   G dd„ dt tƒ} t d¡}t|ƒ}| |dd�}t|ƒ}|j|jkj ¡ sNt	‚|j
|j
ks^t	‚d S )Nc                   @   s,   e Zd ZdZd
dd„Zddd„Zdd	„ ZdS )z3test_clone_pandas_dataframe.<locals>.DummyEstimatora,  This is a dummy class for generating numerical features

        This feature extractor extracts numerical features from pandas data
        frame.

        Parameters
        ----------

        df: pandas data frame
            The pandas data frame parameter.

        Notes
        -----
        Nr8   c                 S   s   || _ || _d S r   )ÚdfÚscalar_param)r   r–   r—   r   r   r   r   W  s    z<test_clone_pandas_dataframe.<locals>.DummyEstimator.__init__c                 S   s   d S r   r   r<   r   r   r   r?   [  s    z7test_clone_pandas_dataframe.<locals>.DummyEstimator.fitc                 S   s   d S r   r   r@   r   r   r   Ú	transform^  s    z=test_clone_pandas_dataframe.<locals>.DummyEstimator.transform)Nr8   )N)r   r   r   r4   r   r?   r˜   r   r   r   r   ÚDummyEstimatorG  s   

r™   rI   r8   )r—   )r   r   r5   Zaranger   r   r–   ÚvaluesÚallrL   r—   )r™   r!   r–   ÚeZcloned_er   r   r   Útest_clone_pandas_dataframeF  s    
r�   c                  C   sl   t  ¡ } tƒ  | j| j¡}t |¡}d|ks0t‚t	tj
|ƒ}| | j| j¡}| | j| j¡}||ksht‚d S )Nó   version)r   Ú	load_irisr   r?   r]   ÚtargetÚpickleÚdumpsrL   r   Úloadsr’   )Úirisr“   Ztree_pickleZtree_restoredZscore_of_originalZscore_of_restoredr   r   r   Ú?test_pickle_version_warning_is_not_raised_with_matching_versionl  s    
r¥   c                   @   s   e Zd Zdd„ ZdS )ÚTreeBadVersionc                 C   s   t | j ¡ dd�S )NÚ	something)Ú_sklearn_version)r.   Ú__dict__Úitemsr'   r   r   r   Ú__getstate__z  s    zTreeBadVersion.__getstate__N©r   r   r   r«   r   r   r   r   r¦   y  s   r¦   z´Trying to unpickle estimator {estimator} from version {old_version} when using version {current_version}. This might lead to breaking code or invalid results. Use at your own risk.c               	   C   s^   t  ¡ } tƒ  | j| j¡}t |¡}tj	ddt
jd�}tjt|d�� t |¡ W 5 Q R X d S )Nr¦   r§   ©rŠ   Zold_versionÚcurrent_versionrp   )r   rŸ   r¦   r?   r]   r    r¡   r¢   Úpickle_error_messageÚformatÚsklearnÚ__version__rU   ÚwarnsÚUserWarningr£   )r¤   r“   Ztree_pickle_otherÚmessager   r   r   Ú<test_pickle_version_warning_is_issued_upon_different_version‡  s    
ýr¶   c                   @   s   e Zd Zdd„ ZdS )ÚTreeNoVersionc                 C   s   | j S r   )r©   r'   r   r   r   r«   •  s    zTreeNoVersion.__getstate__Nr¬   r   r   r   r   r·   ”  s   r·   c               	   C   sj   t  ¡ } tƒ  | j| j¡}t |¡}d|ks0t‚t	j
ddtjd�}tjt|d�� t |¡ W 5 Q R X d S )Nrž   r·   zpre-0.18r­   rp   )r   rŸ   r·   r?   r]   r    r¡   r¢   rL   r¯   r°   r±   r²   rU   r³   r´   r£   )r¤   r“   Útree_pickle_noversionrµ   r   r   r   ÚDtest_pickle_version_warning_is_issued_when_no_version_info_in_pickle™  s    
ýr¹   c                  C   sN   t  ¡ } tƒ  | j| j¡}t |¡}ztj}dt_t	tj
|ƒ W 5 |t_X d S )NÚ
notsklearn)r   rŸ   r·   r?   r]   r    r¡   r¢   r   r   r£   )r¤   r“   r¸   Zmodule_backupr   r   r   ÚCtest_pickle_version_no_warning_is_issued_with_non_sklearn_estimatorª  s    
r»   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDontPickleAttributeMixinc                 C   s   | j  ¡ }d |d< |S ©NÚ_attribute_not_pickled©r©   r2   ©r   r]   r   r   r   r«   ·  s    
z%DontPickleAttributeMixin.__getstate__c                 C   s   d|d< | j  |¡ d S )NTÚ	_restored)r©   Úupdate)r   Ústater   r   r   Ú__setstate__¼  s    z%DontPickleAttributeMixin.__setstate__N)r   r   r   r«   rÄ   r   r   r   r   r¼   ¶  s   r¼   c                   @   s   e Zd Zddd„ZdS )ÚMultiInheritanceEstimatorri   c                 C   s   || _ d | _d S r   ©Úattribute_pickledr¾   ©r   rÇ   r   r   r   r   Â  s    z"MultiInheritanceEstimator.__init__N)ri   r   r   r   r   r   rÅ   Á  s   rÅ   c                  C   sJ   t ƒ } d| _t | ¡}t |¡}|jdks.t‚|jd ks<t‚|jsFt‚d S ©Nú$this attribute should not be pickledri   )rÅ   r¾   r¡   r¢   r£   rÇ   rL   rÁ   ©rŠ   Ú
serializedZestimator_restoredr   r   r   Ú3test_pickling_when_getstate_is_overwritten_by_mixinÇ  s    

rÍ   c               	   C   s~   zltƒ }d}||_t |ƒj} dt |ƒ_| ¡ }|d ddœks@t‚d|d< | |¡ |jdks`t‚|jsjt‚W 5 | t |ƒ_X d S )NrÊ   rº   ri   )r¾   rÇ   é   rÇ   )	Útyper   rÅ   r¾   r«   rL   rÄ   rÇ   rÁ   )Úold_modrŠ   ÚtextrÌ   r   r   r   ÚFtest_pickling_when_getstate_is_overwritten_by_mixin_outside_of_sklearnÒ  s    


rÒ   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚSingleInheritanceEstimatorri   c                 C   s   || _ d | _d S r   rÆ   rÈ   r   r   r   r   æ  s    z#SingleInheritanceEstimator.__init__c                 C   s   | j  ¡ }d |d< |S r½   r¿   rÀ   r   r   r   r«   ê  s    
z'SingleInheritanceEstimator.__getstate__N)ri   )r   r   r   r   r«   r   r   r   r   rÓ   å  s   
rÓ   )Úcategoryc                  C   s@   t ƒ } d| _t | ¡}t |¡}|jdks.t‚|jd ks<t‚d S rÉ   )rÓ   r¾   r¡   r¢   r£   rÇ   rL   rË   r   r   r   ÚCtest_pickling_works_when_getstate_is_overwritten_in_the_child_classð  s    

rÕ   c                  C   sr   t ƒ } tƒ }|  ¡ d st‚| ¡ d r,t‚tƒ }| ¡ d rBt‚tƒ }| ¡ d sXt‚tƒ }| ¡ d snt‚d S )Nr&   )r%   r*   Z	_get_tagsrL   r,   r-   r/   )Znan_tag_estZno_nan_tag_estZredefine_tags_estZdiamond_tag_estZinherit_diamond_tag_estr   r   r   Útest_tag_inheritanceû  s    rÖ   c               	   C   s@   G dd„ dt ƒ} | ƒ }d}tjt|d�� | ¡  W 5 Q R X d S )Nc                   @   s    e Zd Zddd„Zddd„ZdS )	z<test_raises_on_get_params_non_attribute.<locals>.MyEstimatorri   c                 S   s   d S r   r   )r   Úparamr   r   r   r     s    zEtest_raises_on_get_params_non_attribute.<locals>.MyEstimator.__init__Nc                 S   s   | S r   r   r<   r   r   r   r?     s    z@test_raises_on_get_params_non_attribute.<locals>.MyEstimator.fit)ri   )N)r   r   r   r   r?   r   r   r   r   r     s   
r   z-'MyEstimator' object has no attribute 'param'rp   )r   rU   rV   ÚAttributeErrorrM   )r   rY   rr   r   r   r   Ú'test_raises_on_get_params_non_attribute  s
    rÙ   c               	   C   s`   t ƒ } |  ¡ }d|kst‚d|ks&t‚tdd��& |  ¡ }d|ksFt‚d|ksRt‚W 5 Q R X d S )Nz
text/plainz	text/htmlrÑ   ©Údisplay)r   Ú_repr_mimebundle_rL   r   )r“   Úoutputr   r   r   Útest_repr_mimebundle_  s    rÞ   c               
   C   sZ   t ƒ } |  ¡ }d|kst‚tdd��, d}tjt|d�� |  ¡ }W 5 Q R X W 5 Q R X d S )Nz<style>rÑ   rÚ   z _repr_html_ is only defined whenrp   )r   Z_repr_html_rL   r   rU   rV   rØ   )r“   rÝ   rr   r   r   r   Útest_repr_html_wraps)  s    rß   c               	   C   sf   t ƒ } dddgdddgg}| j|dd� | jdks6t‚d	}tjt|d
�� | jddd� W 5 Q R X dS )z>Check that `_check_n_features` validates data when reset=Falser8   rJ   é   rÎ   ri   é   T©ÚresetzHX does not contain any features, but MyEstimator is expecting 3 featuresrp   ú	invalid XFN)r   Ú_check_n_featuresÚn_features_in_rL   rU   rV   r}   )rY   ZX_trainrr   r   r   r   Útest_n_features_in_validation6  s    rç   c                  C   s4   t ƒ } | jddd� t| dƒr"t‚| jddd� dS )z]Check that `_check_n_features` does not validate data when
    n_features_in_ is not defined.rä   Trâ   ræ   FN)r   rå   rS   rL   )rY   r   r   r   Ú test_n_features_in_no_validationC  s    rè   c               
   C   sþ  t  d¡} t ¡ }|j}| j||jd�}G dd„ dttƒ}|ƒ  	|¡}t
|j|jƒ | 	|¡ t|dƒrlt‚| 	|¡ d}| j||jddd… d�}t jt|d	�� | |¡ W 5 Q R X d
}t jt|d	�� | |¡ W 5 Q R X d}|ƒ  	|¡}t jt|d	�� | |¡ W 5 Q R X |  |¡}|ƒ }t ¡ � t dt¡ | 	|¡ W 5 Q R X ||g}	|	D ]0}
t ¡ � t dt¡ | |
¡ W 5 Q R X �qZ| j|ddddgd�}|ƒ }t d¡}t jt|d	�� | 	|¡ W 5 Q R X t jt|d	�� | |¡ W 5 Q R X dS )z;Check that feature_name_in are recorded by `_validate_data`Úpandas)Úcolumnsc                   @   s   e Zd Zddd„Zdd„ ZdS )z.test_feature_names_in.<locals>.NoOpTransformerNc                 S   s   |   |¡ | S r   ©Z_validate_datar<   r   r   r   r?   W  s    
z2test_feature_names_in.<locals>.NoOpTransformer.fitc                 S   s   | j |dd� |S )NFrâ   rë   r@   r   r   r   r˜   [  s    z8test_feature_names_in.<locals>.NoOpTransformer.transform)N)r   r   r   r?   r˜   r   r   r   r   ÚNoOpTransformerV  s   
rì   Úfeature_names_in_z5The feature names should match those that were passedNéÿÿÿÿrp   zVX does not have valid feature names, but NoOpTransformer was fitted with feature nameszIX has feature names, but NoOpTransformer was fitted without feature namesÚerrorr#   r$   r8   rJ   a™  Feature names are only supported if all input features have string names, but your input has ['int', 'str'] as feature name / column name types. If you want feature names to be stored and validated, you must convert them all to strings, by using X.columns = X.columns.astype(str) for example. Otherwise you can remove feature / column names from your input data, or convert them all to a non-string data type.)rU   Zimportorskipr   rŸ   r]   Z	DataFrameZfeature_namesr   r   r?   r   rí   rê   rS   rL   rV   r}   r˜   r³   r´   ÚwarningsÚcatch_warningsÚsimplefilterÚreÚescaperX   )Úpdr¤   ZX_npr–   rì   Ztransrr   Zdf_badZdf_int_namesZXsr=   Zdf_mixedr   r   r   Útest_feature_names_inO  sR    



ÿ


ÿrö   c                  C   s:   t ƒ jdd�} td| ƒ}t| ƒ}td|ƒ}||ks6t‚dS )z-Check that clone keeps the set_output config.ré   )r˜   r˜   N)r	   Z
set_outputr
   r   rL   )ÚssÚconfigZss_cloneZconfig_cloner   r   r   Útest_clone_keeps_output_config�  s
    

rù   c                   @   s   e Zd ZdS )Ú_EmptyNr0   r   r   r   r   rú   ¨  s   rú   c                   @   s   e Zd ZdS )ÚEmptyEstimatorNr0   r   r   r   r   rû   ¬  s   rû   rŠ   c                 C   s4   |   ¡ }dtji}||kst‚t t tƒ ¡¡ dS )zàCheck that ``__getstate__`` returns an empty ``dict`` with an empty
    instance.

    Python 3.11+ changed behaviour by returning ``None`` instead of raising an
    ``AttributeError``. Non-regression test for gh-25188.
    r¨   N)r«   r±   r²   rL   r¡   r£   r¢   r   )rŠ   rÃ   Úexpectedr   r   r   Ú"test_estimator_empty_instance_dict°  s    
rý   c               	   C   sr   G dd„ dƒ} G dd„ dt | ƒ}d}tjt|d�� |ƒ  ¡  W 5 Q R X tjt|d�� t |ƒ ¡ W 5 Q R X dS )z:Using a `BaseEstimator` with `__slots__` is not supported.c                   @   s   e Zd ZdZdS )zDtest_estimator_getstate_using_slots_error_message.<locals>.WithSlots)ÚxN)r   r   r   Ú	__slots__r   r   r   r   Ú	WithSlotsÃ  s   r   c                   @   s   e Zd ZdS )zDtest_estimator_getstate_using_slots_error_message.<locals>.EstimatorNr0   r   r   r   r   Ú	EstimatorÆ  s   r  zRYou cannot use `__slots__` in objects inheriting from `sklearn.base.BaseEstimator`rp   N)r   rU   rV   rX   r«   r¡   r¢   )r   r  rr   r   r   r   Ú1test_estimator_getstate_using_slots_error_messageÀ  s    ÿr  )_ró   Únumpyr5   Zscipy.sparseÚsparser\   rU   rð   r±   Zsklearn.utils._testingr   r   r   Zsklearn.baser   r   r   Zsklearn.svmr   Zsklearn.preprocessingr	   Zsklearn.utils._set_outputr
   Zsklearn.pipeliner   Zsklearn.model_selectionr   Zsklearn.treer   r   r   r   Zsklearn.utils._mockingr   r   r¡   r   r   r"   r%   r*   r,   r-   r/   r1   r7   r;   rB   rP   rT   rZ   r`   rc   rn   ro   rs   rw   ry   r~   r�   r‚   r‹   rŒ   ÚmarkZparametrizeZmake_classificationZmake_regressionr•   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  r   r   r   r   Ú<module>   s°   
	

þ

þûþ
&ÿ	

N
