
    {Kg!                       d Z ddlZddlZddlZddlm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mZ ddlZddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZF ddlGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z` d Zad Zbej                  j                  dej                  j                  d       ej                  dd      j                         g      d        Zhd Zid  Zjd! Zkej                  j                  d"ej                  d#fej                  d$fej                  d#fg      ej                  j                  d%ej                  ej                  g      d&               Zpej                  j                  d'ej                  d(d)d*fej                  dd)d+fej                  d,d)d-fej                  dd$d+fej                  d(d)d.fej                  dd)d/fej                  d0d)d1fej                  d(d2d3fej                  d(d4d.fg	      ej                  j                  d%ej                  ej                  g      d5               Zqej                  j                  d6g d7      ej                  j                  d%ej                  ej                  g      d8               Zrd9 Zsej                  j                  d: ej                  d4ej                  gg      d;f ej                  d4ej                  gg      d;f ej                  d4ej                  gg      d<f ej                  d4ej                  ggeu=      d>fg      ej                  j                  d?d)d#g      d@               ZvdA Zwe<dB        Zxej                  j                  ddCdDgdEdFgg ej                  dCdDgdEdFggdG=       ej                  dCdDgdEdFggdH=      dIdJgdKdLgg ej                  dIdJgdKdLggdM=      g      dN        Zyej                  j                  dOg dP      ej                  j                  dQej                  ej                  gej                  fej                  ej                  fdRej                  fg      dS               Z|dT Z}dU Z~dV ZdW ZdX ZdY ZdZ Z ej                  g d[\      d]        Zd^ Zd_ Zd` Zda Zdb Zdc Zdd Zde Zdf Zej                  j                  dg ed      eegg dhi      dj        Zdk Zdl Zdm Zdn Zej                  j                  doej                  ej                  fej                  ddRf      ej                  j                  dpdq      dr               Zds Zdt Z G du dv      Z G dw dx      Zdy Zej                  j                  dzd)d#g      d{        Zej                  j                  d%ej                  ej                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  g      d|        Zd} Zd~ Zej                  j                  dg d      d        Zej                  j                  dd4deddd ed      fddejR                  ddd ed      fddejT                  ddd ed      fd4deefddd ed      fd4deddd ed      fddeddd ed      fddeddd ed      fddeddd ed      fddeddd ed      fddeddd ed      fddeddd ed      fg      d        Zd ej                  d4dg      dd(f ej                  d4dg       ej                  d4dg      dd(fd ej                  ddg      edfd ej                  ddg      ed(f ej                  d4dgej                  =       ej                  d4dgej                  =      edf ej                  d4dgej                  =       ej                  d4dgej                  =      edfd ej                  ddg      edfdZej                  j                  d eeja                                eejc                               i      ej                  j                  dd)d#g      d               Zdedfdedfdedf ej                  ddgej                  =      edf ej                  ddgej                  =      edfdZej                  j                  d eeja                                eejc                               i      d        Zd Zej                  j                  dej                  ej                  ej:                  g      d        Zej                  j                  dej                  ej                  ej:                  g      d        Zej                  j                  dej                  ej:                  g      d        Zd Zd Zd Zej                  j                  ddd4dgg      d        Zej                  j                  dg dĢ      dń        Zej                  j                  dg dǢ      dȄ        Zej                  j                  dddej~                  fddej~                  fddej~                  fddej                  fddej                  fddej                  fddej                  fddej                  fddej                  fddej                  fddej                  fddej                  fddej                  fddej                  fddej                  fg      d        Zej                  j                  dg d      d        Zej                  j                  dg dg dg dg ddd4iddiddiggg di      ej                  j                  dg d      d               Zej                  j                  dg dg di      d        Zej                  j                  d e ed             ed      dddgddgggg di      d        Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zʐd  Zːd Zej                  j                  dded   d   fded   d   fded   d   fg      d        Z͐d Zΐd Zej                  j                  d	dd4gd
fdddggdfgddgi      d        Z G d de      Zѐd ZҐd ZӐd Zej                  j                  dg d      d        ZՐd Z֐d Zej                  j                  ddd4dd4dej                  gg dg      d        Ze=ej                  j                  dddg      d                Zej                  j                  d!g d"      ej                  j                  d#d)d#g      d$               Zڐd% Zej                  j                  d&eCeBz   eAz   eDz         ej                  j                  d'g d(      d)               Zej                  j                  d* ej                  d4       ej                  d      gd4dgddggg      d+        Zݐd, Zސd- Zߐd. Zd/ Zd0 Zy(1  z$Tests for input validation functions    N)product)
itemgetter)NamedTemporaryFile)importorskip)config_context)dependent_packages)BaseEstimator)
make_blobs)RandomForestRegressor)NotFittedErrorPositiveSpectrumWarning)ARDRegression)EstimatorWithFit)KNeighborsClassifier)_sparse_random_matrix)SVR)_safe_indexingas_float_arraycheck_arraycheck_symmetric	check_X_y
deprecated)MockDataFrame_MockEstimatorOnOffPrediction)
SkipTest
TempMemmap_convert_containerassert_allcloseassert_allclose_dense_sparseassert_array_equalassert_no_warningscreate_memmap_backed_dataignore_warnings'skip_if_array_api_compat_not_configured)_NotAnArray)COO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERSDIA_CONTAINERSDOK_CONTAINERSparse_version)FLOAT_DTYPES_allclose_dense_sparse_check_feature_names_in_check_method_params_check_psd_eigenvalues_check_response_method_check_sample_weight_check_y_deprecate_positional_args_get_feature_names
_is_fitted_is_pandas_df_is_polars_df_num_features_num_samples_to_object_arrayassert_all_finitecheck_consistent_lengthcheck_is_fittedcheck_memorycheck_non_negativecheck_random_statecheck_scalarcolumn_or_1dhas_fit_parameterc                     t        d       t        j                  j                  j                  u sJ t        t        j                        t        j                  j                  j                  u sJ t        j                  j                  d      } t        d      j                  d      | j                  d      k(  sJ t        j                  j                  d      } t        |       | u sJ t        j                  j                  d      } t        d      j                  d      | j                  d      k7  sJ t        j                  t              5  t        d       d d d        y # 1 sw Y   y xY w)N*   d   +   zsome invalid seed)
rA   nprandommtrand_randRandomStaterandintpytestraises
ValueError)rng_42s    g/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/utils/tests/test_validation.pytest_make_rngrT   [   s
   d#ryy'7'7'='====bii(BII,<,<,B,BBBBYY""2&Fb!))#.&..2EEEEYY""2&Ff%///YY""2&Fb!))#.&..2EEEE	z	"./ 
#	"	"s   E''E0c                     t        j                  dt         j                        } | t        j                  dt         j                        z   } t	        | d      }|j
                  t         j                  k(  sJ | j                  t         j                        } t	        | d      }t	        | d      | usJ |j
                  t         j                  k(  sJ t        t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  g}|D ]=  }| j                  |      } t	        |       }|j
                  t         j                  k(  r=J  | j                  t               } t	        | d      }|j
                  t         j                  k(  sJ t        j                  dt         j                        } t	        | d      | u sJ t        j"                  |       } t        j$                  t	        | d            sJ t'        j(                  t        j                  d            j+                         t-        ddd	
      j+                         g}|D ]G  }t	        |d      }t         j.                  |d<   t        j0                  |      j3                         sGJ  y )N)   
   dtyperW   FcopyT)rV         皙?)densityr   r   )rI   onesint32aranger   rY   float32astypeint64float64boolint8int16uint8uint16uint32objectasfortranarray	isfortransp
csc_matrixtoarrayr   nanisnanany)XX2tested_dtypesrY   matricesMNs          rS   test_as_float_arrayr}   m   s   
rxx(A	BIIb))A		&B88rzz!!!	A		%B!%(11188rzz!!!277BHHbhh"))RYYWMHHUOAxx2::%%%  	
A		%B88rzz!!! 	bjj)A!%(A---
!A<<qt4555 	biil#++-b"d3;;=H 14(&&$88A;??$$$     rw   rW   r\   rW   r\   c                     t         j                  | d<   t         j                  | d<   t        | d      }t        ||        y )N)r]   r   )      	allow-nanforce_all_finite)rI   rt   r   r   )rw   X_converteds     rS   test_as_float_array_nanr      s2    ffAdGffAdG [AK a0r~   c                     t        j                  d      j                  dd      } t        t	        |       t         j
                        rJ t        t	        t        j                  |             t         j
                        rJ y )N   rV      )rI   rc   reshape
isinstancer   matrixrq   rr   rw   s    rS   test_np_matrixr      sZ    
		"a#A.+RYY777.q)9:BIIFFFFr~   c                  P   d } t        d      5 }t        j                  |dt        j                        }d|d d  t        t        j
                  | fD ]<  } ||      }d|d d  t        |j                         |j                                d|d d  > 	 d d d        y # 1 sw Y   y xY w)Nc                     t        | d      S )NFrZ   )r   )xs    rS   <lambda>ztest_memmap.<locals>.<lambda>   s    nQU3r~   zsklearn-test)prefixrW   rW   )shaperY   r   r   )r   rI   memmaprd   r   asarrayr    ravel)asflttmpr{   frw   s        rS   test_memmapr      s     4E	>	2cIIc<!rzz51A!AAaDqwwy!'')4AaD	 2	 
