
     hp                        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
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 ddlmZ ddlmZ ddlmZ ddlmZmZmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddlm3Z3 ddl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF ddlGmHZH ddlIZIddlJmKZKmLZL ddlmMZM d  ZNe
jO        P                    d!ejQ        Q                    d"           ejR        d#d$          S                                g          d%             ZTd& ZUd' ZVd( ZWe
jO        P                    d)ejX        d*fejY        d+fejY        d*fg          e
jO        P                    d,ejZ        ej[        g          d-                         Z\e
jO        P                    d.ejX        d/d0d1fejX        d!d0d2fejX        d3d0d4fejX        d!d+d2fejY        d/d0d5fejY        d!d0d6fejY        d7d0d8fejY        d/d9d:fejY        d/d;d5fg	          e
jO        P                    d,ejZ        ej[        g          d<                         Z]e
jO        P                    d=g d>          e
jO        P                    d,ejZ        ej[        g          d?                         Z^d@ Z_e
jO        P                    dA ej`        d;ejY        gg          dBf ej`        d;ejY        gg          dBf ej`        d;ejX        gg          dCf ej`        d;ejY        ggeaD          dEfg          e
jO        P                    dFd0d*g          dG                         ZbedH             Zce
jO        P                    d!dIdJgdKdLgg ej`        dIdJgdKdLggdMD           ej`        dIdJgdKdLggdND          dOdPgdQdRgg ej`        dOdPgdQdRggdSD          g          dT             Zde
jO        P                    dUg dV          e
jO        P                    dWeje        ejf        geje        fejf        ejf        fdXejf        fg          dY                         ZgdZ Zhd[ Zid\ Zjd] Zkd^ Zld_ Zmd` Zn e
jo        g dab          dc             Zpdd Zqde Zrdf Zsdg Ztdh Zudi Zvdj Zwdk Zxdl Zye
jO        P                    dm e	d          eze{gg dno          dp             Z|dq Z}dr Z~ds Zdt Ze
jO        P                    duejf        eje        fejf        ddXf          e
jO        P                    dvdw          dx                         Zdy Zdz Z G d{ d|          Z G d} d~          Zd Ze
jO        P                    dd0d*g          d             Ze
jO        P                    d,ejZ        ej[        ej        ej        ej        ej        ej        ej        g          d             Zd Zd Ze
jO        P                    dg d          d             Ze
jO        P                    dd;ded$dd ed          fddej        d$dd ed          fddej        d$dd ed          fd;deefd$dd ed          fd;ded$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`        d;d$g          dd/f ej`        d;d$g           ej`        d;d$g          dd/fd ej`        ddg          eLdfd ej`        ddg          eLd/f ej`        d;dgeje        D           ej`        d;dgeje        D          eLdf ej`        d;dgejf        D           ej`        d;dgejf        D          eLdfd ej`        ddg          eLdfdZe
jO        P                    d eze                                           eze                                          o          e
jO        P                    dd0d*g          d                         Zdedfdedfdedf ej`        ddgeje        D          edf ej`        ddgejf        D          edfdZe
jO        P                    d eze                                           eze                                          o          d             Zd Ze
jO        P                    dej`        ej[        ej        g          d             Ze
jO        P                    dej`        ej[        ej        g          d             Ze
jO        P                    dej[        ej        g          d             ZdÄ ZdĄ Zdń Ze
jO        P                    ddd;dgg          dȄ             Ze
jO        P                    dg dʢ          d˄             Ze
jO        P                    dg d͢          d΄             Ze
jO        P                    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ddej        fg          d             Ze
jO        P                    dg d          d             Ze
jO        P                    d!g dg dg dg ddd;idd$iddiggg do          e
jO        P                    dg d          d                         Ze
jO        P                    d!g dg do          d             Ze
jO        P                    d ez ed$                     ed$          dddgdd gggg do          d             Zd Zd Ze
jO        P                    ddd;gdfdddggdfgd	d
go          d             Z G d deH          Zd Zd Zd Ze
jO        P                    dddg          d             ZdS (  z$Tests for input validation functions    N)NamedTemporaryFile)product)
itemgetter)importorskip)config_context)assert_no_warnings)ignore_warnings)SkipTest)assert_array_equal)assert_allclose_dense_sparse)assert_allclose)_convert_container)as_float_arraycheck_arraycheck_symmetric)	check_X_y)
deprecated)MockDataFrame)parse_version)_NotAnArray)_sparse_random_matrix)ARDRegression)KNeighborsClassifier)RandomForestRegressor)SVR)
make_blobs)_safe_indexing)has_fit_parametercheck_is_fittedcheck_consistent_lengthassert_all_finitecheck_memorycheck_non_negative_num_samplescheck_scalar_check_psd_eigenvalues_check_y_deprecate_positional_args_check_sample_weight_allclose_dense_sparse_num_featuresFLOAT_DTYPES_get_feature_names_check_feature_names_in_check_fit_params)BaseEstimator)NotFittedErrorPositiveSpectrumWarning)
TempMemmapc                  Z   t          j        dt           j                  } | t          j        dt           j                  z   } t	          | d          }|j        t           j        k    s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 ]=}|                     |          } t	          |           }|j        t           j        k    s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                                                    t-          ddd	
                                          g}|D ]J}t	          |d          }t           j        |d<   t          j        |                                          rJ Kd S )N)   
   dtyper6   FcopyT)r5         皙?)densityr   r   )nponesint32aranger   r8   float32astypeint64float64boolint8int16uint8uint16uint32objectasfortranarray	isfortransp
csc_matrixtoarrayr   nanisnanany)XX2tested_dtypesr8   matricesMNs          _/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_validation.pytest_as_float_arrayr^   A   sY   
rx(((A	BIb))))A		&	&	&B8rz!!!!	A		%	%	%B!%(((11118rz!!!!27BHbh")RYWM & &HHUOOAx2:%%%%% 	
A		%	%	%B8rz!!!! 	bj)))A!%(((A----
!A<qt44455555 	bill##++--b"d333;;==H  % %14(((&$8A;;??$$$$$$% %    rW   r6   r;   r6   r;   c                     t           j        | d<   t           j        | d<   t          | d          }t          ||            d S )N)r<   r   )      	allow-nanforce_all_finite)r@   rT   r   r   )rW   X_converteds     r]   test_as_float_array_nanrh   k   s@    fAdGfAdG [AAAK a00000r_   c                     t          j        d                              dd          } t          t	          |           t           j                  rJ t          t	          t          j        |                     t           j                  rJ d S )N   r5      )r@   rC   reshape
isinstancer   matrixrQ   rR   rW   s    r]   test_np_matrixrp   s   so    
	"a##A.++RY77777.q)9)9::BIFFFFFFFr_   c                  x   d } t          d          5 }t          j        |dt          j                  }d|d d <   t          t          j        | fD ]O} ||          }d|d d <   t          |                                |                                           d|d d <   P	 d d d            d S # 1 swxY w Y   d S )Nc                 $    t          | d          S )NFr9   )r   )xs    r]   <lambda>ztest_memmap.<locals>.<lambda>~   s    nQU333 r_   zsklearn-test)prefix)r6   r6   )shaper8   r   rc   )r   r@   memmaprD   r   asarrayr   ravel)asflttmpr[   frW   s        r]   test_memmapr}   {   s	    43E	>	2	2	2 cIc<<<!!!rz51 	 	A!AAaaaDqwwyy!''))444AaaaDD			                 s   BB//B36B3c                  ^   t          j        d          } | | j        fD ]Q}dD ]L}t          |d|          }|j        d         sJ t          |d|          }|j        d         sJ |r||usJ MRt          j        |           } | j        d d d         | _        | j        j        d         rJ d S )	N)r6   r<   )TFC)orderr:   C_CONTIGUOUSFF_CONTIGUOUS)r@   rA   Tr   flagsrQ   
csr_matrixdata)rW   Ar:   Bs       r]   test_orderingr      s     	AV " "! 	" 	"DASt444A7>****ASt444A7>**** "zzzz	" 	aAVDDbD\AFv|N++++++r_   zvalue, force_all_finiteFrd   retypec                      |t          j        d                              dd                              t                              }| |d<   t          ||d          }t          ||           d S )Nrk   r;   r?   T)rf   accept_sparse)r@   rC   rl   rE   floatr   r   )valuerf   r   rW   	X_checkeds        r]   'test_check_array_force_all_finite_validr      sn    
 	ry||##Aq))007788AAdGA0@PTUU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"rc   c                 :    |t          j        d                              dd                              t           j                            }| |d<   t          j        t          |          5  t          |||d           d d d            d S # 1 swxY w Y   d S )Nrk   r;   r?   matchT)
