o
    \i                     @   s  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
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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#m$Z$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/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=m>Z> ddgddgddgddgddgddggZ?g dZ@eddddfZAeddddddfZBeddddfZCedddddfZDe ZEejFGd ed!eAfed!eBfed"eAfed"eBfed!eCfed"eCfe5d"eCfe'd"eCfe'd"eDfe(d"eAfe(d"eBfe)d"eDfgejFGd#d$ejFGd%dgddgfejFGd&d'ejFGd(d)d*gd+d, ZHd-d. ZIejFGd#dd/gd0d1 ZJejFGd#dd/gd2d3 ZKejFGd4g d5d6d7 ZLejFGd8eMd9ejFGd:e' d"fedd;d"fedd;d<fedd;d"fedd;d<fgd=d> ZNejFGd?eMdd@dA ZOejFGdBedd;edd;fejFGd8dCdDdE ZPejFGdBe' edd;edddddFe5dd;fejFGdGdHdIdJ ZQejFGdKejRjSejRjTejUjVejWjXejWjYejUjZfdLdM Z[G dNdO dOe	eZ\ejFGdPedd!dQd%dgidRfe' dgdSdTdUfedd;dgdSd<dVdWfedd;dgdSd!dVdWfe' dgd<dXdYdZfe' dgd<d[dYdZfe' dgd<d\d]fe' ddgg d^e]d_d`dadbfgdcdd Z^ejFGdee' edd;gejFGd%ddfgdgdh Z_ejFGdee' edd;gdidj Z`ejFGdee' edd;gdkdl Zadmdn Zbdodp Zcdqdr Zddsdt ZeejFGdudvgdwdwfdvgddfgdxdy ZfejFGdzdvgdvg d{id|fdvgdvd}d~gidfdvgdvd}gidfgdd ZgejFGdzdgddvdgidfdgddvgidfdvdgd}d~gdvdgdd|fgdd ZhejFjGdee(dddedd9dgddgdejFjGddee2 dd dD fe1 dd dD fee2 dd dD fddgg ddejFjGd%ddgdd dD gddgddd ZiejFjGddddg did_feEjjd ddfeEjjd eEjjd ekd}d~gidfddgddfddgdg didfdd dD ddfdd dD eEjjd g didfdd dD dg didfdd dD eEjjd ddwgidfg dddfgg dddd ZlejFGdee' e( e e gdd ZmejFGde'eDfe(eAfgdd ZnejFGde'eDfe(eAfgdd ZoejFGdee' e( e e gejFGdg ddd ZpejFGde'eDfe(eAfgdd Zqdd Zrdd Zsdd Ztdd ZuddÄ Zvddń ZwdS )z,
Testing for the partial dependence module.
    N)BaseEstimatorClassifierMixincloneis_regressor)KMeans)make_column_transformer)	load_irismake_classificationmake_regression)DummyClassifier)GradientBoostingClassifierGradientBoostingRegressorHistGradientBoostingClassifierHistGradientBoostingRegressorRandomForestRegressor)NotFittedError)SimpleImputer)partial_dependence)_grid_from_X_partial_dependence_brute_partial_dependence_recursion)LinearRegressionLogisticRegressionMultiTaskLasso)r2_score)make_pipeline)OneHotEncoderPolynomialFeaturesRobustScalerStandardScalerscale)DecisionTreeRegressor)assert_is_subtree)assert_allcloseassert_array_equal)	_IS_32BIT)check_random_state      )r(   r(   r(   r)   r)   r)   2   )	n_samplesrandom_state   )r,   	n_classesn_clusters_per_classr-   )r,   	n_targetsr-   zEstimator, method, dataautobrutegrid_resolution)   
   featureskind)average