3	2	2s   BBB%c                  ~   t        j                  d      } | | j                  fD ]P  }dD ]I  }t        |d|      }|j                  d   sJ t        |d|      }|j                  d   sJ |sD||urIJ  R t        j                  |       } | j                  d d d   | _        | j                  j                  d   rJ y )	N)rW   r]   )TFC)orderr[   C_CONTIGUOUSFF_CONTIGUOUS)rI   ra   Tr   flagsrq   
csr_matrixdata)rw   Ar[   Bs       rS   test_orderingr      s     	AV!DASt4A77>***ASt4A77>***z!z "  	aAVVDbD\AFvv||N++++r~   zvalue, force_all_finiteFr   retypec                      |t        j                  d      j                  dd      j                  t                    }| |d<   t        ||d      }t        ||       y )Nr   r\   r`   T)r   accept_sparse)rI   rc   r   re   floatr   r   )valuer   r   rw   	X_checkeds        rS   'test_check_array_force_all_finite_validr      sQ    
 	ryy|##Aq)0078AAdGA0@PTUI I.r~   z.value, input_name, force_all_finite, match_msg TzInput contains infinityzInput X contains infinitysample_weightz%Input sample_weight contains infinityInput contains NaNzInput X contains NaNyzInput y contains NaNz	allow-infz0force_all_finite should be a bool or "allow-nan"r   c                     |t        j                  d      j                  dd      j                  t         j                              }| |d<   t        j                  t        |      5  t        |||d       d d d        y # 1 sw Y   y xY w)Nr   r\   r`   matchT)
input_namer   r   )	rI   rc   r   re   rg   rO   rP   rQ   r   )r   r   r   	match_msgr   rw   s         rS   (test_check_array_force_all_finiteinvalidr      si    . 	ryy|##Aq)00<=AAdG	z	3!-		
 
4	3	3s   )BBr   )rw   r   r   c                 (    |t        j                  d      j                  dd      j                  t         j                              }t         j
                  |d<   t               }d|j                  j                   d}t        j                  t        d|  d      5 }t        ||| d	
       d d d        | dk(  r|j                  j                  d   v sJ |j                  j                  d   vsJ | dk(  rt        j                  t        d|  d      5 }t               j                  |t        j                   |j"                  d                d d d        ||j                  j                  d   v sJ y y # 1 sw Y   xY w# 1 sw Y   4xY w)Nr   r\   r`   
aX   does not accept missing values encoded as NaN natively. For supervised learning, you might want to consider sklearn.ensemble.HistGradientBoostingClassifier and Regressor which accept missing values encoded as NaNs natively. Alternatively, it is possible to preprocess the data, for instance by using an imputer transformer in a pipeline or drop samples with missing values. See https://scikit-learn.org/stable/modules/impute.html You can find a list of all estimators that handle NaN values at the following page: https://scikit-learn.org/stable/modules/impute.html#estimators-that-handle-nan-valueszInput z contains NaNr   T)	estimatorr   r   rw   r   )rI   rc   r   re   rg   rt   r   	__class____name__rO   rP   rQ   r   r   argsfitra   r   )r   r   r   r   extended_msgctxs         rS   0test_check_array_links_to_imputer_doc_only_for_Xr      s^    "))A,&&q!,33BJJ?@DDJI
Y  ))* +- 	-  
z6*])K	LPS!		
 
M Ssyy~~a0000399>>!#4444S ]]:vj\-OPTWEIIdBGGDJJqM23 Qsyy~~a0000  
M	L  QPs   E<;F<FFc                  >   t        j                  ddt         j                  ggt              j                  } t        | d d      }| |u sJ t        | d d      }| |u sJ t        j                  t        d      5  t        | d d	       d d d        y # 1 sw Y   y xY w)
NabrX   r   rY   r   Fr   r   T)	rI   arrayrt   rn   r   r   rO   rP   rQ   )rw   r   s     rS   (test_check_array_force_all_finite_objectr   !  s    
3RVV$%V466AATKHI	>>ATEBI	>>	z)=	>ATD9 
?	>	>s   ;BBz
X, err_msgInput contains NaN.z5Input contains infinity or a value too large for.*intrX   z#cannot convert float NaN to integerr   c                     t        j                  t        |      5  t        | t        |       d d d        y # 1 sw Y   y xY w)Nr   r   )rO   rP   rQ   r   int)rw   err_msgr   s      rS   7test_check_array_force_all_finite_object_unsafe_castingr   .  s+    0 
z	1AS3CD 
2	1	1s	   8Ac                      t        j                  d      } | j                  g d      }dt        |       d}t        j                  t
        |      5  t        |d       ddd       y# 1 sw Y   yxY w)	z
    Check that we raise a proper error message when passing a Series and we expect a
    2-dimensional container.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27498
    pandasr   r\   rV   z+Expected a 2-dimensional container but got z	 instead.r   T	ensure_2dN)rO   r   SeriestyperP   rQ   r   )pdsermsgs      rS   test_check_array_series_err_msgr   J  sX     
		X	&B
))I
C7S	{)
LC	z	-C4( 
.	-	-s   A**A3c                     ddgddgg} t        j                  |       }t        j                  t              5  t        |       d d d        t        g dd      }|j                  dk(  sJ t        j                  t        d	      5  t        g dd
       d d d        t        j                  t        d	      5  t        dd
       d d d        t        t         d      rht        t        t        j                  |                   }|j                  dk(  r2t        j                  t        d	      5  t        |d
d
       d d d        t        j                  d      j                  ddd      }t        j                  t              5  t        |       d d d        t        |d
       t        j                  d      j                  dd      j                  d      }|j                  d      }|j!                  t"              }|j!                  t$              }||||g}	t        j&                  t"        t$        t        j(                  d t*        t,        g}
g d}d
dg}t/        |	|
||      D ]  \  } }}}t        | |||      }||j0                  |k(  sJ |j0                  | j0                  k(  sJ |dk(  r"|j2                  d   sJ |j2                  d   r)J |dk(  r"|j2                  d   sJ |j2                  d   rJ |r| |urJ | j0                  |j0                  k(  s|j2                  d   | j2                  d   k(  s|j2                  d   | j2                  d   k(  s| |u rJ  g }	|	j5                  t6        t8        z   t:        z   t<        z   D cg c]
  } ||       c}       |	j5                  |	d   j!                  t        j>                        |	d   j!                  t        j@                        g       ddgddgg}|
D cg c]  }|t,        us| }}t/        |	|||      D ]  \  } }}}t        | |||      }||j0                  |k(  sJ |j0                  | j0                  k(  sJ | jB                  |v r| jB                  |jB                  k(  sJ |jB                  |d   k(  sJ |r| |urJ | j0                  |j0                  k(  s| jB                  |jB                  k(  s| |u rJ  t        ddgddgg      }tE        |t        jF                        sJ t        j                  t              5  t        |jI                                d d d        t        |jI                         d
       tK        |      }t        |      }tE        |t        jF                        sJ y # 1 sw Y   bxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY wc c}w c c}w # 1 sw Y   xY w)Nr   r\   rV   r   )r   r   r\   Fr   z'Expected 2D array, got 1D array insteadr   Tz+Expected 2D array, got scalar array insteadrW   	csr_arrayzExpected 2D input, got)r   r      allow_ndr   r   )r   r   N)rY   r   r[   r   r   r   csrcoodokrY   r   r[   )&rq   r   rO   rP   	TypeErrorr   ndimrQ   hasattrnextiterr   rI   rc   r   r[   re   r   r   rb   rd   rh   rn   r   rY   r   extendr(   r'   r&   r*   rf   rg   formatr   ndarraytolistr%   )rw   X_csrX_array
sparse_rowX_ndimX_CX_FX_intX_floatXsdtypesorderscopysrY   r   r[   r   sparse_containeraccept_sparsesdtnon_object_dtypesr   X_dense
X_no_arrayresults                            rS   test_check_arrayr  Y  s1    Q!QAMM!E	y	!E 
" )u5G<<1	z)R	SI. 
T 
z)V	WB$' 
X r;$r||A/0
??az1IJJddK K YYq\!!!Q*F	z	"F 
#& ))A,

q!
$
)
)#
.C
((3-CJJsOEjjG
sE7	#BhhUBJJdFCFF5ME!(VVU!C5%e$G	??e+++??agg---C<??>222 ~666c\??>222 ~666I%%% 9??*OON3qww~7NNOON3qww~7NNI~%~+ "D4 
BII %3%% %	
%  S!%	
 IIr!u||BHH%r!u||BJJ'?@Aenuen5N '-Af&0@fA)0
~u*%5-  mRVW	??e+++??agg---88}$88y///// ##}Q'7777I%%% ww)//)ahh):J:J.JI~%~'*. Aq6Aq6*+Ggrzz***	z	"FMMO$ 
#$/ W%J$Ffbjj)))c 
"	! 
T	S 
X	W KJ
 
#	"T	
 B6 
#	"sY   V#V09V=0W
WW$W)W)3W.#V-0V:=W
WW!.W71234US   1   2   3   4V1c                     d}t        j                  t        |      5  t        | d       ddd       y# 1 sw Y   yxY w)zmTest that check_array errors when it receives an array of bytes/string
    while a numeric dtype is required.z>dtype='numeric' is not compatible with arrays of bytes/stringsr   numericrX   NrO   rP   rQ   r   )rw   expected_msgs     rS   test_check_array_numeric_errorr    s.     UL	z	6AY' 
7	6	6s   5>pd_dtype)Int8Int16UInt8UInt16Float32Float64zdtype, expected_dtyper  c                    t        j                  d      }| dv rt        j                  dd      }t        j                  dddt        j                  t        j                  gt        j                  t        j                  dd	d
gg dg      j
                  }|j                  || g d      }|d   j                  d      |d<   t        |d|      }t        ||       |j                  |k(  sJ t        |d|      }t        ||       |j                  |k(  sJ d}t        j                  t        |      5  t        |d       d d d        y # 1 sw Y   y xY w)Nr   >   r  r  z1.2
minversionr   r\   rV   r   r   r   )r   r\   rV   r   r]   r   r   c)rY   columnsr  r   r   )r   rY   Fr   r   Tr   )rO   r   rI   r   rt   r   	DataFramere   r   r   rY   rP   rQ   )r  rY   expected_dtyper   X_nprw   r   r   s           rS   "test_check_array_pandas_na_supportr#    s    
		X	&B))  e<88
Q266266	"RVVRVVQ1$=Oa 	
 	T?CAsV]]7#AcFA5IIIt$??n,,,AUCIIt$??n,,,
