
    /ii                    "   d dl Z d dlZd dlZd dlmZ d dlZd dlm	Z	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 d d
lmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZE d dlFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZN  ejO                    ZPejQ        R                    d           ZSdZTdZUeSV                    ddeT          ZWeSV                    ddeT          ZXeSY                    eUeT          eXz  eWz   ZZeZd ddf         [                    deT          Z\eZddd f         [                    eUd          Z]e\^                                Z_e]^                                Z`d Zad Zbd Zcd Zdd Zeejf        g                    g d ee                      ejf        g                    dg d           d!                         Zhejf        g                    g d ee                      ejf        g                    d" e8            e7#          d$                         Zid% Zjejf        g                    d&dgeIz   eJz             ejf        g                    d'd(d)g          d*                         Zkejf        g                    d+ e$d(,           e#d(-          g          ejf        g                    d&dgeIz   eJz             ejf        g                    d'd(d)g          ejf        g                    d.ejl        ejm        g          ejf        g                    d/g d0          d1                                                             Znejf        g                    d2g d3          ejf        g                    d4g d5          ejf        g                    d.ejl        ejm        g          ejf        g                    d&dgeIz   eJz             d6                                                 Zod7 ZpeBd8             Zqd9 Zrd: Zsd; Ztd< Zud= Zvejf        g                    d&eIeJz             d>             Zwejf        g                    d?d)dg          ejf        g                    d&eIeJz             d@                         Zxejf        g                    d?d)dg          dA             ZydB Zzejf        g                    dC e8            e7#          ejf        g                    dDeEgeD#          ejf        g                    dE e             ed)F           e             ed)F           e             e dGH           e dIH           e dJH           e            g	eD#          dK                                     Z{ejf        g                    dC e8            e7#          ejf        g                    dDeEgeD#          ejf        g                    d?d)dg          dL                                     Z|dM Z}dN Z~dO ZdP Zejf        g                    d?d)dg          ejf        g                    d&eIeJz             dQ                         Zejf        g                    dRd)d(g          ejf        g                    dSd)d(g          ejf        g                    d&dgeIz   eJz             dT                                     ZdU Zejf        g                    d&eIeJz             dV             Zejf        g                    d&eIeJz             dW             Zejf        g                    d&eJeIz             dX             Zejf        g                    d&eJeIz             dY             ZdZ Zd[ Zejf        g                    d\d)d(g          ejf        g                    d]d)d(g          ejf        g                    d^ejQ        Y                    dd_           e	j        dd_d`a          g          db                                     Zejf        g                    dceJ          dd             Zde Zejf        g                    dfg dg          ejf        g                    dhg di          dj                         Zejf        g                    dceJ          dk             Zdl Zdm Zejf        g                    dneI          do             Zejf        g                    dneI          dp             Zejf        g                    dneI          dq             Zdr Zds Zdt Zejf        g                    dneI          du             Zdv Zejf        g                    dneI          dw             Zdx Zdy Zejf        g                    dzd{d|g          d}             Zd~ Zejf        g                    dceJ          d             Zd Zd Zd Zd Zejf        g                    d&eIeJz             d             Zd Zejf        g                    dceJ          d             Zd Zejf        g                    dceJ          d             Zd Zejf        g                    dg d          ejf        g                    dceJ          d                         Zejf        g                    dg d          ejf        g                    d&eHeIz   eKz             d                         Zejf        g                    dceJ          d             Zejf        g                    dceJ          d             Zejf        g                    dej        egeIz   eJz             d             Zejf        g                    dC e8                      d             Zd Zd Zd Zd Zd Zejf        g                    d&eHeIz   eJz             d             Zd Zejf        g                    dddg          d             Zejf        g                    dddg          ejf        g                    dd)d(g          ejf        g                    d^e]eZg          d                                     Zd Zd Zd Zejf        g                    d^eZ ej        eZ           ej        eZ            ej        eZj                  g          d             Zejf        g                    dddg          d             Zd Zd Zejf        g                    dg d          d             Zd Zd Zejf        g                    dddg          d             Zejf        g                    dddg          ejf        g                    dd)d(g          d                         Zejf        g                    dddg          ejf        g                    dd)d(g          d                         Zejf        g                    dddg          ejf        g                    dd)d(g          d                         Zd Zejf        g                    d e	jQ        dddd           gd eJD             z             d             Zejf        g                    dddg          d             Zejf        g                    dej        geIz   eJz             d             Zd Zd Zejf        g                    deee#e$e"e!g          d             Zejf        g                    deee#e$e"e!e eg          d             Zd Zejf        g                    dd)d(g          d             Zejf                            eGdìĦ          dń             Zejf                            eL edƦ          k     dǬĦ          dȄ             ZdɄ ZdS )    N)sparsestats)config_contextdatasets)clone)NotFittedError)parse)linear_kernel)cross_val_predict)Pipeline)	BinarizerKernelCentererMaxAbsScalerMinMaxScaler
NormalizerPowerTransformerQuantileTransformerRobustScalerStandardScaleradd_dummy_featuremaxabs_scaleminmax_scale	normalizepower_transformquantile_transformrobust_scalescale)BOUNDS_THRESHOLD_handle_zeros_in_scale)SVR)gen_batchesshuffle)_convert_to_numpy_get_namespace_device_dtype_ids)yield_namespace_device_dtype_combinations)	_array_api_for_tests_convert_containerassert_allcloseassert_allclose_dense_sparseassert_almost_equalassert_array_almost_equalassert_array_equalassert_array_lessskip_if_32bit)_get_check_estimator_ids check_array_api_input_and_values)_IS_WASMCOO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERSLIL_CONTAINERS
sp_version)mean_variance_axis        size
   c                 N    t          | d          r|                                 } | S )Ntoarray)hasattrr@   as    k/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/sklearn/preprocessing/tests/test_data.pyr@   r@   V   s&    q) IIKKH    c                 @    t          j        |           j        d         S )Nr   )npasarrayshaperB   s    rD   _check_dim_1axisrJ   \   s    :a==q!!rE   c                 T    ||k    r| dz   |z  |k    sJ d S | |z  ||z
  z   |k    sJ d S )Nr;    )ibatch_start
