o
    g0                     @   sh   d dl Zd dlZd dlm  mZ d dlZd dlm	Z	m
Z
mZmZmZmZ d dlmZ G dd dZdS )    N)CategoricalIndex	DataFrameIndexSeries
date_rangeoffsetsc                   @   s   e Z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 Zejddd Zdd Zdd Zdd Zdd Zdd Ze
jdd Zd d! Zd"S )#TestDataFrameShiftc                 C   s  | d}t|j|j |d  d}t|d | | d}t|j|j |d  d}t|d | | d}t|| |j dt d}t|t|ksVJ |j ddd}t|| |jd }|td }tj|	||	|dd | d	}	t
 }
|
 d	}| d
}t|j|
j t|j|
j t|jd d df  j|
jd d
df j |
 d	d}|
 d	t }t|| t|
| d
d d}tjt|d |
j dd W d    n1 sw   Y  ttjdd}tjttj|jdgd|jd d dd
f gdd	d}|j d	d	d}t|| ttjdd}tjttj|jdgd|jd d dd
f gdd	d}|j d	dd}t|| d S )N   Ar   freqBF)check_names   zdoes not match PeriodIndex freqmatchD
   indexcolumnsT)ignore_indexaxisr   r   )shifttmassert_index_equalr   assert_series_equalassert_frame_equalr   BDaylenxsmakePeriodFrameassert_numpy_array_equalilocdropnavaluespytestraises
ValueErrorr   nprandomrandpdconcatnan)selfdatetime_frame	int_frameshiftedFrameshiftedSeries	unshiftedshiftedFrame2d	shifted_dint_shiftedpsshiftedshifted2shifted3msgdfexpectedresult rD   c/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/frame/methods/test_shift.py
test_shift   sh   






(((zTestDataFrameShift.test_shiftc                 C   sZ   t ddgddgd}|d}t tjtjtjgddggtdddgd}t|| d S )	NTF)highlowr   dtyperG   rH   r   )r   r   r,   arrayr1   objectr   r    )r2   rA   rsxprD   rD   rE   test_shift_bool]   s   
z"TestDataFrameShift.test_shift_boolc                 C   sb   t g ddd}t g ddd}t||d}|d}t|d|dd}t|| d S )NabccategoryrI   )r
   r   C)onetwor   )r   r   r   r   r    )r2   s1s2rA   rN   rO   rD   rD   rE   test_shift_categoricalf   s   
z)TestDataFrameShift.test_shift_categoricalc                 C   s   t g dtddddd}t g dtddddd}|jdd	d
}t|| t g dtddddd}|jdd	d
}t|| d S )N)r            r	   z1/1/2000r	   H)periodsr   )r   )r   r   r\   r]   r^   r   r   
fill_value)r   r   r   r\   r]   r\   )r   r   r   r   r    )r2   rA   exprC   rD   rD   rE   test_shift_fill_valueo   s   z(TestDataFrameShift.test_shift_fill_valuec                 C   s&   t dg i}|d}t|| d S )Nfoor   )r   r   r   r    )r2   rA   rN   rD   rD   rE   test_shift_empty   s   
z#TestDataFrameShift.test_shift_emptyc                 C   s   t tddgd g dg}tjdd}g }|D ]0}t| |d}tdD ]}|jd d |f |d |jd d |f< q'td|_	|
| q|d   }t|ttdddd	 t|d |d  t|d |d
  d S )Nr	   r   )r   r   r\   r\   r      rK   r      int64rI   r\   )listranger,   r-   randnr   copyr&   r   r   appendisnasumr   r   r   r    )r2   column_listsdatar=   r   rA   snullsrD   rD   rE   test_shift_duplicate_columns   s   ,
