o
    _~#gs'                     @   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   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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    