
    Ug2                     &   d dl Z 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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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#m$Z$m%Z% d d
l&m'Z' d dl(m)Z) d dl*m+Z+  G d d          Z,d Z- ej.        d          d             Z/ ej.        d          d             Z0ej.        d             Z1ej.        d             Z2ej3        4                    dde
e,g          d             Z5d Z6d Z7d Z8d Z9ej3        4                    ddgddgf          d             Z:ej3        4                    d d!d"d#g d$fd%d&d'g d(fd)d*d+d,d-gfg          d.             Z;d/ Z<ej3        4                    d0d1i d2d3gfd4i d2gfd5d6d7id8d9gfg          d:             Z=d; Z>d< Z?d= Z@d> ZAej3        4                    d?ed@dAdBdCdDgfe dEdFdGdCg fedHdIdGdCdDgfedJdJdGdCdKdLgfedMdNddCg fedOdPd3dCg f eedQR          dSdTd3dCg fg          dU             ZBej3        4                    dVeejC        eDfeejC        ejC        feejC        eDfeejC        eDfeejC        ejC        fe ejC        eDfg          dW             ZEdX ZFdY ZGdZ ZHd[ ZId\ ZJdS )]    N)partial)	resources)Path)dumpsloads)Mock)	HTTPError)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)RemoteFileMetadata_fetch_remoteload_csv_dataload_gzip_compressed_csv_datacheck_as_frame)scale)Bunchc                       e Zd ZdZd Zd ZdS )
_DummyPathz8Minimal class that implements the os.PathLike interface.c                     || _         d S Npath)selfr"   s     _/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/datasets/tests/test_base.py__init__z_DummyPath.__init__+   s    			    c                     | j         S r    r!   )r#   s    r$   
__fspath__z_DummyPath.__fspath__.   s
    yr&   N)__name__
__module____qualname____doc__r%   r(    r&   r$   r   r   (   s8        BB      r&   r   c                 p    t           j                            |           rt          j        |            d S d S r    )osr"   isdirshutilrmtreer!   s    r$   _remove_dirr3   2   s8    	w}}T d r&   module)scopec              #   t   K   t          |                     d                    }|V  t          |           d S )Nscikit_learn_data_home_teststrmktempr3   tmpdir_factorytmp_files     r$   	data_homer>   7   s?      >(()FGGHHH
NNNr&   c              #   t   K   t          |                     d                    }|V  t          |           d S )Nscikit_learn_load_files_testr8   r;   s     r$   load_files_rootrA   >   s?      >(()GHHIIH
NNNr&   c              #      K   t          j        |           }t          j        |d          }|                    d           |                                 t          |          V  t          |           d S )NdirF)rD   delete   Hello World!
)tempfilemkdtempNamedTemporaryFilewritecloser9   r3   )rA   test_category_dir1sample_files      r$   test_category_dir_1rN   E   s      !)o>>>-2DUSSSK'(((
 
!
!!!!"#####r&   c              #   t   K   t          j        |           }t          |          V  t          |           d S )NrC   )rG   rH   r9   r3   )rA   test_category_dir2s     r$   test_category_dir_2rQ   O   sD      !)o>>>
 