batch_stopn
chunk_sizen_samples_seens         rD   assert_correct_incrrS   `   sP    QA#~555555:~k!9:nLLLLLLrE   c                     ddg} ddg}t          | |          D ]\  }}t                              ||          }t                              |          }t                      }t                              |d          dz  }t	          j        t                    5  |                    |||           d d d            n# 1 swxY w Y   d S )N      r;   sample_weight)ziprngrandnr   pytestraises
ValueErrorfit)
n_samplessn_featuress	n_samples
n_featuresXyscalersample_weight_notOKs           rD   9test_raises_value_error_if_sample_weights_greater_than_1drh   g   s    QJa&K!$Z!=!= 	@ 	@	:IIi,,IIi  !! "ii	155:]:&& 	@ 	@JJq!+>J???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@	@ 	@s   B==C	C	c            	   #     K   g dg dgg dg dg dgddgfg dg dgg dg dg dg dgt          j        ddg          fdt           j        dgt           j        t           j        dggdt           j        dgt           j        t           j        dgt           j        t           j        dgt           j        t           j        dggt          j        ddg          ffE d {V  d S )	N)r;   rU   rV   )                @      ?r;   r   r;   )r   r   r;   r;   rV   )rG   arraynanrL   rE   rD   _yield_xw_x_sampleweightrr   y   s      YY			"YY			999-#J	
 YY			"YY			999iii8HaV	
 ^bfbfa01BFA###	 HaV		
         rE   )Xwrd   rX   array_constructor)rp   
sparse_csr
sparse_cscc                 n   |                     d           }t          ||          }t          | |          } t          j        | j        d                   }t          |          }|                    | ||           t          j        |j        d                   }t          |          }|                    ||           g dg dg}	t          |j        |j                   t          |j	        |j	                   t          |
                    |	          |
                    |	                     d S )Nr   r   	with_meanrW         ?      @      @r}   g      @g      @)
startswithr'   rG   onesrI   r   r_   r*   mean_var_	transform)
rs   rd   rX   rt   ry   ywscaler_wre   rf   X_tests
             rD   "test_standard_scaler_sample_weightr      s     &00:::I1/00A	B 1	2	2B 
!		B	222HLLR}L555 	
Ai000F
JJq!oo/Fhn555X]333((00(2D2DV2L2LMMMMMrE   znamespace, dev, dtype)idsc           	      f   t          ||          }t          j        |                              |d          }t          j        |j        d                                       |d          }t          j        |                               |d          } t          j        | j        d                                       |d          }t          j        g dg dg                              |d          }	t                      }
|
                    ||           t                      }|                    | ||           |                    ||          }|                    ||          }|                    | |          }|                    ||          }|                    |	|          }|                    ||          }t                      }t          d	          5  |                    |||           t          |j        |
          }t          |j        |
          }d d d            n# 1 swxY w Y   t          |j        |           t          |j        |           t                      }t          d	          5  |                    ||           t          |j        |
          }t          |j        |
          }d d d            n# 1 swxY w Y   t          |
j        |           t          |
j        |           t          ||           t          ||           t          d	          5  t          t          |                    |          |
          t          |                    |          |
                     d d d            d S # 1 swxY w Y   d S )NFcopyr   rz   r~   rW   deviceTarray_api_dispatch)xp)r&   rG   rp   astyper   rI   r   r_   rH   r   r#   r   r   r(   r   )rs   rd   rX   	namespacedevdtyper   re   r   r   rf   r   X_xpy_xpXw_xpyw_xp	X_test_xpsample_weight_xpscaler_w_xpw_meanw_var	scaler_xpuw_meanuw_vars                           rD   ,test_standard_scaler_sample_weight_array_apir      s)    
i	-	-B
5u--A

""5u"55A	"		U		/	/B	!			$	$U	$	7	7BX899@@U@SSFF
JJq!HLLR}L555 ::a:$$D::a:$$DJJr#J&&EJJr#J&&E

6#
..Izz-z<< ""K	4	0	0	0 ; ;u4DEEE";#4<<<!+"2r:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
 HNF+++HM5)))   I	4	0	0	0 : :dD!!!#IO;;;"9>b999: : : : : : : : : : : : : : :
 FL'***FK((( GV$$$FE"""	4	0	0	0 
 
i11)<<DDDk33I>>2FFF	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s9   ,AH==IIAKK#&K#AN&&N*-N*c                     t           t          t          t          fD ]O} t                      }|                    |                               | d          }t          | t                    rt          j	        |           } t          |           dk    rt          |j        |                                            t          |j        t          j        t                                t#          |                    d          t          j        t                                t#          |                    d          t          j        t                                nt          |j        |                                            t          |j        |                                            t#          |                    d          t          j        t                                t#          |                    d          d           t#          |                    d          d           |j        | j        d         k    sJ |                    |          }t#          ||            Qt          j        d          } t                      }|                    |                               | d          }t          |j        d           t          |j        d           t#          |                    d          d           t#          |                    d          d           |j        | j        d         k    sJ d S 	NTr   r;   r   axis        rn   rk   r;   )X_1rowX_1colX_list_1rowr   r_   r   
isinstancelistrG   rp   rJ   r*   r   ravelscale_r   rc   r+   mean
zeros_likestdn_samples_seen_rI   inverse_transform)rd   rf   X_scaledX_scaled_backs       rD   test_standard_scaler_1dr      s   fk;7 4 4!!::a==**14*88a 	AA!##aggii888rwz/B/BCCC%hmmm&;&;R]:=V=VWWW%hlll&:&:BM*<U<UVVVVaffhh777quuww777%hmmm&;&;R]:=V=VWWW%hmmm&;&;SAAA%hlll&:&:C@@@%3333 00::!-3333 	AFzz!}}&&qt&44Hc***s+++hmmm33S999hlll22C888!QWQZ//////rE   sparse_containeradd_sample_weightFTc                    t           j                            d          }d}d}| rt          j        |          }nd }d}|t           j        t           j        g}n#t           j        t           j        t           j        g}|D ]}|                    ||                              |          }	| ||	          }	d}t          |          }
|

                    |	|                              |	          }|	j        |j        k    sJ |
j        j        t           j        k    sJ |
j        j        t           j        k    sJ d S )Nr   r>   rV   TFrx   rW   )rG   randomRandomStater   float64float32float16r[   r   r   r_   r   r   r   r   )r   r   rZ   rb   rc   rX   ry   supported_dtyper   rd   rf   r   s               rD   test_standard_scaler_dtyper     s@    )


"
"CIJ 	**I# :rz2:rz2:>  
1 
1IIi,,33E::'  ##AI)444::a}:==GGJJw(.((((|!RZ////}"bj00000
1 
1rE   rf   rx   with_centeringr   constant)r   rn         Y@c                 t   t          |           } t          | t                    r#|r!t          j        | j        j         d           t          j        	                    d          }d}d}|r(t          |                    |          dz            }ni }t          j        ||f||          }	||	n
 ||	          }
 | j        |
fi |                    |
          }t          | t                    r4t!          | j        t          j        |
j        d                   d	
           t!          | j        t          j        |
j        d                              ||
usJ t-          ||
           t          | t                    r0|s0t/          |
| j                  }||
usJ t-          ||
           d S d S d S )Nz# does not yet support sample_weightr   d   r;   r<   rU   rW   )rI   
fill_valuer   Hz>atolrx   )r   r   r   r\   skip	__class____name__rG   r   r   dictuniformfullr_   r   r   r(   r   zerosrI   r   r   r)   r   ry   )rf   r   r   r   r   rZ   rb   rc   
fit_paramsX_arrayrd   r   
X_scaled_2s                rD   &test_standard_scaler_constant_featuresr   ,  s    6]]F&,'' W,= Wv'0UUUVVV
)


"
"CIJ (C(Ca(GHHH


gY
3PUVVVG#+1A1A'1J1JAvz!**z**44Q77H&.)) FRXagaj%9%9EEEE FM27171:#6#67771 1---&.)) 42C 41(8999
""""$Z33333	4 4 4 4rE   rb   )r>   r   i'  average)g|=r;       _Bc                 :   d\  }}t          j        d t          ||dz             D             |          }|j        d         }t          j        | |f|          }||z   |d | dz  d d f<   ||z
  || dz  d d d f<   ||n
 ||          }	t          d                              |	          }
t          j        t           j                  j	        }| |z  |dz  z  | dz  |dz  z  |dz  z  z   }|dz  |k    }t          j
        |          sJ t          |
j        |         ||         k              sJ t          |
j        |         d	           |dd d f         |d
d d f         z
  dk    }t          |
j        t          j        |                   d           t          |
j        t          j        |                   d           t          j        |dz  |k    |          }t          |
j        |         t          j        |
j                  |                    d S )N)i   c                     g | ]}d |z  S )r>   rL   .0rM   s     rD   
<listcomp>z?test_standard_scaler_near_constant_features.<locals>.<listcomp>e  s    FFFr1uFFFrE   r;   r   r   rU   Frx   rn   r:   )rG   rp   rangerI   emptyr   r_   finfor   epsanyallr   r(   r   logical_notlogical_andsqrt)rb   r   r   r   	scale_min	scale_maxscalesrc   rd   r   rf   r   boundswithin_boundsrepresentable_diffcommon_masks                   rD   +test_standard_scaler_near_constant_featuresr   Z  sA    #IyXFFeIy1}&E&EFFFeTTTFaJ
)Z(666A$v-A	Q$v-Ai1n#+aa1A1A!1D1DGe,,,0099F (2:


"C _vqy(9a<#q&+@7A:+MMFAI'M 6-      v{=)VM-BBCCCCCFM-0#666 1aaa41RU8+q0FK/A B BCQGGGFM".1C"D"DEqIII
 .V!35GHHKFM+.0D0D[0QRRRRRrE   c                  *   g d} t          j        |           }| |fD ]u}t          |          }t          |                                d           t          |                                d           t          t          |dd          |           vd S )N)rn         @      @r   r   rn   Fry   with_std)rG   rp   r   r+   r   r   r,   )X_listX_arrrd   r   s       rD   test_scale_1dr     s    !!!FHVEe_ I I88!(--//3777!(,,..#6665eeDDDaHHHH	I IrE   c                     t          j        dt          j        d          t           j                  } t	          j                    5  t	          j        dt                     t          |            d d d            n# 1 swxY w Y   t          t          |           t          j
        d                     t          j        dt          j        d          t           j                  } d}t          j        t          |          5  t          |           }d d d            n# 1 swxY w Y   t          |t          j
        d                     t          j        ddt           j                  } t	          j                    5  t	          j        dt                     t          |           }d d d            n# 1 swxY w Y   t          |t          j
        d                     t          j        dd	t           j                  }d
}t          j        t          |          5  t          |          }d d d            n# 1 swxY w Y   t          |t          j
        d                     t          ||           t          j        t          |          5  t          |d          }d d d            n# 1 swxY w Y   t          |t          j
        d                     t          ||           d S )N   h㈵>r   errorr>   z:standard deviation of the data is probably very close to 0matchg0.++g}Ô%ITz$Dataset may contain too large valuesFr   )rG   r   logr   warningscatch_warningssimplefilterUserWarningr   r+   r   r\   warns)xwarning_messagex_scaledx_small_scaledx_bigx_big_scaledx_big_centereds          rD   (test_standard_scaler_numerical_stabilityr    s   
 	26$<<rz222A 
	 	"	"  g{333a               eAhh444 	BF4LL
333ARO	k	9	9	9  88              h555
F"*---A		 	"	" " "g{333q" " " " " " " " " " " " " " " nbhrll;;; GBRZ000E<O	k	9	9	9 $ $U||$ $ $ $ $ $ $ $ $ $ $ $ $ $ $lBHRLL999lN;;;	k	9	9	9 6 6uu5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6nbhrll;;;nn=====sZ   *A==BBD##D'*D'*F::F>F>%IIIJ77J;>J;c                  D   t           j                            d          } d}d}|                     ||          }d|d d df<   t	                      }|                    |                              |d          }t          j        t          j        |                    rJ |j	        |k    sJ t          |                    d          |dgz             t          |                    d          g d           ||usJ |                    |          }||usJ ||usJ t          ||           t          |d	d
          }t          j        t          j        |                    rJ t          |                    d	          |dgz             t          |d	d          }t          j        t          j        |                    rJ t          |                    d	          |dgz             t          |                    d	          |dgz             ||usJ |                    |                              |d
          }t          j        t          j        |                    rJ t          |                    d          |dgz             t          |                    d          g d           ||u sJ |                     dd          }d|d d df<   t	                      }|                    |                              |d          }t          j        t          j        |                    rJ t          |                    d          |dgz             t          |                    d          g d           ||usJ d S )Nr   rk   rj   r   Tr   r   r   rn   rn   rn   rn   r;   F)r   r   rn   )rG   r   r   r[   r   r_   r   r   isnanr   r+   r   r   r   r   )rZ   rc   rb   rd   rf   r   r   s          rD   test_scaler_2d_arraysr    s   
)


"
"CJI		)Z((AAaaadGFzz!}}&&qt&44Hvbhx(()))))!Y....hmmm33Z3%5GHHHhlll224M4M4MNNN1 ,,X66M!!!!((((mQ///QQ///Hvbhx(()))))hmmm33Y#5FGGGQQ...Hvbhx(()))))hmmm33Y#5FGGGhlll22I4EFFF1zz!}}&&qu&55Hvbhx(()))))hmmm33Z3%5GHHHhlll224M4M4MNNNq====		!QAAaaadGFzz!}}&&qt&44Hvbhx(()))))hmmm33Z3%5GHHHhlll224M4M4MNNN1rE   c                  f   t           j                            d          } |                     ddddg                              t           j                  }t          j        d          5  t                                          |          }|	                    |          }d d d            n# 1 swxY w Y   t                      
                    |                    t           j                            }t          j        t          j        |                    sJ t          ||d	           d S )
Nr   rk   r>   i@ r;   raise)overrU   decimal)rG   r   r   r   r   r   errstater   r_   r   fit_transformr   r   isfiniter+   )rZ   rd   rf   r   X_scaled_f64s        rD   test_scaler_float16_overflowr    s>   
)


"
"C 	ArFA;''..rz::A	'	"	"	" ' '!!%%a((##A&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 "##11!((2:2F2FGGL
 6"+h''(((((
 ha@@@@@@s   +7B..B25B2c                      t          j        g d          } t          | d          }t          | t          j        g d                     t          |t          j        g d                     d S )N)r   gؗҜ<r;   rU   rV   Tr   )r;   r;   r;   rU   rV   )rG   rp   r   r(   )s1s2s     rD   test_handle_zeros_in_scaler    so    	%%%	&	&B		.	.	.BB!4!4!455666B1122222rE   c            
      H   t           } | j        d         }ddd||dz   fD ]}t                                          |           }t                      }t	          t
          |          D ]}|                    | |                   }t          |j        |j                   t          |j	        |j	                   |j
        |j
        k    sJ t          |j        |j                   t          |j        |j                   t          |j        |j                   t          d|          }t                                          | |                   }t                                          | |                   }t          |j        |j                   t          |j	        |j	                   |j
        |j
        k    sJ t          |j        |j                   t          |j        |j                   t          |j        |j                   t                                          |           }t                      }t          t	          t
          |                    D ]D\  }}|                    | |                   }t!          ||j        |j        |||j
                   Ed S )Nr   r;   rU   2   *   rN   rO   rP   rQ   rR   )X_2drI   r   r_   r!   rb   partial_fitr+   	data_min_	data_max_r   data_range_r   min_slice	enumeraterS   startstoprd   rP   rQ   scaler_batchscaler_incrbatchbatch0rM   s           rD   test_minmax_scaler_partial_fitr2    sw    	A	
A!RAF+ ' '
#~~))!,,"nn J77 	< 	<E%11!E(;;KK!,"8+:OPPP!,"8+:OPPP+{/JJJJJ!,":K<STTT!,"5{7IJJJ!,"3[5EFFF q*%%#~~))!F)44"nn006;;!,"8+:OPPP!,"8+:OPPP+{/JJJJJ!,":K<STTT!,"5{7IJJJ!,"3[5EFFF $~~))!,,"nn!+i"D"DEE 		 		HAu%11!E(;;K!K :%*:    		=' 'rE   c            
      0   t           } | j        d         }ddd||dz   fD ]u}t          d                              |           }t          d          }t	          t
          |          D ]}|                    | |                   }t          |j        |j                   |j	        |j	        k    sJ |j
        |j
        k    sJ t          d|          }t                                          | |                   }|dk    rqt          t          j        t          t          j                  |j	                   t          t          j        t          t          j                  |j                   n^t          t          j        | |         d	          |j	                   t          t          j        | |         d	          |j                   t                                          |           }t                      }t)          t	          t
          |                    D ]D\  }}|                    | |                   }t+          ||j        |j        |||j
        
           Et          |j	        |j	                   |j
        |j
        k    sJ wd S )Nr   r;   rU   r   r!  Fr   r   r   r"  )r#  rI   r   r_   r!   rb   r$  r+   r   r   r   r)  rG   r   rc   r   r   r   varr   r*  rS   r+  r,  r-  s           rD    test_standard_scaler_partial_fitr5  H  s    	A	
A!RAF+ *K *K
%u55599!<<$e444 J77 	< 	<E%11!E(;;KK!,"4k6GHHH K$44444+{/JJJJJ q*%%$&&221V9==??%2:6668H   &
"*555{7I    &bfQvYQ&?&?&?AQRRR%qyq)));+=  
 &''++A..$&&!+i"D"DEE 		 		HAu%11!E(;;K!K :%*:     	","3[5EFFF+{/JJJJJJU*K *KrE   c                 4   t           j                            d          }d}d}|                    dd|          }|                    dd|          }|                    ||          |z  |z   }t                                          |          }t                      }|D ]+}	|                    |	                    d	|                    },d
}
t          |j
        |j
        |
           t          |j        |j        |
           t          |j        |j        |
           d}d} | |                    dd|                              t           j                  |z            }t          d                              |          }t          d          }|D ]8}	|	j        d	k    r|	                    d	d          }	|                    |	          }9d
}
|j
        J t          |j        |j        |
           t          |j        |j        |
           d S )Nr   rU   r   g  4&kg  4&kCr<   g     @@    .Ar;   gư>)rtol)r   rV   g@xDFrx   r:   )rG   r   r   r   r[   r   r_   r$  reshaper(   r   r   r   randintr   r   ndim)r   rZ   rc   rb   offsetsr   rd   r.  r/  chunktolr=   r   rf   s                 rD   4test_standard_scaler_partial_fit_numerical_stabilityr?  {  s"    )


"
"CJIkk%Jk77G[[c
[33F		)Z((61G;A!##''**L ""K L L!--emmAz.J.JKK CK%|'9DDDDK$l&7cBBBBK&(;#FFFF
 DEQ40077
CCeKLLA e,,,0033F 5111K 5 5:?? MM!R((E!--e44 C<###K$fk<<<<K&C@@@@@@rE   rX   c                 x    |t          j        dgdgdgdgg                    }| r%t                              |j        d                   } t          ddd          }|                    ||                               |          }t          |	                                |	                                           |
                    |          }t          |	                                |	                                           t          |	                                |	                                           d S )	Nrn   r   r   r   FTry   r   r   rW   )rG   rp   rZ   randrI   r   r$  r   r,   r@   r   )rX   r   rd   null_transformX_nullX_origs         rD   test_partial_fit_sparse_inputrF    s
    	C53%#">??@@A -,,#ee$OOON'''GGQQRSTTFv~~''555--f55Fv~~'')9)9:::v~~''55555rE   c                    t           d dd d f         }| r%t                              |j        d                   } t	                      }t          t          |j        d         d                    D ]\  }}|d |dz   d d f         }|                                }| =t	                                          |          }|	                    ||                   }nQt	                                          || d |dz                      }|	                    ||         | |                   }|
                    |          }t          ||           t          ||           |                    |          }	t          ||	           t          j        |j        d                   }
t          j        t                     j        }t%          |
|j        |z              t%          |
|j        |z              | |dz   |j        k    sJ t          j        | d |dz                      t/          j        |j                  k    sJ d S )Nr   r   r;   rW   )r#  rZ   rB  rI   r   r*  r!   r   r  r$  r   r+   r   rG   r   r   floatr   r-   r   r   r   sumr\   approx)rX   rd   r/  rM   r0  X_sofarchunks_copyscaled_batchscaled_incrright_inputzeroepsilons               rD   .test_standard_scaler_trasform_with_partial_fitrR    sG    	TcT111WA -,, ""Kk!'!*a8899  5Iq1uIqqqL/llnn )++99'BBL%11!E(;;KK)++99}Wq1uW'= :  L &11%e(< 2  K "++G44!,<<<!';777!33K@@!';777x
##(5//%$ 07 :;;;$ 2W <=== Ek9999996-!a%011V]+6 6     9 rE   c            	          t          j        g dg dg dg dg dg dgt           j                  } t                      }|                    |            |                    |            d S )N)r;   r;   r;   r   r;   r   )r   r   r   r;   r   r   )r;   rj   r;   r;   r   r   )r   r;   r   r   r;   r   )r   rj   r   r;   r   r;   r   )rG   rp   int32r   r_   r   )r  rf   s     rD   .test_standard_check_array_of_inverse_transformrU    s     		
 h
	 
	 
	A F
JJqMMM
 QrE   z#array_namespace, device, dtype_namecheck	estimatorclipl1norml2maxc                 >    | j         j        } ||| |||           d S )N)r   
dtype_name)r   r   )rW  rV  array_namespacer   r`  names         rD   'test_preprocessing_array_api_compliancerc    s0    8 'D	E$	?6jQQQQQQrE   c                 \    t                      }|j        j        } | ||||||           d S )N)r   r`  check_sample_weight)r   r   r   )rV  rX   ra  r   r`  rW  rb  s          rD   )test_standard_scaler_array_api_compliancerf    sO       I'D	E)     rE   c                  4   t           j        } t                      }|                    |           }t	          |                    d          d           t	          |                    d          d           |                    |          }t	          | |           t          d          }|                    |           }t	          |                    d          d           t	          |                    d          d           |                    |          }t	          | |           t          d          }|                    |           }t	          |                    d          d           t	          |                    d          d	           |                    |          }t	          | |           t          d
          }t          j	        t                    5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr   r   r;   r;   rU   feature_rangerU   )      333333?rk  rl  )rU   r;   )irisdatar   r  r+   minr^  r   r\   r]   r^   r_   )rd   rf   X_transX_trans_invs       rD   test_min_max_scaler_irisrr  7  s!   	A^^F""1%%Ggkkqk111555gkkqk111555**733Ka--- ///F""1%%Ggkkqk111555gkkqk111555**733Ka--- 444F""1%%Ggkkqk114888gkkqk113777**733Ka--- ///F	z	"	"  

