CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
test_base.cpython-310.pyc185 linesDownload Raw Back to __pycache__
1o

2�Yiׇ�@s�ddlZddlZddlZddlZddlZddlmZddl	m3Z4ddlZddlmZm
Z
ddlmZmZmZmZmZmZmZmZddlmZddlmZddlmZddlmZdd	lm Z dd5l!m"Z"m#Z#ddl$m%Z%ddl&m'Z'dd
l(m)Z)m*Z*ddl+m,Z,m-Z-ddl.m/Z/ddl0m1Z1ddl2m3Z3m4Z4ddl5m6Z6m7Z7Gdd�de�Z8Gdd�de�Z9Gdd�de�Z:Gdd�de�Z;Gdd�de�Z<Gdd�de;�Z=Gdd �d e;e<�Z>Gd!d"�d"e>�Z?Gd#d$�d$e�Z@Gd%d&�d&e�ZAGd'd(�d(�ZBGd)d*�d*e�ZCd+d,�ZDd-d.�ZEd/d0�ZFd1d2�ZGd3d4�ZHd5d6�ZId7d8�ZJd9d:�ZKd;d<�ZLd=d>�ZMd?d@�ZNdAdB�ZOdCdD�ZPejQ�RdEe)�dFfe"e)�dGdHdIgi�dFfe%dJe)�fg�dFfe%dKe"e)�dGdHdIgi�fg�dFfe*�dLfe"e*�dGdHdIgi�dLfe%dMe*�fg�dLfe%dNe"e*�dGdHdIgi�fg�dLfg�dOdP��ZSejQ�RdEe*�dFfe"e*�dGdHdIgi�dFfe%dMe*�fg�dFfe%dNe"e*�dGdHdIgi�fg�dFfe)�dLfe"e)�dGdHdIgi�dLfe%dJe)�fg�dLfe%dKe"e)�dGdHdIgi�fg�dLfg�dQdR��ZTejQ�RdEe�dFfe"e�dSdTdUgi�dFfe%dVe�fg�dFfe%dWe"e�dSdTdUgi�fg�dFfe)�dLfe"e)�dGdHdIgi�dLfe%dJe)�fg�dLfe%dKe"e)�dGdHdIgi�fg�dLfg�dXdY��ZUdZd[�ZVd\d]�ZWd^d_�ZXejQ�Rd`e,daddb�e
jYddc�fe-daddb�e
jZddc�fg�ddde��Z[dfdg�Z\dhdi�Z]djdk�Z^Gdldm�dme,�Z_dnZ`dodp�ZaGdqdr�dre,�Zbdsdt�Zcdudv�ZdGdwdx�dx�ZeGdydz�dzeee�Zfd{d|�Zgd}d~�ZhGdd��d�e�Zid�d��Zjd�d��Zkd�d��Zld�d��Zmd�d��Znd�d��Zod�d��Zpd�d��Zqd�d��Zrd�d��ZsGd�d��d��ZtGd�d��d�ete�ZuejQ�Rd�e�eu�g�d�d���Zvd�d��ZwejQ�Rd�gd���d�d���ZxedFd��d�d���ZyedFd��d�d���Zzd�d��Z{d�d��Z|ejQ�Rd�d�d�dIgfd�e�}dIg�fd�d�dTd�gfd�e�}dTd�g�fd�dgfdd�d��fej~d�fej~e�}ej~g�fd�d�d�gfd�d�dIdIgfdIe�}dIg�fd�d�d�gfd�e�}d�g�fdIdagdTgfe�}dIg�dadTgfde#�fde d��fg�d�d���ZejQ�Rd�d�d�d�gfd�e�}g�fd�d�gd��fd�e�}gd���fej~ej~fd�d�d�d�d�g
�d�dƄ�Z�dS)��N)�assert_allclose)�config_context�datasets)�
BaseEstimator�OutlierMixin�TransformerMixin�clone�
is_classifier�is_clusterer�is_outlier_detector�is_regressor)�KMeans)�PCA)�IsolationForest)�InconsistentVersionWarning)�6get_scorer)�GridSearchCV�KFold)�Pipeline)�StandardScaler)�SVC�SVR)�DecisionTreeClassifier�DecisionTreeRegressor)�
MockDataFrame)�_get_output_config)�_convert_container�assert_array_equal)�_check_n_features�
validate_datac@seZdZddd�ZdS)�MyEstimatorrNcC�||_||_dS�N��l1�empty)�selfr$r%�r'��E:\DocsHouse\542 percep lab latest\PerceptionLab\PerceptionLab_Portable\python_embed\Lib\site-packages\sklearn/tests/test_base.py�__init__/�7zMyEstimator.__init__)rN��__name__�8__module__�__qualname__r)r'r'r'r(r .�r c@�eZdZddd�ZdS)�KNcCr!r")�c�d)r&r2r3r'r'r(r)5r*z9K.__init__�NNr+r'r'r'r(r14r/r1c@r0)�TNcCr!r")�a�b)r&r6r7r'r'r(r);r*z10T.__init__r4r+r'r'r'r(r5:r/r5c�eZdZ�fdd�Z�ZS)�NaNTagc�t���}d|j_|S)NT��super�__sklearn_tags__�11input_tags�	allow_nan�r&�tags��	__class__r'r(r=A�12zNaNTag.__sklearn_tags__�r,r-r.r=�
__classcell__r'r'rBr(r9@�r9cr8)�NoNaNTagcr:�NFr;r@rBr'r(r=HrDzNoNaNTag.__sklearn_tags__rEr'r'rBr(rHGrGrHcr8)�OverrideTagcr:rIr;r@rBr'r(r=OrDzOverrideTag.__sklearn_tags__rEr'r'rBr(rJNrGrJc@�eZdZdS)�DiamondOverwriteTagN�r,r-r.r'r'r'r(rLU�rLc@rK)�InheritDiamondOverwriteTagNrMr'r'r'r(rOYrNrOc@s$eZdZdZe�dg�fdd�ZdS)�ModifyInitParamsz_Deprecated behavior.13    Equal parameters but with a type cast.14    Doesn't fulfill a is a15    rcCs|��|_dSr")�copyr6�r&r6r'r'r(r)c�zModifyInitParams.__init__N)r,r-r.�__doc__�np�arrayr)r'r'r'r(rP]srPc@seZdZdZddd�ZdS)�Buggyz9A buggy estimator that does not set its parameters right.NcCs16d|_dS�N��r6rRr'r'r(r)j�17zBuggy.__init__r"�r,r-r.rTr)r'r'r'r(rWgsrWc@s(eZdZdd�Zddd�Zd	dd�ZdS)18�NoEstimatorcC�dSr"r'�r&r'r'r(r)o�zNoEstimator.__init__NcC�|Sr"r'�r&�X�yr'r'r(�fitrr`zNoEstimator.fitcCr^r"r'�r&rcr'r'r(�predictur`zNoEstimator.predictr4r")r,r-r.r)rergr'r'r'r(r]ns19r]c@seZdZdZdd�ZdS)�
VargEstimatorz-scikit-learn estimators shouldn't have vargs.cGr^r"r')r&Zvargsr'r'r(r)|r`zVargEstimator.__init__Nr\r'r'r'r(rhysrhcCsnddlm}m}||dd�}t|�}||usJ�|��|��ks"J�||t�d�d�}t|�}||us5J�dS)Nr��	SelectFpr�	f_classif皙�����?��alpha)�20�)�sklearn.feature_selectionrjrkr�21get_paramsrUZzeros�rjrk�selectorZnew_selectorr'r'r(�22test_clone�srucCs<ddlm}m}||dd�}d|_t|�}t|d�rJ�dS)Nrrirlrm�test�
own_attribute)rqrjrkrwr�hasattrrsr'r'r(�test_clone_2�s23rycCs�t�}d|_t�t��t|�Wd�n1swYt�}t�t��t|�Wd�n1s6wYt�}t�t��t|�Wd�n1sRwYt	�}t�t��
t|�Wd�dS1sowYdS)Nrp)24rWr6�pytest�raises�RuntimeErrorrr]�	TypeErrorrhrP)ZbuggyZno_estimatorZvarg_est�estr'r'r(�test_clone_buggy�s"25�26�27�28"�rcCs^tt�g�d�}t|�}t|j|j�tt�t�dgg��d�}t|�}t|jj|jj�dS)N�r%r)	r rUrVrrr%�spZ29csr_matrix�data��clfZclf2r'r'r(�test_clone_empty_array�sr�cCs(ttjd�}t|�}|j|jusJ�dS�Nr�)r rU�nanrr%r�r'r'r(�test_clone_nan�sr�cCs*dt�i}t|�}|d|dusJ�dS)Nr6)r r)�origZclonedr'r'r(�test_clone_dict�s30r�csn�fdd�tt�D�}|D]'��t�d��}t|d�}t|�}|jj|jjus)J�t|j�	�|j�	��q
dS)Ncs0g|]}|�d�rttt|���tur��qS)Z_matrix)�endswith�type�getattrr�)�.0�name��clsr'r(�31<listcomp>�s��z.test_clone_sparse_matrices.<locals>.<listcomp>�r�)32�dirr�rU�eyer rr%rCrZtoarray)Zsparse_matrix_classesZ
sparse_matrixr�Z33clf_clonedr'r�r(�test_clone_sparse_matrices�s34�35�r�cCs&ttd�}t|�}|j|jusJ�dSr�)r rr%r�r'r'r(�test_clone_estimator_types�s36r�cCs@d}tjt|d��
tt�Wd�dS1swYdS)Nz8You should provide an instance of scikit-learn estimator��match)rzr{r}rr )�msgr'r'r(�%test_clone_class_rather_than_instance�s37"�r�cCsTt�}t|�tt�t��}t|�dksJ�tdgdd�}tt|��dks(J�dS)NzT(a=K(), b=K())Zlong_paramsi�rZi�)r �reprr5r1�len)�my_estimatorrvZsome_estr'r'r(�	test_repr�sr�cCst�}t|�dSr")r �str)r�r'r'r(�test_str�sr�cCs�tt�t�}d|jdd�vsJ�d|jdd�vsJ�|jdd�|jjdks(J�t�t��|jdd�Wd�dS1s?wYdS)N�a__dT)�deepFrp)r�)Za__a)	r5r1rr�38set_paramsr6r3rzr{�39ValueError)rvr'r'r(�test_get_paramss"�r�cCs�tjtdd��tt�sJ�Wd�n1swYtjtdd��tt�s+J�Wd�n1s5wYtjtdd��tt�sHJ�Wd�n1sRwYtjtdd��t	t40�seJ�Wd�dS1spwYdS)Nz!passing a class to.*is deprecatedr�)rz�warns�
FutureWarningr	rrrr41r
rrr'r'r'r(�test_is_estimator_type_classs���"�r�zestimator, expected_resultT�CrlrY�svcZsvc_cvFZsvrZsvr_cvcC�t|�|ksJ�dSr")r	��	estimatorZexpected_resultr'r'r(�test_is_classifier�r�cCr�r")rr�r'r'r(�test_is_regressor0r�r�Z42n_clusters���kmZkm_cvcCr�r")r43r�r'r'r(�test_is_clustererAr�r�cCs�tdt�fg�}t�t��|jdd�Wd�n1swYt�t��|jdd�Wd�dS1s:wYdS)Nr�T)Zsvc__stupid_param)Zsvm__stupid_param)rrrzr{r�r�)r�r'r'r(�test_set_paramsRs�"�r�csRG�fdd�dt�}ddd��td|�fg�t|�i�fD]	}|jddd�qdS)NcseZdZ��fdd�Z�ZS)z?test_set_params_passes_all_parameters.<locals>.TestDecisionTreecs"t�jdi|��|�ksJ�|S)Nr')r<r�)r&�kwargs)rC�expected_kwargsr'r(r�iszJtest_set_params_passes_all_parameters.<locals>.TestDecisionTree.set_params)r,r-r.r�rFr'�r�rBr(�TestDecisionTreehsr�r�rp)�	max_depthZmin_samples_leafr�)Zestimator__max_depthZestimator__min_samples_leaf)rrrr�)r�r~r'r�r(�%test_set_params_passes_all_parametersds4445��r�cCs0tt�i�}|jt�dd�|jjdksJ�dS)NgE@)r�Zestimator__C)rrr�rr�r�)Zgscvr'r'r(�$test_set_params_updates_valid_paramswsr�ztree,datasetrp)r��random_state)r�c	Cshtj�d�}|\}}|�||�|jddt|�d�}|�||�}|j|||d�}d}||ks2J|��dS)NrrYro)�size)�
sample_weightz5Unweighted and weighted scores are unexpectedly equal)rU�randomZRandomStatere�randintr��score)	�treeZdataset�rngrcrdr�Zscore_unweightedZscore_weightedr�r'r'r(�test_score_sample_weightsr�cCsbGdd�dtt�}t�d�}t|�}||dd�}t|�}|j|jkj��s'J�|j	|j	ks/J�dS)Nc@s,eZdZdZd46dd�Zddd�Zdd	�ZdS)z3test_clone_pandas_dataframe.<locals>.DummyEstimatora,This is a dummy class for generating numerical features47 48        This feature extractor extracts numerical features from pandas data49        frame.50 51        Parameters52        ----------53 54        df: pandas data frame55            The pandas data frame parameter.56 57        Notes58        -----59        NrYcSr!r")�df�scalar_param)r&r�r�r'r'r(r)�r*z<test_clone_pandas_dataframe.<locals>.DummyEstimator.__init__cSr^r"r'rbr'r'r(re�r`z7test_clone_pandas_dataframe.<locals>.DummyEstimator.fitcSr^r"r'rfr'r'r(�	transform�r`z=test_clone_pandas_dataframe.<locals>.DummyEstimator.transformrXr")r,r-r.rTr)rer�r'r'r'r(�DummyEstimator�s606162r�rorY)r�)63rrrUZarangerrr��values�allr�)r�r3r��eZcloned_er'r'r(�test_clone_pandas_dataframe�s64r�cCs�Gdd�dt�}t�ddgddgddgg�}t��|�}|j}||�}t|j|�t|��|���t�	ddgddgd	dgg�}|�|�t|j|�|�65|�t|j|�t|�}||us`J�t|j|�d66S)z:Checks that clone works with `__sklearn_clone__` protocol.c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d67�ZdS)z,test_clone_protocol.<locals>.FrozenEstimatorcS�68||_dSr")�fitted_estimator)r&r�r'r'r(r)�r[z5test_clone_protocol.<locals>.FrozenEstimator.__init__cSst|j|�Sr")r�r�)r&r�r'r'r(�__getattr__�sz8test_clone_protocol.<locals>.FrozenEstimator.__getattr__cSrar"r'r_r'r'r(�__sklearn_clone__�r`z>test_clone_protocol.<locals>.FrozenEstimator.__sklearn_clone__c_rar"r'�r&�argsr�r'r'r(re�r`z0test_clone_protocol.<locals>.FrozenEstimator.fitc_s|jj|i|��Sr")r�r�r�r'r'r(�
fit_transform��z:test_clone_protocol.<locals>.FrozenEstimator.fit_transformN)r,r-r.r)r�r�rer�r'r'r'r(�FrozenEstimator�sr����������������rpr��rYN)rrUrVrreZcomponents_rrZget_feature_names_outZasarrayr�r)r�rcZpca�69componentsZ70frozen_pcaZX_newZclone_frozen_pcar'r'r(�test_clone_protocol�s7172r�cCs�t��}t��|j|j�}t�|�}d|vsJ�t�	��t�73d�t�|�}Wd�n1s1wY|�|j|j�}|�|j|j�}||ksLJ�dS)N�_sklearn_version�error)
r�	load_irisrrer��target�pickle�dumps�warnings�catch_warnings�simplefilter�loadsr�)�irisr�Ztree_pickleZ
tree_restoredZscore_of_originalZscore_of_restoredr'r'r(�?test_pickle_version_warning_is_not_raised_with_matching_version�s747576�r�c@�eZdZdd�ZdS)�TreeBadVersioncCst|j��dd�S)N�	something)�_sklearn_version)�dict�__dict__�itemsr_r'r'r(�__getstate__�r�zTreeBadVersion.__getstate__N�r,r-r.r�r'r'r'r(r���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.cCs�t��}t��|j|j�}t�|�}tj	ddt77jd�}tj
t|d��
}t�|�Wd�n1s2wY|jdj}t|t�sDJ�|jdksKJ�|jdksRJ�|jt78jksZJ�dS)Nr�r��r�Zold_version�current_versionr�r)rr�r�rer�r�r�r��pickle_error_message�format�sklearn�__version__rzr��UserWarningr��list�message�79isinstancerZestimator_nameZoriginal_sklearn_versionZcurrent_sklearn_version)r�r�Ztree_pickle_otherr�Zwarning_recordr'r'r(�<test_pickle_version_warning_is_issued_upon_different_version80s 81��r�c@r�)�
TreeNoVersioncCs|jSr")r�r_r'r'r(r�szTreeNoVersion.__getstate__Nr�r'r'r'r(r�r�r�cCs�t��}t��|j|j�}t�|�}d|vsJ�tj	ddt82jd�}tj
t|d��t�|�Wd�dS1s9wYdS)Nr�r�zpre-0.18r�r�)rr�r�rer�r�r�r�r�r�r�r�rzr�r�r�)r�r��tree_pickle_noversionr�r'r'r(�Dtest_pickle_version_warning_is_issued_when_no_version_info_in_pickle"s83�"�rcCs�t��}t��|j|j�}t�|�}z0tj}dt_t	�84��t	�d�t�|�Wd�n1s2wYW|t_dSW|t_dS|t_w)N�85notsklearnr�)
rr�r�rer�r�r�r�r-r�r�r�r�)r�r�rZ
module_backupr'r'r(�Ctest_pickle_version_no_warning_is_issued_with_non_sklearn_estimator3s868788�89�rc@seZdZdd�Zdd�ZdS)�DontPickleAttributeMixincCs|j��}d|d<|S�N�_attribute_not_pickled)r�rQ)r&r�r'r'r(r�DrDz%DontPickleAttributeMixin.__getstate__cCsd|d<|j�|�dS)NT�	_restored)r��update�r&�stater'r'r(�__setstate__Isz%DontPickleAttributeMixin.__setstate__N)r,r-r.r�rr'r'r'r(rCsrc@seZdZddd�ZdS)�MultiInheritanceEstimatorr�cC�||_d|_dSr"��attribute_pickledr�r&rr'r'r(r)Or*z"MultiInheritanceEstimator.__init__N�r�r+r'r'r'r(rNr/rcCsJt�}d|_t�|�}t�|�}|jdksJ�|jdusJ�|js#J�dS�N�$this attribute should not be pickledr�)rrr�r�r�rr�r��90serializedZestimator_restoredr'r'r(�3test_pickling_when_getstate_is_overwritten_by_mixinTs9192rc	Cs�z<t�}d}||_t|�j}dt|�_|��}|ddd�ks J�d|d<|�|�|jdks0J�|js5J�W|t|�_dS|t|�_w)Nrrr�)rrr�r)rrr�r-r�rrr)r��text�old_modrr'r'r(�Ftest_pickling_when_getstate_is_overwritten_by_mixin_outside_of_sklearn_s939495rcs&eZdZddd�Z�fdd�Z�ZS)�SingleInheritanceEstimatorr�cCr
r"rrr'r'r(r)sr*z#SingleInheritanceEstimator.__init__cst���}d|d<|Sr)r<r�r	rBr'r(r�wrDz'SingleInheritanceEstimator.__getstate__r)r,r-r.r)r�rFr'r'rBr(rrs96rcCs@t�}d|_t�|�}t�|�}|jdksJ�|jdusJ�dSr)rrr�r�r�rrr'r'r(�Ctest_pickling_works_when_getstate_is_overwritten_in_the_child_class}s9798rcCsrt�}t�}|��jjsJ�|��jjrJ�t�}|��jjr!J�t�}|��jjs,J�t�}|��jjs7J�dSr")r9rHr=r>r?rJrLrO)Znan_tag_estZno_nan_tag_estZredefine_tags_estZdiamond_tag_estZinherit_diamond_tag_estr'r'r(�test_tag_inheritance�srcCsVGdd�dt�}|�}d}tjt|d��
|��Wd�dS1s$wYdS)Nc@s eZdZddd�Zddd�ZdS)	z<test_raises_on_get_params_non_attribute.<locals>.MyEstimatorr�cSr^r"r'�r&�paramr'r'r(r)�r`zEtest_raises_on_get_params_non_attribute.<locals>.MyEstimator.__init__NcSrar"r'rbr'r'r(re�r`z@test_raises_on_get_params_non_attribute.<locals>.MyEstimator.fitrr")r,r-r.r)rer'r'r'r(r ��99r z-'MyEstimator' object has no attribute 'param'r�)rrzr{�AttributeErrorrr)r r~r�r'r'r(�'test_raises_on_get_params_non_attribute�s100"�r!cCsvt�}|��}d|vs
J�d|vsJ�tdd��|��}d|vs#J�d|vs)J�Wd�dS1s4wYdS)Nz101text/plainz	text/htmlr��display)r�_repr_mimebundle_r)r��outputr'r'r(�test_repr_mimebundle_�s"�r&c	Cs�t�}|��}d|vs
J�tdd��.d}tjt|d��|��}Wd�n1s+wYWd�dSWd�dS1sCwYdS)Nz<style>rr"z _repr_html_ is only defined whenr�)rZ_repr_html_rrzr{r )r�r%r�r'r'r(�test_repr_html_wraps�s102��"�r'cCsxt�}gd�gd�g}t||dd�|jdksJ�d}tjt|d��t|dd	d�Wd103�d104S1s5wYd105S)z>Check that `_check_n_features` validates data when reset=False�rYrpr�)r�r��T��resetr�zHX does not contain any features, but MyEstimator is expecting 3 featuresr��	invalid XFN)r r�n_features_in_rzr{r�)r~ZX_trainr�r'r'r(�test_n_features_in_validation�s"�r.cCs4t�}t|ddd�t|d�rJ�t|ddd�dS)z]Check that `_check_n_features` does not validate data when106    n_features_in_ is not defined.r,Tr*r-FN)r rrx�r~r'r'r(� test_n_features_in_no_validation�sr0c	Cs�t�d�}t��}|j}|j||jd�}Gdd�dtt�}|��	|�}t107|j|j�|�	|�t
|d�r6J�|�	|�d}|j||jddd�d�}tjt|d	��
|�|�Wd�n1sawYd108}tjt|d	��
|�|�Wd�n1swYd}|��	|�}tjt|d	��
|�|�Wd�n1s�wY|�|�}|�}t���t�dt�|�	|�Wd�n1s�wY||g}	|	D]!}109t���t�dt�|�|110�Wd�n1s�wYq�|j|gd
�d�}|�}t�d�}tjt|d	��
|�	|�Wd�n	1�s wYtjt|d	��|�|�Wd�dS1�s>wYdS)z;Check that feature_name_in are recorded by `_validate_data`�pandas��columnsc@�eZdZddd�Zdd�ZdS)z.test_feature_names_in.<locals>.NoOpTransformerNcS�t||�|Sr"�rrbr'r'r(re��111z2test_feature_names_in.<locals>.NoOpTransformer.fitcSst||dd�|S�NFr*r6rfr'r'r(r��sz8test_feature_names_in.<locals>.NoOpTransformer.transformr"�r,r-r.rer�r'r'r'r(�NoOpTransformer��112r:�feature_names_in_z5The feature names should match those that were passedNr�r�zVX does not have valid feature names, but NoOpTransformer was fitted with feature nameszIX has feature names, but NoOpTransformer was fitted without feature namesr�)r6r7rYrpa�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.)rz�importorskiprr�r��	DataFrame�
feature_namesrrrerr<r3rxr{r�r�r�r�r�r�r��re�escaper})�pdr�ZX_npr�r:Ztransr��df_badZdf_int_namesZXsrcZdf_mixedr'r'r(�test_feature_names_in�sb113114115116����117118�119����$�rDcCs�t�d�}t��}|j|j|jd�}|�|j�}Gdd�dt	t120�}|�}t||dd�}t|t
j�s3J�t||���t||dd�}||usGJ�t||dd�}t|t
j�sVJ�t||���t||dd�}	|	|usjJ�t|||dd�\}}t|t
j�s|J�t||���t|t
j�s�J�t||���t|||dd�\}}	||us�J�|	|us�J�d	}121tjt|122d123��
t|�Wd�dS1s�wYdS)z0Check skip_check_array option of _validate_data.r1r2c@rK)z<test_validate_data_skip_check_array.<locals>.NoOpTransformerNrMr'r'r'r(r:1rNr:F)�skip_check_arrayT)rdrEz*Validation should be done on X, y or both.r�N)rzr=rr�r>r�r?ZSeriesr�rrrr�rUZndarrayrZto_numpyr{r�)rBr�r�rdr:�no_opZX_np_outZX_df_outZy_np_outZy_series_outr�r'r'r(�#test_validate_data_skip_check_array)s8124125"�rGcCs:t�jdd�}td|�}t|�}td|�}||ksJ�dS)z-Check that clone keeps the set_output config.r1)r�r�N)rZ126set_outputrr)�ss�configZss_cloneZconfig_cloner'r'r(�test_clone_keeps_output_configRs127128129rJc@rK)�_EmptyNrMr'r'r'r(rK]rNrKc@rK)�EmptyEstimatorNrMr'r'r'r(rLarNrLr�cCs4|��}dtji}||ksJ�t�t�t���dS)z�Check that ``__getstate__`` returns an empty ``dict`` with an empty130    instance.131 132    Python 3.11+ changed behaviour by returning ``None`` instead of raising an133    ``AttributeError``. Non-regression test for gh-25188.134    r�N)r�r�r�r�r�r�r)r�r135�expectedr'r'r(�"test_estimator_empty_instance_dictes136rNcCs�Gdd�d�}Gdd�dt|�}d}tjt|d��
|���Wd�n1s)wYtjt|d��t�|��Wd�dS1sGwYdS)z:Using a `BaseEstimator` with `__slots__` is not supported.c@seZdZdZdS)zDtest_estimator_getstate_using_slots_error_message.<locals>.WithSlots��xN)r,r-r.�	__slots__r'r'r'r(�	WithSlotsxsrRc@rK)zDtest_estimator_getstate_using_slots_error_message.<locals>.EstimatorNrMr'r'r'r(�	Estimator{rNrSzRYou cannot use `__slots__` in objects inheriting from `sklearn.base.BaseEstimator`r�N)rrzr{r}r�r�r�)rRrSr�r'r'r(�1test_estimator_getstate_using_slots_error_messageus��"�rTzconstructor_name, minversion))Z	dataframez1.5.0)�pyarrowz12.0.0)Zpolarsz0.20.23c137Cs�gd�gd�g}gd�}t||||d�}Gdd�dtt�}|�}|�|�t|j|�|�|�}|dkr9t||�gd�}t|||d	�}	tj	t138d139d��|�|	�Wd�dS1s\wYdS)
z:Uses the dataframe exchange protocol to get feature names.)rYr�rp)r�r�r))Zcol_0Zcol_1Zcol_2)�columns_name�140minversionc@r4)z0test_dataframe_protocol.<locals>.NoOpTransformerNcSr5r"r6rbr'r'r(re�r7z4test_dataframe_protocol.<locals>.NoOpTransformer.fitcSst||dd�Sr8r6rfr'r'r(r��rSz:test_dataframe_protocol.<locals>.NoOpTransformer.transformr"r9r'r'r'r(r:�r;r:rU)r6r7r2)rVzThe feature names should matchr�N)rrrrerr<r�rrzr{r�)141Zconstructor_namerWr�r3r�r:rFZX_outZ	bad_namesrCr'r'r(�test_dataframe_protocol�s"142�143144145"�rX)Zenable_metadata_routingcC�Gdd�dtt�}tjtdd��|�jdd�jdggdgdd�Wd�n1s+wYtjdd	��}|�jdd��dggdg�t	|�d146ksMJ�Wd�dS1sXwYdS)zkTest that having a transformer with metadata for transform raises a147    warning when calling fit_transform.c@� eZdZddd�Zddd�ZdS)zTtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformerNcSrar"r'�r&rcrd�propr'r'r(re�r`zXtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.fitcS�|Sr"r'�r&rcr\r'r'r(r��r`z^test_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.transformr4r"r9r'r'r'r(�CustomTransformer�rr_z*`transform` method which consumes metadatar�T�r\rYN��recordr)148rrrzr�r�Zset_transform_requestr�r�r�r�)r_rbr'r'r(�9test_transformer_fit_transform_with_metadata_in_transform��	��"�rccCrY)ziTest that having an OutlierMixin with metadata for predict raises a149    warning when calling fit_predict.c@rZ)zVtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetectorNcSrar"r'r[r'r'r(re�r`zZtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.fitcSr]r"r'r^r'r'r(rg�r`z^test_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.predictr4r")r,r-r.rergr'r'r'r(�CustomOutlierDetector�rrez(`predict` method which consumes metadatar�Tr`rYNrar)150rrrzr�r�Zset_predict_requestZfit_predictr�r�r�)rerbr'r'r(�7test_outlier_mixin_fit_predict_with_metadata_in_predict�rdrfcCs6tdd�}|��ddd�ksJ�|��jdksJ�dS)z5Check the behaviour of the `_get_params_html` method.rvr�rr#N)r �_get_params_html�non_defaultr/r'r'r(�test_get_params_html�s151ricsG�fdd�dt�}|S)NcseZdZ�fdd�ZdS)z3make_estimator_with_param.<locals>.DynamicEstimatorcSr�r"�rrr'r'r(r)�r[z<make_estimator_with_param.<locals>.DynamicEstimator.__init__Nr+r'��
default_valuer'r(�DynamicEstimator�srm)r)rlrmr'rkr(�make_estimator_with_param�srnzdefault_value, test_value)r')rYr')�rYrp)r�r�ror�rXcCrar"r'rOr'r'r(�<lambda>srp��?)�abc�defrr)TF)rq�@ZaccuracycCs(t|�|d�}|��j}d|vsJ�dS)z�Check that we detect non-default parameters with various types.152 153    Non-regression test for:154    https://github.com/scikit-learn/scikit-learn/issues/31525155    rjrN�rnrgrh�rlZ156test_valuer�rhr'r'r(�test_param_is_non_default�s#157rwr4)r'r')r(r(r()rrrr)TT)rYrY)rqrq)rprtcCs(t|�|d�}|��j}d|vsJ�dS)z�Check that we detect the default parameters and values in an array-like will158    be reported as default as well.159 160    Non-regression test for:161    https://github.com/scikit-learn/scikit-learn/issues/31525162    rjrNrurvr'r'r(�test_param_is_defaults163rx)�r�r@r��numpyrUrzZscipy.sparse�sparser�Z
numpy.testingrr�rrZsklearn.baserrrrr	r164rrZsklearn.clusterr
Zsklearn.decompositionrZsklearn.ensemblerZsklearn.exceptionsrZsklearn.metricsrZsklearn.model_selectionrrZsklearn.pipelinerZsklearn.preprocessingrZsklearn.svmrrZsklearn.treerrZsklearn.utils._mockingrZsklearn.utils._set_outputrZsklearn.utils._testingrrZsklearn.utils.validationrrr r1r5r9rHrJrLrOrPrWr]rhruryrr�r�r�r�r�r�r�r�r�r��markZparametrizer�r�r�r�r�r�Zmake_classificationZmake_regressionr�r�r�r�r�r�r�r�rrrrrrrrrr!r&r'r.r0rDrGrJrKrLrNrTrXrcrfrirnrVr�rwrxr'r'r'r(�<module>s|(165166	  ��167
  ��168
  ��169
170171�172173���174
&,�	175


N)176�177 178179180181182��183184185��
Aluode/PerceptionLabPortable · CoolFace