individualbothuse_custom_valuesTFc              	      sL  |  }t |dr|jdd |\\ }}	 jd }
d }|r)d fdd|D }| | t| ||||d}||d	 }}|	gfd
dtt|D R }|	|
gfddtt|D R }|dkrq|jj|kspJ n|dkr~|jj|ks}J n|jj|ksJ |jj|ksJ t|f}|d usJ t	
|j|ksJ d S )Nn_estimatorsr*   )r=   r   r5   c                    s   i | ]}| d |f qS )N ).0fXr4   r>   /var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/sklearn/inspection/tests/test_partial_dependence.py
<dictcomp>r   s    z%test_output_shape.<locals>.<dictcomp>)rB   r7   methodr8   r4   custom_valuesgrid_valuesc                       g | ]} qS r>   r>   r?   _r4   r>   rC   
<listcomp>       z%test_output_shape.<locals>.<listcomp>c                    rH   r>   r>   rI   rK   r>   rC   rL      rM   r9   r:   )hasattr
set_paramsshapefitr   rangelenr9   r:   npasarray)	EstimatorrE   datar4   r7   r8   r<   estyr1   n_instancesrF   resultpdpaxesexpected_pdp_shapeexpected_ice_shapeexpected_axes_shaper>   rA   rC   test_output_shapeG   sF   

	"ra   c            
      C   s  d} d}ddg}t ddgddgg}t|| ||i \}}t|ddgddgddgddgg t||j t jd}d	}|jd
d}t|| ||i d\}}|j|| |jd fks[J t |jd|fksgJ |j	|j	ksoJ d}d||d d df< |
| t|| ||i d\}}|j|| |jd fksJ |d j|fksJ |d j|fksJ |j	|j	ksJ |jd
d}d||d d df< g d}t|| ||d|id\}}|j|t| |jd fksJ |d j|fksJ |d jt|fksJ |j	|j	ksJ |jd
d}g d}	d}t|| ||d|	id\}}|j|t|	 |jd fks/J |d jt|	fks<J |d j|fksGJ |j	t |t |	j	ksWJ t ddgddgddgg}t|| ||dg did\}}|j	tks|J d S )N皙?ffffff?d   Fr)   r*   r.      r      )   r*   sizer4   rF      90  r   r*   r.   )is_categoricalr4   rF   )r   r*   r.   rf   r5      r5   abcrq   rr   rs   )rT   rU   r   r$   TrandomRandomStatenormalrP   dtypeshufflerS   result_typearrayobject)
percentilesr4   ro   rB   gridr]   rngn_unique_valuescol_1_rangecol_0_ranger>   r>   rC   test_grid_from_X   s   "



 
" 

r   re   c                 C   sj   t d}d}dg}|dg di}t|||| i d\}}|jd|jd fks*J |d	 jd
ks3J dS )jCheck that `_grid_from_X` always sample from categories and does not
    depend from the percentiles.
    pandasrb   Tcat_feature)ABCr   r   DErk   r5   r)   r   )r5   N)pytestimportorskip	DataFramer   rP   )r4   pdr~   ro   rB   r   r]   r>   r>   rC   !test_grid_from_X_with_categorical   s   

r   c                 C   s   t d}d}ddg}|g dg dd}| }t|||| i d\}}| d	krK|jd
ks1J |d jd |d ks>J |d jd | ksIJ dS |jdksRJ |d jd |d ks_J |d jd |d kslJ dS )r   r   rb   TF)
r   r   r   r   r   r   r   r   r   r   )
r)   r)   r)   r*   r5   rp   rp   rp   rp      )catnumrk   r.   )rg   r*   r   r   r)   )   r*   r   N)r   r   r   nuniquer   rP   )r4   r   r~   ro   rB   r   r   r]   r>   r>   rC   #test_grid_from_X_heterogeneous_type  s.   