C	z	-A- 
.	-	-s   7EEc                  4   t        j                  d      } | j                  dd| j                  gd      }d}t        j                  t
        |      5  t        |dd	
       ddd       t        |d	d	
      }t        |ddt        j                  g       |j                  t        j                  k(  sJ t        |d	d	t        j                        }t        |ddt        j                  g       |j                  t        j                  k(  sJ y# 1 sw Y   xY w)z4Check check_array is correct with pd.NA in a series.r   r   r\   Int64rX   r   r   TF)r   r   N)r   r   rY   )rO   r   r   NArP   rQ   r   r   rI   rt   rY   rg   rd   )r   X_int64r   X_outs       rS   *test_check_array_panadas_na_support_seriesr)    s    			X	&BiiAruuWi5G
C	z	-GdeD 
. %5IEEAq"&&>*;;"**$$$%5

E EAq"&&>*;;"**$$$ 
.	-s   DDc                     t        j                  d      } t        j                  g dg dg dgt        j                        }| j                  |      }t        |      j                  t        j                  k(  sJ t        |t              j                  t        j                  k(  sJ |j                  dt        j                  i      }t        |j                  t        j                  t        j                  t        j                  f       t        |      j                  t        j                  k(  sJ t        |t              j                  t        j                  k(  sJ |j                  dt        j                  i      }t        |      j                  t        j                  k(  sJ t        |t              j                  t        j                  k(  sJ |j                  dt        j                  i      }t        |      j                  t        j                  k(  sJ t        |t              j                  t        j                  k(  sJ |j                  t        j                        }t        |      j                  t        j                  k(  sJ t        |t              j                  t        j                  k(  sJ | j                  d| j                  g d      i      }t        |      j                  t        j                   k(  sJ t        |t              j                  t        j                  k(  sJ y )	Nr   r   r   r]   r      r   	   rX   r   r\   cat_col)rO   r   rI   r   rd   r   r   rY   r,   re   float16r    r   rj   rg   Categoricalrf   )r   rw   X_dfcat_dfs       rS   %test_check_array_pandas_dtype_castingr4  "  s7   			X	&B
)Y	2"**EA<<?Dt""bjj000t<066"**DDD;;2::'Dt{{RZZRZZ$HIt""bjj000t<066"**DDD;;288}%Dt""bjj000t<066"**DDD;;2::'Dt""bjj000t<066"**DDD;;rxx Dt""bhh... t<066"**DDD
 \\9bnnY&?@AFv$$000v\288BJJFFFr~   c                  B   t        j                  ddgddgddgddgg      } t        |       }t        |      }|j                  | j                  k(  sJ t        |t         j
                        }|j                  t        j                  t         j
                        k(  sJ y )Ng?gffffff?g333333?g      ?g?r^   rX   )rI   r   r   r   rY   rd   )arrmock_dfchecked_arrs      rS   "test_check_array_on_mock_dataframer9  G  s    
((S#Jc
S#Jc
C
DCC Gg&K		)))gRZZ8K 4444r~   c                      g dg dg dg} t        |       j                  j                  dk(  sJ t        | d      j                  j                  dk(  sJ y )Nr   r+  r,  iFr   )r   rY   kindr   s    rS    test_check_array_dtype_stabilityr=  P  sM    	Iy)Aq>$$+++qE*0055<<<r~   c                  ,   g dg dg dg} t        j                  | t         j                        }t        j                  | t         j                        }t	        j
                  |      }t	        j                  |      }t	        j                  |t         j                        }||g}|||g}|D ]B  }t        t        |t         j                  d      }	|	j                  t         j                  k(  rBJ  |D ]  }t        t        |t         j                  t         j                  gd      }	|	j                  t         j                  k(  sJ |	|u sJ t        t        |t         j                  t         j                  gddgd	      }	|	j                  t         j                  k(  sJ |	|urJ  t        t        |t         j                  t         j                  gddgd
	      }	|	j                  t         j                  k(  sJ |	|usJ |	j                  dk(  sJ y )Nr   r+  r,  rX   T)rY   r   r   r   r   F)rI   r   rd   rf   rq   r   rr   rb   r!   r   rg   rY   r   )

X_int_list	X_float32r'  X_csr_float32X_csc_float32X_csc_int32integer_datafloat32_datarw   r   s
             rS   test_check_array_dtype_warningrF  W  s   Y	2J

:RZZ8Ijj2884GMM),MMM),M--rxx8K[)L}m<L&"**D
	 "**,,,	  &2::rzz":$
	 "**,,,A~~&::rzz* %.
	 "**,,,!!! " #zz2::&enI ??bjj(((M)))u$$$r~   c                     ddgddgg} t        j                  |       }t               }d}t        j                  t
        |      5  t        |d       d d d        d	}t        j                  t        |      5  t        ||       d d d        d
}t        j                  t        |      5  t        |g        d d d        t        j                  t        |      5  t        |d       d d d        t        j                  t
        d      5  t        ||g       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   y xY w)Nr   r\   rV   r   ziSparse data was passed, but dense data is required. Use '.toarray\(\)' to convert to a dense numpy array.r   Fr   zjParameter 'accept_sparse' should be a string, boolean or list of strings. You provided 'accept_sparse=.*'.z]When providing 'accept_sparse' as a tuple or list, it must contain at least one string value. r   )rq   r   r   rO   rP   r   r   rQ   )rw   r   invalid_typer   s       rS   -test_check_array_accept_sparse_type_exceptionrK    s   
Q!QAMM!E5L	A  
y	,E/ 
-	G  
z	-E6 
.	5  
z	-E, 
.	z	-E, 
.	y	.E,8 
/	.% 
-	, 
.	- 
.	-	-	-	.	.s<   D%8D1+D=E	E%D.1D:=E	EEc                      ddgddgg} t        j                  |       }t        |d       t        |d       t        |dg       t        |d       y )	Nr   r\   rV   r   TrH  r   )r   )rq   r   r   )rw   r   s     rS   +test_check_array_accept_sparse_no_exceptionrM    sL    
Q!QAMM!ET*U+eW-X.r~   )r   cscr   bsr)paramsc              #     K   t        j                  dd| j                        }| j                  dk(  rot        |d      r"t	        d |j
                  D              |_        n|j                  j                  d      |_        |j                  j                  d      |_        n@|j                  j                  d      |_	        |j                  j                  d      |_
        | y w)N   rW   )r   r   coordsc              3   >   K   | ]  }|j                  d         yw)rf   N)re   ).0vs     rS   	<genexpr>zX_64bit.<locals>.<genexpr>  s     A1QXXg.s   rf   )rq   randparamr   tuplerS  rowre   colindicesindptr)requestrw   s     rS   X_64bitr`    s     
Bw}}-A}}1h AAAAH EELL)AEEELL)AEII$$W-	88??7+
Gs   C&C(c                      t        | dd       y )NT)accept_large_sparser   )r   )r`  s    rS   1test_check_array_accept_large_sparse_no_exceptionrc    s    TFr~   c                     d}t        j                  t        |      5  t        | dd       d d d        y # 1 sw Y   y xY w)NzbOnly sparse matrices with 32-bit integer indices are accepted. Got int64 indices. Please do reportr   TF)r   rb  r  )r`  r   s     rS   4test_check_array_accept_large_sparse_raise_exceptionre    s4    	<  
z	-G4UK 
.	-	-s   6?c                     d} t        j                  t        |       5  t        g g       d d d        d} t        j                  t        |       5  t        g d       d d d        d} t        j                  t        |       5  t        dd       d d d        t        j                  d      }t        j                  d	      }d
} t        j                  t        |       5  t        ||d       d d d        t        j                  t        |       5  t        ||dd       d d d        t        j                  d      }t        j                  d      }d} t        j                  t        |       5  t        ||d       d d d        t        j                  t        |       5  t        ||dd       d d d        t        j                  d      j                  dd      }t        j                  d      }d} t        j                  t        |       5  t        ||       d d d        t        j                  d      }t        j                  d      }t        ||d      \  }}t        ||       t        ||       y # 1 sw Y   RxY w# 1 sw Y   ,xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   >xY w# 1 sw Y   xY w# 1 sw Y   xY w)NzC0 feature\(s\) \(shape=\(1, 0\)\) while a minimum of 1 is required.r   z@0 sample\(s\) \(shape=\(0,\)\) while a minimum of 1 is required.Fr   zDSingleton array array\(42\) cannot be considered a valid collection.rF   )r   rW   r   zC1 sample\(s\) \(shape=\(1, 10\)\) while a minimum of 2 is required.r\   )ensure_min_samples)rg  r   r   zD2 feature\(s\) \(shape=\(10, 2\)\) while a minimum of 3 is required.rV   )ensure_min_featuresT)rh  r   r   rW   zD0 feature\(s\) \(shape=\(10, 0\)\) while a minimum of 1 is required.)rW   r      ri  r   )rO   rP   rQ   r   r   rI   ra   r   emptyr   r    )r   rw   r   r   	y_checkeds        rS   2test_check_array_min_samples_and_features_messagesrl    s   
SC	z	-RD 
.
 NC	z	-B%( 
. UC	y	,B%( 
- 	A

A
SC	z	-!Q1- 
.
 
z	-!Q1> 
.
 	A

A
TC	z	-!QA. 
.
 
z	-!QA= 
.
 	B"A
A
TC	z	-!Q 
. 	 A
A$QD9Iyq)$q)$i 
.	- 
.	-
 
-	, 
.	-
 
.	- 
.	-
 
.	- 
.	-s_   I;JJ J"J/1J<#K	K;JJJ"J,/J9<K	KKc                  l   t        j                  g dg dg      } t        j                  t        d      5  t        |        d d d        g dg dg} t        j                  t        d      5  t        |        d d d        d} t        j                  t        d      5  t        |        d d d        t        j                  g d      t        j                  g d      g} t        j                  t        d      5  t        |        d d d        t        j                  g d      t        j                  g d      f} t        j                  t        d      5  t        |        d d d        t        t        j                  g dg dg            } t        j                  t        d      5  t        |        d d d        t        j                  ddgddgg      } t        j                  t        d      5  t        |        d d d        t        j                  g d      }t        j                  t        d      5  t        |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)	N      ?       @      @      @      @      @       @      @      @      @      @      @zComplex data not supportedr   )rn  rr  r   ro  )ro  rp  rq  rs  rt  ru  )
rI   r   rO   rP   rQ   r   r   rq   
coo_matrixr3   )rw   r   s     rS   #test_check_array_complex_data_errorrw    s   
*,DEFA	z)E	FA 
G 
"#;<A	z)E	FA 
G 	=A	z)E	FA 
G 
*	+RXX6N-OPA	z)E	FA 
G 
*	+RXX6N-OPA	z)E	FA 
G 	bhh 8:RSTUA	z)E	FA 
G 	6{QF+,A	z)E	FA 
G
 	ABA	z)E	F 
