
    0Ph~U                        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Zd dl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 d dlmZ d d	l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j)                  df ej(        g dej*                  df ej(        g dej+                  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e,          dfg          d#             Z-d$ Z.d% Z/eej$        %                    d& e                      d'                         Z0ej$        %                    d(g d)          ej$        %                    d*g d+          d,                         Z1ej$        %                    d(g d-          ej$        %                    d*g d+          d.                         Z2ej$        %                    d(g d/          ej$        %                    d*g d+          ej$        %                    d0d1dgd2d3gg          d4                                     Z3ej$        %                    d5ddg          ej$        %                    d6ddg          ej$        %                    d(g d/          ej$        %                    d*d7d8g          ej$        %                    d9d g d:g d;gfd1dd<gd=d>gd?dggfg          d@                                                             Z4ej$        %                    d(g d-          ej$        %                    d*g dA          dB                         Z5ej$        %                    d(g d/          ej$        %                    d*g dA          ej$        %                    dCd g d:g d;gfd1dd<gd=d>gd?dggfg          dD                                     Z6ej$        %                    dEg dF          dG             Z7ej$        %                    d(g d-          dH             Z8ej$        %                    dEg dI          ej$        %                    d0dd3g          dJ                         Z9ej$        %                    d(g dK          dL             Z:dM Z;ej$        %                    dNdd<g          dO             Z<ej$        %                    dPg dQ          dR             Z=dS Z>dT Z?ej$        %                    d0d d d1g e'd d           ej(        d d1g          g          dU             Z@ej$        %                    d(g dV          dW             ZAej$        %                    dXdYdZ e,            d[fg          d\             ZBej$        %                    d]d^gd_gd^d_gd^d`gd_d`gg          da             ZCdb ZDdc ZEdd ZFde ZGdf ZHej$        %                    dge          dh             ZIdi ZJej$        %                    dje          dk             ZKdS )l    N)copy)SkipTest)parse)_safe_indexingresampleshuffle))yield_namespace_device_dtype_combinations)_determine_key_type_get_column_indices_safe_assign)MockDataFrame)_array_api_for_tests_convert_container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               a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_indexing.pytest_polars_indexingr<      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boolTrA   r   r   r   r>   r?   12r@   )rB   r>   )rC   r@   r   dtypeF))TFrA   )col_0r@   rH   col_1col_2)rI   r@   beginendc                 0    t          |           |k    sJ d S N)r
   )r3   rG   s     r;   test_determine_key_typerP   @   s#    8 s##u,,,,,,r=   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      ?)r,   raises
ValueErrorr
    r=   r;   test_determine_key_type_errorrY   _   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 arerS   r   r   r   F)accept_slice)r,   rV   	TypeErrorr
   slicerX   r=   r;   #test_determine_key_type_slice_errorr^   d   s    	y(G	H	H	H @ @E!QNN????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   !A

AAz#array_namespace, device, dtype_namec                    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>   r+   rA   )y      ?      ?y       @       @y      @      @rR   rS   )	r   sklearnconfig_contextasarrayr
   r\   r,   rV   rW   )array_namespacedevice
dtype_namexpint_array_keybool_array_keycomplex_array_keys          r;   !test_determine_key_type_array_apirl   i   s   
 
ov	6	6B		4	8	8	8 7 7

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

+C+C+C D D 	% 	% 	% $	% (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C; BC;B'$C;&B'' C;C#C;#C'	'C;*C'	+C;;C?C?
array_type)listarraysparse	dataframer   indices_type)rn   tuplero   seriesr]   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   r]   ra   r   r   r      r    r   r   r)   
isinstancer>   r   r   r   rm   rr   indicesro   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    r=   )rn   ro   rt   polars_seriesc                    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   r]   	r   r   r   r   r   r   rx   r    r   r   r)   r   ry   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Pr=   )ro   rp   rq   r   r|   r   rJ   rK   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 )Nr]   r   rI   ra   rv   rw   r   rq   r   ESpecifying the columns using strings is only supported for dataframesrS   r)   r   r   r   r   r    r   )
r   rz   r>   r   r@   r,   rV   rW   r   r   )rm   rr   r|   indices_convertedcolumns_namero   err_msgr}   s           r;   &test_safe_indexing_2d_container_axis_1r      s    Ww:gaj##>#>!!...L	IIIyyy):| E ++<lKK'!*c"" 