r   z%grid_resolution, percentiles, err_msg))r*   )r   g-C6?zpercentiles are too close)re   )r)   r*   r.   rf   .'percentiles' must be a sequence of 2 elements)re   rm   r   )re   )r(   rd   ('percentiles' values must be in \[0, 1\])re   )rc   r*   r   )re   )g?皙?z+percentiles\[0\] must be strictly less than)r)   rb   z1'grid_resolution' must be strictly greater than 1c                 C   sb   t ddgddgg}dg}tjt|d t|||| i d W d    d S 1 s*w   Y  d S )Nr)   r*   r.   rf   Fmatch)rF   )rT   rU   r   raises
ValueErrorr   )r4   r~   err_msgrB   ro   r>   r>   rC   test_grid_from_X_error,  s
   "r   target_featurer5   zest, methodr-   	recursionc                 C   s   t dddd\}}||  }t| ||} tj|gtjd}tdgdgg}|dkr9t| |||dd	\}}nt| ||}g }	d
D ]}
|	 }|
|d d |f< |	
| |  qC|d }|dkrfdnd}tj||	|dsrJ d S )Nr   r5   )r-   
n_featuresn_informativery         ?{   r3   r2   )response_method)r   r   r   r   gMbP?)rtol)r
   meanr   rQ   rT   r|   intpr   r   copyappendpredictallclose)rX   rE   r   rB   rY   r7   r   r\   predictionsmean_predictionsvalX_r   r>   r>   rC   test_partial_dependence_helpers?  s$   
r   seedc                 C   sn  t j| }d}d}|||}||d }||  }d}d}tdd d||d}t|t t j	j
}	tddd||	d	}
t||	d
}||| |
|| ||| zt|j|
d j t|j|d j W n ty{   tsxJ dY d S w |ddd}t|D ]+}t j|gt jd}t|||}t|
||}t|||}t j|| t j|| qd S )N  r5   r6   r   r)   F)r=   max_features	bootstrap	max_depthr-   squared_error)r=   learning_rate	criterionr   r-   )r   r-   )r   r   z)this should only fail on 32 bit platformsr+   r(   r   )rT   rv   rw   randnr   r   r&   randintiinfoint32maxr   r!   rQ   r"   tree_AssertionErrorr%   reshaperR   r|   r   r   testingr#   )r   r   r,   r   rB   rY   r   	tree_seedforestequiv_random_stategbdttreer   r@   r7   
pdp_forestpdp_gbdtpdp_treer>   r>   rC   /test_recursion_decision_tree_vs_forest_and_gbdtx  sV   
r   rX   )r   r)   r*   r.   rf   r5   c                 C   sz   t dddd\}}t|dksJ t| ||} t| ||gdddd}t| ||gdd	dd}t|d |d d
d d S )Nr*   r)   r/   r0   r-   r   decision_functionr   r9   )r   rE   r8   r3   gHz>)atol)r	   rT   r   r   rQ   r   r#   )rX   r   rB   rY   preds_1preds_2r>   r>   rC    test_recursion_decision_function  s(   	r   )r-   min_samples_leafmax_leaf_nodesmax_iterpower)r)   r*   c                 C   s   t jd}d}d}|j|dfd}|d d |f | }t| ||} t| |g|ddd}|d	 d d
d}|d d }	t|d	|}t
 ||	}