G	FI 
G	F
 
G	F
 
G	F
 
G	F
 
G	F
 
G	F
 
G	F 
G	Fs_   I.II+<I8J,J6J<J*II(+I58JJJJ'*J3c                      t        t        d      rJ t        t        d      sJ t        t        d      sJ t        t               d      sJ  G d d      } t        | d      sJ d       y )Nr   c                   *    e Zd Z ed      dd       Zy)@test_has_fit_parameter.<locals>.TestClassWithDeprecatedFitMethodz7Deprecated for the purpose of testing has_fit_parameterNc                      y NrI  )selfrw   r   r   s       rS   r   zDtest_has_fit_parameter.<locals>.TestClassWithDeprecatedFitMethod.fit=      r~   r|  )r   
__module____qualname__r   r   rI  r~   rS    TestClassWithDeprecatedFitMethodrz  <  s    	M	N	 
O	r~   r  z=has_fit_parameter fails for class with deprecated fit method.)rD   r   r   r   )r  s    rS   test_has_fit_parameterr  6  ss     !5GGG2ODDDS/222SUO444 
 (/ GFG r~   c            	         t        j                  ddgddgg      } t        j                  d      }t        j                  ddgddgg      }|t        j                  |      t        j
                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      d}t        j                  t              5  t        |       d d d        |j                         D ]  \  }}t        j                  t               5  t        |       d d d        t        j                  t              5  t        |d       d d d        t        |d      }t        j"                  |      r,|j$                  |k(  sJ t'        |j)                         |        t'        ||         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ~xY w)	Nr   r   r\   )denser   r   rN  r   lilrO  T)raise_exceptionF)raise_warning)rI   r   ra   rq   
dok_matrixr   rr   rv  
lil_matrix
bsr_matrixrO   rP   rQ   r   itemswarnsUserWarningissparser   r    rs   )arr_symarr_badarr_asymtest_arrays
arr_formatr6  outputs          rS   test_check_symmetricr  F  sa   hhAA'(GggajGxx!Q!Q()H }}X&}}X&}}X&}}X&}}X&}}X&K 
z	"  
# ',,.
C\\+&C  ']]:&C6 ' !E:;;v==J...v~~/9vw/ /	 
#	" '&&&s$   !G$GGGG	G%	c                       G d dt               } t        j                  t              5  t	         |               d d d        t	         |        j                                y # 1 sw Y   (xY w)Nc                       e Zd Zd Zd Zy)6test_check_is_fitted_with_is_fitted.<locals>.Estimatorc                     d| _         | S )NT)r6   )r}  kwargss     rS   r   z:test_check_is_fitted_with_is_fitted.<locals>.Estimator.fitk  s    "DOKr~   c                 6    t        | d      xr | j                  S )Nr6   )r   r6   r}  s    rS   __sklearn_is_fitted__zLtest_check_is_fitted_with_is_fitted.<locals>.Estimator.__sklearn_is_fitted__o  s    4.B4??Br~   N)r   r  r  r   r  rI  r~   rS   	Estimatorr  j  s    		Cr~   r  )r	   rO   rP   r   r>   r   )r  s    rS   #test_check_is_fitted_with_is_fittedr  i  sG    CM C 
~	&	$ 
'IKOO%& 
'	&s   A!!A*c                     t        j                  t              5  t        t               d d d        t        j                  t              5  t        d       d d d        t	               } t               }	 t        j                  t              5  t        |        d d d        t        j                  t              5  t        |       d d d        d}d}t        j                  t        |      5  t        | |       d d d        d}d}t        j                  t        |      5  t        ||       d d d         | j                  t                  |j                  t                 t        |       J t        |      J y # 1 sw Y   YxY w# 1 sw Y   9xY w# 1 sw Y   xY w# 1 sw Y   xY w# t        $ r J d       w xY w# 1 sw Y   xY w# 1 sw Y   xY w)	Nr   z&check_is_fitted failed with ValueErrorz!Random message %(name)s, %(name)sz+Random message ARDRegression, ARDRegressionr   )r   z"Another message %(name)s, %(name)szAnother message SVR, SVR)rO   rP   r   r>   r   r   r   rQ   AttributeErrorr   r
   )ardsvrr   r   s       rS   test_check_is_fittedr  w  s\   	y	!& 
"	y	! 
" /C
%C?]]>*C  +]]>*C  + .C9E	z	/% 
0 /C&E	~U	3% 
4 CGGZ\CGGZ\3'''3'''? 
"	!	!	! +*** ?>>>u? 
0	/
 
4	3sk   FF4F4 F!F4 :F(F4 -G"GFFF% F4 (F1-F4 4GGGc                      G d d      } d} |        }t        |ddg      rJ t        j                  t        |      5  t	        |ddg       d d d        t        |ddgt
              rJ t        j                  t        |      5  t	        |ddgt
               d d d        t        |ddgt              rJ t        j                  t        |      5  t	        |ddgt               d d d        d	|_        t        |ddg      rJ t        j                  t        |      5  t	        |ddg       d d d        t        |ddgt
              rJ t        j                  t        |      5  t	        |ddgt
               d d d        t        |ddgt              sJ t	        |ddgt               d
|_        t        |ddg      sJ t	        |ddg       t        |ddgt
              sJ t	        |ddgt
               t        |ddgt              sJ t	        |ddgt               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   %xY w# 1 sw Y   xY w)Nc                       e Zd Zd Zy)4test_check_is_fitted_attributes.<locals>.MyEstimatorc                     | S r|  rI  r}  rw   r   s      rS   r   z8test_check_is_fitted_attributes.<locals>.MyEstimator.fit  s    Kr~   N)r   r  r  r   rI  r~   rS   MyEstimatorr    s    	r~   r  z
not fitteda_b_)
attributesr   )r  
all_or_anyr   r   )	r6   rO   rP   r   r>   allrv   r  r  )r  r   ests      rS   test_check_is_fitted_attributesr    s      C
-C#4,777	~S	1t5 
2#4,3GGG	~S	1tE 
2#4,3GGG	~S	1tE 
2 CF#4,777	~S	1t5 
2#4,3GGG	~S	1tE 
2ctTlsCCCCT4LSACFctTl333CT4L1ctTlsCCCCT4LSActTlsCCCCT4LSA3 
2	1 
2	1 
2	1
 
2	1 
2	1s<    H3	I I'I0I'3H= I
II$'I0wrap)singlelistrZ  )idsc                 x   t               }t        j                  t        d      5  t	        | | dg             d d d         |j
                  t                 t	        | | dg             t        j                  t        d      5  t	        | | dg             d d d        y # 1 sw Y   kxY w# 1 sw Y   y xY w)Nzis not fitted yetr   coef_	coef_bad_)r   rO   rP   r   r>   r   r
   )r  r  s     rS   $test_check_is_fitted_with_attributesr    s     /C	~-@	AT7)_- 
B CGGZ\ Cwi) 
~-@	AT;-01 
B	A 
B	A 
B	As   B$B0$B-0B9c                  x   t        dgdgdgdgdg       t        ddgddgggddgddg       t        dgdt        j                  dg      t        j                  d	             t        j                  t        d
      5  t        ddgdg       d d d        t        j                  t        d      5  t        ddgd       d d d        t        j                  t        d      5  t        ddgt                      d d d        t        j                  t              5  t        ddgt        j                  d             d d d        t        j                  t        d      5  t        ddgt                      d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   y xY w)Nr   r\   rV   r   r]   r   r   )r\   r   r\   zinconsistent numbers of samplesr   zgot <\w+ 'int'>zgot <\w+ 'object'>Expected sequence or array-like)r=   rI   r   rq   r   rO   rP   rQ   r   rn   r   rI  r~   rS   test_check_consistent_lengthr    sM   QC!qcA34aVq!fX.Ac
CQCrxx}bmmF6KL	z)J	KA, 
L	y(:	;A* 
<	y(=	>A1 
? 
y	!A4 
" 
y(I	JA(=(?@ 
K	J 
L	K	;	;	>	> 
"	! 
K	Js<   >F 1F#F"F$ F0 F	FF!$F-0F9c                      	 dd l } t        j                  g dg dg dg      }| j                  |g d      }t	        |       y # t
        $ r t        d      w xY w)Nr   r   r+  r,  )r   r   r   r  zPandas not found)r   rI   r   r   r=   ImportErrorr   )r   rw   r2  s      rS   "test_check_dataframe_fit_attributer    sU    +HHiI67||A'8|9% +)**+s   AA Ac                     t        j                  dt         j                  g      } t        j                  t
              5  t        |        d d d        t        j                  d       t        |        t        j                  d       t        j                  t
              5  t        |        d d d        y # 1 sw Y   nxY w# 1 sw Y   y xY w)Nr   T)assume_finiteF)	rI   r   infrO   rP   rQ   r<   sklearn
set_configr   s    rS   test_suppress_validationr    s    
!RVVA	z	"! 
#T*aU+	z	"! 
#	" 
#	"
 
#	"s   B8#C8CCc                  F   t        d      } t        | j                  g d      d      }t        |t	        j
                  g d             | j                  g d      j                  d      }t        |d d      }t        |t	        j
                  g dt                     y )	Nr   r   Fr   r  category)rY   r   rX   )r   r   r   r    rI   r   re   rn   )r   resss      rS   test_check_array_seriesr    sr    	h	B
bii	*e
<CsBHHY/0 			/"))*5A
atu
5CsBHH_FCDr~   rY   
bool_dtype)rh   booleanc                 X   |dk(  rt        dd      }nt        d      }|j                  g dg d|j                  g d|      d	g d	
      }t        ||       }|j                  t
        j                  k(  sJ t        j                  g dg dg dgt              }t        ||       y )Nr  r   1.0r  r   )r   r^    @TFTrX   )r   r   rh   r  )      ?        r  )       @r^   r  )      @r  r  )
