a
    PfPT                     @   s   d dl Zd dl m Z  d dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ G dd dZG dd dZG dd	 d	Zd
d Zdd Zdd ZdS )    N)datetime)		DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestampconcat
date_rangeto_timedeltac                   @   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dgdd Ze
jdddge
jdddge
jdejedgdd Ze
jdddge
jdddgdd Ze
jdddge
jdddgdd ZdS )TestDatetimeConcatc                 C   sd   t ddd}td|i}t||g}|jd d d |k sBJ |jdd  d |k s`J d S )Nz1/1/2000
   )periodstime)r
   r   r	   ilocall)selfrngdfresult r   c/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/reshape/concat/test_datetimes.pytest_concat_datetime64_block   s
    z/TestDatetimeConcat.test_concat_datetime64_blockc                 C   sr   g }| tddddg | tddddg tj|ddgd}tdd	d
d}t|td
d}t||g d S )Ni        hidatetestcolumnsz2000/1/1Dr   )startfreqr   )r   r   )appendr   r   Zfrom_recordsr
   ranger	   )r   rowsZdf2_objinddf1r   r   r   %test_concat_datetime_datetime64_frame!   s    z8TestDatetimeConcat.test_concat_datetime_datetime64_framec           
      C   s  t ddddd}t |d |d dd}td	g d
i|d}tdg d
i|d}t||gdd}tg dddd}tddgddgddgg|d	dgd}t|| t ddddd}tdg d
i|d}	t||	gdd}tg dd}ttjdgtjdgtjdgdtjgdtjgdtjgg|d	dgd}t|| t|	d
 |	d
 gdd}tg d
tjgd  tjgd g d
 d||d}t|| d S )N
2011-01-01   hzEurope/Parisr   r"   tzr   )r!   endr"   ar   r   r*   indexbr   Zaxis)z2011-01-01 00:00:00+01:00z2011-01-01 01:00:00+01:00z2011-01-01 02:00:00+01:00zM8[ns, Europe/Paris])dtyper"   r   r3   r   z
Asia/Tokyo)z2010-12-31 15:00:00+00:00z2010-12-31 16:00:00+00:00z2010-12-31 17:00:00+00:00z2010-12-31 23:00:00+00:00z2011-01-01 00:00:00+00:00z2011-01-01 01:00:00+00:00nsT)sortr0   r4   )r
   r   r	   r   tmassert_frame_equalZas_unitnpnanZresamplemeanr#   )
r   Zidx1Zidx2r'   df2r   exp_idxexpectedZidx3df3r   r   r   test_concat_datetime_timezone/   sP    		$(z0TestDatetimeConcat.test_concat_datetime_timezonec                 C   s   t ddddd}ttd}t||d}t|d d |dd  g}t|| t|dd  |d d g}t|dd  |d d  |dd  |d d d}d |jj	_
t|| d S )Nz01-Jan-2013d   Z50msUTCr,   r2   2   )r
   listr$   r   r	   r;   r<   r#   r3   _datar"   )r   ZdrdatarB   r   r   r   r   test_concat_datetimeindex_freql   s    6
z1TestDatetimeConcat.test_concat_datetimeindex_freqc                 C   s   t tdddtdddtdddgdd}tddgtjdd	g|d d
 gddgdd}tddgtjdd	g|d d d	 gddgdd}tjg d|gddgd}|jd jtksJ t	ddgdt
jgt
jdgg|d}t||gdd}t|| d S )Ni  r     i  objectr6   r0   r4   r   r.   firstsecond)namesr2   )r   r   r   r5   )r   dtr   r   r   from_arraysZlevelsr6   rM   r   r=   r>   r	   r;   r<   )r   idxss2mirB   r   r   r   r   ,test_concat_multiindex_datetime_object_index{   s>    &


z?TestDatetimeConcat.test_concat_multiindex_datetime_object_indexc                 C   s   t tddddd}t tjddgdd	}t |d |d tjtjg}t||gd
d}t|| t tjtddd	}t||gd
d}t|| d S )N20151124 08:0020151124 09:001h
US/Easternr"   r-   r   r   zdatetime64[ns, US/Eastern]r3   r6   Tignore_index   r   r
   pdNaTr	   r;   assert_series_equalr$   r   xyrB   r   r   r   r   test_concat_NaT_series   s    z)TestDatetimeConcat.test_concat_NaT_seriesc                 C   s   t tdddd}t tdddd}tj|d d < t |d |d tjtjg}t||gd	d
}t|| tj|d d < t tjtddd}t||gd	d
}t|| d S )NrY   rZ   r[   r"   z20151124 10:00z20151124 11:00r   r   Tr_   ra   datetime64[ns]r^   rb   rf   r   r   r   test_concat_NaT_series2   s    z*TestDatetimeConcat.test_concat_NaT_series2r-   NrF   c                 C   s   t tjtjg|d}td|i}ttd|dgtd|dggddgd}ttjtjtd|dtd|dg}t||gdd}t|| d S )	Nr-   r   
2015/01/01
2016/01/01r   r*   r2   r5   )r   rc   rd   r   r   r	   r;   r<   )r   r-   ZdtirO   rP   rB   r   r   r   r   test_concat_NaT_dataframes   s    

	z-TestDatetimeConcat.test_concat_NaT_dataframestz1tz2itemZ20150101c           	         s   t tjgtjgg fdd}t |gfdd}t||gdd}t ttjtj|gg dd}|fdd} kr|t}|tju r|sĈ d urtj	|j
d	< ntj	|j
d d
df< t|| d S )Nc                    s   | j  S NrR   tz_localizerg   )rq   r   r   <lambda>       zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>c                    s   | j  S rt   ru   rw   rr   r   r   rx      ry   r   r5   )r   r   r   r2   c                    s   | j  S rt   ru   rw   rz   r   r   rx      ry   )r.   r   r.   )r   rc   rd   applyr	   r   astyperM   r=   r>   r   r;   r<   )	r   rq   rr   rs   using_array_managerrO   rP   r   rB   r   )rq   rr   r   )test_concat_NaT_dataframes_all_NaT_axis_0   s    	"
z<TestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0c                 C   s   t ttjtjgj|}t ttjgj|dgd}t ttjtjgj|ttjtjgj|d}t||gdd}t|| d S )Nr   r   )r   r   r5   )	r   r   rc   rd   rR   rv   r	   r;   r<   r   rq   rr   rO   rP   rB   r   r   r   r   )test_concat_NaT_dataframes_all_NaT_axis_1   s    z<TestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_1c                 C   s   t tjtjgj|}ttd|dgtd|dggddgd}ttjtjtd|dtd|dg}||krv|t}t	||g}t
|| d S )Nrn   rm   ro   r   r*   r2   )r   rc   rd   rR   rv   r   r   r|   rM   r	   r;   r<   r   r   r   r   (test_concat_NaT_series_dataframe_all_NaT  s$    


z;TestDatetimeConcat.test_concat_NaT_series_dataframe_all_NaT)__name__
__module____qualname__r   r(   rD   rK   rX   ri   rl   pytestmarkparametrizerp   rc   rd   r   r~   r   r   r   r   r   r   r      s&   	=%
r   c                	   @   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	dd Z
dd Zdd Zdd Zdd Zejddejejejjdddgdd Zd d! Zd"S )#TestTimezoneConcatc                 C   sf   t tddddd}t tdd}t |d |d	 |d |d	 gd
d}t||gdd}t|| d S )NrY   rZ   r[   rF   r]   
2012-01-01z
2012-01-02r   r   rM   rN   Tr_   r   r
   r	   r;   re   rf   r   r   r   test_concat_tz_series"  s
    $z(TestTimezoneConcat.test_concat_tz_seriesc                 C   sd   t tddddd}t ddg}t |d |d	 |d |d	 gd
d}t||gdd}t|| d S )NrY   rZ   r[   rF   r]   r0   r4   r   r   rM   rN   Tr_   r   rf   r   r   r   test_concat_tz_series2*  s
    $z)TestTimezoneConcat.test_concat_tz_series2c                 C   s   t tdddggd| dd}|d jd|d< t tdddggd| dd}|d jd|d< t||g}t||}|d jd	| d
ksJ d S )N  r   M8[]rN   r   rF   r   datetime64[z, UTC]r   r   rR   rv   r	   r;   Zget_finest_unitr6   r   unitZunit2rO   rP   r   Zexp_unitr   r   r   test_concat_tz_series32  s      z)TestTimezoneConcat.test_concat_tz_series3c                 C   s   t tdddggd| dd}|d jd|d< t tdddggd| dd}|d jd|d< t||g}t||}|d jd	| d
ksJ d S )Nr   r   r   r   rN   r   Europe/Londonr   r   , Europe/London]r   r   r   r   r   test_concat_tz_series4?  s      z)TestTimezoneConcat.test_concat_tz_series4c                 C   s   t tdddgtdddggd| dd}|d jd|d< t tddd	ggd| dd}|d jd|d< t||g}t||}|d jd
| dksJ d S )Nr   r   r   r   r   rN   r   r   r*   r   r   r   r   r   r   r   test_concat_tz_series5K  s    $ z)TestTimezoneConcat.test_concat_tz_series5c                 C   s   t tdddggd| dd}|d jd|d< t tdddgtddd	ggd| dd}|d jd|d< t||g}t||}|d jd
| dksJ d S )Nr   r   r   r   rN   r   r   r   r*   r   r   r   r   r   r   r   test_concat_tz_series6Y  s     $z)TestTimezoneConcat.test_concat_tz_series6c                 C   s   t dtj dt dtj dg}t dtj dt dtj dg}tt|t|gdd}t|t||  |jdksJ d S )	Nr)   rm   
2011-02-01r   z
2012-02-01Tr_   zdatetime64[ns, tzlocal()])	r   dateutilr-   Ztzlocalr	   r   r;   re   r6   r   rg   rh   r   r   r   r   test_concat_tz_series_tzlocalg  s    z0TestTimezoneConcat.test_concat_tz_series_tzlocalc                 C   s   t dddt dddg}tdtdg}tt|t|gdd}t|t|| d	d
 tjdddtjdddg}tt|t|gdd}t|t|| d	d
 d S )Nr)   r\   rm   r   z1 dayz2 dayTr_   rM   rN   z2011-03Mrj   z2011-04)r   rc   Z	Timedeltar	   r   r;   re   ZPeriodr   r   r   r   'test_concat_tz_series_with_datetimelikev  s    

z:TestTimezoneConcat.test_concat_tz_series_with_datetimelikec                 C   sR   t tdddtddddtdd}t|j |j gd	d
}t|| d S )NZ20130102r\   rm   Z20130603ZCETAB   r2   r   r5   )	r   r   r$   r	   r   Zto_framer   r;   r<   )r   r@   rC   r   r   r   test_concat_tz_frame  s    

	z'TestTimezoneConcat.test_concat_tz_framec           	      C   s   t dd d}t ddd}t ddd}td|gi}td|gi}td|gi}t||gjdd}td||gitd}t|| t||gjdd}td||gitd}t|| t||gjdd}td||gi}t|| d S )	N
2015-01-01rm   rF   ESTr   T)ZdroprN   )r   r   r	   Zreset_indexrM   r;   r<   )	r   ts1ts2ts3r'   r@   rC   resultsrB   r   r   r   test_concat_multiple_tzs  s    z+TestTimezoneConcat.test_concat_multiple_tzsc                 C   s   t ttdddtdddtdddgddg dg dg d	d
}|ddg}tg dd ddd}tg dd dd}t||g}t g dd g d	d d|ddgd}t||g}t	|| d S )NrL   r   r   r*   zM8[ns, US/Pacific]rN   )r   r   Cr1   )ra   r      )rR   r4   cdrR   r4   )z
2014-01-01z
2014-01-02z
2014-01-03)r6   name)r   )r   r   r   r   r7   )
r   r   r   Z	set_indexr   r   rS   r	   r;   r<   )r   r   Zexp_idx1Zexp_idx2rA   rB   r   r   r   r   test_concat_multiindex_with_tz  s4    



 z1TestTimezoneConcat.test_concat_multiindex_with_tzc                 C   sz   t ddgd}td|i}t||d}t||gddd}tt|t| t jt jgt| d}t|| d S )Nr   r   rF   r   r   T)r9   r`   )	rc   to_datetimerv   r   r	   rH   rd   r;   r<   )r   tsr0   r4   r   rB   r   r   r   test_concat_tz_not_aligned  s    $z-TestTimezoneConcat.test_concat_tz_not_alignedt1r   z*GH23037 incorrect dtype when concatenating)reason)Zmarksc           	      C   sx   t |dd}t ddd}t ddd}t||gg}t|gg}t||g}t||g|tjggddgd}t|| d S )NrF   rm   r   r   r2   )r   r   r	   rc   rd   r;   r<   )	r   r   r   r   r   r'   r@   r   rB   r   r   r   test_concat_tz_NaT  s    z%TestTimezoneConcat.test_concat_tz_NaTc                 C   s>   t ttddddt g}ttdddd}t|| d S )N2000r   rF   )r   r-   )r	   r   r
   r;   r<   )r   r   rB   r   r   r   test_concat_tz_with_empty  s
    z,TestTimezoneConcat.test_concat_tz_with_emptyN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   paramrc   rd   Zxfailr   r   r   r   r   r   r   !  s2   !
