U
    ½mœd  ã                   @   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„ Zej	j
dd�ej	j
dd�ej	jeƒ  dd�d	œd
ej	j
dd�idœZdd„ Zdd„ Zd dd„Zdd„ Zd!dd„Zej	 dedƒ¡dd„ ƒZej	 dedƒ¡dd„ ƒZej	 dedƒ¡dd„ ƒZdS )"z&Test loaders for common functionality.é    Nc                  C   s*   zdd l } W dS  tk
r$   Y dS X d S )Nr   TF)ÚPILÚImportError)r   © r   ú[/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/sklearn/datasets/tests/test_common.pyÚis_pillow_installed   s
    r   z.X is a list and does not have a shape argument)Úreasonz)fetch_opeml requires a dataset name or idzpillow is not installed)Zfetch_20newsgroupsÚfetch_openmlZfetch_lfw_peopler   )Ú
return_X_yÚas_framec                 C   sd   zdd l }t d¡ W nH tk
r^   | j}|› d�}tjt|d�� | dd� W 5 Q R X Y nX d S )Nr   z-This test requires pandas to not be installedz# with as_frame=True requires pandas)ÚmatchT©r
   )ÚpandasÚpytestÚskipr   Ú__name__Zraises)Z
fetch_funcr   ÚnameZexpected_msgr   r   r   Úcheck_pandas_dependency_message(   s    
r   c                 C   sH   |dd�}t |tƒst‚|d j| jjks.t‚|d j| jjksDt‚d S )NT)r	   r   é   )Ú
isinstanceÚtupleÚAssertionErrorÚshapeÚdataÚtarget)ÚbunchÚdataset_funcZ	X_y_tupler   r   r   Úcheck_return_X_y6   s    
r   c                 C   s<  t  d¡}|dd�}t|dƒs"t‚t|j|jƒs4t‚t|j|jƒsFt‚|jj| jjksZt‚|j	j
dkrzt|j	|jƒsŒt‚nt|j	|jƒsŒt‚|j	jd | j	jd ks¨t‚|d k	rÆt |jj|k¡sÆt‚|d k	rät |j	j|k¡sät‚|ddd�\}}t||jƒ�st‚|j
dk�r&t||jƒ�s8t‚nt||jƒ�s8t‚d S )Nr   Tr   Úframer   r   )r
   r	   )r   ZimportorskipÚhasattrr   r   r   Z	DataFramer   r   r   ÚndimZSeriesÚnpÚallZdtypes)r   r   Zexpected_data_dtypeZexpected_target_dtypeÚpdZframe_bunchZframe_XZframe_yr   r   r   Úcheck_as_frame=   s&    

r#   c                   C   s   t j dd¡dkS )NZSKLEARN_SKIP_NETWORK_TESTSÚ1)ÚosÚenvironÚgetr   r   r   r   Ú_skip_network_testsY   s    r(   ©ÚloadÚfetchc                 #   s¦   t  | i ¡}t tj¡D ]ˆ\‰ }t |¡s,qt‡ fdd„|D ƒƒ}| t |¡j	k}|r|rt
jjˆ  d¡ontƒ dd�g}ˆ |krŽ| |ˆ  ¡ t
jˆ ||d�V  qd S )Nc                    s   g | ]}ˆ   |¡‘qS r   )Ú
startswith)Ú.0Út©r   r   r   Ú
<listcomp>c   s     z3_generate_func_supporting_param.<locals>.<listcomp>r+   z.Skip because fetcher requires internet network)Ú	conditionr   )Úmarks)ÚFETCH_PYTEST_MARKERSr'   ÚinspectÚ
getmembersÚsklearnZdatasetsÚ
isfunctionÚanyÚ	signatureÚ
parametersr   ÚmarkÚskipifr,   r(   ÚappendÚparam)r>   Zdataset_typeZmarkers_fetchÚobjZis_dataset_typeZis_support_paramr2   r   r/   r   Ú_generate_func_supporting_param]   s    
þÿr@   zname, dataset_funcr	   c                 C   s   |ƒ }t ||ƒ d S ©N)r   ©r   r   r   r   r   r   Útest_common_check_return_X_ys   s    rC   r
   c                 C   s   |ƒ }t ||ƒ d S rA   )r#   rB   r   r   r   Útest_common_check_as_frame{   s    rD   c                 C   s   t |ƒ d S rA   )r   )r   r   r   r   r   Ú#test_common_check_pandas_dependencyƒ   s    rE   )NN)r)   )Ú__doc__r4   r%   r   Únumpyr    Zsklearn.datasetsr6   r   r;   Zxfailr<   r3   r   r   r#   r(   r@   ZparametrizerC   rD   rE   r   r   r   r   Ú<module>   sZ   ÿÿ ÿù ÿÿô   ÿ

 ÿ
 ÿ
 ÿ