
    OwgPT                         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 Zy)    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d Z	e
j                  j                  dd	d
g      d        Ze
j                  j                  dd	d
g      e
j                  j                  dd	d
g      e
j                  j                  dej                   ed      g      d                      Ze
j                  j                  dd	d
g      e
j                  j                  dd	d
g      d               Ze
j                  j                  dd	d
g      e
j                  j                  dd	d
g      d               Zy	)TestDatetimeConcatc                     t        dd      }t        d|i      }t        ||g      }|j                  d d d   |k(  j	                         sJ |j                  dd  d   |k(  j	                         sJ y )Nz1/1/2000
   )periodstime)r   r   r
   ilocall)selfrngdfresults       a/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_datetimes.pytest_concat_datetime64_blockz/TestDatetimeConcat.test_concat_datetime64_block   sx    R0}%R!CR (C/44666BC (C/44666    c                    g }|j                  t        ddd      dg       |j                  t        ddd      dg       t        j                  |ddg      }t	        dd	d
      }t        |t        d
      d      }t        ||g       y )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((7GHzR@eBi89 	W~r   c           	      0   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      }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      j                  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        |j                  d      j                         |j                  d      j                         gd      }t        g d
t        j                  gdz  z   t        j                  gdz  g d
z   d|j                  |            }t	        j
                  ||       y )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:00zM8[ns, Europe/Paris])dtyper&   r   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:00nsT)sortr7   r;   )r   r   r
   r   tmassert_frame_equalas_unitnpnanresamplemeanr'   )
r   idx1idx2r-   df2r   exp_idxexpectedidx3df3s
             r   test_concat_datetime_timezonez0TestDatetimeConcat.test_concat_datetime_timezone/   s   ,OQT"XC@i(5i(5c
+
 )
 VaVaV$Gc3Z
 	fh/,Mi(5c
+	
 '$- 	 BFFBFFBFF #J
 	fh/ c*//13<<3D3I3I3KLSWXrvvhl*"&&A	1I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  j                  |d d             }d |j                  j                  _
        t        j                  ||       y )Nz01-Jan-2013d   50msUTCr3   r9   2   )r   listr)   r   r
   rC   rD   r'   r:   _datar&   )r   drdatarN   r   s        r   test_concat_datetimeindex_freqz1TestDatetimeConcat.test_concat_datetimeindex_freql   s     sEJE#JT,#267
fh/ "#"67T"#Ycr2"RS'..CR:Q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                  ||       y )Ni  r     i  objectr>   r7   r;   r   r5   firstsecond)namesr9   )r   r   r   r<   )r   dtr    r   r   from_arrayslevelsr>   r^   r   rF   rG   r
   rC   rD   )r   idxss2mirN   r   s          r   ,test_concat_multiindex_datetime_object_indexz?TestDatetimeConcat.test_concat_multiindex_datetime_object_index{   sJ   WWT1a "''$1"5rwwtQ7JK

 #J((FH )	
 #J((QSqS")
 ##H%
 yy|!!V+++3Z#rvv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                  ||       y )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   r   pdNaTr
   rC   assert_series_equalr)   r   xyrN   r   s        r   test_concat_NaT_seriesz)TestDatetimeConcat.test_concat_NaT_series   s     ')9V
 266!Q/KL1Q41rvvrvv67AT2