input_namerf   r   )	r@   rC   rl   rE   rG   pytestraises
ValueErrorr   )r   r   rf   	match_msgr   rW   s         r]   (test_check_array_force_all_finiteinvalidr      s    . 	ry||##Aq))00<<==AAdG	z	3	3	3 
 
!-		
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   /BBBr   )rW   r   r   c                     |t          j        d                              dd                              t           j                            }t           j        |d<   t                      }d|j        j         d}t          j
        t          d|  d          5 }t          ||| d	
           d d d            n# 1 swxY w Y   | dk    r||j        j        d         v sJ n||j        j        d         vsJ | dk    rt          j
        t          d|  d          5 }t                                          |t          j        |j        d                              d d d            n# 1 swxY w Y   ||j        j        d         v sJ d S d S )Nrk   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   )r@   rC   rl   rE   rG   rT   r   	__class____name__r   r   r   r   r   argsfitrA   rv   )r   r   r   r   extended_msgctxs         r]   0test_check_array_links_to_imputer_doc_only_for_Xr      s     6")A,,&&q!,,33BJ??@@DDJI	-Y ) 	- 	- 	-  
z)K*)K)K)K	L	L	L 
PS!		
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Ssy~a00000039>!#44444S ]:-Oj-O-O-OPPP 	4TWEEIIdBGDJqM22333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4sy~a00000 
 10s%   B;;B?B?A E**E.1E.c                  N   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            d S # 1 swxY w Y   d S )
Nabr7   rd   r8   rf   Fr   r   T)	r@   arrayrT   rN   r   r   r   r   r   )rW   r   s     r]   (test_check_array_force_all_finite_objectr      s    
3RV$%V4446AATKHHHI	>>>>ATEBBBI	>>>>	z)=	>	>	> : :ATD9999: : : : : : : : : : : : : : : : : :s   :BB!Bz
X, err_msgInput contains NaN.z5Input contains infinity or a value too large for.*intr7   z#cannot convert float NaN to integerrf   c                     t          j        t          |          5  t          | t          |           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r   r   int)rW   err_msgrf   s      r]   7test_check_array_force_all_finite_object_unsafe_castingr     s    0 
z	1	1	1 E EAS3CDDDDE E E E E E E E E E E E E E E E E Es   AAAc                  
   ddgddgg} t          j        |           }t          j        t                    5  t          |           d d d            n# 1 swxY w Y   t          g dd          }|j        dk    sJ t          j        t          d	          5  t          g dd
           d d d            n# 1 swxY w Y   t          j        t          d	          5  t          dd
           d d d            n# 1 swxY w Y   t          j	        d          
                    ddd          }t          j        t                    5  t          |           d d d            n# 1 swxY w Y   t          |d
           t          j	        d          
                    dd                              d          }|                    d          }|                    t                    }|                    t                    }||||g}t          j        t          t          t          j        d t"          t$          g}	g d}
d
dg}t'          ||	|
|          D ]\  } }}}t          | |||          }||j        |k    sJ n|j        | j        k    sJ |dk    r|j        d         sJ |j        d         rJ n$|dk    r|j        d         sJ |j        d         rJ |r| |usJ | j        |j        k    r>|j        d         | j        d         k    r"|j        d         | j        d         k    r| |u sJ t          j        |          }|                                }|                                }|                    t                    }|                    t                    }|||||g}ddgddgg}d |	D             }t'          ||||          D ]\  } }}}t          | |||          }||j        |k    sJ n|j        | j        k    sJ | j        |v r| j        |j        k    sJ n|j        |d         k    sJ |r| |usJ t| j        |j        k    r| j        |j        k    r| |u sJ t          ddgddgg          }t5          |t          j                  sJ t          j        t                    5  t          |                                           d d d            n# 1 swxY w Y   t          |                                d
           t;          |          }t          |          }t5          |t          j                  sJ d S )Nrc   r;   r5   rk   )r   rc   r;   F	ensure_2dz'Expected 2D array, got 1D array insteadr   Tz+Expected 2D array, got scalar array insteadr6      allow_ndr   r   )r   r   N)r8   r   r:   r   r   csrcoodokc                 $    g | ]}|t           u|S  )rN   ).0dts     r]   
<listcomp>z$test_check_array.<locals>.<listcomp>d  s"    AAA&0@0@0@0@0@r_   r8   r   r:   r   )rQ   r   r   r   	TypeErrorr   ndimr   r@   rC   rl   r:   rE   r   r   rB   rD   rH   rN   r   r8   r   rR   tocootodokformatrm   ndarraytolistr   )rW   X_csrX_arrayX_ndimX_CX_FX_intX_floatXsdtypesorderscopysr8   r   r:   r   X_cscX_cooX_dokaccept_sparsesnon_object_dtypesr   X_dense
X_no_arrayresults                            r]   test_check_arrayr     s    Q!QAM!E	y	!	!  E               )))u555G<1	z)R	S	S	S / /III..../ / / / / / / / / / / / / / / 
z)V	W	W	W ( (B$''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Yq\\!!!Q**F	z	"	"  F              &&&& )A,,

q!
$
$
)
)#
.
.C
((3--CJJsOOEjjG
sE7	#BhUBJdFCFF5ME!(VVU!C!C & &5%e$GGG	?e+++++?ag----C<<?>2222 ~66666c\\?>2222 ~6666 		&I%%%%% 9?**ON3qw~7NNNON3qw~7NNNI~~~~ M#EKKMMEKKMMELLEll5!!G
ug	.Benuen5N BAfAAA)0
~u* * & &%5-  mRVWWW	?e+++++?ag----8}$$8y////// #}Q'77777 	&I%%%%% w)/))ah):J.J.JI~~~~ Aq6Aq6*++Ggrz*****	z	"	" % %FMMOO$$$% % % % % % % % % % % % % % %$//// W%%J$$Ffbj)))))))sY   AAAB88B<?B<C<<D D 	E%%E),E)5"S##S'*S'1234US   1   2   3   4V1c                     d}t          j        t          |          5  t          | d           ddd           dS # 1 swxY w Y   dS )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   numericr7   Nr   r   r   r   )rW   expected_msgs     r]   test_check_array_numeric_errorr     s     UL	z	6	6	6 ( (AY''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   =AA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        }|                    || g d          }|d                             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            d S # 1 swxY w Y   d S )Npandas>   r   r   z1.2
minversionrc   r;   r5   r   rk   rb   )rc   r;   r5   rk   r<   r   r   c)r8   columnsr   r   rd   )rf   r8   Fr   r   Tre   )r   r   r@   r   rT   r   	DataFramerE   r   r   r8   r   r   )r   r8   expected_dtypepdX_nprW   r   msgs           r]   "test_check_array_pandas_na_supportr    s    
	X	&	&B))) e<<<8
