o
    tBh9                     @   sj  d Z 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mZm	Z	 ddl
mZm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 dd	lmZ dd
lm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" 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.m/Z/ ddlm0Z0m1Z1 ddlm2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: dd Z;d]ddZ<ej=>dee<ddd fe<dfee<d!dfe!d"d#d$fe!dd%d&d'd(d)fgd*d+ Z?d^d,d-Z@e6eAe@ d.d/ ZBd0d1 ZCd2d3 ZDd4d5 ZEej=>d6eE d7d8 ZFed9d: ZGd;d< ZHd=d> ZId?d@ ZJdAdB ZKe6eAeK dCdD ZLej=j>dEe@ e4dFdGdH ZMej=j>dEe@ e4dFdIdJ ZNdKdL ZOeAee@ e+e!dd#geAeK eO ZPej=j>dEePe4dFdMdN ZQdOdPgZRdQdR ZSdSdT e@dUD ZTej=j>dUeTe4dFdVdW ZUdXgZVeWeVZVej=>dYdZdT e D d[d\ ZXdS )_z.
General tests for all estimators in sklearn.
    N)isgenerator	signature	Parameter)productchain)partial)all_estimators)ignore_warnings)ConvergenceWarning)FitFailedWarning)check_estimator)PCA)LinearClassifierMixin)LogisticRegression)Ridge)GridSearchCV)RandomizedSearchCV)enable_halving_search_cv)HalvingGridSearchCV)HalvingRandomSearchCV)make_pipeline)IS_PYPY)_DEFAULT_TAGS
_safe_tags)SkipTestset_random_state)	_construct_instance_set_checking_parameters_get_check_estimator_ids-check_class_weight_balanced_linear_classifierparametrize_with_checks(check_dataframe_column_names_consistency!check_n_features_in_after_fitting'check_transformer_get_feature_names_out.check_transformer_get_feature_names_out_pandasc                  C   s4   t  D ]\} }d| }|  drJ |qd S )NzDBase estimators such as {0} should not be included in all_estimatorsbase)r   formatlower
startswith)name	Estimatormsg r,   p/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/tests/test_common.py test_all_estimator_no_base_class;   s   r.      c                 C      d S Nr,   )xyr,   r,   r-   _sample_funcD   s   r4   zval, expected)r3   z_sample_func(y=1)worldg       @)CzLogisticRegression(C=2.0)z	newton-cgbalancedT)random_statesolverclass_weight
warm_startz]LogisticRegression(class_weight='balanced',random_state=1,solver='newton-cg',warm_start=True)c                 C   s   t | |ksJ d S r1   )r   )valexpectedr,   r,   r-   test_get_check_estimator_idsH   s   r>   c              	   c   s@    t | dD ]\}}zt|}W n	 ty   Y qw |V  qd S )Ntype_filter)r   r   r   )r@   r)   r*   	estimatorr,   r,   r-   _tested_estimators_   s   rB   c                 C   sF   t tttfd t|  ||  W d    d S 1 sw   Y  d S Ncategory)r	   FutureWarningr
   UserWarningr   rA   checkrequestr,   r,   r-   test_estimatorsi   s   
"rK   c                  C   s   t t dd} t| sJ d S )NT)generate_only)r   r   r   )all_instance_gen_checksr,   r,   r-   "test_check_estimator_generate_onlyq   s   rN   c               	   C   s  t d t } tjtjtjd d}tj|d}tj	|s)t 
d z[t| tj}ddgt_t , tdt td}t| tdd	 W d    n1 s[w   Y  W d    n1 sjw   Y  W |t_t|  d S W |t_t|  d S |t_t|  w )
NCythonr   z..zsetup.pyzsetup.py not availableconfigignore__main__)__name__)pytestimportorskiposgetcwdpathabspathjoinsklearn__path__existsskipchdirsysargvwarningscatch_warningssimplefilterrG   openexecreaddict)cwd
setup_pathsetup_filenameold_argvfr,   r,   r-   test_configurev   s0   





