o
    Û­js'  ã                   @   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   sT   t tj d¡ d¡ƒ}tjtdd�� | d¡ W d   ƒ d S 1 s#w   Y  d S )Né   )r   r   zperiods must be an integer)Úmatchg      ø?)	r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚpytestÚraisesÚ
ValueErrorÚdiff©ÚselfÚdf© r   úa/var/www/html/CropPilot/venv/lib/python3.10/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  ¡  ¡ sOJ ‚t
 ||¡ |jddd	�}|t j }t
 ||¡ d S )Né   r+   r   ztimedelta64[ns]ÚNaTÚnsr   r   r/   ©r   r   éÿÿÿÿ)r	   ÚarangeÚreshaper(   Útimedelta64r   r   Úpdr7   Ú	Timedeltar   Úassert_equalÚisnaÚallr2   ©r   Úarrr   r4   r   r   r   r   Útest_diff_timedelta64_with_nat4   s   &

z0TestDataFrameDiff.test_diff_timedelta64_with_natÚtzNÚUTCc           	      C   sn   t jg d¢|d� |¡}t|ƒ}| ¡ }| ¡ }t  t jt jt jdd�g¡ |¡}t|ƒ ¡ }t	 
||¡ d S )N)r7   z
2019-01-01z
2019-01-02)rF   r   )Údays)r>   ÚDatetimeIndexÚas_unitr   Úto_framer   ÚTimedeltaIndexr7   r?   r   r3   )	r   rF   ÚunitÚdtir$   r   r4   Ú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  ¡  ¡ s/J ‚|j	ddd�}t
 ||¡ |j	ddd�}t
 ||¡ d S )Nú
2016-01-01é   )ÚperiodsrF   r   r   r/   )r   r   rK   Úcopyr>   r7   ÚilocrA   rB   r   r   r3   )r   rF   rN   r$   r   r   r4   r   r   r   Ú(test_diff_datetime_with_nat_zero_periodsW   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   ©ÚfreqrS   rF   r9   r   r/   r7   z1 days©r   r   r   r>   rL   r   r3   ©r   rF   r   r4   r   r   r   r   Útest_diff_datetime_axis0k   ó   þÿþÿ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 )
NrW   rX   r   rY   r9   r   r/   r7   z0 daysr[   r\   r   r   r   Útest_diff_datetime_axis1~   r^   z*TestDataFrameDiff.test_diff_datetime_axis1c                 C   s„   t tdƒtdƒgddgdœƒ}|d j |¡|d< | ¡ }t tjtjgt 	d¡dggdd	gd
�}|d j |¡|d< t
 ||¡ d S )Nz20130101 9:01z20130101 9:02ç      ð?ç       @)ÚtimeÚvaluerb   z00:01:00r   rc   )Úcolumns)r   r   ÚdtrJ   r   r>   r7   r	   r2   r?   r   r3   )r   rM   r   ÚresÚexpr   r   r   Útest_diff_timedelta‘   s   þÿÿz%TestDataFrameDiff.test_diff_timedeltac                 C   sL   t tj d¡ d¡ƒ}tjg d¢td�|d< | ¡ }|d jtj	ks$J ‚d S )Nr   )é   r+   )r   r   r+   rR   ri   ©Údtyper   r   )
r   r	   r
   r   r   ÚarrayÚobjectr   rk   Úfloat64)r   r   r4   r   r   r   Útest_diff_mixed_dtype¢   s   z'TestDataFrameDiff.test_diff_mixed_dtypec                 C   s(   |  d¡}|| d¡ }t ||¡ d S )Nr:   )r   r   r   r3   ©r   r   r%   Úxpr   r   r   Útest_diff_neg_n©   s   
z!TestDataFrameDiff.test_diff_neg_nc                 C   s$   |  d¡}|  d¡}t ||¡ d S )Nr`   r   )r   r   r3   rp   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 )Nr`   ra   g      @g      @r   r/   r   )r   r   r3   r   r	   r2   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 )NrQ   r+   )rS   rX   r   r   r/   )
r   Ú	to_periodr   r   r>   r7   r(   rm   r   r3   )r   Úpir   r4   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   rj   ©r   ÚBry   r   r/   r'   rn   )r"   r#   r"   r#   r   ©	r   Úranger	   r;   rn   r2   r   r   r3   ©r   r   r   r4   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   rj   rx   r   ©r0   rS   rz   r|   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   rj   rx   ç      ð¿r   ry   r   r:   r~   rz   r|   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]rj   r`   r€   Úfloatg        )r   r   r	   r2   r>   ÚSparseDtyper   r3   )r   Ú	sparse_dfr4   r   r   r   r   Útest_diff_sparseê   s   ÿz"TestDataFrameDiff.test_diff_sparsezaxis,expectedr   éþÿÿÿé   r+   ri   é   é	   é   é   é   ©r"   r#   ÚcÚdÚInt64rj   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   r‡   r‰   r�   r�   rj   r/   )	r   r	   Úrepeatr2   Útiler;   r   r   r3   )r   r0   r   r   r4   r   r   r   Útest_diff_integer_naõ   s   üùz&TestDataFrameDiff.test_diff_integer_nac                 C   sL   t j d¡ d¡}d|j_t|ƒ}| ¡ }tt  |¡ƒ ¡ }t	 
||¡ d S )Nr   )ri   r   F)r	   r
   r   r   ÚflagsÚ	writeabler   r   rl   r   r3   rC   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 )Nri   )Úint8Úint16r'   rn   r`   rj   )r   r{   r(   r   r	   r2   r   r3   )r   Úany_int_numpy_dtyper   r4   Úexpected_dtyper   r   r   r   Útest_diff_all_int_dtype+  s   
ÿz)TestDataFrameDiff.test_diff_all_int_dtype)"Ú__name__Ú
__module__Ú__qualname__r   r   ÚmarkÚparametrizer	   Úint64r    r&   r*   r5   rE   rP   rV   r]   r_   rh   ro   rr   rs   rt   rw   r}   r   r�   r…   r   r2   r‘   r“   r–   r›   r   r   r   r   r      sj    
	





		üùþüùþóþ
	r   )Únumpyr	   r   Úpandasr>   r   r   r   r   Úpandas._testingÚ_testingr   r   r   r   r   r   Ú<module>   s    