U
    ùQ”i[x  ã                   @  sÐ   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	m
Z
 d dlZd dlmZ ejddd�dd	„ ƒZG d
d„ dƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é    )Úannotations)ÚdatetimeÚ	timedeltaN)ÚIS64Úis_platform_windowsTÚclass)ZautouseZscopec                 #  sv   ˆ j }t |j|j|jg¡}‡ fdd„}ˆ jj}|js<|j	rDd V  n.|D ]"}||ƒsHt
d|j› d|› �ƒ‚qHd V  d S )Nc                   s.   | \‰‰ ‰ˆj jj}t‡ ‡‡fdd„|D ƒƒS )Nc                 3  s,   | ]$}ˆ|j ko"ˆ |j ko"ˆ|j kV  qd S ©N©Úname©Ú.0Úx©ÚdtypeÚklassÚmethod© úG/tmp/pip-unpacked-wheel-58ppya8e/pandas/tests/indexing/test_coercion.pyÚ	<genexpr>#   s    z<check_comprehensiveness.<locals>.has_test.<locals>.<genexpr>)ÚnodeÚsessionÚitemsÚany)ÚcomboZ	cls_funcs©Úrequestr   r   Úhas_test    s
    

ÿz)check_comprehensiveness.<locals>.has_testztest method is not defined: z, )ÚclsÚ	itertoolsÚproductÚklassesÚdtypesr   ÚconfigÚoptionÚlfÚkeywordÚAssertionErrorÚ__name__)r   r   Zcombosr   Úoptsr   r   r   r   Úcheck_comprehensiveness   s    ÿr)   c                	   @  s6   e Zd ZddgZddddddd	d
dg	Zedd„ ƒZdS )ÚCoercionBaseÚindexÚseriesÚobjectÚint64Úfloat64Ú
complex128ÚboolÚ
datetime64Údatetime64tzÚtimedelta64Zperiodc                 C  s   t | ƒ‚d S r   ©ÚNotImplementedError©Úselfr   r   r   r   E   s    zCoercionBase.methodN)r'   Ú
__module__Ú__qualname__r    r!   Úpropertyr   r   r   r   r   r*   7   s   ÷r*   c                   @  sH  e Zd ZU dZg Zded< dd„ Zdd„ Zej	 
dd	efd
efdefg¡dd„ ƒZej	 
dd
ejfdejfd	efg¡dd„ ƒZej	 
dd
ejfdejfd	efg¡dd„ ƒZej	jdd�dd„ ƒZej	jdd�dd„ ƒZej	jdd�dd„ ƒZej	jdd�dd„ ƒZej	jdd�dd„ ƒZej	jdd�dd „ ƒZej	jdd�d!d"„ ƒZd#S )$ÚTestSetitemCoercionÚsetitemz	list[str]r    c                 C  s>   t  ddg¡}t|jƒ|d d …< t  ddg¡}t ||¡ d S )NÚaé   )ÚpdÚSeriesÚlistÚvaluesÚtmÚassert_series_equal)r8   ZserÚexpectedr   r   r   Ú0test_setitem_series_no_coercion_from_values_listQ   s    zDTestSetitemCoercion.test_setitem_series_no_coercion_from_values_listc                 C  sŽ   |  ¡ }d||< tjdddddg|d�}t ||¡ |jj|ksDt‚|  ¡ }d|j|< tjdddddg|d�}t ||¡ |jj|ksŠt‚dS )z-test index's coercion triggered by assign keyé   r?   é   é   é   ©r+   N)	Úcopyr@   rA   rD   rE   r+   r   r&   Úloc)r8   Zoriginal_seriesZloc_keyZexpected_indexÚexpected_dtypeÚtempÚexpr   r   r   Ú _assert_setitem_index_conversionZ   s    
z4TestSetitemCoercion._assert_setitem_index_conversionzval,exp_dtyper   rH   çš™™™™™ñ?c              	   C  sŠ   t jddddgtdƒd�}|jjtks*t‚|tkrb| ¡ }d}t	j
||d�� d	|d	< W 5 Q R X n$t  tdƒ|g ¡}|  ||||¡ d S )
Nr?   rI   rJ   rK   ÚabcdrL   z/index 5 is out of bounds for axis 0 with size 4)ÚmatchrH   )r@   rA   rB   r+   r   r-   r&   Ú
IndexErrorrM   ÚpytestZraisesÚIndexrR   )r8   ÚvalÚ	exp_dtypeÚobjrP   ÚmsgÚ	exp_indexr   r   r   Útest_setitem_index_objectn   s    z-TestSetitemCoercion.test_setitem_index_objectc                 C  sL   t  ddddg¡}|jjtjks$t‚t  dddd|g¡}|  ||||¡ d S )Nr?   rI   rJ   rK   r   )	r@   rA   r+   r   Únpr.   r&   rX   rR   )r8   rY   rZ   r[   r]   r   r   r   Útest_setitem_index_int64~   s    z,TestSetitemCoercion.test_setitem_index_int64gffffff@c                 C  sX   t jddddgddddgd	�}|jjtjks0t‚t  dddd|g¡}|  ||||¡ d S )
Nr?   rI   rJ   rK   rS   gÍÌÌÌÌÌ @gÍÌÌÌÌÌ@gffffff@rL   )	r@   rA   r+   r   r_   r/   r&   rX   rR   )r8   rY   rZ   r   r[   r]   r   r   r   Útest_setitem_index_float64ˆ   s    z.TestSetitemCoercion.test_setitem_index_float64úTest not implemented©Úreasonc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_setitem_series_period’   s    z.TestSetitemCoercion.test_setitem_series_periodc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_setitem_index_complex128–   s    z1TestSetitemCoercion.test_setitem_index_complex128c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_setitem_index_boolš   s    z+TestSetitemCoercion.test_setitem_index_boolc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_setitem_index_datetime64ž   s    z1TestSetitemCoercion.test_setitem_index_datetime64c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_setitem_index_datetime64tz¢   s    z3TestSetitemCoercion.test_setitem_index_datetime64tzc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_setitem_index_timedelta64¦   s    z2TestSetitemCoercion.test_setitem_index_timedelta64c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_setitem_index_periodª   s    z-TestSetitemCoercion.test_setitem_index_periodN)r'   r9   r:   r   r    Ú__annotations__rG   rR   rW   ÚmarkÚparametrizer-   rV   r^   r_   r.   r/   r`   ra   Úxfailre   rf   rg   rh   ri   rj   rk   r   r   r   r   r<   J   sB   
	 ÿ
 ÿ
 ÿ






