U
    `»{j C  ã                   @   sT  d dl Z d dlZd dlZd dlZd dlm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mZ ejdd„ ƒZejdd	„ ƒZejd
d„ ƒZG dd„ dƒZG dd„ dƒZdd„ Zdd„ Zej ddddgdd fd ddgddfd ddgddfd ddddgddfddddgddfg ddfddd d ddgdd fddd d ddgddfddd d ddgddfddd d ddgddfdd d dddgd dfdd d dddgddfg¡dd„ ƒZej d	ddejejgdejdejgddejgejdd d ejdgejd d dddgg¡ej dejd dg¡dd„ ƒƒZdd „ Zd!d"„ Z d#d$„ Z!ej dejdg¡d%d&„ ƒZ"d'd(„ Z#dS ))é    N)ÚIntIndex)Úisna)Ú
Int64Index)ÚSparseArrayÚSparseDtypec                   C   s&   t  t jt jdddt jddt jdg
¡S )z<Fixture returning numpy array with valid and missing entriesé   é   é   é   é   é   )ÚnpÚarrayÚnan© r   r   úd/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/arrays/sparse/test_array.pyÚarr_data   s    r   c                 C   s   t | ƒS )z-Fixture returning SparseArray from 'arr_data'©r   )r   r   r   r   Úarr   s    r   c                   C   s    t ddddddddddg
dd�S )	zEFixture returning SparseArray with integer entries and 'fill_value=0'r   r   r   r	   r
   r   r   ©Ú
fill_valuer   r   r   r   r   Úzarr   s    r   c                
   @   sZ  e Zd Zej dddejg¡dd„ ƒZdd„ Z	ej dd	d
dge 
d	d
g¡dg¡dd„ ƒZdd„ Zdd„ Zej ddddddgddfg ddfdgddfddejdgdefg¡dd„ ƒZej dejejejejejgd	ejejdejgd	ejdddgg¡ej dddg¡dd„ ƒƒZej dd d!g¡d"d#„ ƒZd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ ZdS ).ÚTestSparseArrayr   r   Nc                 C   sf   t t dddddg¡dd�}|jd|d�}t|ƒr:|jj}t t |ddddg¡dd�}t ||¡ d S )Nr   r   r	   g       @r   )	r   r   r   Úshiftr   ÚdtypeZna_valueÚtmÚassert_sp_array_equal)Úselfr   ÚsparseÚresÚexpr   r   r   Útest_shift_fill_value&   s    z%TestSparseArray.test_shift_fill_valuec                 C   sÂ   t dtjdgtjd�}d|_|jdks*t‚t dddgdtjd�}d|_|jdksTt‚d|_|jdksht‚tj|_t |j¡s€t‚t d	d
d	gd
tjd�}d	|_|js¦t‚tj|_t |j¡s¾t‚d S )Nç      ð?g       @r   r   r   r   ©r   r   gÍÌÌÌÌÌ@TF)r   r   r   r   ÚAssertionErrorÚint64ÚisnanÚbool_©r   r   r   r   r   Útest_set_fill_value0   s    
z#TestSparseArray.test_set_fill_valueÚvalr   r   r	   )r   r   r	   c              	   C   s>   t dddgdtjd�}d}tjt|d�� ||_W 5 Q R X d S )NTFr#   zfill_value must be a scalar©Úmatch)r   r   r'   ÚpytestÚraisesÚ
ValueErrorr   )r   r*   r   Úmsgr   r   r   Ú test_set_fill_invalid_non_scalarW   s    z0TestSparseArray.test_set_fill_invalid_non_scalarc                 C   s,   |  ¡ }|j|jk	st‚|j|jks(t‚d S ©N)ÚcopyZ	sp_valuesr$   Úsp_index)r   r   Zarr2r   r   r   Ú	test_copy_   s    zTestSparseArray.test_copyc                 C   s   t  | ¡ |¡ d S r2   )r   Zassert_almost_equalÚto_dense)r   r   r   r   r   r   Útest_values_asarrayd   s    z#TestSparseArray.test_values_asarrayzdata,shape,dtype)r   )r   )r   ÚAÚB)r
   c                 C   s   t ||d�}|j|kst‚d S )N©r   )r   Úshaper$   )r   Údatar;   r   Úoutr   r   r   Ú
test_shapeg   s    zTestSparseArray.test_shapeÚvalsc                 C   s.   t  |¡}t||d�}| ¡ }t ||¡ d S ©Nr   )r   r   r   r6   r   Úassert_numpy_array_equal)r   r?   r   r   r   r   r   r   Útest_dense_repru   s    

zTestSparseArray.test_dense_reprÚfixr   r   c                 C   s$   |  |¡}t |¡}t ||¡ d S r2   )Zgetfixturevaluer   Zround_trip_pickler   )r   rC   ÚrequestÚobjZ	unpickledr   r   r   Útest_pickle…   s    

zTestSparseArray.test_picklec              	   C   s`   t dddgƒ}tjdd��<}tjdtd� tjdtd� |D ]}q<t|ƒdksRt‚W 5 Q R X d S )	Nr   r   r	   T)ÚrecordÚalways)ÚactionÚcategoryr   )r   ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningÚPendingDeprecationWarningÚlenr$   )r   Zsp_arrÚwÚ_r   r   r   Útest_generator_warnings‹   s    z'TestSparseArray.test_generator_warningsc                 C   sx   t tjdgdd�}t ddg¡}| | d¡}t ddgdd�}t ||¡ t |¡}| 	| d¡}t 
|t |¡¡ d S )Nr"   r   r   TFr   )r   r   r   r   Z_wherer   r   ÚpdÚSeriesÚwhereZassert_series_equal)r   r   Úmaskr   r    Zserr   r   r   Útest_where_retain_fill_value”   s    
z,TestSparseArray.test_where_retain_fill_valuec                 C   s  t dtjtjdtjgƒ}| d¡}t dddddgdtjd�}t ||¡ t dtjtjdtjgdd�}| d¡}t dddddgdtjd�}t ||¡ t dtjdddgƒ}| d¡}t dddddgdtjd�}t ||¡ t dtjdddgdd�}| d¡}t dddddgdtjd�}t ||¡ t tjtjtjtjgƒ}| d¡}t ddddgdtjd�}t ||¡ t tjtjtjtjgdd�}| d¡}t ddddgdtjd�}t ||¡ t ddddgƒ}| d¡}t ddddgdd�}t ||¡ t ddddgƒ}|jttj	ƒk�st
‚|jdk�s t
‚| d¡}t ||¡ t ddddgdd�}|jttj	ƒk�s`t
‚|jdk�spt
‚| d¡}t ddddgdd�}t ||¡ t ddddgtjd�}|jttj	tjd�k�sÌt
‚t |j¡�sÞt
‚| d¡}t ddddgdd�}t ||¡ d S )Nr   r	   éÿÿÿÿr#   r   r   ç        )r   r   r   ÚfillnaÚfloat64r   r   r   r   r%   r$   r   r&   ©r   Úsr   r    r   r   r   Útest_fillna¢   sZ    









zTestSparseArray.test_fillnac                 C   sœ   t dtjtjdtjgƒ}| d¡}tjdddddgtjd�}t | ¡ |¡ t dtjtjdtjgdd�}| d¡}t dddddgdtjd�}t 	||¡ d S )Nr   r	   r:   r   r   r#   )
r   r   r   r[   r   r\   r   rA   r6   r   r]   r   r   r   Útest_fillna_overlapÞ   s    

z#TestSparseArray.test_fillna_overlapc                 C   sŽ   t tdƒtdƒddddddddddgƒ}tjdddgtjd�}| ¡ \}t ||¡ t ddddddddddddgƒ}| ¡ \}t ||¡ d S )	Nr   r   r   r   r	   r   é	   r:   )r   Úfloatr   r   Zint32Znonzeror   rA   )r   ÚsaÚexpectedÚresultr   r   r   Útest_nonzeroë   s    (
 
zTestSparseArray.test_nonzero)Ú__name__Ú
__module__Ú__qualname__r-   ÚmarkÚparametrizer   r   r!   r)   r   r1   r5   r7   Úobjectr>   rB   rF   rS   rX   r_   r`   rf   r   r   r   r   r   %   s@   
	'"