Q2626	"RVRVQ1$=O  	
 	T???CCAsV]]7##AcFA5IIIIIt$$$?n,,,,AUCCCIIt$$$?n,,,,
C	z	-	-	- . .A----. . . . . . . . . . . . . . . . . .s   2EEEc                  (   t          j        d          } |                     dd| j        gd          }d}t          j        t
          |          5  t          |dd	
           ddd           n# 1 swxY w Y   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 dS )z4Check check_array is correct with pd.NA in a series.r   rc   r;   Int64r7   r   r   TF)rf   r   N)rf   r   r8   )r   r   SeriesNAr   r   r   r   r@   rT   r8   rG   rD   )r   X_int64r  X_outs       r]   *test_check_array_panadas_na_support_seriesr	    s[   		X	&	&BiiAruWi55G
C	z	-	-	- E EGdeDDDDE E E E E E E E E E E E E E E %5IIIEEAq"&>***;"*$$$$%5
  E EAq"&>***;"*$$$$$$s   A00A47A4c                  &   t          j        d          } t          j        g dg dg dgt          j                  }|                     |          }t          |          j        t          j        k    sJ t          |t                    j        t          j        k    s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 |	                    dt          j        i          }t          |          j        t          j        k    sJ t          |t                    j        t          j        k    sJ |	                    dt          j
        i          }t          |          j        t          j        k    sJ t          |t                    j        t          j        k    sJ |	                    t          j                  }t          |          j        t          j        k    sJ t          |t                    j        t          j        k    sJ |                     d|                     g d          i          }t          |          j        t          j        k    sJ t          |t                    j        t          j        k    sJ d S )	Nr   rc   r;   r5   rk   r<   rb      r   	   r7   r   r;   cat_col)r   r   r@   r   rD   r   r   r8   r,   rE   float16r   r   rJ   rG   CategoricalrF   )r   rW   X_dfcat_dfs       r]   %test_check_array_pandas_dtype_castingr    sw   		X	&	&B
)))YYY			2"*EEEA<<??Dt"bj0000t<0006"*DDDD;;2:''Dt{RZRZ$HIIIt"bj0000t<0006"*DDDD;;28}%%Dt"bj0000t<0006"*DDDD;;2:''Dt"bj0000t<0006"*DDDD;;rx  Dt"bh.... t<0006"*DDDD
 \\9bnnYYY&?&?@AAFv$0000v\2228BJFFFFFFr_   c                  .   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 d S )Ng?gffffff?g333333?g      ?g?r=   r7   )r@   r   r   r   r8   rD   )arrmock_dfchecked_arrs      r]   "test_check_array_on_mock_dataframer    s    
(S#Jc
S#Jc
C
D
DCC  Gg&&K	))))gRZ888K 4 444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 d S )Nr  r  r  iFr   )r   r8   kindro   s    r]    test_check_array_dtype_stabilityr    sa    	IIIyyy)Aq>>$++++qE***0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 ];}t          t          |t           j
        d          }	|	j        t           j
        k    sJ <|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s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 d S )Nr  r  r  r7   T)r8   r   r   r   r   F)r@   rx   rD   rF   rQ   r   rR   rB   r   r   rG   r8   r   )

X_int_list	X_float32r  X_csr_float32X_csc_float32X_csc_int32integer_datafloat32_datarW   r   s
             r]   test_check_array_dtype_warningr'    s   ))YYY			2J
:RZ888Ij28444GM),,MM),,M-rx888K[)L}m<L - -&"*D
 
 
	 "*,,,,, " "&2:rz":$
 
 
	 "*,,,,A~~~~&:rz* %.
 
 
	 "*,,,,!!!!!"z2:&en  I ?bj((((M))))u$$$$$$r_   c                     ddgddgg} t          j        |           }t                      }d}t          j        t
          |          5  t          |d           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   d
}t          j        t          |          5  t          |g            d d d            n# 1 swxY w Y   t          j        t          |          5  t          |d           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          ||g           d d d            d S # 1 swxY w Y   d S )Nrc   r;   r5   rk   zlA sparse matrix was passed, but dense data is required. Use X.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   r   )rQ   r   r   r   r   r   r   r   )rW   r   invalid_typer  s       r]   -test_check_array_accept_sparse_type_exceptionr+  9  s   
Q!QAM!E55L	@  
y	,	,	, 0 0E////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	G  
z	-	-	- 7 7E66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7	5  
z	-	-	- - -E,,,,- - - - - - - - - - - - - - -	z	-	-	- - -E,,,,- - - - - - - - - - - - - - -	y	.	.	. 9 9E,88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9sZ   A&&A*-A*B,,B03B0C22C69C6D66D:=D:E<<F F c                      ddgddgg} t          j        |           }t          |d           t          |d           t          |dg           t          |d           d S )	Nrc   r;   r5   rk   Tr)  r   )r   )rQ   r   r   )rW   r   s     r]   +test_check_array_accept_sparse_no_exceptionr-  X  sw    
Q!QAM!ET****U++++eW----X......r_   )r   cscr   bsr)paramsc           	   #      K   t          j        dd| j                  }dD ]D}t          ||          r2t	          ||t          ||                              d                     E|V  d S )N   r6   )r   )indicesindptrrowcolrF   )rQ   randparamhasattrsetattrgetattrrE   )requestrW   attrs      r]   X_64bitr>  b  sw      
Bw}---A3 ? ?1d 	?AtWQ--44W==>>>
GGGGGr_   c                 *    t          | dd           d S )NT)accept_large_sparser   )r   )r>  s    r]   1test_check_array_accept_large_sparse_no_exceptionrA  k  s    TFFFFFFr_   c                     d}t          j        t          |          5  t          | dd           d d d            d S # 1 swxY w Y   d S )NzQOnly sparse matrices with 32-bit integer indices are accepted. Got int64 indices.r   TF)r   r@  r   )r>  r  s     r]   4test_check_array_accept_large_sparse_raise_exceptionrC  p  s    	+  
z	-	-	- L LG4UKKKKL L L L L L L L L L L L L L L L L Ls   >AAc                  8   d} t          j        t          |           5  t          g g           d d d            n# 1 swxY w Y   d} t          j        t          |           5  t          g d           d d d            n# 1 swxY w Y   d} t          j        t          |           5  t          dd           d d d            n# 1 swxY w Y   t          j        d          }t          j        d	          }d
} t          j        t          |           5  t          ||d           d d d            n# 1 swxY w Y   t          j        t          |           5  t          ||dd           d d d            n# 1 swxY w Y   t          j        d          }t          j        d          }d} t          j        t          |           5  t          ||d           d d d            n# 1 swxY w Y   t          j        t          |           5  t          ||dd           d d d            n# 1 swxY w Y   t          j        d          	                    dd          }t          j        d          }d} t          j        t          |           5  t          ||           d d d            n# 1 swxY w Y   t          j        d          }t          j        d          }t          ||d          \  }}t          ||           t          ||           d S )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.*   )rc   r6   rc   zC1 sample\(s\) \(shape=\(1, 10\)\) while a minimum of 2 is required.r;   )ensure_min_samples)rF  r   r`   zD2 feature\(s\) \(shape=\(10, 2\)\) while a minimum of 3 is required.r5   )ensure_min_featuresT)rG  r   r   r6   zD0 feature\(s\) \(shape=\(10, 0\)\) while a minimum of 1 is required.)r6   r      rH  r   )r   r   r   r   r   r@   rA   r   emptyrl   r   )r  rW   r   r   	y_checkeds        r]   2test_check_array_min_samples_and_features_messagesrK  z  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99Iyq)$$$q)$$$$$s   ;??#BBB)CCCD66D:=D:E<<F F G++G/2G/H11H58H5J22J69J6c                     t          j        g dg dg          } t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   g dg dg} t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   d} t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   t          j        g d          t          j        g d          g} t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   t          j        g d          t          j        g d          f} t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   t          t          j        g dg dg                    } t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   t          j        ddgddgg          } t          j        t          d          5  t          |            d d d            n# 1 swxY w Y   t          j        g d          }t          j        t          d          5  t          |           d d d            d S # 1 swxY w Y   d S )	N      ?       @      @      @      @      @       @      @      @      @      @      @zComplex data not supportedr   )rM  rQ  r   rN  )rN  rO  rP  rR  rS  rT  )
r@   r   r   r   r   r   r   rQ   
coo_matrixr'   )rW   r   s     r]   #test_check_array_complex_data_errorrV    s   
***,D,D,DEFFA	z)E	F	F	F  A               
"	!	!#;#;#;<A	z)E	F	F	F  A               	=A	z)E	F	F	F  A               
***	+	+RX6N6N6N-O-OPA	z)E	F	F	F  A               
***	+	+RX6N6N6N-O-OPA	z)E	F	F	F  A               	bh 8 8 8:R:R:RSTTUUA	z)E	F	F	F  A               	6{QF+,,A	z)E	F	F	F  A              
 	AAABBA	z)E	F	F	F                   s   AAA BB #B C  C$'C$2EEE F<<G G 	H%%H),H)%JJJ=KK!K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            d S )Nr   c                   8    e Zd Z ed          dd            ZdS )@test_has_fit_parameter.<locals>.TestClassWithDeprecatedFitMethodz7Deprecated for the purpose of testing has_fit_parameterNc                     d S Nr   )selfrW   r   r   s       r]   r   zDtest_has_fit_parameter.<locals>.TestClassWithDeprecatedFitMethod.fit      Dr_   r[  )r   
