o
    tBh1                     @   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 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, Z0ej12d-d.gd.d/gfd0d1 Z3ej12d2d3d4d5g d6fd7d8d9g d:fd;d<d=d>d?gfgd@dA Z4dBdC Z5ej12dDdEi dFdGgfdHi dFgfdIdJdKidLdMgfgdNdO Z6dPdQ Z7dRdS Z8dTdU Z9dVdW Z:dXdY Z;ej1<dZej12d[ed\d]d^d_d`gfedadbdcd_g fedddedcd_d`gfedfdfdcd_dgdhgfedidjdd_g fedkdldGd_g feedmdndodpdGd_g fedqdrdd_d`gfgdsdt Z=ej12due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dvdw Z@dxdy ZAdzd{ ZBd|d} ZCd~d ZDej1<dZdd ZEd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)scale)Bunch)SkipTestcheck_as_framec                 C   s   t j| rt|  d S d S N)ospathisdirshutilrmtree)r    r   w/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/datasets/tests/test_base.py_remove_dir"   s   r!   module)scopec                 c   "    t | d}|V  t| d S )Nscikit_learn_data_home_teststrmktempr!   tmpdir_factorytmp_filer   r   r    	data_home'      r,   c                 c   r$   )Nscikit_learn_load_files_testr&   r)   r   r   r    load_files_root.   r-   r/   c                 c   sD    t j| d}t j|dd}|d |  t|V  t| d S )NdirF)r1   delete   Hello World!
)tempfilemkdtempNamedTemporaryFilewritecloser'   r!   )r/   test_category_dir1sample_filer   r   r    test_category_dir_15   s   

r;   c                 c   s$    t j| d}t|V  t| d S )Nr0   )r4   r5   r'   r!   )r/   test_category_dir2r   r   r    test_category_dir_2?   s   
r=   c                 C   s^   t | d} | | ksJ tj| sJ t| d tj| r J t | d} tj| s-J d S )Nr,   )r   r   r   existsr   r>   r   r   r    test_data_homeF   s   


r@   c                 C   s>   t | }t|jdksJ t|jdksJ |jd u sJ d S )Nr   )r   len	filenamestarget_namesDESCR)r/   resr   r   r    test_default_empty_load_filesU   s   rF   c                 C   sN   t |}t|jdksJ t|jdksJ |jd u sJ |jdgks%J d S )N      r3   )r   rA   rB   rC   rD   datar;   r=   r/   rE   r   r   r    test_default_load_files\   s
   rK   c                 C   sl   t j| d }t|d|dd}t|jdksJ t|jdks%J |j	dks,J |j
dgks4J d S )N/testzutf-8)description
categoriesencodingrG   zHello World!
)r   r   abspathsplitpopr   rA   rB   rC   rD   rI   )r;   r=   r/   categoryrE   r   r   r    .test_load_files_w_categories_desc_and_encodingd   s   rU   c                 C   sT   t |dd}t|jdksJ t|jdksJ |jd u sJ |dd u s(J d S )NF)load_contentrG   rH   rI   )r   rA   rB   rC   rD   getrJ   r   r   r    test_load_files_wo_load_contentq   s
   rX   allowed_extensionsz.txtz.jsonc                    sn   | d    d}fdd|D }|D ]}|d qt|  d}t fdd|D t|jks5J 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rY   c                    s   g | ]}|j  v rt|qS r   )suffixr'   )r\   pr`   r   r    r_      s    N)mkdirwrite_bytesr   setrB   )tmp_pathrY   filespathsrb   rE   r   )rY   r^   r    "test_load_files_allowed_extensions{   s   ri   zHfilename, expected_n_samples, expected_n_features, expected_target_nameszwine_data.csv      )class_0class_1class_2iris.csv      )setosa
versicolor	virginicazbreast_cancer.csv9     	malignantbenignc                 C   sV   t | \}}}|jd |ksJ |jd |ksJ |jd |ks"J tj|| d S )Nr   rG   )r   shapenptestingassert_array_equal)filenameexpected_n_samplesexpected_n_featuresexpected_target_namesactual_dataactual_targetactual_target_namesr   r   r    test_load_csv_data   s
   r   c                  C   s   d} d}t | d}t | |d}t|dksJ t|dksJ tj|d |d  tj|d |d  tj|d	 |d	  |d
 dsIJ d S )Nro   ziris.rstdata_file_namer   descr_file_namerq      r   rG   rH   z.. _iris_dataset:)r   rA   rz   r{   r|   
startswith)r   r   res_without_descrres_with_descrr   r   r    test_load_csv_data_with_descr   s   
r   z filename, kwargs, expected_shapezdiabetes_data_raw.csv.gz  
   diabetes_target.csv.gzzdigits.csv.gz	delimiter,  A   c                 C   s&   t | fi |}|jt|ksJ d S r   )r   ry   tuple)r}   kwargsexpected_shaper   r   r   r    "test_load_gzip_compressed_csv_data   s   	r   c                  C   sB   d} d}t | d}t | |d\}}tj|| |dsJ d S )Nr   zdiabetes.rstr   r   z.. _diabetes_dataset:)r   rz   r{   r|   r   )r   r   expected_datar   descrr   r   r    -test_load_gzip_compressed_csv_data_with_descr   s   