üþ	
ýþ
	<r   c                   @   sè   e Zd Zej dejdddddged�e	e dd	d
ddg¡ƒfejddej
ddged�e	e dd	ej
ddg¡ƒfg¡ej dddg¡dd„ ƒƒZdd„ Zdd„ Zej ddej
g¡dd„ ƒZdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&S )'ÚTestSparseArrayAnalyticszdata,expectedr   r   r	   r
   r   r:   r"   g      @g      @g      $@g      .@g      @g      (@ÚnumpyTFc              	   C   s  |r
t jndd„ }|t|ƒƒ}t ||¡ |t|t jd�ƒ}t ||¡ |t|dd�ƒ}t ||¡ |rÌd}tjt|d�� t jt|ƒt j	d� W 5 Q R X d}tjt|d�� t jt|ƒ|d	� W 5 Q R X n@d
}t
 d|› d�¡}tjt|d�� t|ƒj|d� W 5 Q R X d S )Nc                 S   s   |   ¡ S r2   )Úcumsum)r^   r   r   r   Ú<lambda>  ó    z6TestSparseArrayAnalytics.test_cumsum.<locals>.<lambda>r   r   z&the 'dtype' parameter is not supportedr+   r:   z$the 'out' parameter is not supported)r=   r   zaxis(=z) out of bounds)Úaxis)r   ro   r   r   r   r   r-   r.   r/   r%   ÚreÚescape)r   r<   rd   rn   ro   r=   r0   rr   r   r   r   Útest_cumsumø   s$    z$TestSparseArrayAnalytics.test_cumsumc                 C   s¸  t dtjdtjdgƒ}t dtjdtjdgƒ}t t|ƒ|¡ t t |¡|¡ t ddddgdd�}t dddg|jdd�}t t|ƒ|¡ t t |¡|¡ t ddddgdd�}t ddddgdd�}t t|ƒ|¡ t t |¡|¡ t dtjdtjdgƒ}t t dtjdtjdg¡ƒ}t t |¡|¡ t ddddgdd�}t t ddddg¡t d¡d�}t t |¡|¡ t ddddgdd�}t t ddddg¡t d¡d�}t t |¡|¡ d S )Nr   r   éþÿÿÿrY   r   )Úsparse_indexr   r   )r   r   r   r   r   Úabsr4   Úsin)r   r   re   r    r   r   r   Ú