r<   c                	   @  s–  e Zd ZdgZdZdd„ Zej ddde	fdde	fdde	fd	d	e	fg¡d
d„ ƒZ
ej ddddejfdde	fd	d	e	fg¡dd„ ƒZej ddddejfdde	fd	d	e	fg¡dd„ ƒZejjde d¡dfejddd�dfgddgd�ej de d¡ejddd�dg¡dd„ ƒƒZdd „ Zej dejd!d"d#�d!d$fe d¡e d¡e	fdde	fd	d	e	fg¡d%d&„ ƒZejjd'd(�d)d*„ ƒZejjd'd(�d+d,„ ƒZd-S ).ÚTestInsertIndexCoercionr+   Úinsertc                 C  s2   |  ¡ }| d|¡}t ||¡ |j|ks.t‚dS )z!test coercion triggered by insertr?   N)rM   rq   rD   Úassert_index_equalr   r&   ©r8   ÚoriginalÚvaluerF   rO   ÚtargetÚresr   r   r   Ú_assert_insert_conversion³   s    z1TestInsertIndexCoercion._assert_insert_conversionz"insert, coerced_val, coerced_dtyper?   rS   Fr   c                 C  sD   t  tdƒ¡}|jtkst‚t  d|dddg¡}|  ||||¡ d S )NrT   r>   ÚbÚcÚd)r@   rX   rB   r   r-   r&   rx   )r8   rq   Úcoerced_valÚcoerced_dtyper[   rQ   r   r   r   Útest_insert_index_objectº   s    
z0TestInsertIndexCoercion.test_insert_index_object)r?   r?   Nc                 C  sV   |}t jddddg|d�}|d k	r&|n|}t jd|dddg|d�}|  ||||¡ d S )Nr?   rI   rJ   rK   ©r   ©r@   rX   rx   )r8   Zany_int_numpy_dtyperq   r|   r}   r   r[   rQ   r   r   r   Útest_insert_int_indexÊ   s
    z-TestInsertIndexCoercion.test_insert_int_index)r?   ç      ð?Nc                 C  sV   |}t jddddg|d�}|d k	r&|n|}t jd|dddg|d�}|  ||||¡ d S )Nr‚   g       @g      @g      @r   r€   )r8   Zfloat_numpy_dtyperq   r|   r}   r   r[   rQ   r   r   r   Útest_insert_float_indexÝ   s
    z/TestInsertIndexCoercion.test_insert_float_indexúfill_val,exp_dtypeú
2012-01-01údatetime64[ns]ú
US/Eastern©Útzúdatetime64[ns, US/Eastern]r2   r3   ©ÚidsÚinsert_valueú
Asia/Tokyoc           
      C  s†  t jddddg|jd�}|j|ks&t‚t jd| ¡ dddg|jd�}|  ||||¡ |jrêt  d¡}| d|¡}| 	t
