
     hi                        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 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j(        d          )                    d          Z*d Z+d Z,d Z-d Z.d Z/d Z0d  Z1d! Z2d" Z3d# Z4ej5        6                    d$d%d&d' ej7        d(          d)fg d*d+fg d,d-fd.d/ e8dd          df e8d d0          d+f ej9        g d*ej:        1          d+f ej9        g d*ej;        1          d+f ej9        g d*ej<        1          d+fd(d2gd)fd3 ej9        d(d2g          d)fd4g d5d-fd6 e8d7d8          d-f ej9        g d5          d-f ej9        g d5e=1          d-fg          d9             Z>d: Z?d; Z@ej5        6                    d<g d=          ej5        6                    d>g d?          d@                         ZAej5        6                    d<g dA          ej5        6                    d>g d?          dB                         ZBej5        6                    d<g dC          ej5        6                    d>g d?          ej5        6                    dDdEd0gdFdGgg          dH                                     ZCej5        6                    dId(d2g          ej5        6                    dJd(d2g          ej5        6                    d<g dC          ej5        6                    d>dKdLg          ej5        6                    dMd g dNg dOgfdEd0dPgdQdRgdSdggfg          dT                                                             ZDej5        6                    d<g dA          ej5        6                    d>g dU          dV                         ZEej5        6                    d<g dC          ej5        6                    d>g dU          ej5        6                    dWd g dNg dOgfdEd0dPgdQdRgdSdggfg          dX                                     ZFej5        6                    dYg dZ          d[             ZGej5        6                    d<g dA          d\             ZHej5        6                    dYg d]          ej5        6                    dDd0dGg          d^                         ZIej5        6                    d<g d_          d`             ZJda ZKej5        6                    dbddPg          dc             ZLej5        6                    dddKdLg          de             ZMdf ZNdg ZOej5        6                    dhdidjg          dk             ZPej5        6                    dldmgdngdmdngdmdogdndogg          dp             ZQdq ZRdr ZSds ZTej5        6                    dtg du          dv             ZUdw ZVej5        6                    g dxdyejW        d2fdzejW        d2fdyejW        dPz  d(fd{ejW        d(fdyejW        d|z   d2fg          ej5        6                    d}d~gg d          d                         ZXej5        6                    ddgd edydd          dz   fd edydd          dz   fdg          d             ZYej5        6                    d eZd          d(fej[        d(f eZej[                  d(f ej\        ej[                  d(f ej]        ej[                  d(fdddddej[        gd2fdg          d             Z^d Z_d Z`d Zaej5        6                    d ej9        dE           ej9        d0          gdEd0gdPdggg          d             Zbej5        6                    d<g dC          d             Zcd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)_safe_assign)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                     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 sJ t          j                            d          } t          d                              d          |                     d          k    sJ t          j        t                    5  t          d           d d d            d S # 1 swxY w Y   d S )N*   d   +   zsome invalid seed)
r	   nprandommtrand_randRandomStaterandintpytestraises
ValueError)rng_42s    Z/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_utils.pytest_make_rngr/   )   s   d##ry'7'=====bi((BI,<,BBBBBY""2&&Fb!!))#..&..2E2EEEEEY""2&&Ff%%////Y""2&&Fb!!))#..&..2E2EEEEE	z	"	" 0 0.///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   E55E9<E9c            	         t          t          t          dd                    t          ddd           t          ddd           g           d} t	          j        t          |           5  t          t          dd                     d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          t          dd                     d d d            d S # 1 swxY w 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_floats     r.   test_gen_batchesr;   ;   sd    tK1--..q!T1B1BE!QPTDUDU0VWWW?H	z	2	2	2    [A                              EI	y		2	2	2 " "[C  !!!" " " " " " " " " " " " " " " " " "s$   )BBB;C&&C*-C*c                  z   t          j        d          5 } t          j        d           t                      d             } |            }|dk    sJ t	          |           dk    sJ t          | d         j        t                    sJ dt          | d         j	                  
                                v sJ 	 d d d            n# 1 swxY w Y   t          j        d          5 } t          j        d           t          d	           G d
 d                      } |            }t          |d          sJ t	          |           dk    sJ t          | d         j        t                    sJ dt          | d         j	                  
                                v sJ 	 d d d            d S # 1 swxY w Y   d S )NT)recordalwaysc                      dS )Nspam rA       r.   hamztest_deprecated.<locals>.hamP   s    6rB   r@      r   r   zdon't use thisc                       e Zd ZdZdS )test_deprecated.<locals>.HamrD   N)__name__