t|	|
|}|dks[J d S )Nr      r*   r5   ri   r   r9   )r7   rB   r4   r8   rG   r(   r)   )degreeGz?)rT   rv   rw   rx   r   rQ   r   r   r   fit_transformr   r   r   )rX   r   r   r,   target_variablerB   rY   r\   new_Xnew_ylrr2r>   r>   rC   #test_partial_dependence_easy_target  s   r   rV   c                 C   sv   t dddd\}}t||gj}|  }||| tjtdd t||dg W d    d S 1 s4w   Y  d S )Nr.   r)   r   r   z3Multiclass-multioutput estimators are not supportedr   )	r	   rT   r|   ru   rQ   r   r   r   r   )rV   rB   rY   rX   r>   r>   rC   test_multiclass_multioutput  s   "r   c                   @   s   e Zd Zdd ZdS ) NoPredictProbaNoDecisionFunctionc                 C   s   ddg| _ | S )Nr   r)   )classes_)selfrB   rY   r>   r>   rC   rQ   ,  s   
z$NoPredictProbaNoDecisionFunction.fitN)__name__
__module____qualname__rQ   r>   r>   r>   rC   r   +  s    r   zestimator, params, err_msg)r-   n_initz4'estimator' must be a fitted regressor or classifierpredict_proba)r7   r   z7The response_method parameter is ignored for regressors)r7   r   rE   zC'recursion' method, the response_method must be 'decision_function'r:   )r7   rE   r8   zCThe 'recursion' method only applies when 'kind' is set to 'average'r;   )r7   rE   z=Only the following estimators support the 'recursion' method:r)   r*   r.   )r.   r.   r   r)   )r7   rF   zYThe custom grid for some features is not a one-dimensional array. Feature 1: 2 dimensionsc                 C   sd   t dd\}}t| ||} tjt|d t| |fi | W d    d S 1 s+w   Y  d S )Nr   r   r   r	   r   rQ   r   r   r   r   )	estimatorparamsr   rB   rY   r>   r>   rC   test_partial_dependence_error2  s
   5"r   r   i'  c                 C   sd   t dd\}}t| ||} d}tjt|d t| ||g W d    d S 1 s+w   Y  d S )Nr   r   zall features must be inr   r   )r   r7   rB   rY   r   r>   r>   rC   /test_partial_dependence_unknown_feature_indicesn  s   "r   c                 C   s|   t d}tdd\}}||}t| ||} dg}d}t jt|d t| || W d    d S 1 s7w   Y  d S )Nr   r   r   rv   z/A given column is not a column of the dataframer   )	r   r   r	   r   r   rQ   r   r   r   )r   r   rB   rY   dfr7   r   r>   r>   rC   .test_partial_dependence_unknown_feature_string{  s   

"r   c                 C   s8   t dd\}}t| ||} t| t|dgdd d S )Nr   r   r9   )r8   )r	   r   rQ   r   list)r   rB   rY   r>   r>   rC   test_partial_dependence_X_list  s   r   c                  C   s   t t dd} | tt tjtdd t| tdgddd W d    n1 s)w   Y  tjtdd t| tdgddd W d    d S 1 sKw   Y  d S )Nr   )initr-   z9Using recursion method with a non-constant init predictorr   r   r9   )rE   r8   )	r   r   rQ   rB   rY   r   warnsUserWarningr   )gbcr>   r>   rC   (test_warning_recursion_non_constant_init  s   "r   c            	      C   s   d} t jd}|jd| td}|| }| }||   || < t j||f }t | }d||< t	ddd}|j
|||d	 t||dgd
d}t |d
 |d d dksYJ d S )Nr   i@ r*   )rj   ry   g     @@r6   r)   )r=   r-   sample_weightr9   )r7   r8   rG   r   r   )rT   rv   rw   r   boolrandr   c_onesr   rQ   r   corrcoef)	Nr   maskxrY   rB   r   clfr\   r>   r>   rC   9test_partial_dependence_sample_weight_of_fitted_estimator  s   

$r  c                  C   sh   t dd} | jtttttd tjt	dd t
| tdgd W d    d S 1 s-w   Y  d S )Nr)   r   r   z#does not support partial dependencer   r7   )r   rQ   rB   rY   rT   r  rS   r   r   NotImplementedErrorr   r  r>   r>   rC   test_hist_gbdt_sw_not_supported  s   
"r  c                  C   s   t  } t }tdd}t||}||| j| j || j| j d}t|| j|gddd}t||	| j|gddd}t
|d |d  t
|d d |d d |j|  |j|   d S )N*   r   r   r6   r9   r7   r4   r8   rG   )r   r   r   r   rQ   r   rW   targetr   	transformr#   scale_mean_)irisscalerr  piper7   pdp_pipepdp_clfr>   r>   rC    test_partial_dependence_pipeline  s,   



r  z*features, grid_resolution, n_vals_expectedrq   r6   c           	      C   s   t d}t }tjd}||jddddtj	|jddddtj	d}|
|jdddd}||| t||| |dd	}|d j|ksMJ d S )
Nr   r   r6   re   ri   rq   rr   r*   r9   r  )r   r   r   rT   rv   rw   r   r   astypefloat64SeriesrQ   r   rj   )	r7   r4   n_vals_expectedr   modelr   rB   rY   part_depr>   r>   rC   4test_partial_dependence_binary_model_grid_resolution  s$   

