
    bMhPT                         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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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       j/var/www/html/test/jupyter/venv/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          }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                              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: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OOQT"XC@@@iii(555iii(555c
+++  
 )
 
 
 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   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JJ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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{   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        ||           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   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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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        ||           d S )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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   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        ||           d S )	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     RVRV,4441c(##,,,-	,20N0N0N/OPa&
 
 
 ,2...,2...	
 
 a000
fh/////r   tz1tz2item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    rY|                    t                    }|t          j        u r1|s/t          j	        |j
        d<   nt          j	        |j
        d d	df<   t          j        ||           d S )
Nc                 8    | 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@U r   c                 8    | j                                       S r   r   rz   r   s    r   r   zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>   s    143C3CC3H3H 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   )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*    BF8bfX.//556U6U6U6UVVD6""(()H)H)H)HIIa000VRVRVT$:)))LLLMM>>"A"A"A"ABB#::v..Hrv~~&9~
 ?+-6HM%((,.FHM#2#q&)
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   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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   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001<C00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      s       7 7 7  ;0 ;0 ;0z0 0 0#0 #0 #0J1 1 1"1 1 1 [TD%=110 0 210* [UT5M22[UT5M22[Vbfii
.C.C%DEE0 0 FE 32 3204 [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	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        ||           d S )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"  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0r   c                    t          t          dddd                    }t          ddg          }t          |d         |d	         |d         |d	         gd
          }t          ||gd          }t          j        ||           d S )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*  s    :.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00r   c                    t          t          ddd          ggd| d          }|d         j                            d          |d<   t          t          ddd          ggd| d          }|d         j                            d          |d<   t	          ||g          }t          j        ||          }|d         j        d	| d
k    sJ d S )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012----HHH8;**511aXdAq1123>>>>JJJ1IL,,U33q	((%dE22ay"@"@"@"@@@@@@@r   c                    t          t          ddd          ggd| d          }|d         j                            d          |d<   t          t          ddd          ggd| d          }|d         j                            d          |d<   t	          ||g          }t          j        ||          }|d         j        d	| d
k    sJ d S )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012----HHH8;**?;;aXdAq1123>>>>JJJ1IL,,_==q	((%dE22ay"J"J"J"JJJJJJJr   c                    t          t          ddd          gt          ddd          ggd| d          }|d         j                            d          |d<   t          t          ddd	          ggd| d          }|d         j                            d          |d<   t	          ||g          }t          j        ||          }|d         j        d
| dk    sJ d S )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&:&:%;<M$MMM
 
 
 8;**?;;aXdAq1123>>>>JJJ1IL,,_==q	((%dE22ay"J"J"J"JJJJJJJr   c                    t          t          ddd          ggd| d          }|d         j                            d          |d<   t          t          ddd          gt          ddd	          ggd| d          }|d         j                            d          |d<   t	          ||g          }t          j        ||          }|d         j        d
| dk    sJ d S )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012----HHH8;**?;;atQ""#htQ&:&:%;<N%NNN
 
 
 1IL,,_==q	((%dE22ay"J"J"J"JJJJJJJr   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-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{':':'<'<===

 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 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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   rC   rD   )r   rL   rP   s      r   test_concat_tz_framez'TestTimezoneConcat.test_concat_tz_frame  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   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  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          t          ddd          t          ddd          t          ddd          gd          g dg dg 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   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  sP   # q!,, q!,, q!,,
 /   %__YYYY 
 
 \\4+&& 666:&
 
 

 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   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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 )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GG
fh/////r   c           	          t          t          t          ddd                    t                      g          }t          t          ddd                    }t          j        ||           d S )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  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   r   r   r   r   r   paramrv   rw   xfailr   r   r   r   r   r   r   !  sZ       1 1 11 1 1A A A
K 
K 
KK K KK K K; ; ;F F F( ( (1 1 1.0 0 0B	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 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_   Trr   )r   rv   PeriodIndexr
   rC   rx   ry   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_   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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 d S )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                 P   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 d S )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IIJJ=,!=>>??1Q41qtQqT2(CCCAT222
vx000|x''''''r   c                 6   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^   r_   Trr   r  ry   s        r    test_concat_period_other_series3z1TestPeriodConcat.test_concat_period_other_series3  s    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   r   r     s_        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   )r   r   )r   rF   aranger   r
   rC   rD   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<         ?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%JKKKD	a
.BFa[/IJJ  E T5M	222FBFm!$$j&<q"&kArv;=W&X&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        ||           | st          dt          j        dgd          i          }d
}t	          j        t          |          5  t          ||j        d d         g          }d d d            n# 1 swxY w Y   t	          j        ||           d S t          dt          j        dgd          i          	                    dd	i          }t          ||j        d d         g          }t	          j        ||           d S )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   bhx7GHHHIJJG#rxY???@AAH&)9:::1=#i0003	
 !f  H Wh'((F&(+++#rx(;;;<==HW\"1"%x}RaR'89::F&(+++#rxX>>>?@@HW\"1"%x011F&(+++ 0c28VH<L#M#M#MNOOT'SAAA 	: 	:WhmBQB&7899F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:
fh/////c28VH<L#M#M#MNOOVV(O
 
 (-"3455
fh/////s   G..G25G2)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0 G0 G0 G0 G0 G0 G0TU0 U0 U0 U0 U0 U0 U0 U0p'( '( '( '( '( '( '( '(T0 0 0
, 
, 
,$0 $0 $0 $0 $0r   