__module____qualname__r   r   r   r_   r]    TestClassWithDeprecatedFitMethodrY    s?        	M	N	N	 	 	 
O	N	 	 	r_   r`  z=has_fit_parameter fails for class with deprecated fit method.)r   r   r   r   )r`  s    r]   test_has_fit_parameterra    s     !5GGGGG2ODDDDDS/22222SUUO44444       
 (/  G GFG G  G 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            n# 1 swxY w Y   |                                D ]\  }}t          j        t                     5  t          |           d d d            n# 1 swxY w Y   t          j        t                    5  t          |d           d d d            n# 1 swxY w Y   t          |d          }t          j        |          r0|j        |k    sJ t'          |                                |            t'          ||            d S )	Nr   rc   r;   )denser   r   r.  r   lilr/  T)raise_exceptionF)raise_warning)r@   r   rA   rQ   
dok_matrixr   rR   rU  
lil_matrix
bsr_matrixr   r   r   r   itemswarnsUserWarningissparser   r   rS   )arr_symarr_badarr_asymtest_arrays
arr_formatr  outputs          r]   test_check_symmetricrt    s   hAA'((GgajjGx!Q!Q())H }X&&}X&&}X&&}X&&}X&&}X&& K 
z	"	" ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ',,.. 0 0
C\+&& 	! 	!C   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]:&& 	7 	7C6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 !E:::;v 	0=J....v~~//9999vw////0 0s6   C44C8;C81EE	E	1FF	F	c                      G d dt                     } t          j        t                    5  t	           |                        d d d            n# 1 swxY w Y   t	           |                                                        d S )Nc                       e Zd Zd Zd ZdS )6test_check_is_fitted_with_is_fitted.<locals>.Estimatorc                     d| _         | S )NT)
_is_fitted)r\  kwargss     r]   r   z:test_check_is_fitted_with_is_fitted.<locals>.Estimator.fit  s    "DOKr_   c                 0    t          | d          o| j        S )Nry  )r9  ry  r\  s    r]   __sklearn_is_fitted__zLtest_check_is_fitted_with_is_fitted.<locals>.Estimator.__sklearn_is_fitted__  s    4..B4?Br_   N)r   r^  r_  r   r}  r   r_   r]   	Estimatorrw    s7        	 	 		C 	C 	C 	C 	Cr_   r~  )r0   r   r   r1   r   r   )r~  s    r]   #test_check_is_fitted_with_is_fittedr    s    C C C C CM C C C 
~	&	& % %		$$$% % % % % % % % % % % % % % %IIKKOO%%&&&&&s   AAAc                  8   t          j        t                    5  t          t                     d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t	                      } t                      }	 t          j        t                    5  t          |            d d d            n# 1 swxY w Y   t          j        t                    5  t          |           d d d            n# 1 swxY w Y   n# t          $ r J d            w xY wd}d}t          j        t          |          5  t          | |           d d d            n# 1 swxY w Y   d}d	}t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y    | j	        t                         |j	        t                        t          |           J t          |          J d S )
Nr   Fz&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)r   r   r   r   r   r   r1   r   AttributeErrorr   r   )ardsvrr  r   s       r]   test_check_is_fittedr    sy   	y	!	! ' '&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	y	!	!                 //C
%%C?]>** 	! 	!C   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]>** 	! 	!C   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ? ? ?>>>>u? .C9E	z	/	/	/ & &%%%%& & & & & & & & & & & & & & & /C&E	~U	3	3	3 & &%%%%& & & & & & & & & & & & & & & CGZ\\CGZ\\3'''3'''''s   ;??A;;A?A?#D$ <CD$ CD$ C D$ <DD$ DD$ D D$ $D9E99E= E=#GGGc                      G d d          } d} |             }t          j        t          |          5  t          |ddg           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |ddgt                     d d d            n# 1 swxY w Y   t          j        t          |          5  t          |ddgt
                     d d d            n# 1 swxY w Y   d	|_        t          j        t          |          5  t          |ddg           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |ddgt                     d d d            n# 1 swxY w Y   t          |ddgt
                     d
|_        t          |ddg           t          |ddgt                     t          |ddgt
                     d S )Nc                       e Zd Zd ZdS )4test_check_is_fitted_attributes.<locals>.MyEstimatorc                     | S r[  r   r\  rW   r   s      r]   r   z8test_check_is_fitted_attributes.<locals>.MyEstimator.fitE  s    Kr_   N)r   r^  r_  r   r   r_   r]   MyEstimatorr  D  s#        	 	 	 	 	r_   r  z