r   r   r   r   rY   rI   rg   r   r   r   )rY   r  r   dfr   expected_arrays         rS   'test_check_dataframe_mixed_float_dtypesr  
  s     Y(u5(#	"II1ID	

 ) 
 
B %(E;;"**$$$XX	/?;5N !7r~   c                  z   t        d      } | j                  dg di      }t        |d      }|j                  t        j
                  k(  sJ t        |dgdgdgg       | j                  g dg dd	dd
g      }t        |d      }|j                  t        j                  k(  sJ t        |ddgddgddgg       y)z7Check that dataframe with bool return a boolean arrays.r   rh   r  NrX   TFr   )rh   r   r   r  r  r   r   r\   rV   )r   r   r   rY   rI   bool_r    rf   r   r  r   s      rS   #test_check_dataframe_with_only_boolr  ,  s    	h	B	v23	4B$'E;;"(("""uvw78 
$Y7 
 
B ),E;;"(("""u1v1v1v67r~   c                      t        dd      } | j                  d| j                  g dd      i      }t        |d      }|j                  t
        j                  k(  sJ t        |d	gd
gd	gg       y)zFCheck that dataframe with boolean return a float array with dtype=Noner   r  r  rh   r  r  rX   NTF)r   r   r   r   rY   rI   rg   r    r  s      rS   &test_check_dataframe_with_only_booleanr  ?  sh    	h5	1B	vryy)<IyNO	PB$'E;;"**$$$uvw78r~   c                       e Zd Zd Zy)DummyMemoryc                     |S r|  rI  )r}  funcs     rS   cachezDummyMemory.cacheJ  s    r~   N)r   r  r  r  rI  r~   rS   r  r  I  s    r~   r  c                       e Zd Zy)WrongDummyMemoryN)r   r  r  rI  r~   rS   r  r  N  s    r~   r  c                     t        d      } | j                  dk(  sJ t        d       } | j                  J t               }t        |      } | |u sJ d}t        j                  t
        |      5  t        d       d d d        t               }dj                  |      }t        j                  t
        |      5  t        |       d d d        y # 1 sw Y   TxY w# 1 sw Y   y xY w)Ncache_directoryzf'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='1' instead.r   r   zg'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='{}' instead.)r?   locationr  rO   rP   rQ   r  r   )memorydummyr   s      rS   test_check_memoryr  R  s    +,F??////$F??"""ME% FU??	2  
z	-Q 
.E	3396%=  
z	-U 
.	- 
.	- 
.	-s   .C8CCC"r[   c                     t        j                  d      }t        |d      5 }t        ||       }t        j                  ||      |  k(  sJ |j
                  d   | k(  sJ 	 d d d        y # 1 sw Y   y xY w)N)r   r   r	mmap_moderZ   	WRITEABLE)rI   ra   r   r   may_share_memoryr   )r[   rw   X_memmapr   s       rS   test_check_array_memmapr  l  sg    
A	A	%t4	""8Y7HEEE{+t333 
&	%	%s   >A++A4c                 4   t        j                  g dg dg dg dg      } | |      }t        |d        | ddgddgg      }t        |d       d|d<    | |      }t        j                  t
        d      5  t        |d       d d d        y # 1 sw Y   y xY w)	N)r   r   r   r   )r   r   r   r   r   r   r   r`   z	Negative r   )rI   r   r@   rO   rP   rQ   )r   r   rw   s      rS   test_check_non_negativer  u  s     	,lLIJAq	Aq"AA Aq"AdGq	A	z	51b! 
