a
    oÝEbx&  ã                   @   sN   d dl Zd dlZd dlZd dlmZmZmZmZ d dl	m
Z G dd„ dƒZdS )é    N)Ú	DataFrameÚSeriesÚ	TimestampÚ
date_rangec                   @   sæ  e Zd Zdd„ Zej dde d¡g¡dd„ ƒZ	dd„ Z
d	d
„ Zdd„ Zdd„ Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZ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$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zej d.d/eejd/dd/ejejejd/gejdejejd0dejejge ejd1¡ejd2d3d4d5d6d7d8gd9œd:d;�fdee ejd1¡d/dejdejejejd/ge ejd1¡e ejd1¡d9œd:d;�fg¡d<d=„ ƒZd>d?„ Z d@dA„ Z!dS )BÚTestDataFrameDiffc                 C   sN   t tj dd¡ƒ}tjtdd�� | d¡ W d   ƒ n1 s@0    Y  d S )Né   zperiods must be an integer)Úmatchg      ø?)r   ÚnpÚrandomÚrandnÚpytestZraisesÚ
ValueErrorÚdiff©ÚselfÚdf© r   úd/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/frame/methods/test_diff.pyÚtest_diff_requires_integer   s    z,TestDataFrameDiff.test_diff_requires_integerÚnumé   c                 C   s8   |}|  |¡}|d |d  |¡ }t |d |¡ d S )NÚA)r   ÚshiftÚtmÚassert_series_equal)r   Údatetime_framer   r   Úthe_diffÚexpectedr   r   r   Ú	test_diff   s    
zTestDataFrameDiff.test_diffc                 C   s>   d}|d }t ||gƒ}td|iƒ ¡ }|jd dks:J ‚d S )Nl     ‚_Ér   Ús)r   r   r   r   )r   ÚaÚbÚserÚrsr   r   r   Útest_diff_int_dtype   s
    z%TestDataFrameDiff.test_diff_int_dtypec                 C   s:   |  d¡}| d¡}t |d |d |d  d¡ ¡ d S )NÚfloat32r   r   )Úastyper   r   r   r   )r   r   Útfr   r   r   r   Útest_diff_mixed_numeric&   s    

z)TestDataFrameDiff.test_diff_mixed_numericc                 C   s^   t tdgƒtdgƒdœƒ}| ddd¡ |jdd�}t tjtdƒtdƒdœƒ}t ||¡ d S )	Nr   é   )ÚyÚzr   Úxr   ©Úaxis)r,   r*   r+   )r   r   Úinsertr   r	   Únanr   Úassert_frame_equal)r   r   Úresultr   r   r   r   Útest_diff_axis1_nonconsolidated,   s
    z1TestDataFrameDiff.test_diff_axis1_nonconsolidatedc                 C   sÒ   t  d¡ dd¡ d¡}t  dd¡|d d …df< t|ƒ}|jddd	�}t|d tjt 	d¡t 	d¡gd
œƒ}t
 ||¡ | d¡}|| }|d  ¡  ¡ sžJ ‚t
 ||¡ |jddd	�}|t j }t
 ||¡ d S )Né   r)   r   ztimedelta64[ns]ÚNaTÚnsr   r   r-   ©r   r   éÿÿÿÿ)r	   ÚarangeZreshaper&   Ztimedelta64r   r   Úpdr5   Ú	Timedeltar   Zassert_equalÚisnaÚallr0   ©r   Zarrr   r2   r   r   r   r   Útest_diff_timedelta64_with_nat4   s    &

