
    0Ph                         d dl Zd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZ d Zd Zd Zd	 Zd
 ZddZd Zd ZdS )    N)assert_array_almost_equal)comb_our_rand_r_py)_random_choice_cscsample_without_replacementc                      t          j        t                    5  t          ddd           d d d            d S # 1 swxY w Y   d S )N      unknown)pytestraises
ValueErrorr        _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_random.py1test_invalid_sample_without_replacement_algorithmr      s    	z	"	" 4 4"1a3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   9= =c                  ~    d} | D ]6	 dfd	}t          |           t          |           t          |           7d S )N)autotracking_selectionreservoir_samplingpoolc                 *    t          | ||          S )N)methodrandom_stater   )n_population	n_samplesr   ms      r   !sample_without_replacement_methodzUtest_sample_without_replacement_algorithms.<locals>.sample_without_replacement_method   s%     .i   r   )N)check_edge_case_of_sample_intcheck_sample_intcheck_sample_int_distribution)methodsr    r   s     @r   *test_sample_without_replacement_algorithmsr%      sz    JG I I 37	 	 	 	 	 	 	&&GHHH:;;;%&GHHHHI Ir   c                    t          j        t                    5   | dd           d d d            n# 1 swxY w Y   t          j        t                    5   | dd           d d d            n# 1 swxY w Y    | dd          j        dk    sJ  | dd          j        dk    sJ  | dd          j        dk    sJ  | dd          j        dk    sJ t          j        t                    5   | dd           d d d            n# 1 swxY w Y   t          j        t                    5   | dd           d d d            d S # 1 swxY w Y   d S )Nr         )r   )r'   r
   )r   r   r   shaper   s    r   r!   r!   $   s{   	z	"	" ) )""1a((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	z	"	" ) )""1a((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) &%a++1T9999%%a++1T9999 &%a++1T9999%%a++1T9999 
z	"	" * *""2q)))* * * * * * * * * * * * * * *	z	"	" * *""1b)))* * * * * * * * * * * * * * * * * *sB   377A00A47A40D		DD-EEEc                 N   d}t          |dz             D ]k} | ||          }t          |          |k    sJ t          j        |          }t          j        |          |k    sJ t          j        ||k               sJ lt          j         | dd                    dk    sJ d S )Nd   r'   r   )rangelennpuniquesizeall)r   r   r   sr0   s        r   r"   r"   ;   s    
 L<!+,, - -	&&|Y??1vv""""1wv)++++vf|+,,,,,, 7--a3344999999r   c           
      &   d}d}t          |          D ]|}t          ||d          }i }t          |          D ]3}d |t           | ||                    <   t          |          |k    r n$4t	          dt          |          d|d          }d S )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7iPPQQR 6{{j(( ) !.v;;;;


,    r   r6      c                    t          j        ddg          t          j        g d          g}t          j        ddg          t          j        g d          g}t          | |||          }t          j        |          sJ t          t          |                    D ]u}t          j        |                    |          	                                
                                          t          |           z  }t          ||         |d           vddgddgg}t          j        ddg          t          j        g d          g}t          | ||	          }t          j        |          sJ t          t          |                    D ]u}t          j        |                    |          	                                
                                          t          |           z  }t          ||         |d           vt          j        ddg          t          j        g d          g}t          j        d
dg          t          j        g d          g}t          | |||          }t          j        |          sJ t          t          |                    D ]}}t          j        |                    |          	                                
                                t          ||                             | z  }t          ||         |d           ~dgdgg}t          j        d
dg          t          j        dg          g}t          | ||	          }t          j        |          sJ t          t          |                    D ]h}t          j        |                    |          	                                
                                          | z  }t          ||         |d           id S )Nr   r'   r   r'   r(         ?333333?皙?g333333?)decimalr(   )r   rB   rB   )r   classesr                 ?)rH   rI   rH   )	minlength)r/   arrayr   spissparser-   r.   bincountgetcoltoarrayravelfloatr   )r   r   rG   class_probabilitiesgotkps          r   test_random_choice_cscrW   m   s   xA)))!4!45G8S#J/////1J1JK
Y1Dl
S
SC;s3w<<   H HK

1--//5577885;K;KK!"5a"8!QGGGGG 1v1vG8S#J//:K:K:K1L1LM
W<  C ;s3w<<   H HK

1--//5577885;K;KK!"5a"8!QGGGGG xA)))!4!45G8S#J/////1J1JK
Y1Dl
S
SC;s3w<<   H HK

1%%''--//3?RST?U;V;V    	
 	""5a"8!QGGGGG sQCjG8S#J//3%A
W<  C ;s3w<<   H HK

1--//5577889D!"5a"8!QGGGGGH Hr   c                     t          j        ddg          t          j        g d          g} t          j        ddg          t          j        g d          g}t          j        t                    5  t          d| |d           d d d            n# 1 swxY w Y   t          j        ddg          t          j        g d	          g} t          j        ddg          t          j        g d          g}t          j        t                    5  t          d| |d           d d d            n# 1 swxY w Y   t          j        d
dg          t          j        g d          g} t          j        ddg          t          j        g d          g}t          j        t                    5  t          d| |d           d d d            n# 1 swxY w Y   t          j        ddg          t          j        g d          g} t          j        ddg          t          j        g d          g}t          j        t                    5  t          d| |d           d d d            d S # 1 swxY w Y   d S )Nr   r'   )r   r'   r(      rB   rC   r   a1)zr[   2g@rE   )rE   g?g"@rA   rD   )r/   rK   r   r   r   r   )rG   rS   s     r   test_random_choice_csc_errorsr^      s3   xA,,,!7!78G8S#J/////1J1JK	z	"	" ? ?1g':A>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? xc
##RXooo%>%>?G8S#J/////1J1JK	z	"	" ? ?1g':A>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? xc
##RXooo%>%>?G8S#J/////1J1JK	z	"	" ? ?1g':A>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? xA)))!4!45G8S#J/////1J1JK	z	"	" ? ?1g':A>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sH   2BBBD,,D03D0(GGGI##I'*I'c                  Z    dt          d          k    sJ dt          d          k    sJ d S )Ni=(i=Ki!  r   r   r   r   r   test_our_rand_rr`      s:    z222222^A&&&&&&&&r   )r6   r?   )numpyr/   r   scipy.sparsesparserL   numpy.testingr   scipy.specialr   sklearn.utils._randomr   sklearn.utils.randomr   r   r   r%   r!   r"   r#   rW   r^   r`   r   r   r   <module>rh      s
              3 3 3 3 3 3       0 0 0 0 0 0 O O O O O O O O4 4 4
I I I"* * *.: : :$  @4H 4H 4H 4Hn? ? ?4' ' ' ' 'r   