¡ d|¡}|jt
ks�t‚t ||¡ t jddd�}| d|¡}| d| |jj¡¡}|j|jksÜt‚t ||¡ nHt jddd�}| d|¡}| 	t
¡ d|¡}|jt
k�s&t‚t ||¡ d}	| d|	¡}| 	t
¡ d|	¡}|d |	k�sft‚|jt
k�svt‚t ||¡ d S )	Nú
2011-01-01z
2011-01-02ú
2011-01-03ú
2011-01-04rˆ   r…   r?   rŽ   )r@   ZDatetimeIndexr‰   r   r&   Údaterx   Ú	Timestamprq   Úastyper-   rD   rr   Ú
tz_convert)
r8   Úfill_valrZ   r�   r[   rQ   ÚtsÚresultrF   Úitemr   r   r   Útest_insert_index_datetimesð   s@    
 ÿþ
z3TestInsertIndexCoercion.test_insert_index_datetimesc                 C  sš   t  ddddg¡}|jdks t‚t  dddddg¡}|  |t  d¡|d¡ t  d¡dfD ]<}| d|¡}| t	¡ d|¡}|jt	ksˆt‚t
 ||¡ qXd S )	Nú1 dayú2 dayz3 dayz4 dayútimedelta64[ns]z10 dayr…   r?   )r@   ÚTimedeltaIndexr   r&   rx   Ú	Timedeltar“   rq   r”   r-   rD   rr   )r8   r[   rQ   r™   r˜   rF   r   r   r   Útest_insert_index_timedelta64&  s       ÿz5TestInsertIndexCoercion.test_insert_index_timedelta64z2012-01ÚM©Úfreqú	period[M]c           	      C  s  t jddddgdd�}|jdks$t‚t jddd�|t jddd�t jddd�t jddd�g}t|t jƒršt j|dd�}|  ||||¡ |  |t|ƒ||¡ nj| d|¡}| 	t
¡ d|¡}t ||¡ t|t jƒ�s| dt|ƒ¡}| 	t
¡ dt|ƒ¡}t ||¡ d S )	Nz2011-01z2011-02z2011-03z2011-04r¡   r¢   r¤   r   )r@   ÚPeriodIndexr   r&   ÚPeriodÚ
isinstancerx   Ústrrq   r”   r-   rD   rr   r“   )	r8   rq   r|   r}   r[   ÚdatarQ   r˜   rF   r   r   r   Útest_insert_index_period6  s&    
ûz0TestInsertIndexCoercion.test_insert_index_periodrb   rc   c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_insert_index_complex128^  s    z4TestInsertIndexCoercion.test_insert_index_complex128c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_insert_index_boolb  s    z.TestInsertIndexCoercion.test_insert_index_boolN)r'   r9   r:   r    r   rx   rW   rm   rn   r-   r~   r_   r/   r�   rƒ   r@   r“   rš   r    r¦   rª   ro   r«   r¬   r   r   r   r   rp   ¯   sp   üþ	

üþ	


üþ	

þúþ*üþ	

