3
Ud                 @   sf   d dl Z d dlZd dlZd dljjZd dlZ	d dl
jZd dlmZmZ G dd dZG dd dZdS )    N)SparseArraySparseDtypec               @   s   e Zd Zdd ZdS )TestSeriesAccessorc             C   sB   t jddddgdd}|jj }t jddddg}tj|| d S )Nr      
   zSparse[int64])dtype)pdSeriessparseto_densetmassert_series_equal)selfsresultexpected r   \/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/arrays/sparse/test_accessor.pytest_to_dense   s    
z TestSeriesAccessor.test_to_denseN)__name__
__module____qualname__r   r   r   r   r   r      s   r   c               @   s,  e Zd Zdd Zejjddddgejjddeej	dd	 gejjd
ddge
jdd Zejjddddge
jdd Zejjdddgejjdgddggddgge
jdd Ze
jdd Zdd Zdd Zejjd
ddgejjdddge
jd d! Ze
jd"d# Zd$d% ZdS )&TestFrameAccessorc          	   C   s6   t jdddgi}tjtdd |j W d Q R X d S )NAr   r   r
   )match)r   	DataFramepytestraisesAttributeErrorr
   )r   dfr   r   r   test_accessor_raises   s    z&TestFrameAccessor.test_accessor_raisesformatZcscZcsrcoolabelsNr   r   float64int64c       	      C   sv   dd l }t|tjd|dj }|jjd||d}tjjj	|||d}tjtjd|d||dj
|}tj|| d S )Nr   )r   r   )r!   r   )indexcolumns)scipy.sparser   nparrayitemr
   eyer   r   from_spmatrixastyper   assert_frame_equal)	r   r!   r#   r   scipyZsp_dtypematr   r   r   r   r   test_from_spmatrix   s    z$TestFrameAccessor.test_from_spmatrixc             C   sb   dd l }|jjddd|d}d|jd< tjjj|}tdd}tj|j j	|}t
j|| d S )Nr   r      g      ?)densityr!   r$   g        )r(   r
   randomdatar   r   r-   r   Ztodenser.   r   r/   )r   r!   r0   r1   r   r   r   r   r   r   *test_from_spmatrix_including_explicit_zero,   s    

z<TestFrameAccessor.test_from_spmatrix_including_explicit_zeror'   abr   c             C   s^   dd l }tdd}|jjdddd}tjjj||d}tj|j |dj|}t	j
|| d S )	Nr   r$   g        r   r3   g      ?)r4   )r'   )r(   r   r
   r5   r   r   r-   Ztoarrayr.   r   r/   )r   r'   r0   r   r1   r   r   r   r   r   test_from_spmatrix_columns8   s    
z,TestFrameAccessor.test_from_spmatrix_columnsc             C   sZ   dd l }tjdddgdddgddd}|jj }|jjtj|}||kjdksVt	d S )Nr   r   )r   BzSparse[int64, 0])r   )
r(   r   r   r
   Zto_cooZ
coo_matrixr)   ZasarrayZnnzAssertionError)r   r0   r   r   r   r   r   r   test_to_cooG   s
     
zTestFrameAccessor.test_to_cooc             C   s   t jtddgtdddtddgtdddtddgtddddd	d
gd}|jj }t jddgddgddgdd	d
gd}tj|| d S )Nr   r   r%   )r   g      ?g        r$   )r   r;   Cr9   r8   )r&   )r   r   r   r   r
   r   r   r/   )r   r   r   r   r   r   r   r   P   s    
"zTestFrameAccessor.test_to_densec             C   sL   t jtddddgddtddddgddd}|jj}d}||ksHtd S )Nr   r   r3   )Z
fill_value)r   r;   g      ?)r   r   r   r
   r4   r<   )r   r   resr   r   r   r   test_density_   s    zTestFrameAccessor.test_densitydense_indexTFc             C   s   dd l }|jjdd|d}tjjj||d}tjjd
ddg}tjtt	j
dddg|d|d	}|rx|jtjj|j}tj|| d S )Nr      r"   )r!   r   )rA   r   r3   )r   )r&   )r   r   )r   r   )r3   r3   )r(   r
   r,   r   r	   from_coo
MultiIndexfrom_tuplesr   r)   r*   Zreindexfrom_productZlevelsr   r   )r   r   rA   r0   r   r   r&   r   r   r   r   test_series_from_cooj   s    "z&TestFrameAccessor.test_series_from_cooc          	   C   sR   dd l }|jjtjddgddgg}tjtdd tj	jj
| W d Q R X d S )Nr   r   z,Expected coo_matrix. Got csr_matrix instead.)r   )r(   r
   Z
csr_matrixr)   r*   r   r   	TypeErrorr   r	   rC   )r   r0   mr   r   r   ,test_series_from_coo_incorrect_format_raisesy   s
    z>TestFrameAccessor.test_series_from_coo_incorrect_format_raisesc             C   s8   t jdt jjddgi}t|jt jjjjjs4t	d S )Nr
   r   r3   )
r   r   Zarraysr   
isinstancer
   coreaccessorZSparseFrameAccessorr<   )r   r   r   r   r   test_with_column_named_sparse   s    z/TestFrameAccessor.test_with_column_named_sparse)r   r   r   r    r   markZparametrizeliststringascii_letterstdZskip_if_no_scipyr2   r7   r   rD   rF   r:   r=   r   r@   rG   rJ   rN   r   r   r   r   r      s&   $	r   )rQ   Znumpyr)   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsrS   Zpandasr   Zpandas._testingZ_testingr   Zpandas.core.arrays.sparser   r   r   r   r   r   r   r   <module>   s   
	