__module____qualname__SPAMrA   rB   r.   HamrF   `   s        DDDrB   rK   rJ   )warningscatch_warningssimplefilterr   len
issubclasscategoryFutureWarningstrmessagelowerhasattr)wrC   r@   rK   s       r.   test_deprecatedrX   H   sS   
 
	 	-	-	- 9h'''		 	 
	 suuv~~~~1vv{{{{!A$-77777s1Q4<006688888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9  
	 	-	-	- 9h'''	$	%	%	 	 	 	 	 	 	 
&	%	 ceesF#####1vv{{{{!A$-77777s1Q4<006688888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s%   B%CCC(B:F00F47F4c                     t                      J t          j        t                    5  t          dgddg           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddgddgdd           d d d            n# 1 swxY w Y   t	          t          ddgd                    dk    sJ d S )	Nr   rD   Fr   )replace	n_samplesr2      )r[   )r   r*   r+   r,   rO   rA   rB   r.   test_resampler]   m   sE   :: 
z	"	"  !q!f              	z	"	" = =!Q!Q!<<<<= = = = = = = = = = = = = = = xA!,,,--222222s#   A

AA.BBBc                     t           j                            d          } d}d}|                     |df          }|                     d||          }t          ||ddd           \  }}t          j        |dk              sJ t          ||dd|          \  }}t          j        |dk              rJ t          j        |          dk    sJ d S )	Nr   r"   g?rD   size
   r[   random_statestratifyr   )r$   r%   r(   normalbinomialr   allsum)rngr[   pXy_y_not_stratifiedy_stratifieds           r.   test_resample_stratifiedrp   {   s    
)


"
"CIA

A
''AQ	**A"1a2APTUUUA6"a'(((((q!rANNNOA|vla'(((((6,1$$$$$$rB   c                  <   t           j                            d          } d}|                     |df          }|                     dd|          }t          ||dd| |          \  }}t          ||d	d| |          \  }}t          j        |          j        d         dk     sJ t          j        |          j        d         dk    sJ t          ||dd
| |          \  }}|j        d         d
k    sJ t          j        |          j        d         dk    sJ d S )Nr   r"   rD   r_   r2   T2   )rZ   r[   rc   rd   F  )r$   r%   r(   re   r)   r   uniqueshape)ri   r[   rk   rl   	X_replacerm   X_no_replaces          r.    test_resample_stratified_replacerx      sH   
)


"
"CI

A
''AAqy))A	1dbsQ  LIq 	1era  OL! 9Y%a(2----9\""(+r1111 	1ddq  LIq ?1%%%%9Y%a(C//////rB   c                      t           j                            d          } d}|                     |df          }|                     dd|df          }t          ||d| |          \  }}|j        dk    sJ d S )Nr   r"   rD   r_   r2   rr   rb   )r$   r%   r(   re   r)   r   ndim)ri   r[   rk   rl   s       r.   test_resample_stratify_2dyr{      s}    
)


"
"CI

A
''AAq	1~..AAqBS1EEEDAq6Q;;;;;;rB   c                  f   t           j                            d          } d}|                     |df          }|                     dd|          }t          j        |          }t          j        t          d          5  t          ||d| |          \  }}d d d            d S # 1 swxY w Y   d S )	Nr   r"   r2   r_   zA sparse matrix was passedr3   rr   rb   )r$   r%   r(   re   r)   sp
csr_matrixr*   r+   r8   r   )ri   r[   rk   rl   rd   s        r.   #test_resample_stratify_sparse_errorr      s   
)


"
"CI

A
''AAqy))A}QH	y(D	E	E	E Q Q1xPPP1Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   B&&B*-B*c                  $   t          d          } |                     dd          }t          j        |          }g d}t	          ||          }||         j        d         dk    sJ t	          ||          }||         j        d         dk    sJ d S )Nr   r\   r1   )FFTTTr   )r	   randr}   r~   r   ru   )rc   rk   X_csrmasks       r.   test_safe_maskr      s    %a((L!QAM!E+++DQDT7=q    UD!!D;Q1$$$$$$rB   c                     dg dfdg dfdt          j        d          dz  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          j        d                              d          fg} | D ]y\  }}|dv r0t          t	          |          t          j        |                     9t          j        t                    5  t	          |           d d d            n# 1 swxY w Y   zd S )Nbinary)r@   eggr@   )r   rD   r   rD   
continuousra   g      4@
multiclassrD   r2   r   )r   rD   r2   r2   r   rD   r2   r   zmultilabel-indicator)r   rD   r   )r   r   rD   zmulticlass-multioutputr\   r1   zcontinuous-multioutput   )r   )r   r   r   )	r$   arangereshaper   r   ravelr*   r+   r,   )EXAMPLESy_typerl   s      r.   test_column_or_1dr      s   	***+	<<< 	ry}}t+,	yyy!	'	aS1#'	)))YYY!78	!III;/	!QFQFQF#;<	!QFQFQF#;<	!III;/	!29R==#8#8#A#ABH     	;;;|A<<<<z**    Q                             	   s   !C==D	D	z
key, dtype)r   int)0rS   )TboolTr   r   rD   r2   r   r   12rS   )r   r   )r   rS   r2   dtypeF))TFr   )col_0rS   r   col_1col_2)r   rS   beginendc                 0    t          |           |k    sJ d S Nr
   )keyr   s     r.   test_determine_key_typer      s#    8 s##u,,,,,,rB   c                      t          j        t          d          5  t          d           d d d            d S # 1 swxY w Y   d S )NzNo valid specification of ther3         ?)r*   r+   r,   r   rA   rB   r.   test_determine_key_type_errorr      s    	z)H	I	I	I ! !C   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   9= =c                      t          j        t          d          5  t          t	          ddd          d           d d d            d S # 1 swxY w Y   d S )NzOnly array-like or scalar arer3   r   r2   rD   F)accept_slice)r*   r+   r8   r   r6   rA   rB   r.   #test_determine_key_type_slice_errorr     s    	y(G	H	H	H @ @E!QNN????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   !A

AA
array_type)r5   arraysparse	dataframeindices_type)r5   tupler   seriesr6   c                 .   ddg}|dk    r+t          |d         t                    r|dxx         dz  cc<   t          g dg dg dg|           }t          ||          }t          ||d          }t	          |t          g dg dg|                      d S )	NrD   r2   r6   r   r1   r\            r   r   axis
isinstancer   r   r   r   r   r   indicesr   subsets        r.   &test_safe_indexing_2d_container_axis_0r     s     !fGw:gaj##>#>


a


			999iii@*MME ,77GE7333F "IIIyyy#9:FF    rB   )r5   r   r   c                    ddg}|dk    r+t          |d         t                    r|dxx         dz  cc<   t          g d|           }t          ||          }t          ||d          }t	          |t          ddg|                      d S )NrD   r2   r6   	rD   r2   r   r1   r\   r   r   r   r   r   r   r   r   r   s        r.   test_safe_indexing_1d_containerr     s     !fGw:gaj##>#>


a


:::JGGE ,77GE7333F );QFJ)O)OPPPPPrB   )r   r   r   r   rD   r   r   c           	      *   t          |          }|dk    r+t          |d         t                    r|dxx         dz  cc<   g d}t          g dg dg dg| |          }t          ||          }t          |d         t                    rP| dk    rJd	}t          j        t          |
          5  t          ||d           d d d            d S # 1 swxY w Y   d S t          ||d          }t          |t          ddgddgddgg|                      d S )Nr6   rD   r   r   r   r   r   r   LSpecifying the columns using strings is only supported for pandas DataFramesr3   r   r2   r   r\   r   r   r   )
r   r   r   r   rS   r*   r+   r,   r   r   )r   r   r   indices_convertedcolumns_namer   err_msgr   s           r.   &test_safe_indexing_2d_container_axis_1r   !  s    Ww:gaj##>#>!!...L	IIIyyy):| E ++<lKK'!*c"" 
z['@'@$ 	 ]:W555 	= 	=5"3!<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=  '8qAAA$&AAA'?LL	
 	
 	
 	
 	
s   -CCCarray_read_onlyindices_read_onlyr   r   zaxis, expected_arrayr   r   r   r\   r   r   c                 l   t          j        g dg dg dg          }| r|                    d           t          ||          }t          j        ddg          }|r|                    d           t          ||          }t	          |||          }t          |t          ||                     d S )	Nr   r   r   F)writerD   r2   r   )r$   r   setflagsr   r   r   )	r   r   r   r   r   expected_arrayr   r   r   s	            r.   &test_safe_indexing_2d_read_only_axis_1r   ?  s     HiiiIII677E $U###uj11Eh1vG &u%%% ,77GE7666F );NJ)W)WXXXXXrB   )r5   r   r   r   c                     dgdgdz  z   dgdz  z   }t          g d|           }t          ||          }t          ||d          }t          |t          ddg|                      d S )	NFTr2   r   r   r   r   r   r   r   r   r   s        r.   $test_safe_indexing_1d_container_maskr   U  s     g
"eWq[0G:::JGGE ,77GE7333F );QFJ)O)OPPPPPrB   zaxis, expected_subsetc                     g d}t          g dg dg dg| |          }g d}t          ||          }t          |||          }t          |t          ||                      d S )Nr   r   r   r   )FTTr   r   )r   r   r   expected_subsetr   r   r   r   s           r.   test_safe_indexing_2d_maskr   _  s     /..L	IIIyyy):| E "!!G ,77GE7666F "?J??    rB   z array_type, expected_output_type))r5   r5   r   r   r   r   r   r   c                     t          g dg dg dg|           }d}t          ||d          }t          g d|          }t          ||           d S )Nr   r   r   r2   r   r   r   )r   expected_output_typer   r   r   r   s         r.   #test_safe_indexing_2d_scalar_axis_0r   s  si     			999iii@*MMEGE7333F'			3GHHN 88888rB   c                 b    t          g d|           }d}t          ||d          }|dk    sJ d S )Nr   r2   r   r   r   )r   r   )r   r   r   r   s       r.   test_safe_indexing_1d_scalarr     sB    :::JGGEGE7333FQ;;;;;;rB   )r   r   r   c                    g d}t          g dg dg dg| |          }t          |t                    rP| dk    rJd}t          j        t
          |          5  t          ||d	           d d d            d S # 1 swxY w Y   d S t          ||d	          }g d
}|dk    rdgdgdgg}t          ||          }t          ||           d S )Nr   r   r   r   r   r   r3   rD   r   )r   r   r   r   r   r   r   )r   r   rS   r*   r+   r,   r   r   )	r   r   r   r   r   r   r   expected_outputr   s	            r.   #test_safe_indexing_2d_scalar_axis_1r     sQ    /..L	IIIyyy):| E '3 =J+$=$=$ 	 ]:W555 	3 	35'2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  wQ777#))8++ !sQC!oO+O=QRR$V^<<<<<s   A77A;>A;)r5   r   r   c                 |    t          g dg dg dg|           }t          |d d          }t          ||           d S )Nr   r   r   r   r   r   )r   rk   X_subsets      r.   test_safe_indexing_None_axis_0r     sN    IIIyyy)))<jIIAaA...H 1-----rB   c                      t          j        d          } d}|                     t                    }t          j        t
          |          5  t          |dgd           d d d            d S # 1 swxY w Y   d S )Npandasz&No valid specification of the columns.r3   r   rD   r   )r*   importorskip	DataFrameX_toyr+   r,   r   )pdr   rk   s      r.   0test_safe_indexing_pandas_no_matching_cols_errorr     s    		X	&	&B6G
UA	z	1	1	1 ) )q3%a(((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   A--A14A1r   c                     t          j        t          d          5  t          t          ddg|            d d d            d S # 1 swxY w Y   d S )Nz'axis' should be either 0r3   r   rD   r   )r*   r+   r,   r   r   r   s    r.   test_safe_indexing_error_axisr     s    	z)D	E	E	E 1 1uq!f400001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   AA
AX_constructorc                 f   t          t          d                    }| dk    rt          j        |          } n/| dk    r)t	          j        d          }|                    |          } d}t	          j        t          |          5  t          | ddgd	           d d d            d S # 1 swxY w Y   d S )
Nr\   r   r   r   z:'X' should be a 2D NumPy array, 2D sparse matrix or pandasr3   r   rD   r   )
r5   ranger$   asarrayr*   r   Seriesr+   r,   r   )r   rk   r   r   s       r.   !test_safe_indexing_1d_array_errorr     s     	U1XXA
1	(	"	" **		!JG	z	1	1	1 6 6}q!f155556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   B&&B*-B*c                      ddg} g dg dg dg}d}t          j        t          |          5  t          || d	           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   r   z.String indexing is not supported with 'axis=0'r3   r   r   )r*   r+   r,   r   )r   r   r   s      r.   4test_safe_indexing_container_axis_0_unsupported_typer     s     GYY			999-E>G	z	1	1	1 / /ugA..../ / / / / / / / / / / / / / / / / /s   AAAc                     t          j        d          } |                     g dg dd          }t          |ddgd          }t	          | j        d          r| j        j        }n| j        j        j        }t          j
                    5  t          j        d	|           d
|j        d<   d d d            n# 1 swxY w Y   |j        d         dk    sJ d S )Nr   r   )r   r1   r\   )abr   rD   r   SettingWithCopyWarningerrorra   )r   r   )r*   r   r   r   rV   errorsr   corecommonrL   rM   rN   iloc)r   rk   r   r   s       r.   4test_safe_indexing_pandas_no_settingwithcopy_warningr     s#    
	X	&	&B
9999995566AA1vA...Fry233 G!#!A "$!F		 	"	"  g'=>>>D               6$<1s    B77B;>B;zkey, err_msg)ra   z all features must be in \[0, 2\])whateverz/A given column is not a column of the dataframec                     t          j        d          }|                    t          g d          }t          j        t
          |          5  t          ||            d d d            d S # 1 swxY w Y   d S )Nr   r   columnsr3   )r*   r   r   r   r+   r,   r   )r   r   r   X_dfs       r.   test_get_column_indices_errorr    s     
	X	&	&B<<'B'B'B<CCD	z	1	1	1 ' 'D#&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   A,,A03A0r   col1col2col3c                 z   t          j        d          }t          j        dt                    }g d}|                    ||          }d                    |           }t          j        t                    5 }t          ||            d d d            n# 1 swxY w Y   t          |j                  |k    sJ d S )Nr   )rD   r\   r   )r  r  r  r  r  r  z1Selected columns, {}, are not unique in dataframe)r*   r   r$   zerosr   r   formatr+   r,   r   rS   value)r   r   toyr  rk   r   exc_infos          r.   6test_get_column_indices_pandas_nonunique_columns_errorr    s     
	X	&	&B
(6
%
%
%C666G
S'**AAHHMMG	z	"	" $hAs###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $x~'))))))s   9BBBc                      d } t          j        ddgddggddgdd	ggg          }t           | |                    }t          |           t           | |                    |k    sJ d S )
Nc                 4    t          d | D                       S )Nc              3   H   K   | ]}t          d  |D                       V  dS )c              3   4   K   | ]}t          |          V  d S r   r   ).0Cs     r.   	<genexpr>zPtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>.<genexpr>  s(      //588//////rB   Nr  )r  Bs     r.   r  zFtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>  s9      ;;AU//Q/////;;;;;;rB   r  )As    r.   to_tuplez3test_shuffle_on_ndim_equals_three.<locals>.to_tuple  s    ;;;;;;;;rB   rD   r2   r   r1   r\   r   r   r   )r$   r   setr   )r  r  Ss      r.   !test_shuffle_on_ndim_equals_threer    s    < < < 	Aq6Aq6"aVaV$4566AHHQKKAAJJJxx{{q      rB   c            	      F   g d} t          j        g dt                    }g d}t          t          j        ddgddgdd	ggt                              }t	          j        t          j        d
                              dd	                    }t          | ||||d          \  }}}}}	|g dk    sJ t          |          t          k    sJ t          |g d           |j        t          k    sJ |g dk    sJ t          |          t          k    sJ t          |t          j        dd	gddgddggt                               t          |          t          k    sJ t          |	                                t          j        ddgd	dgddgg                     d S )N)r   r   cr   r   r   r   r   rD   r  r2   r   r   )rc   )r  r   r   )r   r2   rD   r1   r\   )r$   r   objectr   r}   
csc_matrixr   r   r   typer5   r   r   toarray)
r   r   r  dea_sb_sc_sd_se_ss
             r.   "test_shuffle_dont_convert_to_arrayr+    s    	A
///A		Abha3(S!H=VLLLMMA
bill**1a0011A%aAq!!DDDCc3///!!!!99sOOO,,,9)))99sBHsAha3(%C6RRRSSS99%%%%s{{}}bhAAA/G&H&HIIIIIrB   c            	      L   t          d          t          t          fdt          dd          D                        } t	          |            t          dd          }t          j        t          d          5  t          |           d d d            d S # 1 swxY w Y   d S )Nra   c                      g | ]
}|         S rA   rA   )r  r6   
some_ranges     r.   
<listcomp>z(test_gen_even_slices.<locals>.<listcomp>,  s    VVVe
5 1VVVrB   r   r   z+gen_even_slices got n_packs=-1, must be >=1r3   )	r   r5   r   r   r   r*   r+   r,   r7   )joined_rangeslicesr.  s     @r.   test_gen_even_slicesr2  )  s    rJVVVVrST?U?UVVVWXXLz<000 R$$F	z)V	W	W	W  V                 s   <BB B)	row_bytes
max_n_rowsworking_memoryexpected))   NrD   r7  )r7  NgG?  )r8  NrD     )r9  NrD   r8  )r7  Nr2   i   )r7  r   rD   r   )i   NrD   rD   c                 T   t          j                    5  t          j        dt                     t	          | ||          }d d d            n# 1 swxY w Y   ||k    sJ t          |          t          |          u sJ t          |          5  t          j                    5  t          j        dt                     t	          | |          }d d d            n# 1 swxY w Y   ||k    sJ t          |          t          |          u sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r3  r4  r5  r5  r3  r4  )rL   rM   rN   UserWarningr   r"  r   )r3  r4  r5  r6  actuals        r.   test_get_chunk_n_rowsr@  5  s
    
	 	"	" 
 
g{333!!)
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 X<<4>>))))	~	6	6	6 . .$&& 	R 	R!';777%	jQQQF	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R !!!!F||tH~~-----. . . . . . . . . . . . . . . . . .sG   -AAAD$,CDC 	 D#C 	$+DD!$D!c                      d} d}d}d}d}t          j        t          |          5  t          | ||          }ddd           n# 1 swxY w Y   ||k    sJ t	          |          t	          |          u sJ t          |          5  t          j        t          |          5  t          | |          }ddd           n# 1 swxY w Y   ||k    sJ t	          |          t	          |          u sJ 	 ddd           dS # 1 swxY w Y   dS )	z<Check that warning is raised when working_memory is too low.i  NrD   zICould not adhere to working_memory config. Currently 1MiB, 2MiB required.r3   r;  r<  r=  )r*   warnsr>  r   r"  r   )r3  r4  r5  r6  warn_msgr?  s         r.   test_get_chunk_n_rows_warnsrD  T  s   IJNH 	T  
k	2	2	2 
 
!!)
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 X<<4>>))))	~	6	6	6 . .\+X666 	R 	R%	jQQQF	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R!!!!F||tH~~-----	. . . . . . . . . . . . . . . . . .sG   AA	A	D$C6DC	D	C	
+DD
D)sourcerT   is_longABCABCDEFABCABCABCABCABCABCABCABCABCABCu   ၈timetime_str))g?z   0.2s)   z  20.0s)i  z33.3min)i N  z333.3minc                    t          | ||          }|rt          |          dk    sJ nt          |          dk    sJ |                    d| z   dz             sJ |t          |           dz   d          }|                    |          sJ |d t          |                    }|                    d          sJ |d t          d                    }|                    |          sJ |d t          |                    }|                    d          sJ |d d         }|r|rJ d S t	          t          |                    dgk    sJ d S )	NF   [z] r   z, total= r   .)r   rO   
startswithendswithr5   r  )rE  rT   rF  rJ  rK  outs         r.   test_message_with_timerU  o  sn   ( VWd
3
3C 3xx"}}}}}3xx2~~~~>>#,-.....
c&kkAo
 C<<!!!!!
X
C<<
#####
 Z  
!C<<     
oWo
C<<
crc(C 'wCHH~~#&&&&&&rB   rT   r6  hello皙?
 )NrY  c                    |                     t          dd            t          d|           5  |                     t          dd            d d d            n# 1 swxY w Y   |                                j        |k    sJ d S )Ndefault_timerc                      dS )Nr   rA   rA   rB   r.   <lambda>z)test_print_elapsed_time.<locals>.<lambda>  s     rB   rG  c                      dS )NrW  rA   rA   rB   r.   r]  z)test_print_elapsed_time.<locals>.<lambda>  s    S rB   )setattrtimeitr   
readouterrrT  )rT   r6  capsysmonkeypatchs       r.   test_print_elapsed_timerd    s     ;;;	UG	,	, B BFO[[AAAB B B B B B B B B B B B B B B"h......s   AAAzvalue, resultnan)r   F)g        F)NF)rY  F)re  F)l   	H]vieFc                 t    t          |           |u sJ t          t          |           t                    sJ d S r   )r   r   r   )r  results     r.   test_is_scalar_nanrh    sA    $ 6))))mE**D1111111rB   c                      t          j        ddgt           j                  } t          | 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 rs   r   ia  r   )class_countsn_drawsri   i`     N)r$   r   int32r   r   )rk   rets     r.   test_approximate_modero    sN     	%bh///A
Eq
A
A
AC
 sUCL)))))rB   c                      d S r   rA   rA   rB   r.   
