
    [6gu                    R   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dS )    )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 V  d S |D ]'} ||          st          d|j         d|           (d V  d S )Nc                r    | \  j         j        j        }t          fd|D                       S )Nc              3  N   K   | ]}|j         v o|j         v o|j         v V   d S Nname).0xdtypeklassmethods     b/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pandas/tests/indexing/test_coercion.py	<genexpr>z<check_comprehensiveness.<locals>.has_test.<locals>.<genexpr>&   sQ       
 
IJEQVODDFaf4D
 
 
 
 
 
    )nodesessionitemsany)combo	cls_funcsr   r   r   requests     @@@r   has_testz)check_comprehensiveness.<locals>.has_test#   sa    $ufL(.	 
 
 
 
 
 
NW
 
 
 
 
 	
r   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{CJEEF
 
 
 
 
 > Dw $,  	  	 	E8E?? $J3<JJ5JJ  
 	r   c                  4    e Zd ZddgZg dZed             ZdS )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   :   sJ        !G
 
 
F ( ( X( ( (r   r2   c                  \   e Zd ZU dZg Zded<   d Zd Zej	        
                    ddefdefd	efg          d
             Zej	        
                    ddej        fd	ej        fdefg          d             Zej	        
                    ddej        fdej        fdefg          d             Zej	                            d          d             Zej	                            d          d             Zej	                            d          d             Zej	                            d          d             Zej	                            d          d             Zej	                            d          d             Zej	                            d          d             ZdS )TestSetitemCoercionsetitemz	list[str]r&   c                    t          j        ddg          }t          |j                  |d d <   t          j        ddg          }t	          j        ||           d S )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   sX    ia!!cj!!AAA9c1X&&
sH-----r   c                p   |                                 }d||<   t          j        g d|          }t          j        ||           |j        j        |k    sJ |                                 }d|j        |<   t          j        g d|          }t          j        ||           |j        j        |k    sJ dS )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i~>>>
tS)))z>1111##%%i~>>>
tS)))z>111111r   zval,exp_dtyper   rW   皙?c                L   t          j        g dt          j        t          d          t                              }|j        j        t          k    sJ |t          u r|                                }d}d}t          j
        ||          5  t          j        t          |          5  d|d<   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S t          j        t          d          |gz   t                    }|                     ||||           d S )	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    iBHT&\\,P,P,PQQQy&((((
""88::DTHCCy444    /XNNN    DG                                                                 f!5VDDDI11#sIyQQQQQs6   C)B;/C;B?	?CB?	CCCc                    t          j        g d          }|j        j        t          j        k    sJ t          j        dddd|g          }|                     ||||           d S )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   sh     i%%y"(****HaAq#.//	--c3	9MMMMMr   gffffff@c                    t          j        g dg d          }|j        j        t          j        k    sJ t          j        dddd|g          }|                     ||||           d S )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   st     i,@,@,@AAAy"*,,,,Hc3S#677	--c3	9MMMM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 G. . .2 2 2( [3-!Z3-H R R R [1bh-#rz):S&MJ N N N [1bj/C+<sFmL N N N [455" " 65" [455" " 65" [455" " 65" [455" " 65" [455" " 65" [455" " 65" [455" " 65" " "r   rH   c            	         e Zd ZdgZdZd Zej                            ddde	fdde	fdde	fdde	fg          d	             Z
ej                            dd
ddej        fdde	fdde	fg          d             Zej                            ddddej        fdde	fdde	fg          d             Zej                            d ej        d          df ej        dd          dfgddg          ej                            d ej        d           ej        dd          dg          d                         Zd Ze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                            d !          d"             Zej                            d !          d#             Zd$S )%TestInsertIndexCoercionr3   insertc                    |                                 }|                    d|          }t          j        ||           |j        |k    sJ dS )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   sN    mmAu%%
c8,,,yN******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                    }|                     ||||           d S )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   sp     htF||6222yF""""h[#sC8GGG&&sFCGGGGGr   )rL   rL   Nc                    |}t          j        g d|          }||n|}t          j        d|dddg|          }|                     ||||           d S )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   sn     $h|||5111)6)Bh;1a0FFF&&sFCGGGG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|          }|                     ||||           d S )	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   s     "h+++5999)6)B 	'ey00[C5G5G JMh[#sC8NNN&&sFCGGGGGr   fill_val,exp_dtype
2012-01-01datetime64[ns]
US/Easterntzdatetime64[ns, US/Eastern]r:   r;   idsinsert_value
Asia/Tokyoc                N   t          j        g d|j                                      d          }|j        |k    sJ t          j        d|                                dddg|j                                      d          }|                     ||||           |j        rt          j        d          }|                    d	|          }|	                    t                                        d	|          }|j        t          k    sJ t          j        ||           t          j        dd
          }|                    d	|          }|                    d	|                    |j        j                            }|j        |j        k    sJ t          j        ||           nt          j        dd
          }|                    d	|          }|	                    t                                        d	|          }|j        t          k    sJ t          j        ||           d	}	|                    d	|	          }|	                    t                                        d	|	          }|d	         |	k    sJ |j        t          k    sJ t          j        ||           d S )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DD
 
 

'$-- 	 yI%%%%8==??L,U{
 
 
 '$-- 	 	&&sHc9EEE; 	4l++BZZ2&&Fzz&))00B77H>V++++!&(333l|<<<BZZ2&&Fzz!R]]39<%@%@AAH>SY....!&(3333 l|<<<BZZ2&&Fzz&))00B77H>V++++!&(333At$$::f%%,,Q55{d""""~''''
fh/////r   c                   t          j        g d          }|j        dk    sJ t          j        g d          }|                     |t          j        d          |d           t          j        d          dfD ]m}|                    d|          }|                    t                                        d|          }|j        t          k    sJ t          j
        ||           nd S )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 D DEEy-----  N N NOO&&h''.?	
 	
 	
 \,//3 	4 	4DZZ4((Fzz&))00D99H>V++++!&(3333		4 	4r   z2012-01Mfreq	period[M]c                   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                  rUt          j        |d          }|                     ||||           |                     |t          |          ||           d S |                    d	|          }|                    t                                        d	|          }t          j        ||           t	          |t           j                  su|                    d	t          |                    }|                    t                                        d	t          |                    }t          j        ||           d S d S )
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  s    nIIIPSTTTyK'''' Iic***Iic***Iic***Iic***
 fbi(( 	8.C000C**3]KKK **3FS-PPPPP ZZ6**Fzz&))00F;;H!&(333 fbl33 8As6{{33::f--44QFDD%fh77777	8 8r   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      s	       iGF+ + + [,6N#vE6"#v		
 H H H [,#rz"E6"#v		
 H H H [, #rz"E6"#v	

 
H H
 
H [R\,'')9:R\,<888:VW	
 >*    [	l	#	#\R\,<%P%P%PRST (0 (0	  (0T4 4 4  [,RYys+++YDR\,''l)C)CVL6N#v		
 8 8 8> [455" " 65" [455" " 65" " "r   r   c            	         e Zd ZdZ ej        g d          Zd Zd Zd Z	e
j                            ddefdefd	efd
efg          d             Ze
j                            ddej        fdej        fd	ej        fd
efg          d             Ze
j                            ddej        fdej        fd	ej        fd
efg          d             Ze
j                            ddej        fdej        fd	ej        fd
efg          d             Ze
j                            ddefdefd	efd
ej        fg          d             Ze
j                            d ej        d          df ej        dd          efgddg          d             Ze
j                            d          d             Ze
j                            d          d             Ze
j                            d          d             Ze
j                            d          d             Ze
j                            d ej        d !           e d !           ej!        d d"          g          d#             Z"d$ Z#d%S )&TestWhereCoercionwhereTFTFc                    |                                 }|                    ||          }t          j        ||           |j        |k    sJ dS )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  sO     ll4((
X&&&yN******r   c                    du r |g d          }nOt          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  V  
d S r   rF   )r   r   r   s     r   r   z3TestWhereCoercion._construct_exp.<locals>.<genexpr>  s'      >>A1x<>>>>>>r   )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  s    tU44455FF8R]";<< 	?]8Q777FFU>>>>>>>>>FeSVVAYAq	:)LLLs{r   c                     || j                   } ||d         ||d         |g|          }|                     |||||           |                     ||||          \  }}|                     |||||           d S )Nr   rX   ri   )_condr   r   )rB   rt   r   r   rs   r   rc   rP   s           r   	_run_testzTestWhereCoercion._run_test  s    uTZ  eSVXs1vx8	JJJ%%c43	JJJ))#uh	JJ%%c4iHHHHHr   r   rL   re         ?      ?Tc                    |} |t          d          t                    }|j        t          k    sJ |                     ||||           d S )Nrh   ri   )rO   r5   r   r   rB   index_or_seriesr   rs   r   rt   s         r   test_where_objectz#TestWhereCoercion.test_where_object  sT    
  eDLL///yF""""sHeY77777r   c                    |} |g d          }|j         t          j        k    sJ |                     ||||           d S )Nrg   )r   rz   r6   r   rB   r  r   rs   r!   r   rt   s          r   test_where_int64z"TestWhereCoercion.test_where_int64  sO    
  eLLL!!yBH$$$$sHeY77777r   zfill_val, exp_dtypec                    |} |g d          }|j         t          j        k    sJ |                     ||||           d S )N)re   皙@ffffff
@皙@)r   rz   r7   r   r  s          r   test_where_float64z$TestWhereCoercion.test_where_float64  sR    
  e((())yBJ&&&&sHeY77777r   c                    |} |g dt           j                  }|j        t           j        k    sJ |                     ||||           d S )N)r         @       @      @      @      @      @ri   )rz   r8   r   r   r  s         r   test_where_complex128z'TestWhereCoercion.test_where_complex128  sY      e444BMJJJyBM))))sHeY77777r   c                    |} |g d          }|j         t          j        k    sJ |                     ||||           d S )Nr   )r   rz   bool_r   r  s         r   test_where_series_boolz(TestWhereCoercion.test_where_series_bool  sR    
  e...//yBH$$$$sHeY77777r   r   r   r   r   r:   r;   r   c                   |} |t          j        ddd                              d                     }|j        dk    sJ |}|dk    rF||                                |                                fD ]}|                     ||||           d S ||                                fD ]}|                     ||||           d S )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      eBM,DDDOOPTUUVVy,,,,,(((r//1123C3C3E3EF > >sFE9====> > r//1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          }|                    ||          }t          j        ||           t          j        dd          }t          j	        |d         |||d	         gt          
          }|d         |u sJ |                    ||          }t          j        ||           d S )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44x22233$gueX%FGG4''
fh/// eT**8SVUE3q6:&III{e####4''
fh/////r   c                   t          j        ddd          }|                    d          }t          j        g d          }|d         |j        dz  z   }t          j        ||d	         |g          }|                    ||          }t          j	        ||           t          j
        ||j        dz  z   t          
          }|                    ||          }t          j        |d         |d	         |d         g          }t          j	        ||           t          j        d          }t          j        ||d	         |gt          
          }|                    ||          }t          j	        ||           t          j        dd          }	t          j        |	|d	         |	gt          
          }|                    ||	          }t          j	        ||           d S )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  s   mL!$???]]3x,,,-- 22%>5"Q%"788$&&
fh/// 
2",F;;;$&&>58RUE!H"=>>
fh/// \q!!!8RAO6:::$##
fh///ic**8S"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BH///00E+ + +	 	 	I I I [
VsFmff%5f~F 8 8	 8 [
RXbj)FBM+BT6NS 8 8	 8 [
RZ3
+fbm-DtVnU 8 8	 8 ["- R]#6N		
 8 8 8 [
VsFmff%5bh7GH 8 8	 8 [R\,'')9:R\,<888&A	
 >*   @ @ @ [455" " 65" [455" " 65" [455" " 65" [455" " 65" [,",A&&&		q(9(9(9>2>!S;Q;QR 0 0 0 0 0 0 0 0r   r   c                     e Zd ZdZej                            d          d             Zd Zej        	                    dde
fde
fd	e
fd
e
fg          d             Zej        	                    ddej        fdej        fd	ej        fd
e
fg          d             Zej        	                    ddej        fdej        fd	ej        fd
e
fg          d             Ze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        	                    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        	                    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                            d          d"             Zej                            d          d#             Zej                            d          d$             Zej                            d          d%             Zej                            d          d&             Ze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                            d          d)             Zej                            d          d*             Z d+S ),TestFillnaSeriesCoercionfillnar   r   c                    t           r   r?   rA   s    r   test_has_comprehensive_testsz5TestFillnaSeriesCoercion.test_has_comprehensive_tests*  r   r   c                    |                                 }|                    |          }t          j        ||           |j        |k    sJ dS )z!test coercion triggered by fillnaN)r\   rA  rQ   r   r   r   s          r   _assert_fillna_conversionz2TestFillnaSeriesCoercion._assert_fillna_conversion.  sK    mmE""
X&&&yN******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                    }|                     ||||           d S )NrK   r   r   ri   )rz   nanr5   r   rE  rB   r  r   
fill_dtyper   rt   rc   s          r   test_fillna_objectz+TestFillnaSeriesCoercion.test_fillna_object5  sx    
  eS"&#s+6:::yF""""eS(C-V<<<&&sHc:FFFFFr   zfill_val,fill_dtypec                    |} |dt           j        ddg          }|j        t           j        k    sJ  |d|ddg          }|                     ||||           d S )Nre   r  r  )rz   rG  r   r7   rE  rH  s          r   test_fillna_float64z,TestFillnaSeriesCoercion.test_fillna_float64A  sp    
  eS"&#s+,,yBJ&&&&eS(C-..&&sHc:FFFFFr   c                    |} |dt           j        ddgt           j                  }|j        t           j        k    sJ  |d|ddg          }|                     ||||           d S )Nr  r  r  ri   )rz   rG  r8   r   rE  rH  s          r   test_fillna_complex128z/TestFillnaSeriesCoercion.test_fillna_complex128M  sw      eVRVVV4BMJJJyBM))))eVXvv677&&sHc:FFFF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          }|                     ||||           d S )Nr   r   r   r   )rM   r   r+  r   rE  rH  s          r   test_fillna_datetimez-TestFillnaSeriesCoercion.test_fillna_datetime^  s      e\**\**\**	
 
 y,,,,,e\**\**\**	
 
 	&&sHc:FFFF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|                    |          } |t          j        d|          |t          j        d|          t          j        d|          g          }|                     ||||           d S )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     e\b111\b111\b111	
 
 y888888T4((0BB$$R((Be\b111\b111\b111	
 
 	&&sHc:FFFFFr   r   rX   leftclosedr(  r2  r  c                d   t          j        ddd                              dt          j                  }t          |j        t           j                  sJ  ||          } ||d         ||d         |d         |d	         gt          
          }t          }| 	                    ||||           d S )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88??26JJ"(B$455555ob!!or!uh1r!ubeDFSSS
&&sHc:FFFF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                d   t          j        ddd                              dt           j                  }t	          |j        t           j                  sJ  ||          } ||d         ||d         |d         |d         gt          	          }t          }|                     ||||           d S )
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Q"(BN33333ob!!or!uh1r!ubeDFSSS
&&sHc:FFFF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5" " 65"+ + + [
VsFmff%5f~F G G	 G [
RZ3
+fbm-DtVnU G G	 G ["- R]#6N		
 G G G [R\,'')9:R\,<888&AK&M		
 ?>>  	 	G G	 	G, [R\,<888:VWR\,''0R\,<888:VWK&M	

 
G G
 
G8 [BK1V,,,BL,777BL&&BLa   BIlC((
	
 G G G [455" " 65" [455" " 65" [455" " 65" [455" " 65" [455" " 65" [BK1V,,,BL,777BL&&BLa   BIlC((
	
 G G G [455" " 65" [455" " 65" " "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 ]/Z	de	 dZ
 ej        de	           ej        de	          gee
<   0 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                             e            d'(          d)             Zej                            d*g d+d,          ej                            d-d.d/gd,          d0                         Zej                            d*g d1d,          ej                            d-g d1d,          d2                         Zej                            d3(          d4             Zd5S )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    r4t          t          | j        |         | j        |                             }n:|dk    r-t          j        | j        |         | j        |                   }nt
          |S )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  sl    
 &==C 2DHV4DEEFFHHH__y&!1(9KLLLHHr   zTODO: test is to complexr   c                b   t          j        ddgd          }t          j        | j        |         |d          }|j        |k    sJ |                    d          r|                    d          rd S |dv rd S |d	k    r|d
v s
|dk    rW|dv rSt          rt                      rt          j	        d| d|            t          j        | j        |         |d|          }n/t          j        | j        |         |d          }|j        |k    sJ d}t          }	|j        |j        k    s,|j        t          k    s|j        j        dv r|j        j        dv rd }	t          j        |	|          5  |                    |          }
d d d            n# 1 swxY w Y   t          j        |
|           d S )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,,,i*%eDDDyH$$$$z** 	v/@/@/L/L 	FNNNF	!!f&9&9$$3G)G)G N.00 NLhLLFLLMMM )DHV,EXVVVCC )DHV,EFFFC9&&&&1I""yF""	&((SY^v-E-ED'C888 	+ 	+[[**F	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	vs+++++s   -FFF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 n|j        |k    sJ d	}	|j        t
          k    rt          nd }
t          j        |
|	
          5  |	                    |          }d d d            n# 1 swxY w Y   t          j
        ||           d S )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  sU    !Qe,,,i*%eDDDyH$$$$i(EBBB 	'&H"4"49(((((9&&&&1 #	V 3 3}}'C888 	+ 	+[[**F	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	vs+++++s   >C  C$'C$)r   r~  r   c                z   t          j        ddgd          }t          j        | j        |         |d          }|j        |k    sJ t          j        | j        |         |d          }t
          }t          |j        t           j                  r<t          |j        t           j                  r|                    |j                  }d }n|j        |k    sJ ||k    rd }d}	t          j
        ||	          5  |                    |          }
d d d            n# 1 swxY w Y   t          j        |
|           d S )	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,,,i*%eDDDyH$$$$i(EBBBci!344 		Ir):
 :
 		 **SY''CDD9&&&&!!1'C888 	+ 	+[[**F	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	vs+++++s   9DD"D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    sV        jGFC#JCMq6CL3ZC	N(C-CK)R\,77l9S9STC# 
 
%%%%BL"---BL"---
C
 +bl733\R\'5J5JKCV^FH-...  /. V^

 

 

     V^

 

 



 

 

  0 1 0 ^
 
 ^
 [2244=WXX$, $, YX$,L [OOO   
 [*,HITX   , ,  ,( [OOO   
 [OOO   
, ,  ,0 [455" " 65" " "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 5 5 5 5 5        / . . . . .           G,,,  -,:( ( ( ( ( ( ( (&d" d" d" d" d", d" d" d"N{" {" {" {" {"l {" {" {"|p0 p0 p0 p0 p0 p0 p0 p0fJ" J" J" J" J"| J" J" J"Zz" z" z" z" z" z" z" z" z" z"r   