
    /iia                        d dl 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	Z	d dl
mZ d dlmZmZmZ d dlmZmZmZmZmZ d dlmZmZmZ d d	lmZ d d
lmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z%m&Z&  ej'        d          (                    d          Z)d Z*ej+        ,                    dddd ej-        d          dfg ddfg ddfdd e.dd          df e.d d          df ej/        g dej0                  df ej/        g dej1                  df ej/        g dej2                  dfddgdfd ej/        ddg          dfdg d dfd! e.d"d#          df ej/        g d           df ej/        g d e3          dfg          d$             Z4d% Z5d& Z6e#ej+        ,                    d' e            e(          d)                         Z7e#ej+        ,                    d' e            e(          ej+        ,                    d*d d+d,d-g ej/        d,d-g           e.d,d          g d. ej8        g d/          f          ej+        ,                    d0d d,g          d1                                                 Z9ej+        ,                    d2g d3          ej+        ,                    d4g d5          d6                         Z:ej+        ,                    d2g d7          ej+        ,                    d4g d5          d8                         Z;ej+        ,                    d2g d9          ej+        ,                    d4g d5          ej+        ,                    d:d,dgd;d<gg          d=                                     Z<ej+        ,                    d>ddg          ej+        ,                    d?ddg          ej+        ,                    d2g d9          ej+        ,                    d4d@dAg          ej+        ,                    dBd g dCg dDgfd,dd-gdEdFgdGdggfg          dH                                                             Z=ej+        ,                    d2g d7          ej+        ,                    d4g dI          dJ                         Z>ej+        ,                    d2g d9          ej+        ,                    d4g dI          ej+        ,                    dKd g dCg dDgfd,dd-gdEdFgdGdggfg          dL                                     Z?ej+        ,                    dMg dN          dO             Z@ej+        ,                    d2g d7          dP             ZAej+        ,                    dMg dQ          ej+        ,                    d:dd<g          dR                         ZBej+        ,                    d2g dS          dT             ZCdU ZDej+        ,                    d0dd-g          dV             ZEej+        ,                    dWg dX          dY             ZFdZ ZGd[ ZHej+        ,                    d:d d d,g e.d d           ej/        d d,g          g          d\             ZIej+        ,                    d2g d]          d^             ZJej+        ,                    d_d`da e3            dbfg          dc             ZKej+        ,                    dddegdfgdedfgdedggdfdggg          dh             ZLdi ZMdj ZNdk ZOdl ZPdm ZQdn ZRdo ZSej+        ,                    dpe&          dq             ZTdr ZUej+        ,                    dse%          dt             ZVdS )u    N)copy)SkipTest)kstest)parse)_safe_indexingresampleshuffle)_convert_to_numpy_get_namespace_device_dtype_idsdevicemove_to)yield_namespace_device_dtype_combinations)_determine_key_type_get_column_indices_safe_assign)MockDataFrame)_array_api_for_tests_convert_containerassert_allcloseassert_allclose_dense_sparseassert_array_equal'skip_if_array_api_compat_not_configured)CSC_CONTAINERSCSR_CONTAINERS	   )   r   c                  P   t          j        dd          } |                     g dg dg ddd	          }d
dlm} dgddgg ddgdgg}|D ]&}t          ||d          } |||         |           'g dddgfg ddgfg}|D ]-\  }}t          ||d          } ||dd|f         |           .d
dgddgfdgdgfg}	|	D ]-\  }
}t          ||
d          } ||dd|f         |           .d
dgddgddgg}|D ]&}t          ||d
          } |||         |           'dS )z,Check _safe_indexing for polars as expected.polarsz0.18.2)
minversion)      r      )r"            )r    r"   r    
   abcrow)orientr   )assert_frame_equalr)   r(   )r)   r(   r*   r*   r    axisTFT)FFTNr!   r   )pytestimportorskip	DataFramepolars.testingr-   r   )pldfr-   str_keyskeyout	bool_keysbool_keystr_keyint_keysint_keyaxis_0_keyss               g/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_indexing.pytest_polars_indexingrA   '   s   		X(	;	;	;B	llMMMBB5 
 
 