1                 s   *HHHc                  \   g dg dg dg} g dg dg dg}t                      }|                    |           }g dg dg d	g}t          ||           |                    |          }t          | |           |                    |          }g dg d
g dg}t          ||d           t          d          }|                    |           }g dg dg dg}t          ||           t          |           }t          ||           t          | d          }t          ||           d S )Nr   rn         ?r   rn   gr   rn   g?r   rm   ru        rn   r   r   rn   r{   )r   r   ru  r   r   r   r   r   rn   )rz  r   gsh|??)r   r   gS?rU   r  rh  ri  )rn   rn   r{   rn   rn   rn   )rn   rn   rm   )r   r  r+   r   r   r   )	rd   X_newrf   rp  X_expected_0_1rq  X_trans_newX_expected_0_1_newX_expected_1_2s	            rD   *test_min_max_scaler_zero_variance_featuresr  W  s   			+++-=-=-=>A///1A1A1ABE ^^F""1%%G%ooHNg~666**733Ka---""5))K,,,.@.@.@BTBTBTUk+=qIIII ///F""1%%G%ooHNg~666 1ooGg~6661F333Gg~66666rE   c                      t           j        } t          | d          }t          t	          j        |d          d           t          t	          j        |d          d           d S )Nr;   r   r   )rm  rn  r   r+   rG   ro  r^  )rd   rp  s     rD   test_minmax_scale_axis1r  v  s_    	A11%%%GbfW1555q999bfW1555q99999rE   c                  "   t           t          t          t          fD ]s} t          d          }|                    |                               |           }t          | t                    rt          j	        |           } t          |           dk    rwt          |                    d          t          j        t                               t          |                    d          t          j        t                               nHt          |                    d          d           t          |                    d          d           |j        | j        d         k    sJ |                    |          }t          ||            ut          j        d          } t                      }|                    |                               |           }|                                dk    sJ |                                dk    sJ |j        | j        d         k    sJ t                                           }|                                }|                                }t          ||z
  ||z
  z  t+          |d                     d S r   )r   r   r   r   r_   r   r   r   rG   rp   rJ   r+   ro  r   rc   r^  r   rI   r   r   r   r   )rd   rf   r   r   X_1dr(  max_s          rD   test_min_max_scaler_1dr  }  s/   fk;7 4 44(((::a==**1--a 	AA!##%hlll&:&:BHZ<P<PQQQ%hlll&:&:BHZ<P<PQQQQ%hlll&:&:C@@@%hlll&:&:C@@@%3333 00::!-3333 	A^^Fzz!}}&&q))H<<>>S    <<>>S    !QWQZ//// <<>>D88::D88::D	%|Dt'D'D'D    rE   c                 4   t           j                            d          }|                    dd          }d|d d df<    ||          }| r |                    |j        d                   } t          j        t                    5  t                      
                    |           d d d            n# 1 swxY w Y   t          d          
                    ||           }|                    |d	
          }t          j        t          j        |                    rJ t          d          
                    ||           }|                    |d	
          }t          j        t          j        |j                            rJ t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j        |j                   | Mt          |                    d          g dd           t          |                    d          g d           t-          |d          \  }	}
t          |	|                    d                     t          |
|                    d                     ||usJ ||usJ |                    |          }||usJ ||usJ t          ||           |                    |          }||usJ ||usJ t          |                                |           |t4          v rrt          ddd	          }|                    |          }t9          |j        |j                   |                    |          }t9          |j        |j                   d S d S )Nr!  rj   rk   r   r   Frx   rW   Tr   r   r   g{GzgQ@gffffffֿg(\rU   r  rA  )rG   r   r   r[   rB  rI   r\   r]   r^   r   r_   r   r   r  rn  r+   r   r   r   r   r   r   r7   r4  r   r@   r4   r  r,   )rX   r   rZ   rd   X_sparserf   r   scaler_sparseX_sparse_scaledX_sparse_scaled_meanX_sparse_scaled_varr   X_sparse_scaled_backrC  rD  rE  s                   rD   test_scaler_without_centeringr    s    )


#
#C		!QAAaaadG""H -,,	z	"	" ' 'X&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' e,,,00-0PPF--Hvbhx(()))))"U33377 8  M $--hT-BBOvbh34455555flM,?@@@fk=+=>>>fm]-ABBBf4m6STTT!MMqM!!#C#C#CQ	
 	
 	
 	"(,,A,"6"68Q8Q8QRRR0B?TU0V0V--2HMMqM4I4IJJJ18<<Q<3G3GHHH 1(****,,X66M!!!!((((mQ///(::?KKx////66662::<<a@@@>))'%%dSSS--h776;66611&996;66666 *)s   "B33B7:B7ry   r   c                    t          j        g dt           j        ddgddt           j        gddt           j        ggt           j                  }| ||          }t	          j        |          r| rt          j        d	           t          | |
          }|	                    |           t          |j        t          j        g d                     d S )Nr   r;   rV   rl   r>   rk   rj   r   r   r   z3'with_mean=True' cannot be used with sparse matrix.r   )rV   rj   rU   )rG   rp   rq   r   r   issparser\   r   r   r_   r,   r   )ry   r   r   rd   transformers        rD   #test_scaler_n_samples_seen_with_nanr    s     		RVQOaBF^aBF^DBJ	 	 	A #Qq Ki KIJJJ 9xHHHKOOA{2BHYYY4G4GHHHHHrE   c                     | j         |j         cxu rn J | j        |j        cxu rn J | j        |j        cxu rn J | j        |j        k    sJ d S N)r   r   r   r   )scaler_1scaler_2s     rD   "_check_identity_scalers_attributesr    s    >X^333333333=HM111111111?ho555555555#x'???????rE   c                 J   t          j        g dg dg dgt           j                  } | |          }t          dd          }|                    |          }t          ||           t          |          }|                    |          }t          ||           t          ||           |	                    |           |	                    |           t          ||           |
                    |           |
                    |           t          ||           d S )Nr  )rk   rl   r   )r   r   r>   r   Fr   )rG   rp   r   r   r  r(   r   r)   r  r$  r_   )r   X_denser  transformer_denseX_trans_densetransformer_sparseX_trans_sparses          rD   test_scaler_return_identityr    s1    h			999jjj9LLLG((H&GGG%33G<<MM7+++011'55h??N :::&'8:LMMM!!'***""8,,,&'8:LMMM'"""8$$$&'8:LMMMMMrE   c                 L   t           j                            d          }|                    dd          }d|d d df<    | |          }t	          j        d          5  t          d	                              |          }|                    |d
          }d d d            n# 1 swxY w Y   t          j	        t          j
        |                    rJ t	          j        d          5  t          d	                              |          }|                    |d
          }d d d            n# 1 swxY w Y   t          j	        t          j
        |j                            rJ t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |                    d          g dd           t          |                    d          g d           t%          |                    t(                    d          \  }}	t          ||                    d                     t          |	|                    d                     ||usJ ||usJ |                    |          }
|
|usJ |
|usJ t          |
|           |                    |          }||usJ ||usJ t          |                                |           | t.          v rt          ddd          }t	          j        d          5  |                    |          }d d d            n# 1 swxY w Y   t3          |j        |j                   |                    |          }t3          |j        |j                   d S d S )Nr!     rj   rk   r<   r   TrecordFrx   r   r   )r   gX9v?gV-?g      5@gl?rU   r  rA  )rG   r   r   r:  r   r  r   r_   r   r   r  rn  r+   r   r   r   r   r   r7   r   rH  r   r@   r4   r  r,   )r   rZ   rd   r  rf   r   r  r  r  X_sparse_scaled_stdr   r  rC  rD  rE  s                  rD   test_scaler_intr    s    )


#
#CBV$$AAaaadG""H		 	-	-	- 2 2%00044Q77##AD#112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 vbhx(()))))		 	-	-	- G G&777;;HEE'11(1FFG G G G G G G G G G G G G G G vbh34455555flM,?@@@fk=+=>>>fm]-ABBB1???   hlll224M4M4MNNN0Bu%%q1 1-- 2HMMqM4I4IJJJ18<<Q<3G3GHHH 1(****,,X66M!!!!((((mQ///(::?KKx////66662::<<a@@@>))'%%dSSS$D111 	< 	<#11(;;F	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<6;66611&996;66666 *)s6    ;B''B+.B+/;D66D:=D:,MMMc                    t           j                            d          }|                    dd          }d|d d df<    | |          }|                                }t          d                              |           t          ||           |                                }t          dd                              |           t          |                                |                                           d S )	Nr!  rj   rk   r   r   Fr   )ry   r   )	rG   r   r   r[   r   r   r_   r,   r@   )r   rZ   rd   r  X_copyX_sparse_copys         rD   test_scaler_without_copyr  M  s     )