r   z(features, custom_values, n_vals_expected      ?       @      @g      @rf   r"  r#  c                 C   sl   t d}t }|g dg dd}|g d}||| t||| d|dd}|d j|ks4J d S )	Nr   r!  )g      @g      @g       @g      "@r  r   r)   r   r)   r.   r9   r7   r4   rF   r8   )r   r   r   r   r  rQ   r   rj   )r7   rF   r  r   r  rB   rY   r  r>   r>   rC   2test_partial_dependence_binary_model_custom_values	  s   
r'  rr   r  c           	      C   s   t d}ttddt t }|g dg dd}|g d}||| |g dg dd}t	||| d	|d
d}|d
 j
|ksHJ d S )Nr   most_frequent)strategyr!  )rq   rr   rq   rr   r  r%  )rq   rr   rq   Nr.   r9   r&  )r   r   r   r   r   r   r   r  rQ   r   rj   )	r7   rF   r  r   plrB   rY   	X_holdoutr  r>   r>   rC   .test_partial_dependence_pipeline_custom_values&  s"   
r,  r   r   r-   )r-   r=   zestimator-brutezestimator-recursion)idspreprocessorc                 C      g | ]}t j| qS r>   r  feature_namesr?   ir>   r>   rC   rL   S      rL   r   r*   c                 C   r0  r>   r1  r3  r>   r>   rC   rL   T  r5  r)   r.   c                 C   r0  r>   r1  r3  r>   r>   rC   rL   W  r5  passthrough)	remainder)Nonezcolumn-transformerzcolumn-transformer-passthroughc                 C   r0  r>   r1  r3  r>   r>   rC   rL   _  r5  zfeatures-integerzfeatures-stringc                 C   s  t d}|jttjtjd}t|t| }|	|tj
 t|||ddd}|d ur7t||}ddg}n|}ddg}t| 	|tj
}	t|	||d	ddd
}
t|d |
d  |d ur{|jd }t|d d |
d d |jd  |jd   d S t|d d |
d d  d S )Nr   columnsr6   r9   r  r   r)   r*   r3   )r7   rE   r4   r8   standardscalerrG   )r   r   r   r    r  rW   r2  r   r   rQ   r  r   r   r#   named_transformers_r  r  )r   r/  r7   r   r   r  r  X_procfeatures_clfr  r  r  r>   r>   rC   !test_partial_dependence_dataframeF  s:   


	

rA  z*features, custom_values, expected_pd_shape)r   Nr.   r6   r"  r#  r$  rB  )r.   r*   )r.   r6   r6   )   r   	   r6   )r.   r6   rf   c                 C   r0  r>   r1  r3  r>   r>   rC   rL     r5  c                 C   r0  r>   r1  r3  r>   r>   rC   rL     r5  )r)   r*   r.   r6   c                 C   r0  r>   r1  r3  r>   r>   rC   rL     r5  c                 C   r0  r>   r1  r3  r>   r>   rC   rL     r5  rn   )r.   r6   r*   r6   )TFTF)z
scalar-intzscalar-int-custom-valuesz
scalar-strzscalar-str-custom-valueszlist-intzlist-int-custom-valueszlist-strzlist-str-custom-valuesz list-str-custom-values-incorrectzlist-str-three-featuresr  c                 C   s   t d}|jtjtjd}tt dd dD ft dd dD f}t	|t
dd	d
}||tj t||| dd|d}|d j|ksFJ t|d t|d jd ksWJ d S )Nr   r;  c                 S   r0  r>   r1  r3  r>   r>   rC   rL     r5  z8test_partial_dependence_feature_type.<locals>.<listcomp>r6  c                 S   r0  r>   r1  r3  r>   r>   rC   rL     r5  r7  r   r   r-  r6   r9   )r7   r4   r8   rF   rG   r)   )r   r   r   r  rW   r2  r   r   r   r   r   rQ   r  r   rP   rS   )r7   rF   expected_pd_shaper   r   r/  r  r  r>   r>   rC   $test_partial_dependence_feature_type  s(   
'&rG  c                 C   s   t j}tt ddgft ddgf}t|| }tjtdd t	||ddgdd W d    n1 s3w   Y  tjtdd t	| |ddgdd W d    d S 1 sUw   Y  d S )	Nr   r*   r)   r.   zis not fitted yetr   r6   )r7   r4   )
r  rW   r   r   r   r   r   r   r   r   )r   rB   r/  r  r>   r>   rC    test_partial_dependence_unfitted  s   