z0TestDataFrameDiff.test_diff_timedelta64_with_natÚtzNÚUTCc                 C   sb   t jg d¢|d�}t|ƒ}| ¡ }| ¡ }t  t jt jt jdd�g¡}t|ƒ ¡ }t 	||¡ d S )N)r5   z
2019-01-01z
2019-01-02)r@   r   )Údays)
r:   ZDatetimeIndexr   Úto_framer   ÚTimedeltaIndexr5   r;   r   r1   )r   r@   Údtir"   r   r2   Zex_indexr   r   r   r   Ú!test_diff_datetime_axis0_with_natH   s    z3TestDataFrameDiff.test_diff_datetime_axis0_with_natc                 C   s’   t dd|d�}t|ƒ}| ¡ }| ¡ |d< tj|jd d …df< || }|d  ¡  ¡ sZJ ‚|j	ddd�}t
 ||¡ |j	ddd�}t
 ||¡ d S )Nú
2016-01-01é   )Úperiodsr@   r   r   r-   )r   r   rC   Úcopyr:   r5   Zilocr<   r=   r   r   r1   )r   r@   rE   r"   r   r   r2   r   r   r   Ú(test_diff_datetime_with_nat_zero_periodsU   s    z:TestDataFrameDiff.test_diff_datetime_with_nat_zero_periodsc                 C   sd   t tddd|d�tddd|d�dœƒ}|jdd�}t t dd	g¡t dd	g¡dœƒ}t ||¡ d S )
NÚ2010ÚDr   ©ÚfreqrI   r@   r7   r   r-   r5   z1 days©r   r   r   r:   rD   r   r1   ©r   r@   r   r2   r   r   r   r   Útest_diff_datetime_axis0h   s    þÿþÿz*TestDataFrameDiff.test_diff_datetime_axis0c                 C   sd   t tddd|d�tddd|d�dœƒ}|jdd�}t t ddg¡t d	d	g¡dœƒ}t ||¡ d S )
NrL   rM   r   rN   r7   r   r-   r5   z0 daysrP   rQ   r   r   r   Útest_diff_datetime_axis1{   s    þÿþÿz*TestDataFrameDiff.test_diff_datetime_axis1c                 C   s\   t tdƒtdƒgddgdœƒ}| ¡ }t tjtjgt d¡dggdd	gd
�}t 	||¡ d S )Nz20130101 9:01z20130101 9:02ç      ð?ç       @)ÚtimeÚvaluez00:01:00r   rV   rW   )Úcolumns)
r   r   r   r:   r5   r	   r0   r;   r   r1   )r   r   ÚresÚexpr   r   r   Útest_diff_timedeltaŽ   s    þÿÿz%TestDataFrameDiff.test_diff_timedeltac                 C   sH   t tj dd¡ƒ}tjg d¢td�|d< | ¡ }|d jtjksDJ ‚d S )Né   r)   )r   r   r)   rH   r\   ©Údtyper   r   )	r   r	   r
   r   ÚarrayÚobjectr   r^   Úfloat64)r   r   r2   r   r   r   Útest_diff_mixed_dtype�   s    z'TestDataFrameDiff.test_diff_mixed_dtypec                 C   s(   |  d¡}|| d¡ }t ||¡ d S )Nr8   )r   r   r   r1   ©r   r   r#   Zxpr   r   r   Útest_diff_neg_n¤   s    
z!TestDataFrameDiff.test_diff_neg_nc                 C   s$   |  d¡}|  d¡}t ||¡ d S )NrT   r   )r   r   r1   rc   r   r   r   Útest_diff_float_n©   s    