#
#C		!QAAaaadG""HVVXXF""1%%%q&!!!MMOOMU///33H===x''))=+@+@+B+BCCCCCrE   c                 N   t           j                            d          }|                    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            n# 1 swxY w Y   t          d          	                    |          }t	          j        t                    5  |
                    |           d d d            n# 1 swxY w Y    | |
                    |                    }t	          j        t                    5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr!  rj   rk   Trx   )rG   r   r   r[   r\   r]   r^   r   r   r_   r   r   )r   rZ   rd   r  rf   X_transformed_sparses         rD   +test_scale_sparse_with_mean_raise_exceptionr  ^  sy   
)


#
#C		!QA""H 
z	"	" ( (h$''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	z	"	" 5 5&&&**84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 d+++//22F	z	"	" # #"""# # # # # # # # # # # # # # # ,+F,<,<Q,?,?@@	z	"	" 7 7  !56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sH   A88A<?A<$CCCD55D9<D97FF!Fc                      t           j        ddddgg} t          j        t          d          5  t          |            d d d            d S # 1 swxY w Y   d S )Nrk   rl      r   z8Input X contains infinity or a value too large for dtyper   )rG   infr\   r]   r^   r   rd   s    rD   &test_scale_input_finiteness_validationr  t  s    
&!Q1	A	U
 
 
   	a                 s   AAAc                      t          j        dd          } t          d          }d}t          j        t
          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr9   r>   Tr   zCannot center sparse matricesr   )r   rB  r   r\   r]   r^   r_   )r  rf   err_msgs      rD   test_robust_scaler_error_sparser  }  s    {4$$H...F-G	z	1	1	1  

8                 s   A&&A*-A*r   with_scalingrd   rV   ru  densityc                 \   |r(t          j        |           rt          j        d           t	          ||          }|                    |            |r"t          |j        t          j	                  sJ n	|j        J |r#t          |j
        t          j	                  sJ d S |j
        J d S )Nz(RobustScaler cannot center sparse matrix)r   r  )r   r  r\   r   r   r_   r   center_rG   ndarrayr   )rd   r   r  rf   s       rD   test_robust_scaler_attributesr    s    
  @&/!,, @>???lSSSF
JJqMMM &&."*555555~%%% %&-4444444}$$$$$rE   csr_containerc                    t           j                            dd          }d|d d df<    | |          }t          d          }|                    |           |j        d         t          j        d          k    sJ |                    |          }t          |d d dgf         
                                |d d dgf         
                                           d S )Nr>   rk   r   Fr   r;   )rG   r   r[   r   r_   r   r\   rJ  r   r(   r@   )r  rd   rf   rp  s       rD   "test_robust_scaler_col_zero_sparser    s     		AAAaaadGaA///F
JJqMMM=v}Q//////q!!GAaaa!fI%%''QC)@)@)B)BCCCCCrE   c                     t           j                            d          } |                     dd          }d|d d df<   t	                      }|                    |                              |          }t          t          j        |d          ddgz             t          |	                    d          d         d           d S )Nr   rj   rk   r   r   )
rG   r   r   r[   r   r_   r   r+   medianr   )rZ   rd   rf   r   s       rD   test_robust_scaler_2d_arraysr    s    
)


"
"C		!QAAaaadG^^Fzz!}}&&q))Hbiq9991u9EEEhlll2215q99999rE   r  )r   g?皙?ru  r;   strictly_signed)positivenegativer   Nc                 H   t          j        dd|                                           }|dk    rt          j        |j                  |_        n[|dk    r t          j        |j                   |_        n5|dk    r/t          j        |j        j        t          j                  |_        |	                                }t          d	          }t          d	          }|                    |           |                    |           t          |j        |j                   d S )
Nr9   rk   r  r  r  r   r   Fr   )r   rB  tocscrG   absrn  r   rI   r   r@   r   r_   r(   r   )r  r  r  r  r  scaler_denses         rD   +test_robust_scaler_equivalence_dense_sparser    s    {4G444::<<H*$$x}--	J	&	&...	G	#	#!4BJGGG  G 666Mu555LhWM(,*=>>>>>rE   c                    t           j                            d          }|                    dd          }t          j        g dg          }t          d          }|                    |          }|                     | |                    }||j        z  }t          |
                                |           |                    |          }t          ||
                                           d S )Nr   rj   rk   )r  rn   rm   r   rz  Fr   )rG   r   r   r[   rp   r   r_   r   r   r+   r@   r   )r  rZ   rd   
single_rowrf   	row_transrow_expectedrow_scaled_backs           rD   (test_robust_scaler_transform_one_row_csrr    s     )


"
"C		!QA555677J///FZZ]]F  z!:!:;;I-Li//11<@@@..y99Oj/*A*A*C*CDDDDDrE   c                  f   t           j        } t                      }|                    |           }t	          t          j        |d          d           |                    |          }t	          | |           t          j        |dd          }|d         |d         z
  }t	          |d           d S )Nr   r      K   qr   r;   	rm  rn  r   r  r+   rG   r  r   
percentile)rd   rf   rp  rq  r  iqrs         rD   test_robust_scaler_irisr    s    	A^^F""1%%Gbia888!<<<**733Ka---
g222A
A$1+Cc1%%%%%rE   c                  j   t           j        } t          d          }|                    |           }t	          t          j        |d          d           |                    |          }t	          | |           t          j        |dd          }|d         |d         z
  }t	          |d           d S )N)r>   Z   quantile_ranger   r   r  r;   r  )rd   rf   rp  rq  r  q_ranges         rD   !test_robust_scaler_iris_quantilesr    s    	A222F""1%%Gbia888!<<<**733Ka---
g222AdQqTkGgq)))))rE   csc_containerc                    t           j        }t          d          }|                    |          }|                    |          }t          ||           t          dd          }|                    |          }|                    |          }t          ||            | |          }|                    |          }|                    |          }t          |                                |                                           d S )Nr8   n_quantilesnormal)r  output_distribution)rm  rn  r   r  r   r+   r@   )r  rd   r  rp  rq  r  X_sparse_tranX_sparse_tran_invs           rD   test_quantile_transform_irisr    s    	A%"555K''**G//88Ka---%"(SSSK''**G//88Ka--- }QH--h77M#55mDDh..002C2K2K2M2MNNNNNrE   c                 t   t          j        g dg dg dg          } | |          }t          j        g dg dg dg          } | |          }d}t          j        t          |          5  t          d                              |           d d d            n# 1 swxY w Y   t          d	          }d
}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   |                    |           d
}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        g dg dg          }d}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          d	                              |          }t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          d	          }d}t          j	        t          |          5 }|                    |           d d d            n# 1 swxY w Y   t          |          dk    sJ |j        |j        d         k    sJ d S )N)
r   r  r   r   r   r   r  r   r   r   )
rU   rj   r   r   rl   r   r   r>   r   r   )
r   r   @ffffff@r   r   ffffff@r         #@r  )
rj   r   r   rl   r   r   r>   r   r   zmThe number of quantiles cannot be greater than the number of samples used. Got 1000 quantiles and 10 samples.r   r>   )	subsampler  z>QuantileTransformer only accepts non-negative sparse matrices.zKX has 2 features, but QuantileTransformer is expecting 3 features as input.z+Expected 2D array, got scalar array insteadr   zn_quantiles is set to n_samplesr;   r   )rG   	transposer\   r]   r^   r   r_   r   r   r  r  lenn_quantiles_rI   )r  rd   X_negr  r  
X_bad_featwarn_msgr  s           rD   #test_quantile_transform_check_errorr  	  s\   
///+++444	
	 	A 	aAL///,,,444	
 E M%  E	 
 
z	1	1	1 1 1b)))--a0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 &"555KNG	z	1	1	1                OOANG	z	1	1	1 % %e$$$% % % % % % % % % % % % % % % 	,	,	,.V.V.VW J 	V  
z	1	1	1 2 2%%j1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 &"55599!<<K	z)V	W	W	W " "b!!!" " " " " " " " " " " " " " " &#666K0H	k	2	2	2 f              v;;!#qwqz111111sl   .$BB"%B"C88C<?C<5EEEF;;F?F?H&&H*-H*J  JJc                 n   t          j        ddgddgddgddgddgg          } | |          }t          dd          }d}t          j        t
          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        ddgddgddgddgddgg          }|                    |          }t          ||	                                           t          j        g d	          }t          j        g d
          }t          j        g d          }	 | ||	|ff          }|                    |          }t          j        ddgddgddgddgddgddgddgddgddgg	          }t          ||	                                           t          dd          }t          j        g d          }t          j        g d          }t          j        g d          }	 | ||	|ff          }|                    |          }t          j        ddgddgddgddgddgddgddgg          }t          ||	                                           t          |	                                |
                    |          	                                           t          dddd          }|                    |          }t          ||	                                           t          |	                                |
                    |          	                                           d S )Nr   r;   rU   Trk   )ignore_implicit_zerosr  z['ignore_implicit_zeros' takes effect only with sparse matrix. This parameter has no effect.r   )r   r   r;   r   rU   rU   r;   r   r;   rU   r   )r   r   r;   r;   r;   r;   r;   r;   r;   r;   r;   )r   rj   r   r;   rU   rV   rj   rk   rl   r  r   r   ru  rn   )	r:   r:   r;   r   r   r   r;   r:   r;   )	r   r   r;   r;   r;   r;   r;   r;   r;   )	r   rj   r   r;   rU   rV   rj   rk   rl   g      ?r   )r  r  r  random_state)rG   rp   r   r\   r  r  r_   r  r*   r@   r   )
r  rd   r  r  r  
X_expectedrp  X_dataX_colX_rows
             rD   +test_quantile_transform_sparse_ignore_zerosr  C  s   
1a&1a&1a&1a&1a&9::A}QH%DaPPPK	 
 
k	9	9	9                 Aq6Aq6Aq6Aq6Aq6BCCJ''11G
GOO$5$5666 X77788FH66677EH66677E}fuen566H''11G#J#J#J#J#J#J#J#J#J
	
 J 
GOO$5$5666%DaPPPKX44455FH00011EH00011E}fuen566H''11G
Q!UaZ!UaVaVaVL J 
GOO$5$5666K99'BBJJLL  
 &"QQ  K ''11G
GOO$5$5666K99'BBJJLL    s   A??BBc                  ^   t          j        g dg dg dg dg dg          } t          d          }|                    |            |                    |           }t          j        t          j        dd	d
          d          j        }t          t          j	        |d          |           t          j        g dg dg          }t          j        g dg dg          }t          |                    |          |           |                    |          }t          | |           d S )N)r   rU   r  )r  rj   r  )r   rl   r  )r  r   r  )r   r>   r  rk   r  r   r;   )num)rV   r;   r   )r:   r;   r   )e      r>   )r   r   r   r;   r;   r;   )rG   rp   r   r_   r  tilelinspaceTr*   sortr+   r   r   )rd   r  rp  r  r   rq  s         rD   !test_quantile_transform_dense_toyr    sE   
	lllLLL,,,O	 	A &!444KOOA ''**GQq1116::<Ja000*===XJJMM	
 F IIII	
 J k33F;;ZHHH//88Ka-----rE   c                  B   d} d}t          j        t           j                            | df          d          }d}g }t	          |          D ]}t          ||| dz            }|                    |           t          j        dd|          t          j        |j	                  z
  }t          j
        t          j        |                    }|d	k     sJ |                    |           t          t          j        |                    t          |          k    sJ t          j        | dd
dd          }g }t	          |          D ]}t          ||| dz            }|                    |           t          j        dd|          t          j        |j	                  z
  }t          j
        t          j        |                    }|dk     sJ |                    |           t          t          j        |                    t          |          k    sJ d S )N@B r9   r;   r   r   rk   r>   )r   r  r  {Gz?gGz?csc)r  formatr   r  )rG   r  r   sampler   r   r_   r  r   
quantiles_r^  r  appendr  uniquer   rB  )	rb   r  rd   ROUNDinf_norm_arrr   r  diffinf_norms	            rD   #test_quantile_transform_subsamplingr    s    IK
	  )Q00q999AELe 
