
    -i                         S SK rS SK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  S rS rS rS	 rS
 rSS jrS rS rg)    N)assert_array_almost_equal)comb_our_rand_r_py)_random_choice_cscsample_without_replacementc                      [         R                  " [        5         [        SSS5        S S S 5        g ! , (       d  f       g = f)N      unknown)pytestraises
ValueErrorr        R/var/www/html/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_random.py1test_invalid_sample_without_replacement_algorithmr      s&    	z	""1a3 
#	"	"s	   2
A c                  p   ^ Sn U  H-  m SU4S jjn[        U5        [        U5        [        U5        M/     g )N)autotracking_selectionreservoir_samplingpoolc                    > [        XTUS9$ )N)methodrandom_stater   )n_population	n_samplesr   ms      r   !sample_without_replacement_methodUtest_sample_without_replacement_algorithms.<locals>.sample_without_replacement_method   s     . r   )N)check_edge_case_of_sample_intcheck_sample_intcheck_sample_int_distribution)methodsr    r   s     @r   *test_sample_without_replacement_algorithmsr&      s9    JG 37	 	&&GH:;%&GH r   c                    [         R                  " [        5         U " SS5        S S S 5        [         R                  " [        5         U " SS5        S S S 5        U " SS5      R                  S:X  d   eU " SS5      R                  S:X  d   eU " SS5      R                  S:X  d   eU " SS5      R                  S:X  d   e[         R                  " [        5         U " SS5        S S S 5        [         R                  " [        5         U " SS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N]= f! , (       d  f       g = f)Nr         )r   )r(   r
   )r   r   r   shaper   s    r   r"   r"   $   s   	z	""1a( 
#	z	""1a( 
# &a+11T999%a+11T999 &a+11T999%a+11T999 
z	""2q) 
#	z	""1b) 
#	"# 
#	"	"	" 
#	"	"	"s/   
D
D'
D8
E	
D$'
D58
E	
Ec                 L   Sn[        US-   5       Hm  nU " X5      n[        U5      U:X  d   e[        R                  " U5      n[        R                  " U5      U:X  d   e[        R
                  " XA:  5      (       a  Mm   e   [        R                  " U " SS5      5      S:X  d   eg )Nd   r(   r   )rangelennpuniquesizeall)r   r   r   sr1   s        r   r#   r#   ;   s    
 L<!+,	&|?1v"""1wwv)+++vvf+,,,, - 77-a34999r   c           
          SnSn[        U5       Hb  n[        XSS9n0 n[        U5       H)  nS U[        U " X5      5      '   [        U5      U:X  d  M(    ME     [	        S[        U5      < SU< S35      e   g )N
   '  T)exactz.number of combinations != number of expected (z != ))r.   r   	frozensetr/   AssertionError)r   r   n_trialsr   
n_expectedoutputis          r   r$   r$   M   s    
 L H<(	 ,>
xA 97PQR 6{j( ! !v;
,  )r   c                    [         R                  " SS/5      [         R                  " / SQ5      /n[         R                  " SS/5      [         R                  " / SQ5      /n[        XX15      n[        R                  " U5      (       d   e[        [        U5      5       HV  n[         R                  " US S 2U/4   R                  5       R                  5       5      [        U 5      -  n[        X5   USS9  MX     SS/SS//n[         R                  " SS/5      [         R                  " / SQ5      /n[        XUS	9n[        R                  " U5      (       d   e[        [        U5      5       HV  n[         R                  " US S 2U/4   R                  5       R                  5       5      [        U 5      -  n[        X5   USS9  MX     [         R                  " SS/5      [         R                  " / SQ5      /n[         R                  " S
S/5      [         R                  " / SQ5      /n[        XX15      n[        R                  " U5      (       d   e[        [        U5      5       HW  n[         R                  " US S 2U/4   R                  5       R                  5       [        X5   5      S9U -  n[        X5   USS9  MY     S/S//n[         R                  " S
S/5      [         R                  " S/5      /n[        XUS	9n[        R                  " U5      (       d   e[        [        U5      5       HM  n[         R                  " US S 2U/4   R                  5       R                  5       5      U -  n[        X5   USS9  MO     g )Nr   r(   r   r(   r)         ?333333?皙?g333333?)decimalr)   )r   rB   rB   )r   classesr                 ?)rH   rI   rH   )	minlength)r0   arrayr   spissparser.   r/   bincounttoarrayravelfloatr   )r   r   rG   class_probabilitiesgotkps          r   test_random_choice_cscrV   m   s   xxA)!45G88S#J//1JK
Y1D
SC;;s3w< KKAsF++-3356y9II!"5"8!QG !
 1v1vG88S#J/:K1LM
<C ;;s3w< KKAsF++-3356y9II!"5"8!QG !
 xxA)!45G88S#J//1JK
Y1D
SC;;s3w< KKAsF##%++-=P=S9T  	
 	""5"8!QG ! sQCjG88S#J/3%A
<C ;;s3w< KKAsF++-3356B!"5"8!QG !r   c                     [         R                  " SS/5      [         R                  " / SQ5      /n [         R                  " SS/5      [         R                  " / SQ5      /n[        R                  " [        5         [        SXS5        S S S 5        [         R                  " SS/5      [         R                  " / S	Q5      /n [         R                  " SS/5      [         R                  " / SQ5      /n[        R                  " [        5         [        SXS5        S S S 5        [         R                  " S
S/5      [         R                  " / SQ5      /n [         R                  " SS/5      [         R                  " / SQ5      /n[        R                  " [        5         [        SXS5        S S S 5        [         R                  " SS/5      [         R                  " / SQ5      /n [         R                  " SS/5      [         R                  " / SQ5      /n[        R                  " [        5         [        SXS5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNB= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r(   )r   r(   r)      rB   rC   r   a1)zrZ   2g@rE   )rE   g?g"@rA   rD   )r0   rK   r   r   r   r   )rG   rR   s     r   test_random_choice_csc_errorsr]      s   xxA,!78G88S#J//1JK	z	"1gA> 
# xxc
#RXXo%>?G88S#J//1JK	z	"1gA> 
# xxc
#RXXo%>?G88S#J//1JK	z	"1gA> 
# xxA)!45G88S#J//1JK	z	"1gA> 
#	"% 
#	" 
#	" 
#	" 
#	"s0   ;III&+I7
I
I#&
I47
Jc                  H    S[        S5      :X  d   eS[        S5      :X  d   eg )Ni=(i=Ki!  r   r   r   r   r   test_our_rand_rr_      s(    z2222^A&&&&r   )r7      )numpyr0   r   scipy.sparsesparserL   numpy.testingr   scipy.specialr   sklearn.utils._randomr   sklearn.utils.randomr   r   r   r&   r"   r#   r$   rV   r]   r_   r   r   r   <module>rh      sF       3  0 O4
I"*.:$@4Hn?4'r   