z#TestDataFrameDiff.test_diff_float_nc                 C   sh   t ddgddggƒ}t |jdd�t tjdgtjdggƒ¡ t |jdd�t tjtjgddggƒ¡ d S )NrT   rU   g      @g      @r   r-   r   )r   r   r1   r   r	   r0   r   r   r   r   Útest_diff_axis®   s     ÿ ÿz TestDataFrameDiff.test_diff_axisc                 C   sL   t ddd� d¡}td|iƒ}|jddd�}|tj  t¡}t 	||¡ d S )NrG   r)   )rI   rM   r   r   r-   )
r   Z	to_periodr   r   r:   r5   r&   r`   r   r1   )r   Úpir   r2   r   r   r   r   Útest_diff_period¸   s
    z"TestDataFrameDiff.test_diff_periodc                 C   sº   t tdƒdtjdtjd� dœƒ}t tjtjtjg|d d dœƒ}|jdd�}t ||¡ t tjddd�tjdd	d�d
œƒ}|jdd�}t |d tj |d d d
œƒ}t ||¡ d S )Nr)   r   r]   ©r   ÚBrj   r   r-   r%   ra   )r    r!   r    r!   r   ©	r   Úranger	   r9   ra   r0   r   r   r1   ©r   r   r   r2   r   r   r   Útest_diff_axis1_mixed_dtypesÂ   s    ""ÿ z.TestDataFrameDiff.test_diff_axis1_mixed_dtypesc                 C   sJ   t tdƒdtjdtjd� dœƒ}|tj }|jddd�}t ||¡ d S )Nr)   r   r]   ri   r   ©r.   rI   rk   rm   r   r   r   Ú*test_diff_axis1_mixed_dtypes_large_periodsÓ   s    "
z<TestDataFrameDiff.test_diff_axis1_mixed_dtypes_large_periodsc                 C   s`   t tdƒdtjdtjd� dœƒ}t d|d  |d tj dœƒ}|jdd	d
�}t ||¡ d S )Nr)   r   r]   ri   ç      ð¿r   rj   r   r8   ro   rk   rm   r   r   r   Ú-test_diff_axis1_mixed_dtypes_negative_periodsÜ   s    " z?TestDataFrameDiff.test_diff_axis1_mixed_dtypes_negative_periodsc                 C   sT   t ddgddggdd�}| ¡ }t tjtjgddggt dd¡d�}t ||¡ d S )	Nr   r   zSparse[int]r]   rT   rq   Úfloatg        )r   r   r	   r0   r:   ZSparseDtyper   r1   )r   Z	sparse_dfr2   r   r   r   r   Útest_diff_sparseå   s    ÿz"TestDataFrameDiff.test_diff_sparsezaxis,expectedr   éþÿÿÿé   r)   r\   é   é	   é   é   é   ©r    r!   ÚcÚdÚInt64r]   c                 C   sl   t t ddtjdgd¡t ddtjdgd¡t tjd¡t dd¡d dœdd�}|j|d	�}t ||¡ d S )
Nr   r   r   rv   rx   r|   r   r]   r-   )	r   r	   Úrepeatr0   Ztiler9   r   r   r1   )r   r.   r   r   r2   r   r   r   Útest_diff_integer_nað   s    üùz&TestDataFrameDiff.test_diff_integer_nac                 C   sH   t j dd¡}d|j_t|ƒ}| ¡ }tt  |¡ƒ ¡ }t 	||¡ d S )Nr\   r   F)
r	   r
   r   ÚflagsZ	writeabler   r   r_   r   r1   r>   r   r   r   Útest_diff_readonly  s    z$TestDataFrameDiff.test_diff_readonlyc                 C   sV   t tdƒƒ}| |¡}| ¡ }|dv r*dnd}t tjddddg|d�}t ||¡ d S )Nr\   )Zint8Zint16r%   ra   rT   r]   )r   rl   r&   r   r	   r0   r   r1   )r   Zany_int_numpy_dtyper   r2   Zexpected_dtyper   r   r   r   Útest_diff_all_int_dtype&  s    
ÿz)TestDataFrameDiff.test_diff_all_int_dtype)"Ú__name__Ú
__module__Ú__qualname__r   r   ÚmarkZparametrizer	   Zint64r   r$   r(   r3   r?   rF   rK   rR   rS   r[   rb   rd   re   rf   rh   rn   rp   rr   rt   r   r0   r€   r�   rƒ   r„   r   r   r   r   r      sh   
	





		üùþüùþóþ
	r   )Únumpyr	   r   Zpandasr:   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   Ú<module>   s
   