& 
&)%#2o
 
 

 	{1a--9O0P0PP6"&,,''$H%%%% ry&&''3|+<+<<<<< 	Iq$u1MMMALe 
& 
&)%#2o
 
 

 	{1a--9O0P0PP6"&,,''$H%%%% ry&&''3|+<+<<<<<<<rE   c                     t           j                            d                              d          } d}t	          |d                              |           }t          j        dd|          }t          |j        |           t          j	        | 
                                |          }t          |j        
                                |           dS )zCCheck the behaviour of `QuantileTransformer` when `subsample=None`.r   )   r;   r<   rk   N)r  r  r;   )rG   r   r   r  r   r_   r  r(   references_quantiler   r  )rd   r  r  expected_referencesexpected_quantiless        rD   ,test_quantile_transform_subsampling_disabledr$    s    
	a  ''X'66AK%+NNNRRSTUUK+aK88K+-@AAAQWWYY0CDDK*00224FGGGGGrE   c                 \   t          j        g dg dg dg dg dg dg dg dg d	g d
g
          } | |          }t          d          }|                    |           |                    |          }t          t          j        |                                d          d           t          t          j        |                                d          d           |	                    |          }t          |                                |                                           t          d                              |                                          }|
                    |          }t          t          j        |                                d          d           t          t          j        |                                d          d           |	                    |          }t          |                                |                                           d S )N)r   rm   r   )g      9@      @r   )g      I@r   r  )r   r   r  )r   g      @r   )r   g       @r   )g     R@r   r  )r   g      $@r   )r   r   r  )r   r   r  r>   r  r   r   r   rn   )rG   rp   r   r_   r  r+   ro  r@   r^  r   r   )r  rd   r  rp  rq  r  s         rD   "test_quantile_transform_sparse_toyr'    s    
OOOOOOOOOO	
	 	A 	aA%"555KOOA''**GbfW__%6%6Q???EEEbfW__%6%6Q???EEE//88Kaiikk;+>+>+@+@AAA+;;;??		LL))!,,GbfW__%6%6Q???EEEbfW__%6%6Q???EEE#55g>>Kaiikk;+>+>+@+@AAAAArE   c                      t          j        g dg dg dg          } t          | j        dd          }t          | dd          }t	          ||j                   d S )N)r   r  r   r  r   )rU   rj   rl   r   r>   )r  r  r  r  r  r   rk   )r   r  r;   )rG   rp   r   r  r+   )rd   
X_trans_a0
X_trans_a1s      rD   test_quantile_transform_axis1r+    so    
&&&(8(8(8:S:S:STUUA#ACaQ???J#AA1===Jj*,77777rE   c                 J   t          j        ddgddgddgg          } | |          }t          dd                              |          }t	          ||           t          dd                              |          }t	          |                                |           t	          ||                                           t          j        ddgddgddgg          }t          j        ddgddgddgg          }t          d                              |          }|                    |          }t	          ||           t           j                            d          }t                      }|                    |           |                    d	gg          |                    t          j	        |          gg          k    sJ |                    d
gg          |                    t          j
        |          gg          k    sJ |                    d	gg          |                    t          j	        |j                  gg          k    sJ |                    d
gg          |                    t          j
        |j                  gg          k    sJ d S )Nr   r;   rV   r  r   ru  r  r  )r9   r;   r>   )rG   rp   r   r  r+   r@   r_   r   r   ro  r^  r   r   )r  r  r  rp  
X_trans_sprd   X1r  s           rD   test_quantile_transform_boundsr1    s    hAAA/00G}W%%H "aa@@@NNwWWGgw///$CCCQQ J j0022G<<<gz'9'9';';<<< 	1a&1c(QF+,,A	As8aX3x0	1	1B%!44488;;K##B''Ggr*** 		##A%''KOOA  3%))[-B-BRVAYYK=-Q-QQQQQ  2$((K,A,ABF1II;-,P,PPPPP((3%11[5R5R
&(
)
)	*+6 6     ((2$00K4Q4Q
&(
)
)	*+5 5      rE   c            	         t           j        } t          j        dgt          dz  gdgdgdgdgdgg          }| |fD ]O}t          dd	          }|                    |          }|                    |          }t          ||d
           Pd S )Nr   r>   r{   rU   rV   rj   r9   r   r-  	   r  )	rm  rn  rG   rp   r   r   r  r   r+   )X_1X_2rd   r  rp  rq  s         rD   #test_quantile_transform_and_inverser6  6  s    
)C
(SE,r12SEA3aS1#N
O
OC3Z = =)dKKK++A..!33G<<!![!<<<<<	= =rE   c                     t          j        t           j        dddgt           j        t           j        ddgt           j        dddgg          } t          dd          }|                    |            t          j        |j        d d df                                                   sJ t          j        |j        d d dd f                                                   rJ d S )Nr   r;   ru  r>   r!  r-  )	rG   rp   rq   r   r  r  r  r   r   )rd   r  s     rD   test_quantile_transform_nanr8  @  s    
261a#bfbfa%=1a?PQRRA%"2FFFKa    8K*111a40115577777x.qqq!""u566::<<<<<<<rE   
array_typerp   r   c                 n   t          j        g ddz            }d|                    dd          z  }t          ||           }d}t	          |                              |          }|j        d d df         }t          |          dk    sJ t          t          j	        |          dk              sJ d S )	N)r   r;   r;   rU   rU   rV   rV   rj   rk   rk   r;   r;   r3  r3  r3  r   r   r  r>   r  r:   r;   r   r  r   )
rG   rp   r9  r'   r   r_   r  r  r   r  )r9  rd   r  qt	quantiless        rD   *test_quantile_transformer_sorted_quantilesr=  L  s     	GGG"LMMAaiiAA1j))AK		5	5	5	9	9!	<	<B aaad#Iy>>S    rwy!!Q&'''''''rE   c                      dD ]d} t          |           }t          j        t          d          5  |                    t
          j                   d d d            n# 1 swxY w Y   ed S )N))r:   r  )r  )r>   r  )g      Y@r  )r  r   r  zInvalid quantile range: \(r   )r   r\   r]   r^   r_   rm  rn  )range_rf   s     rD    test_robust_scaler_invalid_rangerA  `  s     
" 
" V444]:-JKKK 	" 	"JJty!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
" 
"s    AA 	#A 	c                    t           j                            d          }|                    dd          }d|d d df<    | |          }t	          |d          }t          j        t          j        |                    rJ t	          |d          }t          j        t          j        |j                            rJ t	          |                                d          }t          ||
                                           t          j        t                    5  t	          |dd	           d d d            n# 1 swxY w Y   t          |                    d
          g dd           t          |                    d
          g d           ||usJ t!          |d          \  }}t          ||                    d
                     t          ||                    d
                     t	          |ddd          }t          |
                                |
                                           d S )Nr!  rj   rk   r   r   Frx   r;   )ry   r   r   r  rU   r  TrA  )rG   r   r   r[   r   r   r  rn  r  r+   r@   r\   r]   r^   r   r   r7   )	r  rZ   rd   X_csrr   X_csr_scaledX_csc_scaledX_csr_scaled_meanX_csr_scaled_stds	            rD   %test_scale_function_without_centeringrH  n  sa   
)


#
#C		!QAAaaadGM!EQ%(((Hvbhx(()))))%000Lvbh|01122222 %888Lh(<(<(>(>??? 
z	"	" . .eu1----. . . . . . . . . . . . . . . 1???   hlll224M4M4MNNN1*<\1*M*M''/A1F1FGGG.!0D0DEEE %%dKKKLemmoo|/C/C/E/EFFFFFs   D>>EEc                      t           j        } t          | d          }t          t	          j        |d          d           t	          j        |dd          }|d         |d         z
  }t          |d           d S )Nr;   r   r   r  r  rm  rn  r   r+   rG   r  r  rd   rp  r  r  s       rD   test_robust_scale_axis1rL    sw    	A11%%%Gbia888!<<<
g222A
A$1+Cc1%%%%%rE   c                     t           j        d d df         } t          |           }t          t	          j        |          d           t	          j        |d          }|d         |d         z
  }t          |d           d S )Nr;   r   r  )r  rJ  rK  s       rD   test_robust_scale_1d_arrayrN    su    	!!!Q$A1ooGbi00!444
g***A
A$1+Cc1%%%%%rE   c                  \   g dg dg dg} t                      }|                    |           }g dg dg dg}t          ||           |                    |          }t          | |           g dg dg d	g}|                    |          }g d
g dg dg}t          ||d           d S )Nrt  rv  rw  r|  )r   r   rz  r}  rx  ry  r{  )r   rn   r   )rz  r   g_)r   r   gіs)?rV   r  )r   r  r+   r   r   )rd   rf   rp  r  rq  r  r  X_expected_news           rD   )test_robust_scaler_zero_variance_featuresrQ    s   			+++-=-=-=>A^^F""1%%G #""$4$4$46F6F6FGJgz222**733Ka--- ///1A1A1ABE""5))K''')>)>)>@U@U@UVNk>1EEEEEErE   c                  H   t           j                            d          } |                     dd          }t          j        |t          j        d          dz  t          j        d          dz  g          }d}t          |d	                              |          }|                    |          }|j	        t          j        d
d          k    sJ |j        t          j        dd          k    sJ |                                t          j        dd          k    sJ d S )Nr!  r  r;   )r   r;   r   i)r;   c   T)r  unit_variancer   MbP?)r  r  )rG   r   r   r[   vstackr   r   r_   r   r  r\   rJ  r   r   )rZ   rd   X_with_outliersr  robust_scalerrp  s         rD    test_robust_scaler_unit_variancerY    s    )


#
#C		'1AiBGH$5$5$;RWX=N=NQU=U VWWON dSSSWW M %%a((G FM!$>$>$>>>>>6=#=#=#=====;;==FM!666666666rE   c                    g dg dg dg dg}t                      }|                    |          }g dg dg dg dg}t          ||           |                    |          }t          ||           g dg d	g dg}|                    |          }g d
g d	g dg}t          ||d           t          |          }t          ||            | |          }	|                    |	          }
g dg dg dg dg}t          |
                                |           |                    |
          }t          ||                                           d S )Nrt  )r   rn   333333ӿr{  r|  )r   rn   UUUUUU?)r   rn   gɿ)r   rn   rn   rx  ry  )r   rm   r\  rU   r  )r   r  r+   r   r   r   r@   )r   rd   rf   rp  r  rq  r  r  rP  r  r  X_trans_sparse_invs               rD   )test_maxabs_scaler_zero_variance_featuresr^    s    
		+++-=-=-=?O?O?OPA^^F""1%%G	J gz222**733Ka--- ///1A1A1ABE""5))K,,,.>.>.>@P@P@PQNk>1EEEE 1ooGgz222  ""H))(33N	J n4466
CCC11.AAa!3!;!;!=!=>>>>>rE   c                      g dg dg dg dg} t                      }|                    |           }g dg dg dg dg}t          ||           d S )	N)r   rn   ru  rz  )r   rn   r[  rk  )r   rn   g      Yr   )r   r   r   g       )r   rn   g{Gzt?rk  )r   rn   g~jthg      п)r   rn   rz  r   )r   r   r   rz  )r   r  r+   )rd   rf   rp  r  s       rD   'test_maxabs_scaler_large_negative_valuer`    s     			A ^^F""1%%G!!!	J gz22222rE   c                     | g dg          }t                      }|                    |          }|                    |          } | g dg          }t          |                                |                                           |                    |          }t          |                                |                                           d S )N)ru  rn   rn   r~  )r   r_   r   r+   r@   r   )r  rd   rf   rp  r  r   s         rD   (test_maxabs_scaler_transform_one_row_csrrb    s     	'((A^^FZZ]]Fq!!G011Jgoo//1C1C1E1EFFF,,W55Maiikk=+@+@+B+BCCCCCrE   c                     t           t          t          t          fD ]8} t          d          }|                    |                               |           }t          | t                    rt          j	        |           } t          |           dk    rNt          t          j        |                    d                    t          j        t                               n6t          t          j        |                    d                    d           |j        | j        d         k    sJ |                    |          }t          ||            :t          j        d          } t                      }|                    |                               |           }t          t          j        |                    d                    d           |j        | j        d         k    sJ t                                           }t          j        |                                          }t          ||z  t)          |d                     d S )NTr   r;   r   r   rn   r   )r   r   r   r   r_   r   r   r   rG   rp   rJ   r+   r  r^  r   rc   r   rI   r   r   r   )rd   rf   r   r   r  max_abss         rD   test_maxabs_scaler_1dre    s   fk;7 4 44(((::a==**1--a 	AA!##%bfX\\q\-A-A&B&BBGJDWDWXXXX%bfX\\q\-A-A&B&BCHHH%3333 00::!-3333 	A^^Fzz!}}&&q))HbfX\\q\%9%9::C@@@!QWQZ//// <<>>DfTll  GdWnl4d.K.K.KLLLLLrE   c           
         t           d dd d f         }|j        d         }ddd||dz   fD ];}t                                          |          }t                      }t                      }t                      }t	          ||          D ]i}|                    ||                   } | ||                   }	|                    |	          } | ||                   }
