
    Ki                        S SK rS SKrS SKJr  S SK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Jr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   S S	K!J"r"J#r#J$r$J%r%  \RL                  RO                  S
\5      \RL                  RO                  S\5      \RL                  RO                  S\5      S 5       5       5       r(\RL                  RO                  S\RR                  \RT                  /5      \RL                  RO                  S\\-   5      S 5       5       r+\RL                  RO                  S
\5      \RL                  RO                  S\5      \RL                  RO                  S\5      S 5       5       5       r,\RL                  RO                  / SQ/ SQ/ SQ// SQ/ SQ// SQ4/ SQ/ SQ// SQ/ SQ// SQ4/ SQ/ SQ// SQ/ SQ/S4S \RZ                  S/S \RZ                  \RZ                  //S \RZ                  S/S \RZ                  \RZ                  /// SQ4S S /S\RZ                  /SS /S S/\RZ                  \RZ                  /\RZ                  S/// SQSS\RZ                  // SQ/ S Q\RZ                  \RZ                  \RZ                  /\RZ                  \RZ                  S//S!S"/4/ S#Q/ S$Q// S%Q/ S&Q/\R\                  " / S'Q5      4/5      \RL                  RO                  S\\-   5      \RL                  RO                  S\RR                  \RT                  /5      S( 5       5       5       r/\RL                  RO                  / SQ/ SQ/ SQ// SQ/ SQ/SS/4/ SQ/ SQ// SQ/ SQ/ SQ/SS/4/ SQ/ SQ// SQ/ SQ/S4S \RZ                  S/S \RZ                  \RZ                  //S \RZ                  S/S \RZ                  \RZ                  //S"S"/4S S S\RZ                  SS /S S\RZ                  \RZ                  \RZ                  S//S S S\RZ                  SS /S S S\RZ                  SS /S S\RZ                  \RZ                  \RZ                  S//S!S"/4/ S#Q/ SQ// S#Q/ SQ/ SQ/ SQ/\R\                  " SS/5      4/5      \RL                  RO                  S\\-   5      \RL                  RO                  S\RR                  \RT                  /5      S) 5       5       5       r0\RL                  RO                  S
\5      \RL                  RO                  S\5      \RL                  RO                  S\5      S* 5       5       5       r1\RL                  RO                  S\\-   5      S+ 5       r2\RL                  RO                  S,\Rf                  " S-SS.S/S S09\Rf                  " S1SS.S/S S094\Rf                  " S-SS.S/S S09\Rh                  " \Rj                  " S2\RZ                  S39\Rf                  " S1SS.S4S59/S/S694/5      \RL                  RO                  S\5      S7 5       5       r6S8 r7S9 r8\RL                  RO                  S:S S/5      \RL                  RO                  S\\-   5      S; 5       5       r9\RL                  RO                  S\5      S< 5       r:\RL                  RO                  S\5      S= 5       r;S> r<S? r=\RL                  RO                  S
\5      \RL                  RO                  S\5      S@ 5       5       r>\RL                  RO                  S
\5      \RL                  RO                  S\5      SA 5       5       r?\RL                  RO                  S\RR                  \RT                  /5      \RL                  RO                  S:/ SBQ5      \RL                  RO                  SC\\-   5      \RL                  RO                  SDS \R                  \R                  SE4\RZ                  \R                  \R                  SF4/5      \RL                  RO                  SGSFSE/5      SH 5       5       5       5       5       rD\RL                  RO                  S
\5      \RL                  RO                  S\5      SI 5       5       rE\RL                  RO                  S
\5      \RL                  RO                  S\5      SJ 5       5       rF\RL                  RO                  S
\5      \RL                  RO                  S\5      SK 5       5       rG\RL                  RO                  SL\$\%45      \RL                  RO                  S\5      SM 5       5       rH\RL                  RO                  S\RR                  \RT                  /5      SN 5       rI\R                  " SO\\-   SP9SQ 5       rKSR rLSS rMST rNSU rO\RL                  RO                  / SVQ\R                  " SS/S69\R                  " SS/S69SSW4\R                  " SS/S69\R                  " SS/S69\R                  " S5      SX4\R                  " SSYS69\R                  " SS/S69SSZ4\R                  " SS/S69\R                  " SSYS69SS[4\R                  " SS/\R                  S\9\R                  " SS/S69SS]4\R                  " SS/\RR                  S\9\R                  " SS/\RT                  S\9SS]4/5      S^ 5       rR\RL                  RO                  S_SESF/5      \RL                  RO                  S`\\-   5      \RL                  RO                  Sa\\-   5      \RL                  RO                  S\RR                  \RT                  /5      Sb 5       5       5       5       rSg)c    N)RandomState)assert_array_almost_equalassert_array_equal)linalg)make_classification)assert_allclose)CSC_CONTAINERSCSR_CONTAINERSLIL_CONTAINERS)_implicit_column_offsetcount_nonzerocsc_median_axis_0incr_mean_variance_axisinplace_column_scaleinplace_row_scaleinplace_swap_columninplace_swap_rowmean_variance_axismin_max_axissparse_matmul_to_dense)assign_rows_csrcsr_row_normsinplace_csr_row_normalize_l1inplace_csr_row_normalize_l2csc_containercsr_containerlil_containerc           
      D   [        SSSS9u  p4SUS'   SUS'   SUS'   U" U5      nSUS'   SUS'   [        R                  " [        5         [	        USS	9  S S S 5        U" U5      nU " U5      n[
        R                  [
        R                  4[
        R                  [
        R                  4[
        R                  [
        R                  4[
        R                  [
        R                  4/nU H  u  pUR                  U	5      nXg4 H  nUR                  U	5      n[	        USS	9u  pUR                  U
:X  d   eUR                  U
:X  d   e[        U[
        R                  " USS	95        [        U[
        R                  " USS	95        M     M     g ! , (       d  f       GNC= f)
N      r   random_stater   r         r       r&   r   axisr   pytestraises	TypeErrorr   npfloat32float64int32int64astypedtyper   meanvarr   r   r   X_X_lilX_csrX_cscexpected_dtypesinput_dtypeoutput_dtypeX_testX_sparseX_meansX_varss                  f/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_sparsefuncs.pytest_mean_variance_axis0rG       a    q!!4DAAdGAdGAdG!EE$KAdG	y	!5q) 
" % E% E 
RZZ 	RZZ 	2::	2::	O &5!+&H{3H0BOG==L000<<<///%grwwvA/FG%fbffV!.DE ' &5 
"	!   	F
Fr6   sparse_constructorc                    [         R                  R                  S5      n[         R                  " SSU S9nUR	                  [         R
                  " UR                  S   5      SSS9n[         R                  X4S4'   U" U5      nUR                  UR                  S   5      R                  U 5      n[        X5SS9u  pgU[         R                  " U 5      R                  :  d   eg )	Nr   g      Y@)i  r&   )
fill_valueshaper6   
   F)replace)weightsr+   )r0   randomr   fullchoicearangerM   nanrandr5   r   finfoeps)r6   rJ   rngr:   missing_indicessample_weightr;   r8   s           rF   "test_mean_variance_axis0_precisionr\   E   s    
 ))


"C
5	?Ajj1771:!6EjJOFFAq1A HHQWWQZ(//6MqAFA%$$$$$    c           
      D   [        SSSS9u  p4SUS'   SUS'   SUS'   U" U5      nSUS'   SUS'   [        R                  " [        5         [	        US	S
9  S S S 5        U" U5      nU " U5      n[
        R                  [
        R                  4[
        R                  [
        R                  4[
        R                  [
        R                  4[
        R                  [
        R                  4/nU H  u  pUR                  U	5      nXg4 H  nUR                  U	5      n[	        USS
9u  pUR                  U
:X  d   eUR                  U
:X  d   e[        U[
        R                  " USS
95        [        U[
        R                  " USS
95        M     M     g ! , (       d  f       GNC= f)Nr   r    r   r!   r#   r$   r'   r)   r&   r*   r,   r9   s                  rF   test_mean_variance_axis1r_   Y   rH   rI   )Xwr:   rP   )r   r   r&   r   r%   r(   )r&   r&   r&   )r   r&   r&   )r   r   r   r&   )r   r&   r&   r&   )r&   r%   r&   r%   )      ?rb   rb   r&   r(   r   r   r   )r%   r%   r   )r   r   r(   g       @rb   )r&   r   r&   )r   r(   r&   )r&   r   r   r   r&   )r   r(   r(   r(   r&   )r&   r(   r&   c           	      b   SnU" U 5      R                  U5      nU" U5      R                  U5      n[        R                  " [        R                  " U 5      S   US9n[        R                  " XS9n	[        R                  " U[        R
                  S9n
[        UUUU	U
S S9u  pn[        UUUU	U
US9u  pnUR                  U:X  d   eUR                  U:X  d   eUR                  U:X  d   e[        XuS9u  nn[        X5        [        UU5        [        X5        [        UU5        [        UU5        [        UUUUUS S9u  nnn[        UUUUUUS9u  nnn[        UU5        [        UU5        [        UU5        UR                  U:X  d   eUR                  U:X  d   eUR                  U:X  d   eg )Nr&   r   r6   r:   r+   	last_meanlast_varlast_nrP   r:   r+   )
r5   r0   zerosrM   
zeros_liker4   r   r6   r   r   r`   r:   rP   rJ   r6   r+   	Xw_sparserC   rg   rh   ri   means0vars0n_incr0means_w0vars_w0	n_incr_w0means_simplevars_simplemeans1vars1n_incr1means_w1vars_w1	n_incr_w1s                            rF   +test_incr_mean_variance_axis_weighted_axis1r}   ~   s   F D"2&--e4I!!$++E2H"a6I}}Y4H]]9BHH5F4
F7 $;
$ Hy >>U"""==E!!!??e### 2X IL+f/fl3e-e[1gy1 5
FE7 $;
$ Hgy fh/eW-gy1>>U"""==E!!!??e###r]   c           	      b   SnU" U 5      R                  U5      nU" U5      R                  U5      n[        R                  " [        R                  " U S5      US9n[        R                  " U5      n	[        R                  " U[        R
                  S9n