dummy_funcrq    s    DrB   c                     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.utilsrs  rt  r   sklearn.utils._joblibrw  parallelBACKENDS)tmpdirrs  rt  rw  s       r.   test_deprecation_joblib_apir}    sh     JIIIIIII'6660)TBBB,,,,,, +++rB   sequencer1   c                     t          |           }t          |t          j                  sJ |j        j        dk    sJ |j        dk    sJ d S )NOrD   )r   r   r$   ndarrayr   kindrz   )r~  rT  s     r.   test_to_object_arrayr    sO    
8
$
$Cc2:&&&&&9>S    8q======rB   c                 (   t           j                            d          }|                    dd          }ddg}|                    t	          |          |j        d                   }t          ||           }t          |||           t          ||d          }t          |t          ||                      ddg}|                    |j        d         t	          |                    }t          ||           }t          |||           t          ||d          }t          |t          ||                      d	\  }} |j        |j         }t          ||           }t          |||           t          |t          ||                      d
S )z,Check that `_safe_assign` works as expected.r   ra   r\   rD   r2   )row_indexerr   )column_indexer)NNN)
r$   r%   r(   randnrO   ru   r   r   r   r   )r   ri   X_arrayr  valuesrk   assigned_portionr  s           r.   test_safe_assignr    s    )


