a
    h                     @   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    n1 s,0    Y  d S )N      unknown)pytestraises
ValueErrorr    r   r   [/var/www/html/assistant/venv/lib/python3.9/site-packages/sklearn/utils/tests/test_random.py1test_invalid_sample_without_replacement_algorithm   s    r   c                     s8   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*0    Y  t t | dd W d    n1 s^0    Y  | ddjdks|J | ddjdksJ | ddjdksJ | ddjdksJ t t | dd W d    n1 s0    Y  t t | dd W d    n1 s0    Y  d S )Nr         )r   )r    r   )r   r   r   shaper   r   r   r   r   $   s    (((r   c                 C   sz   d}t |d D ]L}| ||}t||ks.J t|}t||ksJJ t||k sJ qt| dddksvJ 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 ]Z}t||dd}i }t |D ]&}d |t| ||< t||kr. q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   sR  t ddgt g dg}t ddgt g dg}t| |||}t|sTJ tt|D ]6}t ||	 
 t|  }t|| |dd q`ddgddgg}t ddgt g dg}t| ||d	}t|sJ tt|D ]6}t ||	 
 t|  }t|| |dd qt ddgt g dg}t d
dgt g dg}t| |||}t|szJ tt|D ]@}t j||	 
 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 ]4}t ||	 
 |  }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getcolZtoarrayZravelfloatr   )r   r   r:   class_probabilitiesgotkpr   r   r   test_random_choice_cscm   sJ      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 sf0    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 s0    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 sH0    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 s0    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