rp   c                	   @  s   e Zd ZdZe ddddg¡Zdd„ Zdd„ Zdd	„ Z	e
j d
defdefdefdefg¡dd„ ƒZe
j d
dejfdejfdejfdefg¡dd„ ƒZe
j ddejfdejfdejfdefg¡dd„ ƒZe
j d
dejfdejfdejfdefg¡dd„ ƒZe
j d
defdefdefdejfg¡dd„ ƒZe
jjd
e d¡dfejddd�efgddgd�d d!„ ƒZe
jjd"d#�d$d%„ ƒZe
jjd"d#�d&d'„ ƒZe
jjd"d#�d(d)„ ƒZe
jjd"d#�d*d+„ ƒZe
j d,ejd-d.�e d-d.�e !d-d/¡g¡d0d1„ ƒZ"d2d3„ Z#d4S )5ÚTestWhereCoercionÚwhereTFc                 C  s2   |  ¡ }| ||¡}t ||¡ |j|ks.t‚dS )z test coercion triggered by whereN)rM   r®   rD   Úassert_equalr   r&   )r8   rt   ÚcondrC   rF   rO   rv   rw   r   r   r   Ú_assert_where_conversionk  s    z*TestWhereCoercion._assert_where_conversionc                   s|   ˆ dkr|ddddgƒ}n6t ˆ ttjfƒr:tjˆ dd�}n|‡ fdd„dD ƒƒ}||d |d	 |d
 |d g|d�}||fS )NTFrK   ©Úperiodsc                 3  s   | ]}|ˆ  V  qd S r   r   r   ©r–   r   r   r   z  s     z3TestWhereCoercion._construct_exp.<locals>.<genexpr>)rH   é   é   é   r   r?   rI   rJ   r   )r§   r   r_   r2   r@   Ú
date_range)r8   r[   r   r–   rZ   rC   rQ   r   r´   r   Ú_construct_expt  s    $z TestWhereCoercion._construct_expc                 C  sb   || j ƒ}||d ||d |g|d�}|  |||||¡ |  ||||¡\}}|  |||||¡ d S )Nr   rI   r   )Ú_condr±   r¹   )r8   r[   r–   r   rZ   r°   rQ   rC   r   r   r   Ú	_run_test  s
    
zTestWhereCoercion._run_testr„   r?   rS   ù      ð?      ð?c                 C  s2   |}|t dƒƒ}|jtkst‚|  ||||¡ d S )NrT   )rB   r   r-   r&   r»   ©r8   Úindex_or_seriesr–   rZ   r   r[   r   r   r   Útest_where_objectˆ  s    z#TestWhereCoercion.test_where_objectc                 C  s8   |}|ddddgƒ}|j tjks$t‚|  ||||¡ d S )Nr?   rI   rJ   rK   )r   r_   r.   r&   r»   ©r8   r¾   r–   rZ   r   r   r[   r   r   r   Útest_where_int64’  s    z"TestWhereCoercion.test_where_int64zfill_val, exp_dtypec                 C  s8   |}|ddddgƒ}|j tjks$t‚|  ||||¡ d S )NrS   çš™™™™™@çffffff
@çš™™™™™@)r   r_   r/   r&   r»   rÀ   r   r   r   Útest_where_float64�  s    z$TestWhereCoercion.test_where_float64c                 C  s>   |}|ddddgt jd�}|jt jks*t‚|  ||||¡ d S )Nr¼   ù       @       @ù      @      @ù      @      @r   )r_   r0   r   r&   r»   r½   r   r   r   Útest_where_complex128¨  s    
z'TestWhereCoercion.test_where_complex128c                 C  s:   t j}|ddddgƒ}|jtjks&t‚|  ||||¡ d S )NTF)r@   rA   r   r_   Úbool_r&   r»   )r8   r–   rZ   r   r[   r   r   r   Útest_where_series_bool·  s    z(TestWhereCoercion.test_where_series_boolr…   r†   r‡   rˆ   r2   r3   r‹   c                 C  sˆ   |}|t jdddd� d ¡ƒ}|jdks,t‚|}|dkrb|| ¡ | ¡ fD ]}|  ||||¡ qJn"|| ¡ fD ]}|  ||||¡ qnd S )Nr�   rK   ÚD©r³   r£   r†   )r@   r¸   Z
_with_freqr   r&   Zto_pydatetimeZto_datetime64r»   )r8   r¾   r–   rZ   r   r[   ÚfvZscalarr   r   r   Útest_where_datetime64Â  s    	z'TestWhereCoercion.test_where_datetime64rb   rc   c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_where_index_complex128Ù  s    z-TestWhereCoercion.test_where_index_complex128c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_where_index_boolÝ  s    z'TestWhereCoercion.test_where_index_boolc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_where_series_timedelta64á  s    z/TestWhereCoercion.test_where_series_timedelta64c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_where_series_periodå  s    z*TestWhereCoercion.test_where_series_periodru   é	   ©ÚdaysrÌ   c                 C  s    t jddd�}t ddddg¡}t  d||dg¡}| ||¡}t ||¡ t dd¡}t j	|d	 |||d
 gt
