U
    9%e_b                     @   s  d dl Z d dl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Zd dlmZmZ d dlmZ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 m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z(m)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.Z0G dd de0Z1G dd  d eZ2G d!d" d"eZ3G d#d$ d$Z4G d%d& d&eZ5d'd( Z6d)d* Z7d+d, Z8d-d. Z9d/d0 Z:d1d2 Z;d3d4 Z<d5d6 Z=d7d8 Z>d9d: Z?d;d< Z@d=d> ZAd?d@ ZBdAdB ZCdCdD ZDdEdF ZEejFGdGe dHd dIejHd dJfe!dHd dIejId dJfgdKdL ZJdMdN ZKdOdP ZLdQdR ZMG dSdT dTe ZNdUZOdVdW ZPG dXdY dYe ZQdZd[ ZRd\d] ZSG d^d_ d_ZTG d`da daeTeZUdbdc ZVddde ZWG dfdg dgeZXe)eYdhdidj ZZdkdl Z[dmdn Z\dodp Z]dqdr Z^dsdt Z_dudv Z`dwdx Zadydz Zbd{d| ZcG d}d~ d~ZdG dd dedeZeejFGde ee gdd Zfdd ZgdS )    N)assert_allclose)config_contextdatasets)BaseEstimatorTransformerMixincloneis_classifier)PCA)InconsistentVersionWarning)GridSearchCV)Pipeline)StandardScaler)SVC)DecisionTreeClassifierDecisionTreeRegressor)MockDataFrame)_get_output_config)assert_array_equalassert_no_warningsignore_warningsc                   @   s   e Zd ZdddZdS )MyEstimatorr   Nc                 C   s   || _ || _d S N)l1empty)selfr   r    r   V/var/www/html/Darija-Ai-API/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   r0   C   s   r0   c                   @   s   e Zd ZdS )InheritDiamondOverwriteTagNr   r    r!   r   r   r   r   r2   H   s   r2   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   r4   L   s   r4   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&   r6   r   r   r   r   Y   s    zBuggy.__init__)Nr   r    r!   r7   r   r   r   r   r   r:   V   s   r:   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   rB   rD   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   rE   h   s   rE   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_selectionrG   rH   r   AssertionError
get_paramsr8   ZzerosrG   rH   selectorZnew_selectorr   r   r   
test_clones   s    rS   c                  C   s<   ddl m} m} | |dd}d|_t|}t|dr8td S )Nr   rF   rI   rJ   testown_attribute)rN   rG   rH   rU   r   hasattrrO   rQ   r   r   r   test_clone_2   s
    rW   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 )NrM   )
r:   r&   pytestraisesRuntimeErrorr   r>   	TypeErrorrE   r4   )ZbuggyZno_estimatorZvarg_estestr   r   r   test_clone_buggy   s    r]   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   r8   r9   r   r   r   spZ
csr_matrixdataclfZclf2r   r   r   test_clone_empty_array   s    rc   c                  C   s(   t tjd} t| }| j|jks$td S Nr^   )r   r8   nanr   r   rO   ra   r   r   r   test_clone_nan   s    rf   c                  C   s*   dt  i} t| }| d |d k	s&td S )Nr&   )r   r   rO   )origZclonedr   r   r   test_clone_dict   s    
rh   c                     sn    fddt tD } | D ]N  td}t|d}t|}|jj|jjksRtt	|j
 |j
  qd S )Nc                    s0   g | ](}| d rttt|  tkr qS )Z_matrix)endswithtypegetattrr_   ).0nameclsr   r   
<listcomp>   s   
 z.test_clone_sparse_matrices.<locals>.<listcomp>   r^   )dirr_   r8   eyer   r   r   	__class__rO   r   Ztoarray)Zsparse_matrix_classesZsparse_matrixrb   Z
clf_clonedr   rn   r   test_clone_sparse_matrices   s    

