
    dI                         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          Z G d d          Z G d d	          Zd
 Zd ZdS )    N)datetime)		DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestampconcat
date_rangeto_timedeltac            	          e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             Ze	j
                            ddd	g          e	j
                            ddd	g          e	j
                            dej         ed          g          d                                     Ze	j
                            ddd	g          e	j
                            ddd	g          d                         Ze	j
                            ddd	g          e	j
                            ddd	g          d                         ZdS )TestDatetimeConcatc                     t          dd          }t          d|i          }t          ||g          }|j        d d         d         |k                                    sJ |j        dd          d         |k                                    sJ d S )Nz1/1/2000
   )periodstime)r   r   r
   ilocall)selfrngdfresults       f/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/reshape/concat/test_datetimes.pytest_concat_datetime64_blockz/TestDatetimeConcat.test_concat_datetime64_block   s    R000}%%R!!CRC (C/4466666BCC (C/446666666    c                 V   g }|                     t          ddd          dg           |                     t          ddd          dg           t          j        |ddg          }t	          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   from_recordsr   ranger
   )r   rowsdf2_objinddf1s        r   %test_concat_datetime_datetime64_framez8TestDatetimeConcat.test_concat_datetime_datetime64_frame!   s    XdAq))1-...XdAq))40111(7GHHHzR@@@eBii8899 	W~r   c           	         t          dddd          }t          |d         |d         d          }t          d	g d
i|          }t          dg d
i|          }t          ||gd          }t          g dd                              d                              d          }t          ddgddgddgg|d	dg          }t          j        ||           t          dddd          }t          dg d
i|          }	t          ||	gd          }t          g 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          }t          j        ||           t          |	                    d          
                                |	                    d          
                                gd          }t          g d
t          j        gdz  z   t          j        gdz  g d
z   d|                    |                    }t          j        ||           d S )N
2011-01-01   HzEurope/Parisr   r&   tzr   )r%   endr&   ar   r   r1   indexbr   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:00r&   UTCr   r:   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:00T)sortr7   r;   )r   r   r
   r   
tz_converttmassert_frame_equalnpnanresamplemeanr'   )
r   idx1idx2r-   df2r   exp_idxexpectedidx3df3s
             r   test_concat_datetime_timezonez0TestDatetimeConcat.test_concat_datetime_timezone/   s   ,OOOQT"XC@@@iii(555iii(555c
+++   
    ZZ'' 	 VaVaV$Gc3Z
 
 
 	fh///,MMMiii(555c
+++  	
 	
 BFBFBF #J
 
 
 	fh/// c**//113<<3D3D3I3I3K3KLSWXXX))rvhl*"&A			1IJJ++d##
 
 
 	fh/////r   c                    t          dddd          }t          t          d                    }t          ||          }t	          |d d         |dd          g          }t          j        ||           t	          |dd          |d d         g          }t          |dd          |d d         z   |dd                              |d d                             }d |j        j	        _
        t          j        ||           d S )Nz01-Jan-2013d   50Lr?   r3   r9   2   )r   listr)   r   r
   rD   rE   r'   r:   _datar&   )r   drdatarN   r   s        r   test_concat_datetimeindex_freqz1TestDatetimeConcat.test_concat_datetimeindex_freqp   s    s5IIIE#JJT,,,#2#677
fh/// "##"677T"##Ycrc2"RSS'..CRC:Q:QRRR$(!
fh/////r   c           
         t          t          j        ddd          t          j        ddd          t          j        ddd          gd          }t          ddgt	          j        dd	g|d d
         gddg                    }t          ddgt	          j        dd	g|d d d	         gddg                    }t	          j        g d|gddg          }|j        d         j        t          k    sJ t          ddgdt          j        gt          j        dgg|          }t          ||gd          }t          j        ||           d S )Ni  r     i  objectdtyper7   r;   r   r5   firstsecond)namesr9   )r   r   r   r<   )r   dtr    r   r   from_arrayslevelsr_   r]   r   rF   rG   r
   rD   rE   )r   idxss2mirN   r   s          r   ,test_concat_multiindex_datetime_object_indexz?TestDatetimeConcat.test_concat_multiindex_datetime_object_index   s   WT1a  "'$1"5"5rwtQ7J7JK
 
 

 #J(FH )  	
 	
 	
 #J(QSSqS")  
 
 
 #YYH%
 
 
 y|!V++++3Z#rv6
 
 
 Ba(((
fh/////r   c                    t          t          dddd                    }t          t          j        ddgd	          }t          |d         |d         t          j        t          j        g          }t	          ||gd
          }t          j        ||           t          t          j        t          d          d	          }t	          ||gd
          }t          j        ||           t          t          ddd                    }t          t          ddd                    }t          j        |d d <   t          |d         |d         t          j        t          j        g          }t	          ||gd
          }t          j        ||           t          j        |d d <   t          t          j        t          d          d	          }t	          ||gd
          }t          j        ||           d S )N20151124 08:0020151124 09:001h