test_ufunc   s*      z#TestSparseArrayAnalytics.test_ufuncc                 C   s¼   t dtjdtjdgƒ}t dtjdtjdgƒ}t t |d¡|¡ t ddddgdd�}t ddddgdd�}t t |d¡|¡ t ddddgdd�}t ddddgdd�}t t |d¡|¡ d S )Nr   r   rv   r	   rY   r   r   )r   r   r   r   r   Úadd)r   r   re   r   r   r   Útest_ufunc_args=  s    z(TestSparseArrayAnalytics.test_ufunc_argsr   rZ   c                 C   sh   t |gd ddg |d�}t |¡\}}t t |¡¡\}}t |t ||d�¡ t |t ||d�¡ d S )Né
   gš™™™™™ñ?gš™™™™™@r   )r   r   ÚmodfÚasarrayr   r   )r   r   r   Úr1Úr2Úe1Úe2r   r   r   Ú	test_modfK  s
    z"TestSparseArrayAnalytics.test_modfc                 C   s,   t dddddgdd�}|j}|dks(t‚d S )Nr   r   r   Úinteger©Úkindé   ©r   Únbytesr$   ©r   r   re   r   r   r   Útest_nbytes_integerT  s    z,TestSparseArrayAnalytics.test_nbytes_integerc                 C   s,   t dddddgdd�}|j}|dks(t‚d S )Nr   r   r   Úblockr†   rˆ   r‰   r‹   r   r   r   Útest_nbytes_blockZ  s    z*TestSparseArrayAnalytics.test_nbytes_blockc                 C   s$   t t dd d dg¡ƒ}t |¡ d S )NZ2012Z2013)r   rT   Úto_datetimer   r   )r   r^   r   r   r   Útest_asarray_datetime64a  s    z0TestSparseArrayAnalytics.test_asarray_datetime64c                 C   s   t ddgƒ}|jdkst‚d S )Nr   r   g      à?)r   Zdensityr$   r(   r   r   r   Útest_densitye  s    z%TestSparseArrayAnalytics.test_densityc                 C   s   t ddgƒ}|jdkst‚d S )Nr   r   )r   Znpointsr$   r(   r   r   r   Útest_npointsi  s    z%TestSparseArrayAnalytics.test_npointsN)rg   rh   ri   r-   rj   rk   r   r   rb   r   r   ru   rz   r|   r„   rŒ   rŽ   r�   r‘   r’   r   r   r   r   rm   ÷   s*   þþûþ