ru   c                  C   s&   t t d} t| }| j|jks"td S rd   )r   r   r   rO   ra   r   r   r   test_clone_estimator_types   s    
rv   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)rX   rY   r[   r   r   )msgr   r   r   %test_clone_class_rather_than_instance   s    rz   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  r<   i  )r   reprr%   r"   rO   len)my_estimatorrT   Zsome_estr   r   r   	test_repr   s    r~   c                  C   s   t  } t|  d S r   )r   str)r}   r   r   r   test_str   s    r   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)deepFrM   )r   )Za__a)
r%   r"   rP   rO   
set_paramsr&   r$   rX   rY   
ValueError)rT   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CrI   r;   svcZsvc_cv)r   r   rO   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   rX   rY   r   r   )rb   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   rO   )r   kwargs)rt   expected_kwargsr   r   r     s    zJtest_set_params_passes_all_parameters.<locals>.TestDecisionTree.set_params)r   r    r!   r   __classcell__r   r   )rt   r   TestDecisionTree  s   r   rq   rM   )	max_depthZmin_samples_leaf	estimator)Zestimator__max_depthZestimator__min_samples_leaf)r   r   r   r   )r   r\   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   rO   )Zgscvr   r   r   $test_set_params_updates_valid_params,  s    r   ztree,datasetrM   )r   random_state)r   c           	      C   sh   t jd}|\}}| || |jddt|d}| ||}| j|||d}d}||ksdt|d S )Nr   r;   rL   )size)sample_weightz5Unweighted and weighted scores are unexpectedly equal)r8   randomZRandomStaterB   randintr|   scorerO   )	treeZdatasetrngr@   rA   r   Zscore_unweightedZscore_weightedry   r   r   r   test_score_sample_weight4  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
        -----
        Nr;   c                 S   s   || _ || _d S r   )dfscalar_param)r   r   r   r   r   r   r   `  s    z<test_clone_pandas_dataframe.<locals>.DummyEstimator.__init__c                 S   s   d S r   r   r?   r   r   r   rB   d  s    z7test_clone_pandas_dataframe.<locals>.DummyEstimator.fitc                 S   s   d S r   r   rC   r   r   r   	transformg  s    z=test_clone_pandas_dataframe.<locals>.DummyEstimator.transform)Nr;   )N)r   r    r!   r7   r   rB   r   r   r   r   r   DummyEstimatorP  s   

r   rL   r;   )r   )r   r   r8   Zaranger   r   r   valuesallrO   r   )r   r$   r   eZcloned_er   r   r   test_clone_pandas_dataframeO  s    
r   c                  C   s   G dd dt } tddgddgddgg}t |}|j}| |}t|j| t| |  t	ddgddgd	dgg}|| t|j| |
| t|j| t|}||kstt|j| d
S )z:Checks that clone works with `__sklearn_clone__` protocol.c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )z,test_clone_protocol.<locals>.FrozenEstimatorc                 S   s
   || _ d S r   )fitted_estimator)r   r   r   r   r   r   y  s    z5test_clone_protocol.<locals>.FrozenEstimator.__init__c                 S   s   t | j|S r   )rk   r   )r   rm   r   r   r   __getattr__|  s    z8test_clone_protocol.<locals>.FrozenEstimator.__getattr__c                 S   s   | S r   r   r*   r   r   r   __sklearn_clone__  s    z>test_clone_protocol.<locals>.FrozenEstimator.__sklearn_clone__c                 _   s   | S r   r   r   argsr   r   r   r   rB     s    z0test_clone_protocol.<locals>.FrozenEstimator.fitc                 _   s   | j j||S r   )r   r   r   r   r   r   fit_transform  s    z:test_clone_protocol.<locals>.FrozenEstimator.fit_transformN)r   r    r!   r   r   r   rB   r   r   r   r   r   FrozenEstimatorx  s
   r   rM         r;   N)r   r8   r9   r	   rB   Zcomponents_r   r   Zget_feature_names_outZasarrayr   r   rO   )r   r@   Zpca
componentsZ
frozen_pcaZX_newZclone_frozen_pcar   r   r   test_clone_protocolu  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   rB   r`   targetpickledumpsrO   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_version  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)r1   __dict__itemsr*   r   r   r   __getstate__  s    zTreeBadVersion.__getstate__Nr   r    r!   r   r   r   r   r   r     s   r   zTrying 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 |jd j}t|tstt|jdkst|jdkst|jt
jkstd S )Nr   r   r   Zold_versioncurrent_versionrw   r   )r   r   r   rB   r`   r   r   r   pickle_error_messageformatsklearn__version__rX   warnsUserWarningr   listmessage
isinstancer
   rO   Zestimator_nameZoriginal_sklearn_versionZcurrent_sklearn_version)r   r   Ztree_pickle_otherr   Zwarning_recordr   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   rw   )r   r   r   rB   r`   r   r   r   rO   r   r   r   r   rX   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   rB   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   r5   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 )MultiInheritanceEstimatorrq   c                 C   s   || _ d | _d S r   attribute_pickledr   r   r   r   r   r   r     s    z"MultiInheritanceEstimator.__init__N)rq   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 pickledrq   )r   r   r   r   r   r   rO   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   rq   )r   r   r   r   )	rj   r    r   r   r   rO   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 )SingleInheritanceEstimatorrq   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)rq   )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   rO   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_tagsrO   r/   r0   r2   )Znan_tag_estZno_nan_tag_estZredefine_tags_estZdiamond_tag_estZinherit_diamond_tag_estr   r   r   test_tag_inheritance6  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>.MyEstimatorrq   c                 S   s   d S r   r   )r   paramr   r   r   r   J  s    zEtest_raises_on_get_params_non_attribute.<locals>.MyEstimator.__init__Nc                 S   s   | S r   r   r?   r   r   r   rB   M  s    z@test_raises_on_get_params_non_attribute.<locals>.MyEstimator.fit)rq   )N)r   r    r!   r   rB   r   r   r   r   r   I  s   
