B
    0dd                 @   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ej	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&   ydd l } dS  tk
r    dS X d S )Nr   TF)PILImportError)r    r   T/var/www/html/venv/lib/python3.7/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   ydd l }td W nH tk
r^   | j}| d}tjt|d | dd W d 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stnt|j	|jst|j	jd | j	jd kst|d k	rt|jj|kst|d k	rt|j	j|kst|ddd\}}t||jst|j
dkr&t||js8tnt||js8td S )Nr   T)r
   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 }xttjD ]\ }t|s.qt fdd|D }| t|j	k}|r|rt
jj dopt ddg} |kr||   t
j ||dV  qW 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_paramr0   r   )r   r   _generate_func_supporting_param]   s    

r>   zname, dataset_funcr	   z)ignore:Function load_boston is deprecatedc             C   s   | }t || d S )N)r   )r   r   r   r   r   r   test_common_check_return_X_ys   s    r?   r
   c             C   s   | }t || d S )N)r"   )r   r   r   r   r   r   test_common_check_as_frame|   s    r@   c             C   s   t | d S )N)r   )r   r   r   r   r   #test_common_check_pandas_dependency   s    rA   )NN)r(   )__doc__r2   r$   r   numpyr   Zsklearn.datasetsr4   r   r9   Zxfailr:   r1   r   r   r"   r'   r>   Zparametrizefilterwarningsr?   r@   rA   r   r   r   r   <module>   s4   