6	5	5s   8BBc                  >   t        j                  d      } d }d}t        j                  t        |      5  t        | |       d d d        d}t        j                  t        |      5  t        | |t                      d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)Nr\   r\   z;estimator requires y to be passed, but the target y is Noner   zGRandomForestRegressor requires y to be passed, but the target y is None)r   )rI   ra   rO   rP   rQ   r   r   )rw   r   r   s      rS    test_check_X_y_informative_errorr    su    
AA
GC	z	-!Q 
. TC	z	-!Q"7"9: 
.	-	 
.	- 
.	-s   B'BBBc                       G d d      }  |        }t        |      t        |      k(  sJ  G d d      }t        j                  t        d      5  t         |              d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zd Zy)Jtest_retrieve_samples_from_non_standard_shape.<locals>.TestNonNumericShapec                     d| _         y N)znot numericr   r  s    rS   __init__zStest_retrieve_samples_from_non_standard_shape.<locals>.TestNonNumericShape.__init__  	    )DJr~   c                     t        g d      S )Nr   )lenr  s    rS   __len__zRtest_retrieve_samples_from_non_standard_shape.<locals>.TestNonNumericShape.__len__  s    y>!r~   N)r   r  r  r   r  rI  r~   rS   TestNonNumericShaper    s    	*	"r~   r  c                       e Zd Zd Zy)Jtest_retrieve_samples_from_non_standard_shape.<locals>.TestNoLenWeirdShapec                     d| _         y r  r  r  s    rS   r   zStest_retrieve_samples_from_non_standard_shape.<locals>.TestNoLenWeirdShape.__init__  r  r~   Nr   r  r  r   rI  r~   rS   TestNoLenWeirdShaper    s    	*r~   r
  r  r   )r:   r  rO   rP   r   )r  rw   r
  s      rS   -test_retrieve_samples_from_non_standard_shaper    s`    " " 	A?c!f$$$* * 
y(I	J(*+ 
K	J	Js   A**A3r   )r\   rV   g      @r]   c           	          t        j                         5  t        j                  d       t        | dt        j
                  ddd      }ddd       | k(  sJ y# 1 sw Y   xY w)zPTest that check_scalar returns no error/warning if valid inputs are
    providederror	test_namer\   r]   bothtarget_typemin_valmax_valinclude_boundariesN)warningscatch_warningssimplefilterrB   numbersReal)r   scalars     rS   test_check_scalar_validr    sZ     
	 	 	"g&%
 
# Q;; 
#	"s   5AA#zJx, target_name, target_type, min_val, max_val, include_boundaries, err_msg
test_name1r   neitherz1test_name1 must be an instance of float, not int.z6test_name1 must be an instance of float, not NoneType.z4test_name1 must be an instance of int, not NoneType.z9test_name1 must be an instance of {float, bool}, not int.
test_name2ztest_name2 == 1, must be > 2.r]   
test_name3ztest_name3 == 5, must be < 4.
test_name4rightztest_name4 == 2, must be > 2.
test_name5leftztest_name5 == 4, must be < 4.
test_name6zbad parameter valuezyUnknown value for `include_boundaries`: 'bad parameter value'. Possible values are: ('left', 'right', 'both', 'neither').
test_name7zT`include_boundaries`='left' without specifying explicitly `min_val` is inconsistent.
test_name8zU`include_boundaries`='right' without specifying explicitly `max_val` is inconsistent.c           	      
   t        j                  t              5 }t        | |||||       ddd       t	        j
                        t	        |      k(  sJ t        |j
                  t        |            sJ y# 1 sw Y   NxY w)zLTest that check_scalar returns the right error if a wrong input is
    givenr  N)rO   rP   	ExceptionrB   strr   r   r   )r   target_namer  r  r  r  r   raised_errors           rS   test_check_scalar_invalidr,    st    l 
y	!\#1	
 
" |!!"c'l222l(($w-888 
"	!s   A99Br  )r]   y        -C6
?zJThere are imaginary parts in eigenvalues \(1e\-05 of the maximum real part)r]   g-C6
gưz?There are negative eigenvalues \(1e\-06 of the maximum positiveg|۽z?There are negative eigenvalues \(1e\-10 of the maximum positive)r]   g-=z=the largest eigenvalue is more than 1e\+12 times the smallest)nominalnominal_np_arrayinsignificant_imagzinsignificant negzinsignificant neg float32zinsignificant neg float64zinsignificant posz(lambdas, expected_lambdas, w_type, w_msgenable_warningsc                 <   |sd }|Et        j                         5  t        j                  dt               t	        | |      }d d d        n-t        j                  ||      5  t	        | |      }d d d        t        |       y # 1 sw Y   xY w# 1 sw Y   "xY w)Nr  )r0  r   )r  r  r  r   r0   rO   r  r   )lambdasexpected_lambdasw_typew_msgr0  lambdas_fixeds         rS    test_check_psd_eigenvalues_validr7  b  s     ~$$&!!'+BC2M '& \\&.2M /
 $m4 '& /.s   (B#BBB)r]   y              @z/There are significant imaginary parts in eigenv)r   z,All eigenvalues are negative \(maximum is -1)r]   r   z*There are significant negative eigenvaluesga2U0*3?ggh㈵>g|)significant_imagzall negativezsignificant negzsignificant neg float32zsignificant neg float64zlambdas, err_type, err_msgc                 r    t        j                  ||      5  t        |        d d d        y # 1 sw Y   y xY w)Nr   )rO   rP   r0   )r2  err_typer   s      rS   "test_check_psd_eigenvalues_invalidr<    s&     
xw	/w' 
0	/	/s   -6c                     t        j                  d      d d d   } | j                  d   rJ t        | t        j                  d            } | j                  d   sJ t        d t        j                  d            } t	        | t        j                  d             t        dt        j                  d            } t	        | dt        j                  d      z         t        j                  t        d	
      5  t        t        j                  d      t        j                  d             d d d        d}t        j                  t        |
      5  t        t        j                  d      t        j                  d             d d d        t        j                  d      }t        j                  dt         j                        } t        | |      } | j                  t         j                  k(  sJ t        j                  dt              }t        d ||j                        } | j                  t         j                  k(  sJ t        j                  d      }t        j                  t        |            } d| d<   d}t        j                  t        |
      5  t        | |d       d d d        y # 1 sw Y   xY w# 1 sw Y   ;xY w# 1 sw Y   y xY w)NrW   r\   r   )r]   r   r   )r]   r\   r]   r  z)Sample weights must be 1D array or scalarr   )r\   r   r  z/sample_weight.shape == \(4,\), expected \(2,\)!r   rX   ir   z1Negative values in data passed to `sample_weight`T)only_non_negative)rI   ra   r   r2   r   rO   rP   rQ   rd   rY   r   rg   r:   )r   r   rw   r   s       rS   test_check_sample_weightr?    s   GGBK!$M"">222("''&/JM~... )AMM2771:. )@MM1rwwqz>2 
z)T	URWWV_@ 
V =C	z	-RWWQZ2776?; 
. 	AGGARZZ0M(:M"**,,, 	c"A(q@M"**,,, 	AGGLO,MM"AG	z	1]AF 
2	11 
V	U
 
.	-& 
2	1s$   :4J34K K3J= K
Krs   c                     t        j                  d      j                  dd      } | |       | |      }}t        ||      sJ y )Nr.  rV   rI   rc   r   r-   rs   baser   r   s       rS   !test_allclose_dense_sparse_equalsrD    s=    99Q<1%D4='$-qA!!Q'''r~   c                     t        j                  d      j                  dd      } | |       | |dz         }}t        ||      rJ y )Nr.  rV   r   rA  rB  s       rS   %test_allclose_dense_sparse_not_equalsrF    sE    99Q<1%D4='$(+qA%a++++r~   c                     t        j                  d      j                  dd      } | |dz         }d}t        j                  t
        |      5  t        ||       d d d        y # 1 sw Y   y xY w)Nr.  rV   r   zFCan only compare two sparse matrices, not a sparse matrix and an arrayr   )rI   rc   r   rO   rP   rQ   r-   )rs   r   r   r   s       rS    test_allclose_dense_sparse_raiserH    sR    
		!Q"AAA
RC	z	-q!$ 
.	-	-s   A$$A-c                  6   t         dddd       } t        j                  t        d      5   | ddd       d d d        t        j                  t        d      5   | dddd	       d d d        t         ddddd
d       }t        j                  t        d      5   |dd       d d d        t         dddd       }t        j                  t        d      5   |dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   y xY w)Nr   r  dc                     y r|  rI  r   r   r  rK  s       rS   f1z=test_deprecate_positional_args_warns_for_function.<locals>.f1      r~   Pass c=3 as keyword argsr   r\   rV   Pass c=3, d=4 as keyword argsr   )r   r  rK  c                     y r|  rI  rM  s       rS   f2z=test_deprecate_positional_args_warns_for_function.<locals>.f2  rO  r~   zPass b=2 as keyword argsc                     y r|  rI  rM  s       rS   f3z=test_deprecate_positional_args_warns_for_function.<locals>.f3  rO  r~   )r   r4   rO   r  FutureWarning)rN  rS  rU  s      rS   1test_deprecate_positional_args_warns_for_functionrX    s   1    
m+F	G
1a 
H 
m+K	L
1aA 
M  Q!q    
m+F	G
1a 
H  1    
m+F	G
1a 
H	G% 
H	G 
M	L 
H	G 
H	Gs/   C+C7
D
D+C47D DDc                      t        d      d        } t        j                  t        d      5   | dd       d d d        y # 1 sw Y   y xY w)N1.1)versionc                     y r|  rI  r   r   s     rS   rN  zEtest_deprecate_positional_args_warns_for_function_version.<locals>.f1
  rO  r~   z,From version 1.1 passing these as positionalr   r   r\   rV  )rN  s    rS   9test_deprecate_positional_args_warns_for_function_versionr^  	  sH    . / 
L
 	1a
 
 
s   
AA
c                       G d d      } t        j                  t        d      5   | ddd       d d d        t        j                  t        d      5   | dddd	       d d d         G d
 d      }t        j                  t        d      5   |ddd       d d d        t        j                  t        d      5   |dddd	       d d d        y # 1 sw Y   xY w# 1 sw Y   }xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nc                   $    e Zd Zedddd       Zy):test_deprecate_positional_args_warns_for_class.<locals>.A1r   rJ  c                     y r|  rI  r}  r   r   r  rK  s        rS   r   zCtest_deprecate_positional_args_warns_for_class.<locals>.A1.__init__  r~  r~   Nr   r  r  r4   r   rI  r~   rS   A1ra    s    	#&'1 	 
$	r~   re  rP  r   r   r\   rV   rQ  r   c                   &    e Zd Zeddddd       Zy):test_deprecate_positional_args_warns_for_class.<locals>.A2r   rJ  c                     y r|  rI  rc  s        rS   r   zCtest_deprecate_positional_args_warns_for_class.<locals>.A2.__init__!  r~  r~   N)r   r   rd  rI  r~   rS   A2rg     s    	#	!q 	 
$	r~   ri  )rO   r  rW  )re  ri  s     rS   .test_deprecate_positional_args_warns_for_classrj    s     
 
m+F	G
1a 
H 
m+K	L
1aA 
M 
 
m+F	G
1a 
H 
m+K	L
1aA 
M	L 
H	G 
M	L 
H	G 
M	Ls/   CCC(;C4CC%(C14C=r]  rV   c                    t         j                  j                  dd      }g dt        j                  g d      t	        j
                  g d      j                  t	        j
                  g d      ddd d}t        |||       }| | n t        t        |j                  d               }d	D ]  }||   ||   u rJ  |d
   t        |d
   |      k(  sJ t        |d   t        |d   |             t        |d   t        |d   |             y )Nr   r\   )r   r\   rV   r   r   xxx)r  r   
sparse-col
sparse-row
scalar-int
scalar-strNone)rP  r]  r   )rn  ro  rp  rq  r  r   rm  )rI   rJ   randnr   rq   rr   r   r/   r  ranger   r   r    r   )r]  rw   _paramsr  indices_keys         rS   test_check_method_paramsrw  ,  s    
		1A,'mmL133mmL1G "!GWEF!-w4aggaj8I3JHAc{gcl*** B &>^GFOXFFFFvgww7G(RS |nW\-BHMr~   	sp_format)Tr   rN  r   rO  c                    t        j                  d      }t        dd      }|j                  j                  j                  |      }t        ||       }| du rd} t        j                  |      sJ |j                  | k(  sJ t        ||       y )Nr   rW   rV   rH  Tr   )rO   r   r   r   sparsefrom_spmatrixr   rq   r  r   r   )rx  r   sp_matsdfr  s        rS   "test_check_sparse_pandas_sp_formatr~  E  s     
		X	&B"2q)F
,,


+
+F
3CI6FD	;;v==I%%% 0r~   zntype1, ntype2)	)
longdoubler0  )r0  rd   )rd   double)rj   rb   )rb   long)byterl   )ushortrm   )rm   uint64)rk   ri   c                    t        j                  d      }|j                  |j                  j	                  g d| d      |j                  j	                  g d|d      d      }t        |j                        t        d      k  r6d}t        j                  t        |	      5  t        |d
dg       ddd       yt        |d
dg       y# 1 sw Y   yxY w)zcheck that we raise an error with dataframe having
    sparse extension arrays with unsupported mixed dtype
    and pandas version below 1.1. pandas versions 1.1 and
    above fixed this issue so no error will be raised.r   r   r   r   r   rY   
fill_valuer   r   r   col1col2rZ  z3Pandas DataFrame with mixed sparse extension arraysr   r   rN  rH  N)
rO   r   r   arraysSparseArrayr+   __version__rP   rQ   r   )ntype1ntype2r   r  r   s        rS    test_check_pandas_sparse_invalidr  X  s    & 
		X	&B	II)))6a)PII)))6a)P	

B R^^$}U';;G]]:W55%.9 65
 	Buen5 65s   $CCz ntype1, ntype2, expected_subtyper  r  r  rd   rg   ri   r  shortrj   intcrb   intpr  r   rf   longlongint_ubyterk   rl   r  uintcrm   uintr  uintp	ulonglongc                 0   t        j                  d      }|j                  |j                  j	                  g d| d      |j                  j	                  g d|d      d      }t        |ddg	      }t        j                  |j                  |      sJ y )
Nr   r  r   r  r  r  r   rN  rH  )	rO   r   r   r  r  r   rI   
issubdtyperY   )r  r  expected_subtyper   r  r6  s         rS   test_check_pandas_sparse_validr  }  s    . 
		X	&B	II)))6a)PII)))6a)P	

B b
7C==$4555r~   constructor_name)r  rZ  r   	dataframe
sparse_csr
sparse_cscc                 L    g dg dg}t        ||       }t        |      dk(  sJ y)z$Check _num_features for array-likes.r   r+  rV   N)r   r9   )r  rw   s     rS   test_num_featuresr    s.     
IA1./Aq   r~   r   r  )FTF)r  g333333@g      @r   r   r  )r   r)  rh   r   dict)r  rZ  r   seriesc                 l   t        | |      } |dk(  rd}n
|dk(  rd}n|}d| }t        | d      r|dz  }n1t        | d   t              r|d	z  }nt        | d   t              r|d
z  }t        j                  t        t        j                  |            5  t        |        d d d        y # 1 sw Y   y xY w)Nr   znumpy.ndarrayr  zpandas.core.series.Series5Unable to find the number of features from X of type r   z with shape (3,)r   z" where the samples are of type strz# where the samples are of type dictr   )r   r   r   r)  r  rO   rP   r   reescaper9   )rw   r  expected_type_namemessages       rS   &test_num_features_errors_1d_containersr    s     	1./A7",	X	%8-
?@R?ST  q'%%	AaD#	77	AaD$	88	y		'(:	;a 
<	;	;s   B**B3)r   r   Fr  )r   r)  rh   r   c                     dt        |       j                   }t        j                  t        |      5  t        |        d d d        y # 1 sw Y   y xY w)Nr  r   )r   r  rO   rP   r   r9   )rw   r   s     rS    test_num_features_errors_scalarsr    s;    A$q'BVBVAW
XC	y	,a 
-	,	,s   A		AnamesrK  )zlist-intrs  default
MultiIndexc                 
   t        j                  d      }|j                  ddgddgddgg|       }t        j                         5  t        j
                  dt               t        |      } d	d	d	       | J y	# 1 sw Y   xY w)
zGet feature names with pandas dataframes without warning.

    Column names with consistent dtypes will not warn, such as int or MultiIndex.
    r   r   r\   r   r]   r   r  r  N)rO   r   r   r  r  r  rW  r5   )r  r   rw   s      rS   2test_get_feature_names_pandas_with_ints_no_warningr    sy     
		X	&B
q!fq!fq!f-u=A		 	 	"g}5"1% 
# == 
#	"s   &A99Bc                      t        j                  d      } t        d      D cg c]  }d| 	 }}| j                  g dg dg|      }t	        |      }t        ||       yc c}w )z)Get feature names with pandas dataframes.r   rV   col_r   r+  r  N)rO   r   rs  r   r5   r    )r   r;  r  rw   feature_namess        rS   test_get_feature_names_pandasr    s`    			X	&B#(8,8aaSz8G,
i+W=A&q)M}g.	 -s   A"zconstructor_name, minversion))pyarrowz12.0.0)r  z1.5.0)polarsz0.18.2c                 h    g dg dg}g d}t        || ||      }t        |      }t        ||       y)z:Uses the dataframe exchange protocol to get feature names.r   r   r\   rV   rV   r   )col_0col_1col_2)columns_namer  N)r   r5   r    )r  r  r   r  r  r  s         rS   )test_get_feature_names_dataframe_protocolr    s=     y!D)G	W
B 'r*M}g.r~   )r  r  r  c                 f    t        g dg dg|       }| dv rt        |      rJ y t        |      sJ y )Nr  r  )r  r  )r   r7   )r  r  s     rS   !test_is_pandas_df_other_librariesr    s<    	Y	24D	EB00 $$$$R   r~   c                      t        j                  d      } | j                  g dg      }t        |      sJ t        t	        j
                  g d            rJ t        d      rJ y)z8Check behavior of is_pandas_df when pandas is installed.r   r   r   N)rO   r   r   r7   rI   r   )r   r  s     rS   test_is_pandas_dfr    sX    			X	&B	yk	"BRZZ	2333Qr~   c                 b    t        t        j                  g d            rJ t        d      rJ y)z1Check _is_pandas_df when pandas is not installed.r   r   N)r7   rI   r   )hide_available_pandass    rS   &test_is_pandas_df_pandas_not_installedr    s,     RZZ	2333Qr~   r  r  r   r  c                 j    t        g dg dg| |      }| dv rt        |      rJ y t        |      sJ y )Nr  r  r  )r  r  )r   r8   )r  r  r  s      rS   !test_is_polars_df_other_librariesr    sF     
	I
