B
    0dw.                 @   s  d dl Z 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
 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 d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z% d dlm&Z& dd Z'ej(dddd Z)ej(dddd Z*ej(d d! Z+ej(d"d# Z,d$d% Z-d&d' Z.d(d) Z/d*d+ Z0d,d- Z1ej23d.d/d0d1d2d3d4gfd5d6d7d8d9d:gfd;d<d=d>d?gfgd@dA Z4dBdC Z5ej23dDdEi dFdGgfdHi dFgfdIdJdKidLdMgfgdNdO Z6dPdQ Z7dRdS Z8dTdU Z9dVdW Z:ej2;dXej23dYedZd[d\d]d^gfed_d`dad]g fedbdcdad]d^gfedddddad]dedfgfedgdhdd]g fedidjdGd]g feedkdldmdndGd]g fedodpdd]d^gfgdqdr Z<ej23dseej=e>feej=ej=feej=e>feej=e>feej=ej=feej=e>fgdtdu Z?dvdw Z@dxdy ZAdzd{ ZBd|d} ZCej2;dXd~d ZDdS )    N)loads)dumps)partial)	resources)get_data_home)clear_data_home)
load_files)load_sample_images)load_sample_image)load_digits)load_diabetes)load_linnerud)	load_iris)load_breast_cancer)load_boston)	load_wine)load_csv_dataload_gzip_compressed_csv_data)Bunch)SkipTest)check_as_frame)pillow_installed)IS_PYPYc             C   s   t j| rt|  d S )N)ospathisdirshutilrmtree)r    r   R/var/www/html/venv/lib/python3.7/site-packages/sklearn/datasets/tests/test_base.py_remove_dir&   s    r    module)scopec             c   s    t | d}|V  t| d S )NZscikit_learn_data_home_test)strmktempr    )tmpdir_factorytmp_filer   r   r   	data_home+   s    r'   c             c   s    t | d}|V  t| d S )NZscikit_learn_load_files_test)r#   r$   r    )r%   r&   r   r   r   load_files_root2   s    r(   c             c   sB   t j| d}t j|dd}|d |  t|V  t| d S )N)dirF)r)   deletes   Hello World!
)tempfilemkdtempNamedTemporaryFilewritecloser#   r    )r(   Ztest_category_dir1Zsample_filer   r   r   test_category_dir_19   s    

r0   c             c   s"   t j| d}t|V  t| d S )N)r)   )r+   r,   r#   r    )r(   Ztest_category_dir2r   r   r   test_category_dir_2C   s    
r1   c             C   s^   t | d} | | ksttj| s&tt| d tj| r@tt | d} tj| sZtd S )N)r'   )r   AssertionErrorr   r   existsr   )r'   r   r   r   test_data_homeJ   s    


r4   c             C   s>   t | }t|jdkstt|jdks,t|jd ks:td S )Nr   )r   len	filenamesr2   target_namesDESCR)r(   resr   r   r   test_default_empty_load_filesY   s    r:   c             C   s\   t rtd t|}t|jdks(tt|jdks:t|jd ksHt|j	dgksXtd S )Nz4[PyPy] fails due to string containing NUL characters      s   Hello World!
)
r   pytestxfailr   r5   r6   r2   r7   r8   data)r0   r1   r(   r9   r   r   r   test_default_load_files`   s    
r@   c             C   sz   t rtd tj| d }t|d|dd}t	|j
dksFtt	|jdksXt|jdksft|jdgksvtd S )Nz4[PyPy] fails due to string containing NUL characters/testzutf-8)description
categoriesencodingr;   zHello World!
)r   r=   r>   r   r   abspathsplitpopr   r5   r6   r2   r7   r8   r?   )r0   r1   r(   categoryr9   r   r   r   .test_load_files_w_categories_desc_and_encodingj   s    
rJ   c             C   sT   t |dd}t|jdkstt|jdks0t|jd ks>t|dd ksPtd S )NF)Zload_contentr;   r<   r?   )r   r5   r6   r2   r7   r8   get)r0   r1   r(   r9   r   r   r   test_load_files_wo_load_contenty   s
    rL   zHfilename, expected_n_samples, expected_n_features, expected_target_nameszwine_data.csv      Zclass_0Zclass_1Zclass_2ziris.csv      ZsetosaZ
versicolorZ	virginicazbreast_cancer.csvi9     Z	malignantZbenignc             C   sV   t | \}}}|jd |ks t|jd |ks2t|jd |ksDttj|| d S )Nr   r;   )r   shaper2   nptestingassert_array_equal)filenameZexpected_n_samplesZexpected_n_featuresZexpected_target_namesactual_dataZactual_targetZactual_target_namesr   r   r   test_load_csv_data   s
    rX   c              C   s   d} d}t | d}t | |d}t|dks.tt|dks>ttj|d |d  tj|d |d  tj|d	 |d	  |d
 dstd S )Nziris.csvziris.rst)data_file_name)rY   descr_file_namerP      r   r;   r<   z.. _iris_dataset:)r   r5   r2   rS   rT   rU   
startswith)rY   rZ   Zres_without_descrZres_with_descrr   r   r   test_load_csv_data_with_descr   s    

