a
    )a                     @   sr   d dl Z d dlZd dlmZ d dlmZ d dlmZ ej	d dfddZ
dd Zd	d
 Zdd Zdd Zdd ZdS )    N)assert_array_almost_equal)LinearRegression)make_regressionc                    s^  z&ddl m} |ttj|fvr$tj}W n& tyL   |ttjfvrHtj}Y n0 t| ||d\}}|tkrt|}t|D ]\}}	t|	||< qxt|}rt t|D ]2\}}	t|	D ] \}
}|
   ||| |
< qqzbddl m} ||kr>||d d d}||}r>t  fddt|j	D }|
|}W n tyT   Y n0 ||fS )Nr   )	DataFramerandom_state)dataindexcolumnsc                    s   i | ]\}}||   qS  r   ).0icolZn_typestypesr   Mlib/python3.9/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py
<dictcomp>8       z make_dataset.<locals>.<dictcomp>)pandasr   listnparrayImportErrorr   	enumeratelenr
   Zastype)Z	n_samplesZ
n_featureskindr   r   r   xyr   rowjZcellZ
dir_dtypesr   r   r   make_dataset   s<    

r    c            
      C   s   t d} tdd\}}tdddd\}}tdd| j\}}tdd| jdd\}}t }||| t }	|	|| t|jd|	jd t|j	|	j	 t|
|d|	
|d d S )Nr   d         r   r#   )pytestimportorskipr    r   r   fitr   coef_reshape
intercept_predict)
pdx_trainy_trainx_test_
df_x_train
df_y_train	df_x_test	array_regdf_regr   r   r   &test_linear_array_vs_dataframe_homogen@   s"    
r7   c                  C   s   t d} tjtjf}tdd\}}tdddd\}}tdd| j|d\}}tdd| jd|d\}}t }	|	|| t }
|
|| t	|	j
d|
j
d t	|	j|
j t	|	|d|
|dd	d
 d S )Nr   r!   r"   r#   r   r   r   r   r$      )Zdecimal)r&   r'   r   float64float32r    r   r   r(   r   r)   r*   r+   r,   r-   r   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   (test_linear_array_vs_dataframe_heterogenW   s$    
r>   c                  C   s   t d} tjtjf}tddt|d\}}tddtd|d\}}tdd| j|d\}}tdd| jd|d\}}t }	|		|| t }
|
	|| t
|	jd|
jd t
|	j|
j t
|	|d|
|d d S Nr   r!   r"   r8   r#   r9   r$   )r&   r'   r   r;   r<   r    r   r   r   r(   r   r)   r*   r+   r,   r=   r   r   r   5test_linear_array_vs_dataframe_heterogen_double_floatp   s$    
r@   c                  C   s   t d} tjtjf}tddt|d\}}tddtd|d\}}tdd| j|d\}}tdd| jd|d\}}t }	|		|| t }
|
	|| t
|	jd|
jd t
|	j|
j t
|	|d|
|d d S r?   )r&   r'   r   r;   int32r    r   r   r   r(   r   r)   r*   r+   r,   r=   r   r   r   3test_linear_array_vs_dataframe_heterogen_double_int   s$    
rB   c                  C   s   t d} tjtjf}tddt|d\}}tddtd|d\}}tdd| j|d\}}tdd| jd|d\}}t }	|		|| t }
|
	|| t
|	jd|
jd t
|	j|
j t
|	|d|
|d d S r?   )r&   r'   r   r<   rA   r    r   r   r   r(   r   r)   r*   r+   r,   r=   r   r   r   2test_linear_array_vs_dataframe_heterogen_float_int   s$    
rC   )r&   Znumpyr   Zsklearn.utils._testingr   Zsklearn.linear_modelr   Zsklearn.datasetsr   r   r    r7   r>   r@   rB   rC   r   r   r   r   <module>   s   (