a
    h                     @   sx  d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZ d dlmZ e ZejejZejejZejejejdZejejZejejZejejejdZejejgZ d	d
 Z!dd Z"dd Z#dd Z$dd Z%dd Z&ej'(deej'(de$ e%  dd Z)ej'(ddd ee eD dd Z*ej'(de& dd  Z+d!d" Z,dS )#    )productN)assert_array_equal)	load_iris)ArrayDataset32ArrayDataset64CSRDataset32CSRDataset64)assert_allclose)CSR_CONTAINERS)dtypec                 C   sz   |    |   || j}| jd |jd ks4J | jd |jd ksLJ t| j|j t| j|j t| j|j d S )Nr      )Zeliminate_zerosastyper   shaper   dataindicesindptr)currentexpected r   `/var/www/html/assistant/venv/lib/python3.9/site-packages/sklearn/utils/tests/test_seq_dataset.pyassert_csr_equal_values    s    r   c                 C   s*   | t jkrttttddS tttt	ddS N*   seed)
npfloat32r   X32y32sample_weight32r   X64y64sample_weight64)float_dtyper   r   r   _make_dense_dataset+   s    
r$   c                 C   sV   |t jkr ttttf\}}}}ntttt	f\}}}}| |}||j
|j|j||ddS r   )r   r   r   r   r   r   r    r!   r"   r   r   r   r   )csr_containerr#   XyZsample_weightZcsr_datasetr   r   r   _make_sparse_dataset1   s
    
r(   c                   C   s   dd t D S )Nc                 S   s   g | ]}t |qS r   )r$   ).0r#   r   r   r   
<listcomp>;       z(_make_dense_datasets.<locals>.<listcomp>)floatingr   r   r   r   _make_dense_datasets:   s    r-   c                   C   s   dd t ttD S )Nc                 S   s   g | ]\}}t ||qS r   )r(   )r)   r%   r#   r   r   r   r*   ?   s   z)_make_sparse_datasets.<locals>.<listcomp>)r   r
   r,   r   r   r   r   _make_sparse_datasets>   s    r.   c                      s*   t  t    fddtdt dD S )Nc                 3   s   | ]} ||d   V  qdS )   Nr   )r)   idxZall_datasetsr   r   	<genexpr>H   r+   z-_make_fused_types_datasets.<locals>.<genexpr>r   r/   )r-   r.   rangelenr   r   r1   r   _make_fused_types_datasetsE   s    r5   r%   datasetc           
      C   s   d}|t }t|D ]}|  \}}}}||dt jd fd}	t|	||g  |t| ks^J |t| ksnJ |  \}}}}||dt jd fd}	t|	||g  |t| ksJ |t| ksJ qd S )N   r   )r   )r    r3   _next_pyr   r   r!   r"   
_random_py)
r6   r%   NUMBER_OF_RUNSX_csr64_Zxi_yiZswir0   xir   r   r    test_seq_dataset_basic_iterationK   s    r?   zdense_dataset,sparse_datasetc                 C   s"   g | ]\}}t |t||fqS r   )r$   r(   )r)   r#   r%   r   r   r   r*   d   s   r*   c           
      C   s:  t dD ]<}|  \}}}}| \}}}}||ks8J ||ksJ qdD ]<}|  \}}}}| \}}}}||kszJ ||ksJJ qJd}| | || g d}g d}t||D ]z\}}	|  \}}}}| \}}}}||ksJ ||ksJ |  \}}}}| \}}}}||	ks(J ||	ksJ qd S )Nr7   )   2   	      :   M   )?   [      W      )   }   8   y      )r3   r8   r9   Z_shuffle_pyzip)
Zdense_datasetZsparse_datasetir<   Zidx1Zidx2r   Zidx_nextZidx_shufflejr   r   r   test_seq_dataset_shuffleb   s0    

rS   zdataset_32,dataset_64c                 C   s~   d}t |D ]l}|  \\}}}}}}| \\}}}}}}|jtjksLJ |jtjks\J t||dd t||dd qd S )Nr7   gh㈵>)Zrtol)r3   r8   r   r   r   float64r	   )Z
dataset_32Z
dataset_64r:   r<   Z	xi_data32Zyi32Z	xi_data64Zyi64r   r   r   test_fused_types_consistency   s    rU   c               
   C   s4  t jtdd" ttttddf W d    n1 s60    Y  t jtdd" ttt	t
ddf W d    n1 sv0    Y  tD ]} | t}| t}t jtdd, t|j|j|jttddf W d    n1 s0    Y  t jtdd, t|j|j|jt	t
ddf W d    q1 s$0    Y  qd S )NzBuffer dtype mismatch)matchr   r   )pytestZraises
ValueErrorr   r   r   r   r   r    r!   r"   r
   r   r   r   r   r   )r%   ZX_csr32r;   r   r   r    test_buffer_dtype_mismatch_error   s2    00&	rY   )-	itertoolsr   numpyr   rW   Znumpy.testingr   Zsklearn.datasetsr   Zsklearn.utils._seq_datasetr   r   r   r   Zsklearn.utils._testingr	   Zsklearn.utils.fixesr
   Zirisr   r   rT   r    targetr!   Zarangesizer"   r   r   r   r   r,   r   r$   r(   r-   r.   r5   markZparametrizer?   rS   rU   rY   r   r   r   r   <module>   sD   	

 