US/Easternr&   r4   r   r   zdatetime64[ns, US/Eastern])r:   r_   Tignore_index   r>   z20151124 10:00z20151124 11:00zdatetime64[ns])r   r   pdNaTr
   rD   assert_series_equalr)   r   xyrN   r   s        r   test_concat_NaT_seriesz)TestDatetimeConcat.test_concat_NaT_series   s    ')9VVV
 
 26!Q/KLLL1Q41rvrv677AT222
vx000 "&a8TUUUAT222
vx000 :.0@tLLLMM:.0@tLLLMMv!!!1Q41rvrv677AT222
vx000 v!!!"&a8HIIIAT222
vx00000r   r4   Nr?   c           	         t          t          j        gt          j        gg          }|                    fd          }t          t	          d          gt	          d          ggddg          }t          t          j        t          j        t	          d          t	          d          g          }t          ||gd	          }t          j        ||           d S )
Nc                 8    | j                                       S Nrc   tz_localize)rx   r4   s    r   <lambda>z?TestDatetimeConcat.test_concat_NaT_dataframes.<locals>.<lambda>   s    ad&6&6r&:&: r   
2015/01/01r4   
2016/01/01r   r1   r9   r   r<   )r   rt   ru   applyr	   r
   rD   rE   )r   r4   r`   ra   rN   r   s    `    r   test_concat_NaT_dataframesz-TestDatetimeConcat.test_concat_NaT_dataframes   s     BF8bfX.//::::;;,,,-	,20N0N0N/OPa&
 
 
 ,2...,2...	
 
 a000
fh/////r   tz1tz2rg   20150101c                    t          t          j        gt          j        gg                              fd          }t          |g                              fd          }t	          ||gd          }t          t          t          j        t          j        |gg d                    }|                    fd          }k    r|                    t                    }t          j	        ||           d S )Nc                 8    | j                                       S r}   r~   )rx   r   s    r   r   zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>   s    @P@PQT@U@U r   c                 8    | j                                       S r}   r~   rx   r   s    r   r   zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>   s    0@0@0E0E r   r   r<   )r   r   r   r9   c                 8    | j                                       S r}   r~   r   s    r   r   zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>   s    AD,<,<S,A,A r   )
r   rt   ru   r   r
   r   astyper]   rD   rE   )r   r   r   rg   r`   ra   r   rN   s    ``     r   )test_concat_NaT_dataframes_all_NaT_axis_0z<TestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0   s     BF8bfX.//556U6U6U6UVVA3%%&E&E&E&EFFa000VRVRVQ$7yyyIIIJJ>>"A"A"A"ABB#::v..H
fh/////r   c                 ~   t          t          t          j        t          j        g          j                            |                    }t          t          t          j        g          j                            |          dg          }t          t          t          j        t          j        g          j                            |          t          t          j        t          j        g          j                            |          d          }t          ||gd          }t          j        ||           d S )Nr   r"   )r   r   r<   )	r   r   rt   ru   rc   r   r
   rD   rE   r   r   r   r`   ra   rN   r   s          r   )test_concat_NaT_dataframes_all_NaT_axis_1z<TestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_1   s    
 &"&"&!1225AA#FFGG626(++.::3??!MMM2626*++.::3??2626*++.::3?? 
 
 a000