!
!!!!"#####r&   path_containerc                 p   |  | |          }t          |          }||k    sJ t          j                            |          sJ |  | |          }t	          |           t          j                            |          rJ t          |          }t          j                            |          sJ d S )N)r>   )r   r/   r"   existsr
   )rR   r>   s     r$   test_data_homerU   V   s     !"N9--		222I	!!!!7>>)$$$$$ !"N9--	i((((w~~i((((( 	222I7>>)$$$$$$$r&   c                     t          |           }t          |j                  dk    sJ t          |j                  dk    sJ |j        J d S )Nr   )r   len	filenamestarget_namesDESCR)rA   ress     r$   test_default_empty_load_filesr\   j   sZ    
_
%
%Cs}""""s  A%%%%9r&   c                     t          |          }t          |j                  dk    sJ t          |j                  dk    sJ |j        J |j        dgk    sJ d S )N      rF   )r   rW   rX   rY   rZ   datarN   rQ   rA   r[   s       r$   test_default_load_filesrb   q   sq    
_
%
%Cs}""""s  A%%%%98)*******r&   c                 h   t           j                            |                               t           j                                                  }t          |d|gd          }t          |j                  dk    sJ t          |j	                  dk    sJ |j
        dk    sJ |j        dgk    sJ d S )Ntestzutf-8)description
categoriesencodingr^   zHello World!
)r/   r"   abspathsplitseppopr   rW   rX   rY   rZ   r`   )rN   rQ   rA   categoryr[   s        r$   .test_load_files_w_categories_desc_and_encodingrm   y   s     w23399"&AAEEGGH
V
W  C s}""""s  A%%%%98()))))))r&   c                     t          |d          }t          |j                  dk    sJ t          |j                  dk    sJ |j        J |                    d          J d S )NF)load_contentr^   r_   r`   )r   rW   rX   rY   rZ   getra   s       r$   test_load_files_wo_load_contentrq      sw     _5
9
9
9Cs}""""s  A%%%%9776??"""""r&   allowed_extensionsz.txtz.jsonc                    | dz                                    d}fd|D             }|D ]}|                    d           t          |           }t          fd|D                       t          |j                  k    sJ dS )z;Check the behaviour of `allowed_extension` in `load_files`.sub)z	file1.txtz
file2.jsonz
file3.jsonzfile4.mdc                     g | ]}|z  S r-   r-   ).0fds     r$   
<listcomp>z6test_load_files_allowed_extensions.<locals>.<listcomp>   s    """qQU"""r&   s   hello)rr   c                 @    g | ]}|j         v t          |          S r-   )suffixr9   )rv   prr   s     r$   ry   z6test_load_files_allowed_extensions.<locals>.<listcomp>   s,    HHH15G)G)GA)G)G)Gr&   N)mkdirwrite_bytesr   setrX   )tmp_pathrr   filespathsr|   r[   rx   s    `    @r$   "test_load_files_allowed_extensionsr      s     	5AGGIIIAE""""E"""E    	h
X2D
E
E
ECHHHHHHHIISN N      r&   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                     t          |           \  }}}|j        d         |k    sJ |j        d         |k    sJ |j        d         |k    sJ t          j                            ||           d S )Nr   r^   )r   shapenptestingassert_array_equal)filenameexpected_n_samplesexpected_n_featuresexpected_target_namesactual_dataactual_targetactual_target_namess          r$   test_load_csv_datar      s     7DH6M6M3K 3Q#55555Q#66666q!%77777J!!"57LMMMMMr&   c                     d} d}t          |           }t          | |          }t          |          dk    sJ t          |          dk    sJ t          j                            |d         |d                    t          j                            |d         |d                    t          j                            |d	         |d	                    |d
                             d          sJ d S )Nr   ziris.rstdata_file_namer   descr_file_namer      r   r^   r_   z.. _iris_dataset:)r   rW   r   r   r   
startswith)r   r   res_without_descrres_with_descrs       r$   test_load_csv_data_with_descrr      s    N O%^DDD"%  N ~!#### !!Q&&&&J!!."35Fq5IJJJJ!!."35Fq5IJJJJ!!."35Fq5IJJJ"(()<=======r&   z filename, kwargs, expected_shapezdiabetes_data_raw.csv.gz  
   diabetes_target.csv.gzzdigits.csv.gz	delimiter,  A   c                 T    t          | fi |}|j        t          |          k    sJ d S r    )r   r   tuple)r   kwargsexpected_shaper   s       r$   "test_load_gzip_compressed_csv_datar      s;     0CCFCCKn 5 5555555r&   c                      d} d}t          |           }t          | |          \  }}t          j                            ||           |                    d          sJ d S )Nr   zdiabetes.rstr   r   z.. _diabetes_dataset:)r   r   r   r   r   )r   r   expected_datar   descrs        r$   -test_load_gzip_compressed_csv_data_with_descrr      sv    -N$O1PPPM6%'  K
 J!!+}===34444444r&   c                  "   	 t                      } t          | j                  dk    sJ t          | j                  dk    sJ | j        }t	          j        |d         ddd d f         t	          j        g dt          j                  k              sJ t	          j        |d         ddd d f         t	          j        g dt          j                  k              sJ | j        sJ d S # t          $ r t          j        d           Y d S w xY w)Nr_   r   )         )dtyper^   )r_      r   3Could not load sample images, PIL is not available.)r   rW   imagesrX   r   allarrayuint8rZ   ImportErrorwarningswarn)r[   r   s     r$   test_load_sample_imagesr      s#   M ""3:!####3=!!Q&&&& vfQi1aaa(BH___BH,U,U,UUVVVVVvfQi1aaa(BH[[[,Q,Q,QQRRRRRy M M MKLLLLLLMs   C(C, ,DDc                      	 t          d          } | j        dk    sJ | j        dk    sJ d S # t          $ r t	          j        d           Y d S w xY w)Nz	china.jpgr   )i  i  r   r   )r   r   r   r   r   r   )chinas    r$   test_load_sample_imager      sz    M!+..{g%%%%{m++++++ M M MKLLLLLLMs   )- AAc                  P   t          d          } | j        j        dk    sJ | j        j        s