d�}|d |ks„t‚| ||¡}t ||¡ d S )Nz1 DayrK   r²   TFz4 DaysÚNaTÚnsr   rJ   r   r?   )r@   Ztimedelta_ranger_   Úarrayrž   r®   rD   rr   r2   rX   r-   r&   )r8   ru   Ztdir°   rF   r˜   Zdtnatr   r   r   Útest_where_index_timedelta64é  s    z.TestWhereCoercion.test_where_index_timedelta64c           
      C  s0  t jdddd�}| d¡}t dddg¡}|d |jd	  }t  ||d
 |g¡}| ||¡}t 	||¡ tj
||jd	  td�}| ||¡}t  |d |d
 |d g¡}t 	||¡ t jdd�}t j||d
 |gtd�}| ||¡}t 	||¡ t  dd¡}	t j|	|d
 |	gtd�}| ||	¡}t 	||¡ d S )Nú
2016-01-01rJ   ZQSrÍ   ÚQFTéÿÿÿÿé
   r?   r   r   rI   rK   rÕ   z
2020-04-21rÌ   )r@   r¸   Z	to_periodr_   rÙ   r£   r¥   r®   rD   rr   Zasarrayr-   rŸ   rX   r¦   )
r8   ZdtiÚpir°   ru   rF   r˜   ÚotherÚtdZperr   r   r   Útest_where_index_periodü  s&    
z)TestWhereCoercion.test_where_index_periodN)$r'   r9   r:   r   r_   rÙ   rº   r±   r¹   r»   rW   rm   rn   r-   r¿   r.   r/   r0   rÁ   rÅ   rÉ   rÊ   rË   r@   r“   rÏ   ro   rÐ   rÑ   rÒ   rÓ   rŸ   r   r4   rÚ   râ   r   r   r   r   r­   g  sp   		þ
 þ
 þ
üþ	
þ
þú




 ÿ
r­   c                   @  sž  e Zd ZdZejjdd�dd„ ƒZdd„ Zej 	dd	e
fd
e
fde
fde
fg¡dd„ ƒZej 	dd	ejfd
ejfdejfde
fg¡dd„ ƒZej 	dd	ejfd
ejfdejfde
fg¡dd„ ƒZejj	de d¡dfejddd�e
fd	e
fde
fgddddgd�dd„ ƒZej 	dejddd�dfe d¡e
fejdd d�dfd	e
fde
fg¡d!d"„ ƒZej 	d#d	d
ddejd	d$d%d&�ejddd�e d¡ejd	d'�e d(d)¡g	¡d*d+„ ƒZejjdd�d,d-„ ƒZejjdd�d.d/„ ƒZejjdd�d0d1„ ƒZejjdd�d2d3„ ƒZejjdd�d4d5„ ƒZej 	d#d	d
ddejd	d$d%d&�ejddd�e d¡ejd	d'�e d(d6¡g	¡d7d8„ ƒZejjdd�d9d:„ ƒZejjdd�d;d<„ ƒZ d=S )>ÚTestFillnaSeriesCoercionÚfillnarb   rc   c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_has_comprehensive_tests  s    z5TestFillnaSeriesCoercion.test_has_comprehensive_testsc                 C  s0   |  ¡ }| |¡}t ||¡ |j|ks,t‚dS )z!test coercion triggered by fillnaN)rM   rä   rD   r¯   r   r&   rs   r   r   r   Ú_assert_fillna_conversion#  s    
z2TestFillnaSeriesCoercion._assert_fillna_conversionzfill_val, fill_dtyper?   rS   r¼   Tc                 C  sH   |}|dt jddgƒ}|jtks$t‚|d|ddgƒ}|  ||||¡ d S )Nr>   rz   r{   )r_   Únanr   r-   r&   ræ   ©r8   r¾   r–   Ú
fill_dtyper   r[   rQ   r   r   r   Útest_fillna_object*  s
    z+TestFillnaSeriesCoercion.test_fillna_objectzfill_val,fill_dtypec                 C  sJ   |}|dt jddgƒ}|jt jks&t‚|d|ddgƒ}|  ||||¡ d S )NrS   rÃ   rÄ   )r_   rç   r   r/   r&   ræ   rè   r   r   r   Útest_fillna_float646  s
    z,TestFillnaSeriesCoercion.test_fillna_float64c                 C  sP   |}|dt jddgt jd�}|jt jks,t‚|d|ddgƒ}|  ||||¡ d S )Nr¼   rÇ   rÈ   r   )r_   rç   r0   r   r&   ræ   rè   r   r   r   Útest_fillna_complex128B  s
    