"rH  zEstimator, datac           	      C   sj   |  }|\\}}}| || t||ddgdd}t||ddgdd}tj|d dd}t||d  d S )Nr)   r*   r9   rB   r7   r8   r:   )axis)rQ   r   rT   r   r#   )	rV   rW   rX   rB   rY   r1   pdp_avgpdp_indavg_indr>   r>   rC   +test_kind_average_and_average_of_individual  s   rN  c           	      C   s   |  }|\\}}}t |jd }||| t||ddgdd}t||ddgd|d}t|d |d  t|d |d  dS )	zDCheck that `sample_weight` does not have any effect on reported ICE.r   r)   r*   r:   rI  )rB   r7   r8   r   rG   N)rT   arangerP   rQ   r   r#   )	rV   rW   rX   rB   rY   r1   r   pdp_nswpdp_swr>   r>   rC   =test_partial_dependence_kind_individual_ignores_sample_weight  s   	rR  non_null_weight_idx)r   r)   r(   c                 C   s   t jt j}}tt ddgft ddgf}t|t| ||}t	
|}d||< t||ddgd|dd}t||ddgddd	}t|rGdntt	|}	t|	D ]}
t|d |
 | |d |
  qRd
S )a   Check that if we pass a `sample_weight` of zeros with only one index with
    sample weight equals one, then the average `partial_dependence` with this
    `sample_weight` is equal to the individual `partial_dependence` of the
    corresponding index.
    r   r*   r)   r.   r9   r6   )r8   r   r4   r:   )r8   r4   N)r  rW   r  r   r   r   r   r   rQ   rT   
zeros_liker   r   rS   uniquerR   r#   )r   rS  rB   rY   r/  r  r   rQ  rL  
output_dimr4  r>   r>   rC   +test_partial_dependence_non_null_weight_idx  s.   

rW  c                 C   s   |  }|\\}}}| || d|ddgdd}}t|fi |d|i}tt|}t|fi |d|i}	t|d |	d  dtt| }t|fi |d|i}
t|d |
d  dS )zFCheck that `sample_weight=None` is equivalent to having equal weights.Nr)   r*   r9   rI  r   )rQ   r   rT   r  rS   r#   )rV   rW   rX   rB   rY   r1   r   r   pdp_sw_nonepdp_sw_unitpdp_sw_doublingr>   r>   rC   7test_partial_dependence_equivalence_equal_sample_weight1  s   
r[  c                  C   sx   t  } t\\}}}t|}| || tjtdd t| |dg|dd dd W d   dS 1 s5w   Y  dS )zjCheck that we raise an error when the size of `sample_weight` is not
    consistent with `X` and `y`.
    zsample_weight.shape ==r   r   r)   Nr6   )r7   r   r4   )	r   binary_classification_datarT   	ones_likerQ   r   r   r   r   rX   rB   rY   r1   r   r>   r>   rC   0test_partial_dependence_sample_weight_size_errorI  s   
"r_  c                  C   st   t  } t\\}}}t|}| j|||d tjtdd t| |dgd|d W d   dS 1 s3w   Y  dS )zaCheck that we raise an error when `sample_weight` is provided with
    `"recursion"` method.
    r   z+'recursion' method can only be applied whenr   r   r   )r7   rE   r   N)	r   regression_datarT   r]  rQ   r   r   r   r   r^  r>   r>   rC   4test_partial_dependence_sample_weight_with_recursionX  s   