B 211111Sz???SEC5AH ) )R1---2c7C((((%%%Sz25I5I5IC54QRI& 0 0'R2222aaaj>3////Q#s$sSEl3H$ 0 0Rq1112aaaj>3////q6Aq6Aq6*K ) )R1---2c7C(((() )    z
key, dtype)r   int)0str)TboolTrF   r   r    r!   rC   rD   12rE   )rG   rC   )rH   rE   r!   dtypeF))TFrF   )col_0rE   rM   col_1col_2)rN   rE   beginendc                 0    t          |           |k    sJ d S N)r   )r8   rL   s     r@   test_determine_key_typerU   H   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 )NNo valid specification of thematch      ?)r1   raises
ValueErrorr    rB   r@   test_determine_key_type_errorr^   g   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 arerX   r   r!   r    F)accept_slice)r1   r[   	TypeErrorr   slicer]   rB   r@   #test_determine_key_type_slice_errorrc   l   s    	y(G	H	H	H @ @E!QNN????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   !A

AAz$array_namespace, device_, dtype_name)idsc                    t          | |          }t          j        d          5  |                    g d|          }t	          |          dk    sJ |                    g d|          }t	          |          dk    sJ 	 |                    g d|          }n# t
          $ r d }Y nw xY w|Bt          j        t          d	
          5  t	          |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NTarray_api_dispatchr    r!   r   )r   rC   r0   rF   )y      ?      ?y       @       @y      @      @rW   rX   )	r   sklearnconfig_contextasarrayr   ra   r1   r[   r\   )array_namespacedevice_
dtype_namexpint_array_keybool_array_keycomplex_array_keys          r@   !test_determine_key_type_array_apirs   q   s    
ow	7	7B		4	8	8	8 7 7

999W
=="=11U::::$7$7$7HH">22f<<<<	% "

+C+C+CG
 T T 	% 	% 	% $	% (z1PQQQ 7 7#$56667 7 7 7 7 7 7 7 7 7 7 7 7 7 77 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sZ   ADBDB-*D,B-- DC)D)C-	-D0C-	1DDDindexing_keyr    r   )TFTT)FFFFr/   c                    t          | |          }t          j        d                              dd          }t	          |||          }t          |||          }t          j        d          5  t	          |||          }	t          |	          t          |          k    sJ |	j	        |j	        k    sJ 	 d d d            n# 1 swxY w Y   t          t          |	|          |           d S )N   r"   r.   )ro   r   Trf   )ro   )r   nparangereshaper   r   ri   rj   r   rL   r   r
   )
rl   rm   rn   rt   r/   ro   array_to_index_npexpected_resultarray_to_index_xpindexed_array_xps
             r@   $test_safe_indexing_array_api_supportr      sR   , 
ow	7	7B	"--a33$%64PPPO 1bIII		4	8	8	8 A A)*;\PTUUU&''62C+D+DDDDD%):)@@@@@@A A A A A A A A A A A A A A A
 %&62>>>PPPPPs   2ACC
C

array_type)listarraysparse	dataframer   pyarrowindices_type)r   tupler   seriesrb   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 )	Nr    r!   rb   rh   r"   r#   r$      r%   r   r   r.   
isinstancerC   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   )r   r   r   polars_seriespyarrow_arrayc                    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 )Nr    r!   rb   	r    r!   r   r"   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   r   r   rO   rP   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                    rN| dv 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 )Nrb   r    rN   rh   r   r   r   r   r   ESpecifying the columns using strings is only supported for dataframesrX   r.   r!   r   r#   r$   r%   r   )
r   r   rC   r   rE   r1   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"" 