"
"CiiAGa&KYYs;''q)9::F7J//AF4444%a1=== ,VZ@@   VNYYw}Q'^)<)<==F7J//AF>::::%aa@@@ ,VZ@@   #-KSY F7J//AF>:::: $6vz$J$JKKKKKrB   )dr   	itertoolsr   rL   stringr`  r*   numpyr$   scipy.sparser   r}   sklearn.utils._testingr   r   r   r   rx  r	   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/   r;   rX   r]   rp   rx   r{   r   r   r   markparametrizebool_r6   r   rm  int64uint8r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r+  r2  r@  rD  ascii_lowercaserU  rd  floatre  float32float64rh  ro  rq  r}  r  r  rA   rB   r.   <module>r     s                                        - , , , , , - - - - - - $ $ $ $ $ $ % % % % % % - - - - - - " " " " " " # # # # # # & & & & & & ( ( ( ( ( ( & & & & & & ! ! ! ! ! ! ) ) ) ) ) ) A A A A A A A A * * * * * * ' ' ' ' ' ' * * * * * * + + + + + + 0 0 0 0 0 0 " " " " " " 		!V$$0 0 0$
" 
" 
""9 "9 "9J3 3 3% % % 0 0 02  Q Q Q
% 
% 
%     0 	$ 	E	%  	tT		D!	q!e	)))28	,	,	,e4	)))28	,	,	,e4	)))28	,	,	,e4
	4-	 	 &)	$	$	$e,,	w		&	---	.	.6	---V	<	<	<eD- 6- -7 6-! ! !