"ra  c                  C   s   t jdddt jgtddd} t g d}dd	lm} t|dd
t 	| |}t
jtdd t|| dgd W d   dS 1 sEw   Y  dS )znCheck that we raise a proper error when a column has mixed types and
    the sorting of `np.unique` will fail.r   r   r   r   r(   r)   r%  r   )OrdinalEncoder)encoded_missing_valuez'The column #0 contains mixed data typesr   r	  N)rT   r|   nanr}   r   sklearn.preprocessingrb  r   r   rQ   r   r   r   r   )rB   rY   rb  r  r>   r>   rC   test_mixed_type_categoricalg  s    "rf  c                  C   sL  t ddd} t g d}t }|| | tjtt	
dd t|| dd W d    n1 s5w   Y  tjtt	
d	d t|| d
gdgd W d    n1 sYw   Y  tjtt	
dd t|| dd
gd W d    n1 s|w   Y  t  td t|| d
d
gd W d    d S 1 sw   Y  d S )Nr   rf   r*   r%  z#The column 0 contains integer data.r   r   r	  z#The column 1 contains integer data.r)   r7   categorical_featureserror)rT   rO  r   r|   r   rQ   r   r   FutureWarningreescaper   warningscatch_warningssimplefilter)rB   rY   r  r>   r>   rC   $test_reject_array_with_integer_dtypew  s.   




"rp  c                  C   s,  t d} | g dg dg dd}tg d}t }||| t jtt	
dd t||dd	 W d    n1 s@w   Y  t jtt	
dd t||d
dgd	 W d    n1 scw   Y  t   td t||d
gd	 t||dgdgd W d    d S 1 sw   Y  d S )Nr   rC  r   rt   )r   r)   r   z%The column 'c' contains integer data.r   rs   r	  rq   ri  rg  )r   r   r   rT   r|   r   rQ   r   rj  rk  rl  r   rm  rn  ro  )r   rB   rY   r  r>   r>   rC   %test_reject_pandas_with_integer_dtype  s2   




"rq  c                  C   sl   t t t } | tjtj tjt	t
dd t| tjdgg d W d   dS 1 s/w   Y  dS )zYCheck that we raise the proper exception when `categorical_features`
    is an empty listzPassing an empty list (`[]`) to `categorical_features` is not supported. Use `None` instead to indicate that there are no categorical features.r   r   )r   rB   r7   rh  N)r   r   r   rQ   r  rW   r  r   r   r   rk  rl  r   r  r>   r>   rC   2test_partial_dependence_empty_categorical_features  s   "rr  )x__doc__rk  rm  numpyrT   r   sklearnsklearn.baser   r   r   r   sklearn.clusterr   sklearn.composer   sklearn.datasetsr   r	   r
   sklearn.dummyr   sklearn.ensembler   r   r   r   r   sklearn.exceptionsr   sklearn.imputer   sklearn.inspectionr   &sklearn.inspection._partial_dependencer   r   r   sklearn.linear_modelr   r   r   sklearn.metricsr   sklearn.pipeliner   re  r   r   r   r   r    sklearn.treer!   sklearn.tree.tests.test_treer"   sklearn.utils._testingr#   r$   sklearn.utils.fixesr%   sklearn.utils.validationr&   rB   rY   r\  multiclass_classification_datar`  multioutput_regression_datar  markparametrizera   r   r   r   r   rR   r   r   r   r   r   DecisionTreeClassifierExtraTreeClassifierensembleExtraTreesClassifier	neighborsKNeighborsClassifierRadiusNeighborsClassifierRandomForestClassifierr   r   r  r   r   r   r   r   r  r  r  r   r'  r,  rA  r2  r|   rG  rH  rN  rR  rW  r[  r_  ra  rf  rp  rq  rr  r>   r>   r>   rC   <module>   sN   (7^

 

.
F





4	








+"
%
	

	