not fittedr   a_b_)
attributes)r  
all_or_anyr   r   )r   r   r1   r   allrV   r  r  )r  r  ests      r]   test_check_is_fitted_attributesr  C  sr           C
+--C	~S	1	1	1 6 6t55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	~S	1	1	1 F FtEEEEF F F F F F F F F F F F F F F	~S	1	1	1 F FtEEEEF F F F F F F F F F F F F F F CF	~S	1	1	1 6 6t55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	~S	1	1	1 F FtEEEEF F F F F F F F F F F F F F FCT4LSAAAACFCT4L1111CT4LSAAAACT4LSAAAAAAsY   AAA;B!!B%(B%C--C14C1D::D>D> FF
F
wrap)singlelisttuple)idsc                    t                      }t          j        t          d          5  t	          | | dg                     d d d            n# 1 swxY w Y    |j        t                        t	          | | dg                     t          j        t          d          5  t	          | | dg                     d d d            d S # 1 swxY w Y   d S )Nzis not fitted yetr   coef_	coef_bad_)r   r   r   r1   r   r   r   )r  r  s     r]   $test_check_is_fitted_with_attributesr  _  s[    //C	~-@	A	A	A . .TT7)__---. . . . . . . . . . . . . . . CGZ\\ Cwi))) 
~-@	A	A	A 2 2TT;-001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s#   AAA'CCCc                     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            n# 1 swxY w Y   t          j        t          d          5  t          ddgd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          ddgt                                 d d d            n# 1 swxY w Y   t          j        t                    5  t          ddgt          j        d                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          ddgt                                 d d d            d S # 1 swxY w Y   d S )Nrc   r;   r5   rk   r<   r   r   )r;   rc   r;   zinconsistent numbers of samplesr   zgot <\w+ 'int'>zgot <\w+ 'object'>Expected sequence or array-like)r    r@   r   rQ   r   r   r   r   r   rN   r   r   r_   r]   test_check_consistent_lengthr  q  s&   QC!qcA3444aVq!fX.Ac
CCCQCrx}}bmF6K6KLLL	z)J	K	K	K - -A,,,- - - - - - - - - - - - - - -	y(:	;	;	; + +A***+ + + + + + + + + + + + + + +	y(=	>	>	> 2 2A1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
y	!	! 5 5A4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
y(I	J	J	J A AA(=(?(?@@@A A A A A A A A A A A A A A A A A AsZ   B((B,/B,C--C14C1D>>EE"%FFF9G%%G),G)c                      	 dd l } t          j        g dg dg dg          }|                     |g d          }t	          |           d S # t
          $ r t          d          w xY w)Nr   r  r  r  )r   r   r   r   zPandas not found)r   r@   r   r   r    ImportErrorr
   )r   rW   r  s      r]   "test_check_dataframe_fit_attributer    s    +HiiiIII677||A'8'8'8|99%%%%% + + +)***+s   A	A A'c                     t          j        dt           j        g          } t          j        t
                    5  t          |            d d d            n# 1 swxY w Y   t          j        d           t          |            t          j        d           t          j        t
                    5  t          |            d d d            d S # 1 swxY w Y   d S )Nr   T)assume_finiteF)	r@   r   infr   r   r   r!   sklearn
set_configro   s    r]   test_suppress_validationr    sB   
!RVA	z	"	"  !              T****aU++++	z	"	"  !                 s#   AAA3CCCc                     t          d          } t          |                     g d          d          }t          |t	          j        g d                     |                     g d                              d          }t          |d d          }t          |t	          j        g dt                               d S )	Nr   r  Fr   r   category)r8   r   r7   )r   r   r  r   r@   r   rE   rN   )r   resss      r]   test_check_array_seriesr    s    	h		B
bii			**e
<
<
<CsBHYYY//000 			///""))*55A
atu
5
5
5CsBH___FCCCDDDDDr_   r8   
bool_dtype)rH   booleanc                 |   |dk    rt          dd          }nt          d          }|                    g dg d|                    g d|          d	g d	
          }t          ||           }|j        t
          j        k    sJ t          j        g dg dg dgt                    }t          ||           d S )Nr  r   1.0r   r  )r   r=    @TFTr7   )r   r   rH   r  )      ?        r  )       @r=   r  )      @r  r  )