z5H'H'HS 	 ]: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%   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 )	Nrh   r   r   F)writer    r!   r.   )rx   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   )r   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 )	NFTr!   r$   r   r   r.   r   r   r   r   r   s        r@   $test_safe_indexing_1d_container_maskr     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 )NrN   rh   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))r   r   r   r   r   r   r   r   r   r   r   r   c                     t          g dg dg dg|           }d}t          ||d          }t          g d|          }t          ||           d S )Nrh   r   r   r!   r   r.   r   )r   expected_output_typer   r   r   r   s         r@   #test_safe_indexing_2d_scalar_axis_0r   '  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   r!   r   r.   r   )r   r   )r   r   r   r   s       r@   test_safe_indexing_1d_scalarr   :  sD     :::JGGEGE7333FQ;;;;;;rB   )r   r   r   r   r   c                    g d}t          g dg dg dg| |          }t          |t                    rN| dv 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 )NrN   rh   r   r   r   r   rX   r    r.   )r   r$   r   r   r   r$   r   )r   r   rE   r1   r[   r\   r   r   )	r   r   r   r   r   r   r   expected_outputr   s	            r@   #test_safe_indexing_2d_scalar_axis_1r   D  sP    /..L	IIIyyy):| E '3 =J2E$E$ES 	 ]: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   A55A9<A9)r   r   r   c                 |    t          g dg dg dg|           }t          |d d          }t          ||           d S )Nrh   r   r   r   r.   r   )r   XX_subsets      r@   test_safe_indexing_None_axis_0r   e  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.rX   rZ   r    r.   )r1   r2   r3   X_toyr[   r\   r   )pdr   r   s      r@   0test_safe_indexing_pandas_no_matching_cols_errorr   l  s    		X	&	&B6G
UA	z	1	1	1 ) )q3%a(((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   A--A14A1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 0rX   r   r    r.   )r1   r[   r\   r   r   r.   s    r@   test_safe_indexing_error_axisr   t  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_constructor)r   r   r   r   c                 (   t          t          d                    }| dk    rt          j        |          } n| dk    r*t	          j        d          }|                    |          } n`| dk    r+t	          j        d          }|                    |          } 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   r   r   )valuesr   r   z='X' should be a 2D NumPy array, 2D sparse matrix or dataframerX   r   r    r.   )r   rangerx   rk   r1   r2   Seriesr   r[   r\   r   )r   r   r   r5   par   s         r@   !test_safe_indexing_1d_array_errorr   z  sL    	U1XXA
1	(	"	" **		!	/	)	) **			++	/	)	) ++MG	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   %DDD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 )
NrO   rP   rh   r   r   z/String indexing.*is not supported with 'axis=0'rX   r   r.   r1   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                  B   t          j        d          } t          | j                  }t          |j                  }|t          d          k    rt          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   3z;SettingWithCopyWarning has been removed in pandas 3.0.0.devrh   )r   r"   r#   )r(   r)   r   r    r.   SettingWithCopyWarningerrorr&   )r   r   )r1   r2   parse_version__version__base_versionr   r3   r   hasattrerrorsr   corecommonwarningscatch_warningssimplefilteriloc)r   
pd_versionpd_base_versionr   r   r   s         r@   4test_safe_indexing_pandas_no_settingwithcopy_warningr     sd    
	X	&	&Br~..J#J$;<<O-,,,,TUUU
9999995566AA1vA...Fry233 G!#!A "$!F		 	"	"  g'=>>>D               6$<1s    DDDc                     ddgddgddgg}d}t          j        t          |          5  t          || d	           d
d
d
           d
S # 1 swxY w Y   d
S )z@Check that we raise a ValueError when axis=1 with input as list.r    r!   r"   r#   r   r%   z!axis=1 is not supported for listsrX   r.   Nr   )r   r   r   s      r@   *test_safe_indexing_list_axis_1_unsupportedr     s     Q!Q!Q A1G	z	1	1	1 + +q'****+ + + + + + + + + + + + + + + + + +s   A		AA)r   r   r   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   r&   r#   r    r!   )row_indexerr.   )column_indexer)NNN)
rx   randomRandomStaterandnlenshaper   r   r   r   )r   rngX_arrayr   r   r   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   zkey, err_msg)r&   z all features must be in \[0, 2\])whatever/A given column is not a column of the dataframez%No valid specification of the columnsc                     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   rN   columnsrX   )r1   r2   r3   r   r[   r\   r   )r8   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r8   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   )r    r#   rK   )r   r   r   r   r   r   z1Selected columns, {}, are not unique in dataframe)r1   r2   rx   zerosrC   r3   formatr[   r\   r   rE   value)r8   r   toyr   r   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            
         t          j        d          } |                     g dg dgg d          }t          dd          ddgft          dd          d	dgft          dd          dgfd
dgddgft          dd
          d	dgft          dd          g dft          dd          d	gfddgdd	gfg g fg	}|D ]\  }}t	          ||          |k    sJ d}t          j        t          |          5  t	          |dg           ddd           n# 1 swxY w Y   d}t          j        t          |          5  t	          |t          ddd                     ddd           dS # 1 swxY w Y   dS )z=Check _get_column_indices for edge cases with the interchanger   rh   r   r'   )schemar    Nr!   r   r)   r*   r(   rG   r   rX   not_a_columnzkey.step must be 1 or None)r1   r2   r3   rb   r   r[   r\   NotImplementedError)r5   r6   key_resultsr8   resultmsgs         r@   #test_get_column_indices_interchanger    s4   		X	&	&B 
yyy))),___	E	EB 
q$!Q 	tQ!Q 	q!qc
saV	sC1a&!	sD		999%	tS		A3
saV	R
K # 6 6V"2s++v55555
;C	z	-	-	- 2 2B 01112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 'C	*#	6	6	6 5 5Bc4 3 34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   2DDD8 E%%E),E)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   r    Fr   )replace	n_samplesr!   r#   )r	  )r   r1   r[   r\   r   r]   rB   r@   test_resampler
    sE   :: 
z	"	"  !q!f              	z	"	" = =!Q!Q!<<<<= = = = = = = = = = = = = = = xA!,,,--222222s#   A

AA.BBBc                  |   t          j        g d          } t          j        g d          }g }g }t          d          D ]}|                    t          |                     |          d|| j        d                                                              |                    t          | |d|| j        d                                                              t          j        |          }t          j        |          }t          ||          }t          j
        |dk              sJ |j        dk    sJ d S )	N)ru   r   r    )r   d   r    r  Tr   )r  random_stater	  )sample_weightr  r  r	  g?)rx   r   rk   r   appendr   repeatr   meanr   allpvalue)datar  mean_repeatedmean_reweightedseedtest_results         r@   test_resample_weightedr  )  sS    8JJJDJ{{{++MMOc

 
 
M**!*Q-	  
 dff	
 	
 	
 	+!*Q-   dff	
 	
 	
 	
 J}--Mj11O88K6/Q&''''' $$$$$$rB   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?r    sizer&   r	  r  stratifyr   )rx   r   r   normalbinomialr   r  sum)r   r	  pr   y_y_not_stratifiedy_stratifieds           r@   test_resample_stratifiedr'  Q  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  r    r  r!   T2   )r  r	  r  r  Fi  )rx   r   r   r  randintr   uniquer   )r   r	  r   r#  	X_replacer$  X_no_replaces          r@    test_resample_stratified_replacer.  a  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  r    r  r!   r)  r  )rx   r   r   r  r*  r   ndim)r   r	  r   r#  s       r@   test_resample_stratify_2dyr1  z  s}    
)


"
"CI

A
''AAq	1~..AAqBS1EEEDAq6Q;;;;;;rB   c                  <   t          j        t          d          5  t          ddgddgddgd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          ddgddgddgddg           d d d            d S # 1 swxY w Y   d S )	NzCResampling with sample_weight is only implemented for replace=True.rX   r   r    F)r  r  zCResampling with sample_weight is only implemented for stratify=None)r  r  )r1   r[   r  r   r]   rB   r@   test_notimplementederrorr3    sj   	S
 
 
 F F 	!Q!Q1vuEEEE	F F F F F F F F F F F F F F F 
S
 
 
 H H 	!Q!Q1vAGGGG	H H H H H H H H H H H H H H H H H Hs#   AA	A(BBBcsr_containerc                 |   t           j                            d          }d}|                    |df          }|                    dd|          } | |                    dd                    }t          j        t          d          5  t          ||d	||
          \  }}d d d            d S # 1 swxY w Y   d S )Nr   r  r!   r  ru   r    zSparse data was passedrX   r)  r  )
rx   r   r   r  r*  rz   r1   r[   ra   r   )r4  r   r	  r   r#  r  s         r@   #test_resample_stratify_sparse_errorr6    s    )


"
"CI

A
''AAqy))A}QYYr1--..H	y(@	A	A	A 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   B11B58B5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 rT   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   r    r!   r   r"   r#   r$   r   r%   )rx   r   setr	   )rA  r@  Ss      r@   !test_shuffle_on_ndim_equals_threerD    s    < < < 	Aq6Aq6"aVaV$4566AHHQKKAAJJJxx{{q      rB   csc_containerc           	      4   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        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 )Nr'   rK   rh   r(   r   r)   r    r*   r!   r$   r   )r  )r*   r)   r(   )r   r!   r    r"   r#   )rx   r   objectr   ry   rz   r	   typer   r   rL   toarray)rE  r(   r)   r*   dea_sb_sc_sd_se_ss              r@   "test_shuffle_dont_convert_to_arrayrQ    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   )Wr   r   unittestr   numpyrx   r1   scipy.statsr   ri   $sklearn.externals._packaging.versionr   r   sklearn.utilsr   r   r	   sklearn.utils._array_apir
   r   r   r   r   sklearn.utils._indexingr   r   r   sklearn.utils._mockingr   sklearn.utils._testingr   r   r   r   r   r   sklearn.utils.fixesr   r   ry   rz   r   rA   markparametrizebool_rb   r   int32int64uint8rG  rU   r^   rc   rs   rk   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.  r1  r3  r6  rD  rQ  r]   rB   r@   <module>rb     s                            G G G G G G ; ; ; ; ; ; ; ; ; ;                      
 1 0 0 0 0 0                ? > > > > > > > 		!V$$) ) )B 	$ 	E	%  	tT		D!	q!e	)))28	,	,	,e4	)))28	,	,	,e4	)))28	,	,	,e4
	4-	 	 &)	$	$	$e,,	w		&	---	.	.6	---V	<	<	<eD- 6- -7 6-! ! !
@ @ @
 )*--//'   
7 7  )(7* )*--//'   
 	
	
A!Qa!!!
///00  !Q((Q Q )(   )(&Q" OOO  )V)V)VWW	 	 XW 	 OOO  )V)V)VWWQ Q XW Q GGG  )V)V)VWWaVgw-?$@AA
 
 BA XW 

4 *T5M::,tUm<<GGG  '8)<==a)))YYY!7811v1vPQSTv>V:WX Y Y  >=  =< ;:Y OOO  )M)M)MNNQ Q ON Q GGG  )M)M)MNN)))YYY	 11v1v1v&>"?@  	  ON  &  
 
9 9
 
9 OOO    &  	 	 QL11= = 21	 	=, 'B'B'BCC. . DC.) ) ) $++1 1 ,+1
 JJJ 6 6 6*/ / /  2 QAaXRXq!f=M=M$NOO+ + PO+ 'G'G'GHHL L IHLB 1G	:; ' ' ' 	VHvh 0662BVVDTU 	* 	* 	*5 5 5<3 3 3%% %% %%P% % % 0 0 02  H H H .99Q Q :9Q! ! ! .99J J :9J J JrB   