|                    |
          }jt          |j        |j                   t          |j        |j                   t          |j        |j                   |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ t          |j	        |j	                   t          |j	        |j	                   t          |j	        |j	                   t          |
                    |          |
                    |                     t          d|          }t                                          ||                   }t                                          ||                   }t          |j        |j                   |j        |j        k    sJ t          |j	        |j	                   t          |
                    |          |
                    |                     t                                          |          }t                      }t          t	          ||                    D ]D\  }}|                    ||                   }t          ||j        |j        |||j                   E=d S )Nr   r   r;   rU   r   r!  r"  )r#  rI   r   r_   r!   r$  r+   max_abs_r   r   r   r)  r*  rS   r+  r,  )r  rd   rP   rQ   r.  r/  scaler_incr_csrscaler_incr_cscr0  rC  X_cscr1  rM   s                rD   test_maxabs_scaler_partial_fitrk  ;  sD    	TcT111WA	
A!RAF+ / /
#~~))!,,"nn&..&.. J// 	A 	AE%11!E(;;K!M!E(++E-99%@@O!M!E(++E-99%@@OO!,"79MNNN!,"79QRRR!,"79QRRR+{/JJJJJ+/NNNNN+/NNNNN!,"5{7IJJJ!,"57MNNN!,"57MNNN!,"8"8";";[=R=RST=U=UVVV q*%%#~~))!F)44"nn006;;!,"79MNNN+{/JJJJJ!,"5{7IJJJ!,"8"8";";[=R=RST=U=UVVV $~~))!,,"nn!+a"<"<== 		 		HAu%11!E(;;K!K :%*:    		M/ /rE   c                    | dk    rht          j        |                              d          }t          d          D ]}t	          ||         d           t	          |d         d           d	S | dk    rdt          d          D ]*}t	          t          j        ||                   d           +t	          t          j        |d                   d           d	S | dk    rct          |                              d          }t          d          D ]}t	          ||         d           t	          |d         d           d	S d	S )
zr
    Convenient checking function for `test_normalizer_l1_l2_max` and
    `test_normalizer_l1_l2_max_non_csr`
    rZ  r;   r   rV   rn   r   r]  r^  N)rG   r  rI  r   r*   lar\  r^  )r\  X_normrow_sumsrM   row_maxss        rD   check_normalizerrq  t  sC   
 t||6&>>%%1%--q 	2 	2AS1111HQK-----	q 	9 	9Aq	 2 2C8888BGF1I..44444	v;;???**q 	2 	2AS1111HQK-----	 
rE   r\  rZ  r]  r^  c                 $   t           j                            d          }|                    dd          } ||          }d|dd d f<   |j        d         }|j        d         }d|j        ||<    ||          }|||fD ]}t          | d          }	|	                    |          }
|
|usJ t          |
          }
t          | d          }	|	                    |          }||u sJ t          |          }|
|fD ]}t          | |           d S )	Nr   rj   rk   r   rV   Tr\  r   F)
rG   r   r   r[   indptrrn  r   r   r@   rq  )r\  r  rZ   r  X_sparse_unprunedindptr_3indptr_4X_sparse_prunedrd   
normalizerX_norm1X_norm2rn  s                rD   test_normalizer_l1_l2_maxr}    s^    )


"
"Cii1ooG%g.. GAqqqDM !'*H '*H038H,- $mG,,O (9: + +T555
&&q))a'""T666
&&q))!||||'""( 	+ 	+FT6****	++ +rE   c                 l   t           j                            d          }|                    dd          }d|dd d f<    ||          }t	          | d                              |          }||usJ t          j        |          r|j        dk    sJ t          |          }t          | |           d S )	Nr   rj   rk   r   rV   Frt  csr)rG   r   r   r[   r   r   r   r  r  r@   rq  )r\  r   rZ   r  rd   rn  s         rD   !test_normalizer_l1_l2_max_non_csrr    s    
 )


"
"Cii1ooG GAqqqDM!!AT...88;;F?????6""=v}'='='='=V__FT6"""""rE   c           	      >   t           j                            d          }|                    dd          }d|dd d f<   |dt	          |dd d f                                                   fxx         dz  cc<   t          j        |           } | |          }|||fD ]}}t          d	          }|                    |          }||usJ t          |          }t          t          j
        |          t          j
        t          |                               ~d S )
Nr   rj   rk   r   rV   rU   r:   r^  r[  )rG   r   r   r[   r  argmaxr   r   r@   r,   sign)r  rZ   r  	X_all_negX_all_neg_sparserd   rz  rn  s           rD   test_normalizer_max_signr    s)    )


"
"Cii1ooGGAqqqDM As71aaa4=!!((***+++r1+++ I$}Y//y"23 A AU+++
%%a((Q276??BGGAJJ,?,?@@@@A ArE   c                    t           j                            d                              dd          }t	          t          |d          t          |j        dd          j                   t           j                            d          }|                    dd	          } | |          }t          j        d          }||fD ]}t           j        t           j	        fD ]}d
D ]}|
                    |          }t          ||          }|j        |k    sJ t          |          }|dk    r)t          j        |                              d          }	n|dz  }
|
                    d          }	t          |	|           t          j        g dg dg dg          }dD ]}t          ||d          \  }}|dk    r%t          |t          j        g d                     B|dk    r%t          |t          j        g d                     mt          |t          j        g d                      | |          }d
D ]E}t#          j        t&                    5  t          ||d           d d d            n# 1 swxY w Y   Ft          |dd          \  }}t          |t          j        g d                     d S )N%   rV   rU   Fr   r   )r   r   r>   rk   )rZ  r]  r[  rZ  r;   r   )r   r   r&  )rn   r   r   )rm   r   r   rr  T)r\  return_norm)      @rn   r   r]  )r   rn   g1C+@)r&  rn   r   r^  )rG   r   r   r[   r,   r   r  r   r   r   r   r   r@   r  rI  r+   rp   r\   r]   NotImplementedError)r  rd   rsr  r  r   r   r\  rn  ro  X_norm_squared_normss                rD   test_normalizer    s    		b!!''1--Ay///13QU1S1S1S1UVVV			q	!	!Bhhr1ooG}W%%H7B==Dx  : :j"*- 	: 	:E$ : :HHUOO"14000|u,,,, 4<<!vf~~11q199HH%+QYN-11q199H)(D9999:	:  hHIIG# H HW4TBBB54<<%eRXooo-F-FGGGGT\\%eRX6L6L6L-M-MNNNN%eRXooo-F-FGGGG}W%%H = =].// 	= 	=hTt<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=4@@@HAueRXooo%>%>?????s   I<<J 	J 	constructorc                    t          j        g dg dg          } | |                                          }t          dd          }t	          |                    |                    }t          j        |dk              dk    sJ t          j        |dk              d	k    sJ |                    |          }t          j        |          t          j        |          k    sJ t          d
          	                    |          }t	          |                    |                    }||usJ t          j        |dk              d	k    sJ t          j        |dk              dk    sJ t          d
          }|                    |          }||usJ t	          |          }t          j        |dk              d	k    sJ t          j        |dk              dk    sJ t          d
          }|                    |          }| t          ur||u sJ t          d
          }t          j        g dg dgt           j                  }|                    |          }| t          ur||u sJ t	          |          }t          j        |dk              d	k    sJ t          j        |dk              dk    sJ t          dd          }| t           j        t          fv r | |                                          }t	          |                    |                    }t          j        |dk              dk    sJ t          j        |dk              dk    sJ |                    |          }| t          v rRt          j        t                    5  |                     | |                     d d d            d S # 1 swxY w Y   d S d S )N)r;   r   rk   )rU   rV   r:   rm   T)	thresholdr   r   rj   r;   rU   r   Fr   rk  rk   )rG   rp   r   r   r@   r   rI  r   r  r_   r   r   r3   r\   r]   r^   )r  X_rd   	binarizerX_binX_floats         rD   test_binarizerr    s	    
999jjj)	*	*BBGGIIACd333II''**++E6%1*""""6%1*""""""E?1!7!77777t$$$((++II''**++E>>>>6%1*""""6%1*""""t$$$I""E>>>>ENNE6%1*""""6%1*""""u%%%I""E$zzzzu%%%Ih			:::.bjAAAG((E$ENNE6%1*""""6%1*""""Dt444Irx&&&K		""	++A..//veqj!!Q&&&&veqj!!Q&&&&##A&& n$$]:&& 	0 	0A///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 %$s   OO	Oc                    t          | |          }|ddfD ]}t          j        t          j        g d|          d          }|                    ||          }t	          d                              |          }t          d	
          5  t	          d                              |          }d d d            n# 1 swxY w Y   t          t          ||          |           d S )NrT  int64)r   r;   rU   rV   rj   r   )r:   r;   r   r|   )r  Tr   )	r&   rG   r9  rH   r   r  r   r,   r#   )	ra  r   r`  r   dtype_name_X_npr   binarized_npbinarized_xps	            rD   test_binarizer_array_api_intr  <  sA   
 
ov	6	6B"GW5 N Nz"*___KHHH'RRzz$vz.. 3///==dCCt444 	H 	H$s333AA$GGL	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H,\2>>MMMMN Ns   $B==C	C	c                     t           j                            d          } |                     d          }t	          d          }|                    |           |                    |          }t          j        ||j                  }t                      }t          j        ||j                  }|
                    |          }t          ||           |                     d          }t          j        ||j                  }	|                    |          }
t          j        |
|j                  }|                    |	          }t          ||           t          j        |          |j        d         z  }|||z  z
  ||z  z
  ||z  |z  z   }t          ||           t          j        |	          |j        d         z  }|	||z  z
  |	|z  z
  ||z  |z  z   }t          ||           d S )Nr   rk   rj   Fr   )rU   rj   )rG   r   r   random_sampler   r_   r   dotr  r   r  r+   	ones_likerI   r(   )rZ   X_fitrf   X_fit_centeredK_fitcentererK_fit_centeredK_fit_centered2X_predK_predX_pred_centeredK_pred_centeredK_pred_centered2ones_MK_fit_centered3ones_prime_MK_pred_centered3s                    rD   test_center_kernelr  K  s    )


"
"Cf%%EU+++F
JJu%%e,,NF5%'""E HVNN,<==N,,U33Ono>>> v&&FVFEG$$F&&v..Of_n.>??O))&11o/?@@@ \%  5;q>1Ffun,uv~=QW@WWONO444 <''%+a.8L%%7,:NQW:WW  O%566666rE   c                     t           j                            d          } |                     dd          |                     dd          }}d } ||          } ||          }t	          d          }|                    |          }|                    |          }||j        z  }	||j        z  }
||j        z  }||j        z  }t                      }|	                    |	           t          |                    |	          |           t          |                    |
          |           t          j        |	          |	j        d         z  }|	||	z  z
  |	|z  z
  ||	z  |z  z   }t          |                    |	          |           t          j        |
          |	j        d         z  }|
||	z  z
  |
|z  z
  ||	z  |z  z   }t          |                    |
          |           dS )	z-Check kernel centering for non-linear kernel.r   r   r   r  c                     t          j        t          j        | dd          t          j        | dd           g          S )zOur mapping function phi.r   N)a_mina_max)rG   rV  rY  r  s    rD   phiz2test_kernelcenterer_non_linear_kernel.<locals>.phi|  sF    y$///$a0000
 
 	
rE   Fr   N)rG   r   r   r[   r   r  r   r  r   r_   r(   r  rI   )rZ   rd   r   r  phi_X
phi_X_testrf   phi_X_centerphi_X_test_centerKK_testK_centerK_test_centerkernel_centererr  
K_centeredr  K_test_centereds                     rD   %test_kernelcenterer_non_linear_kernelr  w  s   
)


"
"C		#r""CIIb"$5$5vA
 
 
 CFFEVJ U+++F''..L((44 	A%'!Fln,H%6M$&&OO--a00(;;;O--f55}EEE \!__qwqz)FVaZ!f*,vzF/BBJO--a00*=== <''!'!*4L!!FVO3lQ6F6OO  O--f55GGGGGrE   c                     t          j        g dg dg dg dg          } t          j        d          }|                     | j                  }t                      }t          d|fdt                      fg          }|                                j	        j
        sJ t          |||d	          }t          ||           d S )
N)rV   r   r   )r   rV   r   )r   r   rV   r
  )rj   r  svrrU   )cv)rG   rp   r   r  r  r   r   r    __sklearn_tags__
input_tagspairwiser   r+   )rd   y_truer  kcentpipeliney_preds         rD   test_cv_pipeline_precomputedr    s     	)))YYY			999=>>AWT]]F	ac

AE+U3eSUU^DEEH $$&&1::::
 xFq999Fff-----rE   c                  `   t           j                            d          } |                     d          }t	                      t                      t                      fD ]O}|                    |                              |          }|	                    |          }t          ||           Pd S )Nr   r  )rG   r   r   r  r   r   r   r_   r   r  r,   )rZ   rd   objX_transformedX_transformed2s        rD   test_fit_transformr    s    
)


"
"C&!!A  *,,	< : :

,,Q//**1--=.9999: :rE   c                  l    ddgddgddgg} t          |           } t          | g dg dg dg           d S Nr;   r   )r;   r;   r   ro   )r   r,   r  s    rD   test_add_dummy_featurer    sP    
Q!Q!Q A!Aq999iii;<<<<<rE   c                     | ddgddgddgg          }|j         }t          |          }t          j        |          r|j         |k    s
J |            t	          |                                g dg dg dg           d S r  )r  r   r   r  r,   r@   )r   rd   desired_formats      rD   test_add_dummy_feature_sparser    s     	1a&1a&1a&122AXN!A?1?!(n"<"<"<a"<"<"<qyy{{YYY			999$EFFFFFrE   c                      t           j        } | d d d df         }t          dd          t                      t	                      g}|D ],}|                    |            |                    |           -d S )NrU   Fr   )rm  rn  r   r   r   r  )rd   r#  scalersrf   s       rD   test_fit_cold_startr    s    	AQQQU8D 	777G  # #Q 	T""""	# #rE   methodbox-coxyeo-johnsonc                 r   t          |           }t          j        t                    }t	          j        t                    5  |                    |           d d d            n# 1 swxY w Y   t	          j        t                    5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr  )	r   rG   r  r   r\   r]   r   r   r   )r  ptrd   s      rD    test_power_transformer_notfittedr    s   		(	(	(B
vA	~	&	&  
Q              	~	&	&    
Q                                   s$   A%%A),A)	B,,B03B0standardizec                     | dk    rt          j        |          n|}t          | |          }|                    |          }t	          ||                    |                     d S )Nr  r  r  )rG   r  r   r  r*   r   )r  r  rd   r  rp  s        rD   test_power_transformer_inverser    sh     y((q			aA	[	A	A	ABq!!G2//8899999rE   c                     t          j        t                    } dD ]A}t          d|          }|                    |           }t          | d|          }t          j        |                                           \  }}|rt          |          }t          |                    dd          |           t          |                    dd          |           t          | |                    |                     t          ||j        d                    t          |j                  | j        d         k    sJ t!          |j        t           j                  sJ Cd S )NTFr  r  r:   r;   r   )rG   r  r   r   r  r   r   boxcoxflattenr   r*   r9  r   lambdas_r  rI   r   r  )rd   r  r  rp  X_trans_funcr  lambda_expecteds          rD   test_power_transformer_1dr  	  sD   
vA$ 3 3YKHHH""1%%&qTTT&+l199;;&?&?#
O 	+z**JJ..r155w???J..r155|DDDAr33G<<===OR[^<<<2;171:----"+rz222222%3 3rE   c                     t          j        t                    } dD ]C}t          d|          }|                    |           }t          | d|          }||fD ]}t          |j        d                   D ]{}t          j	        | d d |f         
                                          \  }}|rt          |          }t          |d d |f         |           t          ||j        |                    ||                    |          }	t          |	|            t!          |j                  | j        d         k    sJ t#          |j        t           j                  sJ Ed S )Nr  r  r  r;   )rG   r  r#  r   r  r   r   rI   r   r  r  r   r*   r  r   r+   r  r   r  )
