
    Ki                    z   S SK r S SKrS SKrS SKJr  S SKrS SKJ	r	J
r
  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,  S SK-J.r.J/r/  S SK0J1r1  S SK2J3r3J4r4  S SK5J6r6J7r7J8r8  S SK9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrB  S SKCJDrDJErE  S SKFJGrGJHrHJIrIJJrJJKrKJLrL  S SKMJNrN  \R                  " 5       rP\R                  R                  S 5      rSSrTSrU\SR                  SS\TS9rW\SR                  SS\TS9rX\SR                  \U\T5      \X-  \W-   rZ\ZS SS24   R                  S\T5      r\\ZSS2S 4   R                  \US5      r]\\R                  5       r_\]R                  5       r`S raS rbS rcS rdS re\R                  R                  / SQ\e" 5       5      \R                  R                  S/ S Q5      S! 5       5       rh\R                  R                  / SQ\e" 5       5      \R                  R                  S"\8" 5       \7S#9S$ 5       5       riS% rj\R                  R                  S&S/\I-   \J-   5      \R                  R                  S'S(S)/5      S* 5       5       rk\R                  R                  S+\$" S(S,9\#" S(S-9/5      \R                  R                  S&S/\I-   \J-   5      \R                  R                  S'S(S)/5      \R                  R                  S.\R                  \R                  /5      \R                  R                  S// S0Q5      S1 5       5       5       5       5       rn\R                  R                  S2/ S3Q5      \R                  R                  S4/ S5Q5      \R                  R                  S.\R                  \R                  /5      \R                  R                  S&S/\I-   \J-   5      S6 5       5       5       5       roS7 rp\BS8 5       rqS9 rrS: rsS; rtS< ruS= rv\R                  R                  S&\I\J-   5      S> 5       rw\R                  R                  S?S)S/5      \R                  R                  S&\I\J-   5      S@ 5       5       rx\R                  R                  S?S)S/5      SA 5       rySB rz\R                  R                  SC\8" 5       \7S#9\R                  R                  SD\E/\DS#9\R                  R                  SE\" 5       \" S)SF9\" 5       \" S)SF9\" 5       \ " SGSH9\ " SISH9\ " SJSH9\" 5       /	\DS#9SK 5       5       5       r{\R                  R                  SC\8" 5       \7S#9\R                  R                  SD\E/\DS#9\R                  R                  S?S)S/5      SL 5       5       5       r|SM r}SN r~SO rSP r\R                  R                  S?S)S/5      \R                  R                  S&\I\J-   5      SQ 5       5       r\R                  R                  SRS)S(/5      \R                  R                  SSS)S(/5      \R                  R                  S&S/\I-   \J-   5      ST 5       5       5       rSU r\R                  R                  S&\I\J-   5      SV 5       r\R                  R                  S&\I\J-   5      SW 5       r\R                  R                  S&\J\I-   5      SX 5       r\R                  R                  S&\J\I-   5      SY 5       rSZ rS[ r\R                  R                  S\S)S(/5      \R                  R                  S]S)S(/5      \R                  R                  S^\R                  R                  SS_5      \	GR                  " SS_S`Sa9/5      Sb 5       5       5       r\R                  R                  Sc\J5      Sd 5       rSe r\R                  R                  Sf/ SgQ5      \R                  R                  Sh/ SiQ5      Sj 5       5       r\R                  R                  Sc\J5      Sk 5       rSl rSm r\R                  R                  Sn\I5      So 5       r\R                  R                  Sn\I5      Sp 5       r\R                  R                  Sn\I5      Sq 5       rSr rSs rSt r\R                  R                  Sn\I5      Su 5       rSv r\R                  R                  Sn\I5      Sw 5       rSx rSy r\R                  R                  SzS{S|/5      S} 5       rS~ r\R                  R                  Sc\J5      S 5       rS rS rS rS r\R                  R                  S&\I\J-   5      S 5       rS r\R                  R                  Sc\J5      S 5       rS r\R                  R                  Sc\J5      S 5       rS r\R                  R                  S/ SQ5      \R                  R                  Sc\J5      S 5       5       r\R                  R                  S/ SQ5      \R                  R                  S&\H\I-   \K-   5      S 5       5       r\R                  R                  Sc\J5      S 5       r\R                  R                  Sc\J5      S 5       r\R                  R                  S\GR\                  \/\I-   \J-   5      S 5       r\R                  R                  SC\8" 5       5      S 5       rS rS rS rS rS r\R                  R                  S&\H\I-   \J-   5      S 5       rS r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      \R                  R                  SS)S(/5      \R                  R                  S^\]\Z/5      S 5       5       5       rS rS rS r\R                  R                  S^\Z\GR|                  " \Z5      \GR|                  " \Z5      * \GR~                  " \ZGR                  5      /5      S 5       r\R                  R                  SSS/5      S 5       rS rS r\R                  R                  S/ SQ5      S 5       rS rS r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      \R                  R                  SS)S(/5      S 5       5       r\R                  R                  SSS/5      \R                  R                  SS)S(/5      S 5       5       r\R                  R                  SSS/5      \R                  R                  SS)S(/5      S 5       5       rS r\R                  R                  S\	R                  " SSSS S9/\J V s/ s H%  n U " \GR                  S\GR                  S95      PM'     sn -   5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  S\GR\                  /\I-   \J-   5      S 5       rS rS r\R                  R                  S\\\#\$\"\!/5      S 5       r\R                  R                  S\\\#\$\"\!\ \/5      S 5       rS r\R                  R                  SS)S(/5      S 5       r\R                  GR                  \GSS9S 5       r\R                  GR                  \L\" S5      :  SS9S 5       rS rgs  sn f )    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                 H    [        U S5      (       a  U R                  5       n U $ )Ntoarray)hasattrr@   as    g/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sklearn/preprocessing/tests/test_data.pyr@   r@   V   s    q)IIKH    c                 H    [         R                  " U 5      R                  S   $ )Nr   )npasarrayshaperB   s    rD   _check_dim_1axisrJ   \   s    ::a=q!!rE   c                 J    X#:w  a  U S-   U-  U:X  d   eg X-  X!-
  -   U:X  d   eg )Nr;    )ibatch_start
batch_stopn
chunk_sizen_samples_seens         rD   assert_correct_incrrS   `   s6    A#~555~!9:nLLLrE   c                  `   SS/n SS/n[        X5       H  u  p#[        R                  X#5      n[        R                  U5      n[        5       n[        R                  US5      S-  n[        R
                  " [        5         UR                  XEUS9  S S S 5        M     g ! , (       d  f       M  = f)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:]]:&JJq+>J? '& "> '&s    B
B-	c            	   #   "  #    / SQ/ SQ// SQ/ SQ/ SQ/SS/4/ SQ/ SQ// SQ/ SQ/ SQ/ SQ/[         R                  " SS/5      4S[         R                  S/[         R                  [         R                  S//S[         R                  S/[         R                  [         R                  S/[         R                  [         R                  S/[         R                  [         R                  S//[         R                  " SS/5      44 S h  vN   g  N7f)	N)r;   rU   rV   )                @      ?r;   r   r;   )r   r   r;   r;   rV   )rG   arraynanrL   rE   rD   _yield_xw_x_sampleweightrr   y   s      	"	9-#J	
 	"	9i8HHaV	
 ^bffbffa01BFFA###	 HHaV		
  s   DDDD)Xwrd   rX   array_constructor)rp   