r^   z filename, kwargs, expected_shapezdiabetes_data.csv.gzi  
   zdiabetes_target.csv.gzzdigits.csv.gz	delimiter,i  A   c             C   s"   t | f|}|jt|kstd S )N)r   rR   tupler2   )rV   kwargsZexpected_shaperW   r   r   r   "test_load_gzip_compressed_csv_data   s    	re   c              C   sB   d} d}t | d}t | |d\}}tj|| |ds>td S )Nzdiabetes_target.csv.gzzdiabetes.rst)rY   )rY   rZ   z.. _diabetes_dataset:)r   rS   rT   rU   r]   r2   )rY   rZ   Zexpected_datarW   descrr   r   r   -test_load_gzip_compressed_csv_data_with_descr   s    
rg   c              C   s   yt  } t| jdkstt| jdks,t| j}t|d ddd d f tjdddgtjdkshtt|d ddd d f tjddd	gtjdkst| j	stW n t
k
r   td
 Y nX d S )Nr<   r            )dtyper;      rN   z3Could not load sample images, PIL is not available.)r	   r5   imagesr2   r6   rS   allarrayuint8r8   ImportErrorwarningswarn)r9   rm   r   r   r   test_load_sample_images   s    66rt   c              C   sL   y(t d} | jdkst| jdks&tW n tk
rF   td Y nX d S )Nz	china.jpgrp   )i  i  r[   z3Could not load sample images, PIL is not available.)r
   rk   r2   rR   rq   rr   rs   )chinar   r   r   test_load_sample_image   s    rv   c            	   C   s2   t r$tt td W d Q R X n
td d S )Nzblop.jpgz3Could not load sample images, PIL is not available.)r   r=   ZraisesAttributeErrorr
   rr   rs   r   r   r   r   $test_load_missing_sample_image_error   s    rx   z)ignore:Function load_boston is deprecatedzEloader_func, data_shape, target_shape, n_target, has_descr, filenames)i9  rQ   )i9  r<   TrV   )rM   rN   )rM   r[   )rO   rP   )rO   )   r[   Zdata_filenameZtarget_filename)i  r_   )i  )i  @   )i  	   )Zn_class)iQ  rz   )iQ  )i  rN   )i  c                s   |   t  tst jj|ks$t jj|ks4tt drTt j|d ksTt|d k	rnt j	|ksnt|r| j
s|t|rd kstt fdd|D std S )Nfeature_namesr;   data_modulec                s(   g | ] }| ko"t  d   | qS )r}   )r   is_resource).0f)bunchr   r   
<listcomp>  s   ztest_loader.<locals>.<listcomp>)
isinstancer   r2   r?   rR   targethasattrr5   r|   r7   r8   rn   )loader_funcZ
data_shapeZtarget_shapeZn_targetZ	has_descrr6   r   )r   r   test_loader   s    


r   z%loader_func, data_dtype, target_dtypec             C   s   |  }t || ||d d S )N)Zexpected_data_dtypeZexpected_target_dtype)r   )r   Z
data_dtypeZtarget_dtypeZdefault_resultr   r   r   test_toy_dataset_frame_dtype  s    r   c              C   s2   t dd} tt| }d|_|d |jks.td S )Nx)r   y)r   r   r   r   r2   )r   bunch_from_pklr   r   r   test_loads_dumps_bunch#  s    
r   c              C   sf   t dd} d| jd< tt| }|jdks.t|d dks>td|_|jdksRt|d dksbtd S )Noriginal)keyzset from __dict__r   changed)r   __dict__r   r   r   r2   )r   r   r   r   r   8test_bunch_pickle_generated_with_0_16_and_read_with_0_17*  s    

r   c              C   s   t  } dt| kstd S )Nr?   )r   r)   r2   )r?   r   r   r   test_bunch_dir?  s    r   c           	   C   s(   d} t jt| d t  W dQ R X dS )zCCheck that we raise the ethical warning when loading `load_boston`.z8The Boston housing prices dataset has an ethical problem)matchN)r=   ZwarnsFutureWarningr   )Zwarn_msgr   r   r   test_load_boston_warningF  s    r   c           
   C   s   t d} tjdddkr$tdt }d}y| j|ddd d}W n2 tk
rv } zt 	d	|  W d d }~X Y nX t
|jd d d
d d f |jdd d
d d
f g}|jdd d
d
f }t
j||j t
j||j d S )NZpandasZSKLEARN_SKIP_NETWORK_TESTS1z?This test requires an internet connection to fetch the dataset.z'http://lib.stat.cmu.edu/datasets/bostonz\s+   )sepZskiprowsheaderz0The dataset can't be downloaded. Got exception: r<   r;   )r=   Zimportorskipr   environrK   r   r   Zread_csvConnectionErrorr>   rS   ZhstackvaluesrT   Zassert_allcloser?   r   )pdZboston_sklearnZdata_urlZraw_dfer?   r   r   r   r   test_load_boston_alternativeM  s    
"6r   )Er   r   r+   rr   pickler   r   	functoolsr   	importlibr   r=   numpyrS   Zsklearn.datasetsr   r   r   r	   r
   r   r   r   r   r   r   r   Zsklearn.datasets._baser   r   Zsklearn.utilsr   Zsklearn.utils._testingr   Z"sklearn.datasets.tests.test_commonr   Zsklearn.externals._pilutilr   r   r    Zfixturer'   r(   r0   r1   r4   r:   r@   rJ   rL   markZparametrizerX   r^   re   rg   rt   rv   rx   filterwarningsr   Zfloat64intr   r   r   r   r   r   r   r   r   r   <module>   s   



	
 