rd   r  r  X_trans_classr  rp  jr  lmbdaX_invs
             rD   test_power_transformer_2dr  	  sm   
tA$ 3 3YKHHH((++&qTTT%|4 	0 	0G7=+,, ; ;$)L111a41B1B$C$C!
E 3!&z!2!2J#GAAAqDM:>>>#E2;q>:::: ((11E%eQ////2;171:----"+rz222222+3 3rE   c                     t          d          } |                     t          j        t                               t          }d}t          j        t          |          5  |                     |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                     |           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          |          5  |                     t          j
        t          j                             d d d            n# 1 swxY w Y   t          j        t          |          5  |                     t          j
        t          j                             d d d            n# 1 swxY w Y   t          j        t          |          5  t          t          j
        t          j                  d           d d d            d S # 1 swxY w Y   d S )Nr  r  zstrictly positiver   )r   r_   rG   r  r#  r\   r]   r^   r   r   r   rI   )r  X_with_negativesnot_positive_messages      rD   9test_power_transformer_boxcox_strictly_positive_exceptionr  6	  s~    
	+	+	+BFF26$<<.	z)=	>	>	> ' '
%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
z)=	>	>	> ! !
   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
z)=	>	>	> < <(;;;;< < < < < < < < < < < < < < < 
z)=	>	>	> + +
RXdj))***+ + + + + + + + + + + + + + + 
z)=	>	>	> % %
rx
##$$$% % % % % % % % % % % % % % % 
z)=	>	>	> @ @,,Y????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @sl   !BB
B)CCC1DDD52E33E7:E72GGG=.H88H<?H<c                 (    t          | d           d S )Nr  r  )r   r  s    rD   +test_power_transformer_yeojohnson_any_inputr  R	  s     Am,,,,,,rE   c                    t          |           }t          j        t                    }|                    |           d}t          j        t          |          5  |                    |d d ddf                    d d d            n# 1 swxY w Y   t          j        t          |          5  |	                    |d d ddf                    d d d            d S # 1 swxY w Y   d S )Nr  zBX has \d+ features, but PowerTransformer is expecting \d+ featuresr   r   r;   )
r   rG   r  r#  r_   r\   r]   r^   r   r   )r  r  rd   wrong_shape_messages       rD   &test_power_transformer_shape_exceptionr   X	  sh   		(	(	(B
tAFF1III
 	N  