sparse_csr
sparse_cscc                 2   UR                  S5      (       + n[        X5      n[        X5      n [        R                  " U R                  S   5      n[        US9nUR                  XUS9  [        R                  " UR                  S   5      n[        US9nUR                  X5        / SQ/ SQ/n	[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  U	5      UR                  U	5      5        g )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0A	B	2B 
!	B	2HLL}L5 	
Ai0F
JJq/Fhnn5X]]3((0(2D2DV2LMrE   znamespace, dev, dtype)idsc           	         [        X45      n[        R                  " U5      R                  USS9n[        R                  " UR
                  S   5      R                  USS9n[        R                  " U 5      R                  USS9n [        R                  " U R
                  S   5      R                  USS9n[        R                  " / SQ/ SQ/5      R                  USS9n	[        5       n
U
R                  X5        [        5       nUR                  XUS9  UR                  XS9nUR                  XtS9nUR                  XS9nUR                  XS9nUR                  XS9nUR                  X$S9n[        5       n[        SS	9   UR                  XUS9  [        UR                  US
9n[        UR                  US
9nS S S 5        [        UR                  W5        [        UR                  W5        [        5       n[        SS	9   UR                  X5        [        UR                  US
9n[        UR                  US
9nS S S 5        [        U
R                  W5        [        U
R                  W5        [        UU5        [        UU5        [        SS	9   [        [        UR                  U5      US
9[        UR                  U5      US
95        S S S 5        g ! , (       d  f       GN!= f! , (       d  f       N= f! , (       d  f       g = f)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"5A	"		U		/B	!		$	$U	$	7BXX89@@U@SFF
JJqHLL}L5 ::a:$D::a:$DJJrJ&EJJrJ&E

6
.Izz-z< "K	4	04DE";#4#4<!+"2"2r: 
1
 HNNF+HMM5)  I	4	0d!#IOO;"9>>b9 
1
 FLL'*FKK( GV$FE"	4	0i11)<Dk33I>2F	
 
1	0+ 
1	0 
1	0 
1	0s$   9K:K';K8
K$'
K58
Lc                     [         [        [        [        4 GH  n [        5       nUR	                  U 5      R                  U SS9n[        U [        5      (       a  [        R                  " U 5      n [        U 5      S:X  a  [        UR                  U R                  5       5        [        UR                  [        R                  " [         5      5        [#        UR%                  SS9[        R&                  " [         5      5        [#        UR)                  SS9[        R&                  " [         5      5        O[        UR                  U R%                  5       5        [        UR                  U R)                  5       5        [#        UR%                  SS9[        R&                  " [         5      5        [#        UR%                  SS9S5        [#        UR)                  SS9S5        UR*                  U R,                  S   :X  d   eUR/                  U5      n[#        X05        GM     [        R                  " S5      n [        5       nUR	                  U 5      R                  U SS9n[        UR                  S5        [        UR                  S5        [#        UR%                  SS9S5        [#        UR)                  SS9S5        UR*                  U R,                  S   :X  d   eg 	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!::a=**14*8aAA!#aggi8rwwz/BC%hmmm&;R]]:=VW%hlll&:BMM*<UVaffh7quuw7%hmmm&;R]]:=VW%hmmm&;SA%hlll&:C@%%333 00:!-3- 82 	AFzz!}&&qt&4Hc*s+hmmm3S9hlll2C8!!QWWQZ///rE   sparse_containeradd_sample_weightFTc                    [         R                  R                  S5      nSnSnU (       a  [         R                  " U5      nOS nSnUb!  [         R                  [         R
                  /nO/[         R                  [         R
                  [         R                  /nU H  nUR                  X45      R                  U5      n	Ub
  U" U	5      n	Sn[        US9n
U
R                  XS9R                  U	5      nU	R                  UR                  :X  d   eU
R                  R                  [         R                  :X  d   eU
R                  R                  [         R                  :X  a  M   e   g )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# ::rzz2::rzz2::> IIi,33E:' #AI)4::a:=GGJww(..(((||!!RZZ///}}""bjj000 !rE   rf   rx   with_centeringr   constant)r   rn         Y@c                 l   [        U 5      n [        U [        5      (       a4  U(       a-  [        R                  " U R
                  R                   S35        [        R                  R                  S5      nSnSnU(       a  [        UR                  US9S-  S9nO0 n[        R                  " Xg4XCS9n	Uc  U	OU" U	5      n
U R                  " U
40 UD6R                  U
5      n[        U [        5      (       a6  [!        U R"                  [        R$                  " U
R&                  S   5      S	S
9  [!        U R(                  [        R*                  " U
R&                  S   5      5        XLd   e[-        X5        [        U [        5      (       a-  U(       d%  [/        XR0                  S9nXLd   e[-        X5        g g g )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   ,  sa    6]F&,'',=v''0011TUV
))


"CIJ(Ca(GH

ggY3VG#+1A'1JAzz!*z*44Q7H&.))RXXaggaj%9E FMM2771771:#67 -&.))2C1(8(89
"""$Z3	 3D)rE   rb   )r>   r   i'  average)g|=r;       _Bc                 8   Su  pE[         R                  " [        XES-   5       Vs/ s H  nSU-  PM
     snUS9nUR                  S   n[         R                  " X4US9n	X'-   U	S U S-  2S S 24'   X'-
  XS-  S 2S S 24'   Uc  U	OU" U	5      n
[        SS9R                  U
5      n[         R                  " [         R                  5      R                  nX-  US-  -  U S-  US-  -  US-  -  -   nUS-  U:*  n[         R                  " U5      (       d   e[        UR                  U   X   :*  5      (       d   e[        UR                  U   S	5        U	SS S 24   U	S
S S 24   -
  S:g  n[        UR                  [         R                  " U5         S5        [        UR                  [         R                  " U5         S5        [         R                   " US-  U:  U5      n[        UR                  U   [         R"                  " UR                  5      U   5        g s  snf )N)i   r;   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_maxrM   scalesrc   rd   r   rf   r   boundswithin_boundsrepresentable_diffcommon_masks                    rD   +test_standard_scaler_near_constant_featuresr   Z  s    #IXXeI1}&EF&Er1u&EFeTFaJ
)(6A$-A	Q$-A1n#+a1A!1DGe,009F ((2::

"
"C _vqy(9a<#q&+@7A:+MMFAI'M 66-     v{{=)V-BBCCCCFMM-0#6 1a41RU8+q0FKK/A BCQGFMM"..1C"DEqI
 ..V!35GHKFMM+.0D[0QRQ Gs   Hc            	          / SQn [         R                  " U 5      nX4 HW  n[        U5      n[        UR	                  5       S5        [        UR                  5       S5        [        [        USSS9U5        MY     g )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HHVE_8!(--/37!(,,.#65eeDaH	 rE   c                     [         R                  " S[         R                  " S5      [         R                  S9n [        R
                  " 5          [        R                  " S[        5        [        U 5        S S S 5        [        [        U 5      [         R                  " S5      5        [         R                  " S[         R                  " S5      [         R                  S9n Sn[        R                  " [        US9   [        U 5      nS S S 5        [        W[         R                  " S5      5        [         R                  " SS[         R                  S9n [        R
                  " 5          [        R                  " S[        5        [        U 5      nS S S 5        [        W[         R                  " S5      5        [         R                  " SS	[         R                  S9nS
n[        R                  " [        US9   [        U5      nS S S 5        [        W[         R                  " S5      5        [        XS5        [        R                  " [        US9   [        USS9nS S S 5        [        W[         R                  " S5      5        [        Xc5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN)= f! , (       d  f       N= f! , (       d  f       N= f)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   
 	266$<rzz2A 
	 	 	"g{3a 
# eAh4 	BFF4L

3ARO	k	98 
:h5
F"**-A		 	 	"g{3q 
# nbhhrl; GGBRZZ0E<O	k	9U| 
:lBHHRL9l;	k	9uu5 
:nbhhrl;n=9 
#	" 
:	9
 
#	" 
:	9 
:	9s<   'J9J&'J/4KK
J
J,/
J>
K
K c                  N   [         R                  R                  S5      n SnSnU R                  X!5      nSUS S 2S4'   [	        5       nUR                  U5      R                  USS9n[         R                  " [         R                  " U5      5      (       a   eUR                  U:X  d   e[        UR                  SS9US/-  5        [        UR                  SS9/ SQ5        XSLd   eUR                  U5      nXcLd   eXeLd   e[        Xc5        [        US	S
S9n[         R                  " [         R                  " U5      5      (       a   e[        UR                  S	S9US/-  5        [        US	SS9n[         R                  " [         R                  " U5      5      (       a   e[        UR                  S	S9US/-  5        [        UR                  S	S9US/-  5        XSLd   eUR                  U5      R                  US
S9n[         R                  " [         R                  " U5      5      (       a   e[        UR                  SS9US/-  5        [        UR                  SS9/ SQ5        XSL d   eU R                  SS5      nSUS S 2S4'   [	        5       nUR                  U5      R                  USS9n[         R                  " [         R                  " U5      5      (       a   e[        UR                  SS9US/-  5        [        UR                  SS9/ SQ5        XSLd   eg )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		)(AAadGFzz!}&&qt&4Hvvbhhx())))!!Y...hmmm3Z3%5GHhlll24MN ,,X6M!!!(((m/QQ/Hvvbhhx())))hmmm3Y#5FGQQ.Hvvbhhx())))hmmm3Y#5FGhlll2I4EFzz!}&&qu&5Hvvbhhx())))hmmm3Z3%5GHhlll24MN==		!QAAadGFzz!}&&qt&4Hvvbhhx())))hmmm3Z3%5GHhlll24MNrE   c                  8   [         R                  R                  S5      n U R                  SSSS/5      R	                  [         R
                  5      n[         R                  " SS9   [        5       R                  U5      nUR                  U5      nS S S 5        [        5       R                  UR	                  [         R                  5      5      n[         R                  " [         R                  " W5      5      (       d   e[        X4SS	9  g ! , (       d  f       N= f)
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;'..rzz:A	'	"!%%a(##A& 
#
 "#11!((2::2FGL
 66"++h'((((
 ha@ 
#	"s   &+D
Dc                      [         R                  " / SQ5      n [        U SS9n[        U [         R                  " / SQ5      5        [        U[         R                  " / SQ5      5        g )N)r   gؗҜ<r;   rU   rV   Tr   )r;   r;   r;   rU   rV   )rG   rp   r   r(   )s1s2s     rD   test_handle_zeros_in_scaler    sD    	%	&B		.BB!456B12rE   c                  h   [         n U R                  S   nSSSXS-   4 GH  n[        5       R                  U 5      n[        5       n[	        [
        U5       H  nUR                  X   5      nM     [        UR                  UR                  5        [        UR                  UR                  5        UR                  UR                  :X  d   e[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        SU5      n[        5       R                  X   5      n[        5       R                  X   5      n[        UR                  UR                  5        [        UR                  UR                  5        UR                  UR                  :X  d   e[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        5       R                  U 5      n[        5       n[        [	        [
        U5      5       HD  u  puUR                  X   5      n[!        UUR"                  UR$                  UUUR                  S9  MF     GM     g )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_fitr.    s    	A	
A!RF+
#~))!,"n J7E%11!(;K 8 	","8"8+:O:OP!,"8"8+:O:OP++{/J/JJJJ!,":":K<S<ST!,"5"5{7I7IJ!,"3"3[5E5EF q*%#~))!)4"n00;!,"8"8+:O:OP!,"8"8+:O:OP++{/J/JJJJ!,":":K<S<ST!,"5"5{7I7IJ!,"3"3[5E5EF $~))!,"n!+i"DEHA%11!(;K!KK ::%*:: F= ,rE   c                     [         n U R                  S   nSSSXS-   4 GHa  n[        SS9R                  U 5      n[        SS9n[	        [
        U5       H  nUR                  X   5      nM     [        UR                  UR                  5        UR                  UR                  :X  d   eUR                  UR                  :X  d   e[        SU5      n[        5       R                  X   5      nUS:X  aw  [        [        R                  " [        [        R                  S9UR                  5        [        [        R                   " [        [        R                  S9UR"                  5        OV[        [        R$                  " X   SS	9UR                  5        [        [        R&                  " X   SS	9UR"                  5        [        5       R                  U 5      n[        5       n[)        [	        [
        U5      5       HD  u  puUR                  X   5      n[+        UUR,                  UR.                  UUUR                  S
9  MF     [        UR                  UR                  5        UR                  UR                  :X  a  GMb   e   g )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_fitr1  H  s    	A	
A!RF+
%u599!<$e4 J7E%11!(;K 8!,"4"4k6G6GH  K$4$4444++{/J/JJJJ q*%$&2219=?%2::68H8H &
"**5{7I7I &bffQYQ&?AQAQR%qyq);+=+=
 &'++A.$&!+i"DEHA%11!(;K!KK ::%*:: F 	","3"3[5E5EF++{/J/JJJJU ,rE   c                    [         R                  R                  S5      nSnSnUR                  SSUS9nUR                  SSUS9nUR	                  X25      U-  U-   n[        5       R                  U5      n[        5       nU H$  n	UR                  U	R                  S	U5      5      nM&     S
n
[        UR                  UR                  U
S9  [        UR                  UR                  U
S9  [        UR                  UR                  U
S9  SnSnU " UR                  SSU5      R                  [         R                  5      U-  5      n[        SS9R                  U5      n[        SS9nU H6  n	U	R                   S	:X  a  U	R                  S	S5      n	UR                  U	5      nM8     S
n
UR                  c   e[        UR                  UR                  U
S9  [        UR                  UR                  U
S9  g )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7G[[c
[3F		)(61G;A!#''*L "K!--emmAz.JK  CK%%|'9'9DK$$l&7&7cBK&&(;(;#F
 DEQ4077

CeKLA e,003F 51K::? MM!R(E!--e4  C<<###K$$fkk<K&&C@rE   rX   c                    U" [         R                  " S/S/S/S//5      5      nU (       a"  [        R                  UR                  S   5      n [        SSSS9nUR                  X S9R                  U5      n[        UR                  5       UR                  5       5        UR                  U5      n[        UR                  5       UR                  5       5        [        UR                  5       UR                  5       5        g )	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_inputrB    s     	C53%#">?@A,#ee$ON'''GQQRSTFv~~'5--f5Fv~~')9:v~~'5rE   c                 
   [         S S2S S 24   nU (       a"  [        R                  UR                  S   5      n [	        5       n[        [        UR                  S   S5      5       GH  u  p4US US-   2S S 24   nUR                  5       nU c-  [	        5       R                  U5      nUR                  X   5      nO1[	        5       R                  XPS US-    S9nUR                  X   X   S9nUR                  U5      n[        Xx5        [        XV5        UR                  U5      n	[        XY5        [        R                  " UR                  S   5      n
[        R                  " [         5      R"                  n[%        XR&                  U-   5        [%        XR(                  U-   5        U c  US-   UR*                  :X  d   eGMZ  [        R,                  " U S US-    5      [.        R0                  " UR*                  5      :X  a  GM   e   g )Nr   r   r;   rW   )r  rZ   r>  rI   r   r&  r!   r   r  r   r   r+   r   rG   r   r   floatr   r-   r   r   r   sumr\   approx)rX   rd   r+  rM   r,  X_sofarchunks_copyscaled_batchscaled_incrright_inputzeroepsilons               rD   .test_standard_scaler_trasform_with_partial_fitrN    s    	TcT1WA, "Kk!''!*a89Iq1uIqL/lln )+99'BL%11!(;K)+99Wq1u'= : L &11(< 2 K "++G4!,<!'7!33K@!'7xx
#((5/%%$ 0 07 :;$ 2 2W <= Ek9999966-!a%01V]]++6   9 :rE   c            	          [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9n [        5       nUR	                  U 5        UR                  U 5        g )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_transformrQ    sW     		
 hh
	A F
JJqM
 QrE   z#array_namespace, device, dtype_namecheck	estimatorclipl1norml2maxc                 @    U R                   R                  nU" XPX#US9  g )N)r   
dtype_name)r   r   )rS  rR  array_namespacer   r\  names         rD   'test_preprocessing_array_api_compliancer_    s!    8 ''D	$?jQrE   c           	      Z    [        5       nUR                  R                  nU " UUUUUUS9  g )N)r   r\  check_sample_weight)r   r   r   )rR  rX   r]  r   r\  rS  r^  s          rD   )test_standard_scaler_array_api_compliancerb    s7      I''D	)rE   c                  2   [         R                  n [        5       nUR                  U 5      n[	        UR                  SS9S5        [	        UR                  SS9S5        UR                  U5      n[	        X5        [        SS9nUR                  U 5      n[	        UR                  SS9S5        [	        UR                  SS9S5        UR                  U5      n[	        X5        [        SS9nUR                  U 5      n[	        UR                  SS9S5        [	        UR                  SS9S	5        UR                  U5      n[	        X5        [        S
S9n[        R                  " [        5         UR                  U 5        S S S 5        g ! , (       d  f       g = f)Nr   r   r;   r;   rU   feature_rangerU   )      333333?rg  rh  )rU   r;   )irisdatar   r  r+   minrZ  r   r\   r]   r^   r_   )rd   rf   X_transX_trans_invs       rD   test_min_max_scaler_irisrn  7  sO   		A^F""1%Ggkkqk115gkkqk115**73Ka- /F""1%Ggkkqk115gkkqk115**73Ka- 4F""1%Ggkkqk148gkkqk137**73Ka- /F	z	"

1 
#	"	"s   -F
Fc                     / SQ/ SQ/ SQ/n / SQ/ SQ/ SQ/n[        5       nUR                  U 5      n/ SQ/ SQ/ S	Q/n[        X45        UR                  U5      n[        X5        UR	                  U5      n/ SQ/ S
Q/ SQ/n[        XgSS9  [        SS9nUR                  U 5      n/ SQ/ SQ/ SQ/n[        X85        [        U 5      n[        X45        [        U SS9n[        X85        g )Nr   rn         ?r   rn   gr   rn   g?r   rm   rq        rn   r   r   rn   r{   )r   r   rq  r   r   r   r   r   rn   )rv  r   gsh|??)r   r   gS?rU   r  rd  re  )rn   rn   r{   rn   rn   rn   )rn   rn   rm   )r   r  r+   r   r   r   )	rd   X_newrf   rl  X_expected_0_1rm  X_trans_newX_expected_0_1_newX_expected_1_2s	            rD   *test_min_max_scaler_zero_variance_featuresr  W  s    	+-=>A/1ABE ^F""1%G%HNg6**73Ka-""5)K,.@BTUkqI /F""1%G%HNg6 1oGg61F3Gg6rE   c                      [         R                  n [        U SS9n[        [        R
                  " USS9S5        [        [        R                  " USS9S5        g )Nr;   r   r   )ri  rj  r   r+   rG   rk  rZ  )rd   rl  s     rD   test_minmax_scale_axis1r  v  sA    		A11%GbffW15q9bffW15q9rE   c                  \   [         [        [        [        4 GH7  n [        SS9nUR	                  U 5      R                  U 5      n[        U [        5      (       a  [        R                  " U 5      n [        U 5      S:X  ac  [        UR                  SS9[        R                  " [        5      5        [        UR                  SS9[        R                  " [        5      5        O2[        UR                  SS9S5        [        UR                  SS9S5        UR                   U R"                  S   :X  d   eUR%                  U5      n[        X05        GM:     [        R&                  " S5      n [        5       nUR	                  U 5      R                  U 5      nUR                  5       S:  d   eUR                  5       S::  d   eUR                   U R"                  S   :X  d   e[         R)                  5       nUR                  5       nUR                  5       n[        XE-
  Xe-
  -  [+        USS95        g r   )r   r   r   r   r_   r   r   r   rG   rp   rJ   r+   rk  r   rc   rZ  r   rI   r   r   r   r   )rd   rf   r   r   X_1dr$  max_s          rD   test_min_max_scaler_1dr  }  s   fk;74(::a=**1-aAA!#%hlll&:BHHZ<PQ%hlll&:BHHZ<PQ%hlll&:C@%hlll&:C@%%333 00:!-3# 8( 	A^Fzz!}&&q)H<<>S   <<>S   !!QWWQZ/// <<>D88:D88:D	%|Dt'DrE   c                    [         R                  R                  S5      nUR                  SS5      nSUS S 2S4'   U" U5      nU (       a  UR	                  UR
                  S   5      n [        R                  " [        5         [        5       R                  U5        S S S 5        [        SS9R                  X0S9nUR                  US	S
9n[         R                  " [         R                  " U5      5      (       a   e[        SS9R                  X@S9nUR                  US	S
9n[         R                  " [         R                  " UR                  5      5      (       a   e[        UR                   UR                   5        [        UR"                  UR"                  5        [        UR$                  UR$                  5        [        UR&                  UR&                  5        U c7  [        UR)                  SS9/ SQS5        [        UR+                  SS9/ SQ5        [-        US5      u  p[        XR)                  SS95        [        XR/                  SS95        XcLd   eXLd   eUR1                  U5      nXLd   eXLd   e[        X5        UR1                  U5      nXLd   eXLd   e[        UR3                  5       U5        U[4        ;   an  [        SSS	S9nUR7                  U5      n[9        UR                  UR                  5        UR1                  U5      n[9        UR                  UR                  5        g g ! , (       d  f       GN= f)Nr  rj   rk   r   r   Frx   rW   Tr   r   r   g{GzgQ@gffffffֿg(\rU   r
  r=  )rG   r   r   r[   r>  rI   r\   r]   r^   r   r_   r   r   r  rj  r+   r   r   r   r   r   r   r7   r0  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_backr?  r@  rA  s                   rD   test_scaler_without_centeringr    s    ))


#C		!QAAadG"H,	z	"X& 
# e,000PF-Hvvbhhx())))"U377 8 M $--hT-BOvvbhh3345555fllM,?,?@fkk=+=+=>fmm]-A-ABf44m6S6ST!MMqM!#CQ	
 	"(,,A,"68QR0B?TU0V-2MMqM4IJ1<<Q<3GH ***,,X6M!!!(((m/(::?K///6662::<a@>)'%%dS--h76;;611&96;;6 *U 
#	"s   L88
Mry   r   c                    [         R                  " / SQ[         R                  SS/SS[         R                  /SS[         R                  //[         R                  S9nUb  U" U5      n[        R
                  " U5      (       a  U (       a  [        R                  " S	5        [        XS
9nUR                  U5        [        UR                  [         R                  " / SQ5      5        g )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     		RVVQOaBFF^aBFF^DBJJ	A #QqiIJ 9HKOOA{22BHHY4GHrE   c                    U R                   UR                   s=L a  b   e   eU R                  UR                  s=L a  b   e   eU R                  UR                  s=L a  b   e   eU R                  UR                  :X  d   eg N)r   r   r   r   )scaler_1scaler_2s     rD   "_check_identity_scalers_attributesr    sp    >>X^^33333==HMM11111??hoo55555##x'?'????rE   c                    [         R                  " / SQ/ SQ/ SQ/[         R                  S9nU " U5      n[        SSS9nUR	                  U5      n[        XA5        [        U5      nUR	                  U5      n[        Xb5        [        X55        UR                  U5        UR                  U5        [        X55        UR                  U5        UR                  U5        [        X55        g )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    s     hh	9j9LG(H&G%33G<MM+01'55h?N :&'8M!!'*""8,&'8M'"8$&'8MrE   c                    [         R                  R                  S5      nUR                  SSS9nSUS S 2S4'   U " U5      n[        R
                  " SS9   [        SS	9R                  U5      nUR                  USS
9nS S S 5        [         R                  " [         R                  " W5      5      (       a   e[        R
                  " SS9   [        SS	9R                  U5      nUR                  USS
9nS S S 5        [         R                  " [         R                  " WR                  5      5      (       a   e[        WR                  WR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        UR!                  SS9/ SQS5        [        UR#                  SS9/ SQ5        [%        UR'                  [(        5      S5      u  p[        XR!                  SS95        [        XR#                  SS95        XRLd   eXsLd   eUR+                  U5      n
XLd   eXLd   e[        X5        UR+                  U5      nXLd   eXLd   e[        UR-                  5       U5        U [.        ;   a  [        SSSS9n[        R
                  " SS9   UR1                  U5      nS S S 5        [3        WR                  UR                  5        UR+                  U5      n[3        UR                  UR                  5        g g ! , (       d  f       GN= f! , (       d  f       GNE= f! , (       d  f       N= f)Nr     rj   rk   r<   r   TrecordFrx   r   r   )r   gX9v?gV-?g      5@gl?rU   r
  r=  )rG   r   r   r6  r   r   r   r_   r   r   r  rj  r+   r   r   r   r   r   r7   r   rD  r   r@   r4   r  r,   )r   rZ   rd   r  rf   r   r  r  r  X_sparse_scaled_stdr   r  r?  r@  rA  s                  rD   test_scaler_intr    s    ))


#CBV$AAadG"H		 	 	-%044Q7##AD#1 
. vvbhhx())))		 	 	-&7;;HE'11(1F 
. vvbhh3345555fllM,?,?@fkk=+=+=>fmm]-A-AB1? hlll24MN0Bu%q1- 2MMqM4IJ1<<Q<3GH ***,,X6M!!!(((m/(::?K///6662::<a@>)'%%dS$$D1#11(;F 26;;611&96;;6 *O 
.	-
 
.	-H 21s$   )L )L23M 
L/2
M
Mc                    [         R                  R                  S5      nUR                  SS5      nSUS S 2S4'   U " U5      nUR	                  5       n[        SS9R                  U5        [        X$5        UR	                  5       n[        SSS9R                  U5        [        UR                  5       UR                  5       5        g )	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AadG"HVVXF""1%q!MMOMU/33H=x'')=+@+@+BCrE   c                    [         R                  R                  S5      nUR                  SS5      nU " U5      n[        R
                  " [        5         [        USS9  S S S 5        [        R
                  " [        5         [        SS9R                  U5        S S S 5        [        SS9R                  U5      n[        R
                  " [        5         UR                  U5        S S S 5        U " UR                  U5      5      n[        R
                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N|= f! , (       d  f       g = f)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  ^  s   
))


#C		!QA"H 
z	"h$' 
#	z	"&**84 
# d+//2F	z	"" 
# ,F,<,<Q,?@	z	"  !56 
#	" 
#	"	"	"
 
#	" 
#	"s0   D:EEE-:
E
E
E*-
E;c                      [         R                  SSSS//n [        R                  " [        SS9   [        U 5        S S S 5        g ! , (       d  f       g = f)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  sD    
&&!Q1	A	U
 	a
 
 
s   A
Ac                      [         R                  " SS5      n [        SS9nSn[        R                  " [
        US9   UR                  U 5        S S S 5        g ! , (       d  f       g = f)Nr9   r>   Tr   zCannot center sparse matricesr   )r   r>  r   r\   r]   r^   r_   )r  rf   err_msgs      rD   test_robust_scaler_error_sparser  }  sG    {{4$H.F-G	z	1

8 
2	1	1s   A
A%r   with_scalingrd   rV   rq  densityc                    U(       a1  [         R                  " U 5      (       a  [        R                  " S5        [	        XS9nUR                  U 5        U(       a,  [        UR                  [        R                  5      (       d   eOUR                  b   eU(       a,  [        UR                  [        R                  5      (       d   eg UR                  b   eg )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    
 &//!,,>?SF
JJqM&.."**5555~~%%%&--4444}}$$$rE   csr_containerc                 ~   [         R                  R                  SS5      nSUS S 2S4'   U " U5      n[        SS9nUR	                  U5        UR
                  S   [        R                  " S5      :X  d   eUR                  U5      n[        US S 2S/4   R                  5       US S 2S/4   R                  5       5        g )Nr>   rk   r   Fr   r;   )rG   r   r[   r   r_   r   r\   rF  r   r(   r@   )r  rd   rf   rl  s       rD   "test_robust_scaler_col_zero_sparser    s     			AAAadGaA/F
JJqM==v}}Q////q!GAa!fI%%'QC)@)@)BCrE   c                  J   [         R                  R                  S5      n U R                  SS5      nSUS S 2S4'   [	        5       nUR                  U5      R                  U5      n[        [         R                  " USS9SS/-  5        [        UR                  SS9S   S5        g )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AadG^Fzz!}&&q)Hbiiq91u9Ehlll215q9rE   r  )r   g?皙?rq  r;   strictly_signed)positivenegativer   Nc                 J   [         R                  " SSU S9R                  5       nUS:X  a&  [        R                  " UR
                  5      Ul        OoUS:X  a'  [        R                  " UR
                  5      * Ul        OBUS:X  a<  [        R                  " UR
                  R                  [        R                  S9Ul        UR                  5       n[        SS	9n[        SS	9nUR                  U5        UR                  U5        [        UR                  UR                  5        g )
Nr9   rk   r  r  r  r   r   Fr   )r   r>  tocscrG   absrj  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::<H*$x}}-	J	&..	G	#!4!4BJJG G 6Mu5LhWM((,*=*=>rE   c                    [         R                  R                  S5      nUR                  SS5      n[         R                  " / SQ/5      n[        SS9nUR                  U5      nUR                  U " U5      5      nX4R                  -  n[        UR                  5       U5        UR                  U5      n[        X7R                  5       5        g )Nr   rj   rk   )r  rn   rm   r   rv  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67J/FZZ]F  z!:;I-Li//1<@..y9Oj*A*A*CDrE   c                  *   [         R                  n [        5       nUR                  U 5      n[	        [
        R                  " USS9S5        UR                  U5      n[	        X5        [
        R                  " USSS9nUS   US   -
  n[	        US5        g )Nr   r      K   qr   r;   	ri  rj  r   r  r+   rG   r  r   
percentile)rd   rf   rl  rm  r  iqrs         rD   test_robust_scaler_irisr    s|    		A^F""1%Gbiia8!<**73Ka-
g2A
A$1+Cc1%rE   c                  (   [         R                  n [        SS9nUR                  U 5      n[	        [
        R                  " USS9S5        UR                  U5      n[	        X5        [
        R                  " USSS9nUS   US   -
  n[	        US5        g )N)r>   Z   quantile_ranger   r   r  r;   r  )rd   rf   rl  rm  r  q_ranges         rD   !test_robust_scaler_iris_quantilesr    s    		A2F""1%Gbiia8!<**73Ka-
g2AdQqTkGgq)rE   csc_containerc                    [         R                  n[        SS9nUR                  U5      nUR	                  U5      n[        X5        [        SSS9nUR                  U5      nUR	                  U5      n[        X5        U " U5      nUR                  U5      nUR	                  U5      n[        UR                  5       UR                  5       5        g )Nr8   n_quantilesnormal)r  output_distribution)ri  rj  r   r  r   r+   r@   )r  rd   r  rl  rm  r  X_sparse_tranX_sparse_tran_invs           rD   test_quantile_transform_irisr    s    		A%"5K''*G//8Ka-%"(SK''*G//8Ka- QH--h7M#55mDh..02C2K2K2MNrE   c                    [         R                  " / SQ/ SQ/ SQ/5      nU " U5      n[         R                  " / SQ/ SQ/ SQ/5      nU " U5      nSn[        R                  " [        US9   [        SS9R                  U5        S S S 5        [        SS	9nS
n[        R                  " [        US9   UR                  U5        S S S 5        UR                  U5        S
n[        R                  " [        US9   UR                  U5        S S S 5        [         R                  " / SQ/ SQ/5      nSn[        R                  " [        US9   UR                  U5        S S S 5        [        SS	9R                  U5      n[        R                  " [        SS9   UR                  S5        S S S 5        [        SS	9nSn[        R                  " [        US9 nUR                  U5        S S S 5        [        W5      S:X  d   eUR                  UR                  S   :X  d   eg ! , (       d  f       GN= f! , (       d  f       GNr= f! , (       d  f       GN>= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)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	
	A 	aALL/,4	
E % E	 
 
z	1b)--a0 
2 &"5KNG	z	1 
2OOANG	z	1e$ 
2 	,.VWJ 	V  
z	1%%j1 
2 &"599!<K	z)V	Wb! 
X &#6K0H	k	2f 
3v;!##qwwqz111? 
2	1
 
2	1 
2	1 
2	1
 
X	W
 
3	2sH   *H/H,5H>II!I2
H),
H;>
I
I!
I/2
J c                    [         R                  " SS/SS/SS/SS/SS//5      nU " U5      n[        SSS9nSn[        R                  " [
        US9   UR                  U5        S S S 5        [         R                  " SS/SS/SS/SS/SS//5      nUR                  U5      n[        XVR                  5       5        [         R                  " / S	Q5      n[         R                  " / S
Q5      n[         R                  " / SQ5      n	U " XyU445      nUR                  U5      n[         R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS//	5      n[        XVR                  5       5        [        SSS9n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n	U " XyU445      nUR                  U5      n[         R                  " SS/SS/SS/SS/SS/SS/SS//5      n[        XVR                  5       5        [        UR                  5       UR                  U5      R                  5       5        [        SSSSS9nUR                  U5      n[        XVR                  5       5        [        UR                  5       UR                  U5      R                  5       5        g ! , (       d  f       GNc= f)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   rq  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_expectedrl  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PK	 
 
k	9 
: Aq6Aq6Aq6Aq6Aq6BCJ''1G
OO$56 XX78FHH67EHH67Efen56H''1G#J#J#J#J#J#J#J#J#J
	
J 
OO$56%DaPKXX45FHH01EHH01Efen56H''1G
Q!UaZ!UaVaVaVLJ 
OO$56K99'BJJL
 &"QQK ''1G
OO$56K99'BJJLc 
:	9s   K
Kc                  *   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      n [        SS9nUR                  U 5        UR	                  U 5      n[         R
                  " [         R                  " SS	SS
9S5      R                  n[        [         R                  " USS9U5        [         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      n[        UR                  U5      U5        UR                  U5      n[        X5        g )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  rl  r  r   rm  s         rD   !test_quantile_transform_dense_toyr    s    
	lL,O	A &!4KOOA ''*GQq16:<<Ja0*=XX	
F 	
J k33F;ZH//8Ka-rE   c                     Sn Sn[         R                  " [         R                  R                  U S45      SS9nSn/ n[	        U5       H  n[        UUU S-  S9nUR                  U5        [         R                  " SSU5      [         R                  " UR                  5      -
  n[         R                  " [         R                  " U5      5      nUS	:  d   eUR                  U5        M     [        [         R                  " U5      5      [        U5      :X  d   e[        R                   " U SS
SSS9n/ n[	        U5       H  n[        UUU S-  S9nUR                  U5        [         R                  " SSU5      [         R                  " UR                  5      -
  n[         R                  " [         R                  " U5      5      nUS:  d   eUR                  U5        M     [        [         R                  " U5      5      [        U5      :X  d   eg )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_rZ  r  appendr  uniquer   r>  )	rb   r  rd   ROUNDinf_norm_arrr  r  diffinf_norms	            rD   #test_quantile_transform_subsamplingr    s    IK
		  )Q0q9AELe)%#2o

 	{{1a-9O9O0PP66"&&,'$H% % ryy&'3|+<<<< 	Iq$u1MALe)%#2o

 	{{1a-9O9O0PP66"&&,'$H% % ryy&'3|+<<<<rE   c                     [         R                  R                  S5      R                  SS9n Sn[	        USS9R                  U 5      n[         R                  " SSU5      n[        UR                  U5        [         R                  " U R                  5       U5      n[        UR                  R                  5       U5        g)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'6AK%+NRRSTUK++aK8K++-@AQWWY0CDK**0024FGrE   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/
5      nU " U5      n[        SS9nUR                  U5        UR	                  U5      n[        [         R                  " UR                  5       SS9S5        [        [         R                  " UR                  5       SS9S5        UR                  U5      n[        UR                  5       UR                  5       5        [        SS9R                  UR                  5       5      nUR                  U5      n[        [         R                  " UR                  5       SS9S5        [        [         R                  " UR                  5       SS9S5        UR                  U5      n[        UR                  5       UR                  5       5        g )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+   rk  r@   rZ  r   r   )r  rd   r  rl  rm  r  s         rD   "test_quantile_transform_sparse_toyr#    sS   
	
	A 	aA%"5KOOA''*GbffW__%6Q?EbffW__%6Q?E//8Kaiik;+>+>+@A+;??		L))!,GbffW__%6Q?EbffW__%6Q?E#55g>Kaiik;+>+>+@ArE   c                      [         R                  " / SQ/ SQ/ SQ/5      n [        U R                  SSS9n[        U SSS9n[	        XR                  5        g )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'    sF    
&(8:STUA#ACCaQ?J#AA1=Jj,,7rE   c                    [         R                  " SS/SS/SS//5      nU " U5      n[        SSS9R                  U5      n[	        X15        [        SSS9R                  U5      n[	        UR                  5       U5        [	        X4R                  5       5        [         R                  " SS/SS/SS//5      n[         R                  " SS/SS/SS//5      n[        SS9R                  U5      nUR                  U5      n[	        X65        [         R                  R                  S5      n[        5       nUR                  U5        UR                  S	//5      UR                  [         R                  " U5      //5      :X  d   eUR                  S
//5      UR                  [         R                  " U5      //5      :X  d   eUR                  S	//5      UR                  [         R                  " UR                  5      //5      :X  d   eUR                  S
//5      UR                  [         R                  " UR                  5      //5      :X  d   eg )Nr   r;   rV   r  r  rq  r  r  )r9   r;   r>   )rG   rp   r   r  r+   r@   r_   r   r   rk  rZ  r   r  )r  r  r  rl  
X_trans_sprd   X1r  s           rD   test_quantile_transform_boundsr-    s!    hhAAA/0GW%H "aa@NNwWGg/$CQQJ j002G<g'9'9';< 	1a&1c(QF+,A	As8aX3x0	1B%!488;K##B'Gg* 			#A%'KOOA  3%)[-B-BRVVAYK=-QQQQ  2$(K,A,ABFF1I;-,PPPP((3%1[5R5R
&&((
)	*+6    ((2$0K4Q4Q
&&((
)	*+5   rE   c            	          [         R                  n [        R                  " S/[        S-  /S/S/S/S/S//5      nX4 H9  n[        SSS	9nUR                  U5      nUR                  U5      n[        X%S
S9  M;     g )Nr   r>   r{   rU   rV   rj   r9   r   r)  	   r  )	ri  rj  rG   rp   r   r   r  r   r+   )X_1X_2rd   r  rl  rm  s         rD   #test_quantile_transform_and_inverser2  6  s    
))C
((SE,r12SEA3aS1#N
OCZ)dK++A.!33G<!!!<	 rE   c                     [         R                  " [         R                  SSS/[         R                  [         R                  SS/[         R                  SSS//5      n [        SSS9nUR	                  U 5        [         R
                  " UR                  S S 2S4   5      R                  5       (       d   e[         R
                  " UR                  S S 2SS 24   5      R                  5       (       a   eg )Nr   r;   rq  r>   r  r)  )	rG   rp   rq   r   r  r  r  r   r   )rd   r  s     rD   test_quantile_transform_nanr4  @  s    
2661a#bffbffa%=1a?PQRA%"2FKa  88K**1a401557777xx..q!"u56::<<<<<rE   
array_typerp   r   c                 H   [         R                  " / SQS-  5      nSUR                  SS5      -  n[        X5      nSn[	        US9R                  U5      nUR                  S S 2S4   n[        U5      S:X  d   e[        [         R                  " U5      S:  5      (       d   eg )	N)r   r;   r;   rU   rU   rV   rV   rj   rk   rk   r;   r;   r/  r/  r/  r   r   r  r>   r  r:   r;   r   r  r   )
rG   rp   r5  r'   r   r_   r  r  r   r  )r5  rd   r  qt	quantiless        rD   *test_quantile_transformer_sorted_quantilesr9  L  s     	G"LMAaiiAA1)AK		5	9	9!	<B ad#Iy>S   rwwy!Q&''''rE   c                      S HM  n [        U S9n[        R                  " [        SS9   UR	                  [
        R                  5        S S S 5        MO     g ! , (       d  f       Ma  = f)N))r:   r  )r  )r>   r  )g      Y@r  )r  r  r  zInvalid quantile range: \(r   )r   r\   r]   r^   r_   ri  rj  )range_rf   s     rD    test_robust_scaler_invalid_ranger=  `  sL     V4]]:-JKJJtyy! LK LKs    A
A$	c                    [         R                  R                  S5      nUR                  SS5      nSUS S 2S4'   U " U5      n[	        USS9n[         R
                  " [         R                  " U5      5      (       a   e[	        USS9n[         R
                  " [         R                  " UR                  5      5      (       a   e[	        UR                  5       SS9n[        XFR                  5       5        [        R                  " [        5         [	        USSS	9  S S S 5        [        UR                  SS
9/ SQS5        [        UR                  SS
9/ SQ5        XBLd   e[!        US5      u  px[        XtR                  SS
95        [        XR                  SS
95        [	        USSSS9n[        UR                  5       UR                  5       5        g ! , (       d  f       N= f)Nr  rj   rk   r   r   Frx   r;   )ry   r   r   r  rU   r
  Tr=  )rG   r   r   r[   r   r   r  rj  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_centeringrD  n  s   
))


#C		!QAAadG!EQ%(Hvvbhhx())))%0Lvvbhh|0012222 %8Lh(<(<(>? 
z	"eu1- 
# 1? hlll24MN*<\1*M'/A1FG.!0DE %%dKLemmo|/C/C/EF! 
#	"s   G
G c                      [         R                  n [        U SS9n[        [        R
                  " USS9S5        [        R                  " USSS9nUS   US   -
  n[        US5        g )Nr;   r   r   r  r  ri  rj  r   r+   rG   r  r  rd   rl  r  r  s       rD   test_robust_scale_axis1rH    sY    		A11%Gbiia8!<
g2A
A$1+Cc1%rE   c                      [         R                  S S 2S4   n [        U 5      n[        [        R
                  " U5      S5        [        R                  " USS9nUS   US   -
  n[        US5        g )Nr;   r   r  )r  rF  rG  s       rD   test_robust_scale_1d_arrayrJ    sZ    		!Q$A1oGbii0!4
g*A
A$1+Cc1%rE   c                     / SQ/ SQ/ SQ/n [        5       nUR                  U 5      n/ SQ/ SQ/ SQ/n[        X#5        UR                  U5      n[        X5        / SQ/ SQ/ S	Q/nUR	                  U5      n/ S
Q/ SQ/ SQ/n[        XgSS9  g )Nrp  rr  rs  rx  )r   r   rv  ry  rt  ru  rw  )r   rn   r   )rv  r   g_)r   r   gіs)?rV   r  )r   r  r+   r   r   )rd   rf   rl  r  rm  r{  r}  X_expected_news           rD   )test_robust_scaler_zero_variance_featuresrM    s    	+-=>A^F""1%G #$46FGJg2**73Ka- /1ABE""5)K')>@UVNk1ErE   c                  2   [         R                  R                  S5      n U R                  SS5      n[         R                  " U[         R
                  " S5      S-  [         R
                  " S5      S-  /5      nSn[        USS	9R                  U5      nUR                  U5      nUR                  [        R                  " S
SS9:X  d   eUR                  [        R                  " SSS9:X  d   eUR                  5       [        R                  " SSS9:X  d   eg )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\   rF  r   r   )rZ   rd   X_with_outliersr  robust_scalerrl  s         rD    test_robust_scaler_unit_variancerU    s     ))


#C		'1AiiBGGH$5$;RWWX=NQU=U VWON dSWWM %%a(G  FMM!$>>>>6==#====;;=FMM!6666rE   c                 $   / SQ/ SQ/ SQ/ SQ/n[        5       nUR                  U5      n/ SQ/ SQ/ SQ/ SQ/n[        X45        UR                  U5      n[        X5        / SQ/ S	Q/ SQ/nUR	                  U5      n/ S
Q/ S	Q/ SQ/n[        XxSS9  [        U5      n[        X45        U " U5      n	UR                  U	5      n
/ SQ/ SQ/ SQ/ SQ/n[        U
R                  5       U5        UR                  U
5      n[        XR                  5       5        g )Nrp  )r   rn   333333ӿrw  rx  )r   rn   UUUUUU?)r   rn   gɿ)r   rn   rn   rt  ru  )r   rm   rX  rU   r  )r   r  r+   r   r   r   r@   )r   rd   rf   rl  r  rm  r{  r}  rL  r  r  X_trans_sparse_invs               rD   )test_maxabs_scaler_zero_variance_featuresrZ    s    
+-=?OPA^F""1%G	J g2**73Ka- /1ABE""5)K,.>@PQNk1E 1oGg2  "H))(3N	J n446
C11.Aa!;!;!=>rE   c                      / SQ/ SQ/ SQ/ SQ/n [        5       nUR                  U 5      n/ SQ/ SQ/ SQ/ SQ/n[        X#5        g )	N)r   rn   rq  rv  )r   rn   rW  rg  )r   rn   g      Yr   )r   r   r   g       )r   rn   g{Gzt?rg  )r   rn   g~jthg      п)r   rn   rv  r   )r   r   r   rv  )r   r  r+   )rd   rf   rl  r  s       rD   'test_maxabs_scaler_large_negative_valuer\    sM     			A ^F""1%G!	J g2rE   c                 J   U " / SQ/5      n[        5       nUR                  U5      nUR                  U5      nU " / SQ/5      n[        UR	                  5       UR	                  5       5        UR                  U5      n[        UR	                  5       UR	                  5       5        g )N)rq  rn   rn   rz  )r   r_   r   r+   r@   r   )r  rd   rf   rl  r  r   s         rD   (test_maxabs_scaler_transform_one_row_csrr^    s     	'(A^FZZ]Fq!G01Jgoo/1C1C1EF,,W5Maiik=+@+@+BCrE   c            	         [         [        [        [        4 GH  n [        SS9nUR	                  U 5      R                  U 5      n[        U [        5      (       a  [        R                  " U 5      n [        U 5      S:X  aF  [        [        R                  " UR                  SS95      [        R                  " [        5      5        O-[        [        R                  " UR                  SS95      S5        UR                   U R"                  S   :X  d   eUR%                  U5      n[        X05        GM     [        R                  " S5      n [        5       nUR	                  U 5      R                  U 5      n[        [        R                  " UR                  SS95      S5        UR                   U R"                  S   :X  d   e[         R'                  5       n[        R                  " U5      R                  5       n[        XE-  [)        USS95        g )NTr   r;   r   r   rn   r   )r   r   r   r   r_   r   r   r   rG   rp   rJ   r+   r  rZ  r   rc   r   rI   r   r   r   )rd   rf   r   r   r  max_abss         rD   test_maxabs_scaler_1dra    sw   fk;74(::a=**1-aAA!#%bffX\\q\-A&BBGGJDWX%bffX\\q\-A&BCH%%333 00:!-3 8$ 	A^Fzz!}&&q)HbffX\\q\%9:C@!!QWWQZ/// <<>DffTl Gdnl4d.KLrE   c                    [         S S2S S 24   nUR                  S   nSSSX"S-   4 GH  n[        5       R                  U5      n[        5       n[        5       n[        5       n[	        X#5       HL  nUR                  X   5      nU " X   5      n	UR                  U	5      nU " X   5      n
UR                  U
5      nMN     [        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        UR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   e[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        UR                  U5      UR                  U5      5        [        SU5      n[        5       R                  X   5      n[        5       R                  X   5      n[        UR                  UR                  5        UR                  UR                  :X  d   e[        UR                  UR                  5        [        UR                  U5      UR                  U5      5        [        5       R                  U5      n[        5       n[        [	        X#5      5       HD  u  pUR                  X   5      n[        UUR                  UR                  UUUR                  S9  MF     GM     g )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_cscr,  r?  X_cscr-  rM   s                rD   test_maxabs_scaler_partial_fitrg  ;  s    	TcT1WA	
A!RF+
#~))!,"n&.&. /E%11!(;K!!(+E-99%@O!!(+E-99%@O 0 	","7"79M9MN!,"7"79Q9QR!,"7"79Q9QR++{/J/JJJJ++/N/NNNN++/N/NNNN!,"5"5{7I7IJ!,"5"57M7MN!,"5"57M7MN!,"8"8";[=R=RST=UV q*%#~))!)4"n00;!,"7"79M9MN++{/J/JJJJ!,"5"5{7I7IJ!,"8"8";[=R=RST=UV $~))!,"n!+a"<=HA%11!(;K!KK ::%*:: >M ,rE   c                    U S:X  aS  [         R                  " U5      R                  SS9n[        S5       H  n[	        X#   S5        M     [	        US   S5        g	U S:X  aX  [        S5       H%  n[	        [
        R                  " X   5      S5        M'     [	        [
        R                  " US   5      S5        g	U S:X  aH  [        U5      R                  SS9n[        S5       H  n[	        XC   S5        M     [	        US   S5        g	g	)
zf
Convenient checking function for `test_normalizer_l1_l2_max` and
`test_normalizer_l1_l2_max_non_csr`
rV  r;   r   rV   rn   r   rY  rZ  N)rG   r  rE  r   r*   larX  rZ  )rX  X_normrow_sumsrM   row_maxss        rD   check_normalizerrm  t  s    
 t|66&>%%1%-qAS1 HQK-	qA	 2C8 BGGF1I.4	v;???*qAS1 HQK-	 
rE   rX  rV  rY  rZ  c                    [         R                  R                  S5      nUR                  SS5      nU" U5      nSUSS S 24'   UR                  S   nUR                  S   nSUR
                  XV& U" U5      nX7U4 Hp  n[        U SS9n	U	R                  U5      n
XLd   e[        U
5      n
[        U SS9n	U	R                  U5      nXL d   e[        U5      nX4 H  n[        X5        M     Mr     g )	Nr   rj   rk   r   rV   TrX  r   F)
rG   r   r   r[   indptrrj  r   r   r@   rm  )rX  r  rZ   r  X_sparse_unprunedindptr_3indptr_4X_sparse_prunedrd   
normalizerX_norm1X_norm2rj  s                rD   test_normalizer_l1_l2_maxry    s	    ))


"Cii1oG%g. GAqDM !''*H ''*H038- $G,O (9:T5
&&q)'"T6
&&q)||'"(FT* ) ;rE   c                 L   [         R                  R                  S5      nUR                  SS5      nSUSS S 24'   U" U5      n[	        U SS9R                  U5      nXTLd   e[        R                  " U5      (       a  UR                  S:X  d   e[        U5      n[        X5        g )	Nr   rj   rk   r   rV   Frp  csr)rG   r   r   r[   r   r   r   r  r  r@   rm  )rX  r   rZ   r  rd   rj  s         rD   !test_normalizer_l1_l2_max_non_csrr|    s    
 ))


"Cii1oG GAqDM!AT.88;F????6""v}}'===V_FT"rE   c           	         [         R                  R                  S5      nUR                  SS5      nSUSS S 24'   US[	        USS S 24   5      R                  5       4==   S-  ss'   [         R                  " U5      * nU " U5      nX#U4 Hk  n[        SS	9nUR                  U5      nXuLd   e[        U5      n[        [         R                  " U5      [         R                  " [        U5      5      5        Mm     g )
Nr   rj   rk   r   rV   rU   r:   rZ  rW  )rG   r   r   r[   r  argmaxr   r   r@   r,   sign)r  rZ   r  	X_all_negX_all_neg_sparserd   rv  rj  s           rD   test_normalizer_max_signr    s     ))


"Cii1oGGAqDM As71a4=!((**+r1+ I$Y/"23U+
%%a(2776?BGGGAJ,?@ 4rE   c           	      (   [         R                  R                  S5      R                  SS5      n[	        [        USS9[        UR                  SSS9R                  5        [         R                  R                  S5      nUR                  SS	5      nU " U5      n[         R                  " S5      nX44 H  n[         R                  [         R                  4 H  nS
 H  nUR                  U5      n[        XS9nUR                  U:X  d   e[        U5      nUS:X  a$  [         R                  " U5      R                  SS9n	OUS-  n
U
R                  SS9n	[        X5        M     M     M     [         R                   " / SQ/ SQ/ SQ/5      nS H  n[        X7SS9u  pUS:X  a$  [        U[         R                   " / SQ5      5        M9  US:X  a$  [        U[         R                   " / SQ5      5        Mc  [        U[         R                   " / SQ5      5        M     U " U5      nS
 H0  n["        R$                  " [&        5         [        XGSS9  S S S 5        M2     [        USSS9u  p[        U[         R                   " / SQ5      5        g ! , (       d  f       Ms  = f)N%   rV   rU   Fr   r   )r   r   r>   rk   )rV  rY  rW  rV  r;   r   )r   r   r"  )rn   r   r   )rm   r   r   rn  T)rX  return_norm)      @rn   r   rY  )r   rn   g1C+@)r"  rn   r   rZ  )rG   r   r   r[   r,   r   r	  r   r   r   r   r   r@   r  rE  r+   rp   r\   r]   NotImplementedError)r  rd   rsr  r  r   r   rX  rj  rk  X_norm_squared_normss                rD   test_normalizer    s    			b!''1-Ay/133QU1S1U1UV			q	!Bhhr1oGW%H77B=D jj"**-E$HHUO"10||u,,, 4<!vvf~11q19H%+QYN-11q19H)(9 % . !" hhHIG#WTB4<%eRXXo-FGT\%eRXX6L-MN%eRXXo-FG $ W%H]]./ht< 0/  4@HAeRXXo%>? 0/s   ;J
J	constructorc                    [         R                  " / SQ/ SQ/5      nU " UR                  5       5      n[        SSS9n[	        UR                  U5      5      n[         R                  " US:H  5      S:X  d   e[         R                  " US:H  5      S	:X  d   eUR                  U5      n[        R                  " U5      [        R                  " U5      :X  d   e[        SS
9R                  U5      n[	        UR                  U5      5      nXBLd   e[         R                  " US:H  5      S	:X  d   e[         R                  " US:H  5      S:X  d   e[        SS
9nUR                  U5      nXBLd   e[	        U5      n[         R                  " US:H  5      S	:X  d   e[         R                  " US:H  5      S:X  d   e[        SS
9nUR                  U5      nU [        La  XBL d   e[        SS
9n[         R                  " / SQ/ SQ/[         R                  S9nUR                  U5      nU [        La  XEL d   e[	        U5      n[         R                  " US:H  5      S	:X  d   e[         R                  " US:H  5      S:X  d   e[        SSS9nU [         R                  [        4;   a  U " UR                  5       5      n[	        UR                  U5      5      n[         R                  " US:H  5      S:X  d   e[         R                  " US:H  5      S:X  d   eUR                  U5      nU [        ;   a;  [        R                  " [        5         UR                  U " U5      5        S S S 5        g g ! , (       d  f       g = f)N)r;   r   rk   )rU   rV   r:   rm   T)	thresholdr   r   rj   r;   rU   r   Fr   rg  rk   )rG   rp   r   r   r@   r   rE  r   r  r_   r   r   r3   r\   r]   r^   )r  X_rd   	binarizerX_binX_floats         rD   test_binarizerr    s    
9j)	*BBGGIACd3II''*+E66%1*"""66%1*""""E??1!7777t$((+II''*+E>>66%1*"""66%1*"""t$I"E>>ENE66%1*"""66%1*"""u%I"E$zzu%Ihh	:.bjjAG(E$ENE66%1*"""66%1*"""Dt4Irxx&&	"	++A./vveqj!Q&&&vveqj!Q&&&##A& n$]]:&A/ '& %&&s    M""
M0c                 z   [        X5      nUSS4 H  n[        R                  " [        R                  " / SQUS9S5      nUR                  XQS9n[	        SS9R                  U5      n[        S	S
9   [	        SS9R                  U5      nS S S 5        [        [        WU5      U5        M     g ! , (       d  f       N)= f)NrP  int64)r   r;   rU   rV   rj   r   )r:   r;   r   r|   )r  Tr   )	r&   rG   r5  rH   r   r  r   r,   r#   )	r]  r   r\  r   dtype_name_X_npr   binarized_npbinarized_xps	            rD   test_binarizer_array_api_intr  <  s    
 
o	6B"GW5zz"**_KH'Rzz$z. 3/==dCt4$s3AA$GL 5,\2>M 6 54s   0B,,
B:	c                     [         R                  R                  S5      n U R                  S5      n[	        SS9nUR                  U5        UR                  U5      n[         R                  " XR                  5      n[        5       n[         R                  " X3R                  5      nUR                  U5      n[        Xg5        U R                  S5      n[         R                  " XR                  5      n	UR                  U5      n
[         R                  " XR                  5      nUR                  U	5      n[        X5        [         R                  " U5      UR                  S   -  nXMU-  -
  XM-  -
  X-  U-  -   n[        Xn5        [         R                  " U	5      UR                  S   -  nXU-  -
  X-  -
  X-  U-  -   n[        UU5        g )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FF5''"E HVVN,<,<=N,,U3On> v&FVVFGG$F&&v.Off_.>.>?O))&1o@ \\% 5;;q>1Fun,u~=QW@WWON4 <<'%++a.8L%%7,:NQW:WW  O%56rE   c                  n   [         R                  R                  S5      n U R                  SS5      U R                  SS5      p!S nU" U5      nU" U5      n[	        SS9nUR                  U5      nUR                  U5      nXDR                  -  n	XTR                  -  n
XwR                  -  nXR                  -  n[        5       nUR                  U	5        [        UR                  U	5      U5        [        UR                  U
5      U5        [         R                  " U	5      U	R                  S   -  nXU	-  -
  X-  -
  X-  U-  -   n[        UR                  U	5      U5        [         R                  " U
5      U	R                  S   -  nU
UU	-  -
  X-  -
  UU	-  U-  -   n[        UR                  U
5      U5        g)	z-Check kernel centering for non-linear kernel.r   r   r  r  c           	          [         R                  " [         R                  " U SSS9[         R                  " U SSS9* /5      $ )zOur mapping function phi.r   N)a_mina_max)rG   rR  rU  r  s    rD   phi2test_kernelcenterer_non_linear_kernel.<locals>.phi|  s;    yy$/$a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"$5v
 FEVJ U+F''.L((4 	A''!Fnn,H%6M$&OO--a0(;O--f5}E \\!_qwwqz)FaZ!*,vzF/BBJO--a0*= <<'!''!*4L!!FO3lQ6F6OO  O--f5GrE   c                  r   [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [         R                  " S5      nU R                  U R                  5      n[        5       n[        SU4S[        5       4/5      nUR                  5       R                  R                  (       d   e[        XBUSS	9n[        X5        g )
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     	)Y	9=>AWWT]F	acc
AE+U3eSU^DEH $$&11::::
 xFq9Ff-rE   c                  $   [         R                  R                  S5      n U R                  S5      n[	        5       [        5       [        5       4 H?  nUR                  U5      R                  U5      nUR                  U5      n[        X45        MA     g )Nr   r  )rG   r   r   r  r   r   r   r_   r   r  r,   )rZ   rd   objX_transformedX_transformed2s        rD   test_fit_transformr    sn    
))


"C&!A *,	<
,,Q/**1-=9 =rE   c                  Z    SS/SS/SS//n [        U 5      n [        U / SQ/ SQ/ SQ/5        g Nr;   r   )r;   r;   r   ro   )r   r,   r  s    rD   test_add_dummy_featurer    s5    
Q!Q!Q A!Aq9i;<rE   c                     U " SS/SS/SS//5      nUR                   n[        U5      n[        R                  " U5      (       a  UR                   U:X  d   U5       e[	        UR                  5       / SQ/ SQ/ SQ/5        g r  )r  r   r   r  r,   r@   )r   rd   desired_formats      rD   test_add_dummy_feature_sparser    sp     	1a&1a&1a&12AXXN!A??1!((n"<?a?<qyy{Y	9$EFrE   c                      [         R                  n U S S 2S S24   n[        SSS9[        5       [	        5       /nU H%  nUR                  U 5        UR                  U5        M'     g )NrU   Fr   )ri  rj  r   r   r   r  )rd   r  scalersrf   s       rD   test_fit_cold_startr    sc    		AQU8D 	7G Q 	T"	 rE   methodbox-coxyeo-johnsonc                 ^   [        U S9n[        R                  " [        5      n[        R
                  " [        5         UR                  U5        S S S 5        [        R
                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)Nr  )	r   rG   r  r   r\   r]   r   r   r   )r  ptrd   s      rD    test_power_transformer_notfittedr    sg    		(B
vA	~	&
Q 
'	~	&
Q 
'	& 
'	&	&	&s   B2B
B
B,standardizec                     U S:X  a  [         R                  " U5      OUn[        XS9nUR                  U5      n[	        X#R                  U5      5        g )Nr  r  r  )rG   r  r   r  r*   r   )r  r  rd   r  rl  s        rD   test_power_transformer_inverser    sG     y(q	aA		ABq!G//89rE   c                     [         R                  " [        5      n S GH  n[        SUS9nUR	                  U 5      n[        U SUS9n[        R                  " U R                  5       5      u  pVU(       a  [        U5      n[        UR                  SS5      U5        [        UR                  SS5      U5        [        XR                  U5      5        [        XbR                  S   5        [        UR                  5      U R                  S   :X  d   e[!        UR                  [         R"                  5      (       a  GM    e   g )NTFr  r  r:   r;   r   )rG   r  r   r   r  r   r   boxcoxflattenr   r*   r5  r   lambdas_r  rI   r   r  )rd   r  r  rl  X_trans_funcr  lambda_expecteds          rD   test_power_transformer_1dr  	  s    
vA$YKH""1%&qT&+ll199;&?#
z*JJ..r15w?J..r15|DA33G<=O[[^<2;;1771:---"++rzz2222% %rE   c                     [         R                  " [        5      n S GH,  n[        SUS9nUR	                  U 5      n[        U SUS9nX44 H  n[        UR                  S   5       Hm  n[        R                  " U S S 2U4   R                  5       5      u  pxU(       a  [        U5      n[        US S 2U4   U5        [        XR                  U   5        Mo     UR                  U5      n	[        X5        M     [!        UR                  5      U R                  S   :X  d   e[#        UR                  [         R$                  5      (       a  GM-   e   g )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  rl  jr  lmbdaX_invs
             rD   test_power_transformer_2dr  	  s   
tA$YKH((+&qT%4G7==+,$)LL1a41B$C!
!&z!2J#GAqDM:>#E;;q>: - ((1E%e/ 5 2;;1771:---"++rzz2222+ %rE   c                  ^   [        SS9n U R                  [        R                  " [        5      5        [        nSn[
        R                  " [        US9   U R                  U5        S S S 5        [
        R                  " [        US9   U R                  U5        S S S 5        [
        R                  " [        US9   [        USS9  S S S 5        [
        R                  " [        US9   U R                  [        R                  " [        R                  5      5        S S S 5        [
        R                  " [        US9   U R                  [        R                  " [        R                  5      5        S S S 5        [
        R                  " [        US9   [        [        R                  " [        R                  5      SS9  S S S 5        g ! , (       d  f       GNg= f! , (       d  f       GNF= f! , (       d  f       GN,= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)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	  sW    
	+BFF266$<.	z)=	>
%& 
? 
z)=	>
  
? 
z)=	>(; 
? 
z)=	>
RXXdjj)* 
? 
z)=	>
rxx

#$ 
? 
z)=	>,Y? 
?	> 
?	> 
?	> 
?	> 
?	> 
?	> 
?	>sH   GG:G*&4G<;4H-H
G
G'*
G9<
H

H
H,c                     [        U SS9  g )Nr  r  )r   r  s    rD   +test_power_transformer_yeojohnson_any_inputr  R	  s     Am,rE   c                    [        U S9n[        R                  " [        5      nUR	                  U5        Sn[
        R                  " [        US9   UR                  US S 2SS24   5        S S S 5        [
        R                  " [        US9   UR                  US S 2SS24   5        S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)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	  s    		(B
tAFF1I
 	N  
z)<	=
Qq!A#vY 
> 
z)<	=
Qq!A#vY' 
>	= 
>	= 
>	=s   B0C0
B>
Cc                      [        SSS9n [        R                  " [        5      S S 2SS24   n[        R                  " S/5      U l        U R                  U5      n[        U R                  U5      U5        g )Nr  Fr  r   r;   )	r   rG   r  r  rp   r  r   r+   r   r  rd   rl  s      rD   "test_power_transformer_lambda_zeror   k	  s]    		>B
tQ!VA ((A3-BKll1oGb227;Q?rE   c                      [        SSS9n [        R                  " [        5      S S 2SS24   n[        R                  " S/5      U l        U R                  U5      n[        X!5        g )Nr  Fr  r   r;   )r   rG   r  r  rp   r  r   r+   r  s      rD   !test_power_transformer_lambda_oner  u	  sN    	E	BB
tQ!VA((A3-BKll1oGg)rE   zmethod, lmbda))r  r  )r  rq  )r  r  )r  rq  )r  rn   c                    [         R                  R                  S5      nSnUR                  SSUS4S9nU S:X  a  [         R                  " USU-  S-   S 5      n[        U SS	9nU/Ul        UR                  U5      n[        U SS	9nUR                  U5      n[        S[         R                  R                  XG-
  5      U-  S
S9  [        SUR                  5       SS9  [        SUR                  5       SS9  g )Nr   i N  r;   )locr   r=   r  r:   r   Fr  rU   r  )rG   r   r   r  rU  r   r  r   r  r*   linalgrX  r   r   )r  r  rZ   rb   rd   r  r  X_inv_transs           rD   #test_optimization_power_transformerr  	  s    " ))


"CI

qA
7A GGArEzD($/	U	;B'BK  #E	U	;B""5)K299>>!/:YFPQR;++-q9;??,a8rE   c                      [        SSS9n S/U l        U R                  S//5      n[        R                  " U5      (       d   eg )Nr  Fr  rq  g )r   r  r   rG   r  )r  r  s     rD   test_invserse_box_coxr	  	  s=    		>B%BK  4&*E88E???rE   c                      / SQn [         R                  " U 5      R                  SS5      n [        SS9R	                  U 5      R
                  n[         R                  " USSS9(       d   eg )	N)gffffff@g rn   rm   gffffff?g333333@r}   gffffff@g?g@r  r   g"@g      @g      r:   r;   r  r  gzG?rQ  r   )rG   rp   r5  r   r_   r  allclose)rd   r  s     rD   test_yeo_johnson_darwin_exampler  	  sU     	VA
B"AM266q9BBE;;ue$///rE   c                    [         R                  " [        5      n[        U S9nUR	                  U5        UR
                  S   n[         R                  " U[         R                  " U[         R                  5      /5      n[        USS9nUR	                  U5        UR
                  S   n[        X4SS9  UR                  U5      n[        [         R                  " U5      [         R                  " U5      5        g )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_nansrl  s         rD   test_power_transformer_nansr  	  s    
 	vA		(BFF1IKKNM 	2<<266234A"AFF1IQJ1=ll1oGrxx("((1+6rE   c                     [         nU S:X  a  [        R                  " U5      n[        XS9n[	        UR                  U5      R                  U5      UR                  U5      5        g )Nr  )r  )r   rG   r  r   r+   r_   r   r  )r  r  rd   r  s       rD   $test_power_transformer_fit_transformr  	  sP     	AFF1I	&	:BbffQi11!4b6F6Fq6IJrE   c                 v   [         nU S:X  a  [        R                  " U5      nUR                  5       nX#Ld   e[	        X#5        [        XSS9nUR                  U5        [	        X#5        UR                  U5      nXRLd   eUR                  U5      n[	        X#5        XRLd   eUR                  U5      nXVLd   eg )Nr  Tr  r   )
r   rG   r  r   r+   r   r_   r   r  r   r  r  rd   
X_originalr  rl  r  s          rD    test_power_transformer_copy_Truer  	  s    
 	AFF1IJa,	&	EBFF1Ia,ll1oGq!Ga,&&w/K%%%rE   c                    [         R                  5       nU S:X  a  [        R                  " U5      nUR                  5       nX#Ld   e[	        X#5        [        XSS9nUR                  U5        [	        X#5        UR                  U5      nXRL d   eU S:X  a  [        R                  " U5      nUR                  U5      nXRL d   eUR                  U5      nXVL d   eg )Nr  Fr  )
r   r   rG   r  r+   r   r_   r   r  r   r  s          rD   !test_power_transformer_copy_Falser  	  s    
 	AFF1IJa,	&	FBFF1Ia,ll1oG<<FF1Iq!G<<&&w/K!!!rE   c                      [         R                  S5      n [        R                  U SS2S4'   Sn[	        SS9n[
        R                  " [        US9   UR                  U 5        SSS5        g! , (       d  f       g= f)ziCheck 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ffAadG+G		+B	z	1
 
2	1	1s   A,,
A:r1  皙?)r  r  )r>   r;   )r   c                     [         R                  " SSSS9n[        SS9nUR                  U5      R	                  U 5        [
        R                  " UR                  S   5      (       d   eg )Nrk   r;   r  r  Frx   r   )r   r   r   r_   r   rG   r  r   )r1  r0  rf   s      rD   7test_standard_scaler_sparse_partial_fit_finite_variancer   "
  sS     --1c
*Ce,F
JJsO$;;v{{1~&&&&rE   rf  )r   r;   )r*  r>   c                 H   [         R                  n[        U SS9R                  U5      n[        R
                  " USS9[        R                  " USS9pC[        R                  US S S-
  USS  S-   4   /nUR                  U5      n[        UU S   U S   U S   U S   //5        g )NT)rf  rU  r   r   rU   r>   r;   )
ri  rj  r   r_   rG   rk  rZ  r_r   r(   )rf  rd   rf   X_minX_maxr   r  s          rD   test_minmax_scaler_clipr%  3
  s     			ADAEEaHF 66!!$bffQQ&75eeE"1INE!"IN234F$$V,M

M!,mA.>a@P	QRrE   data_constructorc                    U " [         R                  5      n[        R                  " U5      n[	        SS9R                  U5      n[        R                  " [        R                  " U5      SS9nU(       a  UR                  OUnU " [        R                  " US S S-   USS  * S-
  45      R                  SS5      5      nUR                  U5      n[        X`" / S	Q/5      5        g )
NTrT  r   r   rU   r>   r;   r:   )r;   r;   r:   r:   )ri  rj  r   r  r   r_   rG   rZ  r  hstackr5  r   r)   )r&  rd   	is_sparserf   r`  r   r  s          rD   test_maxabs_scaler_clipr*  C
  s    
 	#A"It$((+F ffRVVAYQ'G'gllWG
		72A;#gabk\B%678@@BGF $$V,M 0@.AQ0RSrE   c                      [        5       R                  [        5      n Sn[        R                  " [
        US9   U R                  [        SS2S4   5        SSS5        g! , (       d  f       g= f)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_inputr,  V
  sL     !!$'F7G	z	1  ad, 
2	1	1s   A
A-c                     S[         R                  " / SQS-  / SQ-   [         R                  S9R                  SS5      -  n [	        5       n[
        R                  " 5          [
        R                  " S[        5        UR                  U 5      nS	S	S	5        [         R                  " [         R                  " W5      5      (       a   eUR                  5       [        R                  " S
5      :X  d   eUR                  5       [        R                  " S5      :X  d   eUR!                  5       S:  d   eUR#                  5       S:  d   eg	! , (       d  f       N= f)zCheck 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
r3  )rh  rm   r   r"  rj   )r     r.        r  U   r  r   r:   r;   r   Nr   rn   r  rU   )rG   rp   r   r5  r   r   r   r   RuntimeWarningr  r   r  r   r\   rF  r   rk  rZ  )X_non_gaussianr  rl  s      rD   1test_power_transformer_significantly_non_gaussianr4  b
  s     288q #CC2::gb!nN 
	B		 	 	"g~6"">2 
# vvbhhw'((((<<>V]]3////;;=FMM#....;;=2;;=1 
#	"s    -E
ETransformerc                     U " 5       R                  [        R                  5      nUR                  [        R                  5      n[        U[        R                  5        g)9Check one-to-one transformers give correct feature names.N)r_   ri  rj  get_feature_names_outfeature_namesr,   )r5  tr	names_outs      rD   test_one_to_one_featuresr<  z
  s@     
		499	%B((););<Iy$"4"45rE   c                 D   [         R                  " S5      nUR                  [        R                  [        R
                  S9nU " 5       R                  U5      nUR                  5       n[        U[        R
                  5        UR                  [        R
                  5      n[        U[        R
                  5        [        R                  " S5      n[         R                  " [        US9   [        S5      nUR                  U5        SSS5        g! , (       d  f       g= f)r7  pandas)columnsz0input_features is not equal to feature_names_in_r   abcdN)r\   importorskip	DataFrameri  rj  r9  r_   r8  r,   reescaper]   r^   r   )r5  pddfr:  names_out_df_defaultnames_out_df_valid_inmsginvalid_namess           rD   test_one_to_one_features_pandasrK  
  s     
		X	&B	dii););	<B			2	B335+T-?-?@44T5G5GH,d.@.@A
))F
GC	z	-V
  / 
.	-	-s   +D
Dc                  F   [         R                  R                  S5      n U R                  S5      n[	        U5      n[        5       R                  U5      nUR                  5       nUR                  S   n[        U[        U5       Vs/ s H  nSU 3PM
     sn5        gs  snf )z.Test that kernel centerer `feature_names_out`.r   )rl   rj   r;   kernelcentererN)rG   r   r   r  r
   r   r_   r8  rI   r,   r   )rZ   rd   
X_pairwiser  r;  samples_out2rM   s          rD   &test_kernel_centerer_feature_names_outrP  
  s     ))


"C&!Aq!J##J/H..0I##A&Ly|AT"UATA^A3#7AT"UV"Us   B
c                 <   / SQ/ SQ/ SQ/n[        SU S9R                  U5      n[        UR                  / SQ5        UR	                  U5      nUR                  U5      nX44 H7  nU (       a"  [        U[        R                  " U5      5        M,  [        XQ5        M9     g)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_featurerU  
  s|     
Z,A	K	H	L	LQ	OBBKK+


1
C	aByCq!12C#	 rE   zcno floating point exceptions, see https://github.com/numpy/numpy/pull/21895#issuecomment-1311525881)reasonc                     [        SS9n [        R                  " / SQ5      R                  SS5      nU R	                  U5        U R
                  S   nUS:  d   e[        R                  " S/5      R                  SS5      n[        R                  " [        SS	9   U R                  U5      R                  5       nS
S
S
5        [        R                  " W5      (       d   eg
! , (       d  f       N,= f)zCheck 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   r5  r_   r  r\   r   r   r   itemr  )transr  r  psix_invs        rD   *test_yeo_johnson_inverse_transform_warningr\  
  s     M2E
&&r1-A	IIaLNN1E199 ((B4.
 
 Q
'C	k)@	A'',113 
B 88E??? 
B	As    C  
C.z1.12z2scipy version 1.12 required for stable yeo-johnsonc                      [         R                  " / SQ5      n S nU" U R                  SS5      5        U" U SS R                  SS5      5        g)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@r^  g     @g     <@g     \@g     @c                    [         R                  " SS9 n[         R                  " S5        [        SSS9R	                  U 5        SSS5        W(       a    SSR                  S	 U 5       5      -   5       eg! , (       d  f       N6= f)
z0Internal helper to test for unexpected warnings.Tr  alwaysr  r  Nz!Unexpected warnings were raised:

c              3   L   #    U  H  n[        UR                  5      v   M     g 7fr  )strmessage).0ws     rD   	<genexpr>Ptest_power_transformer_no_warnings.<locals>._test_no_warnings.<locals>.<genexpr>  s      U
$3qC		NNOs   "$)r   r   r   r   r  join)rj  caught_warningss     rD   _test_no_warnings=test_power_transformer_no_warnings.<locals>._test_no_warnings
  s{    $$D1_!!(+MtDRRSWX 2 # 	
$H499 U
$3U
 L
 %
 	
"?	 21s   0A55
Br:   r;   Nrk   )rG   rp   r5  )r  rk  s     rD   "test_power_transformer_no_warningsrm  
  sL     		
	A
 aiiA&' aemmB*+rE   c                      [        SS9R                  [        5      n U R                  S   [        R
                  " SSS9:H    g)zFCheck that the results are consistent across different SciPy versions.r  r  r   gd8?r   )relN)r   r_   r   r  r\   rF  )r  s    rD   +test_yeojohnson_for_different_scipy_versionrp    s2    		/	3	3F	;BKKNfmmJD99rE   )rC  r   numpyrG   numpy.linalgr  ri  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_irisri  r   r   rZ   rc   rb   r   r8  r   r[   r  r5  r   r   tolistr   X_list_1colr@   rJ   rS   rh   rr   markparametrizer   r   r   r   r   r   r   r   r   r  r  r  r  r.  r1  r;  rB  rN  rQ  r_  rb  rn  r  r  r  r  r  r  r  r  r  r  r  r  r>  r  r  r  r  r  r  r  r  r  r  r  r  r   r#  r'  r-  r2  r4  r9  r=  rD  rH  rJ  rM  rU  rZ  r\  r^  ra  rg  rm  ry  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   rq   r   r%  r*  r,  r4  r<  rK  rP  rU  xfailr\  skipifrm  rp  )r  s   0rD   <module>r     sJ   
      ,  - G 2 5 %    & Q  . 

 
 
  9 	iiA
	
++b!*+
-	Q	,
yyJ'&07:	ad		Az	*	ad		Iq	)mmommo"M@$2 57O7QR,.STN U SN, 57O7QR-/'  
5
 S5
p"0J +dVn-D~-UV,udm<1 = W1: 'E* +dVn-D~-UV,udm<2::rzz":;_5 4 6 < = W 4F &78$452::rzz":;+dVn-D~-UV/S W < 6 9/Sd	I #> #>L1hA23-`0Kf +^n-LM+A N+A\ 4,7+^n-LM6 N 86 4,7& 8&R 0 )-/'  
 %&   
 $$
 	!  R2R )-/'  
 %&   
 4,7 8@7>:#L 4,7+^n-LM87 N 887v tUm4dE]3+dVn-D~-UVI W 4 5I @ +^n-LMN NN2 +^n-LM57 N57p +^n-LMD ND  +^n-LM7 N7* )D%=9$7ryyr15v{{2qRU7VWX% Y 8 :%$ .9D :D
: $:;*,ST? U <?( .9E :E	&	* .9O :O( .962 :62r .9> :>B.@,=^
H .9#B :#BL8 .9" :"J=	= ':;( <(&" .9!G :!GH&&F27$ +^n-LM&? N&?R3( .9	D :	DM@ .95 :5p.* !45.9+ : 6+@ !457.H# 6#" .9A :A( .9*@ :*@Z BHHd#n4~E3030l )+T+V	N	N)7X3Hl.(:= 7.HGG#$ I}#=>  ?  I}#=>u6vtn-: . 7 ?:3036@8 tRVVD\BFF4L="((4::BVWX- Y-
 I}#=>( ?($@* 	9	980 I}#=>7 ?7, I}#=>u6K 7 ?K I}#=>u6& 7 ?&4 I}#=>u6" 7 ?"8 	]]2q#A67 ,+M 	bggg"&&g9:+'' 69*=> ? 
^3nDTT 	-0 
6
6 	00&
W u6$ 7$$ 	M  $ v&&?  $,	$,N:Ws   ,z8