z9P'P'P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_onlyro   rt   zaxis, expected_arrayrv   rw   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 )	Nra   rv   rw   F)writer   r   r)   )npro   setflagsr   r   r   )	r   r   rm   rr   r*   expected_arrayro   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Xr=   )rn   rs   ro   rt   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Pr=   zaxis, expected_subsetc                     g d}t          g dg dg dg| |          }g d}t          ||          }t          |||          }t          |t          ||                      d S )NrI   ra   rv   rw   )FTTr)   r   )rm   rr   r*   expected_subsetr   ro   r|   r}   s           r;   test_safe_indexing_2d_maskr      s     /..L	IIIyyy):| E "!!G ,77GE7666F "?J??    r=   z array_type, expected_output_type))rn   rn   ro   ro   rp   rp   rq   rt   r   r   c                     t          g dg dg dg|           }d}t          ||d          }t          g d|          }t          ||           d S )Nra   rv   rw   r   r   r)   r   )rm   expected_output_typero   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8r=   c                 b    t          g d|           }d}t          ||d          }|dk    sJ d S )Nr   r   r   r)   r   )r   r   )rm   ro   r|   r}   s       r;   test_safe_indexing_1d_scalarr     sB    :::JGGEGE7333FQ;;;;;;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 )NrI   ra   rv   rw   r   r   rS   r   r)   )r   r   r   rp   r   r   r   )r   rz   r@   r,   rV   rW   r   r   )	rm   r   r|   r   ro   r   r}   expected_outputr   s	            r;   #test_safe_indexing_2d_scalar_axis_1r   	  sP    /..L	IIIyyy):| E '3 =J6M$M$M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)rn   ro   rp   c                 |    t          g dg dg dg|           }t          |d d          }t          ||           d S )Nra   rv   rw   r   r)   r   )rm   XX_subsets      r;   test_safe_indexing_None_axis_0r   )  sN    IIIyyy)))<jIIAaA...H 1-----r=   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.rS   rU   r   r)   )r,   r-   r.   X_toyrV   rW   r   )pdr   r   s      r;   0test_safe_indexing_pandas_no_matching_cols_errorr   0  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 0rS   r   r   r)   )r,   rV   rW   r   r   r)   s    r;   test_safe_indexing_error_axisr   8  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)ro   rt   r   c                    t          t          d                    }| dk    rt          j        |          } n`| dk    r*t	          j        d          }|                    |          } n0| 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   ro   rt   r   r   r   )valuesz='X' should be a 2D NumPy array, 2D sparse matrix or dataframerS   r   r   r)   )
rn   ranger   rd   r,   r-   SeriesrV   rW   r   )r   r   r   r0   r   s        r;   !test_safe_indexing_1d_array_errorr   >  s     	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   5CCC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 )
NrJ   rK   ra   rv   rw   z.String indexing is not supported with 'axis=0'rS   r   r)   r,   rV   rW   r   )r|   ro   r   s      r;   4test_safe_indexing_container_axis_0_unsupported_typer   Q  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.devra   )r   r   r   )r#   r$   r   r   r)   SettingWithCopyWarningerrorr!   )r   r   )r,   r-   parse_version__version__base_versionr   r.   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   Y  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   rx   r    z!axis=1 is not supported for listsrS   r)   Nr   )r|   r   r   s      r;   *test_safe_indexing_list_axis_1_unsupportedr   r  s     Q!Q!Q A1G	z	1	1	1 + +q'****+ + + + + + + + + + + + + + + + + +s   A		AA)ro   rp   rq   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)
r   randomRandomStaterandnlenshaper   r   r   r   )rm   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Kr=   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   rI   columnsrS   )r,   r-   r.   r   rV   rW   r   )r3   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r3   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   rF   )r   r   r   r   r   r   z1Selected columns, {}, are not unique in dataframe)r,   r-   r   zerosr>   r.   formatrV   rW   r   r@   value)r3   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d          } |                     g dg dgg d          } G d 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   z1.5r   ra   rv   r"   r   c                       e Zd Zd Zd ZdS ):test_get_column_indices_interchange.<locals>.MockDataFramec                     || _         d S rO   )_df)selfr1   s     r;   __init__zCtest_get_column_indices_interchange.<locals>.MockDataFrame.__init__  s    DHHHr=   c                 ,    t          | j        |          S rO   )getattrr   )r   names     r;   __getattr__zFtest_get_column_indices_interchange.<locals>.MockDataFrame.__getattr__  s    48T***r=   N)__name__
__module____qualname__r   r   rX   r=   r;   r   r     s2        	 	 		+ 	+ 	+ 	+ 	+r=   r   r   Nr   r   r$   r%   r#   rB   r   rS   not_a_columnzkey.step must be 1 or None)r,   r-   r.   r]   r   rV   rW   NotImplementedError)r   r1   r   	df_mockedkey_resultsr3   resultmsgs           r;   #test_get_column_indices_interchanger     sp   		X%	8	8	8B	yyy))),ooo	F	FB+ + + + + + + + b!!I 
q$!Q 	tQ!Q 	q!qc
saV	sC1a&!	sD		999%	tS		A3
saV	R
K # = =V"9c22f<<<<<
;C	z	-	-	- 9 9I'78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 'C	*#	6	6	6 < <IuS$':':;;;< < < < < < < < < < < < < < < < < <s$   D**D.1D. E??FF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   r,   rV   rW   r   rX   r=   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                            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   d   g?r   sizer!   r   random_statestratifyr   )r   r   r   normalbinomialr   allsum)r   r   pr   y_y_not_stratifiedy_stratifieds           r;   test_resample_stratifiedr    s    
)


