
    Mpjc                     6   S SK r S SKJr  S SKJr  S SKrS SKrS SKJr  S SK	J
r
  S SKrS SKJr  S SKJrJrJr  S SKJr  S S	KJrJr  S S
KJrJrJr  S SKJr  S SKJrJ r J!r!J"r"J#r#J$r$  S SK%J&r&J'r'  \RP                  " S5      RS                  S5      r*S r+\RX                  R[                  SSSS\R\                  " S5      S4/ SQS4/ SQS4SS\/" SS5      S4\/" S S5      S4\R`                  " / SQ\Rb                  S9S4\R`                  " / SQ\Rd                  S9S4\R`                  " / SQ\Rf                  S9S4SS/S4S \R`                  " SS/5      S4S!/ S"QS4S#\/" S$S%5      S4\R`                  " / S"Q5      S4\R`                  " / S"Q\4S9S4/5      S& 5       r5S' r6S( r7\$\RX                  R[                  S)\" 5       5      S* 5       5       r8\$\RX                  R[                  S)\" 5       5      \RX                  R[                  S+S S,S-S./\R`                  " S-S./5      \/" S-S5      / S/Q\Rr                  " / S0Q5      45      \RX                  R[                  S1S S-/5      S2 5       5       5       5       r:\RX                  R[                  S3/ S4Q5      \RX                  R[                  S5/ S6Q5      S7 5       5       r;\RX                  R[                  S3/ S8Q5      \RX                  R[                  S5/ S6Q5      S9 5       5       r<\RX                  R[                  S3/ S:Q5      \RX                  R[                  S5/ S6Q5      \RX                  R[                  S;S-S/S<S=//5      S> 5       5       5       r=\RX                  R[                  S?SS/5      \RX                  R[                  S@SS/5      \RX                  R[                  S3/ S:Q5      \RX                  R[                  S5SASB/5      \RX                  R[                  SCS / SDQ/ SEQ/4S-SS./SFSG/SHS//4/5      SI 5       5       5       5       5       r>\RX                  R[                  S3/ S8Q5      \RX                  R[                  S5/ SJQ5      SK 5       5       r?\RX                  R[                  S3/ S:Q5      \RX                  R[                  S5/ SJQ5      \RX                  R[                  SLS / SDQ/ SEQ/4S-SS./SFSG/SHS//4/5      SM 5       5       5       r@\RX                  R[                  SN/ SOQ5      SP 5       rA\RX                  R[                  S3/ S8Q5      SQ 5       rB\RX                  R[                  SN/ SRQ5      \RX                  R[                  S;SS=/5      SS 5       5       rC\RX                  R[                  S3/ STQ5      SU 5       rDSV rE\RX                  R[                  S1SS./5      SW 5       rF\RX                  R[                  SX/ SYQ5      SZ 5       rGS[ rHS\ rI\RX                  R[                  S;S S S-/\/" S S5      \R`                  " S S-/5      /5      S] 5       rJ\RX                  R[                  S3/ S^Q5      S_ 5       rK\RX                  R[                  S`SaSb\4" 5       Sc4/5      Sd 5       rL\RX                  R[                  SeSf/Sg/SfSg/SfSh/SgSh//5      Si 5       rM\RX                  R[                  Sj/ SkQ5      Sl 5       rNSm rOSn rPSo rQSp rRSq rSSr rT\RX                  R[                  Ss\'5      St 5       rUSu rV\RX                  R[                  Sv\&5      Sw 5       rWg)x    N)copy)SkipTest)DuplicateError)kstest)parse)_safe_indexingresampleshuffle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                     [         R                  " SSS9n U R                  / SQ/ SQ/ SQS.SS	9nS
SKJn  S/SS// SQS/S//nU H  n[        XSS9nU" X   U5        M     / SQSS/4/ SQS/4/nU H  u  px[        XSS9nU" USS2U4   U5        M!     S
S/SS/4S/S/4/n	U	 H  u  p[        XSS9nU" USS2U4   U5        M!     S
S/SS/SS//nU H  n[        XS
S9nU" X   U5        M     g)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               ]/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_indexing.pytest_polars_indexingrA   (   sD   			X(	;B	MB5 
 
B 2Sz?SEC5AHR1-27C(  &Sz25IC54QRI&R22aj>3/ ' Q#s$sSEl3H$Rq12aj>3/ % q6Aq6Aq6*KR1-27C(     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                 &    [        U 5      U:X  d   eg N)r   )r8   rL   s     r@   test_determine_key_typerU   I   s    8 s#u,,,rB   c                      [         R                  " [        SS9   [        S5        S S S 5        g ! , (       d  f       g = f)NNo valid specification of thematch      ?)r1   raises
ValueErrorr    rB   r@   test_determine_key_type_errorr^   h   s&    	z)H	IC  
J	I	Is   /
=c                      [         R                  " [        SS9   [        [	        SSS5      SS9  S S S 5        g ! , (       d  f       g = f)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   m   s0    	y(G	HE!QN? 
I	H	Hs	   9
Az(array_namespace, device_name, dtype_namec                    [        XU5      u  p4[        R                  " SS9   UR                  / SQUS9n[	        U5      S:X  d   eUR                  / SQUS9n[	        U5      S:X  d   e UR                  / SQUS9nUb-  [        R                  " [        S	S
9   [	        U5        S S S 5        S S S 5        g ! [
         a    S n NGf = f! , (       d  f       N)= f! , (       d  f       g = f)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_name
dtype_namexpr   int_array_keybool_array_keycomplex_array_keys           r@   !test_determine_key_type_array_apirr   r   s     &oJOJB			4	8

9V
<"=1U:::$7G">2f<<<	% "

+CF
 S
 (z1PQ#$56 R 
9	8  	% $	%
 RQ 
9	8sH   AC+B6=CC%C6CCCC
C	C
C'indexing_keyr    r   )TFTT)FFFFr/   c                    [        XU5      u  pV[        R                  " S5      R                  SS5      n[	        XsUS9n[        XuUS9n	[        R                  " SS9   [	        XUS9n
[        U
5      [        U	5      :X  d   eU
R                  U	R                  :X  d   e S S S 5        [        [        W
[        SS9U5        g ! , (       d  f       N(= f)N   r"   r.   )rn   r   Tre   cpu)r   nparangereshaper   r   rh   ri   array_api_devicerL   r   )rk   rl   rm   rs   r/   rn   r   array_to_index_npexpected_resultarray_to_index_xpindexed_array_xps              r@   $test_safe_indexing_array_api_supportr      s    * &oJOJB		"--a3$%64PO 1H			4	8)*;PTU 015EFW5XXXX%%):)@)@@@@ 
9
 G,EBOT 
9	8s   AC
C
array_type)listarraysparsepandasr   pyarrowindices_type)r   tupler   seriesrb   c                     SS/nUS:X  a%  [        US   [        5      (       a  US==   S-  ss'   [        / SQ/ SQ/ SQ/U 5      n[        X!5      n[        X2SS9n[	        U[        / SQ/ SQ/U 5      5        g )	Nr    r!   rb   rg   r"   r#   r$      r%   r   r   r.   
isinstancerC   r   r   r   r   r   indicesr   subsets        r@   &test_safe_indexing_2d_container_axis_0r      su    
 !fGw:gaj##>#>
a
	9i@*ME 7GE3F "Iy#9:FrB   )r   r   r   polars_seriespyarrow_arrayc                     SS/nUS:X  a%  [        US   [        5      (       a  US==   S-  ss'   [        / SQU 5      n[        X!5      n[        X2SS9n[	        U[        SS/U 5      5        g )Nr    r!   rb   	r    r!   r   r"   r#   r$   r   r%   r   r   r.   r   r   r   s        r@   test_safe_indexing_1d_containerr      sk    
 !fGw:gaj##>#>
a
:JGE 7GE3F );QFJ)OPrB   )r   r   r   r   r   r   rO   rP   c           	         [        U5      nUS:X  a%  [        US   [        5      (       a  US==   S-  ss'   / SQn[        / SQ/ SQ/ SQ/X5      n[        X15      n[        US   [        5      (       a5  U S;   a/  S	n[
        R                  " [        US
9   [        XSSS9  S S S 5        g [        XSSS9n[        U[        SS/SS/SS//U 5      5        g ! , (       d  f       g = f)Nrb   r    rN   rg   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column_namesr   err_msgr   s           r@   &test_safe_indexing_2d_container_axis_1r      s     Ww:gaj##>#>!!.L	Iy):E ++<K'!*c""z5H'HS 	 ]]:W55!< 65  qA$&AAA'?L	
	 65s   C
C array_read_onlyindices_read_onlyr   r   zaxis, expected_arrayr   r   r#   r$   r%   c                 4   [         R                  " / SQ/ SQ/ SQ/5      nU (       a  UR                  SS9  [        Xb5      n[         R                  " SS/5      nU(       a  UR                  SS9  [        Xs5      n[	        XgUS9n[        U[        XR5      5        g )	Nrg   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     HHiI67EU#u1Ehh1vGu% 7GE6F );N)WXrB   )r   r   r   r   c                     S/S/S-  -   S/S-  -   n[        / SQU 5      n[        X!5      n[        X2SS9n[        U[        SS/U 5      5        g )	NFTr!   r$   r   r   r.   r   r   r   r   r   s        r@   $test_safe_indexing_1d_container_maskr     sZ    
 g
"eWq[0G:JGE 7GE3F );QFJ)OPrB   zaxis, expected_subsetc                     / SQn[        / SQ/ SQ/ SQ/X5      n/ SQn[        Xa5      n[        XVUS9n[        U[        X05      5        g )NrN   rg   r   r   )FTTr.   r   )r   r   r/   expected_subsetr   r   r   r   s           r@   test_safe_indexing_2d_maskr     sO     /L	Iy):E "G 7GE6F "??rB   z array_type, expected_output_type))r   r   r   r   r   r   r   r   r   r   r   r   c                 x    [        / SQ/ SQ/ SQ/U 5      nSn[        X#SS9n[        / SQU5      n[        XE5        g )Nrg   r   r   r!   r   r.   r   )r   expected_output_typer   r   r   r   s         r@   #test_safe_indexing_2d_scalar_axis_0r   &  s=     	9i@*MEGE3F'	3GHN 8rB   c                 H    [        / SQU 5      nSn[        XSS9nUS:X  d   eg )Nr   r!   r   r.   r   )r   r   )r   r   r   r   s       r@   test_safe_indexing_1d_scalarr   9  s.     :JGEGE3FQ;;rB   )r   r   r   r   r   c                 P   / SQn[        / SQ/ SQ/ SQ/X5      n[        U[        5      (       a5  U S;   a/  Sn[        R                  " [
        US9   [        XBSS	9  S S S 5        g [        XBSS	9n/ S
QnUS:X  a  S/S/S//n[        Xq5      n[        Xh5        g ! , (       d  f       g = f)NrN   rg   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   C  s     /L	Iy):E '3J2E$ES 	 ]]:W552 65  Q7#8+ !sQC!oO+OR$V< 65s   B
B%)r   r   r   c                 Z    [        / SQ/ SQ/ SQ/U 5      n[        US SS9n[        X!5        g )Nrg   r   r   r   r.   r   )r   XX_subsets      r@   test_safe_indexing_None_axis_0r   d  s+    Iy)<jIAaA.H -rB   c                      [         R                  " S5      n SnU R                  [        5      n[         R                  " [
        US9   [        US/SS9  S S S 5        g ! , (       d  f       g = f)Nr   z&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   k  sM    			X	&B6G
UA	z	1q3%a( 
2	1	1s   A
A+c                     [         R                  " [        SS9   [        [        SS/U S9  S S S 5        g ! , (       d  f       g = f)Nz'axis' should be either 0rX   r   r    r.   )r1   r[   r\   r   r   r.   s    r@   test_safe_indexing_error_axisr   s  s.    	z)D	Euq!f40 
F	E	Es	   5
AX_constructor)r   r   r   r   c                    [        [        S5      5      nU S:X  a  [        R                  " U5      n OU S:X  a(  [        R
                  " S5      nUR                  U5      n OYU S:X  a&  [        R
                  " S5      nUR                  US9n O-U S:X  a'  [        R
                  " S	5      nUR                  U5      n S
n[        R                  " [        US9   [        U SS/SS9  S S S 5        g ! , (       d  f       g = f)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   rj   r1   r2   Seriesr   r[   r\   r   )r   r   r   r5   par   s         r@   !test_safe_indexing_1d_array_errorr   y  s     	U1XA

1	(	"  *		!	/	)  *			+	/	)  +MG	z	1}q!f15 
2	1	1s   C++
C9c                      SS/n / SQ/ SQ/ SQ/nSn[         R                  " [        US9   [        XSS	9  S S S 5        g ! , (       d  f       g = f)
NrO   rP   rg   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     sA     G	9-E@G	z	1uA. 
2	1	1s	   ?
Ac                  z   [         R                  " S5      n [        U R                  5      n[        UR                  5      nU[        S5      :  a  [        S5      eU R                  / SQ/ SQS.5      n[        USS/SS	9n[        U R                  S
5      (       a  U R                  R                  nO U R                  R                  R                  n[        R                  " 5          [        R                  " SU5        SUR                   S'   S S S 5        UR                   S   S:X  d   eg ! , (       d  f       N$= f)Nr   3z;SettingWithCopyWarning has been removed in pandas 3.0.0.devrg   )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     s     
		X	&Br~~.J#J$;$;<O-,,TUU
9956AA1vA.Fryy233!#!A!A "$!F!F		 	 	"g'=>D 
# 66$<1	 
#	"s   ''D,,
D:c                     SS/SS/SS//nSn[         R                  " [        US9   [        XSS	9  S
S
S
5        g
! , (       d  f       g
= f)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     sE     Q!Q!Q A1G	z	1q* 
2	1	1s	   ;
A	)r   r   r   c                 t   [         R                  R                  S5      nUR                  SS5      nSS/nUR                  [	        U5      UR
                  S   5      n[        X 5      n[        XTUS9  [        XSSS9n[        U[        X@5      5        SS/nUR                  UR
                  S   [	        U5      5      n[        X 5      n[        XTUS9  [        XWSS9n[        U[        X@5      5        S	u  p7UR                  " UR
                  6 n[        X 5      n[        XTUS9  [        U[        X@5      5        g
)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7/A4%a1= ,V@ VNYYw}}Q'^)<=F7/A>:%aa@ ,V@ #-KYY F7/A>: $6v$JKrB   zkey, err_msg)r&   z all features must be in \[0, 2\])whateverzBSome column names are not columns of the dataframe: \{'whatever'\}z%No valid specification of the columnsc                     [         R                  " S5      nUR                  [        / SQS9n[         R                  " [
        US9   [        X05        S S S 5        g ! , (       d  f       g = f)Nr   rN   columnsrX   )r1   r2   r3   r   r[   r\   r   )r8   r   r   X_dfs       r@   test_get_column_indices_errorr     sI     
		X	&B<<'B<CD	z	1D& 
2	1	1s   A
A)r8   col1col2col3c                    [         R                  " S5      n[        R                  " S[        S9n/ SQnUR                  X#S9nSn[         R                  " [        US9   [        X@5        S S S 5        g ! , (       d  f       g = f)Nr   )r    r#   rK   )r   r   r   r   r   r   z#Expected unique column names, got.*rX   )	r1   r2   rx   zerosrC   r3   r[   r   r   )r8   r   toyr   r   r   s         r@   6test_get_column_indices_pandas_nonunique_columns_errorr     s`     
		X	&B
((6
%C6G
S*A3G	~W	5A# 
6	5	5s   A33
Bconstructor_name)r   r   r   r   r   c                    [        / SQ/ SQ/U / SQS9n[        SS5      SS/S4[        SS5      S	S/S4[        SS5      S/S4S
S/SS/S4[        SS
5      S	S/S4[        SS5      / SQS4[        SS5      S	/S4SS/SS	/S4/ / S4/	nSnU HS  u  pEnU S;   a6  U(       a/  [        R                  " [        US9   [        X5        SSS5        MB  [        X5      U:X  a  MS   e   U S;  am  Sn[        R                  " [        US9   [        US/5        SSS5        Sn[        R                  " [        US9   [        U[        SSS5      5        SSS5        gg! , (       d  f       M  = f! , (       d  f       N]= f! , (       d  f       g= f)z9Check _get_column_indices for edge cases with 2d input X.rg   r   r'   )r   r    Nr!   Fr   r)   r*   Tr(   rG   r   r   rX   zFSome column names are not columns of the dataframe: \{'not_a_column'\}not_a_columnzkey.step must be 1 or None)r   rb   r1   r[   r\   r   NotImplementedError)r   r6   key_resultsmsgr8   result	use_namess          r@   "test_get_column_indices_dataframesr    s   
 
	I 0
B
 
q$!Q'	tQ!Q'	q!qc5!
saVT"	sC1a&$'	sD	9d+	tS	A3%
saVT"	R
K RC"-Y22yz5#B, 65 'r/6999 #. 22W]]:S1^$45 2 +]].c:E#tQ$78 ;: 3 65 21 ;:s$   8EE)5E:
E&	)
E7:
Fc                  b   [        5       b   e[        R                  " [        5         [        S/SS/5        S S S 5        [        R                  " [        5         [        SS/SS/SSS9  S S S 5        [	        [        SS/SS95      S:X  d   eg ! , (       d  f       N]= f! , (       d  f       N;= f)	Nr   r    Fr   )replace	n_samplesr!   r#   )r  )r	   r1   r[   r\   r   r]   rB   r@   test_resampler  $  s    : 
z	"!q!f 
#	z	"!Q!Q!< 
# xA!,-222 
#	"	"	"s   BB 
B 
B.c                  Z   [         R                  " / SQ5      n [         R                  " / SQ5      n/ n/ n[        S5       H  nUR	                  [        U R                  U5      SUU R                  S   S9R                  5       5        UR	                  [        U USUU R                  S   S9R                  5       5        M     [         R                  " U5      n[         R                  " U5      n[        X#5      n[         R                  " US:  5      (       d   eUR                  S:  d   eg )	N)rt   r   r    )r   d   r    r	  Tr   )r  random_stater  )sample_weightr  r
  r  g?)rx   r   rj   r   appendr	   repeatr   meanr   allpvalue)datar  mean_repeatedmean_reweightedseedtest_results         r@   test_resample_weightedr  2  s    88JDJJ{+MMOc
M*!**Q-	
 df	
 	+!**Q- df	
 & JJ}-Mjj1O8K66/Q&'''' $$$rB   c                  |   [         R                  R                  S5      n SnSnU R                  US4S9nU R	                  SX!S9n[        X4SSS S9u  pV[         R                  " US:H  5      (       d   e[        X4SSUS9u  pW[         R                  " US:H  5      (       a   e[         R                  " U5      S:X  d   eg )	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$  Z  s    
))


"CIA

A
'AQ*A"12APTUA66"a'((((qrANOAvvla'((((66,1$$$rB   c            	         [         R                  R                  S5      n SnU R                  US4S9nU R	                  SSUS9n[        X#SSXS9u  pE[        X#S	SXS9u  pe[         R                  " U5      R                  S   S:  d   e[         R                  " U5      R                  S   S:X  d   e[        X#SS
XS9u  pEUR                  S   S
:X  d   e[         R                  " U5      R                  S   S:X  d   eg )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+  j  s   
))


"CI

A
'AAqy)A	dbsLI 	erOL 99Y%%a(2---99\"((+r111 	ddLI ??1%%%99Y%%a(C///rB   c                      [         R                  R                  S5      n SnU R                  US4S9nU R	                  SSUS4S9n[        X#SXS9u  p#UR                  S:X  d   eg )Nr   r	  r    r  r!   r&  r  )rx   r   r   r  r'  r	   ndim)r   r  r   r   s       r@   test_resample_stratify_2dyr.    sg    
))


"CI

A
'AAq	1~.AABSEDA66Q;;rB   c                     [         R                  " [        SS9   [        SS/SS/SS/SS9  S S S 5        [         R                  " [        SS9   [        SS/SS/SS/SS/S9  S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)	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_notimplementederrorr0    s    	S
 	!Q!Q1vuE	
 
S
 	!Q!Q1vAG	
 

 

 
s   A,A=,
A:=
Bcsr_containerc           	      :   [         R                  R                  S5      nSnUR                  US4S9nUR	                  SSUS9nU " UR                  SS5      5      n[        R                  " [        SS9   [        X4S	XS
9u  p4S S S 5        g ! , (       d  f       g = f)Nr   r	  r!   r  rt   r    zSparse data was passedrX   r&  r  )
rx   r   r   r  r'  rz   r1   r[   ra   r	   )r1  r   r  r   r   r  s         r@   #test_resample_stratify_sparse_errorr3    s     ))


"CI

A
'AAqy)AQYYr1-.H	y(@	AP 
B	A	As   5B
Bc                      S n [         R                  " SS/SS//SS/SS	///5      n[        U " U5      5      n[        U5        [        U " U5      5      U:X  d   eg )
Nc                 &    [        S U  5       5      $ )Nc              3   F   #    U  H  n[        S  U 5       5      v   M     g7f)c              3   8   #    U  H  n[        U5      v   M     g 7frT   r   ).0Cs     r@   	<genexpr>Ptest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>.<genexpr>  s     /Q588Qs   Nr8  )r9  Bs     r@   r;  Ftest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>  s     ;AU/Q///s   !r8  )As    r@   to_tuple3test_shuffle_on_ndim_equals_three.<locals>.to_tuple  s    ;;;;rB   r    r!   r   r"   r#   r$   r   r%   )rx   r   setr
   )r@  r?  Ss      r@   !test_shuffle_on_ndim_equals_threerD    sb    < 	Aq6Aq6"aVaV$456AHQKAAJx{q   rB   csc_containerc           	         / SQn[         R                  " / SQ[        S9n/ SQn[        [         R                  " SS/SS/SS	//[        S95      nU " [         R                  " S
5      R                  SS	5      5      n[        XX4USS9u  pgpn
U/ SQ:X  d   e[        U5      [        :X  d   e[        U/ SQ5        UR                  [        :X  d   eU/ SQ:X  d   e[        U5      [        :X  d   e[        U	[         R                  " SS	/SS/SS//[        S95        [        U	5      [        :X  d   e[        U
R                  5       [         R                  " SS/S	S/SS//5      5        g )Nr'   rK   rg   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bhha3(S!H=VLMAbiil**1a01A%aA!!DCc/!!!9sO,99)9sBHHsAha3(%C6RS9%%%s{{}bhhAAA/G&HIrB   )Xr   r   unittestr   numpyrx   r1   narwhals.exceptionsr   scipy.statsr   rh   $sklearn.externals._packaging.versionr   r   sklearn.utilsr   r	   r
   sklearn.utils._array_apir   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   rr   rj   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+  r.  r0  r3  rD  rQ  r]   rB   r@   <module>rc     s        .   G ; ; 
 1  ? 			!V$)B 	$ 	E	%  	tT	D!	q!e	)288	,e4	)288	,e4	)288	,e4
	4-	 &)	$e,,	w	&	-	.6	-V	<eD-6-76-!
@
 ).-/7	 )
7* ).-/ 	
	
A
!Qa!


/0 !Q(U )	 )$U" L )VW	 X	 O )VWQ XQ D )VWaVgw-?$@A
 B X

4 *T5M:,tUm<D '8)<=a)Y!7811v1vPQSTv>V:WXY > = ;Y O )MNQ OQ D )MN)Y	 11v1v1v&>"?@	 O &
9
9 O &	 QL1= 2	=, 'BC. D.) $+1 ,1
 J66*/2 QAaRXXq!f=M$NO+ P+ 'DEL FLB 1	
 
:;
'
' 	VHvh 0662BVVDTU$$ J 9 9F3%%P% 02H .9Q :Q! .9J :JrB   