o
    tBh=c                     @   s  d dl m Z  d dlmZ 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mZ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
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l%m&Z& e'd(dZ)dd Z*dd Z+dd Z,dd  Z-d!d" Z.d#d$ Z/d%d& Z0d'd( Z1d)d* Z2d+d, Z3ej45d-d.d/d0e6d1d2fg d3d4fg d5d6fd7d8e7dddfe7d d9d4fej8g d3ej9d:d4fej8g d3ej:d:d4fej8g d3ej;d:d4fd1d;gd2fd<e8d1d;gd2fd=g d>d6fd?e7d@dAd6fe8g d>d6fej8g d>e<d:d6fgdBdC Z=dDdE Z>dFdG Z?ej45dHg dIej45dJg dKdLdM Z@ej45dHg dNej45dJg dKdOdP ZAej45dHg dQej45dJg dKej45dRdSd9gdTdUggdVdW ZBej45dXd1d;gej45dYd1d;gej45dHg dQej45dJdZd[gej45d\d g d]g d^gfdSd9d_gd`dagdbdggfgdcdd ZCej45dHg dNej45dJg dedfdg ZDej45dHg dQej45dJg deej45dhd g d]g d^gfdSd9d_gd`dagdbdggfgdidj ZEej45dkg dldmdn ZFej45dHg dNdodp ZGej45dkg dqej45dRd9dUgdrds ZHej45dHg dtdudv ZIdwdx ZJej45dydd_gdzd{ ZKej45d|dZd[gd}d~ ZLdd ZMdd ZNej45dddgdd ZOej45ddgdgddgddgddggdd ZPdd ZQdd ZRdd ZSej45dg ddd ZTdd ZUej45g ddejVd;fdejVd;fdejVd_ d1fdejVd1fdejVd d;fgej45ddgg ddd ZWej45ddgdedddd fdedddd fdgdd ZXej45deYdd1fejZd1feYejZd1fe[ejZd1fe\ejZd1fdddddejZgd;fdgdd Z]dd Z^dd Z_dd Z`ej45de8dSe8d9gdSd9gd_dgggdd ZadS )    )copy)chainN)assert_array_equalassert_allclose_dense_sparseassert_no_warnings_convert_container)check_random_state_determine_key_type)
deprecated)gen_batches)_get_column_indices)resample)	safe_mask)column_or_1d)_safe_indexing)shuffle)gen_even_slices)_message_with_time_print_elapsed_time)get_chunk_n_rows)is_scalar_nan)_to_object_array)_approximate_mode)MockDataFrame)config_context	   )   r   c                  C   s   t d tjjju sJ t tjtjjju sJ tjd} t dd| dks+J tjd} t | | u s9J tjd} t dd| dksMJ tt	 t d W d    d S 1 sbw   Y  d S )N*   d   +   zsome invalid seed)
r   nprandommtrand_randRandomStaterandintpytestraises
ValueError)rng_42 r+   u/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/utils/tests/test_utils.pytest_make_rng(   s   
"r-   c                  C   s   t ttddtddd tddd g d} tjt| d ttdd W d    n1 s/w   Y  d}tjt|d ttdd W d    d S 1 sPw   Y  d S )N      r   z.gen_batches got batch_size=0, must be positivematchz2gen_batches got batch_size=0.5, must be an integerg      ?)	r   listr   slicer'   r(   r)   next	TypeError)msg_zero	msg_floatr+   r+   r,   test_gen_batches:   s   ("r8   c                  C   s8  t jdd<} t d t dd }| }|dksJ t| dks$J t| d jts.J d	t| d j	
 v s;J W d    n1 sEw   Y  t jddB} t d td
G dd d}| }t|dskJ t| dkssJ t| d jts}J d	t| d j	
 v sJ W d    d S 1 sw   Y  d S )NT)recordalwaysc                   S      dS )Nspamr+   r+   r+   r+   r,   hamO   s   ztest_deprecated.<locals>.hamr<      r   r   zdon't use thisc                   @   s   e Zd ZdZdS )ztest_deprecated.<locals>.Hamr>   N)__name__
__module____qualname__SPAMr+   r+   r+   r,   Ham_   s    rC   rB   )warningscatch_warningssimplefilterr   len
issubclasscategoryFutureWarningstrmessagelowerhasattr)wr=   r<   rC   r+   r+   r,   test_deprecatedG   s(   


"rP   c                   C   s   t  d u sJ tt t dgddg W d    n1 sw   Y  tt t ddgddgddd W d    n1 s@w   Y  tt ddgdddksSJ d S )	Nr   r>   Fr   )replace	n_samplesr/      )rR   )r   r'   r(   r)   rG   r+   r+   r+   r,   test_resamplel   s    rT   c                  C   s   t jd} d}d}| j|dfd}| jd||d}t||ddd d\}}t |dks.J t||dd|d\}}t |dkrBJ t |dksKJ d S )	Nr   r   g?r>   size
   rR   random_statestratifyr   )r!   r"   r%   normalbinomialr   allsum)rngrR   pXy_y_not_stratifiedy_stratifiedr+   r+   r,   test_resample_stratifiedz   s   rf   c                  C   s   t jd} d}| j|dfd}| jdd|d}t||dd| |d\}}t||d	d| |d\}}t |jd dk s<J t |jd dksHJ t||dd
| |d\}}|jd d
ks]J t |jd dksiJ d S )Nr   r   r>   rU   r/   T2   )rQ   rR   rY   rZ   F  )r!   r"   r%   r[   r&   r   uniqueshape)r_   rR   ra   rb   	X_replacerc   X_no_replacer+   r+   r,    test_resample_stratified_replace   s"   


rm   c                  C   s\   t jd} d}| j|dfd}| jdd|dfd}t||d| |d\}}|jdks,J d S )Nr   r   r>   rU   r/   rg   rX   )r!   r"   r%   r[   r&   r   ndim)r_   rR   ra   rb   r+   r+   r,   test_resample_stratify_2dy   s   ro   c                  C   s   t jd} d}| j|dfd}| jdd|d}t|}tjt	dd t
||d| |d\}}W d    d S 1 s;w   Y  d S )	Nr   r   r/   rU   zA sparse matrix was passedr0   rg   rX   )r!   r"   r%   r[   r&   sp
csr_matrixr'   r(   r5   r   )r_   rR   ra   rb   rZ   r+   r+   r,   #test_resample_stratify_sparse_error   s   
"rr   c                  C   sj   t d} | dd}t|}g d}t||}|| jd dks#J t||}|| jd dks3J d S )Nr   rS   r.   )FFTTTr   )r   randrp   rq   r   rj   )rY   ra   X_csrmaskr+   r+   r,   test_safe_mask   s   


rv   c                  C   s  dg dfdg dfdt dd fdg dfdg d	fdd
gdgdggfdg dg dgfdg dgfdd
d
gddgdd
ggfddd
gddgdd
ggfdg dgfdt ddfg} | D ],\}}|dv rrtt|t | q_tt t| W d    n1 sw   Y  q_d S )Nbinary)r<   eggr<   )r   r>   r   r>   
continuousrW   g      4@
multiclassr>   r/   r   )r   r>   r/   r/   r   r>   r/   r   zmultilabel-indicator)r   r>   r   )r   r   r>   zmulticlass-multioutputrS   r.   zcontinuous-multioutput   )r   )rw   rz   ry   )	r!   arangereshaper   r   ravelr'   r(   r)   )EXAMPLESy_typerb   r+   r+   r,   test_column_or_1d   s*   




r   z
key, dtype)r   int)0rK   )TboolTr   r   r>   r/   r   r   12rK   )r   r   )r   rK   r/   dtypeF))TFr   )col_0rK   r   col_1col_2)r   rK   beginendc                 C   s   t | |ksJ d S Nr	   )keyr   r+   r+   r,   test_determine_key_type   s   r   c                   C   s<   t jtdd td W d    d S 1 sw   Y  d S )NzNo valid specification of ther0         ?)r'   r(   r)   r
   r+   r+   r+   r,   test_determine_key_type_error   s   
"r   c                   C   sH   t jtdd ttddddd W d    d S 1 sw   Y  d S )NzOnly array-like or scalar arer0   r   r/   r>   F)accept_slice)r'   r(   r5   r
   r3   r+   r+   r+   r,   #test_determine_key_type_slice_error  s   "r   
array_type)r2   arraysparse	dataframeindices_type)r2   tupler   seriesr3   c                 C   s   ddg}|dkrt |d tr|d  d7  < tg dg dg dg| }t||}t||dd}t|tg dg dg|  d S )	Nr>   r/   r3   r{   r.   rS            r   r   axis
isinstancer   r   r   r   r   r   indicesr   subsetr+   r+   r,   &test_safe_indexing_2d_container_axis_0  s   
r   )r2   r   r   c                 C   sl   ddg}|dkrt |d tr|d  d7  < tg d| }t||}t||dd}t|tddg|  d S )Nr>   r/   r3   	r>   r/   r   r.   rS   r   r   r   r   r   r   r   r   r   r+   r+   r,   test_safe_indexing_1d_container  s   
r   )r   r   r   r   r>   r   r   c                 C   s   t |}|dkrt|d tr|d  d7  < g d}tg dg dg dg| |}t||}t|d tr]| dkr]d	}tjt|d
 t||dd W d    d S 1 sVw   Y  d S t||dd}t	|tddgddgddgg|  d S )Nr3   r>   r   r{   r   r   r   r   LSpecifying the columns using strings is only supported for pandas DataFramesr0   r   r/   r   rS   r   r   r   )
r   r   r   r   rK   r'   r(   r)   r   r   )r   r   r   indices_convertedcolumns_namer   err_msgr   r+   r+   r,   &test_safe_indexing_2d_container_axis_1   s$   
"r   array_read_onlyindices_read_onlyr   r   zaxis, expected_arrayr   r   r   rS   r   r   c           	      C   s   t g dg dg dg}| r|jdd t||}t ddg}|r*|jdd t||}t|||d}t|t|| d S )	Nr{   r   r   F)writer>   r/   r   )r!   r   setflagsr   r   r   )	r   r   r   r   r   expected_arrayr   r   r   r+   r+   r,   &test_safe_indexing_2d_read_only_axis_1>  s   


r   )r2   r   r   r   c                 C   sX   dgdgd  dgd  }t g d| }t ||}t||dd}t|t ddg|  d S )	NFTr/   r   r   r   r   r   r   r   r   r   r+   r+   r,   $test_safe_indexing_1d_container_maskT  s
   
r   zaxis, expected_subsetc                 C   sZ   g d}t g dg dg dg| |}g d}t ||}t|||d}t|t ||  d S )Nr   r{   r   r   )FTTr   r   )r   r   r   expected_subsetr   r   r   r   r+   r+   r,   test_safe_indexing_2d_mask^  s   

r   z array_type, expected_output_type))r2   r2   r   r   r   r   r   r   c                 C   sJ   t g dg dg dg| }d}t||dd}t g d|}t|| d S )Nr{   r   r   r/   r   r   r   )r   expected_output_typer   r   r   r   r+   r+   r,   #test_safe_indexing_2d_scalar_axis_0r  s
   
r   c                 C   s0   t g d| }d}t||dd}|dksJ d S )Nr   r/   r   r   r   )r   r   )r   r   r   r   r+   r+   r,   test_safe_indexing_1d_scalar  s   r   )r   r   r   c           	      C   s   g d}t g dg dg dg| |}t|tr?| dkr?d}tjt|d t||dd	 W d    d S 1 s8w   Y  d S t||dd	}g d
}|dkrVdgdgdgg}t ||}t|| d S )Nr   r{   r   r   r   r   r0   r>   r   )r   r   r   r   r   r   r   )r   r   rK   r'   r(   r)   r   r   )	r   r   r   r   r   r   r   expected_outputr   r+   r+   r,   #test_safe_indexing_2d_scalar_axis_1  s    "
r   )r2   r   r   c                 C   s8   t g dg dg dg| }t|d dd}t|| d S )Nr{   r   r   r   r   r   )r   ra   X_subsetr+   r+   r,   test_safe_indexing_None_axis_0  s   r   c                  C   s\   t d} d}| t}t jt|d t|dgdd W d    d S 1 s'w   Y  d S )Npandasz&No valid specification of the columns.r0   r   r>   r   )r'   importorskip	DataFrameX_toyr(   r)   r   )pdr   ra   r+   r+   r,   0test_safe_indexing_pandas_no_matching_cols_error  s   

"r   r   c                 C   sF   t jtdd ttddg| d W d    d S 1 sw   Y  d S )Nz'axis' should be either 0r0   r   r>   r   )r'   r(   r)   r   r   r   r+   r+   r,   test_safe_indexing_error_axis  s   "r   X_constructorc                 C   s   t td}| dkrt|} n| dkrtd}||} d}tjt|d t	| ddgdd	 W d    d S 1 s<w   Y  d S )
NrS   r   r   r   z:'X' should be a 2D NumPy array, 2D sparse matrix or pandasr0   r   r>   r   )
r2   ranger!   asarrayr'   r   Seriesr(   r)   r   )r   ra   r   r   r+   r+   r,   !test_safe_indexing_1d_array_error  s   

"r   c                  C   sd   ddg} g dg dg dg}d}t jt|d t|| dd	 W d    d S 1 s+w   Y  d S )
Nr   r   r{   r   r   z.String indexing is not supported with 'axis=0'r0   r   r   )r'   r(   r)   r   )r   r   r   r+   r+   r,   4test_safe_indexing_container_axis_0_unsupported_type  s   "r   c                  C   s   t d} | g dg dd}t|ddgdd}t  td| jjj	 d	|j
d
< W d    n1 s7w   Y  |j
d
 dksEJ d S )Nr   r{   )r   r.   rS   )abr   r>   r   errorrW   )r   r   )r'   r   r   r   rD   rE   rF   corecommonSettingWithCopyWarningiloc)r   ra   r   r+   r+   r,   4test_safe_indexing_pandas_no_settingwithcopy_warning  s   

r   zkey, err_msg)rW   z all features must be in \[0, 2\])whateverz/A given column is not a column of the dataframec                 C   sZ   t d}|jtg dd}t jt|d t||  W d    d S 1 s&w   Y  d S )Nr   r   columnsr0   )r'   r   r   r   r(   r)   r   )r   r   r   X_dfr+   r+   r,   test_get_column_indices_error  s
   
"r   r   col1col2col3c                 C   s   t d}tjdtd}g d}|j||d}d| }t t}t	||  W d    n1 s1w   Y  t
|j|ks?J d S )Nr   )r>   rS   r   )r   r   r   r   r   r   z1Selected columns, {}, are not unique in dataframe)r'   r   r!   zerosr   r   formatr(   r)   r   rK   value)r   r   toyr   ra   r   exc_infor+   r+   r,   6test_get_column_indices_pandas_nonunique_columns_error  s   

r   c                  C   sZ   dd } t ddgddggddgd	d
ggg}t| |}t| t| ||ks+J d S )Nc                 S   s   t dd | D S )Nc                 s   s"    | ]}t d d |D V  qdS )c                 s   s    | ]}t |V  qd S r   r   ).0Cr+   r+   r,   	<genexpr>  s    zPtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>.<genexpr>Nr   )r   Br+   r+   r,   r     s     zFtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>r   )Ar+   r+   r,   to_tuple  s   z3test_shuffle_on_ndim_equals_three.<locals>.to_tupler>   r/   r   r.   rS   r   r   r   )r!   r   setr   )r   r   Sr+   r+   r,   !test_shuffle_on_ndim_equals_three   s
   &r   c            
      C   s8  g d} t jg dtd}g d}tt jddgddgdd	ggtd}tt d
dd	}t| ||||dd\}}}}}	|g dksFJ t	|t
ksNJ t|g d |jtks\J |g dksdJ t	|t
kslJ t|t jdd	gddgddggtd t	|tksJ t|	 t ddgd	dgddgg d S )N)r   r   cr   r{   r   r   r   r>   r   r/   r   r   )rY   )r   r   r   )r   r/   r>   r.   rS   )r!   r   objectr   rp   
csc_matrixr~   r   r   typer2   r   r   toarray)
r   r   r   dea_sb_sc_sd_se_sr+   r+   r,   "test_shuffle_dont_convert_to_array
  s   $&*r  c                     sx   t d tt fddtddD  } t |  tdd}tjtdd t| W d    d S 1 s5w   Y  d S )NrW   c                    s   g | ]} | qS r+   r+   )r   r3   
some_ranger+   r,   
<listcomp>&  s    z(test_gen_even_slices.<locals>.<listcomp>r   r}   z+gen_even_slices got n_packs=-1, must be >=1r0   )	r   r2   r   r   r   r'   r(   r)   r4   )joined_rangeslicesr+   r  r,   test_gen_even_slices#  s    


"r  )	row_bytes
max_n_rowsworking_memoryexpected))   Nr>   r  )r  NgG?  )r  Nr>     )r  Nr>   r  )r  Nr/   i   )r  r   r>   r   )i   Nr>   r>   c              	   C   s   t   t dt t| ||d}W d    n1 sw   Y  ||ks'J t|t|u s1J t|d9 t   t dt t| |d}W d    n1 sRw   Y  ||ks]J t|t|u sgJ W d    d S 1 srw   Y  d S )Nr   r	  r
  r  r  r	  r
  )rD   rE   rF   UserWarningr   r   r   )r	  r
  r  r  actualr+   r+   r,   test_get_chunk_n_rows/  s$   

"r  c               	   C   s   d} d}d}d}d}t jt|d t| ||d}W d   n1 s#w   Y  ||ks.J t|t|u s8J t|d6 t jt|d t| |d}W d   n1 sVw   Y  ||ksaJ t|t|u skJ W d   dS 1 svw   Y  dS )	z<Check that warning is raised when working_memory is too low.i  Nr>   zICould not adhere to working_memory config. Currently 1MiB, 2MiB required.r0   r  r  r  )r'   warnsr  r   r   r   )r	  r
  r  r  warn_msgr  r+   r+   r,   test_get_chunk_n_rows_warnsN  s,   "r  )sourcerL   is_longABCABCDEFABCABCABCABCABCABCABCABCABCABCu   ၈timetime_str))g?z   0.2s)   z  20.0s)i  z33.3min)i N  z333.3minc                 C   s   t | ||}|rt|dksJ nt|dksJ |d|  d s$J |t| d d  }||s5J |d t|  }|dsEJ |d td  }||sUJ |d t|  }|dseJ |d d }|rs|rqJ d S tt|dgks~J d S )	NF   [z] r   z, total= r}   .)r   rG   
startswithendswithr2   r   )r  rL   r  r  r  outr+   r+   r,   test_message_with_timei  s"   r(  rL   r  hello皙?
 )Nr,  c                 C   sd   | tddd  td|  | tddd  W d    n1 s"w   Y  | j|ks0J d S )Ndefault_timerc                   S   r;   )Nr   r+   r+   r+   r+   r,   <lambda>      z)test_print_elapsed_time.<locals>.<lambda>r  c                   S   r;   )Nr*  r+   r+   r+   r+   r,   r.    r/  )setattrtimeitr   
readouterrr'  )rL   r  capsysmonkeypatchr+   r+   r,   test_print_elapsed_time  s
   	r5  zvalue, resultnan)r   F)g        F)NF)r,  F)r6  F)l   	H]vieFc                 C   s&   t | |u sJ tt | tsJ d S r   )r   r   r   )r   resultr+   r+   r,   test_is_scalar_nan  s   r8  c                  C   s4   t jddgt jd} t| ddd}t|ddg d	S )
zMake sure sklearn.utils._approximate_mode returns valid
    results for cases where "class_counts * n_draws" is enough
    to overflow 32-bit signed integer.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20774
    i rh   r   ia  r   )class_countsn_drawsr_   i`     N)r!   r   int32r   r   )ra   retr+   r+   r,   test_approximate_mode  s   r>  c                   C   s   d S r   r+   r+   r+   r+   r,   
dummy_func  s   r?  c                 C   sB   ddl m}m} t|dd  t|dd  ddlm} |jjd= d S )Nr   )parallel_backendregister_parallel_backendlokyfailing)joblib)sklearn.utilsr@  rA  r   sklearn.utils._joblibrD  parallelBACKENDS)tmpdirr@  rA  rD  r+   r+   r,   test_deprecation_joblib_api  s
   rJ  sequencer.   c                 C   s:   t | }t|tjsJ |jjdksJ |jdksJ d S )NOr>   )r   r   r!   ndarrayr   kindrn   )rK  r'  r+   r+   r,   test_to_object_array  s   rO  )br   	itertoolsr   rD   stringr1  r'   numpyr!   scipy.sparser   rp   sklearn.utils._testingr   r   r   r   rE  r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sklearn.utils._mockingr   sklearnr   r~   r   r   r-   r8   rP   rT   rf   rm   ro   rr   rv   r   markparametrizebool_r3   r   r<  int64uint8r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  ascii_lowercaser(  r5  floatr6  float32float64r8  r>  r?  rJ  rO  r+   r+   r+   r,   <module>   sj   %






.,
	











	



,