z)<	=	=	=    
Qqqq!A#vY                              
z)<	=	=	= ( (
Qqqq!A#vY'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s$   "B

BB0"CC#&C#c                     t          dd          } t          j        t                    d d ddf         }t          j        dg          | _        |                     |          }t          |                     |          |           d S )Nr  Fr  r   r;   )	r   rG   r  r#  rp   r  r   r+   r   r  rd   rp  s      rD   "test_power_transformer_lambda_zeror  k	  sx    		>	>	>B
tQQQ!VA (A3--BKll1ooGb227;;Q?????rE   c                      t          dd          } t          j        t                    d d ddf         }t          j        dg          | _        |                     |          }t          ||           d S )Nr  Fr  r   r;   )r   rG   r  r#  rp   r  r   r+   r  s      rD   !test_power_transformer_lambda_oner  u	  sh    	E	B	B	BB
tQQQ!VA(A3--BKll1ooGgq)))))rE   zmethod, lmbda))r  r  )r  ru  )r  r  )r  ru  )r  rn   c                 b   t           j                            d          }d}|                    dd|df          }| dk    rt          j        |d|z  dz   d           }t          | d	          }|g|_        |                    |          }t          | d	          }|                    |          }t          dt           j
                            ||z
            |z  d
           t          d|                                d           t          d|                                d           d S )Nr   i N  r;   )locr   r=   r  r:   r   Fr  rU   r  )rG   r   r   r  rY  r   r  r   r  r*   linalgr\  r   r   )r  r  rZ   rb   rd   r  r  X_inv_transs           rD   #test_optimization_power_transformerr
  	  s(   " )


"
"CI

qA
77A GArEzD($//	U	;	;	;B'BK  ##E	U	;	;	;B""5))K29>>!k/::YFPQRRRR;++--q9999;??,,a888888rE   c                      t          dd          } dg| _        |                     dgg          }t          j        |          sJ d S )Nr  Fr  ru  g )r   r  r   rG   r  )r  r  s     rD   test_invserse_box_coxr  	  sN    		>	>	>B%BK  4&**E8E??rE   c                      g d} t          j        |                               dd          } t          d                              |           j        }t          j        |dd          sJ d S )	N)gffffff@g rn   rm   gffffff?g333333@r}   gffffff@g?g@r  r   g"@g      @g      r:   r;   r  r  gzG?rU  r   )rG   rp   r9  r   r_   r  allclose)rd   r  s     rD   test_yeo_johnson_darwin_exampler  	  sq     	VUUA
B""AM22266q99BE;ue$////////rE   c                    t          j        t                    }t          |           }|                    |           |j        d         }t          j        |t          j        |t           j                  g          }t          |d          }|                    |           |j        d         }t          ||d           |                    |          }t          t          j        |          t          j        |                     d S )Nr  r   )r   rk   r  )rG   r  r   r   r_   r  concatenate	full_likerq   r"   r*   r   r,   r  )r  rd   r  lmbda_no_nans
lmbda_nansrp  s         rD   test_power_transformer_nansr  	  s    
 	vA		(	(	(BFF1IIIKNM 	2<2622344A"""AFF1IIIQJz1====ll1ooGrx(("(1++66666rE   c                     t           }| dk    rt          j        |          }t          | |          }t	          |                    |                              |          |                    |                     d S )Nr  )r  )r   rG   r  r   r+   r_   r   r  )r  r  rd   r  s       rD   $test_power_transformer_fit_transformr  	  so     	AF1II	&k	:	:	:BbffQii11!44b6F6Fq6I6IJJJJJrE   c                    t           }| dk    rt          j        |          }|                                }||usJ t	          ||           t          | |d          }|                    |           t	          ||           |                    |          }||usJ |                    |          }t	          ||           ||usJ |	                    |          }||usJ d S )Nr  Tr  r   )
r   rG   r  r   r+   r   r_   r   r  r   r  r  rd   
X_originalr  rp  r	  s          rD    test_power_transformer_copy_Truer  	  s    
 	AF1IIJJa,,,	&k	E	E	EBFF1IIIa,,,ll1ooG!q!!Ga,,,!&&w//K+%%%%%%rE   c                    t                                           }| dk    rt          j        |          }|                                }||usJ t	          ||           t          | |d          }|                    |           t	          ||           |                    |          }||u sJ | dk    rt          j        |          }|                    |          }||u sJ |	                    |          }||u sJ d S )Nr  Fr  )
r   r   rG   r  r+   r   r_   r   r  r   r  s          rD   !test_power_transformer_copy_Falser  	  s   
 	AF1IIJJa,,,	&k	F	F	FBFF1IIIa,,,ll1ooGa<<<<F1IIq!!Ga<<<<&&w//Kk!!!!!!rE   c                     t                               d          } t          j        | dddf<   d}t	          d          }t          j        t          |          5  |                    |            ddd           dS # 1 swxY w Y   dS )zqCheck that box-cox raises informative when a column contains all nans.

    Non-regression test for gh-26303
    r  Nr   zColumn must not be all nan.r  r  r   )	rZ   r  rG   rq   r   r\   r]   r^   r  )rd   r  r  s      rD   1test_power_transformer_box_cox_raise_all_nans_colr   
  s    
 	&!!AfAaaadG+G		+	+	+B	z	1	1	1  
                 s   A>>BBr5  皙?)r  r   c                 `    g | ]+} |t          j        d t           j                            ,S ))r>   r;   )r   )rG   r   rq   )r   r  s     rD   r   r   %
  sC        	bgg"&999::  rE   c                     t          j        ddd          }t          d          }|                    |                              |            t          j        |j        d                   sJ d S )Nrk   r;   r!  r  Frx   r   )r   r   r   r_   r$  rG   r  r   )r5  r4  rf   s      rD   7test_standard_scaler_sparse_partial_fit_finite_variancer$  "
  sj     -1c
*
*
*Ce,,,F
JJsOO$$$;v{1~&&&&&&&rE   rj  )r   r;   )r.  r>   c                    t           j        }t          | d                              |          }t	          j        |d          t	          j        |d          }}t          j        |d d         dz
  |dd          dz   f         g}|                    |          }t          || d         | d         | d         | d         gg           d S )NT)rj  rY  r   r   rU   r>   r;   )
rm  rn  r   r_   rG   ro  r^  r_r   r(   )rj  rd   rf   X_minX_maxr   r  s          rD   test_minmax_scaler_clipr)  3
  s     		ADAAAEEaHHF 6!!$$$bfQQ&7&7&75EeE"1"INE!""IN234F$$V,,M

M!,mA.>a@P	QR    rE   data_constructorc                     | t           j                  }t          j        |          }t	          d                              |          }t          j        t          j        |          d          }|r|j        n|} | t          j	        |d d         dz   |dd           dz
  f          
                    dd                    }|                    |          }t          | | g d	g                     d S )
NTrX  r   r   rU   r>   r;   r:   )r;   r;   r:   r:   )rm  rn  r   r  r   r_   rG   r^  r  hstackr9  r   r)   )r*  rd   	is_sparserf   rd  r   r  s          rD   test_maxabs_scaler_clipr.  C
  s    
 	##A""It$$$((++F fRVAYYQ'''G'4gllWG
	72A2;#gabbk\B%6788@@BGG F $$V,,M 0@0@...AQ0R0RSSSSSrE   c                     t                                          t                    } d}t          j        t
          |          5  |                     t          dddf                    ddd           dS # 1 swxY w Y   dS )zCheck that `inverse_transform` from `StandardScaler` raises an error
    with 1D array.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/19518
    z'Expected 2D array, got 1D array insteadr   Nr   )r   r_   r#  r\   r]   r^   r   )rf   r  s     rD   -test_standard_scaler_raise_error_for_1d_inputr0  V
  s     !!$''F7G	z	1	1	1 - -  aaad,,,- - - - - - - - - - - - - - - - - -s   %A66A:=A:c                     dt          j        g ddz  g dz   t           j                                      dd          z  } t	                      }t          j                    5  t          j        dt                     |	                    |           }d	d	d	           n# 1 swxY w Y   t          j
        t          j        |                    rJ |                                t          j        d
          k    sJ |                                t          j        d          k    sJ |                                dk    sJ |                                dk     sJ d	S )a  Check that significantly non-Gaussian data before transforms correctly.

    For some explored lambdas, the transformed data may be constant and will
    be rejected. Non-regression test for
    https://github.com/scikit-learn/scikit-learn/issues/14959
    r7  )rl  rm   r   r&  rj   )r	     r2        r  U   r  r   r:   r;   r   Nr   rn   r  rU   )rG   rp   r   r9  r   r   r  r  RuntimeWarningr  r   r  r   r\   rJ  r   ro  r^  )X_non_gaussianr  rp  s      rD   1test_power_transformer_significantly_non_gaussianr8  b
  s    28q #C#C#CC2:  gb!nnN 
		B		 	"	" 3 3g~666"">223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 vbhw''(((((<<>>V]3//////;;==FM#......;;==2;;==1s   #0BB#&B#Transformerc                      |                                  t          j                  }|                    t          j                  }t          |t          j                   dS )9Check one-to-one transformers give correct feature names.N)r_   rm  rn  get_feature_names_outfeature_namesr,   )r9  tr	names_outs      rD   test_one_to_one_featuresr@  z
  sN     
		49	%	%B(();<<Iy$"455555rE   c                 d   t          j        d          }|                    t          j        t          j                  } |                                 |          }|                                }t          |t          j                   |                    t          j                  }t          |t          j                   t          j
        d          }t          j        t          |          5  t          d          }|                    |           ddd           dS # 1 swxY w Y   dS )r;  pandas)columnsz0input_features is not equal to feature_names_in_r   abcdN)r\   importorskip	DataFramerm  rn  r=  r_   r<  r,   reescaper]   r^   r   )r9  pddfr>  names_out_df_defaultnames_out_df_valid_inmsginvalid_namess           rD   test_one_to_one_features_pandasrO  
  s@    
	X	&	&B	di);	<	<B			2		B3355+T-?@@@44T5GHH,d.@AAA
)F
G
GC	z	-	-	- 0 0V
  ///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   3%D%%D),D)c                  ^   t           j                            d          } |                     d          }t	          |          }t                                          |          }|                                }|j        d         }t          |d t          |          D                        dS )z.Test that kernel centerer `feature_names_out`.r   )rl   rj   r;   c                     g | ]}d | S )kernelcentererrL   r   s     rD   r   z:test_kernel_centerer_feature_names_out.<locals>.<listcomp>
  s!    "U"U"UA#7A#7#7"U"U"UrE   N)rG   r   r   r  r
   r   r_   r<  rI   r,   r   )rZ   rd   
X_pairwiser  r?  samples_out2s         rD   &test_kernel_centerer_feature_names_outrU  
  s     )


"
"C&!!Aq!!J##J//H..00I#A&Ly"U"U|ATAT"U"U"UVVVVVrE   c                 ^   g dg dg dg}t          d|                               |          }t          |j        g d           |                    |          }|                    |          }||fD ]7}| r#t          |t          j        |                     't          ||           8dS )z>Check that PowerTransfomer leaves constant features unchanged.)r  r   rU   r  r  r
  N)r   r_   r(   r  r  r   rG   r   )r  rd   r  XftXtXt_s         rD   'test_power_transformer_constant_featurerZ  
  s     
ZZZ,A	K	H	H	H	L	LQ	O	OBBK+++


1

C	aBRy $ $ 	$Cq!1!12222C####	$ $rE   zcno floating point exceptions, see https://github.com/numpy/numpy/pull/21895#issuecomment-1311525881)reasonc                      t          d          } t          j        g d                              dd          }|                     |           | j        d         }|dk     sJ t          j        dg                              dd          }t          j        t          d	          5  | 	                    |          
                                }d
d
d
           n# 1 swxY w Y   t          j        |          sJ d
S )zCheck if a warning is triggered when the inverse transformations of the
    Box-Cox and Yeo-Johnson transformers return NaN values.r  r  )r;   r;   r   r:   r;   r   r>   zSome values in columnr   N)r   rG   rp   r9  r_   r  r\   r  r  r   itemr  )transr  r  psix_invs        rD   *test_yeo_johnson_inverse_transform_warningra  
  s&    M222E
&&r1--A	IIaLLLN1E19999 (B4..
 
 Q
'
'C	k)@	A	A	A 4 4'',,11334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8E??s   )(CC!$C!z1.12z2scipy version 1.12 required for stable yeo-johnsonc                      t          j        g d          } d } ||                     dd                      || dd                             dd                     dS )a-  Verify that PowerTransformer operates without raising any warnings on valid data.

    This test addresses numerical issues with floating point numbers (mostly
    overflows) with the Yeo-Johnson transform, see
    https://github.com/scikit-learn/scikit-learn/issues/23319#issuecomment-1464933635
    )
g     L@g     x@g     4@g     @@     d@rc  g     @g     <@g     \@g     @c                 (   t          j        d          5 }t          j        d           t          dd                              |            ddd           n# 1 swxY w Y   |r*J dd                    d	 |D                       z               dS )
z0Internal helper to test for unexpected warnings.Tr  alwaysr  r  Nz!Unexpected warnings were raised:

c              3   >   K   | ]}t          |j                  V  d S r  )strmessage)r   ws     rD   	<genexpr>zPtest_power_transformer_no_warnings.<locals>._test_no_warnings.<locals>.<genexpr>  sC       U
 U
 C	NNU
 U
 U
 U
 U
 U
rE   )r   r  r  r   r  join)rn  caught_warningss     rD   _test_no_warningsz=test_power_transformer_no_warnings.<locals>._test_no_warnings
  s   $D111 	Y_!(+++MtDDDRRSWXXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y # 	
 	
$H499 U
 U
$3U
 U
 U
 L
 L
 %
 	
 	
 	
 	
 	
s   9AA"Ar:   r;   Nrk   )rG   rp   r9  )r  rn  s     rD   "test_power_transformer_no_warningsro  
  s     		
 	
 	
	 	A
 
 
 aiiA&&''' aemmB**+++++rE   c                      t          d                              t                    } | j        d         t	          j        dd          k     dS )zFCheck that the results are consistent across different SciPy versions.r  r  r   gd8?r   )relN)r   r_   r   r  r\   rJ  )r  s    rD   +test_yeojohnson_for_different_scipy_versionrr    sF    		/	/	/	3	3F	;	;BKNfmJD9999999rE   )rG  r   numpyrG   numpy.linalgr  rm  r\   scipyr   r   sklearnr   r   sklearn.baser   sklearn.exceptionsr   $sklearn.externals._packaging.versionr	   parse_versionsklearn.metrics.pairwiser
   sklearn.model_selectionr   sklearn.pipeliner   sklearn.preprocessingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sklearn.preprocessing._datar   r   sklearn.svmr    sklearn.utilsr!   r"   sklearn.utils._array_apir#   r$   r%   sklearn.utils._testingr&   r'   r(   r)   r*   r+   r,   r-   r.   sklearn.utils.estimator_checksr/   r0   sklearn.utils.fixesr1   r2   r3   r4   r5   r6   sklearn.utils.sparsefuncsr7   	load_irisrm  r   r   rZ   rc   rb   r   r<  r   r[   r#  r9  r   r   tolistr   X_list_1colr@   rJ   rS   rh   rr   markparametrizer   r   r   r   r   r   r   r   r   r  r  r  r  r2  r5  r?  rF  rR  rU  rc  rf  rr  r  r  r  r  r  r  r  r  r  r  r  r  rB  r  r  r  r  r  r  r  r  r  r  r  r  r$  r'  r+  r1  r6  r8  r=  rA  rH  rL  rN  rQ  rY  r^  r`  rb  re  rk  rq  r}  r  r  r  rp   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rI   r  r   r  r  r
  r  r  r  r  r  r  r   r$  r)  r.  r0  r8  r@  rO  rU  rZ  xfailra  skipifro  rr  rL   rE   rD   <module>r     s   
			                     , , , , , , , ,       - - - - - - G G G G G G 2 2 2 2 2 2 5 5 5 5 5 5 % % % % % %                                     & Q P P P P P P P       . . . . . . . .         

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                       9 8 8 8 8 8x 	iA
	
++b!*+
-
-	Q	,	,
yyJ''&07:	ad		Az	*	*	aaad		Iq	)	)mmoommoo  " " "M M M@ @ @$  2 5557O7O7Q7QRR,.S.S.STTN N UT SRN, 5557O7O7Q7QRR--//'   
5
 5
  SR5
p"0 "0 "0J +dVn-D~-UVV,udm<<1 1 =< WV1: '''E***  +dVn-D~-UVV,udm<<2:rz":;;___55 4  4 65 <; =< WV  4F &7&7&788$4$4$4552:rz":;;+dVn-D~-UVV/S /S WV <; 65 98/Sd	I 	I 	I #> #> #>L1 1 1hA A A23 3 3- - -`0K 0K 0Kf +^n-LMM+A +A NM+A\ 4,77+^n-LMM6 6 NM 876 4,77& & 87&R     0 )--//'   
 %&    
 $$


	
 	!   R R   2R )--//'   
 %&    
 4,77  87    @7 7 7>: : :# # #L 4,77+^n-LMM87 87 NM 8787v tUm44dE]33+dVn-D~-UVVI I WV 43 54I @ @ @ +^n-LMMN N NMN2 +^n-LMM57 57 NM57p +^n-LMMD D NMD  +^n-LMM7 7 NM7*     )D%=99$77ryr155{v{2qRU7V7V7VWXX% % YX 87 :9%$ .99D D :9D
: 
: 
: $:$:$:;;*,S,S,STT? ? UT <;?( .99E E :9E	& 	& 	&	* 	* 	* .99O O :9O( .9962 62 :962r .99> > :9>B. . .@,= ,= ,=^
H 
H 
H .99#B #B :9#BL8 8 8 .99" " :9"J= = =	= 	= 	= ':;;( ( <;(&" " " .99!G !G :9!GH& & && & &F F F27 7 7$ +^n-LMM&? &? NM&?R3 3 3( .99	D 	D :9	DM M M@ .995 5 :95p. . .* !4!4!455.99+ + :9 65+@ !4!4!4557.H # #  65#" .99A A :9A( .99*@ *@ :9*@Z BHd#n4~E 30 30 30l )+T+T+V+V 	N 	N 	N)7 )7 )7X3H 3H 3Hl. . .(: : := = = 7.H G G G# # #$ I}#=>>    ?>  I}#=>>u66vtn--: : .- 76 ?>:3 3 303 3 36@ @ @8 tVRVD\\FBF4LL=("(4:BVBVWXX- - YX-
 I}#=>>( ( ?>($@ @ @* * *   	 	9 9	 	98  0 0 0 I}#=>>7 7 ?>7, I}#=>>u66K K 76 ?>K I}#=>>u66& & 76 ?>&4 I}#=>>u66" " 76 ?>"8   	V]2q#A6667 +   ' ' ' 69*=>>  ?> 
^3nD T T T 	- 	- 	-  0 
 
6 6
 
6 	 0 0 0&
W 
W 
W u66$ $ 76$$ 	M     $ v&&&?   $, $,	 $,N: : : : :rE   