r   z-'MyEstimator' object has no attribute 'param'rw   )r   rX   rY   AttributeErrorrP   )r   r\   ry   r   r   r   'test_raises_on_get_params_non_attributeH  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_rO   r   )r   outputr   r   r   test_repr_mimebundle_W  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 whenrw   )r   Z_repr_html_rO   r   rX   rY   r   )r   r   ry   r   r   r   test_repr_html_wrapsd  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=Falser;   rM   r   r   rq      TresetzHX does not contain any features, but MyEstimator is expecting 3 featuresrw   	invalid XFN)r   _check_n_featuresn_features_in_rO   rX   rY   r   )r\   ZX_trainry   r   r   r   test_n_features_in_validationq  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   rV   rO   )r\   r   r   r    test_n_features_in_no_validation~  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   _validate_datar?   r   r   r   rB     s    
z2test_feature_names_in.<locals>.NoOpTransformer.fitc                 S   s   | j |dd |S )NFr   r   rC   r   r   r   r     s    z8test_feature_names_in.<locals>.NoOpTransformer.transform)N)r   r    r!   rB   r   r   r   r   r   NoOpTransformer  s   
r  feature_names_in_z5The feature names should match those that were passedNr   rw   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'   r;   rM   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.)rX   importorskipr   r   r`   	DataFramefeature_namesr   r   rB   r   r  r   rV   rO   rY   r   r   r   r   warningscatch_warningssimplefilterreescaper[   )pdr   ZX_npr   r  Ztransry   Zdf_badZdf_int_namesZXsr@   Zdf_mixedr   r   r   test_feature_names_in  sR    






r  c               	   C   s  t d} t }| j|j|jd}| |j}G dd dt	t
}| }|j|dd}t|tjsftt||  |j|dd}||kst|j|dd}t|tjstt||  |j|dd}	|	|kst|j||dd\}}t|tjstt||  t|tjstt||  |j||dd\}}	||ksHt|	|ksVtd	}
t jt|
d
 |  W 5 Q R X dS )z/Check cast_to_ndarray option of _validate_data.r   r   c                   @   s   e Zd ZdS )z;test_validate_data_cast_to_ndarray.<locals>.NoOpTransformerNr3   r   r   r   r   r    s   r  T)cast_to_ndarrayF)rA   r  z*Validation should be done on X, y or both.rw   N)rX   r  r   r   r  r`   r  ZSeriesr   r   r   r  r   r8   ZndarrayrO   r   Zto_numpyrY   r   )r  r   r   rA   r  Zno_opZX_np_outZX_df_outZy_np_outZy_series_outry   r   r   r   "test_validate_data_cast_to_ndarray  s6    
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   rO   )ssconfigZss_cloneZconfig_cloner   r   r   test_clone_keeps_output_config  s
    

r  c                   @   s   e Zd ZdS )_EmptyNr3   r   r   r   r   r    s   r  c                   @   s   e Zd ZdS )EmptyEstimatorNr3   r   r   r   r   r    s   r  r   c                 C   s4   |   }dtji}||kstttt  dS )zCheck 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   rO   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>.EstimatorNr3   r   r   r   r   	Estimator*  s   r  zRYou cannot use `__slots__` in objects inheriting from `sklearn.base.BaseEstimator`rw   N)r   rX   rY   r[   r   r   r   )r  r  ry   r   r   r   1test_estimator_getstate_using_slots_error_message$  s    r  )hr   r  r  numpyr8   rX   Zscipy.sparsesparser_   Znumpy.testingr   r   r   r   Zsklearn.baser   r   r   r   Zsklearn.decompositionr	   Zsklearn.exceptionsr
   Zsklearn.model_selectionr   Zsklearn.pipeliner   Zsklearn.preprocessingr   Zsklearn.svmr   Zsklearn.treer   r   Zsklearn.utils._mockingr   Zsklearn.utils._set_outputr   Zsklearn.utils._testingr   r   r   r   r"   r%   r(   r-   r/   r0   r2   r4   r:   r>   rE   rS   rW   r]   rc   rf   rh   ru   rv   rz   r~   r   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   r   r   <module>   s   	
	




&,	

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