r   r   r  r   r8   r@   rG   r   r   r   )r8   r  r   dfr   expected_arrays         r]   'test_check_dataframe_mixed_float_dtypesr    s     Y(u555(##	99"]]II111IDD	
 	

 )(( 
 
 
B %(((E;"*$$$$X	///???;5  N !77777r_   c                     t          d          } |                     dg di          }t          |d          }|j        t          j        k    sJ t          |dgdgdgg           |                     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           dS )z7Check that dataframe with bool return a boolean arrays.r   rH   r  Nr7   TFr  )rH   r   r   r  r   rc   r   r;   r5   )r   r   r   r8   r@   bool_r   rF   r   r  r   s      r]   #test_check_dataframe_with_only_boolr    s    	h		B	v2223	4	4B$'''E;"(""""uvw7888 
$$$YYY77 
 
 
B ),,,E;"(""""u1v1v1v677777r_   c                      t          dd          } |                     d|                     g dd          i          }t          |d          }|j        t
          j        k    sJ t          |d	gd
gd	gg           dS )zFCheck that dataframe with boolean return a float array with dtype=Noner   r  r   rH   r  r  r7   NTF)r   r   r  r   r8   r@   rG   r   r  s      r]   &test_check_dataframe_with_only_booleanr    s    	h5	1	1	1B	vryy)<)<)<IyNNO	P	PB$'''E;"*$$$$uvw788888r_   c                       e Zd Zd ZdS )DummyMemoryc                     |S r[  r   )r\  funcs     r]   cachezDummyMemory.cache  s    r_   N)r   r^  r_  r  r   r_   r]   r  r    s#            r_   r  c                       e Zd ZdS )WrongDummyMemoryN)r   r^  r_  r   r_   r]   r  r    s        Dr_   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            n# 1 swxY w Y   t                      }d                    |          }t          j        t
          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Ncache_directoryzf'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='1' instead.r   rc   zg'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='{}' instead.)r"   locationr  r   r   r   r  r   )memorydummyr  s      r]   test_check_memoryr    s   +,,F?/////$F?"""MME%  FU????	2  
z	-	-	-  Q              E	3396%==  
z	-	-	-  U                 s$   5BBBC77C;>C;r:   c                    t          j        d          }t          |d          5 }t          ||           }t          j        ||          |  k    sJ |j        d         | k    sJ 	 d d d            d S # 1 swxY w Y   d S )N)rk   rk   r)	mmap_moder9   	WRITEABLE)r@   rA   r3   r   may_share_memoryr   )r:   rW   X_memmapr   s       r]   test_check_array_memmapr    s    
A	A	%	%	% 4t444	"8Y77HEEEE{+t333334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   AA55A9<A9c                 f   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            d S # 1 swxY w Y   d S )	N)rc   rc   r   r   )r   r   r   r   r   r   r   r?   z	Negative r   )r@   r   r#   r   r   r   )r   r   rW   s      r]   test_check_non_negativer    s    	,,,lllLLLIJJAq		Aq"AA  Aq"AdGq		A	z	5	5	5 " "1b!!!" " " " " " " " " " " " " " " " " "s   B&&B*-B*c                  d   t          j        d          } d }d}t          j        t          |          5  t          | |           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          | |t                                 d d d            d S # 1 swxY w Y   d S )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   )r@   rA   r   r   r   r   r   )rW   r   r  s      r]    test_check_X_y_informative_errorr  .  s-   
AA
GC	z	-	-	-  !Q               TC	z	-	-	- ; ;!Q"7"9"9::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s#   AAA9B%%B),B)c                  (    G d d          }  |             }t          |          t          |          k    sJ  G d d          }t          j        t          d          5  t           |                       d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS )Jtest_retrieve_samples_from_non_standard_shape.<locals>.TestNonNumericShapec                     d| _         d S N)znot numericrv   r|  s    r]   __init__zStest_retrieve_samples_from_non_standard_shape.<locals>.TestNonNumericShape.__init__<      )DJJJr_   c                 $    t          g d          S )Nr  )lenr|  s    r]   __len__zRtest_retrieve_samples_from_non_standard_shape.<locals>.TestNonNumericShape.__len__?  s    yyy>>!r_   N)r   r^  r_  r  r  r   r_   r]   TestNonNumericShaper  ;  s2        	* 	* 	*	" 	" 	" 	" 	"r_   r  c                       e Zd Zd ZdS )Jtest_retrieve_samples_from_non_standard_shape.<locals>.TestNoLenWeirdShapec                     d| _         d S r  r  r|  s    r]   r  zStest_retrieve_samples_from_non_standard_shape.<locals>.TestNoLenWeirdShape.__init__G  r  r_   N)r   r^  r_  r  r   r_   r]   TestNoLenWeirdShaper  F  s#        	* 	* 	* 	* 	*r_   r  r  r   )r$   r  r   r   r   )r  rW   r  s      r]   -test_retrieve_samples_from_non_standard_shaper  :  s   " " " " " " " " 	A??c!ff$$$$* * * * * * * * 
y(I	J	J	J , ,((**+++, , , , , , , , , , , , , , , , , ,s   "BBBrs   )r;   r5   g      @r<   c           	          t          j                    5  t          j        d           t          | dt          j        ddd          }ddd           n# 1 swxY w Y   || k    sJ dS )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simplefilterr%   numbersReal)rs   scalars     r]   test_check_scalar_validr  N  s     
	 	"	" 	
 	
g&&&%
 
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Q;;;;;;s   4AAAzJx, target_name, target_type, min_val, max_val, include_boundaries, err_msg
test_name1rk   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           n# 1 swxY w Y   t	          |j                  t	          |          k    sJ t          |j                  t          |          k    sJ dS )zLTest that check_scalar returns the right error if a wrong input is
    givenr  N)r   r   	Exceptionr%   strr   type)rs   target_namer  r  r  r  r   raised_errors           r]   test_check_scalar_invalidr  _  s    l 
y	!	! 
\#1	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 |!""c'll2222"##tG}}444444s   <A A 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 }|Wt          j                    5  t          j        dt                     t	          | |          }d d d            n# 1 swxY w Y   n?t          j        ||          5  t	          | |          }d d d            n# 1 swxY w Y   t          ||           d S )Nr  )r  r   )r  r  r  r2   r&   r   rk  r   )lambdasexpected_lambdasw_typew_msgr  lambdas_fixeds         r]    test_check_psd_eigenvalues_validr    sF     ~$&& 	 	!'+BCCC2  M	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 \&... 	 	2  M	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 $m44444s#   ,AAA4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                     t          j        ||          5  t          |            d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r&   )r  err_typer   s      r]   "test_check_psd_eigenvalues_invalidr  <  s     
xw	/	/	/ ( (w'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   488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            n# 1 swxY w Y   d}t          j        t          |
          5  t          t          j        d          t          j        d                     d d d            n# 1 swxY w Y   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            d S # 1 swxY w Y   d S )Nr6   r;   r   )r<   rc   ro   )r<   r;   r<   r  z)Sample weights must be 1D array or scalarr   )r;   rk   r  z/sample_weight.shape == \(4,\), expected \(2,\)!rk   r7   ir   z1Negative values in data passed to `sample_weight`T)only_non_negative)r@   rA   r   r)   r   r   r   r   rD   r8   r   rG   r$   )r   r  rW   r   s       r]   test_check_sample_weightr  I  s^   GBKK!$M">2222("'&//JJJM~.... )AAAMM271::... )@@@MM1rwqzz>222 
z)T	U	U	U A ARWV__@@@@A A A A A A A A A A A A A A A =C	z	-	-	- < <RWQZZ276??;;;;< < < < < < < < < < < < < < < 	AGARZ000M(::M"*,,,, 	c"""A(q@@@M"*,,,, 	AGLOO,,MM"AG	z	1	1	1 G G]AFFFFG G G G G G G G G G G G G G G G G Gs6   6E		EE16F33F7:F79KK KrS   c                     t          j        d                              dd          } | |           | |          }}t          ||          sJ d S )Nr  r5   r@   rC   rl   r*   rS   basers   r   s       r]   !test_allclose_dense_sparse_equalsr$  u  sT    9Q<<1%%D74==''$--qA!!Q'''''''r_   c                     t          j        d                              dd          } | |           | |dz             }}t          ||          rJ d S )Nr  r5   rc   r!  r"  s       r]   %test_allclose_dense_sparse_not_equalsr&  |  sZ    9Q<<1%%D74==''$(++qA%a+++++++r_   c                     t          j        d                              dd          } | |dz             }d}t          j        t
          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr  r5   rc   zFCan only compare two sparse matrices, not a sparse matrix and an arrayr   )r@   rC   rl   r   r   r   r*   )rS   rs   r   r  s       r]    test_allclose_dense_sparse_raiser(    s    
	!Q""AAA
RC	z	-	-	- % %q!$$$% % % % % % % % % % % % % % % % % %s   A22A69A6c                     t           dddd            } t          j        t          d          5   | ddd           d d d            n# 1 swxY w Y   t          j        t          d          5   | dddd	           d d d            n# 1 swxY w Y   t           ddddd
d            }t          j        t          d          5   |dd           d d d            n# 1 swxY w Y   t           dddd            }t          j        t          d          5   |dd           d d d            d S # 1 swxY w Y   d S )Nrc   r   dc                    d S r[  r   r   r   r   r+  s       r]   f1z=test_deprecate_positional_args_warns_for_function.<locals>.f1      r_   Pass c=3 as keyword argsr   r;   r5   Pass c=3, d=4 as keyword argsrk   )r   r   r+  c                    d S r[  r   r-  s       r]   f2z=test_deprecate_positional_args_warns_for_function.<locals>.f2  r/  r_   zPass b=2 as keyword argsc                    d S r[  r   r-  s       r]   f3z=test_deprecate_positional_args_warns_for_function.<locals>.f3  r/  r_   )rc   r(   r   rk  FutureWarning)r.  r3  r5  s      r]   1test_deprecate_positional_args_warns_for_functionr8    s   1       
m+F	G	G	G  
1a               
m+K	L	L	L  
1aA                Q!q       
m+F	G	G	G  
1a                1       
m+F	G	G	G  
1a                 sG   A

AA0BBBC  C$'C$D44D8;D8c                      t          d          d             } t          j        t          d          5   | dd           d d d            d S # 1 swxY w Y   d S )N1.1)versionc                    d S r[  r   )r   r   s     r]   r.  zEtest_deprecate_positional_args_warns_for_function_version.<locals>.f1  r/  r_   z,From version 1.1 passing these as positionalr   rc   r;   r6  )r.  s    r]   9test_deprecate_positional_args_warns_for_function_versionr=    s    ...  /. 
L
 
 
   	1a                 s   AAAc                  @    G d d          } t          j        t          d          5   | ddd           d d d            n# 1 swxY w Y   t          j        t          d          5   | dddd	           d d d            n# 1 swxY w Y    G d
 d          }t          j        t          d          5   |ddd           d d d            n# 1 swxY w Y   t          j        t          d          5   |dddd	           d d d            d S # 1 swxY w Y   d S )Nc                   ,    e Zd Zedddd            ZdS ):test_deprecate_positional_args_warns_for_class.<locals>.A1rc   r*  c                    d S r[  r   r\  r   r   r   r+  s        r]   r  zCtest_deprecate_positional_args_warns_for_class.<locals>.A1.__init__  r]  r_   Nr   r^  r_  r(   r  r   r_   r]   A1r@    s=        	#&'1 	 	 	 	 
$	#	 	 	r_   rD  r0  r   rc   r;   r5   r1  rk   c                   .    e Zd Zeddddd            ZdS ):test_deprecate_positional_args_warns_for_class.<locals>.A2rc   r*  c                    d S r[  r   rB  s        r]   r  zCtest_deprecate_positional_args_warns_for_class.<locals>.A2.__init__  r]  r_   N)rc   rc   rC  r   r_   r]   A2rF    sA        	#	!q 	 	 	 	 
$	#	 	 	r_   rH  )r   rk  r7  )rD  rH  s     r]   .test_deprecate_positional_args_warns_for_classrI    s]          
 
m+F	G	G	G  
1a               
m+K	L	L	L  
1aA                     
 
m+F	G	G	G  
1a               
m+K	L	L	L  
1aA                 sG   AA
A)BBB7CCC7DDDr3  r5   c                 r   t           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 sJ |d	         t          |d	         |          k    sJ t          |d
         t          |d
         |                     t          |d         t          |d         |                     d S )Nrk   r;   )rc   r;   r5   rk   rc   xxx)r  r   
sparse-col
sparse-row
scalar-int
scalar-strNoner   )rM  rN  rO  rP  r  r   rL  )r@   randomrandnr   rQ   rR   r   r/   r  rangerv   r   r   r   )r3  rW   
fit_paramsr   indices_keys         r]   test_check_fit_paramsrW    sG   
	1A,,,''mLLL113mLLL11 J q*g66F!-ww4agaj8I8I3J3JHA . .c{jo-----&>^Jv,>IIIIIIvgz'7JH(U(UVVV |nZ-ExPP    r_   	sp_format)Tr   r.  r   r/  c                     t          j        d          }t          dd          }|j        j                            |          }t          ||           }| du rd} t          j        |          sJ |j	        | k    sJ t          ||           d S )Nr   r6   r5   r)  Tr   )r   r   r   r   sparsefrom_spmatrixr   rQ   rm  r   r   )rX  r   sp_matsdfr   s        r]   "test_check_sparse_pandas_sp_formatr^    s     
	X	&	&B"2q))F
,

+
+F
3
3CI666FD	;v=I%%%% 00000r_   zntype1, ntype2)	)
longdoubler  )r  rD   )rD   double)rJ   rB   )rB   long)byterL   )ushortrM   )rM   uint64)rK   rI   c                    t          j        d          }|                    |j                            g d| d          |j                            g d|d          d          }t          |j                  t          d          k     rKd}t          j        t          |	          5  t          |d
dg           ddd           dS # 1 swxY w Y   dS t          |d
dg           dS )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   rc   r   r   r8   
fill_valuerc   r   rc   col1col2r:  z3Pandas DataFrame with mixed sparse extension arraysr   r   r.  r)  N)
r   r   r   arraysSparseArrayr   __version__r   r   r   )ntype1ntype2r   r  r   s        r]    test_check_pandas_sparse_invalidrr    s@   & 
	X	&	&B	I)))))6a)PPI)))))6a)PP	
 	

 
B R^$$}U';';;;G]:W555 	: 	:5%.9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:
 	Buen555555s   )C

CCz ntype1, ntype2, expected_subtype	longfloatr_  r  halfr  rD   r`  rG   rI   rb  shortrJ   intcrB   intpra  r   rF   longlongint_ubyterK   rL   rc  uintcrM   uintrd  uintp	ulonglongc                 0   t          j        d          }|                    |j                            g d| d          |j                            g d|d          d          }t          |ddg	          }t          j        |j        |          sJ d S )
Nr   rf  r   rg  ri  rj  r   r.  r)  )	r   r   r   rm  rn  r   r@   
issubdtyper8   )rp  rq  expected_subtyper   r  r  s         r]   test_check_pandas_sparse_validr    s    0 
	X	&	&B	I)))))6a)PPI)))))6a)PP	
 	

 
B b
7
7
7C=$45555555r_   constructor_name)r  r  r   	dataframe
sparse_csr
sparse_cscc                 `    g dg dg}t          ||           }t          |          dk    sJ dS )z$Check _num_features for array-likes.r  r  r5   N)r   r+   )r  rW   s     r]   test_num_featuresr  ?  sE     
IIIA1.//Aq      r_   r  r   )FTF)r  g333333@g      @r   r   r   )r   r  rH   r   dict)r  r  r   seriesc                    t          | |          } |dk    rd}n|dk    rd}n|}d| }t          | d          r|dz  }nAt          | d         t                    r|d	z  }n t          | d         t                    r|d
z  }t          j        t          t          j	        |                    5  t          |            d d d            d S # 1 swxY w Y   d S )Nr   znumpy.ndarrayr  zpandas.core.series.Series5Unable to find the number of features from X of type rv   z with shape (3,)r   z" where the samples are of type strz# where the samples are of type dictr   )r   r9  rm   r  r  r   r   r   reescaper+   )rW   r  expected_type_namemessages       r]   &test_num_features_errors_1d_containersr  J  sI    	1.//A7"",	X	%	%8-T@RTT  q' 9%%	AaD#		 977	AaD$		 988	y	'(:(:	;	;	;  a                 s   .CCC)rc   r   Fr  )r   r  rH   r   c                     dt          |           j         }t          j        t          |          5  t          |            d d d            d S # 1 swxY w Y   d S )Nr  r   )r	  r_  r   r   r   r+   )rW   r  s     r]    test_num_features_errors_scalarsr  k  s    
X$q''BV
X
XC	y	,	,	,  a                 s   AAAnamesr+  )zlist-intrS  default
MultiIndexc                    t          j        d          }|                    ddgddgddgg|           }t          j                    5  t          j        dt                     t          |          } d	d	d	           n# 1 swxY w Y   | J d	S )
zGet feature names with pandas dataframes without warning.

    Column names with consistent dtypes will not warn, such as int or MultiIndex.
    r   rc   r;   rk   r<   rb   r  r  N)r   r   r   r  r  r  r7  r-   )r  r   rW   s      r]   2test_get_feature_names_pandas_with_ints_no_warningr  r  s     
	X	&	&B
q!fq!fq!f-u==A		 	"	" & &g}555"1%%& & & & & & & & & & & & & & & =====s   *A>>BBc                      t          j        d          } d t          d          D             }|                     g dg dg|          }t	          |          }t          ||           dS )z)Get feature names with pandas dataframes.r   c                     g | ]}d | S )col_r   )r   r  s     r]   r   z1test_get_feature_names_pandas.<locals>.<listcomp>  s    ,,,azazz,,,r_   r5   r  r  r  N)r   r   rS  r   r-   r   )r   r   rW   feature_namess       r]   test_get_feature_names_pandasr    sp    		X	&	&B,,588,,,G
iii+W==A&q))M}g.....r_   c                  `    t          j        g dg dg          } t          |           }|J dS )z/Get feature names return None for numpy arrays.r  r  N)r@   r   r-   )rW   r  s     r]   test_get_feature_names_numpyr    s8    
)))YYY'((Aq!!E=====r_   znames, dtypesz['int', 'str']pizzaz['list', 'str']zint-strzlist-strc                 $   t          j        d          }|                    ddgddgddgg|           }t          j        d| d	          }t          j        t          |
          5  t          |          } ddd           dS # 1 swxY w Y   dS )zAGet feature names errors when the feature names have mixed dtypesr   rc   r;   rk   r<   rb   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)r   r   r   r  r  r   r   r-   )r  r   r   rW   r  s        r]   %test_get_feature_names_invalid_dtypesr    s     
	X	&	&B
q!fq!fq!f-u==A
)	?$	? 	? 	? C 
y	,	,	, & &"1%%& & & & & & & & & & & & & & & & & &s   (BB	B	c                   $    e Zd ZddZd ZddZdS )PassthroughTransformerNc                 4    |                      |d           | S )NT)reset)_validate_datar  s      r]   r   zPassthroughTransformer.fit  s     AT***r_   c                     |S r[  r   )r\  rW   s     r]   	transformz PassthroughTransformer.transform  s    r_   c                 "    t          | |          S r[  )r.   )r\  input_featuress     r]   get_feature_names_outz,PassthroughTransformer.get_feature_names_out  s    &t^<<<r_   r[  )r   r^  r_  r   r  r  r   r_   r]   r  r    sK             = = = = = =r_   r  c                     t          j        g dg          } t                                          |           }|                                }t          |g d           ddg}t          j        t          d          5  |                    |           ddd           n# 1 swxY w Y   |`	t          j        t          d          5  |                                 ddd           dS # 1 swxY w Y   dS )	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)
r@   r   r  r   r  r   r   r   r   n_features_in_)rW   r  r  incorrect_len_namess       r]   test_check_feature_names_inr    sw   
///"##A
 
"
"
&
&q
)
)C%%''Eu000111 $-	z)U	V	V	V 7 7!!"56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 		z)K	L	L	L $ $!!###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s$   >B  B$'B$C**C.1C.c                     t          j        d          } g d}|                     g dg|          }t                                          |          }|                                }t          |g d           t          j        t          d          5  |                    g d           ddd           dS # 1 swxY w Y   dS )	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)	r   r   r   r  r   r  r   r   r   )r   r  r  r  s       r]   "test_check_feature_names_in_pandasr    s
   		X	&	&BOOE	'	7	7B
 
"
"
&
&r
*
*C%%''Euooo...	z)I	J	J	J 6 6!!"4"4"45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   B::B>B>c                      t          d          } t          |                     ddg          d          }t          j        ddg          }|j        |j        k    sJ t          ||           dS )zRegression test for gh-25145r   TFr   N)r   r   r  r@   r   r8   r   )r   r  expecteds      r]   #test_boolean_series_remains_booleanr    so    	h		B
biiu..%
@
@
@Cxu&&H9&&&&sH%%%%%r_   array_namespaceznumpy.array_apizcupy.array_apic                    t          j        |           }|                    |j        ddgd|j        dgg|j                  }t          d          5  t          j        t          d          5  t          |           d	d	d	           n# 1 swxY w Y   d	d	d	           n# 1 swxY w Y   |                    |j	        ddgd|j	        dgg|j                  }t          d          5  t          j        t          d
          5  t          |           d	d	d	           n# 1 swxY w Y   d	d	d	           d	S # 1 swxY w Y   d	S )z9Checks that Array API arrays checks non-finite correctly.rc   r   r5   r7   T)array_api_dispatchr   r   Nzinfinity or a value too large)
r   r   rx   rT   rD   r   r   r   r   r  )r  xpX_nanX_infs       r]   )test_check_array_array_api_has_non_finiter    s;    
	_	-	-BJJABFA7rzJJJE	4	0	0	0  ]:-BCCC 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               JJABFA7rzJJJE	4	0	0	0  ]:-LMMM 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sl   B"/B?B"B	B"B	B""B&)B&+D;D#D;#D'	'D;*D'	+D;;D?D?)__doc__r  r  r  tempfiler   	itertoolsr   operatorr   r   r   numpyr@   scipy.sparserZ  rQ   sklearn._configr   sklearn.utils._testingr   r	   r
   r   r   r   r   sklearn.utilsr   r   r   r   r   sklearn.utils._mockingr   sklearn.utils.fixesr   sklearn.utils.estimator_checksr   sklearn.random_projectionr   sklearn.linear_modelr   sklearn.neighborsr   sklearn.ensembler   sklearn.svmr   sklearn.datasetsr   r   sklearn.utils.validationr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   sklearn.baser0   r  sklearn.exceptionsr1   r2   r3   r^   markparametrizerQ  r7  tocsrrh   rp   r}   r   r  rT   rx   r   r   r   r   r   r   rN   r   r   r   rD   rG   r  r	  r  r  r  r'  r+  r-  fixturer>  rA  rC  rK  rV  ra  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rR   rU  rh  ri  rg  
dia_matrixr  r  r  r  r   r   r  IntegralrH   r   r   r  _psd_cases_validvalueskeysr  _psd_cases_invalidr  r  r$  r&  r(  r8  r=  rI  rW  r^  rr  floatingintegerunsignedintegerr  r  r  r  rS  r  r  r  r  r  r  r  r  r  r   r_   r]   <module>r     s   * *   				 ' ' ' ' ' '                              * * * * * * 5 5 5 5 5 5 2 2 2 2 2 2 + + + + + + 5 5 5 5 5 5 ? ? ? ? ? ? 2 2 2 2 2 2 5 5 5 5 5 5 F F F F F F F F F F # # # # # # $ $ $ $ $ $ 0 0 0 0 0 0 - - - - - - 6 6 6 6 6 6 ; ; ; ; ; ; . . . . . . 2 2 2 2 2 2 2 2 2 2 2 2       ' ' ' ' ' ' ( ( ( ( ( (                                       ( ' & & & & &  F F F F F F F F - - - - - -'% '% '%T 	 0 0 9 9WRWR^^=Q=Q=S=SUVV1 1 WV1G G G   , , ,& "&+1FQVX  BJ#>??/ / @? / 4	T45	d78	$(OP	k#>?	T/0	d23	d23F>		
 
Q,- & BJ#>??
 
 @?' (
 'B'B'BCCBJ#>??%1 %1 @? DC%1P
: 
: 
:  BHq"&k]##!	

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

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








	 
" 
" 
"	; 	; 	;, , ,( nnn--  .-  P IIJJ	
 LINOO	
 ILMM	
 DMIQRR	
 J677	
 J677	
 J677	
 J677	
 !JM 	
 J# 	
 J# 	
Cmp pb5 5cp pb5& !Q(($3!1a&))828QF+;+;T2F!QV	 %hbh1v&6&68OQST!U2:...!Qrz***K	" 	!VBJ///!Qrz***K	" 	!QH	-  > .D		 	 	"	"##""$$%%   
 *T5M::5 5 ;: 54 	9 	7 	4 	$bj1114  	$rz2224 +  :  D		"	"	$	$%%$$&&''   
( ( 
()G )G )GX RXr}bm$LMM( ( NM( RXr}bm$LMM, , NM, R]BM$BCC% % DC%  6    0 TAq6N33  430 &H&H&HII1 1 JI1$ 
 
 
 6 6 6. &	lBK0	FBK(	9bk*	9bk*	$	'2:&	"*%	$	
#	*bj)	$	'2-.	8R/0	(B./	2-.	+r12! *6 6+ *6 GGG ! !	 ! 		
qC8c1X& 	0//  
 
 +-Q-Q-QRR  SR
 
* 2228W8W8WXX  YX 	T%%((^^UU1XXtsCj3*%=>666   
  
/ / /   
q#$
C:	 12 
J   & & &"	= 	= 	= 	= 	=] 	= 	= 	=$ $ $$6 6 6& & & *->@P,QRR  SR  r_   