z/TestFillnaSeriesCoercion.test_fillna_complex128r…   r†   r‡   rˆ   r   r2   r3   r-   r‹   c                 C  sl   |}|t  d¡t jt  d¡t  d¡gƒ}|jdks6t‚|t  d¡|t  d¡t  d¡gƒ}|  ||||¡ d S )Nr�   r�   r‘   r†   )r@   r“   r×   r   r&   ræ   rè   r   r   r   Útest_fillna_datetimeS  s"    üÿüÿz-TestFillnaSeriesCoercion.test_fillna_datetimerŠ   rŽ   c           	      C  s¨   |}d}|t jd|d�t jt jd|d�t jd|d�gƒ}|jdksFt‚t|dd ƒd kr\|}n
| |¡}|t jd|d�|t jd|d�t jd|d�gƒ}|  ||||¡ d S )Nr‡   r�   rˆ   r�   r‘   rŠ   r‰   )r@   r“   r×   r   r&   Úgetattrr•   ræ   )	r8   r¾   r–   ré   r   r‰   r[   rÎ   rQ   r   r   r   Útest_fillna_datetime64tzs  s*    üÿ
üÿz1TestFillnaSeriesCoercion.test_fillna_datetime64tzr–   rI   Úleft©ÚclosedrÕ   rÛ   rÌ   c                 C  sr   t jdddd� dtj¡}t|jt jƒs,t‚||ƒ}||d ||d |d |d	 gt	d
�}t	}|  
||||¡ d S )Nr‚   g      @Úrightrñ   r?   r   rI   rJ   rK   r   )r@   Zinterval_rangerq   r_   rç   r§   r   ZIntervalDtyper&   r-   ræ   )r8   r¾   r–   Úiir[   rQ   ré   r   r   r   Útest_fillna_intervalš  s    &z-TestFillnaSeriesCoercion.test_fillna_intervalc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_fillna_series_int64²  s    z1TestFillnaSeriesCoercion.test_fillna_series_int64c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_fillna_index_int64¶  s    z0TestFillnaSeriesCoercion.test_fillna_index_int64c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_fillna_series_boolº  s    z0TestFillnaSeriesCoercion.test_fillna_series_boolc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_fillna_index_bool¾  s    z/TestFillnaSeriesCoercion.test_fillna_index_boolc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_fillna_series_timedelta64Â  s    z7TestFillnaSeriesCoercion.test_fillna_series_timedelta64ÚWc                 C  sr   t jdddd� dt j¡}t|jt jƒs,t‚||ƒ}||d ||d |d |d gtd	�}t}|  	||||¡ d S )
NrÛ   rK   rÌ   rÍ   r?   r   rI   rJ   r   )
r@   Zperiod_rangerq   r×   r§   r   ZPeriodDtyper&   r-   ræ   )r8   r¾   r–   rß   r[   rQ   ré   r   r   r   Útest_fillna_series_periodÆ  s    &z2TestFillnaSeriesCoercion.test_fillna_series_periodc                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_fillna_index_timedelta64Þ  s    z6TestFillnaSeriesCoercion.test_fillna_index_timedelta64c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_fillna_index_periodâ  s    z1TestFillnaSeriesCoercion.test_fillna_index_periodN)!r'   r9   r:   r   rW   rm   ro   rå   ræ   rn   r-   rê   r_   r/   r0   rë   rì   r@   r“   rí   rï   ZIntervalrŸ   r¦   rõ   rö   r÷   rø   rù   rú   rü   rý   rþ   r   r   r   r   rã     sª   
þ
 þ
üþ	
ü
ø

úþ


÷þ








÷þ


