U
    9%e,                     @   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mZ d dl	Z
d dlZd dlmZmZmZmZmZmZmZmZmZmZ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 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 Z,dd Z-ej./d d!gd!d"gfd#d$ Z0ej./d%d&d'd(d)d*d+gfd,d-d.d/d0d1gfd2d3d4d5d6gfgd7d8 Z1d9d: Z2ej./d;d<i d=d>gfd?i d=gfd@dAdBidCdDgfgdEdF Z3dGdH Z4dIdJ Z5dKdL Z6dMdN Z7ej./dOedPdQdRdSdTgfedUdVdWdSg fedXdYdWdSdTgfedZdZdWdSd[d\gfed]d^ddSg fed_d`d>dSg feedadbdcddd>dSg fgdedf Z8ej./dgee
j9e:fee
j9e
j9fee
j9e:fee
j9e:fee
j9e
j9fee
j9e:fgdhdi Z;djdk Z<dldm Z=dndo Z>dpdq Z?dS )r    N)partial)dumpsloads)clear_data_homeget_data_homeload_breast_cancerload_diabetesload_digits
load_files	load_irisload_linnerudload_sample_imageload_sample_images	load_wine)load_csv_dataload_gzip_compressed_csv_datacheck_as_frame)scale)Bunch_is_resourcec                 C   s   t j| rt|  d S N)ospathisdirshutilrmtree)r    r   _/var/www/html/Darija-Ai-API/env/lib/python3.8/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    Ztmpdir_factoryZtmp_filer   r   r   	data_home'   s    r'   c                 c   s    t | d}|V  t| d S )NZscikit_learn_load_files_testr#   r&   r   r   r   load_files_root.   s    r(   c                 c   sB   t j| d}t j|dd}|d |  t|V  t| d S )NdirF)r*   delete   Hello World!
)tempfilemkdtempNamedTemporaryFilewritecloser$   r    )r(   Ztest_category_dir1Zsample_filer   r   r   test_category_dir_15   s    

r2   c                 c   s"   t j| d}t|V  t| d S )Nr)   )r-   r.   r$   r    )r(   Ztest_category_dir2r   r   r   test_category_dir_2?   s    
r3   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   r4   r   r   r   test_data_homeF   s    


r7   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	filenamesr5   target_namesDESCR)r(   resr   r   r   test_default_empty_load_filesU   s    r=   c                 C   sN   t |}t|jdkstt|jdks,t|jd ks:t|jdgksJtd S )N      r,   )r
   r8   r9   r5   r:   r;   datar2   r3   r(   r<   r   r   r   test_default_load_files\   s
    rB   c                 C   sp   t j| t j }t|d|gdd}t|jdks<t	t|j
dksNt	|jdks\t	|jdgkslt	d S )Ntestzutf-8)description
categoriesencodingr>   zHello World!
)r   r   abspathsplitseppopr
   r8   r9   r5   r:   r;   r@   )r2   r3   r(   categoryr<   r   r   r   .test_load_files_w_categories_desc_and_encodingd   s       rL   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
   r8   r9   r5   r:   r;   getrA   r   r   r   test_load_files_wo_load_contentr   s
    rN   allowed_extensionsz.txtz.jsonc                    sn   | d    d}fdd|D }|D ]}|d q*t|  d}t fdd|D t|jksjtdS )	z;Check the behaviour of `allowed_extension` in `load_files`.sub)z	file1.txtz
file2.jsonz
file3.jsonzfile4.mdc                    s   g | ]} | qS r   r   .0f)dr   r   
<listcomp>   s     z6test_load_files_allowed_extensions.<locals>.<listcomp>s   hellorO   c                    s   g | ]}|j  krt|qS r   )suffixr$   )rR   prV   r   r   rU      s     
 N)mkdirwrite_bytesr
   setr9   r5   )Ztmp_pathrO   filespathsrX   r<   r   )rO   rT   r   "test_load_files_allowed_extensions|   s    r^   zHfilename, expected_n_samples, expected_n_features, expected_target_nameszwine_data.csv      Zclass_0Zclass_1Zclass_2iris.csv      ZsetosaZ
