a
    hC	                     @   sr   d dl Z d dlmZ d dlZd dlmZ d dlmZmZ d dl	m
Z
 dd Zejdg d	d
d Zdd ZdS )    N)chain)config_context)gen_even_slicesget_chunk_n_rows)assert_array_equalc                     s6   t d tt fddtddD  } t |  d S )N
   c                    s   g | ]} | qS  r   ).0sliceZ
some_ranger   ]/var/www/html/assistant/venv/lib/python3.9/site-packages/sklearn/utils/tests/test_chunking.py
<listcomp>       z(test_gen_even_slices.<locals>.<listcomp>   )rangelistr   r   r   )Zjoined_ranger   r   r   test_gen_even_slices   s     r   )	row_bytes
max_n_rowsworking_memoryexpected))   N   r   )r   NgG?  )r   Nr     )r   Nr   r   )r   N   i   )r      r   r   )i   Nr   r   c              	   C   s   t  * t dt t| ||d}W d    n1 s80    Y  ||ksNJ t|t|u sbJ t|dp t  ( t dt t| |d}W d    n1 s0    Y  ||ksJ t|t|u sJ W d    n1 s0    Y  d S )Nerrorr   r   r   r   r   r   )warningscatch_warningssimplefilterUserWarningr   typer   )r   r   r   r   actualr   r   r   test_get_chunk_n_rows   s    
$
*r'   c               	   C   s   d} d}d}d}d}t jt|d t| ||d}W d   n1 sF0    Y  ||ks\J t|t|u spJ t|dj t jt|d t| |d}W d   n1 s0    Y  ||ksJ t|t|u sJ W d   n1 s0    Y  dS )	z<Check that warning is raised when working_memory is too low.i  Nr   zICould not adhere to working_memory config. Currently 1MiB, 2MiB required.)matchr   r   r    )pytestZwarnsr$   r   r%   r   )r   r   r   r   Zwarn_msgr&   r   r   r   test_get_chunk_n_rows_warns1   s&    $*r*   )r!   	itertoolsr   r)   Zsklearnr   Zsklearn.utils._chunkingr   r   Zsklearn.utils._testingr   r   markZparametrizer'   r*   r   r   r   r   <module>   s   
