U
    3d/                     @   sd  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eZejejejdZejejZejejZeeZ ejejejdZ!dd Z"d	d
 Z#dd Z$dd Z%dd Z&ej'(de#e$e%e&gdd Z)ej'(de#e%fe$e&fgdd Z*ej'(de#e$fe%e&fgdd Z+dd Z,dS )    N)assert_array_equal)ArrayDataset32ArrayDataset64CSRDataset32CSRDataset64)	load_iris)assert_allclose)dtypec                 C   sz   |    |   || j}| jd |jd ks4t| jd |jd ksLtt| j|j t| j|j t| j|j d S )Nr      )	Zeliminate_zerosastyper	   shapeAssertionErrorr   dataindicesindptr)currentexpected r   H/tmp/pip-unpacked-wheel-zrfo1fqw/sklearn/utils/tests/test_seq_dataset.pyassert_csr_equal_values    s    r   c                   C   s   t tttddS N*   seed)r   X32y32sample_weight32r   r   r   r   make_dense_dataset_32+   s    r   c                   C   s   t tttddS r   )r   X64y64sample_weight64r   r   r   r   make_dense_dataset_64/   s    r!   c                   C   s   t tjtjtjttddS r   )r   X_csr32r   r   r   r   r   r   r   r   r   make_sparse_dataset_323   s         r#   c                   C   s   t tjtjtjttddS r   )r   X_csr64r   r   r   r   r    r   r   r   r   make_sparse_dataset_649   s         r%   dataset_constructorc           	      C   s   d}|  }t |D ]}| \}}}}tj|dtjd fd}t|t|  |t| ks\t	|t
| kslt	| \}}}}tj|dtjd fd}t|t|  |t| kst	|t
| kst	qd S )N   r
   )r   )range_next_pysp
csr_matrixr   r   r   r$   r   r   r    
_random_py)	r&   NUMBER_OF_RUNSZdataset_Zxi_yiZswiidxxir   r   r    test_seq_dataset_basic_iteration?   s    
r2   z&make_dense_dataset,make_sparse_datasetc                 C   sX  |  |  }}t dD ]<}| \}}}}| \}}}}||ksFt||kstqdD ]<}| \}}}}| \}}}}||kst||ksXtqXd}|| || dddddg}	d	d
dddg}
t|	|
D ]~\}}| \}}}}| \}}}}||ks
t||kst| \}}}}| \}}}}||ksFt||kstqd S )Nr'   )   2   	      :   M   ?   [      W         }   8   y      )r(   r)   r   r,   Z_shuffle_pyzip)Zmake_dense_datasetZmake_sparse_datasetZdense_datasetZsparse_datasetir.   Zidx1Zidx2r   Zidx_nextZidx_shufflejr   r   r   test_seq_dataset_shuffle]   s2    

rF   zmake_dataset_32,make_dataset_64c           
      C   s   |  |  }}d}t |D ]l}| \\}}}}}}| \\}}}}	}}|jtjksZt|jtjksjtt||dd t|	|dd qd S )Nr'   gh㈵>)Zrtol)r(   r)   r	   npfloat32r   float64r   )
Zmake_dataset_32Zmake_dataset_64Z
dataset_32Z
dataset_64r-   r.   Z	xi_data32Zyi32Z	xi_data64Zyi64r   r   r   test_fused_types_consistency   s    rJ   c                	   C   s   t jtdd ttttddf W 5 Q R X t jtdd ttt	t
ddf W 5 Q R X t jtdd" ttjtjtjttddf W 5 Q R X t jtdd" ttjtjtjt	t
ddf W 5 Q R X d S )NzBuffer dtype mismatch)matchr   r   )pytestZraises
ValueErrorr   r   r   r   r   r   r   r    r   r"   r   r   r   r   r$   r   r   r   r    test_buffer_dtype_mismatch_error   s,              rN   )-ZnumpyrG   rL   Zscipy.sparsesparser*   Znumpy.testingr   Zsklearn.utils._seq_datasetr   r   r   r   Zsklearn.datasetsr   Zsklearn.utils._testingr   Zirisr   r   rI   r   targetr   r+   r$   Zarangesizer    rH   r   r   r"   r   r   r   r!   r#   r%   markZparametrizer2   rF   rJ   rN   r   r   r   r   <module>   sX   

	

!