B
 33 $$$$R   r~   c                  @     G d d      }  |        }t        |      rJ y)zACheck _is_polars_df for object that looks like a polars dataframec                       e Zd Zd Zy)Ntest_is_polars_df_for_duck_typed_polars_dataframe.<locals>.NotAPolarsDataFramec                 $    g d| _         d| _        y )Nr   	my_schemar  schemar  s    rS   r   zWtest_is_polars_df_for_duck_typed_polars_dataframe.<locals>.NotAPolarsDataFrame.__init__0  s    $DL%DKr~   Nr	  rI  r~   rS   NotAPolarsDataFramer  /  s    	&r~   r  Nr8   )r  not_a_polars_dfs     rS   1test_is_polars_df_for_duck_typed_polars_dataframer  ,  s'    & &
 *+O_----r~   c                  X    t        j                  g dg dg      } t        |       }|J y)z/Get feature names return None for numpy arrays.r   r+  N)rI   r   r5   )rw   r  s     rS   test_get_feature_names_numpyr  8  s)    
)Y'(Aq!E==r~   znames, dtypesz['int', 'str']pizzaz['list', 'str']zint-strzlist-strc                    t        j                  d      }|j                  ddgddgddgg|       }t        j                  d| d	      }t        j
                  t        |
      5  t        |      } ddd       y# 1 sw Y   yxY w)zAGet feature names errors when the feature names have mixed dtypesr   r   r\   r   r]   r   r  z]Feature names are only supported if all input features have string names, but your input has a.   as feature name / column name types. If you want feature names to be stored and validated, you must convert them all to strings, by using X.columns = X.columns.astype(str) for example. Otherwise you can remove feature / column names from your input data, or convert them all to a non-string data type.r   N)rO   r   r   r  r  rP   r   r5   )r  r   r   rw   r   s        rS   %test_get_feature_names_invalid_dtypesr  ?  s     
		X	&B
q!fq!fq!f-u=A
))	$X &?	?C 
y	,"1% 
-	,	,s   &A;;Bc                   "    e Zd ZddZd ZddZy)PassthroughTransformerNc                 ,    | j                  |d       | S )NT)reset)_validate_datar  s      rS   r   zPassthroughTransformer.fitY  s    AT*r~   c                     |S r|  rI  )r}  rw   s     rS   	transformz PassthroughTransformer.transform]  s    r~   c                     t        | |      S r|  )r.   )r}  input_featuress     rS   get_feature_names_outz,PassthroughTransformer.get_feature_names_out`  s    &t^<<r~   r|  )r   r  r  r   r  r  rI  r~   rS   r  r  X  s    =r~   r  c                     t        j                  g dg      } t               j                  |       }|j	                         }t        |g d       ddg}t        j                  t        d      5  |j	                  |       ddd       |`	t        j                  t        d      5  |j	                          ddd       y# 1 sw Y   @xY w# 1 sw Y   yxY w)	z4Check behavior of check_feature_names_in for arrays.r  r  r  )x0x1x2x10r  z*input_features should have length equal tor   Nz Unable to generate feature names)
rI   r   r  r   r  r    rO   rP   rQ   n_features_in_)rw   r  r  incorrect_len_namess       rS   test_check_feature_names_inr  d  s    
/"#A
 
"
&
&q
)C%%'Eu01 $-	z)U	V!!"56 
W 		z)K	L!!# 
M	L 
W	V
 
M	Ls   /C &C C	Cc                  V   t        j                  d      } g d}| j                  g dg|      }t               j	                  |      }|j                         }t        |g d       t        j                  t        d      5  |j                  g d       ddd       y# 1 sw Y   yxY w)	z?Check behavior of check_feature_names_in for pandas dataframes.r   r  r  r  zinput_features is not equal tor   )r  r  x3N)	rO   r   r   r  r   r  r    rP   rQ   )r   r  r  r  s       rS   "test_check_feature_names_in_pandasr  v  s    			X	&BE	'	7B
 
"
&
&r
*C%%'Euo.	z)I	J!!"45 
K	J	Js   BB(c                      d} t        j                  t        |       5  t        t	               d       ddd       y# 1 sw Y   yxY w)z@Check the error message when passing an unknown response method.zKRandomForestRegressor has none of the following attributes: unknown_method.r   unknown_methodN)rO   rP   r  r1   r   )r   s    rS   )test_check_response_method_unknown_methodr    s8     	V  
~W	5468HI 
6	5	5s	   <Aresponse_method)decision_functionpredict_probapredictc                     d|  d}t        j                  t        |      5  t        t	               |        ddd       y# 1 sw Y   yxY w)zUCheck the error message when a response method is not supported by the
    estimator.z7EstimatorWithFit has none of the following attributes: .r   N)rO   rP   r  r1   r   )r  r   s     rS   8test_check_response_method_not_supported_response_methodr    sB     B/ARRST  
~W	5/1?C 
6	5	5s   A  A	c                  l   dg} t        |       }d}ddg}ddj                  |       d}t        j                  t        |      5   t        ||      |       d	d	d	       ddg} t        ||      |      }|dk(  sJ ddg} t        |       }g d
} t        ||      |      }|dk(  sJ y	# 1 sw Y   SxY w)z0Check that we can pass a list of ordered method.r  mocking_datar  r  zD_MockEstimatorOnOffPrediction has none of the following attributes: z, r  r   N)r  r  r  )r   joinrO   rP   r  r1   )method_implementedmy_estimatorrw   r  r   method_name_predictings         rS   #test_check_response_method_list_strr    s    )*01CDLA +I6ON99_%
&a	)  
~W	5=|_=a@ 
6 +O<OR3L/RSTU!_444 *9501CDLGOR3L/RSTU!Y... 
6	5s   B**B3c                      t        d      } t        | j                  ddg      d      }t        j                  ddg      }|j
                  |j
                  k(  sJ t        ||       y)zRegression test for gh-25145r   TFr   N)r   r   r   rI   r   rY   r    )r   r  expecteds      rS   #test_boolean_series_remains_booleanr    sW    	h	B
biiu.%
@Cxxu&H99&&&sH%r~   input_values)r   r   r   r   r   r   c                     t        d      }|j                  | d      }t        |dddd      }t        j                  |j
                  j                  t        j                        sJ t        ||        y)zpCheck pandas array with extensions dtypes returns a numeric ndarray.

    Non-regression test for gh-25637.
    r   Int32rX   NF)rY   r   r   r   )	r   r   r   rI   r  rY   r<  floatingr   )r  r   input_seriesr  s       rS   !test_pandas_array_returns_ndarrayr    sg     
h	B88L88LF ==**BKK888FL)r~   array_namespacearray_api_strictzcupy.array_apic                    t        j                  |       }|j                  |j                  ddgd|j                  dgg|j                        }t        d      5  t        j                  t        d      5  t        |       d	d	d	       d	d	d	       |j                  |j                  ddgd|j                  dgg|j                        }t        d      5  t        j                  t        d
      5  t        |       d	d	d	       d	d	d	       y	# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   *xY w# 1 sw Y   y	xY w)z9Checks that Array API arrays checks non-finite correctly.r   r   rV   rX   T)array_api_dispatchr   r   Nzinfinity or a value too large)
rO   r   r   rt   rd   r   rP   rQ   r   r  )r  xpX_nanX_infs       rS   )test_check_array_array_api_has_non_finiter    s     
		_	-BJJABFFA7rzzJJE	4	0]]:-BC D 