vx0 "&&a8TUAT2
vx0r   c                    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                  ||       y )Nrl   rm   rn   r&   z20151124 10:00z20151124 11:00r   r   Trr   rt   datetime64[ns]rq   ru   ry   s        r   test_concat_NaT_series2z*TestDatetimeConcat.test_concat_NaT_series2   s    :.0@tLM:.0@tLMvv!1Q41rvvrvv67AT2
vx0 vv!"&&a8HIAT2
vx0r   r4   NrU   c           	         t        t        j                  t        j                  g|      }t        d|i      }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                  ||       y )	Nr4   r   
2015/01/01
2016/01/01r   r1   r9   r<   )r   rv   rw   r   r	   r
   rC   rD   )r   r4   dtir`   ra   rN   r   s          r   test_concat_NaT_dataframesz-TestDatetimeConcat.test_concat_NaT_dataframes   s     RVVRVV,41c(#,-	,20N/OPa&
 ,2.,2.	
 a0
fh/r   tz1tz2item20150101c                 |   t        t        j                  gt        j                  gg      j                  fd      }t        |g      j                  fd      }t	        ||gd      }t        t        t        j                  t        j                  |gg d            }|j                  fd      }k7  rj|j                  t              }|t        j                  u rC|sAt        j                  |j                  d<   n!t        j                  |j                  d d	df<   t        j                  ||       y )
Nc                 :    | j                   j                        S Nrc   tz_localize)rz   r   s    r   <lambda>zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>   s    @P@PQT@U r   c                 :    | j                   j                        S r   r   rz   r   s    r   r   zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>   s    1443C3CC3H r   r   r<   )r   r   r   r9   c                 :    | j                   j                        S r   r   r   s    r   r   zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>   s    ADD,<,<S,A r   )r5   r   r5   )r   rv   rw   applyr
   r   astyper^   rF   rG   r   rC   rD   )	r   r   r   r   using_array_managerr`   ra   r   rN   s	    ``      r   )test_concat_NaT_dataframes_all_NaT_axis_0z<TestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0   s     BFF8bffX./556UVD6"(()HIa0VRVVRVVT$:)LM>>"AB#:v.Hrvv~&9
 ?+-66HMM%(,.FFHMM#2#q&)
fh/r   c                 ~   t        t        t        j                  t        j                  g      j                  j                  |            }t        t        t        j                  g      j                  j                  |      dg      }t        t        t        j                  t        j                  g      j                  j                  |      t        t        j                  t        j                  g      j                  j                  |      d      }t        ||gd      }t        j                  ||       y )Nr   r"   )r   r   r<   )	r   r   rv   rw   rc   r   r
   rC   rD   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55AA#FG6266(+..::3?!M266266*+..::3?266266*+..::3?
 a0
