a
    é´«j	F  ã                   @   s  d dl Z d dlZd dlZd dlmZ d dlmZ d dlZ	d dlm
Z
mZ d dlmZ d dl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g d¢dd fg d¢ddfg d¢ddfg d¢ddfg d¢ddfg ddfg d¢dd fg d¢ddfg d¢ddfg d¢ddfg d ¢d dfg d ¢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"d0d1„ Z#d2d3„ Z$dS )4é    N)ÚIntIndex)Únp_version_gt2)ÚSparseDtypeÚisna©ÚSparseArrayc                   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/laksyashrimp/venv/lib/python3.9/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 g d¢dd�S )zEFixture returning SparseArray with integer entries and 'fill_value=0')
r   r   r   r	   r
   r   r   r   r   r   r   ©Ú
fill_valuer   r   r   r   r   Úzarr   s    r   c                
   @   sR  e Zd Zej dddejg¡dd„ ƒZdd„ Z	ej dg d	¢e 
d
dg¡d	g¡dd„ ƒZdd„ Zdd„ Zej dg d¢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   s`   t t g d¢¡dd�}|jd|d�}t|ƒr4|jj}t t |ddddg¡dd�}t ||¡ d S )N)r   r   r   r
   r   g       @r   r   r   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*J ‚t g d¢dtjd�}d|_|jdksRJ ‚d}tjt|d	�� d
|_W d   ƒ n1 s€0    Y  |jd
ks˜J ‚tj|_t |j¡s°J ‚t g d¢dtj	d�}d|_|jdu sØJ ‚tjt|d	�� d|_W d   ƒ n1 �s0    Y  tj|_t |j¡�s(J ‚d S )Nç      ð?g       @r   r	   )r   r   r	   r   ©r   r   zAAllowing arbitrary scalar fill_value in SparseDtype is deprecated©ÚmatchgÍÌÌÌÌÌ@©TFTFT)
r   r   r   r   Úint64r   Úassert_produces_warningÚFutureWarningÚisnanÚbool_)r   r   Úmsgr   r   r   Útest_set_fill_value/   s&    $&z#TestSparseArray.test_set_fill_valueÚval©r   r	   r
   r   r	   c                 C   sP   t g d¢dtjd�}d}tjt|d�� ||_W d   ƒ n1 sB0    Y  d S )Nr&   Fr#   zfill_value must be a scalarr$   )r   r   r+   ÚpytestÚraisesÚ
ValueErrorr   )r   r.   r   r,   r   r   r   Ú test_set_fill_invalid_non_scalarJ   s    z0TestSparseArray.test_set_fill_invalid_non_scalarc                 C   s,   |  ¡ }|j|jusJ ‚|j|ju s(J ‚d S ©N)ÚcopyZ	sp_valuesÚsp_index)r   r   Úarr2r   r   r   Ú	test_copyR   s    zTestSparseArray.test_copyc                 C   s   t  | ¡ |¡ d S r4   )r   Zassert_almost_equalÚto_dense)r   r   r   r   r   r   Útest_values_asarrayW   s    z#TestSparseArray.test_values_asarrayzdata,shape,dtype)r   r   r   r   r   )r   )r   )r   ÚAÚB)r   c                 C   s   t ||d�}|j|ksJ ‚d S )N©r   )r   Úshape)r   Údatar>   r   Úoutr   r   r   Ú
test_shapeZ   s    zTestSparseArray.test_shapeÚvalsr
   c                 C   s.   t  |¡}t||d�}| ¡ }t ||¡ d S ©Nr   )r   r   r   r9   r   Úassert_numpy_array_equal)r   rB   r   r   r   r   r   r   Útest_dense_reprh   s    

zTestSparseArray.test_dense_reprÚfixr   r   c                 C   s$   |  |¡}t |¡}t ||¡ d S r4   )Zgetfixturevaluer   Zround_trip_pickler   )r   rF   ÚrequestÚobjZ	unpickledr   r   r   Útest_picklex   s    

zTestSparseArray.test_picklec                 C   sD   t g d¢ƒ}t d ¡� |D ]}qW d   ƒ n1 s60    Y  d S )Nr/   )r   r   r(   )r   Zsp_arrÚ_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 g d¢dtjd�}t ||¡ t dtjtjdtjgdd�}| d¡}t g d¢dtjd�}t ||¡ t dtjdddgƒ}| d¡}t g d¢dtjd�}t ||¡ t dtjdddgdd�}| d¡}t g d¢dtjd�}t ||¡ t tjtjtjtjgƒ}| d¡}t g d	¢dtjd�}t ||¡ t tjtjtjtjgdd�}| d¡}t g d	¢dtjd�}t ||¡ t g d
¢ƒ}| d¡}t g d
¢dd�}t ||¡ t g d¢ƒ}|jttj	ƒk�säJ ‚|j
dk�sôJ ‚| d¡}t ||¡ t g d¢dd�}|jttj	ƒk�s0J ‚|j
dk�s@J ‚| d¡}t g d¢dd�}t ||¡ t g d¢tjd�}|jttj	tjd�k�s”J ‚t |j
¡�s¦J ‚| d¡}t g d¢dd�}t ||¡ d S )Nr   r
   éÿÿÿÿ)r   rQ   rQ   r
   rQ   r#   r   r   )r   rQ   r   r
   r   )rQ   rQ   rQ   rQ   )ç        rR   rR   rR   )r   r   r   r   )r   r   r   ÚfillnaÚfloat64r   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g d¢tjd�}t | ¡ |¡ t dtjtjdtjgdd�}| d¡}t g d¢dtjd�}t 	||¡ d S )Nr   r
   )r   r
   r
   r
   r
   r=   r   r   r#   )
r   r   r   rS   r   rT   r   rD   r9   r   rU   r   r   r   Útest_fillna_overlapÎ   s    

z#TestSparseArray.test_fillna_overlapc                 C   sx   t tdƒtdƒddddddddddgƒ}tjg d¢tjd�}| ¡ \}t ||¡ t g d¢ƒ}| ¡ \}t ||¡ d S )	Nr   r   r   r	   r
   )r	   r   é	   r=   )r   r   r   r   r   r	   r   r   r   r
   r   r   )r   Úfloatr   r   Zint32Znonzeror   rD   )r   ÚsaÚexpectedÚresultr   r   r   Útest_nonzeroÛ   s    (

zTestSparseArray.test_nonzero)Ú__name__Ú
__module__Ú__qualname__r0   ÚmarkÚparametrizer   r   r!   r-   r   r3   r8   r:   ÚobjectrA   rE   rI   rK   rP   rW   rX   r^   r   r   r   r   r   $   s@   
	 

üþ	
ýþ
<r   c                   @   sÜ   e Zd Zej dejg d¢ed�e	e g d¢¡ƒ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,expected)r   r	   r
   r   r   r=   )r"   ç      @g      @g      $@g      .@r   r	   r   r   r"   rf   g      @g      (@ÚnumpyTFc                 C   sN  |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 d   ƒ n1 s¤0    Y  d}tjt|d��" t jt|ƒ|d	� W d   ƒ n1 sè0    Y  nVd
}t
 d|› d�¡}tjt|d��  t|ƒj|d� W d   ƒ n1 �s@0    Y  d S )Nc                 S   s   |   ¡ S r4   )Úcumsum)rV   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   rh   r   r   r   r   r0   r1   r2   r'   ÚreÚescape)r   r?   r\   rg   rh   r@   r,   rk   r   r   r   Útest_cumsumè   s$    22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 g d¢dd�}t g d¢|jdd�}t t|ƒ|¡ t t |¡|¡ t g d¢dd�}t g d	¢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 g d¢dd�}t t g d¢¡t d¡d�}t t |¡|¡ t g d
¢dd�}t t g d
¢¡t d¡d�}t t |¡|¡ d S )Nr   r	   éþÿÿÿ©r   rQ   r	   ro   r   )r   r	   r	   )Úsparse_indexr   rQ   )r   r   r	   r	   ©r   rQ   r   ro   r   )r   r   r   r   r   Úabsr6   Úsin)r   r   r]   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 g d¢dd�}t g d¢dd�}t t |d¡|¡ t g d	¢d
d�}t g d¢dd�}t t |d¡|¡ d S )Nr   r	   ro   r
   rQ   rp   r   )r	   r   r
   rQ   rr   r   )r	   r   r   rQ   )r   r   r   r   r   Úadd)r   r   r]   r   r   r   Útest_ufunc_args-  s    z(TestSparseArrayAnalytics.test_ufunc_argsr   rR   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_modf;  s
    z"TestSparseArrayAnalytics.test_modfc                 C   s&   t g d¢dd�}|j}|dks"J ‚d S )N)r   r   r   r   r	   Úinteger©Úkindé   ©r   Únbytes©r   r   r]   r   r   r   Útest_nbytes_integerD  s    z,TestSparseArrayAnalytics.test_nbytes_integerc                 C   s&   t g d¢dd�}|j}|dks"J ‚d S )N)r   r	   r   r   r   Úblockr�   rƒ   r„   r†   r   r   r   Útest_nbytes_blockJ  s    z*TestSparseArrayAnalytics.test_nbytes_blockc                 C   s    t t g d¢¡ƒ}t |¡ d S )N)Z2012NNZ2013)r   rL   Úto_datetimer   rz   )r   rV   r   r   r   Útest_asarray_datetime64Q  s    z0TestSparseArrayAnalytics.test_asarray_datetime64c                 C   s   t ddgƒ}|jdksJ ‚d S )Nr   r   g      à?)r   Zdensity©r   r   r   r   r   Útest_densityU  s    z%TestSparseArrayAnalytics.test_densityc                 C   s   t ddgƒ}|jdksJ ‚d S )Nr   r   )r   ZnpointsrŒ   r   r   r   Útest_npointsY  s    z%TestSparseArrayAnalytics.test_npointsN)r_   r`   ra   r0   rb   rc   r   r   rZ   r   r   rn   ru   rw   r   r‡   r‰   r‹   r�   rŽ   r   r   r   r   re   ç   s*   þþûþ