@ @ @
 'O'O'OPP)V)V)VWW	 	 XW QP	 'B'B'BCC)V)V)VWWQ Q XW DCQ 'G'G'GHH)V)V)VWWaVgw-?$@AA
 
 BA XW IH
6 *T5M::,tUm<<'G'G'GHH'8)<==a)))YYY!7811v1vPQSTv>V:WX Y Y  >= IH =< ;:Y 'B'B'BCC)M)M)MNNQ Q ON DCQ 'G'G'GHH)M)M)MNN)))YYY	 11v1v1v&>"?@  	  ON IH &   9 9 9 'B'B'BCC  DC &GGG  QL11= = 21	 
=. 'B'B'BCC. . DC.) ) ) $++1 1 ,+1
 7H*=>>6 6 ?>6/ / /  & 1G ' ' ' 	VHvh 0662BVVDTU 	* 	* 	*! ! !J J J2	 	 	 =   . . .&. . .6 $$$	&.	6)51	&*D1	V+T2	&159	 	 Z   ' ' 	 	&'2 
	$$UGS99D@A	r3//$67 / / / 	ut		rv	BF		T"	BF		T"
&5* "2 2# "2* * *"	 	 	, , , xrx{{HBHQKK&@Aq6Aq6BR%STT  UT 'G'G'GHHL L IHL L LrB   