[        UUUU	U
S S9u  pn[        UUUU	U
US9u  pnUR                  U:X  d   eUR                  U:X  d   eUR                  U:X  d   e[        XuS9u  nn[        X5        [        UU5        [        X5        [        UU5        [        UU5        [        UUUUUS S9u  nnn[        UUUUUUS9u  nnn[        UU5        [        UU5        [        UU5        UR                  U:X  d   eUR                  U:X  d   eUR                  U:X  d   eg )Nr   r&   re   rf   rj   )
r5   r0   rk   sizerl   r4   r   r6   r   r   rm   s                            rF   +test_incr_mean_variance_axis_weighted_axis0r      s   @ D"2&--e4I!!$++E2HQu5I}}Y'H]]9BHH5F4
F7 $;
$ Hy >>U"""==E!!!??e### 2X IL+f/fl3e-e[1gy1 5
FE7 $;
$ Hgy fh/eW-gy1>>U"""==E!!!??e###r]   c                    S GH  n[         R                  R                  S5      nSnSnUS:X  a*  [        U5       Vs/ s H  otR	                  SSUS9PM     nnO)[        U5       Vs/ s H  otR	                  SSUS9PM     nnUS:X  a  [         R
                  " U5      O[         R
                  " U5      n	[         R                  " U	5      n
[         R                  " U	[         R                  S9n[         R                  " US   5      n[         R                  " U5      nUS:X  a  UR                  OUnU" U5      nU" U5      n[        R                  " [        5         [        X9XS	9  S S S 5        [        R                  " [        5         [        XXUS
9  S S S 5        [        X5      u  nn[        XXUS
9u  nnn[!        UU5        [!        UU5        [#        UR$                  U   U5        U " U5      n[        UU5      u  nn[!        UU5        [!        UU5        [#        UR$                  U   U5        [         R&                  " U5      nUS:X  a  UR                  OUnU" U5      nU" U5      nU " U5      n[         R(                  [         R(                  4[         R*                  [         R*                  4[         R,                  [         R*                  4[         R                  [         R*                  4/nU H  u  nnUU4 H  nUR/                  U5      nU	R/                  U5      n	U
R/                  U5      n
[        UU5      u  nn[        UUU	U
US
9u  nnnUR0                  U:X  d   eUR0                  U:X  d   e[!        UU5        [!        UU5        [#        UR$                  U   U5        M     M     GM     g s  snf s  snf ! , (       d  f       GNb= f! , (       d  f       GNF= f)N)r   r&   r   2   rN   r%   )r   re   r&   )r:   r+   rg   rh   r+   rg   rh   ri   )r0   rQ   r   rangerandintrk   rl   r4   array
atleast_2dTr-   r.   r/   r   r   r   r   rM   vstackr1   r2   r3   r5   r6   )r   r   r   r+   rY   
n_features	n_samplesidata_chunksrg   rh   ri   r:   r<   r=   rD   rE   X_means_incrX_vars_incrn_incrr>   r?   r@   rA   rC   s                            rF   test_incr_mean_variance_axisr   C  sO    ii##A&
	19GLYGWXGW!;;q!*;=GWKXKFKJFWXFW;;q!);<FWKX -1AIBHHZ(288I;N	==+y9 HH[^$MM!19ACC!a e$]]9%#( & ]]9%#IQW & -U9,C	V-
)k6 	"'<8!&+61774=&1e$,UD9!'<8!&+61774=&1 IIk"19ACC!a e$e$ ZZ$ZZ$XXrzz"XXrzz"	
 *9%K"EN#??;7%,,\:	#??<8"4Xt"D4K'%!51k6 $))\999"((L888)'<@)&+>"1774=&9! + *9y 
 YX &% &%s#   N7'N<OO
O	
O"	c                 6   Su  p[         R                  R                  S5      nU " UR                  X5      5      n[         R                  " U5      n[         R
                  " U5      n[         R                  " UR                  [         R                  S9n[        XVUS9n[        U4SS0UD6u  pn[        [         R                  " UR                  5       SS9U	5        [        [         R                  " UR                  5       SS9U
5        [        R                  " [         5         [        U4SS0UD6  S	S	S	5        [        US	S
 XgS9n[        R                  " [         5         [        U4SS0UD6  S	S	S	5        g	! , (       d  f       NM= f! , (       d  f       g	= f)zCheck that we raise proper error when axis=1 and the dimension mismatch.
Non-regression test for:
https://github.com/scikit-learn/scikit-learn/pull/18655
)<   r    *   re   )rg   rh   ri   r+   r   r*   r&   N)r0   rQ   r   rV   rk   rl   rM   r4   dictr   r   r7   toarrayr8   r-   r.   
ValueError)rJ   r   r   rY   r:   rg   rh   ri   kwargsmean0var0r;   s               rF   )test_incr_mean_variance_axis_dim_mismatchr     s2    "I
))


#C388I:;A$I}}Y'HXXiooRXX6FIHF,QAQA&ANEBGGAIIKa0%8BFF199;Q/6 
z	"44V4 
# IcrNXMF	z	"44V4 
#	" 
#	"
 
#	"s   #E9!F
9
F

FzX1, X2r   皙?csrdensityformatr"      )r   r&   )rL   r   r   r"   )r   c           	         U" U 5      n U" U5      nSn[         R                  " U R                  S   5      [         R                  " U R                  S   5      pT[         R                  " U R                  S   [         R                  S9n[	        XXEUS9u  pxn	[	        XXxU	S9u  pxn	[
        R                  " X/5      n
[        U[         R                  " U
R                  5       US95        [        U[         R                  " U
R                  5       US95        [        U	[         R                  " [         R                  " U
R                  5       5      ) SS95        g )Nr   r&   re   r   r*   )r0   rk   rM   r4   r   spr   r   nanmeanr   nanvarr   isnan)X1X2r   r+   rg   rh   ri   updated_meanupdated_var	updated_nr:   s              rF   6test_incr_mean_variance_axis_equivalence_mean_variancer     s   2 
r	B	r	BD((288A;/"((1+1FxXXbhhqk2F+B
f,(Ly ,C
I,(Ly 			2(AL"**QYY[t"DEK199;T!BCIr//!))+1F0FQOPr]   c                      Sn [         R                  " SSSSS9R                  5       n[         R                  " SSSSS9R                  5       n[        R                  " UR
                  S   5      [        R                  " UR
                  S   5      pC[        R                  " UR
                  S   [        R                  S9n[        XX4US9u  p4n[        X X4US9u  pgn[        Xc5        [        Xt5        [        X5        g )Nr   r   r&   r   r   re   r   )	r   rQ   tocsrr0   rk   rM   r4   r   r   )	r+   r   r   rg   rh   ri   r   r   r   s	            rF    test_incr_mean_variance_no_new_nr     s    D	1a1	5	;	;	=B	1a1	5	;	;	=B((288A;/"((1+1FxXXbhhqk2F"9
f#I ,C
f,(Ly L,K*I&r]   c                  r   Sn [         R                  " SSSSS9R                  5       n[        R                  " UR
                  S   5      [        R                  " UR
                  S   5      p2Sn[        XX#US9u    pV[        U[        R                  " UR
                  S   UR
                  S   5      5        g )Nr   r   r%   r   r   r&   r   )	r   rQ   r   r0   rk   rM   r   r   rR   )r+   r:   rg   rh   ri   r;   new_ns          rF   test_incr_mean_variance_n_floatr     s    D
		!Q!4::<A((1771:.0DxF)		VKAq E2771771:qwwqz:;r]   r+   c                 0   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ[         R                  S9nU" [         R                  " / SQ/ SQ/ SQ/5      5      nU" [         R                  " S[         R                  SS/[         R                  SS	S	/S	S	[         R                  S
/S
S
S
[         R                  //5      5      nU (       a  UR                  nUR                  n[        UU UR                  5       UR                  5       UR                  5       S9u  pxn	[        UU UR                  5       UR                  5       UR                  5       S9u  pn[        X5        [        X5        [        X5        g )N)     @r   r   r   )     @r   r   r   )r%   r%   r%   r%   re   )   r   r   r   )  r   r   r   ),  r   r   r   r   r   r   r   )r0   r   r4   rU   r   r   copyr   )r+   rJ   	old_meansold_variancesold_sample_countr:   X_nanrD   rE   X_sample_countX_nan_means
X_nan_varsX_nan_sample_counts                rF   'test_incr_mean_variance_axis_ignore_nanr     sZ    56IHH=>MxxBHH=
&(<>RST	A 
bffc3'c3'c2663'c3'		
	E CC '>	.."##%$$&'#G^ 3J.."##%$$&3/K/ K)J'&7r]   c           	      F   [        SSSS9u  pSUS'   SUS'   SUS'   U " U5      n[        R                  " [        5         [	        USS	9  S S S 5        [        R                  " [        5         [	        US
S	9  S S S 5        [        R                  " [        5         [	        USS	9  S S S 5        [        R                  " [        5         [        USS S S S9  S S S 5        [        R                  " [        5         [        US
S S S S9  S S S 5        [        R                  " [        5         [        USS S S S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r    r   r!   r#   r$   r'   r*   r%   r   r   )r   r-   r.   r   r   r   )r   r:   r;   r=   s       rF   test_mean_variance_illegal_axisr   .  s/   q!!4DAAdGAdGAdG!E	z	"5r* 
#	z	"5q) 
#	z	"5r* 
# 
z	"dT$	
 
#
 
z	"TD	
 
#
 
z	"dT$	
 
#	"# 
#	"	"	"	"	" 
#	"
 
#	"
 
#	"sG   D=,EEE06F&F=
E
E
E-0
E>
F
F c           	         [         R                  [         R                  4 H  nU " / SQ/ SQ/ SQ/ SQ/ SQ/US9n[         R                  " / SQ[         R                  S9n[         R
                  " SUR                  S	   4US9n[         R                  " / S
Q[         R                  S9n[         R                  " U5      nX#S S 24   R                  5       Xe'   [        X#XT5        [        XF5        M     g )Nr   r(   r   r%   r    r   rc   	         r    r   r   re   ra      r&   )r&   r(   r    )r0   r1   r2   r   intponesrM   	ones_liker   r   r   )r   r6   r:   X_rowsoutout_rowsexpects          rF   test_densify_rowsr   M  s    **bjj)	9iC5
 )2773ggq!''!*oU388IRWW5c"QY<//1813' *r]   c                     [         R                  R                  S5      n [        R                  " SSSS9nUR	                  5       nUR                  5       nUR                  5       nU R                  S5      nXE-  n[        X55        [        X%5        [        UR                  5       UR                  5       5        [        XCR                  5       5        [        XBR                  5       5        [        R                  " [        5         [        UR                  5       U5        S S S 5        UR                  [         R                  5      nUR                  [         R                  5      nUR	                  5       nUR                  5       nUR                  5       nXE-  n[        X55        [        X%5        [        UR                  5       UR                  5       5        [        XCR                  5       5        [        XBR                  5       5        [        R                  " [        5         [        UR                  5       U5        S S S 5        g ! , (       d  f       GN/= f! , (       d  f       g = f)Nr   d      皙?r   )r0   rQ   r   r   r   tocscr   rV   r   r   r-   r.   r/   tolilr5   r1   rY   r:   XrXcXAscales         rF   test_inplace_column_scaler   ^  s   
))


"C
		#sD)A	
B	
B	
BHHSMEKB##bjjlBJJL9b**,/b**,/	y	!QWWY. 
" 	
ALL$E	
B	
B	
BKB##bjjlBJJL9b**,/b**,/	y	!QWWY. 
"	! 
"	! 
"	!s   I$I
I
I(c                     [         R                  R                  S5      n [        R                  " SSSS9nUR	                  5       nUR                  5       nUR                  5       nU R                  S5      nXER                  SS5      -  n[        X55        [        X%5        [        UR                  5       UR                  5       5        [        XCR                  5       5        [        XBR                  5       5        [        R                  " [        5         [        UR                  5       U5        S S S 5        UR!                  [         R"                  5      nUR!                  [         R"                  5      nUR	                  5       nUR                  5       nUR                  5       nXER                  SS5      -  n[        X55        [        X%5        [        UR                  5       UR                  5       5        [        XCR                  5       5        [        XBR                  5       5        [        R                  " [        5         [        UR                  5       U5        S S S 5        g ! , (       d  f       GN?= f! , (       d  f       g = f)Nr   r   r   r   r   r   r&   )r0   rQ   r   r   r   r   r   rV   reshaper   r   r-   r.   r/   r   r   r5   r1   r   s         rF   test_inplace_row_scaler   ~  s   
))


"C
		#sD)A	
B	
B	
BHHSME--A
Bb b bjjlBJJL9b**,/b**,/	y	!QWWY. 
" 	
ALL$E	
B	
B	
B--A
Bb b bjjlBJJL9b**,/b**,/	y	!QWWY. 
"	! 
"	! 
"	!s   I(I:(
I7:
Jc                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9nU" U5      nU " U5      n[        R                  " SU45      nUS   nU" US   US	   5      u  US'   US	'   [        USS	5        [        USS	5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        U" US
   US   5      u  US
'   US'   [        US
S5        [        US
S5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        [        R                  " [        5         [        UR                  5       5        S S S 5        [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9nU" U5      nU " U5      n[        R                  " SU45      nUS   nU" US   US	   5      u  US'   US	'   [        USS	5        [        USS	5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        U" US
   US   5      u  US
'   US'   [        US
S5        [        US
S5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        [        R                  " [        5         [        UR                  5       5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)Nr   r   rc   r   r   re   swapr   r   r%   r(   )r0   r   r2   r   get_blas_funcsr   r   r   r-   r.   r/   r   r1   r   r   r:   r=   r>   r   s         rF   test_inplace_swap_rowr     s    		Iy)Y?rzz	A !E!E  QD1D7DqtQrU#KAaD!B%UAr"UAr"u}}8q--/*q--/*adAaD!JAaD!A$UAq!UAq!u}}8q--/*q--/*	y	!' 
" 		Iy)Y?rzz	A !E!E  QD1D7DqtQrU#KAaD!B%UAr"UAr"u}}8q--/*q--/*adAaD!JAaD!A$UAq!UAq!u}}8q--/*q--/*	y	!' 
"	!- 
"	!, 
"	!s   M(M:(
M7:
Nc                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9nU" U5      nU " U5      n[        R                  " SU45      nUS   nU" US S 2S4   US S 2S	4   5      u  US S 2S4'   US S 2S	4'   [        USS	5        [        USS	5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        U" US S 2S4   US S 2S
4   5      u  US S 2S4'   US S 2S
4'   [        USS
5        [        USS
5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        [        R                  " [        5         [        UR                  5       5        S S S 5        [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9nU" U5      nU " U5      n[        R                  " SU45      nUS   nU" US S 2S4   US S 2S	4   5      u  US S 2S4'   US S 2S	4'   [        USS	5        [        USS	5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        U" US S 2S4   US S 2S
4   5      u  US S 2S4'   US S 2S
4'   [        USS
5        [        USS
5        [        UR                  5       UR                  5       5        [        X$R                  5       5        [        X#R                  5       5        [        R                  " [        5         [        UR                  5       5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)Nr   r   rc   r   r   re   r   r   r   r&   )r0   r   r2   r   r   r   r   r   r-   r.   r/   r   r1   r   s         rF   test_inplace_swap_columnr     s    		Iy)Y?rzz	A !E!E  QD1D7DQq!tWa2h/AadGQq"uXq"%q"%u}}8q--/*q--/*AadGQq!tW-AadGQq!tWq!$q!$u}}8q--/*q--/*	y	!EKKM* 
" 		Iy)Y?rzz	A !E!E  QD1D7DQq!tWa2h/AadGQq"uXq"%q"%u}}8q--/*q--/*AadGQq!tW-AadGQq!tWq!$q!$u}}8q--/*q--/*	y	!EKKM* 
"	!- 
"	!, 
"	!s   2N(N:(
N7:
O)r   r&   Nsparse_formatz.missing_values, min_func, max_func, ignore_nanFTlarge_indicesc                 B   [         R                  " / SQSSU// SQSUS// SQ/U S9nU" U5      n	U(       a@  U	R                  R                  S	5      U	l        U	R                  R                  S	5      U	l        [        XUS
9u  p[        X" XS95        [        X" XS95        g )Nr   r%   r   rc   r   r   r   re   r4   )r+   
ignore_nanr*   )r0   r   indicesr5   indptrr   r   )r6   r+   r   missing_valuesmin_funcmax_funcr   r   r:   rC   mins_sparsemaxs_sparses               rF   test_min_maxr     s    $ 	N#"	
 		A QH#++227;"//009+HJWK{HQ$:;{HQ$:;r]   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9nU" U5      nU " U5      n[        R                  " [
        5         [        UR                  5       SS9  S S S 5        [        R                  " [        5         [        US	S9  S S S 5        [        R                  " [        5         [        US
S9  S S S 5        g ! , (       d  f       Ni= f! , (       d  f       NM= f! , (       d  f       g = f)Nr   r%   r   r   rc   r   r   re   r   r*   r%   r   )	r0   r   r2   r-   r.   r/   r   r   r   )r   r   r:   r=   r>   s        rF   test_min_max_axis_errorsr   )  s     		J	9i@

	A !E!E	y	!U[[]+ 
"	z	"U# 
#	z	"U$ 
#	"	 
"	!	"	"	"	"s$   CC*C;
C'*
C8;
D	c           	      6   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9nU" U5      nU " U5      nUS:g  n/ SQnU[         R                  " U5      S S 2S 4   -  nS	 HD  n[        [	        X8S
9UR                  US
95        [        [	        X8US9UR                  US
95        MF     [        R                  " [        5         [	        U5        S S S 5        [        R                  " [        5         [	        USS
9  S S S 5        [	        USS
9R                  [	        USS
9R                  :X  d   e[	        USUS9R                  [	        USUS9R                  :X  d   e UR                  R                  [         R                  5      Ul        UR                  R                  [         R                  5      Ul        [	        USS
9R                  [	        USS
9R                  :X  d   e[	        USUS9R                  [	        USUS9R                  :X  d   eg ! , (       d  f       GNN= f! , (       d  f       GN3= f! [         aG  n	SU	R                  S   ;   a#  [         R                   " 5       R"                  S:  d   U	5       e S n	A	g S n	A	ff = f)Nr   r   rc   r   r   re   r   )      ?g?g333333?皙?r  )r   r&   r   Nr*   )r+   r[   r%   r&   zaccording to the rule 'safe'r   )r0   r   r2   r   r   sumr-   r.   r/   r   r6   r   r5   r4   r   argsr   nbytes)
r   r   r:   r=   r>   	X_nonzeror[   X_nonzero_weightedr+   es
             rF   test_count_nonzeror
  9  s5    		J	9i@

	A !E!EQI-M"RXXm%<QW%EE$!%+Y]]]-E	
 	"%-H"""-	
	 % 
y	!e 
"	z	"e!$ 
# Q'--u11M1S1SSSSe!=AGGQmDJJ	K	K	W,,RXX6||**2884U+11]5q5Q5W5WWWW%a}EKKU-HNNO	
O% 
"	!	"	"&  W-:rwwy?O?ORS?SVUVVS?SWs1   H#>H5,B6I #
H25
I
J=JJc                     [         R                  R                  S5      nUR                  SS5      n[         R                  " USS9nU " U5      n[        U5      n[        Xd5        UR                  SS5      nSX3S:  '   UR                  SSS5      nX7   * X7'   U " U5      n[         R                  " USS9n[        U5      n[        Xd5        SS	/S
S
/SS/SS//nU " U5      n[        [        U5      [         R                  " SS/5      5        SS	/S
S/SS//nU " U5      n[        [        U5      [         R                  " SS/5      5        [        R                  " [        5         [        U" U5      5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r*   3   g        gffffff?rN   r  r   r&   r%   r  g      r   )r0   rQ   r   rV   medianr   r   r   r   r-   r.   r/   )r   r   rY   r:   dense_mediancscsparse_medianinds           rF   test_csc_row_medianr  g  sg    ))


"CbA99QQ'L

C%c*M}3 	SAA#gJ
++aR
 CfWAF

C99QQ'L%c*M}3 R2r(QFQF+A

C(-rxxd/DE
R2r(QG$A

C(-rxxb	/BC 
y	!-*+ 
"	!	!s   $E??
Finplace_csr_row_normalizec                 l   U [         R                  L a  [        R                  " S5      nO[        R                  " S5      n[	        S5      n[        R
                  [        R                  4 GHD  nUR                  SS5      R                  U5      nU " U5      n[        R                  [        R                  4 H  nU[        R                  L a@  UR                  R                  U5      Ul        UR                  R                  U5      Ul        UR                  R                  U:X  d   eUR                  R                  U:X  d   eU" U5        UR                  U:X  d   eU[        L a  U=R                  S-  sl        [!        [        R"                  " U5      R%                  SS9U5        M     GMG     g )N)rN   r&   rN   r   r%   r&   r*   )r   
csr_matrixr0   r   r   r2   r1   randnr5   r3   r4   r   r   r6   r   datar   absr  )r   r  r   rsr6   r:   r=   index_dtypes           rF   test_inplace_normalizer    sA    %wwwwwr{	RB**bjj)HHRO""5)a HHbhh/K bhh&$||22;? % 4 4[ A==&&+555<<%%444%e,;;%'''(,HH

q 
%bffUm&7&7Q&7&?F 0 *r]   c                     [         R                  " SSSU SS9n[         R                  R                  USS9S-  n[	        U5      nUR
                  U :X  d   eU [        R                  :X  a  S	OS
n[        X2US9  g )Nr   rN   r   r   )r   r6   r"   r&   r*   r%   gư>Hz>)rtol)	r   rQ   r   normr   r6   r0   r1   r   )r6   r:   scipy_normsnormsr  s        rF   test_csr_row_normsr#    sm     			#r%u2FA))...+q0K!E;;%BJJ&4DDET2r]   module)scopeparamsc           
      :   U R                   n[        R                  R                  S5      nU" [        R                  " SSSSUS95      nUR                  5       n[        R                  " UR                  SS95      R                  5       n[        X55      nXE-
  nXg4$ )	z?Returns equivalent tuple[sp.linalg.LinearOperator, np.ndarray].r   i  r   r  r   r   r   r*   )
paramr0   rQ   default_rngr   r   asarrayr7   ravelr   )requestsparse_containerr"   rC   X_densemuX_sparse_centeredX_dense_centereds           rF   centered_matricesr2    s     }}99((,L
		#sCLQH  G	HMMqM)	*	0	0	2B/=|..r]   c                     Uu  p#[         R                  R                  U 5      nUR                  UR                  S   S45      n[        X5-  UR                  U5      5        [        X5-  X%-  5        g )Nr&   r   )r0   rQ   r)  standard_normalrM   r   matmatglobal_random_seedr2  r0  r1  rY   Ys         rF   test_implicit_center_matmatr9    sm    *;'
))

 2
3C-33A6;<A$(*;*B*B1*EF$(*;*?@r]   c                     Uu  p#[         R                  R                  U 5      nUR                  UR                  S   5      n[        X5-  UR                  U5      5        [        X5-  X%-  5        g )Nr&   )r0   rQ   r)  r4  rM   r   matvecr7  r2  r0  r1  rY   ys         rF   test_implicit_center_matvecr>    sh    *;'
))

 2
3C,22156A$(*;*B*B1*EF$(*;*?@r]   c                 &   Uu  p#[         R                  R                  U 5      nUR                  UR                  S   S45      n[        UR                  U-  UR                  U5      5        [        UR                  U-  UR                  U-  5        g )Nr   r   )r0   rQ   r)  r4  rM   r   r   rmatmatr6  s         rF   test_implicit_center_rmatmatrA    s    *;'
))

 2
3C-33A6;<A$&&*,=,E,Ea,HI$&&*,=,?,?!,CDr]   c                 "   Uu  p#[         R                  R                  U 5      nUR                  UR                  S   5      n[        UR                  U-  UR                  U5      5        [        UR                  U-  UR                  U-  5        g )Nr   )r0   rQ   r)  r4  rM   r   r   rmatvecr<  s         rF   test_implit_center_rmatvecrD    s    *;'
))

 2
3C,22156A$&&*,=,E,Ea,HI$&&*,=,?,?!,CDr]   ABr   msgzShapes must fulfilzShape of outcoozInput 'A' mustzInput 'B' must)r   r6   zDtype of A and Bc                 ~    [         R                  " [        US9   [        XUS9  SSS5        g! , (       d  f       g= f)z7Test that sparse_matmul_to_dense raises when it should.)matchr   N)r-   r.   r   r   rE  s       rF   "test_sparse_matmul_to_dense_raisesrM    s(    . 
z	-q- 
.	-	-s   .
<out_is_Nonea_containerb_containerc                    [         R                  R                  U 5      nSu  pgnUR                  Xg45      R	                  U5      n	UR                  Xx45      R	                  U5      n
SU	R
                  UR                  SS/Xg-  SS/S9'   SU
R
                  UR                  SS/Xx-  SS/S9'   U" U	5      nU" U
5      nU(       a  SnO[         R                  " Xh4US9n[        XUS	9n[        XU
-  S
S9  U(       d  [        XS
S9  gg)z4Test that sparse_matmul_to_dense computes correctly.)rN      r   r   FTr  )r   pNre   rL  r  )atol)
r0   rQ   r)  r4  r5   flatrS   emptyr   r   )r7  rN  rO  rP  r6   rY   n1n2n3a_denseb_denseabr   results                  rF   test_sparse_matmul_to_denser_    s    ))

 2
3CJBB!!2(+2259G!!2(+2259GJKGLLUDMC:FGJKGLLUDMC:FGGAGAhhxu-#Ac2FFg-D9$/ r]   )Tnumpyr0   r-   scipy.sparsesparser   numpy.randomr   numpy.testingr   r   scipyr   sklearn.datasetsr   sklearn.utils._testingr   sklearn.utils.fixesr	   r
   r   sklearn.utils.sparsefuncsr   r   r   r   r   r   r   r   r   r   r   sklearn.utils.sparsefuncs_fastr   r   r   r   markparametrizerG   r1   r2   r\   r_   rU   r   r}   r   r   r   rQ   hstackrR   r   r   r   r   r   r   r   r   r   r   minmaxnanminnanmaxr   r   r
  r  r  r#  fixturer2  r9  r>  rA  rD  eyer3   rM  r_   r]   rF   <module>ru     s$      $ G  0 2 N N     .9.9.9F : : :FD 2::rzz":;-~/NO% P <%$ .9.9.9F : : :FD 
Y	)Y!7C
Y	,!=yI
Y	)Y!7>^a01^a01	
 Va[1a&1a&2662662BRVVQKPArvv(# #J	
 	"o.HHY	
+< -~/NO2::rzz":;A$ < P=@A$H 
Y	)Y!7!Q@
Y	)Y	!BQFK
Y	)Y!7>^a01^a01#J	
 Arvvq!$q!RVVRVVRVVQ&GHAq"&&!Q'Aq"&&!Q'Arvvrvvrvvq1
 #J	
 	"	9i8HHaV	
%6 -~/NO2::rzz":;A$ < P7:A$H .9.9.9N: : : :N:b -~/NO5 P58  IIaCAFIIb!SQG	

 IIaCAFIIGGG7IIb!SrB 		
& .9Q :'(Q,'&	< !Q(-~/NO,8 P ),8^ .9
 :
< .9( :( /@/@ .9.9-( : :-(` .9.9-+ : :-+` 2::rzz":;..>*IJ4"&&"))RYY!EF 4-8< 9	 K / <<> .9.9% : :% .9.9)W : :)WX .9.9, : :,D !#?@ .9G :	
G2 2::rzz":;
3 <
3 h~'FG/ H/$AAEE 	%	 "&&5"94AUV	%	 "&&5"9266!9nU	%	 "&&5"94AQR	%	 "&&5"94AQRFF1U"((3FF1U#		
 FF1U"**5FF1U"**5		
*.+*. 6(GH(GH2::rzz":;0 < I I 70r]   