rn   c                  c   s    t dd} tjdd. | D ]"\}}t|dg }t|rqd|   v r1t|tr1||fV  qW d    d S 1 s=w   Y  d S )N
classifierr?   Trecord_required_parametersr:   )	r   rb   rc   getattrlen
get_paramskeys
issubclassr   )classifiersr)   clazzrequired_parametersr,   r,   r-   _tested_linear_classifiers   s   

"r{   zname, Classifierc                 C   s   t | | d S r1   )r   )r)   
Classifierr,   r,   r-   -test_class_weight_balanced_linear_classifiers   s   r}   c                  C   s   t jtjddd d} dd | D }|dg D ].}d|v rqtr)d	|v s(d
|v r)qt|dd}t|ddD ]}t||sDJ d||q5qd S )Nsklearn.c                 S   r0   r1   r,   _r,   r,   r-   <lambda>       z-test_import_all_consistency.<locals>.<lambda>)rX   prefixonerrorc                 S   s   g | ]\}}}|qS r,   r,   ).0r   modnamer,   r,   r-   
<listcomp>   s    z/test_import_all_consistency.<locals>.<listcomp>r[   z.tests._svmlight_format_ioz feature_extraction._hashing_fastdummy)fromlist__all__r,   z#Module '{0}' has no attribute '{1}')	pkgutilwalk_packagesr[   r\   r   
__import__rs   hasattrr&   )pkgssubmodsr   packager)   r,   r,   r-   test_import_all_consistency   s$   r   c                  C   sR   d} t jtjdd dD ]\}}}d|v s|ds|| v rq|tjv s&J qd S )N)utilstestsr%   setupconftestc                 S   r0   r1   r,   r   r,   r,   r-   r      r   z3test_root_import_all_completeness.<locals>.<lambda>)rX   r   .r   )r   r   r[   r\   r(   r   )
EXCEPTIONSr   r   r,   r,   r-   !test_root_import_all_completeness   s   
r   c                     s`   t d h ddd tjtjddD  fdd D } | g ks.J d	| d S )
Nz(?x)
                                      \.externals(\.|$)|
                                      \.tests(\.|$)|
                                      \._
                                      >   sklearn.datasets.datasklearn.datasets.descrsklearn.datasets.imagesc                 S   s   i | ]\}}}||qS r,   r,   )r   r   r)   ispkgr,   r,   r-   
<dictcomp>   s    z1test_all_tests_are_importable.<locals>.<dictcomp>r~   )r   c                    s6   g | ]\}}|r|vr  |s|d  vr|qS )z.tests)search)r   r)   r   HAS_TESTS_EXCEPTIONSlookupresource_modulesr,   r-   r      s    z1test_all_tests_are_importable.<locals>.<listcomp>z{{0} do not have `tests` subpackages. Perhaps they require __init__.py or an add_subpackage directive in the parent setup.py)recompiler   r   r[   r\   itemsr&   )missing_testsr,   r   r-   test_all_tests_are_importable   s   
r   c                  C   sx   d} t jt| d tt W d    n1 sw   Y  t jt| d ttg W d    d S 1 s5w   Y  d S )Nz8Passing a class was deprecated.* isn't supported anymore)match)rT   raises	TypeErrorr   r   r    r+   r,   r,   r-   test_class_support_removed   s   
"r   c                  c   s   t ttttgtdddgiftdddgifgD ](\} \}}t| j}d|v r+ddini }| | |fddi|}t| |V  qt tttt	gtd	ddgiftd
ddgifgD ]0\} \}}t| j}d|v rkddini }| t
t | |fddi|jdd}t| |V  qXd S )Nalphag?      ?r6   min_resourcessmallestcv   ridge__alphalogisticregression__Craise)error_score)r   r   r   r   r   r   r   
parametersr   r   r   r   
set_params)SearchCVr*   
param_gridinit_paramsextra_params	search_cvr,   r,   r-   _generate_search_cv_instances   sT   

r   c                 C   s@   t ttttfd ||  W d    d S 1 sw   Y  d S rC   )r	   rF   r
   rG   r   rH   r,   r,   r-   test_search_cv&  s   
"r   rA   )idsc                 C   sH   t | }| D ]\}}tt| }|dkr|tf}t||s!J qdS )z$Check that estimator tags are valid._xfail_checksN)r   r   typer   rh   
isinstance)rA   tagsr)   tagcorrect_tagsr,   r,   r-   test_valid_tag_types6  s   r   c                 C   s   t |  t| jj|  d S r1   )r   r"   	__class__rS   )rA   r,   r,   r-   &test_check_n_features_in_after_fittingE  s   r   c                  c   s    t  D ]C} t|  }d|v r| jdddV  qd|v r<| jddd}|jjdv r8tj|tjj	dd	d
V  q|V  qd|v rG| jddV  qd S )N	oob_scoreT)r   	bootstrapearly_stoppingr/   )r   n_iter_no_change>   MLPRegressorMLPClassifierzMLP still validates in fitr   )marksr   )r   )
rB   setru   r   r   rS   rT   parammarkxfail)rA   
est_paramsestr,   r,   r-   _estimators_that_predict_in_fitM  s    

r   c              	   C   s   t |  ttd4 tjdd}t| jj|  W d    n1 s"w   Y  |D ]}dt|j	vs4J q)W d    d S 1 s@w   Y  d S )NrD   Trp   z was fitted without feature names)
r   r	   rF   rb   rc   r!   r   rS   strmessage)rA   rq   warningr,   r,   r-   #test_pandas_column_name_consistencyl  s   "r   ensemblekernel_approximationc                 C   s&   t | drdS | jdd }|tvS )Nget_feature_names_outTr   r/   )r   
__module__split"GET_FEATURES_OUT_MODULES_TO_IGNORE)transformermoduler,   r,   r-   '_include_in_get_feature_names_out_check  s   
r   c                 C   s   g | ]}t |r|qS r,   )r   )r   r   r,   r,   r-   r     s    r   r   c                 C   sT   t |  ttd t| jj|  t| jj|  W d    d S 1 s#w   Y  d S rC   )r   r	   rF   r#   r   rS   r$   )r   r,   r,   r-   'test_transformers_get_feature_names_out  s   "r   SGDOneClassSVMr*   c                 C   s   g | ]
\}}|t vr|qS r,   )VALIDATE_ESTIMATOR_INIT)r   r)   r   r,   r,   r-   r     s    c                    st   dd t | j D }dddtddgdgi g g}|D ]  fd	d
|D }| di |}|jdi | qdS )z3Check that init or set_param does not raise errors.c                 S   s    g | ]\}}|j tjkr|qS r,   )kindr   VAR_KEYWORD)r   r)   r   r,   r,   r-   r     s
    zMtest_estimators_do_not_raise_errors_in_init_or_set_params.<locals>.<listcomp>g      @
helloworldr   g      @r/   c                    s   i | ]}| qS r,   r,   )r   keyvaluer,   r-   r     s    zMtest_estimators_do_not_raise_errors_in_init_or_set_params.<locals>.<dictcomp>Nr,   )r   r   r   nparrayr   )r*   paramssmoke_test_values
new_paramsr   r,   r   r-   9test_estimators_do_not_raise_errors_in_init_or_set_params  s   	r   )r/   r1   )Y__doc__rV   rb   r`   r   r   inspectr   r   r   	itertoolsr   r   	functoolsr   rT   numpyr   sklearn.utilsr   sklearn.utils._testingr	   sklearn.exceptionsr
   r   sklearn.utils.estimator_checksr   r[   sklearn.decompositionr   sklearn.linear_model._baser   sklearn.linear_modelr   r   sklearn.model_selectionr   r   sklearn.experimentalr   r   r   sklearn.pipeliner   r   sklearn.utils._tagsr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r.   r4   r   parametrizer>   rB   listrK   rN   rn   r{   r}   r   r   r   r   r   r   r   r   r   column_name_estimatorsr   r   r   GET_FEATURES_OUT_ESTIMATORSr   r   r   r   r,   r,   r,   r-   <module>   s    ,
	






%,