z/TestDataFrameShift.test_shift_duplicate_columnsc                 C   s  t tjjddd}t tjjddd}tj||gdd}|s)t|jjdks)J |j	ddd}|j
g ddd}tj|jd d d df< |j|_t|| tj||gdd}|sdt|jjdksdJ |j	d	dd}|j
g d
dd}tj|jd d d	d f< |j|_t|| d S )N  r	   r]   sizer	   r\   r   r   r\   )r   r   r   r   r\   )r\   r]   r^   r   r   )r   r,   r-   randintr/   r0   r"   _mgrblocksr   taker1   r&   r   r   r    )r2   using_array_managerdf1df2df3rC   rB   rD   rD   rE    test_shift_axis1_multiple_blocks   s$   z3TestDataFrameShift.test_shift_axis1_multiple_blocksc                 C   sp  t tjjddd}t tjjddd}tj|jd dddf |jd dd d f gdd}|jd	dtd
d}t	|j
jd	ksDJ |jg ddd}td
|jd d d d	f< |j|_t|| tj|jd dddf |jd dd d f gdd}|jddtd
d}t	|j
jd	ksJ |jg ddd}td
|jd d dd f< |j|_t|| d S )Nrv   rw   rx   rz   r^   r   r]   r   r\   r   r   rb   )r   r   r   r   r{   )r\   r]   r   r   )r   r,   r-   r|   r/   r0   r&   r   int_r"   r}   r~   r   r   r   r    )r2   r   r   r   rC   rB   rD   rD   rE   .test_shift_axis1_multiple_blocks_with_int_fill   s    66zATestDataFrameShift.test_shift_axis1_multiple_blocks_with_int_fillz)ignore:tshift is deprecated:FutureWarningc                 C   s  t  }|d}|d}t || |jdd}t || |jt d}t || d}tjt|d |jdd W d    n1 sHw   Y  |d}|d}t || |j|j	j
d}t || t|jtt|j	|jd}|d}|d}	|	j	d |	_	t ||	 |d}t || |jg d	d d f }
d
}tjt|d |
  W d    d S 1 sw   Y  d S )Nr   r   r   r   .Given freq M does not match PeriodIndex freq Br   MrK   r   r	      6Freq was not set in the index hence cannot be inferred)r   r$   tshiftr    r   r!   r)   r*   r+   r   r   r   r(   r   r,   asarrayr   
_with_freqr&   )r2   r3   r<   r=   r7   r>   r?   r@   inferred_tsrB   no_freqrD   rD   rE   test_tshift   sB   







"zTestDataFrameShift.test_tshiftc                 C   s8   t t |  W d    d S 1 sw   Y  d S )N)r   assert_produces_warningFutureWarningr   )r2   r3   rD   rD   rE   test_tshift_deprecated  s   
"z)TestDataFrameShift.test_tshift_deprecatedc                 C   sh   t  }|jddd}|jddd}t || |jdd}t || |jt d}t || d S )Nr   inferr   r   r   )r   r$   r   r    r   r!   )r2   r<   r=   r7   r>   r?   rD   rD   rE   'test_period_index_frame_shift_with_freq
  s   z:TestDataFrameShift.test_period_index_frame_shift_with_freqc                 C   s   |j ddd}|j ddd}t|| |j |jjd}t|| t|jtt	|j|j
d}|j ddd}|j ddd}|jd |_t|| |j ddd}t|| d S )Nr   r   r   r   rK   )r   r   r    r   r   r   r(   r   r,   r   r   r   )r2   r3   r=   r7   r>   r   rB   rD   rD   rE   #test_datetime_frame_shift_with_freq  s    z6TestDataFrameShift.test_datetime_frame_shift_with_freqc                 C   sL   t  }d}tjt|d |jdd W d    d S 1 sw   Y  d S )Nr   r   r   r   )r   r$   r)   r*   r+   r   )r2   r<   r@   rD   rD   rE   -test_period_index_frame_shift_with_freq_error,  s
   "z@TestDataFrameShift.test_period_index_frame_shift_with_freq_errorc                 C   sZ   |j g dd d f }d}tjt|d |jdd W d    d S 1 s&w   Y  d S )Nr   r   r   r   r   )r&   r)   r*   r+   r   )r2   r3   r   r@   rD   rD   rE   )test_datetime_frame_shift_with_freq_error2  s
   "z<TestDataFrameShift.test_datetime_frame_shift_with_freq_errorc                 C   s   t tdtdg}| }tt |jddd}W d    n1 s'w   Y  t td|d g }t|| t	||d}|
  tt |jdddd}W d    n1 sbw   Y  t	tdtdg|d d}t|| d S )	Nz
2020-01-01z
2020-01-02r   r   ra   )r
   r   r   r
   )r   r/   	Timestampto_framer   r   r   r   r    r   _consolidate_inplace)r2   serrA   rC   rB   r   rD   rD   rE   )test_shift_dt64values_int_fill_deprecated8  s   "z<TestDataFrameShift.test_shift_dt64values_int_fill_deprecatedc                 C   s   t g d}tddgddgddgd|d d |d	}|jdd
}ttjtjgddgddgd|d d |d	}t|| |jddd
}ttjtjgtjtjgddgd|d d |d	}t|| d S )NrQ   r   r]   r\   r^   r	   rh   r   r   r   )r   r   r   r,   r1   r   r    )r2   cirA   rC   rB   rD   rD   rE   $test_shift_axis1_categorical_columnsN  s    "&
z7TestDataFrameShift.test_shift_axis1_categorical_columnsN)__name__
__module____qualname__rF   rP   r[   rd   rf   ru   r   td&skip_array_manager_not_yet_implementedr   r)   markfilterwarningsr   r   r   r   r   r   r   r   rD   rD   rD   rE   r      s(    J		


0
r   )numpyr,   r)   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr/   r   r   r   r   r   r   pandas._testing_testingr   r   rD   rD   rD   rE   <module>   s     