r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestPeriodConcatc                 C   sp   t tjddgdd}t tjddgdd}t |d |d |d |d gd	d
}t||gdd}t|| d S )N
2015-11-01
2015-12-01r    rj   
2015-10-01
2016-01-01r   r   z	Period[D]rN   Tr_   )r   rc   PeriodIndexr	   r;   re   rf   r   r   r   test_concat_period_series  s
    $z*TestPeriodConcat.test_concat_period_seriesc                 C   s~   t tjddgdd}t tjddgdd}t |d |d	 |d |d	 gd
d}t||gdd}t|| |jd
kszJ d S )Nr   r   r    rj   r   r   r   r   r   rM   rN   Tr_   r   rc   r   r	   r;   re   r6   rf   r   r   r   'test_concat_period_multiple_freq_series  s    $z8TestPeriodConcat.test_concat_period_multiple_freq_seriesc                 C   s~   t tjddgdd}t tjddgdd}t |d |d |d |d gdd	}t||gd
d}t|| |jdkszJ d S )Nr   r   r    rj   r   r   r   rM   rN   Tr_   r   rf   r   r   r   test_concat_period_other_series	  s    $z0TestPeriodConcat.test_concat_period_other_seriesc                 C   sx   t tjddgdd}t tddg}t |d |d |d |d gdd}t||gd	d
}t|| |jdkstJ d S )Nr   r   r    rj   r   r   rM   rN   Tr_   )r   rc   r   r   r	   r;   re   r6   rf   r   r   r    test_concat_period_other_series2  s    $z1TestPeriodConcat.test_concat_period_other_series2c                 C   st   t tjddgdd}t ddg}t |d |d |d |d gd	d
}t||gdd}t|| |jd	kspJ d S )Nr   r   r    rj   r   r   r   r   rM   rN   Tr_   r   rf   r   r   r    test_concat_period_other_series3  s    $z1TestPeriodConcat.test_concat_period_other_series3N)r   r   r   r   r   r   r   r   r   r   r   r   r     s
   	r   c                  C   sZ   t tddd} td| i}t||g}t|jd d | t|jdd  | d S )Nr   rU   )r   r   )r   r=   Zaranger   r	   r;   r<   r   )r   r   r   r   r   r   test_concat_timedelta64_block#  s
    r   c                  C   s   t dditdtjfgd} t dditdtjfdtjfgd}t| |gdd}t dtjgdd	tdtjfdtjfg}t	|| d S )
Nr0   r   r2   r4   r   r   r5         ?r:   )
r   r   from_tuplesrc   rd   r	   r=   r>   r;   r<   )leftrightr   rB   r   r   r   #test_concat_multiindex_datetime_nat-  s    &r   c                 C   s  t dtjdgddi}t dtjdgddi}t dtjdgddd tjdgddd giddgd}t||g}t|| t dtjg d	di}t|jd d |jd d g}t|| t dtjdgd	di}t|jd d |g}t|| | srt dtjdgddi}d
}tjt|d& t||jd d g}W d    n1 sZ0    Y  t|| nDt dtjdgddi	dd	i}t||jd d g}t|| d S )Nr   r   rk   rN   r   Zfloat64r   r2   rM   zDThe behavior of DataFrame concatenation with empty or all-NA entries)match)
r   rc   arrayr	   r;   r<   r   Zassert_produces_warningFutureWarningr|   )r}   Zdf_timeZdf_floatrB   r   msgr   r   r   test_concat_float_datetime64:  s:    	 6r   )r   rR   r   numpyr=   r   Zpandasrc   r   r   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingr;   r   r   r   r   r   r   r   r   r   r   <module>   s    ,   Y*