fh/////r   c           	          t          t          j        t          j        g          j                            |          }t          t          d|          gt          d|          ggddg          }t          t          j        t          j        t          d|          t          d|          g          }||k    r|                    t                    }t          ||g          }t          j        ||           d S )Nr   r   r   r   r1   r9   )r   rt   ru   rc   r   r   r	   r   r]   r
   rD   rE   r   s          r   (test_concat_NaT_series_dataframe_all_NaTz;TestDatetimeConcat.test_concat_NaT_series_dataframe_all_NaT   s     '((+77<<<C0001<C0001 a&
 
 
 ,3///,3///	
 
 #::v..H((
fh/////r   )__name__
__module____qualname__r   r.   rQ   rZ   rj   rz   pytestmarkparametrizer   rt   ru   r	   r   r   r    r   r   r   r      s       7 7 7  ?0 ?0 ?0B0 0 0#0 #0 #0J1 1 1> [TD%=110 0 210* [UT5M22[UT5M22[S2699Z+@+@"ABB0 0 CB 32 320 [UT5M22[UT5M220 0 32 320 [UT5M22[UT5M220 0 32 320 0 0r   r   c            
           e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	 e
j        ej        e
j                            d
                    g          d             Zd ZdS )TestTimezoneConcatc                    t          t          dddd                    }t          t          dd                    }t          |d         |d	         |d         |d	         gd
          }t          ||gd          }t          j        ||           t          t          dddd                    }t          ddg          }t          |d         |d	         |d         |d	         gd
          }t          ||gd          }t          j        ||           t          t          dd	d	          gg          }|d         j                            d          |d<   t          t          dd	d          gg          }|d         j                            d          |d<   t          ||g          }|d         j	        dk    sJ t          t          dd	d	          gg          }|d         j                            d          |d<   t          t          dd	d          gg          }|d         j                            d          |d<   t          ||g          }|d         j	        dk    sJ t          t          dd	d	          gt          dd	d          gg          }|d         j                            d          |d<   t          t          dd	d          gg          }|d         j                            d          |d<   t          ||g          }|d         j	        dk    sJ t          t          dd	d	          gg          }|d         j                            d          |d<   t          t          dd	d          gt          dd	d          gg          }|d         j                            d          |d<   t          ||g          }|d         j	        dk    sJ d S )Nrl   rm   rn   r?   rp   
