o
    ?Hh                     @   s  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m	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZ d dlmZmZmZmZmZm Z m!Z! e Z"dd	 Z#ej$%d
e eddg fe edddgfe eddg feddeddg fededdg fededdg feddeddg fe eddg feddeddg fg	dd Z&ej$%de efe efe efeddefedefedefeddefe efeddefg	dd Z'dS )    N)clone)	load_iris)train_test_split)MaxAbsScalerMinMaxScalerPowerTransformerQuantileTransformerRobustScalerStandardScalermaxabs_scaleminmax_scalepower_transformquantile_transformrobust_scalescale)assert_allcloseassert_array_equal)BSR_CONTAINERSCOO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERSDIA_CONTAINERSDOK_CONTAINERSLIL_CONTAINERSc                 C   s*   | dd|gf t | dd|f   S )z"Get non NaN samples in column of XN)npisnan)Xcol r   g/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/sklearn/preprocessing/tests/test_common.py_get_valid_samples_by_column%   s   *r    z9est, func, support_sparse, strictly_positive, omit_kwargsTFclip)	with_meanzyeo-johnsonzbox-cox
   )n_quantiles)with_centeringc              	   C   s@  t jd}tj }d}t j||j|jd |d|j|jd |df< |r/|t 	|d 7 }t
|dd\}}	t jt |dd rEJ t jt |dd sSJ t jt |	dd saJ t j|	d d df< t  td	t | ||	}
W d    n1 sw   Y  tt |
t |	 t  td	t | |}W d    n1 sw   Y  |  }|D ]}||}q||fi |}tt |t | t|t |  |t |   | |
}tt |t |	 t|t |  |	t |	   t|jd D ]a}| t|| t  td	t | |	d d |gf }W d    n	1 s<w   Y  t||
d d |gf  t |	d d |f  sp| t|	|}t||t |    q|rt| }t| }t  td	t |||	}||}W d    n	1 sw   Y  tt t t  t! t" t# D ]j}||}||	}t  td
t$ td	t |||}W d    n	1 sw   Y  t|% | t  td
t$ td	t ||}W d    n	1 sw   Y  t|% | qd S d S )N*   2   r   )size   g?)random_state)axiserrorignore)&r   randomRandomStateirisdatacopynanrandintshapenanminr   allr   anywarningscatch_warningssimplefilterRuntimeWarningfit	transformr   
get_paramspopr   inverse_transformranger    squeezer   r   r   r   r   r   r   r   PendingDeprecationWarningtoarray)estfuncsupport_sparsestrictly_positiveomit_kwargsrngr   	n_missingX_trainX_testXtXt_classkwargskwarg_Xt_funcXt_inviXt_colXt_col_nonan	est_dense
est_sparseXt_denseXt_inv_densesparse_container
X_train_sp	X_test_spXt_sp	Xt_inv_spr   r   r   test_missing_value_handling*   s   
&

"
"



	rb   z	est, func   c                 C   s   t d}tdddtjtjdddgtjtjdddtjtjdgg d	gj}|j|d
g dd}|d d|d< | |}| |}t	|| d S )Npandasr)      rc               )r)   re   rc   rf   rg   ri      rh   Int16)abc)dtypecolumnsrn   int)
pytestimportorskipr   arrayr3   T	DataFrameastypefit_transformr   )rF   rG   pdr   X_dfX_trans
X_df_transr   r   r   $test_missing_value_pandas_na_support   s   
	

r}   )(r9   numpyr   rr   sklearn.baser   sklearn.datasetsr   sklearn.model_selectionr   sklearn.preprocessingr   r   r   r   r	   r
   r   r   r   r   r   r   sklearn.utils._testingr   r   sklearn.utils.fixesr   r   r   r   r   r   r   r0   r    markparametrizerb   r}   r   r   r   r   <module>   sR    8$

_