"
"CIA

A
''AQ	**A"1a2APTUUUA6"a'(((((q!rANNNOA|vla'(((((6,1$$$$$$r=   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  )r   r   r   r	  randintr   uniquer   )r   r   r   r  	X_replacer  X_no_replaces          r;    test_resample_stratified_replacer    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//////r=   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  )r   r   r   r	  r  r   ndim)r   r   r   r  s       r;   test_resample_stratify_2dyr    s}    
)


"
"CI

A
''AAq	1~..AAqBS1EEEDAq6Q;;;;;;r=   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  r   zSparse data was passedrS   r  r  )
r   r   r   r	  r  reshaper,   rV   r\   r   )r  r   r   r   r  r  s         r;   #test_resample_stratify_sparse_errorr!  %  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 rO   rs   ).0Cs     r;   	<genexpr>zPtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>.<genexpr>3  s(      //588//////r=   Nr&  )r'  Bs     r;   r)  zFtest_shuffle_on_ndim_equals_three.<locals>.to_tuple.<locals>.<genexpr>3  s9      ;;AU//Q/////;;;;;;r=   r&  )As    r;   to_tuplez3test_shuffle_on_ndim_equals_three.<locals>.to_tuple2  s    ;;;;;;;;r=   r   r   r   r   r   r   rx   r    )r   ro   setr   )r,  r+  Ss      r;   !test_shuffle_on_ndim_equals_threer/  1  s    < < < 	Aq6Aq6"aVaV$4566AHHQKKAAJJJxx{{q      r=   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"   rF   ra   r#   r   r$   r   r%   r   r   r   )r  )r%   r$   r#   )r   r   r   r   r   )r   ro   objectr   aranger   r   typern   r   rG   toarray)r0  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Ir=   )Lr   r   unittestr   numpyr   r,   rb   $sklearn.externals._packaging.versionr   r   sklearn.utilsr   r   r   sklearn.utils._array_apir	   sklearn.utils._indexingr
   r   r   sklearn.utils._mockingr   sklearn.utils._testingr   r   r   r   r   sklearn.utils.fixesr   r   r3  r   r   r<   markparametrizebool_r]   ro   int32int64uint8r2  rP   rY   r^   rl   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/  r=  rX   r=   r;   <module>rM     s:
                      G G G G G G ; ; ; ; ; ; ; ; ; ; N N N N N N         
 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-! ! !
@ @ @
 ))+T+T+V+V 7 7  )(7* DDD  )V)V)VWW	 	 XW 	 'S'S'STT)V)V)VWWQ Q XW UTQ 'Q'Q'QRR)V)V)VWWaVgw-?$@AA
 
 BA XW SR
4 *T5M::,tUm<<'Q'Q'QRR'8)<==a)))YYY!7811v1vPQSTv>V:WX Y Y  >= SR =< ;:Y 'S'S'STT)M)M)MNNQ Q ON UTQ 'Q'Q'QRR)M)M)MNN)))YYY	 11v1v1v&>"?@  	  ON SR &  	 	9 9	 	9 'S'S'STT  UT &    QL11= = 21 =, 'B'B'BCC. . DC.) ) ) $++1 1 ,+1
 *N*N*NOO6 6 PO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 	* 	* 	*%< %< %<P3 3 3% % % 0 0 02   .99Q Q :9Q! ! ! .99J J :9J J Jr=   