U
    9%eA                     @   s  d 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mZ dd
lmZmZmZ ddlmZ dd Zdd Zdd Zejde e e e  e!de fde fge"de fde fggdd Z#dS )z6
Testing for the base module (sklearn.ensemble.base).
    )OrderedDictN)ensemble)	load_iris)LinearDiscriminantAnalysis)BaggingClassifier)_set_random_states)SelectFromModel)LogisticRegression
PerceptronRidge)Pipelinec                  C   s  t td ddd} t }| |j|j g | _|   tj	
d}| j|d | j|d | jdd dt| ksvtdt| jkstt| d tst| d jd kstt| d jtstt| d jtst| d j| d jkstt t tdd}||j|j d S )	Nrandom_state   )	estimatorZn_estimatorsF)appendr         )r   r
   r   fitdatatargetZestimators_Z_make_estimatornprandomZRandomStatelenAssertionError
isinstancer   intZint32)r   Zirisr   Znp_int_ensemble r   _/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sklearn/ensemble/tests/test_base.py	test_base   s0      r   c                  C   sp  t t dd td d} | jd ks&tt | d  t| jts@tt | d t| jtsZttd d}t |d | j|jks~tdd }t| }t |d t|jd d j	jtstt|jd d jtst|
 d |
 d	 kstG d
d dt}G dd dt}||fD ]V}|| }t |d |
 d |
 d ksJt|
 d	 |
 d	 kstqd S )N   r   r   c                   S   s    dt td dfdtd dfgS )Nselr   Zclf)r   r
   r   r   r   r   
make_stepsI   s    z*test_set_random_states.<locals>.make_stepsr   r   Zsel__estimator__random_stateZclf__random_statec                   @   s   e Zd Zdd ZdS )z2test_set_random_states.<locals>.AlphaParamPipelinec                 _   s"   t j| f|| }tt|S )Nr   
get_paramsitemsr   sortedselfargskwargsparamsr   r   r   r$   \   s    z=test_set_random_states.<locals>.AlphaParamPipeline.get_paramsN__name__
__module____qualname__r$   r   r   r   r   AlphaParamPipeline[   s   r0   c                   @   s   e Zd Zdd ZdS )z0test_set_random_states.<locals>.RevParamPipelinec                 _   s&   t j| f|| }tt|ddS )NT)reverser#   r'   r   r   r   r$   a   s    z;test_set_random_states.<locals>.RevParamPipeline.get_paramsNr,   r   r   r   r   RevParamPipeline`   s   r2   )r   r   r
   r   r   r   r   r   Zstepsr   r$   )Zclf1Zclf2r"   Zest1r0   r2   clsZest2r   r   r   test_set_random_states6   s@    














r4   c               	   C   sb   t ddgddgg} t ddg}tt t d}d}tjt|d || | W 5 Q R X d S )	Nr   r   r      r   )r   Zbase_estimatorzEBoth `estimator` and `base_estimator` were set. Only set `estimator`.)match)r   arrayr   r
   pytestZraises
ValueErrorr   )Xymodelerr_msgr   r   r   #test_validate_estimator_value_errors   s    r>   r<   abc                 C   s2   dgdgg}ddg}|  || t| dr.td S )Nr   r   r   Z
estimator_)r   hasattrr   )r<   r:   r;   r   r   r   test_estimator_attribute_error}   s    rB   )$__doc__collectionsr   numpyr   r8   Zsklearnr   Zsklearn.datasetsr   Zsklearn.discriminant_analysisr   Zsklearn.ensembler   Zsklearn.ensemble._baser   Zsklearn.feature_selectionr   Zsklearn.linear_modelr	   r
   r   Zsklearn.pipeliner   r   r4   r>   markZparametrizeZGradientBoostingClassifierZGradientBoostingRegressorZHistGradientBoostingClassifierZHistGradientBoostingRegressorZVotingClassifierZVotingRegressorrB   r   r   r   r   <module>   s6   =