fh/r   c           	         t        t        j                  t        j                  g      j                  j	                  |      }t        t        d|      gt        d|      ggddg      }t        t        j                  t        j                  t        d|      t        d|      g      }||k7  r|j                  t              }t        ||g      }t        j                  ||       y )Nr   r   r   r   r1   r9   )r   rv   rw   rc   r   r   r	   r   r^   r
   rC   rD   r   s          r   (test_concat_NaT_series_dataframe_all_NaTz;TestDatetimeConcat.test_concat_NaT_series_dataframe_all_NaT  s     '(++77<<C01<C01 a&
 ,3/,3/	
 #:v.H(
fh/r   )__name__
__module____qualname__r   r.   rQ   r[   rj   r|   r   pytestmarkparametrizer   rv   rw   r	   r   r   r    r   r   r   r      sJ   7;0z0#0J1"1 [[TD%=10 20* [[UT5M2[[UT5M2[[Vbffi
.C%DE0 F 3 304 [[UT5M2[[UT5M20 3 30 [[UT5M2[[UT5M20 3 30r   r   c            
          e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zej                   j#                  dd ej$                  ej(                  ej                   j+                  d            g      d        Zd Zy)TestTimezoneConcatc                     t        t        dddd            }t        t        dd            }t        |d   |d	   |d   |d	   gd
      }t        ||gd      }t        j                  ||       y )Nrl   rm   rn   rU   rp   
2012-01-01z
2012-01-02r   r   r^   r_   Trr   r   r   r
   rC   rx   ry   s        r   test_concat_tz_seriesz(TestTimezoneConcat.test_concat_tz_series"  sp    :.0@tPUVW:lL9:1Q41qtQqT2(CAT2
vx0r   c                     t        t        dddd            }t        ddg      }t        |d   |d	   |d   |d	   gd
      }t        ||gd      }t        j                  ||       y )Nrl   rm   rn   rU   rp   r7   r;   r   r   r^   r_   Trr   r   ry   s        r   test_concat_tz_series2z)TestTimezoneConcat.test_concat_tz_series2*  sm    :.0@tPUVWC:1Q41qtQqT2(CAT2
vx0r   c                 v   t        t        ddd      ggd| d      }|d   j                  j                  d      |d<   t        t        ddd      ggd| d      }|d   j                  j                  d      |d<   t	        ||g      }t        j                  ||      }|d   j                  d	| d
k(  sJ y )N  r   M8[]r_   r   rU   r   datetime64[z, UTC]r   r   rc   r   r
   rC   get_finest_unitr>   r   unitunit2r`   ra   r   exp_units          r   test_concat_tz_series3z)TestTimezoneConcat.test_concat_tz_series32  s     HT1a012CvQ-H8;;**51aXdAq123Sq>J1ILL,,U3q	(%%dE2ayKz"@@@@r   c                 v   t        t        ddd      ggd| d      }|d   j                  j                  d      |d<   t        t        ddd      ggd| d      }|d   j                  j                  d      |d<   t	        ||g      }t        j                  ||      }|d   j                  d	| d
k(  sJ y )Nr   r   r   r   r_   r   Europe/Londonr   r   , Europe/London]r   r   s          r   test_concat_tz_series4z)TestTimezoneConcat.test_concat_tz_series4?  s    HT1a012CvQ-H8;;**?;aXdAq123Sq>J1ILL,,_=q	(%%dE2ayKz9I"JJJJr   c                    t        t        ddd      gt        ddd      ggd| d      }|d   j                  j                  d      |d<   t        t        ddd	      ggd| d      }|d   j                  j                  d      |d<   t	        ||g      }t        j                  ||      }|d   j                  d
| dk(  sJ y )Nr   r   r   r   r   r_   r   r   r1   r   r   r   r   s          r   test_concat_tz_series5z)TestTimezoneConcat.test_concat_tz_series5K  s    tQ"#htQ&:%;<c$qM
 8;;**?;aXdAq123Sq>J1ILL,,_=q	(%%dE2ayKz9I"JJJJr   c                    t        t        ddd      ggd| d      }|d   j                  j                  d      |d<   t        t        ddd      gt        ddd	      ggd| d      }|d   j                  j                  d      |d<   t	        ||g      }t        j                  ||      }|d   j                  d
| dk(  sJ y )Nr   r   r   r   r_   r   r   r   r1   r   r   r   r   s          r   test_concat_tz_series6z)TestTimezoneConcat.test_concat_tz_series6Y  s    HT1a012CvQ-H8;;**?;atQ"#htQ&:%;<c%PQN
 1ILL,,_=q	(%%dE2ayKz9I"JJJJr   c                    t        dt        j                  j                               t        dt        j                  j                               g}t        dt        j                  j                               t        dt        j                  j                               g}t	        t        |      t        |      gd      }t        j                  |t        ||z                |j                  dk(  sJ y )	Nr0   r   
2011-02-01r   z
2012-02-01Trr   zdatetime64[ns, tzlocal()])	r	   dateutilr4   tzlocalr
   r   rC   rx   r>   r   rz   r{   r   s       r   test_concat_tz_series_tzlocalz0TestTimezoneConcat.test_concat_tz_series_tzlocalg  s     lx{{':':'<=lx{{':':'<=

 lx{{':':'<=lx{{':':'<=

 F1I.TB
vva!e}5||::::r   c                    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	
             y )Nr0   ro   r   r   z1 dayz2 dayTrr   r^   r_   z2011-03Mr~   z2011-04)r	   rv   	Timedeltar
   r   rC   rx   Periodr   s       r   'test_concat_tz_series_with_datetimelikez:TestTimezoneConcat.test_concat_tz_series_with_datetimelikev  s     l|4l|4
 \\'"BLL$9:F1I.TB
vva!e8'DE YYys+RYYys-KLF1I.TB
vva!e8'DEr   c                    t        t        dd      t        dd      dt        d            }t        |j                  j                         |j                  j                         gd	
      }t        j                  ||       y )N20130102ro   r   20130603CETAB   r9   r   r<   )	r   r	   r)   r
   r   to_framer   rC   rD   )r   rL   rP   s      r   test_concat_tz_framez'TestTimezoneConcat.test_concat_tz_frame  sg    zl;ze4 (
 ceenn&(89B
c3'r   c                 J   t        dd       }t        dd      }t        dd      }t        d|gi      }t        d|gi      }t        d|gi      }t        ||g      j                  d      }t        d||git              }t        j                  ||       t        ||g      j                  d      }t        d||git              }t        j                  ||       t        ||g      j                  d      }t        d||gi      }t        j                  ||       y )	N
2015-01-01r   rU   ESTr   T)dropr_   )r	   r   r
   reset_indexr^   rC   rD   )	r   ts1ts2ts3r-   rL   rP   resultsrN   s	            r   test_concat_multiple_tzsz+TestTimezoneConcat.test_concat_multiple_tzs  s    .//#(#(#(#s$00d0;fsCj1@
gx0#s$00d0;fsCj1@
gx0#s$00d0;fsCj12
gx0r   c                    t        t        t        ddd      t        ddd      t        ddd      gd      g dg dg d	d
      }|j                  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                  ||       y )Nr]   r   r   r1   zM8[ns, US/Pacific]r_   )r   r   Cr8   )rt   r      )rc   r;   cdrc   r;   )z
2014-01-01z
2014-01-02z
2014-01-03)r>   name)r   )r   r   r   r   r?   )
r   r   r   	set_indexr   r   rd   r
   rC   rD   )r   r   exp_idx1exp_idx2rM   rN   r   s          r   test_concat_multiindex_with_tzz1TestTimezoneConcat.test_concat_multiindex_with_tz  s    # q!, q!, q!,
 / %
 \\4+& 6:&

 1,37(((H)=>a-i!m4GcSVZ
 R!
fh/r   c                 l   t        j                  ddg      j                  d      }t        d|i      }t        ||d      }t	        ||gdd      }t        t        |      t        |      z   t         j                  t         j                  gt        |      z   d      }t        j                  ||       y )Nr   r   rU   r   r   T)rA   rs   )	rv   to_datetimer   r   r
   rW   rw   rC   rD   )r   tsr7   r;   r   rN   s         r   test_concat_tz_not_alignedz-TestTimezoneConcat.test_concat_tz_not_aligned  s    ^^QF#//6sBi BR()AT=r(T"X%RVVRVV,<tBx,GH
 	fh/r   t1r   z*GH23037 incorrect dtype when concatenating)reason)marksc                    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                  ||       y )NrU   r   r   r   r9   )r	   r   r
   rv   rw   rC   rD   )	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
fh/r   c           	          t        t        t        ddd            t               g      }t        t        ddd            }t        j                  ||       y )N2000r   rU   )r   r4   )r
   r   r   rC   rD   )r   r   rN   s      r   test_concat_tz_with_emptyz,TestTimezoneConcat.test_concat_tz_with_empty  sI    z&!>?M
 ZeDE
fh/r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   paramrv   rw   xfailr   r   r   r   r   r   r   !  s    11A
KKK;F(1.0B	0 [[FLLkk''G ( 	
000r   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestPeriodConcatc                    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
                  ||       y )N
2015-11-01
2015-12-01r$   r~   
2015-10-01
2016-01-01r   r   z	Period[D]r_   Trr   )r   rv   PeriodIndexr
   rC   rx   ry   s        r   test_concat_period_seriesz*TestPeriodConcat.test_concat_period_series  s{    2>><">SIJ2>><">SIJ1Q41qtQqT2+FAT2
vx0r   c                 2   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 y )Nr   r   r$   r~   r   r   r   r   r   r^   r_   Trr   r   rv   r   r
   rC   rx   r>   ry   s        r   'test_concat_period_multiple_freq_seriesz8TestPeriodConcat.test_concat_period_multiple_freq_series      2>><">SIJ2>><">SIJ1Q41qtQqT2(CAT2
vx0||x'''r   c                 2   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 y )Nr   r   r$   r~   r   r   r   r^   r_   Trr   r  ry   s        r   test_concat_period_other_seriesz0TestPeriodConcat.test_concat_period_other_series	  r  r   c                    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 y )Nr   r   r$   r~   r   r   r^   r_   Trr   )r   rv   r   r   r
   rC   rx   r>   ry   s        r    test_concat_period_other_series2z1TestPeriodConcat.test_concat_period_other_series2  s    2>><">SIJ=,!=>?1Q41qtQqT2(CAT2
vx0||x'''r   c                    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 y )Nr   r   r$   r~   r   r   r   r   r^   r_   Trr   r  ry   s        r    test_concat_period_other_series3z1TestPeriodConcat.test_concat_period_other_series3  s    2>><">SIJC:1Q41qtQqT2(CAT2
vx0||x'''r   N)r   r   r   r   r  r  r  r	  r   r   r   r   r     s    1((((r   r   c                     t        t        j                  d      d      } t        d| i      }t	        ||g      }t        j                  |j                  d d |       t        j                  |j                  dd  |       y )Nr   rg   )r   r   )r   rF   aranger   r
   rC   rD   r   )r   r   r   s      r   test_concat_timedelta64_blockr  #  sh    
ryy}3
/C	FC=	!BRHF&++cr*B/&++bc*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                  ||       y )
Nr7   r   r9   r;   r   r#   r<         ?rB   )
r   r   from_tuplesrv   rw   r
   rF   rG   rC   rD   )leftrightr   rN   s       r   #test_concat_multiindex_datetime_natr  -  s    c1XZ%;%;a[M%JKD	a
..BFFa[/IJE T5M	2FBFFm!$j&<&<q"&&kArvv;=W&XH &(+r   c                    t        dt        j                  dgd      i      }t        dt        j                  dgd      i      }t        dt        j                  dgd      d   t        j                  dgd      d   giddg      }t        ||g      }t	        j
                  ||       t        dt        j                  g d	      i      }t        |j                  d d |j                  d d g      }t	        j
                  ||       t        dt        j                  dgd	      i      }t        |j                  d d |g      }t	        j
                  ||       | szt        dt        j                  dgd      i      }d
}t	        j                  t        |      5  t        ||j                  d d g      }d d d        t	        j
                  ||       y t        dt        j                  dgd      i      j                  dd	i      }t        ||j                  d d g      }t	        j
                  ||       y # 1 sw Y   xY w)Nr   r   r   r_   r  float64r   r9   r^   zDThe behavior of DataFrame concatenation with empty or all-NA entries)match)
r   rv   arrayr
   rC   rD   r   assert_produces_warningFutureWarningr   )r   df_timedf_floatrN   r   msgs         r   test_concat_float_datetime64r  :  s   bhhx7GHIJG#rxxY?@AH&)9:1=#i03	
 !fH Wh'(F&(+#rxx(;<=HW\\"1%x}}Ra'89:F&(+#rxxX>?@HW\\"1%x01F&(+c288VH<L#MNOT''SA 	:WhmmBQ&789F	:
fh/c288VH<L#MNOVV(O
 (--"345
fh/	: 	:s   #II)r   rc   r   numpyrF   r   pandasrv   r   r   r   r   r   r	   r
   r   r   pandas._testing_testingrC   r   r   r   r  r  r  r   r   r   <module>r!     s_         
 
 
 G0 G0TU0 U0p'( '(T0
,$0r   