
    Owgu                    *   d dl mZ d dlmZmZ d dlZd dlZd dlZd dlm	Z	 d dl
mZmZ d dlmZ d dlZd dlmZ  ej(                  dd	      d
        Z G d d      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )annotations)datetime	timedeltaN)using_pyarrow_string_dtype)IS64is_platform_windows)np_version_gt2Tclass)autousescopec              #  ^   K    j                   }t        j                  |j                  |j                  |j
                  g      } fd} j                  j                  }|j                  s|j                  rd  y |D ]%  } ||      rt        d|j                   d|        d  y w)Nc                    | \  j                   j                  j                  }t        fd|D              S )Nc              3  z   K   | ]2  }|j                   v xr |j                   v xr |j                   v  4 y wNname).0xdtypeklassmethods     Z/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexing/test_coercion.py	<genexpr>z<check_comprehensiveness.<locals>.has_test.<locals>.<genexpr>&   s<      
IJEQVVODDFaff4DD
s   8;)nodesessionitemsany)combo	cls_funcsr   r   r   requests     @@@r   has_testz)check_comprehensiveness.<locals>.has_test#   s>    $ufLL((..	 
NW
 
 	
    ztest method is not defined: z, )cls	itertoolsproductklassesdtypesr   configoptionlfkeywordAssertionError__name__)r    r#   combosr!   optsr   s   `     r   check_comprehensivenessr0      s      ++Cs{{CJJEF
 >>  Dww$,, 	  	EE?$23<<.5'J 	 	s   BB-!B-c                  ,    e Zd ZddgZg dZed        Zy)CoercionBaseindexseries)	objectint64float64
complex128bool
datetime64datetime64tztimedelta64periodc                    t        |       r   NotImplementedErrorselfs    r   r   zCoercionBase.methodH   s    !$''r"   N)r-   
__module____qualname__r&   r'   propertyr    r"   r   r2   r2   :   s'    !G
F ( (r"   r2   c                  Z   e Zd ZU dZg Zded<   d Zd Zej                  j                  ddefdefd	efg      d
        Zej                  j                  ddej                  fd	ej                   fdefg      d        Zej                  j                  ddej                   fdej                   fdefg      d        Zej                  j'                  d      d        Zej                  j'                  d      d        Zej                  j'                  d      d        Zej                  j'                  d      d        Zej                  j'                  d      d        Zej                  j'                  d      d        Zej                  j'                  d      d        Zy)TestSetitemCoercionsetitemz	list[str]r&   c                    t        j                  ddg      }t        |j                        |d d  t        j                  ddg      }t	        j
                  ||       y )Na   )pdSerieslistvaluestmassert_series_equal)rB   serexpecteds      r   0test_setitem_series_no_coercion_from_values_listzDTestSetitemCoercion.test_setitem_series_no_coercion_from_values_listT   sH    iia!cjj!A99c1X&
sH-r"   c                   |j                         }d||<   t        j                  g d|      }t        j                  ||       |j
                  j                  |k(  sJ |j                         }d|j                  |<   t        j                  g d|      }t        j                  ||       |j
                  j                  |k(  sJ y)z-test index's coercion triggered by assign key   )rL            rW   r3   N)copyrM   rN   rQ   rR   r3   r   loc)rB   original_seriesloc_keyexpected_indexexpected_dtypetempexps          r    _assert_setitem_index_conversionz4TestSetitemCoercion._assert_setitem_index_conversion]   s     ##% Wii~>
tS)zz>111##%ii~>
tS)zz>111r"   zval,exp_dtyper   rW   皙?c                ,   t        j                  g dt        j                  t        d      t                    }|j
                  j                  t        k(  sJ |t        u r^|j                         }d}d}t        j                  ||      5  t        j                  t        |      5  d|d<   d d d        d d d        y t        j                  t        d      |gz   t              }| j                  ||||       y # 1 sw Y   OxY w# 1 sw Y   y xY w)	NrL   rX   rY   rZ   abcdr   r[   z;Series.__setitem__ treating keys as positions is deprecatedz/index 5 is out of bounds for axis 0 with size 4matchrW   )rM   rN   IndexrO   r5   r3   r   
