o
    i                     @   s   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d Zdd	 Zd
d Zdd Zdd ZdddZdd Zdd ZdS )    N)assert_array_almost_equal)comb_our_rand_r_py)_random_choice_cscsample_without_replacementc                   C   s<   t t tddd W d    d S 1 sw   Y  d S )N      unknown)pytestraises
ValueErrorr    r   r   n/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/sklearn/utils/tests/test_random.py1test_invalid_sample_without_replacement_algorithm   s   "r   c                     s:   d} | D ] 	 d fdd	}t | t| t| qd S )N)autoZtracking_selectionZreservoir_samplingpoolc                    s   t | | |dS )N)methodrandom_stater   )n_population	n_samplesr   mr   r   !sample_without_replacement_method   s   zUtest_sample_without_replacement_algorithms.<locals>.sample_without_replacement_method)N)check_edge_case_of_sample_intcheck_sample_intcheck_sample_int_distribution)methodsr   r   r   r   *test_sample_without_replacement_algorithms   s   
r   c                 C   s&  t t | dd W d    n1 sw   Y  t t | dd W d    n1 s/w   Y  | ddjdks>J | ddjdksHJ | ddjdksRJ | ddjdks\J t t | dd W d    n1 sqw   Y  t t | dd W d    d S 1 sw   Y  d S )Nr         )r   )r    r   )r   r   r   shaper   r   r   r   r   $   s    "r   c                 C   sz   d}t |d D ]&}| ||}t||ksJ t|}t||ks%J t||k s.J qt| dddks;J d S )Nd   r    r   )rangelennpuniquesizeall)r   r   r   sr(   r   r   r   r   ;   s   

r   c                 C   sp   d}d}t |D ]-}t||dd}i }t |D ]}d |t| ||< t||kr* nqtdt||f qd S )N
   '  T)exactz7number of combinations != number of expected (%s != %s))r%   r   	frozensetr&   AssertionError)r   r   Zn_trialsr   Z
n_expectedoutputir   r   r   r   M   s$   
r   r-      c                 C   sn  t ddgt g dg}t ddgt g dg}t| |||}t|s*J tt|D ]}t |d d |gf  	 t
|  }t|| |dd q0ddgddgg}t ddgt g dg}t| ||d	}t|stJ tt|D ]}t |d d |gf  	 t
|  }t|| |dd qzt ddgt g dg}t d
dgt g dg}t| |||}t|sJ tt|D ]#}t j|d d |gf  	 t|| d|  }t|| |dd qdgdgg}t d
dgt dgg}t| ||d	}t|sJ tt|D ]}t |d d |gf  	 |  }t|| |dd qd S )Nr   r    r   r    r!         ?333333?皙?g333333?)decimalr!   )r   r5   r5   )r   classesr                 ?)r;   r<   r;   )Z	minlength)r'   arrayr   spissparser%   r&   ZbincountZtoarrayZravelfloatr   )r   r   r:   class_probabilitiesgotkpr   r   r   test_random_choice_cscm   sL   (("$rE   c                  C   s  t ddgt g dg} t ddgt g dg}tt td| |d W d    n1 s3w   Y  t ddgt g d	g} t ddgt g dg}tt td| |d W d    n1 skw   Y  t d
dgt g dg} t ddgt g dg}tt td| |d W d    n1 sw   Y  t ddgt g dg} t ddgt g dg}tt td| |d W d    d S 1 sw   Y  d S )Nr   r    )r   r    r!      r5   r6   r	   a1)zrH   2g@r8   )r8   g?g"@r4   r7   )r'   r=   r   r   r   r   )r:   rA   r   r   r   test_random_choice_csc_errors   s(   "rK   c                   C   s$   dt dksJ dt dksJ d S )Ni=(i=Ki!  r   r   r   r   r   r   test_our_rand_r   s   rL   )r-   r3   )numpyr'   r   Zscipy.sparsesparser>   Znumpy.testingr   Zscipy.specialr   Zsklearn.utils._randomr   Zsklearn.utils.randomr   r   r   r   r   r   r   rE   rK   rL   r   r   r   r   <module>   s    
 7