1 JJABFFA7rzzJJE	4	0]]:-LM N 
1	0	 DC 
1	0 NM 
1	0sH   D7DDD54D) D5D	DD&)D2	.D55D>zextension_dtype, regular_dtype))r  rh   )r%  rf   )r  rg   )r  rn   include_objectc                 j   t        j                  d      }|j                  |j                  g d|      |j                  g dd      d      }|r|j                  g dd      |d	<   |j	                  |d
   j                  |             }t        |d      }t        |d      }t        ||       y)zKCheck pandas extension arrays give the same result as non-extension arrays.r   )r   r   r   r   rX   )r.  r   r-  r   rf   )r   r  rM  rn   r   r   )r   N)rO   r   r   r   assignre   r   r    )extension_dtyperegular_dtyper  r   	X_regularX_extensionX_regular_checkedX_extension_checkeds           rS   $test_check_array_multiple_extensionsr    s     
		X	&B<}=<w7	
I #7xH	#""Ys^%:%:?%K"LK#IT:%k>(*=>r~   c                  ~    t        j                  d      } | j                  g dg dd      }t        |      dk(  sJ y)zDUse the DataFrame interchange protocol to get n_samples from polars.r  r   r+  r]  rV   N)rO   r   r   r:   )plr  s     rS   #test_num_samples_dataframe_protocolr"    s8    			X	&B	II6	7Bq   r~   r   output_format)r   rN  r   c                     | ddgddggt         j                        }t        |d      r/|j                  j	                  t         j
                        |_        nt        |d      r;t        |d      r/|j                  j	                  t         j
                        |_        ntt        |d      rht        |d      r\|j                  j	                  t         j
                        |_        |j                  j	                  t         j
                        |_        t        ||	      }|d
k(  rS|j                  j                  t         j
                  k(  sJ |j                  j                  t         j
                  k(  sJ y|j                  j                  t         j
                  k(  sJ |j                  j                  t         j
                  k(  sJ y)zGCheck the consistency of the indices dtype with sparse matrices/arrays.r   r   rX   offsetsr[  r\  r]  r^  rH  r   N)rI   rg   r   r%  re   rb   r[  r]  r^  r   rY   r\  )r   r#  rw   r   s       rS   1test_check_array_dia_to_int32_indexed_csr_csc_coor&    s?    	1a&1a&)<A q)II$$RXX.		E	wq%0RXX&	I	71h#7II$$RXX.	88??288,A];I}}""bhh...}}""bhh...  &&"((222%%111r~   sequencec                     t        |       }t        |t        j                        sJ |j                  j
                  dk(  sJ |j                  dk(  sJ y )NOr   )r;   r   rI   r   rY   r<  r   )r'  outs     rS   test_to_object_arrayr+  '  sF    
8
$Cc2::&&&99>>S   88q==r~   c                     dg dfdg dfdt        j                  d      dz  fdg dfdg d	fdd
gdgdggfdg dg dgfdg dgfdd
d
gddgdd
ggfddd
gddgdd
ggfdg dgfdt        j                  d      j                  d      fg} | D ]_  \  }}|dv r)t        t	        |      t        j
                  |             3t        j                  t              5  t	        |       d d d        a y # 1 sw Y   lxY w)Nbinary)spameggr.  )r   r   r   r   
continuousrW   g      4@
multiclassr   )r   r   r\   r\   r   r   r\   rV   zmultilabel-indicatorr  )r   r   r   zmulticlass-multioutputr]   r   zcontinuous-multioutput   )r   rV   )r-  r1  r0  )	rI   rc   r   r    rC   r   rO   rP   rQ   )EXAMPLESy_typer   s      rS   test_column_or_1dr5  /  s   	*+	< 	ryy}t+,	y!	'	aS1#'	)Y!78	!I;/	!QFQFQF#;<	!QFQFQF#;<	!I;/	!299R=#8#8#ABH 	;;|A<z*Q +*	  +*s   C00C9	c                  <     G d d      } t         |              rJ y)z@Check that _is_polars_df return False for non-dataframe objects.c                       e Zd Zd Zy)+test__is_polars_df.<locals>.LooksLikePolarsc                 (    ddg| _         ddg| _        y )Nr   r   r  r  s    rS   r   z4test__is_polars_df.<locals>.LooksLikePolars.__init__K  s    :DL*DKr~   Nr	  rI  r~   rS   LooksLikePolarsr8  J  s    	%r~   r:  Nr  )r:  s    rS   test__is_polars_dfr;  G  s"    % %
 _.////r~   c                  ^   t         j                  j                  d      } t        | dd      }t        j                  ||       sJ |j
                  j                  sJ d| j
                  _        t        | dd      }t        j                  ||       rJ |j
                  j                  sJ y)zyCheck the behavior of check_array when a writeable array is requested
    without copy if possible, on numpy arrays.
    r   sizeFTr[   force_writeableN)rI   rJ   uniformr   r  r   	writeable)rw   r*  s     rS   test_check_array_writeable_nprC  R  s     			x(A
aeT
:CsA&&&99AGG
aeT
:C""3***99r~   c                  p   t         j                  j                  d      } t        | d      }t	        |dd      }t        j
                  ||      sJ |j                  j                  sJ t        | d      }t	        |dd      }t        j
                  ||      rJ |j                  j                  sJ y	)
a  Check the behavior of check_array when a writeable array is requested
    without copy if possible, on a memory-map.

    A common situation is when a meta-estimators run in parallel using multiprocessing
    with joblib, which creates read-only memory-maps of large arrays.
    r   r=  zw+r  FTr?  r  N)rI   rJ   rA  r"   r   r  r   rB  )rw   mmapr*  s      rS   test_check_array_writeable_mmaprF  e  s     			x(A$Q$7D
d
=CsD)))99$Q#6D
d
=C""3---99r~   c                     t        j                  d      } t        j                  j	                  d      }| j                  |d      }t        |dd      }t        j                  ||      sJ |j                  j                  sJ d|j                  _	        | j                  |d      }t        |dd      }t        j                  ||      rJ |j                  j                  sJ y)	zxCheck the behavior of check_array when a writeable array is requested
    without copy if possible, on a dataframe.
    r   r   r=  FrZ   Tr?  N)
rO   r   rI   rJ   rA  r   r   r  r   rB  )r   rw   r  r*  s       rS   test_check_array_writeable_dfrH  {  s     
		X	&B
		x(A	ae	$B
bud
;CsB'''99AGG	ae	$B
bud
;C""3+++99r~   )__doc__r  r  r  	itertoolsr   operatorr   tempfiler   numpyrI   rO   scipy.sparserz  rq   r   r  sklearn._configr   sklearn._min_dependenciesr   sklearn.baser	   sklearn.datasetsr
   sklearn.ensembler   sklearn.exceptionsr   r   sklearn.linear_modelr   (sklearn.metrics.tests.test_score_objectsr   sklearn.neighborsr   sklearn.random_projectionr   sklearn.svmr   sklearn.utilsr   r   r   r   r   r   sklearn.utils._mockingr   r   sklearn.utils._testingr   r   r   r   r   r    r!   r"   r#   r$   sklearn.utils.estimator_checksr%   sklearn.utils.fixesr&   r'   r(   r)   r*   r+   sklearn.utils.validationr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rT   r}   markparametrizerJ   rX  tocsrr   r   r   r   r  rt   r   r   r   r   r   r   r   rn   r   r   r  r  rd   rg   r#  r)  r4  r9  r=  rF  rK  rM  fixturer`  rc  re  rl  rw  r  r  r  r  r  r  rZ  r  r  r  r  r  r  r  r  r  r  r  r  rr   rv  r  r  r  
dia_matrixr  r  r  r  r   r   r  Integralrh   r   rQ   r,  _psd_cases_validvalueskeysr7  _psd_cases_invalidr<  r?  rD  rF  rH  rX  r^  rj  rw  r~  r  r  integerunsignedintegerr  r  r  r  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r&  r+  r5  r;  rC  rF  rH  rI  r~   rS   <module>rl     s_   *  	    '      * 8 & ' 2 F . F 2 ;     7       :0$'%T 		 0 0 9WRWWR^=Q=Q=SUV1 W1G ,& "&&+1FQVX BJJ#>?/ @/ 4	T45	d78	$(OP	k#>?	T/0	d23	d23FF>		
 
Q,-& BJJ#>?
 @'(
 'BCBJJ#>?%1 @ D%1P
:  BHHq"&&k]#!	

 BHHq"&&k]#!	

 BHHq"&&k]#C	
 
Arvv;-v	.0UV$ +dE];E <%&E) v* v*r 
sc3Z 3*sCj)53*sCj)5
d|$4,t-T:	(	( J 
**bjj	!2::.	RZZ 	BJJ..:%*"GJ5=)%X9>/ 34 5,G
L7%t'TG  0F'!(H"BJ 
Z]D%(.I  22A(
+	E rzz2::&

D)D ':;8 <8<8&9 
	 	4 $/4 04 









	
"
"	;,( n- .  P IJ	
 LLNO	
 LM	
 DMQR	
 67	
 67	
 67	
 67	
 !M	
 #	
 #	
Cmpb9cpb9& !Q($3!1a&)8288QF+;T2F!QV	 %hbhh1v&68OQST!U2::.!Qrzz*K	" 	!VBJJ/!Qrzz*K	" 	!QH	- > .		 	 	"#""$%  
 *T5M:5 ;54 	9 	7 	4 	$bjj14  	$rzz24 + :  		"	"	$%$$&'  
(
()GX RXXr}}bmm$LM( N( RXXr}}bmm$LM, N, R]]BMM$BC% D%60 TAq6N3 40 &HI1 J1$ 
66. &	<-	9bkk*	9bkk*	$	'2::&	"**%	$	

#	*bjj)	$	'2--.	8R//0	(B../	2--.	+r112(6)(6 G!	! 
qC8c1X& 	0  
 +-QR S
* 28WX Y 	%(^U1XtsCj3*%=>6  

/ "I	/		/ +-OP! Q!   "	&y1!45	(2156	%h/23	!	!	. 
q#$
C:	 12 
J  &&"	=] 	=$$6J HDD/:& 1aAq"&&*ACU)VW* X*$ )*-?AQ,RS T ) $ )D%=9? :?*! ^#n4~E *?@2 A	
2, xrxx{HBHHQK&@Aq6Aq6BR%ST U 00&,r~   