re   c                  C   sL   t dtjdgdd�} tj| _|  ¡ }t |¡}t g d¢¡}t ||¡ d S )Nr"   rR   r   )FTF)	r   r   r   r   r   rz   r   r   rD   ©r   r]   r\   r   r   r   Ú*test_setting_fill_value_fillna_still_works^  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 )NrR   r   r   r	   r   )Zsparse_arrayrq   r   )r   r   r   r   Z_simple_newr   r   r   rZ   r   r   )r   r\   r   r   r   Útest_setting_fill_value_updatesl  s    

ýr‘   zarr,fill_value,loc)Nr   r	   )r   Nr	   r   )r   r   Nr	   )r   r   r   NNr
   )r   r   r   r	   rQ   )Nr   r   r   Nr	   r   )Nr   r   r   r	   r   c                 C   s    t | |d� ¡ }||ksJ ‚d S rC   )r   Z_first_fill_value_loc)r   r   Úlocr]   r   r   r   Útest_first_fill_value_locy  s    r“   r   c                 C   sF   t | |d� ¡ }t | ¡ ¡ }t|t ƒs,J ‚t |¡}t ||¡ d S rC   )	r   ÚuniquerL   rM   Ú
isinstancer   rz   r   rD   )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 g d¢ƒ} t g d¢dd�}|  ddddœ¡}t ||¡ |  t ddddœ¡¡}t ||¡ |  t ddddœ¡¡}t g d¢dd�}t ||¡ d S )N©r   r   r	   )rx   é   é   rx   r   r›   rœ   )r   Úmapr   r   rL   rM   ©r   r\   r]   r   r   r   Útest_mapª  s    rŸ   c                  C   s<   t g d¢ƒ} t g d¢dd�}|  dddœ¡}t ||¡ d S )Nrš   )rx   r›   Nrx   r   r›   )r   r   )r   r�   r   r   rž   r   r   r   Útest_map_missing¼  s    r    c                 C   sv   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dropnarL   Ú	DataFrameÚIndexZ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   ri   Ò  rj   z1test_drop_duplicates_fill_value.<locals>.<lambda>c                 S   s   i | ]}|t d gdd�“qS )rR   r   r   r   )Ú.0Úir   r   r   Ú
<dictcomp>Ô  rj   z3test_drop_duplicates_fill_value.<locals>.<dictcomp>r   )	rL   r£   r   ZzerosÚapplyZdrop_duplicatesÚranger   Úassert_frame_equal)r¥   r]   r\   r   r   r   Útest_drop_duplicates_fill_valueÐ  s    r®   c                  C   sœ   t  tg d¢ƒg d¢dœ¡} t  tg d¢ƒg d¢dœ¡}| j| d dk }|j|d dk }t ||¡ t jtddgƒdd	gdœddgd
�}t ||¡ d S )N)r   r   r   r/   )r;   r<   )r   r   r   r<   r	   r   r   r
   r¡   )rL   r£   r   r’   r   r­   )Zdf1Zdf2r]   r\   r   r   r   Útest_zero_sparse_columnØ  s    $r¯   c           	      C   sð   t  |¡}t || ¡ t  |¡}t  |¡}t  ||¡r:J ‚t j|dd�}t j|dd�}t  ||¡rfJ ‚tsnd S d}tjt|d�� t j|dd� W d   ƒ n1 s¤0    Y  t	t  g d¢¡ƒ}t j|dd�}t j|dd�}t  ||¡sìJ ‚d S )NT)r5   zGStarting with NumPy 2.0, the behavior of the 'copy' keyword has changedr$   Fr/   )
r   rz   r   rD   Zmay_share_memoryr   r   r(   r)   r   )	r   r   r]   Zresult_copy1Zresult_copy2r,   r7   Zresult_nocopy1Zresult_nocopy2r   r   r   Útest_array_interfaceä  s"    


,r°   )%rl   rg   r   r0   Zpandas._libs.sparser   Zpandas.compat.numpyr   ZpandasrL   r   r   Zpandas._testingZ_testingr   Zpandas.core.arrays.sparser   Zfixturer   r   r   r   re   r�   r‘   rb   rc   r“   r   r˜   r™   rŸ   r    r¦   r®   r¯   r°   r   r   r   r   Ú<module>   sn   


 Dwôþ

ûþ