versicolorZ	virginicazbreast_cancer.csv9     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   shaper5   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
    rl   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 )Nra   ziris.rstdata_file_namern   descr_file_namerc      r   r>   r?   z.. _iris_dataset:)r   r8   r5   rg   rh   ri   
startswith)rn   rp   Zres_without_descrZres_with_descrr   r   r   test_load_csv_data_with_descr   s    
 rt   z filename, kwargs, expected_shapezdiabetes_data_raw.csv.gz  
   diabetes_target.csv.gzzdigits.csv.gz	delimiter,  A   c                 C   s"   t | f|}|jt|kstd S r   )r   rf   tupler5   )rj   kwargsZexpected_shaperk   r   r   r   "test_load_gzip_compressed_csv_data   s    	r~   c                  C   sB   d} d}t | d}t | |d\}}tj|| |ds>td S )Nrw   zdiabetes.rstrm   ro   z.. _diabetes_dataset:)r   rg   rh   ri   rs   r5   )rn   rp   Zexpected_datark   descrr   r   r   -test_load_gzip_compressed_csv_data_with_descr   s    

r   c                  C   s   zt  } 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>      r`   3Could not load sample images, PIL is not available.)r   r8   imagesr5   r9   rg   allarrayuint8r;   ImportErrorwarningswarn)r<   r   r   r   r   test_load_sample_images   s    66r   c                  C   sL   z(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.jpgr   )i  i  rq   r   )r   r   r5   rf   r   r   r   )chinar   r   r   test_load_sample_image   s    r   c                  C   sn   t dd} | jjdkst| jjs*tdt| jdks<t| jsFtt  }t	j
jt| jd |jdd d	S )
zTest to check that we load a scaled version by default but that we can
    get an unscaled version when setting `scaled=False`.F)Zscaledru   rv   ru   rv   gT5@g-C6?)ZatolN)r   r@   rf   r5   targetsizer8   feature_namesr;   rg   rh   Zassert_allcloser   )Zdiabetes_rawZdiabetes_defaultr   r   r   test_load_diabetes_raw   s    

  r   zEloader_func, data_shape, target_shape, n_target, has_descr, filenames)rd   re   )rd   r?   Trj   )r_   r`   )r_   rq   )rb   rc   )rb   )   rq   Zdata_filenameZtarget_filenamer   )ru   )rz   @   )rz   	   )Zn_class)Q  r   )r   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 )Nr   r>   data_modulec                    s&   g | ]}| ko t  d   | qS )r   r   rQ   bunchr   r   rU     s   ztest_loader.<locals>.<listcomp>)
isinstancer   r5   r@   rf   r   hasattrr8   r   r:   r;   r   )loader_funcZ
data_shapeZtarget_shapeZn_targetZ	has_descrr9   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_dtyper   )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   r5   r   Zbunch_from_pklr   r   r   test_loads_dumps_bunch1  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   r5   r   r   r   r   8test_bunch_pickle_generated_with_0_16_and_read_with_0_178  s    

r   c                  C   s   t  } dt| kstd S )Nr@   )r   r*   r5   )r@   r   r   r   test_bunch_dirM  s    r   c               	   C   sX   d} t jt| d ddlm} W 5 Q R X d} t jt| d ddlm} W 5 Q R X dS )zLCheck that we raise the ethical warning when trying to import `load_boston`.z8The Boston housing prices dataset has an ethical problem)matchr   )load_bostonzBcannot import name 'non_existing_function' from 'sklearn.datasets')non_existing_functionN)pytestZraisesr   sklearn.datasetsr   r   )msgr   r   r   r   r   test_load_boston_errorS  s    r   )@r   r   r-   r   	functoolsr   pickler   r   numpyrg   r   r   r   r   r   r   r	   r
   r   r   r   r   r   Zsklearn.datasets._baser   r   Z"sklearn.datasets.tests.test_commonr   Zsklearn.preprocessingr   Zsklearn.utilsr   Zsklearn.utils.fixesr   r    Zfixturer'   r(   r2   r3   r7   r=   rB   rL   rN   markZparametrizer^   rl   rt   r~   r   r   r   r   r   Zfloat64intr   r   r   r   r   r   r   r   r   <module>   s   4




	






	