IndexErrorr\   pytestraisesrQ   assert_produces_warningFutureWarningrd   )rB   val	exp_dtypeobjrb   warn_msgmsg	exp_indexs           r   test_setitem_index_objectz-TestSetitemCoercion.test_setitem_index_objectq   s     iiBHHT&\,PQyy&(((
"88:DTHCCy4  //XN  DG     f!5VDI11#sIyQ	      s$   D
*C>0D
>D	D

Dc                    t        j                  g d      }|j                  j                  t        j
                  k(  sJ t        j                  dddd|g      }| j                  ||||       y )Nrg   r   rL   rX   rY   )rM   rN   r3   r   npr6   rl   rd   )rB   rr   rs   rt   rw   s        r   test_setitem_index_int64z,TestSetitemCoercion.test_setitem_index_int64   sY     ii%yy"((***HHaAq#./	--c3	9Mr"   gffffff@c                    t        j                  g dg d      }|j                  j                  t        j
                  k(  sJ t        j                  dddd|g      }| j                  ||||       y )Nrg   )re    @@ffffff@r[   re   r}   r~   r   )rM   rN   r3   r   rz   r7   rl   rd   )rB   rr   rs   r    rt   rw   s         r   test_setitem_index_float64z.TestSetitemCoercion.test_setitem_index_float64   s\     ii,@Ayy"**,,,HHc3S#67	--c3	9Mr"   Test not implementedreasonc                    t         r   r?   rA   s    r   test_setitem_series_periodz.TestSetitemCoercion.test_setitem_series_period       !!r"   c                    t         r   r?   rA   s    r   test_setitem_index_complex128z1TestSetitemCoercion.test_setitem_index_complex128   r   r"   c                    t         r   r?   rA   s    r   test_setitem_index_boolz+TestSetitemCoercion.test_setitem_index_bool   r   r"   c                    t         r   r?   rA   s    r   test_setitem_index_datetime64z1TestSetitemCoercion.test_setitem_index_datetime64   r   r"   c                    t         r   r?   rA   s    r   test_setitem_index_datetime64tzz3TestSetitemCoercion.test_setitem_index_datetime64tz   r   r"   c                    t         r   r?   rA   s    r   test_setitem_index_timedelta64z2TestSetitemCoercion.test_setitem_index_timedelta64   r   r"   c                    t         r   r?   rA   s    r   test_setitem_index_periodz-TestSetitemCoercion.test_setitem_index_period   r   r"   N)r-   rC   rD   r   r&   __annotations__rU   rd   rn   markparametrizer5   rm   rx   rz   r6   r7   r{   r   xfailr   r   r   r   r   r   r   rF   r"   r   rH   rH   M   s   F GY.2( [[3-!Z3-HRR [[1bhh-#rzz):S&MJNN [[1bjj/C+<sFmLNN [[45" 6" [[45" 6" [[45" 6" [[45" 6" [[45" 6" [[45" 6" [[45" 6"r"   rH   c            	         e Zd ZdgZdZd Zej                  j                  ddde	fdde	fdde	fdde	fg      d	        Z
ej                  j                  dd
ddej                  fdde	fdde	fg      d        Zej                  j                  ddddej                  fdde	fdde	fg      d        Zej                  j                  d ej                   d      df ej                   dd      dfgddg      ej                  j                  d ej                   d       ej                   dd      dg      d               Zd Zej                  j                  d ej&                  dd      ddf ej                   d       ej                   d      e	fdde	fdde	fg      d        Zej                  j+                  d !      d"        Zej                  j+                  d !      d#        Zy$)%TestInsertIndexCoercionr3   insertc                    |j                         }|j                  d|      }t        j                  ||       |j                  |k(  sJ y)z!test coercion triggered by insertrL   N)r\   r   rQ   assert_index_equalr   rB   originalvaluerT   ra   targetress          r   _assert_insert_conversionz1TestInsertIndexCoercion._assert_insert_conversion   s?    mmAu%
c8,yyN***r"   z"insert, coerced_val, coerced_dtyperL   re   Fr   c                    t        j                  t        d      t              }|j                  t        k(  sJ t        j                  d|dddgt              }| j                  ||||       y )Nrh   ri   rK   bcd)rM   rl   rO   r5   r   r   )rB   r   coerced_valcoerced_dtypert   rc   s         r   test_insert_index_objectz0TestInsertIndexCoercion.test_insert_index_object   sY     hhtF|62yyF"""hh[#sC8G&&sFCGr"   )rL   rL   Nc                    |}t        j                  g d|      }||n|}t        j                  d|dddg|      }| j                  ||||       y )Nrg   ri   rL   rX   rY   rZ   )rM   rl   r   )rB   any_int_numpy_dtyper   r   r   r   rt   rc   s           r   test_insert_int_indexz-TestInsertIndexCoercion.test_insert_int_index   sT     $hh|51)6)Bhh;1a0F&&sFCGr"   )rL         ?Nc                    |}t        j                  g d|      }||n|}t        r|dk(  r|dk(  rt        j                  }t        j                  d|dddg|      }| j                  ||||       y )	N)r          @      @      @ri   float32re   r   r   r   r   )rM   rl   r	   rz   r   r   )rB   float_numpy_dtyper   r   r   r   rt   rc   s           r   test_insert_float_indexz/TestInsertIndexCoercion.test_insert_float_index   sq     "hh+59)6)Bey0[C5G JJMhh[#sC8N&&sFCGr"   fill_val,exp_dtype
2012-01-01datetime64[ns]
US/Easterntzdatetime64[ns, US/Eastern]r:   r;   idsinsert_value
Asia/Tokyoc                .   t        j                  g d|j                        j                  d      }|j                  |k(  sJ t        j                  d|j                         dddg|j                        j                  d      }| j                  ||||       |j                  rt        j                  d      }|j                  d	|      }|j                  t              j                  d	|      }|j                  t        k(  sJ t        j                  ||       t        j                  dd
      }|j                  d	|      }|j                  d	|j                  |j                  j                              }|j                  |j                  k(  sJ t        j                  ||       nyt        j                  dd
      }|j                  d	|      }|j                  t              j                  d	|      }|j                  t        k(  sJ t        j                  ||       d	}	|j                  d	|	      }|j                  t              j                  d	|	      }|d	   |	k(  sJ |j                  t        k(  sJ t        j                  ||       y )N)
2011-01-01
2011-01-02
2011-01-03
2011-01-04r   nsr   r   r   r   r   rL   r   )rM   DatetimeIndexr   as_unitr   dater   	Timestampr   astyper5   rQ   r   
tz_convert)
rB   fill_valrs   r   rt   rc   tsresultrT   items
             r   test_insert_index_datetimesz3TestInsertIndexCoercion.test_insert_index_datetimes   s    D

'$- 	 yyI%%%8==?L,U{{
 '$- 	 	&&sHc9E;;l+BZZ2&Fzz&)00B7H>>V+++!!&(3l|<BZZ2&Fzz!R]]399<<%@AH>>SYY...!!&(3 l|<BZZ2&Fzz&)00B7H>>V+++!!&(3At$::f%,,Q5{d"""~~'''
fh/r"   c                   t        j                  g d      }|j                  dk(  sJ t        j                  g d      }| j                  |t        j                  d      |d       t        j
                  d      dfD ]d  }|j                  d|      }|j                  t              j                  d|      }|j                  t        k(  sJ t        j                  ||       f y )N)1 day2 day3 day4 daytimedelta64[ns])r   10 dayr   r   r   r   r   rL   )rM   TimedeltaIndexr   r   	Timedeltar   r   r   r5   rQ   r   )rB   rt   rc   r   r   rT   s         r   test_insert_index_timedelta64z5TestInsertIndexCoercion.test_insert_index_timedelta641  s     DEyy----  NO&&h'.?	
 \\,/3 	4DZZ4(Fzz&)00D9H>>V+++!!&(3		4r"   z2012-01Mfreq	period[M]c                b   t        j                  g dd      }|j                  dk(  sJ t        j                  dd      |t        j                  dd      t        j                  dd      t        j                  dd      g}t	        |t         j                        rIt        j                  |d      }| j                  ||||       | j                  |t        |      ||       y |j                  d	|      }|j                  t              j                  d	|      }t        j                  ||       t	        |t         j                        s`|j                  d	t        |            }|j                  t              j                  d	t        |            }t        j                  ||       y y )
N)2011-012011-022011-032011-04r   r   r   r   r   r   r   r   )rM   PeriodIndexr   Period
isinstancer   strr   r   r5   rQ   r   r   )	rB   r   r   r   rt   datarc   r   rT   s	            r   test_insert_index_periodz0TestInsertIndexCoercion.test_insert_index_periodA  sO    nnIPSTyyK''' IIic*IIic*IIic*IIic*
 fbii(..C0C**3]K **3FS-P ZZ6*Fzz&)00F;H!!&(3 fbll3As6{3::f-44QFD%%fh7	 4r"   r   r   c                    t         r   r?   rA   s    r   test_insert_index_complex128z4TestInsertIndexCoercion.test_insert_index_complex128i  r   r"   c                    t         r   r?   rA   s    r   test_insert_index_boolz.TestInsertIndexCoercion.test_insert_index_boolm  r   r"   N)r-   rC   rD   r&   r   r   rn   r   r   r5   r   rz   r7   r   r   rM   r   r   r   r   r   r   r   r   rF   r"   r   r   r      sy   iGF+ [[,6N#vE6"#v		
HH [[,#rzz"E6"#v		
HH [[, #rzz"E6"#v	

H
H [[R\\,')9:R\\,<8:VW	
 >*   [[	l	#\R\\,<%PRST(0	(0T4  [[,RYYys+YDR\\,'l)CVL6N#v		
88> [[45" 6" [[45" 6"r"   r   c            	      ,   e Zd ZdZ ej
                  g d      Zd Zd Zd Z	e
j                  j                  ddefdefd	efd
efg      d        Ze
j                  j                  ddej                  fdej                   fd	ej"                  fd
efg      d        Ze
j                  j                  ddej                   fdej                   fd	ej"                  fd
efg      d        Ze
j                  j                  ddej"                  fdej"                  fd	ej"                  fd
efg      d        Ze
j                  j                  ddefdefd	efd
ej*                  fg      d        Ze
j                  j                  d ej0                  d      df ej0                  dd      efgddg      d        Ze
j                  j5                  d      d        Ze
j                  j5                  d      d        Ze
j                  j5                  d      d        Ze
j                  j5                  d      d        Ze
j                  j                  d ej>                  d !       e d !       ejB                  d d"      g      d#        Z"d$ Z#y%)&TestWhereCoercionwhereTFTFc                    |j                         }|j                  ||      }t        j                  ||       |j                  |k(  sJ y)z test coercion triggered by whereN)r\   r   rQ   assert_equalr   )rB   r   condrP   rT   ra   r   r   s           r   _assert_where_conversionz*TestWhereCoercion._assert_where_conversionv  s?     ll4(
X&yyN***r"   c                    du r |g d      }nIt        t        t        j                  f      rt	        j
                  d      }n |fddD              } ||d   |d   |d	   |d
   g|      }||fS )NT)TFTTrZ   periodsc              3  (   K   | ]	  }|z    y wr   rF   )r   r   r   s     r   r   z3TestWhereCoercion._construct_exp.<locals>.<genexpr>  s     >A1x<>s   )rW            r   rL   rX   rY   ri   )r   r   rz   r:   rM   
date_range)rB   rt   r   r   rs   rP   rc   s      `   r   _construct_expz TestWhereCoercion._construct_exp  sx    t45F8R]]";<]]8Q7F>>>FSVVAYAq	:)Ls{r"   c                     || j                         } ||d   ||d   |g|      }| j                  |||||       | j                  ||||      \  }}| j                  |||||       y )Nr   rX   ri   )_condr   r   )rB   rt   r   r   rs   r   rc   rP   s           r   	_run_testzTestWhereCoercion._run_test  ss    TZZ SVXs1vx8	J%%c43	J))#uh	J%%c4iHr"   r   rL   re         ?      ?Tc                    |} |t        d      t              }|j                  t        k(  sJ | j                  ||||       y )Nrh   ri   )rO   r5   r   r   rB   index_or_seriesr   rs   r   rt   s         r   test_where_objectz#TestWhereCoercion.test_where_object  s=    
  DL/yyF"""sHeY7r"   c                    |} |g d      }|j                   t        j                  k(  sJ | j                  ||||       y )Nrg   )r   rz   r6   r   rB   r  r   rs   r    r   rt   s          r   test_where_int64z"TestWhereCoercion.test_where_int64  s;    
  L!yyBHH$$$sHeY7r"   zfill_val, exp_dtypec                    |} |g d      }|j                   t        j                  k(  sJ | j                  ||||       y )N)re   皙@ffffff
@皙@)r   rz   r7   r   r  s          r   test_where_float64z$TestWhereCoercion.test_where_float64  s<    
  ()yyBJJ&&&sHeY7r"   c                    |} |g dt         j                        }|j                  t         j                  k(  sJ | j                  ||||       y )N)r         @       @      @      @      @      @ri   )rz   r8   r   r   r  s         r   test_where_complex128z'TestWhereCoercion.test_where_complex128  sB      4BMMJyyBMM)))sHeY7r"   c                    |} |g d      }|j                   t        j                  k(  sJ | j                  ||||       y )Nr   )r   rz   bool_r   r  s         r   test_where_series_boolz(TestWhereCoercion.test_where_series_bool  s<    
  ./yyBHH$$$sHeY7r"   r   r   r   r   r:   r;   r   c                ^   |} |t        j                  ddd      j                  d             }|j                  dk(  sJ |}|dk(  r;||j	                         |j                         fD ]  }| j                  ||||        y ||j	                         fD ]  }| j                  ||||        y )Nr   rZ   Dr   r   r   )rM   r   
_with_freqr   to_pydatetimeto_datetime64r   )rB   r  r   rs   r   rt   fvscalars           r   test_where_datetime64z'TestWhereCoercion.test_where_datetime64  s      BMM,DOOPTUVyy,,,,((r//123C3C3EF >sFE9=> r//12 @sHeY?@r"   r   r   c                    t         r   r?   rA   s    r   test_where_index_complex128z-TestWhereCoercion.test_where_index_complex128  r   r"   c                    t         r   r?   rA   s    r   test_where_index_boolz'TestWhereCoercion.test_where_index_bool  r   r"   c                    t         r   r?   rA   s    r   test_where_series_timedelta64z/TestWhereCoercion.test_where_series_timedelta64  r   r"   c                    t         r   r?   rA   s    r   test_where_series_periodz*TestWhereCoercion.test_where_series_period  r   r"   r   	   daysr  c                   t        j                  dd      }t        j                  g d      }t        j                  d||dg      }|j                  ||      }t        j                  ||       t        j                  dd      }t        j                  |d   |||d	   gt        
      }|d   |u sJ |j                  ||      }t        j                  ||       y )Nz1 DayrZ   r   )TFFTz4 DaysNaTr   r   rY   ri   rL   )rM   timedelta_rangerz   arrayr   r   rQ   r   r:   rl   r5   )rB   r   tdir   rT   r   dtnats          r   test_where_index_timedelta64z.TestWhereCoercion.test_where_index_timedelta64  s       !4xx23$$gueX%FG4'
fh/ eT*88SVUE3q6:&I{e###4'
fh/r"   c                   t        j                  ddd      }|j                  d      }t        j                  g d      }|d   |j
                  dz  z   }t        j                  ||d	   |g      }|j                  ||      }t        j                  ||       t        j                  ||j
                  dz  z   t        
      }|j                  ||      }t        j                  |d   |d	   |d   g      }t        j                  ||       t        j                  d      }t        j                  ||d	   |gt        
      }|j                  ||      }t        j                  ||       t        j                  dd      }	t        j                  |	|d	   |	gt        
      }|j                  ||	      }t        j                  ||       y )N
2016-01-01rY   QSr  Q)FTF
   rL   ri   r   rX   rZ   r(  z
2020-04-21r  )rM   r   	to_periodrz   r-  r   r   r   rQ   r   asarrayr5   r   rl   r   )
rB   dtipir   r   rT   r   othertdpers
             r   test_where_index_periodz)TestWhereCoercion.test_where_index_period  sw   mmL!$?]]3xx,- 22%>>5"Q%"78$&
fh/ 

2",F;$&>>58RUE!H"=>
fh/ \\q!88RAO6:$#
fh/iic*88S"Q%-V<$$
fh/r"   N)$r-   rC   rD   r   rz   r-  r   r   r   r   rn   r   r   r5   r  r6   r7   r8   r  r  r  r  r  rM   r   r  r   r   r"  r$  r&  r   r   r<   r0  r>  rF   r"   r   r   r   r  s   FBHH/0E+	I [[
VsFmff%5f~F8	8 [[
RXXbjj)FBMM+BT6NS8	8 [[
RZZ3

+fbmm-DtVnU8	8 [["-- R]]#6N		
88 [[
VsFmff%5bhh7GH8	8 [[R\\,')9:R\\,<8&A	
 >*  @@ [[45" 6" [[45" 6" [[45" 6" [[45" 6" [[,",,A&	q(9>2>>!S;QR00 0r"   r   c                  <   e Zd ZdZej
                  j                  d      d        Zd Zej
                  j                  dde
fde
fd	e
fd
e
fg      d        Zej
                  j                  ddej                  fdej                  fd	ej                  fd
e
fg      d        Zej
                  j                  ddej                  fdej                  fd	ej                  fd
e
fg      d        Zej
                  j                  d ej$                  d      df ej$                  dd      e
fde
fde
fgg d      d        Zej
                  j                  d ej$                  dd      df ej$                  d      e
f ej$                  dd      dfde
fde
fg      d        Zej
                  j                  dddd	d
 ej*                  ddd       ej$                  dd       ej$                  d       ej,                  d       ej.                  dd       g	      d!        Zej
                  j                  d      d"        Zej
                  j                  d      d#        Zej
                  j                  d      d$        Zej
                  j                  d      d%        Zej
                  j                  d      d&        Zej
                  j                  dddd	d
 ej*                  ddd       ej$                  dd       ej$                  d       ej,                  d       ej.                  dd'      g	      d(        Zej
                  j                  d      d)        Zej
                  j                  d      d*        Z y+),TestFillnaSeriesCoercionfillnar   r   c                    t         r   r?   rA   s    r   test_has_comprehensive_testsz5TestFillnaSeriesCoercion.test_has_comprehensive_tests*  r   r"   c                    |j                         }|j                  |      }t        j                  ||       |j                  |k(  sJ y)z!test coercion triggered by fillnaN)r\   rA  rQ   r   r   r   s          r   _assert_fillna_conversionz2TestFillnaSeriesCoercion._assert_fillna_conversion.  s;    mmE"
X&yyN***r"   zfill_val, fill_dtyperL   re   r  Tc                    |} |dt         j                  ddgt              }|j                  t        k(  sJ  |d|ddgt              }| j	                  ||||       y )NrK   r   r   ri   )rz   nanr5   r   rE  rB   r  r   
fill_dtyper   rt   rc   s          r   test_fillna_objectz+TestFillnaSeriesCoercion.test_fillna_object5  s]    
  S"&&#s+6:yyF"""S(C-V<&&sHc:Fr"   zfill_val,fill_dtypec                    |} |dt         j                  ddg      }|j                  t         j                  k(  sJ  |d|ddg      }| j	                  ||||       y )Nre   r  r  )rz   rG  r   r7   rE  rH  s          r   test_fillna_float64z,TestFillnaSeriesCoercion.test_fillna_float64A  s]    
  S"&&#s+,yyBJJ&&&S(C-.&&sHc:Fr"   c                    |} |dt         j                  ddgt         j                        }|j                  t         j                  k(  sJ  |d|ddg      }| j	                  ||||       y )Nr  r  r  ri   )rz   rG  r8   r   rE  rH  s          r   test_fillna_complex128z/TestFillnaSeriesCoercion.test_fillna_complex128M  sc      VRVVVV4BMMJyyBMM)))VXvv67&&sHc:Fr"   r   r   r   r   r   )r:   r;   r5   r5   r   c                   |} |t        j                  d      t         j                  t        j                  d      t        j                  d      g      }|j                  dk(  sJ  |t        j                  d      |t        j                  d      t        j                  d      g      }| j	                  ||||       y )Nr   r   r   r   )rM   r   r+  r   rE  rH  s          r   test_fillna_datetimez-TestFillnaSeriesCoercion.test_fillna_datetime^  s      \*\*\*	
 yy,,,,\*\*\*	
 	&&sHc:Fr"   r   r   c           	        |}d} |t        j                  d|      t         j                  t        j                  d|      t        j                  d|      g      }|j                  dk(  sJ t	        |dd       |}n|j                  |      } |t        j                  d|      |t        j                  d|      t        j                  d|      g      }| j                  ||||       y )Nr   r   r   r   r   r   r   )rM   r   r+  r   getattrr   rE  )	rB   r  r   rI  r   r   rt   r  rc   s	            r   test_fillna_datetime64tzz1TestFillnaSeriesCoercion.test_fillna_datetime64tz~  s      \b1\b1\b1	
 yy88888T4(0B$$R(B\b1\b1\b1	
 	&&sHc:Fr"   r   rX   leftclosedr(  r2  r  c                >   t        j                  ddd      j                  dt        j                        }t        |j                  t         j                        sJ  ||      } ||d   ||d   |d   |d	   gt        
      }t        }| j                  ||||       y )Nr   g      @rightrU  rL   r   rX   rY   rZ   ri   )
rM   interval_ranger   rz   rG  r   r   IntervalDtyper5   rE  )rB   r  r   iirt   rc   rI  s          r   test_fillna_intervalz-TestFillnaSeriesCoercion.test_fillna_interval  s     sC8??266J"((B$4$4555b!r!uh1r!ubeDFS
&&sHc:Fr"   c                    t         r   r?   rA   s    r   test_fillna_series_int64z1TestFillnaSeriesCoercion.test_fillna_series_int64  r   r"   c                    t         r   r?   rA   s    r   test_fillna_index_int64z0TestFillnaSeriesCoercion.test_fillna_index_int64  r   r"   c                    t         r   r?   rA   s    r   test_fillna_series_boolz0TestFillnaSeriesCoercion.test_fillna_series_bool  r   r"   c                    t         r   r?   rA   s    r   test_fillna_index_boolz/TestFillnaSeriesCoercion.test_fillna_index_bool  r   r"   c                    t         r   r?   rA   s    r   test_fillna_series_timedelta64z7TestFillnaSeriesCoercion.test_fillna_series_timedelta64  r   r"   Wc                >   t        j                  ddd      j                  dt         j                        }t	        |j
                  t         j                        sJ  ||      } ||d   ||d   |d   |d   gt        	      }t        }| j                  ||||       y )
Nr2  rZ   r  r  rL   r   rX   rY   ri   )	rM   period_ranger   r+  r   r   PeriodDtyper5   rE  )rB   r  r   r:  rt   rc   rI  s          r   test_fillna_series_periodz2TestFillnaSeriesCoercion.test_fillna_series_period  s     __\13?FFq"&&Q"((BNN333b!r!uh1r!ubeDFS
&&sHc:Fr"   c                    t         r   r?   rA   s    r   test_fillna_index_timedelta64z6TestFillnaSeriesCoercion.test_fillna_index_timedelta64  r   r"   c                    t         r   r?   rA   s    r   test_fillna_index_periodz1TestFillnaSeriesCoercion.test_fillna_index_period  r   r"   N)!r-   rC   rD   r   rn   r   r   rC  rE  r   r5   rJ  rz   r7   r8   rL  rN  rM   r   rP  rS  Intervalr   r   r\  r^  r`  rb  rd  rf  rk  rm  ro  rF   r"   r   r@  r@  %  s)    F[[45" 6"+ [[
VsFmff%5f~FG	G [[
RZZ3

+fbmm-DtVnUG	G [["-- R]]#6N		
GG [[R\\,')9:R\\,<8&AK&M		
 ?  	G	G, [[R\\,<8:VWR\\,'0R\\,<8:VWK&M	

G
G8 [[BKK1V,BLL,7BLL&BLLa BIIlC(
	
GG [[45" 6" [[45" 6" [[45" 6" [[45" 6" [[45" 6" [[BKK1V,BLL,7BLL&BLLa BIIlC(
	
GG [[45" 6" [[45" 6"r"   r@  c                     e Zd ZU dgZdZi Zded<   ddged<   dd	ged
<   ddged<   ddged<   ddged<    ej                  d       ej                  d      ged<   dD ]3  Z	de	 dZ
 ej                  de	       ej                  de	      gee
<   5  ej                  d       ej                  d      ged<    ej                  ddg      d         Z ej                  g d!      d"        Z ej                  g d!g d#$      d%        Zej                  d&        Zej$                  j'                   e       d'(      d)        Zej$                  j-                  d*g d+d,      ej$                  j-                  d-d.d/gd,      d0               Zej$                  j-                  d*g d1d,      ej$                  j-                  d-g d1d,      d2               Zej$                  j3                  d3(      d4        Zy5)6TestReplaceSeriesCoercionr4   replacezdict[str, list]reprK   r   r5   rZ   rW   r6   re   r
  r7   r  r  r8   TFr9   r   r   r   )UTCr   zdatetime64[ns, ]r   r   r   r   dict)paramsc                    |j                   S r   paramrB   r    s     r   howzTestReplaceSeriesCoercion.how  s    }}r"   )	r5   r6   r7   r8   r9   r   datetime64[ns, UTC]r   r   c                    |j                   S r   rz  r|  s     r   from_keyz"TestReplaceSeriesCoercion.from_key  s     }}r"   )	r5   r6   r7   r8   r9   r:   r;   r;   r<   )rx  r   c                    |j                   S r   rz  r|  s     r   to_keyz TestReplaceSeriesCoercion.to_key  s    2 }}r"   c                    |dk(  r1t        t        | j                  |   | j                  |               }|S |dk(  r3t        j                  | j                  |   | j                  |         }|S t
        )z9
        Object we will pass to `Series.replace`
        rw  r4   r[   )rw  ziprt  rM   rN   
ValueError)rB   r}  r  r  replacers        r   r  z"TestReplaceSeriesCoercion.replacer7  so    
 &=C 2DHHV4DEFH
 	 H_yy&!1(9KLH  r"   zTODO: test is to complexr   c                   t        j                  ddgd      }t        j                  | j                  |   |d      }|j                  |k(  sJ |j                  d      r|j                  d      ry |dv ry |d	k(  r|d
v s	|dk(  rV|dv rRt        r
t               rt        j                  d| d|        t        j                  | j                  |   |d|      }n6t        j                  | j                  |   |d      }|j                  |k(  sJ d}t        }	|j                  |j                  k(  sC|j                  t        k(  s0|j                  j                  dv r|j                  j                  dv rd }	t        j                  |	|      5  |j                  |      }
d d d        t        j                   
|       y # 1 sw Y    xY w)NrY   rZ   xxxr   yyyr3   r   r   )r   r~  r7   r6   r8   )r6   r7   z32-bit platform buggy: z -> )r3   r   r   !Downcasting behavior in `replace`iufcrj   )rM   rl   rN   rt  r   
startswithr   r   rn   skiprq   r5   kindrQ   rp   rs  rR   )rB   r}  r  r  r  r3   rt   rc   rv   warnr   s              r   test_replace_seriesz-TestReplaceSeriesCoercion.test_replace_seriesE  s   !Qe,ii*%eDyyH$$$z*v/@/@/LNN	!f&9$3G)G.05hZtF8LM ))DHHV,EXVC ))DHHV,EFC99&&&1II"yyF"		&(SYY^^v-ED''C8 	+[[*F	+ 	vs+	+ 	+s   G  G	r  )r   r9   r5   r8   r7   r6   )indirectr  r~  r   c                   t        j                  ddgd      }t        j                  | j                  |   |d      }|j                  |k(  sJ t        j                  | j                  |   |d      }|r|dk(  r|j                  dk(  sJ |j                  |k(  sJ d	}	|j                  t
        k7  rt        nd }
t        j                  |
|	
      5  |j                  |      }d d d        t        j                  |       y # 1 sw Y    xY w)NrY   rZ   xyzr   r  r  r5   stringr  rj   )rM   rl   rN   rt  r   r5   rq   rQ   rp   rs  rR   )rB   r}  r  r  r  using_infer_stringr3   rt   rc   rv   r  r   s               r   test_replace_series_datetime_tzz9TestReplaceSeriesCoercion.test_replace_series_datetime_tzl  s     !Qe,ii*%eDyyH$$$ii(EB&H"499(((99&&&1 #		V 3}''C8 	+[[*F	+ 	vs+	+ 	+s   DD)r   r~  r   c                   t        j                  ddgd      }t        j                  | j                  |   |d      }|j                  |k(  sJ t        j                  | j                  |   |d      }t
        }t        |j                  t         j                        rBt        |j                  t         j                        r|j                  |j                        }d }n|j                  |k(  sJ ||k(  rd }d}	t        j                  ||	      5  |j                  |      }
d d d        t        j                  
|       y # 1 sw Y    xY w)	NrY   rZ   r  r   r  r  r  rj   )rM   rl   rN   rt  r   rq   r   DatetimeTZDtyper   rQ   rp   rs  rR   )rB   r}  r  r  r  r3   rt   rc   r  rv   r   s              r   %test_replace_series_datetime_datetimez?TestReplaceSeriesCoercion.test_replace_series_datetime_datetime  s    !Qe,ii*%eDyyH$$$ii(EBcii!3!34IIr)):
 **SYY'CD99&&&!1''C8 	+[[*F	+ 	vs+	+ 	+s   EEr   c                    t         r   r?   rA   s    r   test_replace_series_periodz4TestReplaceSeriesCoercion.test_replace_series_period  r   r"   N)r-   rC   rD   r&   r   rt  r   rM   r   r   keyr   rn   fixturer}  r  r  r  r   skipifr   r  r   r  r  r   r  rF   r"   r   rr  rr    s   jGFC#JCMq6CL3ZC	N(C-CK)R\\,7l9STC# 
t1%BLL"-BLL"-
C
 +bll73\R\\'5JKCV^^FH-. / V^^

 V^^



010 ^^
 
 [[24=WX$, Y$,L [[O  
 [[*,HITX  ,,( [[O  
 [[O  
,,0 [[45" 6"r"   rr  )
__future__r   r   r   r$   numpyrz   rn   pandas._configr   pandas.compatr   r   pandas.compat.numpyr	   pandasrM   pandas._testing_testingrQ   r  r0   r2   rH   r   r   r@  rr  rF   r"   r   <module>r     s    "    5 /   G, -:( (&d", d"N{"l {"|p0 p0fJ"| J"Zz" z"r"   