
     hx                        d dl Z d dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d	 Z e j!        "                    d
ej#        ej$        g          e j!        "                    dej%        ej&        g          d                         Z'd Z(e j!        "                    g dg dg dgg dg dgg dfg dg dgg dg dgg dfg dg dgg dg dgdfd ej)        dgd ej)        ej)        ggd ej)        dgd ej)        ej)        ggg dfd d gdej)        gdd gd dgej)        ej)        gej)        dggg dddej)        gg dg dej)        ej)        ej)        gej)        ej)        dggddgfg dg d gg d!g d"g ej*        g d#          fg          e j!        "                    dej&        ej%        g          e j!        "                    d
ej#        ej$        g          d$                                     Z+e j!        "                    g dg dg dgg dg dgddgfg dg dgg dg dg dgddgfg dg dgg dg dgdfd ej)        dgd ej)        ej)        ggd ej)        dgd ej)        ej)        ggddgfd d dej)        dd gd dej)        ej)        ej)        dggd d dej)        dd gd d dej)        dd gd dej)        ej)        ej)        dggddgfg dg dgg dg dg dg dg ej*        ddg          fg          e j!        "                    dej&        ej%        g          e j!        "                    d
ej#        ej$        g          d%                                     Z,d& Z-e j!        "                    dej&        ej%        g          d'             Z.e j!        "                    d( ej/        d)dd*d+d ,           ej/        d-dd*d+d ,          f ej/        d)dd*d+d ,           ej0         ej%         ej1        d.ej)        /                     ej/        d-dd*d01          gd+2          fg          d3             Z2d4 Z3d5 Z4e j!        "                    d6d dg          e j!        "                    dej&        ej%        g          d7                         Z5d8 Z6d9 Z7d: Z8d; Z9d< Z:d= Z;e j!        "                    d
ej#        ej$        g          e j!        "                    d6g d>          e j!        "                    d?ej%        ej&        g          e j!        "                    d@d ej<        ej=        dAfej)        ej>        ej?        dBfg          e j!        "                    dCdBdAg          dD                                                             Z@dE ZAdF ZBdG ZCdH ZDe j!        "                    d
ej#        ej$        g          dI             ZEdS )J    N)linalg)assert_array_almost_equalassert_array_equal)RandomState)make_classification)	mean_variance_axisincr_mean_variance_axisinplace_column_scaleinplace_row_scaleinplace_swap_rowinplace_swap_columnmin_max_axiscount_nonzerocsc_median_axis_0)assign_rows_csrinplace_csr_row_normalize_l1inplace_csr_row_normalize_l2csr_row_norms)assert_allclosec            	      x   t          ddd          \  } }d| d<   d| d<   d| d<   t          j        |           }d|d<   d| d<   t          j        t
                    5  t          |d	           d d d            n# 1 swxY w Y   t          j        |          }t          j        |          }t          j
        t          j
        ft          j        t          j        ft          j        t          j        ft          j        t          j        fg}|D ]\  }}|                     |          }||fD ]}	|	                    |          }	t          |	d	          \  }
}|
j        |k    sJ |j        |k    sJ t!          |
t          j        |d	                     t!          |t          j        |d	                     d S )
N      r   random_stater   r         r      r   r   axisr   sp
lil_matrixpytestraises	TypeErrorr   
csr_matrix
csc_matrixnpfloat32float64int32int64astypedtyper   meanvarX_X_lilX_csrX_cscexpected_dtypesinput_dtypeoutput_dtypeX_testX_sparseX_meansX_varss               `/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_sparsefuncs.pytest_mean_variance_axis0rC         q!!444DAqAdGAdGAdGM!EE$KAdG	y	!	! * *5q))))* * * * * * * * * * * * * * * M%  EM%  E 
RZ 	RZ 	2:	2:	O &5 F F!\+&& 	F 	FH{33H0BBBOGV=L0000<<////%grwvA/F/F/FGGG%fbfV!.D.D.DEEEE	FF F   A::A>A>r2   sparse_constructorc                    t           j                            d          }t          j        dd|           }|                    t          j        |j        d                   dd          }t           j        ||df<    ||          }|                    |j        d                   	                    |           }t          ||d          \  }}|t          j        |           j        k     sJ d S )	Nr   g      Y@)i  r   )
fill_valueshaper2   
   F)replace)weightsr#   )r,   randomr   fullchoicearangerI   nanrandr1   r   finfoeps)r2   rF   rngr6   missing_indicessample_weightr7   r4   s           rB   "test_mean_variance_axis0_precisionrX   @   s    
 )


"
"C
5	???Ajj171:!6!6EjJJOFAoq1A HHQWQZ((//66M=qAAAFAs%$$$$$$$    c            	      x   t          ddd          \  } }d| d<   d| d<   d| d<   t          j        |           }d|d<   d| d<   t          j        t
                    5  t          |d	
           d d d            n# 1 swxY w Y   t          j        |          }t          j        |          }t          j
        t          j
        ft          j        t          j        ft          j        t          j        ft          j        t          j        fg}|D ]\  }}|                     |          }||fD ]}	|	                    |          }	t          |	d
          \  }
}|
j        |k    sJ |j        |k    sJ t!          |
t          j        |d
                     t!          |t          j        |d
                     d S )Nr   r   r   r   r   r   r   r!   r   r"   r$   r5   s               rB   test_mean_variance_axis1r[   T   rD   rE   )Xwr6   rL   )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   r   r   )r   r   r   )r   r   r    g       @r^   )r   r   r   )r   r    r   )r   r   r   r   r   )r   r    r    r    r   )r   r    r   c                    d} ||                                |          } ||                               |          }t          j        t          j        |           d         |          }t          j        ||          }	t          j        |t          j                  }
t          ||||	|
d           \  }}}t          ||||	|
|          \  }}}|j        |k    sJ |j        |k    sJ |j        |k    sJ t          ||          \  }}t          ||           t          ||           t          ||           t          ||           t          ||           t          |||||d           \  }}}t          ||||||          \  }}}t          ||           t          ||           t          ||           |j        |k    sJ |j        |k    sJ |j        |k    sJ d S )Nr   r   r2   r6   r#   	last_meanlast_varlast_nrL   r6   r#   )
r1   r,   zerosrI   
zeros_liker0   r	   r2   r   r   r\   r6   rL   rF   r2   r#   	Xw_sparser?   rc   rd   re   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                            rB   +test_incr_mean_variance_axis_weighted_axis1ry   v   s]   F D""2&&--e44I!!!$$++E22H"a666I}Ye444H]9BH555F4
  FE7 $;
$ $ $ Hgy >U""""=E!!!!?e#### 2XD I I IL+fh///fl333eW---e[111gy111 5
  FE7 $;
$ $ $ Hgy fh///eW---gy111>U""""=E!!!!?e######rY   c                    d} ||                                |          } ||                               |          }t          j        t          j        | d          |          }t          j        |          }	t          j        |t          j                  }
t          ||||	|
d           \  }}}t          ||||	|
|          \  }}}|j        |k    sJ |j        |k    sJ |j        |k    sJ t          ||          \  }}t          ||           t          ||           t          ||           t          ||           t          ||           t          |||||d           \  }}}t          ||||||          \  }}}t          ||           t          ||           t          ||           |j        |k    sJ |j        |k    sJ |j        |k    sJ d S )Nr   r   ra   rb   rf   )
r1   r,   rg   sizerh   r0   r	   r2   r   r   ri   s                            rB   +test_incr_mean_variance_axis_weighted_axis0r|      sV   @ D""2&&--e44I!!!$$++E22HQu555I}Y''H]9BH555F4
  FE7 $;
$ $ $ Hgy >U""""=E!!!!?e#### 2XD I I IL+fh///fl333eW---e[111gy111 5
  FE7 $;
$ $ $ Hgy fh///eW---gy111>U""""=E!!!!?e######rY   c            
      $   dD ]} t           j                            d          dd| dk    rfdt                    D             }nfdt                    D             }| dk    rt          j                  nt          j                  }t          j        |          }t          j        |t           j                  }t          j        |d                   }t          j        |          }| dk    r|j	        n|}t          j        |          }t          j        |          }t          j        t                    5  t!          | |||	           d d d            n# 1 swxY w Y   t          j        t                    5  t!          || |||
           d d d            n# 1 swxY w Y   t#          ||           \  }}	t!          || |||
          \  }
}}t%          ||
           t%          |	|           t'          |j        |          |           t          j        |          }t#          ||           \  }}	t%          ||
           t%          |	|           t'          |j        |          |           t          j        |          }| dk    r|j	        n|}t          j        |          }t          j        |          }t          j        |          }t           j        t           j        ft           j        t           j        ft           j        t           j        ft           j        t           j        fg}|D ]\  }}||fD ]}|                    |          }|                    |          }|                    |          }t#          ||           \  }}	t!          || |||
          \  }
}}|
j        |k    sJ |j        |k    sJ t%          ||
           t%          |	|           t'          |j        |          |           ̐
d S )N)r   r   r   2   rJ   c                 @    g | ]}                     d d          S r   r   )r{   randint).0i
n_featuresrU   s     rB   
<listcomp>z0test_incr_mean_variance_axis.<locals>.<listcomp>A  s+    XXX!3;;q!*;==XXXrY   c                 @    g | ]}                     d d          S r   r   )r   r   	n_samplesrU   s     rB   r   z0test_incr_mean_variance_axis.<locals>.<listcomp>C  s+    XXX3;;q!);<<XXXrY   ra   r   )r6   r#   rc   rd   r#   rc   rd   re   )r,   rM   r   rangerg   rh   r0   array
atleast_2dTr%   r&   r*   r'   r(   r)   r	   r   r   r   rI   r+   vstackr-   r.   r/   r1   r2   )r#   data_chunksrc   rd   re   r6   r8   r9   r@   rA   X_means_incrX_vars_incrn_incrr:   r;   r<   r=   r?   r   r   rU   s                     @@@rB   test_incr_mean_variance_axisr   ;  s    M: M:i##A&&
	199XXXXXuYGWGWXXXKKXXXXXeJFWFWXXXK -1AIIBHZ(((28I;N;N	=++y999 H[^$$M!199ACC!a  e$$]9%% 	 	#Y(V   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9%% 	 	#DIQW   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 -UD99,C	HV-
 -
 -
)k6 	"'<888!&+666174=&111e$$,UD99!'<888!&+666174=&111 Ik""199ACC!a  e$$e$$ Z$Z$Xrz"Xrz"	
 *9 	: 	:%K"EN : :#??;77%,,\::	#??<88"4Xt"D"D4K'%!5 5 51k6 $)\9999"(L8888)'<@@@)&+>>>"174=&9999!:	:yM: M:s$   E++E/	2E/	F00F4	7F4	c                 ~   d\  }}t           j                            d          } | |                    ||                    }t          j        |          }t          j        |          }t          j        |j        t           j                  }t          |||          }t          |fddi|\  }	}
}t          t          j        |                                d          |	           t          t          j        |                                d          |
           t          j        t                     5  t          |fddi| d	d	d	           n# 1 swxY w Y   t          |d	d
         ||          }t          j        t                     5  t          |fddi| d	d	d	           d	S # 1 swxY w Y   d	S )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   *   ra   )rc   rd   re   r#   r   r"   r   N)r,   rM   r   rR   rg   rh   rI   r0   dictr	   r   r3   toarrayr4   r'   r(   
ValueError)rF   r   r   rU   r6   rc   rd   re   kwargsmean0var0r7   s               rB   )test_incr_mean_variance_axis_dim_mismatchr     s(    "Iz
)


#
#C388Iz::;;A$$I}Y''HXioRX666FIHHHF,QAAQA&AANE4BGAIIKKa000%888BF199;;Q///666 
z	"	" 5 5444V4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 IcrcNXfMMMF	z	"	" 5 5444V4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   ;EEEF22F69F6zX1, X2r   皙?csr)densityformatr      )r   r   )rH   r   r   r   )r   c                    d}t          j        | j        d                   t          j        | j        d                   }}t          j        | j        d         t           j                  }t	          | ||||          \  }}}t	          |||||          \  }}}t          j        | |g          }	t          |t          j        |	j	        |                     t          |t          j
        |	j	        |                     t          |t          j        t          j        |	j	                   d                     d S )Nr   r   ra   r   r"   )r,   rg   rI   r0   r	   r%   r   r   nanmeanAnanvarr   isnan)
X1X2r#   rc   rd   re   updated_meanupdated_var	updated_nr6   s
             rB   6test_incr_mean_variance_axis_equivalence_mean_variancer     s&   0 D(28A;//"(1+1F1FxIXbhqk222F+B
Xf, , ,(L+y ,C
I, , ,(L+y 		2r(AL"*QSt"<"<"<===K13T!:!:!:;;;Ir/!#QGGGHHHHHrY   c                  D   d} t          j        dddd                                          }t          j        dddd                                          }t          j        |j        d                   t          j        |j        d                   }}t          j        |j        d         t          j                  }t          || |||          \  }}}t          || |||          \  }}}t          ||           t          ||           t          ||           d S )Nr   r   r   r   r   ra   r   )	r%   rM   tocsrr,   rg   rI   r0   r	   r   )	r#   r   r   rc   rd   re   r   r   r   s	            rB    test_incr_mean_variance_no_new_nr     s   D	1a1	5	5	5	;	;	=	=B	1a1	5	5	5	;	;	=	=B(28A;//"(1+1F1FxIXbhqk222F"9
Xf# # #Ix ,C
Xf, , ,(L+y L),,,K***Iv&&&&&rY   c                     d} t          j        dddd                                          }t          j        |j        d                   t          j        |j        d                   }}d}t          || |||          \  }}}t          |t          j        |j        d         |j        d                              d S )Nr   r   r   r   r   r   r   )	r%   rM   r   r,   rg   rI   r	   r   rN   )r#   r6   rc   rd   re   r7   new_ns          rB   test_incr_mean_variance_n_floatr     s    D
	!Q!444::<<A(171:..0D0DxIF)		HV  KAq% E27171:qwqz::;;;;;rY   r#   c                 X   t          j        g d          }t          j        g d          }t          j        g dt           j                  } |t          j        g dg dg dg                    } |t          j        dt           j        ddgt           j        dd	d	gd	d	t           j        d
gd
d
d
t           j        gg                    }| r|j        }|j        }t          || |                                |                                |                                          \  }}}	t          || |                                |                                |                                          \  }
}}t          |
|           t          ||           t          ||	           d S )N)     @r   r   r   )     @r   r   r   )r   r   r   r   ra   )   r   r   r   )  r   r   r   ),  r   r   r   r   r   r   r   )r,   r   r0   rQ   r   r	   copyr   )r#   rF   	old_meansold_variancesold_sample_countr6   X_nanr@   rA   X_sample_countX_nan_means
X_nan_varsX_nan_sample_counts                rB   'test_incr_mean_variance_axis_ignore_nanr     s    55566IH===>>MxBH===
&&&(<(<(<>R>R>RSTT	 	A 
bfc3'c3'c263'c3'		
 	
	 	E  C '>	..""##%%$$&&' ' '#GV^ 3J..""##%%$$&&3 3 3/K/ K)))J'''&77777rY   c                     t          ddd          \  } }d| d<   d| d<   d| d<   t          j        |           }t          j        t
                    5  t          |d	           d d d            n# 1 swxY w Y   t          j        t
                    5  t          |d
	           d d d            n# 1 swxY w Y   t          j        t
                    5  t          |d	           d d d            n# 1 swxY w Y   t          j        t
                    5  t          |dd d d            d d d            n# 1 swxY w Y   t          j        t
                    5  t          |d
d d d            d d d            n# 1 swxY w Y   t          j        t
                    5  t          |dd d d            d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   r   r"   r   r   r   )r   r%   r*   r'   r(   r   r   r	   )r6   r7   r9   s      rB   test_mean_variance_illegal_axisr      sV   q!!444DAqAdGAdGAdGM!E	z	"	" + +5r****+ + + + + + + + + + + + + + +	z	"	" * *5q))))* * * * * * * * * * * * * * *	z	"	" + +5r****+ + + + + + + + + + + + + + + 
z	"	" 
 
dT$	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
z	"	" 
 
TD	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
z	"	" 
 
dT$	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
sl   A00A47A4B22B69B6C44C8;C8D99D= D=E>>FF"GGGc            	         t           j        t           j        fD ]} t          j        g dg dg dg dg dg|           }t          j        g dt           j                  }t          j        d|j        d	         f|           }t          j        g d
t           j                  }t          j	        |          }||d d f         
                                ||<   t          ||||           t          ||           d S )Nr   r    r   r   r   r   r_   	         r   r   r   ra   r]      r   )r   r    r   )r,   r-   r.   r%   r*   r   intponesrI   	ones_liker   r   r   )r2   r6   X_rowsoutout_rowsexpects         rB   test_densify_rowsr   >  s
   *bj) ( (MYY			999iiiC5
 
 
 )))27333gq!'!*oU3338IIIRW555c""VQQQY<//11x68S1113''''( (rY   c                     t           j                            d          } t          j        ddd          }|                                }|                                }|                                }|                     d          }||z  }t          ||           t          ||           t          |                                |                                           t          ||                                           t          ||                                           t          j        t                    5  t          |                                |           d d d            n# 1 swxY w Y   |                    t           j                  }|                    t           j                  }|                                }|                                }|                                }||z  }t          ||           t          ||           t          |                                |                                           t          ||                                           t          ||                                           t          j        t                    5  t          |                                |           d d d            d S # 1 swxY w Y   d S )Nr   d      皙?)r,   rM   r   r%   rR   r   tocscr   r
   r   r'   r(   r)   tolilr1   r-   rU   r6   XrXcXAscales         rB   test_inplace_column_scaler   N  s   
)


"
"C
S$A	
B	
B	
BHHSMME%KBU###U###bjjllBJJLL999b"**,,///b"**,,///	y	!	! / /QWWYY.../ / / / / / / / / / / / / / / 	
ALL$$E	
B	
B	
B%KBU###U###bjjllBJJLL999b"**,,///b"**,,///	y	!	! / /QWWYY.../ / / / / / / / / / / / / / / / / /s$   =#E,,E03E0'#KKKc                     t           j                            d          } t          j        ddd          }|                                }|                                }|                                }|                     d          }||                    dd          z  }t          ||           t          ||           t          |                                |                                           t          ||                                           t          ||                                           t          j        t                    5  t          |                                |           d d d            n# 1 swxY w Y   |                    t           j                  }|                    t           j                  }|                                }|                                }|                                }||                    dd          z  }t          ||           t          ||           t          |                                |                                           t          ||                                           t          ||                                           t          j        t                    5  t          |                                |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   )r,   rM   r   r%   rR   r   r   r   reshaper   r   r'   r(   r)   r
   r   r1   r-   r   s         rB   test_inplace_row_scaler   n  s   
)


"
"C
S$A	
B	
B	
BHHSMME%--A

Bb%   b%   bjjllBJJLL999b"**,,///b"**,,///	y	!	! / /QWWYY.../ / / / / / / / / / / / / / / 	
ALL$$E	
B	
B	
B%--A

Bb%   b%   bjjllBJJLL999b"**,,///b"**,,///	y	!	! / /QWWYY.../ / / / / / / / / / / / / / / / / /s$   #F  FF#K??LLc                     t          j        g dg dg dg dg dgt           j                  } t          j        |           }t          j        |           }t          j        d| f          }|d         } || d         | d	                   \  | d<   | d	<   t          |dd	           t          |dd	           t          |
                                |
                                           t          | |
                                           t          | |
                                            || d
         | d                   \  | d
<   | d<   t          |d
d           t          |d
d           t          |
                                |
                                           t          | |
                                           t          | |
                                           t          j        t                    5  t          |                                           d d d            n# 1 swxY w Y   t          j        g dg dg dg dg dgt           j                  } t          j        |           }t          j        |           }t          j        d| f          }|d         } || d         | d	                   \  | d<   | d	<   t          |dd	           t          |dd	           t          |
                                |
                                           t          | |
                                           t          | |
                                            || d
         | d                   \  | d
<   | d<   t          |d
d           t          |d
d           t          |
                                |
                                           t          | |
                                           t          | |
                                           t          j        t                    5  t          |                                           d d d            d S # 1 swxY w Y   d S )Nr   r   r_   r   r   ra   swapr   r   r   r    )r,   r   r.   r%   r*   r+   r   get_blas_funcsr   r   r   r'   r(   r)   r   r-   r6   r9   r:   r   s       rB   test_inplace_swap_rowr     s_   
	IIIyyy)))YYY?rz	 	 	A M!EM!E QD11D7D$qtQrU##KAaD!B%UAr"""UAr"""u}}888q%--//***q%--//***adAaD!!JAaD!A$UAq!!!UAq!!!u}}888q%--//***q%--//***	y	!	! ( ('''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 		IIIyyy)))YYY?rz	 	 	A M!EM!E QD11D7D$qtQrU##KAaD!B%UAr"""UAr"""u}}888q%--//***q%--//***adAaD!!JAaD!A$UAq!!!UAq!!!u}}888q%--//***q%--//***	y	!	! ( ('''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s$   "H33H7:H7"Q11Q58Q5c                  |	   t          j        g dg dg dg dg dgt           j                  } t          j        |           }t          j        |           }t          j        d| f          }|d         } || d d df         | d d d	f                   \  | d d df<   | d d d	f<   t          |dd	           t          |dd	           t          |
                                |
                                           t          | |
                                           t          | |
                                            || d d df         | d d d
f                   \  | d d df<   | d d d
f<   t          |dd
           t          |dd
           t          |
                                |
                                           t          | |
                                           t          | |
                                           t          j        t                    5  t          |                                           d d d            n# 1 swxY w Y   t          j        g dg dg dg dg dgt           j                  } t          j        |           }t          j        |           }t          j        d| f          }|d         } || d d df         | d d d	f                   \  | d d df<   | d d d	f<   t          |dd	           t          |dd	           t          |
                                |
                                           t          | |
                                           t          | |
                                            || d d df         | d d d
f                   \  | d d df<   | d d d
f<   t          |dd
           t          |dd
           t          |
                                |
                                           t          | |
                                           t          | |
                                           t          j        t                    5  t          |                                           d d d            d S # 1 swxY w Y   d S )Nr   r   r_   r   r   ra   r   r   r   r   )r,   r   r.   r%   r*   r+   r   r   r   r   r   r'   r(   r)   r   r-   r   s       rB   test_inplace_swap_columnr     s   
	IIIyyy)))YYY?rz	 	 	A M!EM!E QD11D7DQqqq!tWa2h//AaaadGQqqq"uXq"%%%q"%%%u}}888q%--//***q%--//***tAaaadGQqqq!tW--AaaadGQqqq!tWq!$$$q!$$$u}}888q%--//***q%--//***	y	!	! + +EKKMM***+ + + + + + + + + + + + + + + 		IIIyyy)))YYY?rz	 	 	A M!EM!E QD11D7DQqqq!tWa2h//AaaadGQqqq"uXq"%%%q"%%%u}}888q%--//***q%--//***tAaaadGQqqq!tW--AaaadGQqqq!tWq!$$$q!$$$u}}888q%--//***q%--//***	y	!	! + +EKKMM***+ + + + + + + + + + + + + + + + + +s$   %"III"R11R58R5)r   r   Nsparse_formatz.missing_values, min_func, max_func, ignore_nanFTlarge_indicesc                    t          j        g ddd|gg dd|dgg dg|           } ||          }	|r>|	j                            d	          |	_        |	j                            d	          |	_        t          |	||
          \  }
}t          |
 |||                     t          | |||                     d S )Nr   r   r   r_   r   r   r   ra   r0   )r#   
ignore_nanr"   )r,   r   indicesr1   indptrr   r   )r2   r#   r   missing_valuesmin_funcmax_funcr   r   r6   r?   mins_sparsemaxs_sparses               rB   test_min_maxr     s    $ 	IIN#II"II	
 		 		 		A }QH :#+227;;"/0099+H4JWWWK{HHQT$:$:$:;;;{HHQT$:$:$:;;;;;rY   c                  f   t          j        g dg dg dg dg dgt           j                  } t          j        |           }t          j        |           }t          j        t                    5  t          |
                                d           d d d            n# 1 swxY w Y   t          j        t                    5  t          |d	           d d d            n# 1 swxY w Y   t          j        t                    5  t          |d
           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r_   r   r   ra   r   r"   r   r   )r,   r   r.   r%   r*   r+   r'   r(   r)   r   r   r   )r6   r9   r:   s      rB   test_min_max_axis_errorsr     s   
	JJJ			999iii@
	 	 	A M!EM!E	y	!	! , ,U[[]]++++, , , , , , , , , , , , , , ,	z	"	" $ $U####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	z	"	" % %U$$$$% % % % % % % % % % % % % % % % % %s6   1$B!!B%(B%C##C'*C'D&&D*-D*c                     t          j        g dg dg dg dg dgt           j                  } t          j        |           }t          j        |           }| dk    }g d}|t          j        |          d d d f         z  }d	D ]i}t          t          ||
          |                    |
                     t          t          |||          |                    |
                     jt          j
        t                    5  t          |           d d d            n# 1 swxY w Y   t          j
        t                    5  t          |d
           d d d            n# 1 swxY w Y   t          |d
          j        t          |d
          j        k    sJ t          |d|          j        t          |d|          j        k    sJ 	 |j                            t           j                  |_        |j                            t           j                  |_        t          |d
          j        t          |d
          j        k    sJ t          |d|          j        t          |d|          j        k    sJ d S # t          $ r@}d|j        d         v rt          j                    j        dk     s
J |            Y d }~d S d }~ww xY w)Nr   r   r_   r   r   ra   r   )      ?g?g333333?皙?r  )r   r   r   Nr"   )r#   rW   r   r   zaccording to the rule 'safe'r   )r,   r   r.   r%   r*   r+   r   r   sumr'   r(   r)   r   r2   r   r1   r0   r   argsr   nbytes)r6   r9   r:   	X_nonzerorW   X_nonzero_weightedr#   es           rB   test_count_nonzeror
  "  s   
	JJJ			999iii@
	 	 	A M!EM!EQI---M"RXm%<%<QQQW%EE$ 
 
!%d+++Y]]]-E-E	
 	
 	
 	"%d-HHH"""--	
 	
 	
 	

 
y	!	!  e              	z	"	" % %e!$$$$% % % % % % % % % % % % % % % Q'''-u11M1M1M1SSSSSe!=AAAGQmDDDJ	K 	K 	K 	K	W,,RX66|**2844U+++1]5q5Q5Q5Q5WWWWW%a}EEEKU-HHHNO O O O O O  W W W-::rwyy?ORS?S?S?SUV?S?SS?S?S?S?S?S?SWs=   D$$D(+D(E&&E*-E*B4J
 

K5KKc                     t           j                            d          } |                     dd          }t          j        |d          }t          j        |          }t          |          }t          ||           |                     dd          }d||dk     <   | 	                    ddd          }||          ||<   t          j        |          }t          j        |d          }t          |          }t          ||           dd	gd
d
gddgddgg}t          j        |          }t          t          |          t          j
        ddg                     dd	gd
dgddgg}t          j        |          }t          t          |          t          j
        ddg                     t          j        t                    5  t          t          j        |                     d d d            d S # 1 swxY w Y   d S )Nr   r   r~   r"   3   g        gffffff?rJ   r  r   r   r   r  g      r   )r,   rM   r   rR   medianr%   r+   r   r   r   r   r'   r(   r)   r*   )rU   r6   dense_mediancscsparse_medianinds         rB   test_csc_row_medianr  N  s$    )


"
"CbA9QQ'''L
-

C%c**M}l333 	SAAa#gJ
++aR
 
 CfWAcF
-

C9QQ'''L%c**M}l333 R2r(QFQF+A
-

C(--rxd/D/DEEE
R2r(QG$A
-

C(--rxb	/B/BCCC 
y	!	! , ,"-**+++, , , , , , , , , , , , , , , , , ,s   "G55G9<G9c                  
   t          j        d          } t          d          }t          t          fD ]O}t           j        t           j        fD ]2}|                    dd                              |          }t          j
        |          }t           j        t           j        fD ]}|t           j        u r>|j                            |          |_        |j                            |          |_        |j        j        |k    sJ |j        j        |k    sJ  ||           |j        |k    sJ |t          u r|xj        dz  c_        t#          t          j        |                              d          |            ڐ4Qd S )N)rJ   r   rJ   r   r   r   r"   )r,   r   r   r   r   r.   r-   randnr1   r%   r*   r/   r0   r   r   r2   datar   absr  )r   rsinplace_csr_row_normalizer2   r6   r9   index_dtypes          rB   test_inplace_normalizer  p  s   77D	RB 	%$& K K! j"*- 	K 	KEQ&&u--AM!$$E ""(3 K K "(**#(<#6#6{#C#CEL$)M$8$8$E$EEM}*k9999|)[8888))%000{e++++,0LLLJJ1$JJ)"&--*;*;*;*C*CTJJJJK	K	K KrY   c                    t          j        ddd| d          }t           j                            |d          dz  }t	          |          }|j        | k    sJ | t          j        k    rd	nd
}t          |||           d S )Nr   rJ   r   r   )r   r2   r   r   r"   r   gư>gHz>)rtol)	r%   rM   r   normr   r2   r,   r-   r   )r2   r6   scipy_normsnormsr  s        rB   test_csr_row_normsr!    s     		#r%u2FFFA)...++q0K!E;%BJ&&44DDE;T222222rY   )Fr'   numpyr,   scipy.sparsesparser%   scipyr   numpy.testingr   r   numpy.randomr   sklearn.datasetsr   sklearn.utils.sparsefuncsr   r	   r
   r   r   r   r   r   r   sklearn.utils.sparsefuncs_fastr   r   r   r   sklearn.utils._testingr   rC   markparametrizer-   r.   r*   r+   rX   r[   rQ   r   ry   r|   r   r   rM   hstackrN   r   r   r   r   r   r   r   r   r   r   minmaxnanminnanmaxr   r   r
  r  r  r!   rY   rB   <module>r4     sR	                    G G G G G G G G $ $ $ $ $ $ 0 0 0 0 0 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
            3 2 2 2 2 2F F FD 2:rz":;;-r}/MNN% % ON <;%$F F FD 
))YYY	)))YYY!7C
))YYY	,,,!=yyyI
))YYY	)))YYY!7>^a01^a01OO	
 Va[1a&1a&26262BRVQKP		Arv				(# #J	
 YY			"__ooo.BHYYY	
+ < -r}/MNN2:rz":;;A$ A$ <; ON= @A$H 
))YYY	)))YYY!7!Q@
))YYY	)))YYY			!BQFK
))YYY	)))YYY!7>^a01^a01#J	
 Arvq!$q!RVRVRVQ&GHAq"&!Q'Aq"&!Q'Arvrvrvq1
 #J	
 YY			"YY			999iii8BHaV	
% 6 -r}/MNN2:rz":;;A$ A$ <; ON7 :A$HN: N: N:b -r}/MNN5 5 ON58  BIaCAFFFBIb!SQGGG	

 BIaCAFFFBI!BM'"''bf"E"E"EFFBIb!SrBBB   		
 &I I' &I(' ' '&	< 	< 	< !Q((-r}/MNN,8 ,8 ON )(,8^
 
 
<( ( ( / / /@/ / /@-( -( -(`-+ -+ -+` 2:rz":;;..2="-*HII4"&")RY!EF  4-88< < 98	  JI /. <;<<% % %)W )W )WX, , ,DK K K4 2:rz":;;
3 
3 <;
3 
3 
3rY   