rm   c                  C   sN   t dtjdgdd�} tj| _|  ¡ }t |¡}t dddg¡}t ||¡ d S )Nr"   rZ   r   FT)	r   r   r   r   r   r   r   r   rA   ©r   re   rd   r   r   r   Ú*test_setting_fill_value_fillna_still_worksn  s    
r”   c                  C   sT   t dtjgdd�} tj| _t jt tjg¡tddgƒtttjƒd�}t	 
| |¡ d S )NrZ   r   r   r   r   )Zsparse_arrayrw   r   )r   r   r   r   Z_simple_newr   r   r   rb   r   r   )r   rd   r   r   r   Útest_setting_fill_value_updates|  s    

ýr•   zarr,fill_value,locr   r   r	   rY   r   c                 C   s    t | |d� ¡ }||kst‚d S r@   )r   Z_first_fill_value_locr$   )r   r   Úlocre   r   r   r   Útest_first_fill_value_loc‰  s    r—   r   c                 C   sF   t | |d� ¡ }t | ¡ ¡ }t|t ƒs,t‚t |¡}t 	||¡ d S r@   )
r   ÚuniquerT   rU   Ú
isinstancer$   r   r   r   rA   )r   r   ÚaÚbr   r   r   Útest_unique_na_fillŸ  s
    
rœ   c                  C   s.   t ddgƒ} |  ¡ }t dgƒ}t ||¡ d S )Nr   )r   r˜   r   r   r“   r   r   r   Útest_unique_all_sparse²  s    
r�   c                  C   sœ   t dddgƒ} t dddgdd�}|  ddddœ¡}t ||¡ |  t ddddœ¡¡}t ||¡ |  t ddddœ¡¡}t dddgdd�}t ||¡ d S )	Nr   r   r   r}   é   é   r   )r   r   r   )r   Úmapr   r   rT   rU   ©r   rd   re   r   r   r   Útest_mapº  s    r¢   c                  C   s@   t dddgƒ} t ddd gdd�}|  dddœ¡}t ||¡ d S )Nr   r   r   r}   rž   r   )r   r   )r   r    r   r   r¡   r   r   r   Útest_map_missingÌ  s    r£   c                 C   st   t tjdg| d�}t dg| d�}t | ¡ |¡ t ddg|dœ¡}tjdg|dœtdgƒd�}t 	| ¡ |¡ d S )Nr   r   r"   r   )rš   r›   )Úindex)
r   r   r   r   r   ZdropnarT   Ú	DataFramer   Zassert_equal)r   r   r    ÚdfZexpected_dfr   r   r   Útest_dropnaÔ  s    r§   c                  C   sJ   t  t d¡¡ dd„ ¡} |  ¡ }t  dd„ tdƒD ƒ¡}t ||¡ d S )N)r   r   c                 S   s   t | dd�S )Nr   r   r   )Úxr   r   r   rp   â  rq   z1test_drop_duplicates_fill_value.<locals>.<lambda>c                 S   s   i | ]}|t d gdd�“qS )rZ   r   r   r   )Ú.0Úir   r   r   Ú
<dictcomp>ä  s      z3test_drop_duplicates_fill_value.<locals>.<dictcomp>r   )	rT   r¥   r   ZzerosÚapplyZdrop_duplicatesÚranger   Zassert_frame_equal)r¦   re   rd   r   r   r   Útest_drop_duplicates_fill_valueà  s    r®   )$rs   rK   rn   r   r-   Zpandas._libs.sparser   ZpandasrT   r   Zpandas._testingZ_testingr   Zpandas.core.apir   Zpandas.core.arrays.sparser   r   Zfixturer   r   r   r   rm   r”   r•   rj   rk   r—   r   rœ   r�   r¢   r£   r§   r®   r   r   r   r   Ú<module>   sl   


 Swôþ

ûþ