J d            t          | j                  dk    sJ | j        sJ t                      }t          j	        
                    t          | j                  dz  |j        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   r`   r   targetsizerW   feature_namesrZ   r   r   assert_allcloser   )diabetes_rawdiabetes_defaults     r$   test_load_diabetes_rawr      s     !...L"i////#((S(((|)**b0000$Jl  H-/?/D5      r&   zEloader_func, data_shape, target_shape, n_target, has_descr, filenames)r   r   )r   r_   Tr   )r   r   )r   r   )r   r   )r   )   r   data_filenametarget_filenamer   )r   )r   @   )r   	   )n_class)Q  r   )r   c                     |             t          t                    sJ j        j        |k    sJ j        j        |k    sJ t          d          r t          j                  |d         k    sJ |t          j                  |k    sJ |r	j	        sJ |r#dv sJ t          fd|D                       sJ d S d S )Nr   r^   data_modulec                     g | ];}|v o4t          j        d                    |         z                                  <S )r   )r   r   is_file)rv   rw   bunchs     r$   ry   ztest_loader.<locals>.<listcomp>*  s\         U
 Q_U=%9::U1XENNPP  r&   )
isinstancer   r`   r   r   hasattrrW   r   rY   rZ   r   )loader_func
data_shapetarget_shapen_target	has_descrrX   r   s         @r$   test_loaderr     s-   ( KMMEeU#####:z))))<----uo&& 95&'':a=88885%&&(2222 { 
%%%%    #  
 
 	
 	
 	

 
	
 	
r&   z%loader_func, data_dtype, target_dtypec                 @     |             }t          || ||           d S )N)expected_data_dtypeexpected_target_dtyper   )r   
data_dtypetarget_dtypedefault_results       r$   test_toy_dataset_frame_dtyper   2  s<     ![]]N&*	     r&   c                      t          d          } t          t          |                     }d|_        |d         |j        k    sJ d S )Nx)r   y)r   r   r   r   r   bunch_from_pkls     r$   test_loads_dumps_bunchr   G  sI    CLLLE5<<((NN#."2222222r&   c                      t          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    sJ d S )Noriginal)keyzset from __dict__r   changed)r   __dict__r   r   r   r   s     r$   8test_bunch_pickle_generated_with_0_16_and_read_with_0_17r   N  s    j!!!E 0EN55<<((N++++% J.... #N****% I------r&   c                  H    t                      } dt          |           v sJ d S )Nr`   )r   rD   )r`   s    r$   test_bunch_dirr   c  s(    ;;DSYYr&   c                      d} t          j        t          |           5  ddlm} ddd           n# 1 swxY w Y   d} t          j        t          |           5  ddlm} ddd           dS # 1 swxY w Y   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_bostonNzBcannot import name 'non_existing_function' from 'sklearn.datasets')non_existing_function)pytestraisesr   sklearn.datasetsr  r  )msgr  r  s      r$   test_load_boston_errorr
  i  s   
DC	{#	.	.	. 1 10000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 OC	{#	.	.	. ; ;::::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s   155A--A14A1c           
      :   d}t          d|d          }t          t          |dddt          j                                        }|                     d|           t          j        t          d	
          5 }t          j	        t          d
          5  t          |dd           ddd           n# 1 swxY w Y   |j        dk    sJ |D ]}t          |j                  d| k    sJ  t          |          dk    sJ 	 ddd           dS # 1 swxY w Y   dS )z'Check retry mechanism in _fetch_remote.z8https://scikit-learn.org/this_file_does_not_exist.tar.gzinvalid_fileNi  z	Not Found)urlcoder	  hdrsfp)side_effectz"sklearn.datasets._base.urlretrievezRetry downloadingr  zHTTP Error 404r   r   )	n_retriesdelayr   zRetry downloading from url: )r   r   r	   ioBytesIOsetattrr  warnsUserWarningr  r   
call_countr9   messagerW   )monkeypatchr  invalid_remote_fileurlretrieve_mockrecordrs         r$   1test_fetch_remote_raise_warnings_with_invalid_urlr   u  s    EC,^S$GG#;Tbjll
 
 
  
 <>NOOO	k)<	=	=	=  ]9,<=== 	E 	E-!DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E  *a//// 	J 	JAqy>>%IC%I%IIIIII6{{a                                   s7   8DB3'D3B7	7D:B7	;ADDD)Kr  r/   r1   rG   r   	functoolsr   	importlibr   pathlibr   pickler   r   unittest.mockr   urllib.errorr	   numpyr   r  r  r
   r   r   r   r   r   r   r   r   r   r   sklearn.datasets._baser   r   r   r   "sklearn.datasets.tests.test_commonr   sklearn.preprocessingr   sklearn.utilsr   r   r3   fixturer>   rA   rN   rQ   markparametrizerU   r\   rb   rm   rq   r   r   r   r   r   r   r   r   r   float64intr   r   r   r   r
  r   r-   r&   r$   <module>r1     s   				 				                                    " " " " " "                                          > = = = = = ' ' ' ' ' '               
 h    h    $ $ $ $ $ $ )D$
+CDD% % ED%&  + + +* * *# # # -67:K/LMM  NM N	#r#D#D#DE	S!BBBC	c2X'>? N N N> > >$ &	#R#r3	!2u-	;,tRj9 6 6 6
5 5 5M M M M M M    K	Y4*F	Ivq$3	Hfa
|</0	
 
	64r:	j'2tR8	a	(	(	(*gr4L &
 
' &
. +	RZ-	
BJ/	bj#&	BJ$	
BJ/	BJ$
 
 
 
3 3 3. . .*  	; 	; 	;         r&   