2012-01-01z
2012-01-02r   r   r]   r^   Trq   r7   r;   i  r   zdatetime64[ns, UTC]zEurope/Londonzdatetime64[ns, Europe/London]r1   )
r   r   r
   rD   rv   r   r   rc   r   r_   )r   rx   ry   rN   r   r`   ra   s          r   test_concat_tz_seriesz(TestTimezoneConcat.test_concat_tz_series  s   :.0@tPUVVVWW:lL99::1Q41qtQqT2(CCCAT222
vx000 :.0@tPUVVVWWC:1Q41qtQqT2(CCCAT222
vx000 HT1a0012338;**511aXdAq1123441IL,,U33q	((ay"77777 HT1a0012338;**?;;aXdAq1123441IL,,_==q	((ay"AAAAA HT1a001HT1a4H4H3IJKK8;**?;;aXdAq1123441IL,,_==q	((ay"AAAAA HT1a0012338;**?;;aXdAq112XdAq5I5I4JKLL1IL,,_==q	((ay"AAAAAAAr   c                 ,   t          dt          j                                                  t          dt          j                                                  g}t          dt          j                                                  t          dt          j                                                  g}t	          t          |          t          |          gd          }t          j        |t          ||z                        |j        dk    sJ d S )	Nr0   r   
2011-02-01r   z
2012-02-01Trq   zdatetime64[ns, tzlocal()])	r	   dateutilr4   tzlocalr
   r   rD   rv   r_   r   rx   ry   r   s       r   test_concat_tz_series_tzlocalz0TestTimezoneConcat.test_concat_tz_series_tzlocalR  s     lx{':':'<'<===lx{':':'<'<===

 lx{':':'<'<===lx{':':'<'<===

 F1II.TBBB
vva!e}}555|:::::::r   c                 B   t          dd          t          dd          g}t          j        d          t          j        d          g}t          t	          |          t	          |          gd          }t          j        |t	          ||z   d	
                     t          j        dd          t          j        dd          g}t          t	          |          t	          |          gd          }t          j        |t	          ||z   d	
                     d S )Nr0   ro   r   r   z1 dayz2 dayTrq   r]   r^   z2011-03Mr>   z2011-04)r	   rt   	Timedeltar
   r   rD   rv   Periodr   s       r   'test_concat_tz_series_with_datetimelikez:TestTimezoneConcat.test_concat_tz_series_with_datetimelikea  s	    l|444l|444
 \'""BL$9$9:F1II.TBBB
vva!e8'D'D'DEEE Yys+++RYys-K-K-KLF1II.TBBB
vva!e8'D'D'DEEEEEr   c                 0   t          t          dd          t          dd          dt          d                    }t          |j                                        |j                                        gd	
          }t          j        ||           d S )N20130102ro   r   20130603CETAB   r9   r   r<   )	r   r	   r)   r
   r   to_framer   rD   rE   )r   rL   rP   s      r   test_concat_tz_framez'TestTimezoneConcat.test_concat_tz_framep  s    zl;;;ze444  ((
 
 
 cenn&&(8(89BBB
c3'''''r   c                    t          dd           }t          dd          }t          dd          }t          d|gi          }t          d|gi          }t          d|gi          }t          ||g                              d          }t          d||git                    }t          j        ||           t          ||g                              d          }t          d||git                    }t          j        ||           t          ||g                              d          }t          d||gi          }t          j        ||           d S )	N
2015-01-01r   r?   ESTr   T)dropr^   )r	   r   r
   reset_indexr]   rD   rE   )	r   ts1ts2ts3r-   rL   rP   resultsrN   s	            r   test_concat_multiple_tzsz+TestTimezoneConcat.test_concat_multiple_tzs}  sd    ...//////#((#((#((#s$$00d0;;fsCj1@@@
gx000#s$$00d0;;fsCj1@@@
gx000#s$$00d0;;fsCj122
gx00000r   c           	         t          t          ddd          t          ddd          t          ddd          gg dg dg dd          }|d	                             d
           |d	<   |                    d	dg          }t	          g ddz  dd	          }t          g ddz  d          }t          j        ||g          }t          g ddz  g ddz  d|ddg          }t          ||g          }t          j
        ||           d S )Nr\   r   r   r1   )r   r   Cr8   )rs   r      )rc   r;   cdrc   c                 $    t          | d          S )N
US/Pacificr   )r	   )r   s    r   r   zCTestTimezoneConcat.test_concat_multiindex_with_tz.<locals>.<lambda>  s    IaL,I,I,I r   r;   )z
2014-01-01z
2014-01-02z
2014-01-03r   )r4   name)r   )r   r   r   r   r@   )r   r   r   	set_indexr   r   r   rd   r
   rD   rE   )r   r   exp_idx1exp_idx2rM   rN   r   s          r   test_concat_multiindex_with_tzz1TestTimezoneConcat.test_concat_multiindex_with_tz  sW    T1a((T1a((T1a((
 %__YYYY	 	
 
 d8>>"I"IJJ4\\4+&& 666:|RV
 
 
 1,3777((H)=>>))a-iii!m44GcSVZ
 
 
 R!!
fh/////r   c                    t          j        ddg                              d          }t          d|i          }t          ||d          }t	          ||gdd          }t          t          |          t          |          z   t           j        t           j        gt          |          z   d          }t          j        ||           d S )Nr   r   r?   r   r   T)rA   rr   )	rt   to_datetimer   r   r
   rV   ru   rD   rE   )r   tsr7   r;   r   rN   s         r   test_concat_tz_not_alignedz-TestTimezoneConcat.test_concat_tz_not_aligned  s    ^QF##//66sBi  BR(())AT===r((T"XX%RVRV,<tBxx,GHH
 
 	fh/////r   t1r   z*GH23037 incorrect dtype when concatenating)reason)marksc                 D   t          |d          }t          dd          }t          dd          }t          ||gg          }t          |gg          }t          ||g          }t          ||g|t          j        ggddg          }t          j        ||           d S )Nr?   r   r   r   r9   )r	   r   r
   rt   ru   rD   rE   )	r   r   r   r   r   r-   rL   r   rN   s	            r   test_concat_tz_NaTz%TestTimezoneConcat.test_concat_tz_NaT  s     u%%%//////#s%%#  c
##sCj3-8AGGG
fh/////r   c           	          t          t          t          ddd                    t                      g          }t          t          ddd                    }t          j        ||           d S )N2000r   r?   )r   r4   )r
   r   r   rD   rE   )r   r   rN   s      r   test_concat_tz_with_emptyz,TestTimezoneConcat.test_concat_tz_with_empty  sk    z&!>>>??M
 
 ZeDDDEE
fh/////r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   paramrt   ru   xfailr   r   r   r   r   r   r     s       6B 6B 6Bp; ; ;F F F( ( (1 1 1.0 0 0:	0 	0 	0 [FLk''G (    	
 0 0 00 0 0 0 0r   r   c                        e Zd Zd Zd Zd ZdS )TestPeriodConcatc                 D   t          t          j        ddgd                    }t          t          j        ddgd                    }t          |d         |d         |d         |d         gd	
          }t          ||gd          }t	          j        ||           d S )N
2015-11-01
2015-12-01r$   r>   
2015-10-01
2016-01-01r   r   z	Period[D]r^   Trq   )r   rt   PeriodIndexr
   rD   rv   rw   s        r   test_concat_period_seriesz*TestPeriodConcat.test_concat_period_series  s    2><">SIIIJJ2><">SIIIJJ1Q41qtQqT2+FFFAT222
vx00000r   c                 ^   t          t          j        ddgd                    }t          t          j        ddgd                    }t          |d         |d	         |d         |d	         gd
          }t          ||gd          }t	          j        ||           |j        d
k    sJ d S )Nr   r   r$   r>   r   r   r   r   r   r]   r^   Trq   )r   rt   r   r
   rD   rv   r_   rw   s        r   'test_concat_period_multiple_freq_seriesz8TestPeriodConcat.test_concat_period_multiple_freq_series  s    2><">SIIIJJ2><">SIIIJJ1Q41qtQqT2(CCCAT222
vx000|x''''''r   c                    t          t          j        ddgd                    }t          t          j        ddgd                    }t          |d         |d         |d         |d         gd	          }t          ||gd
          }t	          j        ||           |j        dk    sJ t          t          j        ddgd                    }t          t          ddg                    }t          |d         |d         |d         |d         gd	          }t          ||gd
          }t	          j        ||           |j        dk    sJ t          t          j        ddgd                    }t          ddg          }t          |d         |d         |d         |d         gd	          }t          ||gd
          }t	          j        ||           |j        dk    sJ d S )Nr   r   r$   r>   r   r   r   r]   r^   Trq   r   r   )r   rt   r   r
   rD   rv   r_   r   rw   s        r   test_concat_period_other_seriesz0TestPeriodConcat.test_concat_period_other_series  s   2><">SIIIJJ2><">SIIIJJ1Q41qtQqT2(CCCAT222
vx000|x'''' 2><">SIIIJJ=,!=>>??1Q41qtQqT2(CCCAT222
vx000|x''''2><">SIIIJJC:1Q41qtQqT2(CCCAT222
vx000|x''''''r   N)r   r   r   r   r   r   r   r   r   r   r     sA        1 1 1( ( (( ( ( ( (r   r   c                     t          t          j        d          d          } t          d| i          }t	          ||g          }t          j        |j        d d         |           t          j        |j        dd          |           d S )Nr   rg   )unitr   )r   rF   aranger   r
   rD   rE   r   )r   r   r   s      r   test_concat_timedelta64_blockr     s    
ry}}3
/
/
/C	FC=	!	!BRHF&+crc*B///&+bcc*B/////r   c                     t          ddit          j        dt          j        fg                    } t          ddit          j        dt          j        fdt          j        fg                    }t          | |gd          }t          dt          j        gdd	t          j        dt          j        fdt          j        fg                    }t          j	        ||           d S )
Nr7   r   r9   r;   r   r#   r<   g      ?rB   )
r   r   from_tuplesrt   ru   r
   rF   rG   rD   rE   )leftrightr   rN   s       r   #test_concat_multiindex_datetime_natr     s    c1XZ%;a[M%J%JKKKD	a
.BFa[/IJJ  E T5M	222FBFm!$$j&<q"&kArv;=W&X&X H &(+++++r   )r   rc   r   numpyrF   r   pandasrt   r   r   r   r   r   r	   r
   r   r   pandas._testing_testingrD   r   r   r   r   r   r   r   r   <module>r      s                      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
      0 0 0 0 0 0 0 0DD0 D0 D0 D0 D0 D0 D0 D0N%( %( %( %( %( %( %( %(P0 0 0
, 
, 
, 
, 
,r   