r   c                  C   s   zTt  } t| jdksJ t| jdksJ | j}t|d ddd d f tjg dtjdks3J t|d ddd d f tjg dtjdksMJ | jsRJ W d S  t	yc   t
d Y d S w )NrH   r   )         )dtyperG   )rH      rk   3Could not load sample images, PIL is not available.)r	   rA   imagesrB   rz   allarrayuint8rD   ImportErrorwarningswarn)rE   r   r   r   r    test_load_sample_images   s   44r   c                  C   sJ   zt d} | jdksJ | jdksJ W d S  ty$   td Y d S w )Nz	china.jpgr   )i  i  r   r   )r
   r   ry   r   r   r   )chinar   r   r    test_load_sample_image   s   r   c                   C   sB   t d t t td W d    d S 1 sw   Y  d S )NPILzblop.jpg)pytestimportorskipraisesAttributeErrorr
   r   r   r   r    $test_load_missing_sample_image_error   s   

"r   c                  C   sn   t dd} | jjdksJ | jjsJ dt| jdksJ | js#J 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)scaledr   r   r   r   gT5@g-C6?)atolN)r   rI   ry   targetsizerA   feature_namesrD   rz   r{   assert_allcloser   )diabetes_rawdiabetes_defaultr   r   r    test_load_diabetes_raw   s   


r   z)ignore:Function load_boston is deprecatedzEloader_func, data_shape, target_shape, n_target, has_descr, filenames)ru   rv   )ru   rH   Tr}   )rj   rk   )rj   r   )rp   rq   )rp   )   r   data_filenametarget_filenamer   )r   )r   @   )r   	   )n_class)Q  r   )r   )  rk   )r   c                    s   |   t  ts
J  jj|ksJ  jj|ksJ t dr*t j|d ks*J |d ur7t j|ks7J |r> j	s>J |rSd v sFJ t
 fdd|D sUJ d S d S )Nr   rG   data_modulec                    s(   g | ]}| v ot  d   | qS )r   )r   is_resourcer[   bunchr   r    r_     s    ztest_loader.<locals>.<listcomp>)
isinstancer   rI   ry   r   hasattrrA   r   rC   rD   r   )loader_func
data_shapetarget_shapen_target	has_descrrB   r   r   r    test_loader   s&   


r   z%loader_func, data_dtype, target_dtypec                 C   s   |  }t || ||d d S )N)expected_data_dtypeexpected_target_dtyper   )r   
data_dtypetarget_dtypedefault_resultr   r   r    test_toy_dataset_frame_dtype#  s   
r   c                  C   s2   t dd} tt| }d|_|d |jksJ d S )Nx)r   y)r   r   r   r   r   bunch_from_pklr   r   r    test_loads_dumps_bunch8  s   
r   c                  C   sf   t dd} d| jd< tt| }|jdksJ |d dksJ d|_|jdks)J |d dks1J d S )Noriginal)keyzset from __dict__r   changed)r   __dict__r   r   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| v sJ d S )NrI   )r   r1   )rI   r   r   r    test_bunch_dirT  s   r   c                  C   s>   d} t jt| d t  W d   dS 1 sw   Y  dS )zCCheck that we raise the ethical warning when loading `load_boston`.z8The Boston housing prices dataset has an ethical problem)matchN)r   warnsFutureWarningr   )warn_msgr   r   r    test_load_boston_warning[  s   "r   c               
   C   s   t d} tjdddkrtdt }d}z| j|ddd d}W n ty< } zt 	d	|  W Y d }~nd }~ww 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 )NpandasSKLEARN_SKIP_NETWORK_TESTS1z?This test requires an internet connection to fetch the dataset.z'http://lib.stat.cmu.edu/datasets/bostonz\s+   )sepskiprowsheaderz0The dataset can't be downloaded. Got exception: rH   rG   )r   r   r   environrW   r   r   read_csvConnectionErrorxfailrz   hstackvaluesr{   r   rI   r   )pdboston_sklearndata_urlraw_dferI   r   r   r   r    test_load_boston_alternativeb  s"   
6r   )Fr   r   r4   r   pickler   r   	functoolsr   	importlibr   r   numpyrz   sklearn.datasetsr   r   r   r	   r
   r   r   r   r   r   r   r   sklearn.datasets._baser   r   sklearn.preprocessingr   sklearn.utilsr   sklearn.utils._testingr   "sklearn.datasets.tests.test_commonr   r!   fixturer,   r/   r;   r=   r@   rF   rK   rU   rX   markparametrizeri   r   r   r   r   r   r   r   r   filterwarningsr   float64intr   r   r   r   r   r   r   r   r   r    <module>   s    




	






	