rã   c                   @  sÞ  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 d¡e d¡ged< dD ]0Z	de	› d�Z
ejde	d�ejde	d�gee
< qxe d¡e d¡ged< ejddgd�d d!„ ƒZejdd
ddddd"d#dg	d�d$d%„ ƒZejdd
ddddd"d#dg	dd
dddd&d'd'd(g	d)�d*d+„ ƒZejd,d-„ ƒZd.d/„ Zejjd0dddddd
gdd1�ejjd2d"d#gdd1�d3d4„ ƒƒZejjd0dd"d#gdd1�ejjd2dd"d#gdd1�d5d6„ ƒƒZejjd7d8�d9d:„ ƒZd;S )<ÚTestReplaceSeriesCoercionr,   Úreplacezdict[str, list]Úrepr>   ry   r-   rK   rH   r.   rS   rÂ   r/   r¼   rÆ   r0   TFr1   r�   r�   r†   )ÚUTCr‡   zdatetime64[ns, ú]rˆ   r›   rœ   r�   Údict)Úparamsc                 C  s   |j S r   ©Úparam©r8   r   r   r   r   Úhowý  s    zTestReplaceSeriesCoercion.howúdatetime64[ns, UTC]rŠ   c                 C  s   |j S r   r  r  r   r   r   Úfrom_key  s    z"TestReplaceSeriesCoercion.from_keyr2   r3   r4   )r  rŒ   c                 C  s   |j S r   r  r  r   r   r   Úto_key  s    z TestReplaceSeriesCoercion.to_keyc                 C  sP   |dkr$t t| j| | j| ƒƒ}n(|dkrHtj| j| | j| d�}nt‚|S )z9
        Object we will pass to `Series.replace`
        r  r,   rL   )r  Úzipr  r@   rA   Ú
ValueError)r8   r	  r  r  Úreplacerr   r   r   r  ,  s    z"TestReplaceSeriesCoercion.replacerc           	      C  sò   t jddgdd�}t j| j| |dd�}|j|ks6t‚| d¡rN| d¡rNd S |dkrZd S | |¡}|d	krt|d
ks„|dkr¾|dkr¾trŽt	ƒ r¤t
 d|› d|› �¡ t j| j| |d|d�}n$t j| j| |dd�}|j|ksât‚t ||¡ d S )NrJ   rK   Zxxxr	   Úyyy©r+   r
   r   )rŠ   r
  r/   r.   r0   )r.   r/   z32-bit platform buggy: z -> )r+   r
   r   )r@   rX   rA   r  r   r&   Ú
startswithr   r   r   rW   ÚskiprD   rE   ©	r8   r	  r  r  r  r+   r[   r˜   rQ   r   r   r   Útest_replace_series9  s&    
ÿÿ
z-TestReplaceSeriesCoercion.test_replace_seriesr  )Zindirectr  c           	      C  st   t jddgdd�}t j| j| |dd�}|j|ks6t‚| |¡}t j| j| |dd�}|j|ksdt‚t ||¡ d S ©NrJ   rK   Zxyzr	   r  r  )	r@   rX   rA   r  r   r&   r   rD   rE   r  r   r   r   Útest_replace_series_datetime_tzV  s    	
z9TestReplaceSeriesCoercion.test_replace_series_datetime_tzc           	      C  sž   t jddgdd�}t j| j| |dd�}|j|ks6t‚| |¡}t j| j| |dd�}t|jt jƒr€t|jt jƒr€| 	|j¡}n|j|ksŽt‚t
 ||¡ d S r  )r@   rX   rA   r  r   r&   r   r§   ZDatetimeTZDtyper”   rD   rE   r  r   r   r   Ú%test_replace_series_datetime_datetimej  s    
 ÿz?TestReplaceSeriesCoercion.test_replace_series_datetime_datetimerb   rc   c                 C  s   t ‚d S r   r5   r7   r   r   r   Útest_replace_series_period†  s    z4TestReplaceSeriesCoercion.test_replace_series_periodN)r'   r9   r:   r    r   r  rl   r@   r“   r‰   ÚkeyrŸ   rW   Úfixturer	  r  r  r  r  rm   rn   r  r  ro   r  r   r   r   r   rÿ   ç  s    
þ

÷ÿ
÷÷ô

ý  ÿýýrÿ   )Ú
__future__r   r   r   r   Znumpyr_   rW   Zpandas.compatr   r   Zpandasr@   Zpandas._testingZ_testingrD   r  r)   r*   r<   rp   r­   rã   rÿ   r   r   r   r   Ú<module>   s$   
e 9 4 N