U
    3d
                  	   @   s   d Z ddlmZ ddlZddlmZ ddlmZ ddlmZ ej	ddd	gej	d
dddddgdd Z
dd Zdd Zdd Zdd Zdd ZdS )zTest  kddcup99 loader, if the data is available,
or if specifically requested via environment variable
(e.g. for travis cron job).

Only 'percent10' mode is tested, as the full data
is too big to use in unit-testing.
    )partialNcheck_as_framecheck_pandas_dependency_message)check_return_X_yas_frameTFzsubset, n_samples, n_features)Niŉ )   )SAi/ r	   )ZSFi    )httpie     )smtpic%  r   c                 C   sb   | ||d}|j j||fks t|jj|fks2t|rN|jj||d fksNt|jds^td S )N)subsetr      z.. _kddcup99_dataset:)datashapeAssertionErrortargetframeZDESCR
startswith)fetch_kddcup99_fxtr   r   Z	n_samplesZ
n_featuresr    r   H/tmp/pip-unpacked-wheel-zrfo1fqw/sklearn/datasets/tests/test_kddcup99.pytest_fetch_kddcup99_percent10   s    r   c                 C   s    t | dd}| }t|| d S )Nr   )r   )r   r   )r   Z
fetch_funcr   r   r   r   test_fetch_kddcup99_return_X_y'   s    r   c                 C   s   |  }t ||  d S Nr   )r   Zbunchr   r   r   test_fetch_kddcup99_as_frame-   s    r   c                 C   sf   | dddd}| ddddd}t |d t |d ks:t|jj|jjksNt|jj|jjksbtd S )Nr   r
   T)random_stater   	percent10)r   r   shuffler   r   )setr   r   r   r   )r   ZdatasetZdataset_shuffledr   r   r   test_fetch_kddcup99_shuffle2   s    r"   c                 C   s   t |  d S r   r   )r   Zhide_available_pandasr   r   r   test_pandas_dependency_messageC   s    r#   c              	   C   st   |d }|   |d }|d}|d W 5 Q R X dt| d}tjt|d | t|d W 5 Q R X d	S )
zBCheck that a nice error message is raised when cache is corrupted.zkddcup99_10-py3Zsampleswbs   THIS IS CORRUPTEDz7The cache for fetch_kddcup99 is invalid, please delete z! and run the fetch_kddcup99 again)match)Z	data_homeN)mkdiropenwritestrpytestZraisesIOError)r   Ztmp_pathZkddcup99_dirZsamples_pathfmsgr   r   r   !test_corrupted_file_error_messageG   s    r.   )__doc__	functoolsr   r*   Z"sklearn.datasets.tests.test_commonr   r   r   markZparametrizer   r   r   r"   r#   r.   r   r   r   r   <module>   s*   
