o
    �¨Êhu  ã                   @  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	 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	�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)Úusing_pyarrow_string_dtype)ÚIS64Úis_platform_windows)Únp_version_gt2TÚclass)ÚautouseÚscopec                 #  sz   � ˆ j }t |j|j|jg¡}‡ fdd„}ˆ jj}|js|j	r$d V  d S |D ]}||ƒs7t
d|j› d|› �ƒ‚q&d V  d S )Nc                   s.   | \‰‰ ‰ˆj jj}t‡ ‡‡fdd„|D ƒƒS )Nc                 3  s.   � | ]}ˆ|j v oˆ |j v oˆ|j v V  qd S ©N©Úname©Ú.0Úx©ÚdtypeÚklassÚmethod© úU/var/www/html/env/lib/python3.10/site-packages/pandas/tests/indexing/test_coercion.pyÚ	<genexpr>&   s   € 
ÿz<check_comprehensiveness.<locals>.has_test.<locals>.<genexpr>)ÚnodeÚsessionÚitemsÚany)ÚcomboÚ	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"   Úcombosr!   Úoptsr   r   r   r   Úcheck_comprehensiveness   s   €
ÿÿ
r/   c                   @  s(   e Zd ZddgZg d¢Zedd„ ƒZdS )ÚCoercionBaseÚindexÚseries)	ÚobjectÚint64Úfloat64Ú
complex128ÚboolÚ
datetime64Údatetime64tzÚtimedelta64Úperiodc                 C  s   t | ƒ‚r   ©ÚNotImplementedError©Úselfr   r   r   r   H   s   zCoercionBase.methodN)r,   Ú
__module__Ú__qualname__r%   r&   Úpropertyr   r   r   r   r   r0   :   s
    r0   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)r?   ÚserÚexpectedr   r   r   Ú0test_setitem_series_no_coercion_from_values_listT   s   zDTestSetitemCoercion.test_setitem_series_no_coercion_from_values_listc                 C  s‚   |  ¡ }d||< tjg d¢|d�}t ||¡ |jj|ksJ ‚|  ¡ }d|j|< tjg d¢|d�}t ||¡ |jj|ks?J ‚dS )z-test index's coercion triggered by assign keyé   )rF   é   é   é   rP   ©r1   N)ÚcopyrG   rH   rK   rL   r1   r   Úloc)r?   Úoriginal_seriesÚloc_keyÚexpected_indexÚexpected_dtypeÚtempÚexpr   r   r   Ú _assert_setitem_index_conversion]   s   
z4TestSetitemCoercion._assert_setitem_index_conversionzval,exp_dtyper   rP   çš™™™™™ñ?c              	   C  sî   t jg d¢t jtdƒtd�d�}|jjtksJ ‚|tu ra| ¡ }d}d}t	j
||d��, tjt|d�� d|d< W d   ƒ n1 sBw   Y  W d   ƒ d S W d   ƒ d S 1 sZw   Y  d S t jtdƒ|g td�}|  ||||¡ d S )	N©rF   rQ   rR   rS   Úabcd©r   rT   z;Series.__setitem__ treating keys as positions is deprecatedz/index 5 is out of bounds for axis 0 with size 4©ÚmatchrP   )rG   rH   ÚIndexrI   r3   r1   r   Ú
IndexErrorrU   ÚpytestÚraisesrK   Úassert_produces_warningÚFutureWarningr]   )r?   ÚvalÚ	exp_dtypeÚobjr[   Úwarn_msgÚmsgÚ	exp_indexr   r   r   Útest_setitem_index_objectq   s    
ÿÿ"ÿz-TestSetitemCoercion.test_setitem_index_objectc                 C  sH   t  g d¢¡}|jjtjksJ ‚t  dddd|g¡}|  ||||¡ d S )Nr_   r   rF   rQ   rR   )rG   rH   r1   r   Únpr4   rd   r]   )r?   rj   rk   rl   ro   r   r   r   Útest_setitem_index_int64ƒ   s   z,TestSetitemCoercion.test_setitem_index_int64gffffff@c                 C  sP   t jg d¢g d¢d�}|jjtjksJ ‚t  dddd|g¡}|  ||||¡ d S )Nr_   )r^   çÍÌÌÌÌÌ @çÍÌÌÌÌÌ@çffffff@rT   r^   rs   rt   ru   )rG   rH   r1   r   rq   r5   rd   r]   )r?   rj   rk   r    rl   ro   r   r   r   Útest_setitem_index_float64�   s   z.TestSetitemCoercion.test_setitem_index_float64úTest not implemented©Úreasonc                 C  ó   t ‚r   r<   r>   r   r   r   Útest_setitem_series_period—   ó   z.TestSetitemCoercion.test_setitem_series_periodc                 C  rz   r   r<   r>   r   r   r   Útest_setitem_index_complex128›   r|   z1TestSetitemCoercion.test_setitem_index_complex128c                 C  rz   r   r<   r>   r   r   r   Útest_setitem_index_boolŸ   r|   z+TestSetitemCoercion.test_setitem_index_boolc                 C  rz   r   r<   r>   r   r   r   Útest_setitem_index_datetime64£   r|   z1TestSetitemCoercion.test_setitem_index_datetime64c                 C  rz   r   r<   r>   r   r   r   Útest_setitem_index_datetime64tz§   r|   z3TestSetitemCoercion.test_setitem_index_datetime64tzc                 C  rz   r   r<   r>   r   r   r   Útest_setitem_index_timedelta64«   r|   z2TestSetitemCoercion.test_setitem_index_timedelta64c                 C  rz   r   r<   r>   r   r   r   Útest_setitem_index_period¯   r|   z-TestSetitemCoercion.test_setitem_index_periodN)r,   r@   rA   r   r%   Ú__annotations__rO   r]   rf   ÚmarkÚparametrizer3   re   rp   rq   r4   r5   rr   rv   Úxfailr{   r}   r~   r   r€   r�   r‚   r   r   r   r   rC   M   s>   
 	ÿ
ÿ
ÿ






rC   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 ).ÚTestInsertIndexCoercionr1   Úinsertc                 C  s2   |  ¡ }| d|¡}t ||¡ |j|ksJ ‚dS )z!test coercion triggered by insertrF   N)rU   rˆ   rK   Úassert_index_equalr   ©r?   ÚoriginalÚvaluerN   rZ   ÚtargetÚresr   r   r   Ú_assert_insert_conversion¸   s   z1TestInsertIndexCoercion._assert_insert_conversionz"insert, coerced_val, coerced_dtyperF   r^   Fr   c                 C  sL   t jtdƒtd�}|jtksJ ‚t jd|dddgtd�}|  ||||¡ d S )Nr`   ra   rE   ÚbÚcÚd)rG   rd   rI   r3   r   r�   )r?   rˆ   Úcoerced_valÚcoerced_dtyperl   r\   r   r   r   Útest_insert_index_object¿   s   
z0TestInsertIndexCoercion.test_insert_index_object)rF   rF   Nc                 C  sR   |}t jg d¢|d�}|d ur|n|}t jd|dddg|d�}|  ||||¡ d S )Nr_   ra   rF   rQ   rR   rS   )rG   rd   r�   )r?   Úany_int_numpy_dtyperˆ   r“   r”   r   rl   r\   r   r   r   Útest_insert_int_indexÏ   s
   z-TestInsertIndexCoercion.test_insert_int_index)rF   ç      ð?Nc                 C  sl   |}t jg d¢|d�}|d ur|n|}tr |dkr |dkr tj}t jd|dddg|d�}|  ||||¡ d S )	N)r˜   ç       @ç      @ç      @ra   Úfloat32r^   r˜   r™   rš   r›   )rG   rd   r   rq   rœ   r�   )r?   Úfloat_numpy_dtyperˆ   r“   r”   r   rl   r\   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]r8   r9   ©ÚidsÚinsert_valueú
Asia/Tokyoc           
      C  sˆ  t jg d¢|jd� d¡}|j|ksJ ‚t jd| ¡ dddg|jd� d¡}|  ||||¡ |jryt  d¡}| d	|¡}| 	t
¡ d	|¡}|jt
ksLJ ‚t ||¡ t jdd
d�}| d	|¡}| d	| |jj¡¡}|j|jksrJ ‚t ||¡ n#t jdd
d�}| d	|¡}| 	t
¡ d	|¡}|jt
ks–J ‚t ||¡ d	}	| d	|	¡}| 	t
¡ d	|	¡}|d	 |	ksµJ ‚|jt
ks¼J ‚t ||¡ d S )N)ú
2011-01-01ú
2011-01-02ú
2011-01-03ú
2011-01-04r£   Únsrª   r«   r¬   r­   r    rF   r©   )rG   ÚDatetimeIndexr¤   Úas_unitr   Údater�   Ú	Timestamprˆ   Úastyper3   rK   r‰   Ú
tz_convert)
r?   Úfill_valrk   r¨   rl   r\   ÚtsÚresultrN   Úitemr   r   r   Útest_insert_index_datetimesû   sF   
ÿþþý
z3TestInsertIndexCoercion.test_insert_index_datetimesc                 C  s�   t  g d¢¡}|jdksJ ‚t  g d¢¡}|  |t  d¡|d¡ t  d¡dfD ]}| d|¡}| t¡ d|¡}|jtks?J ‚t	 
||¡ q'd S )N)ú1 dayú2 dayú3 dayú4 dayútimedelta64[ns])rº   ú10 dayr»   r¼   r½   r¿   r    rF   )rG   ÚTimedeltaIndexr   r�   Ú	Timedeltar²   rˆ   r³   r3   rK   r‰   )r?   rl   r\   r¸   r·   rN   r   r   r   Útest_insert_index_timedelta641  s   ÿüz5TestInsertIndexCoercion.test_insert_index_timedelta64z2012-01ÚM©Úfreqú	period[M]c           	      C  s  t jg d¢dd�}|jdksJ ‚t jddd�|t jddd�t jddd�t jddd�g}t|t jƒrLt j|dd�}|  ||||¡ |  |t|ƒ||¡ d S | d	|¡}| t	¡ d	|¡}t
 ||¡ t|t jƒs‚| d	t|ƒ¡}| t	¡ d	t|ƒ¡}t
 ||¡ d S d S )
N)ú2011-01ú2011-02ú2011-03ú2011-04rÃ   rÄ   rÆ   rÇ   rÈ   rÉ   rÊ   r   )rG   ÚPeriodIndexr   ÚPeriodÚ
isinstancer�   Ústrrˆ   r³   r3   rK   r‰   r²   )	r?   rˆ   r“   r”   rl   Údatar\   r·   rN   r   r   r   Útest_insert_index_periodA  s(   
ûüz0TestInsertIndexCoercion.test_insert_index_periodrw   rx   c                 C  rz   r   r<   r>   r   r   r   Útest_insert_index_complex128i  r|   z4TestInsertIndexCoercion.test_insert_index_complex128c                 C  rz   r   r<   r>   r   r   r   Útest_insert_index_boolm  r|   z.TestInsertIndexCoercion.test_insert_index_boolN)r,   r@   rA   r%   r   r�   rf   r„   r…   r3   r•   rq   r5   r—   rž   rG   r²   r¹   rÂ   rÌ   rÐ   r†   rÑ   rÒ   r   r   r   r   r‡   ´   sr    üþ
	
üþ
	

úþ
þúþ*üþ
	
r‡   c                	   @  sü  e Zd ZdZe g d¢¡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Úwhere©TFTFc                 C  s2   |  ¡ }| ||¡}t ||¡ |j|ksJ ‚dS )z test coercion triggered by whereN)rU   rÔ   rK   Úassert_equalr   )r?   r‹   ÚcondrJ   rN   rZ   r�   rŽ   r   r   r   Ú_assert_where_conversionv  s   z*TestWhereCoercion._assert_where_conversionc                   sx   ˆ du r|g d¢ƒ}nt ˆ ttjfƒrtjˆ dd�}n|‡ fdd„dD ƒƒ}||d |d	 |d
 |d g|d�}||fS )NT)TFTTrS   ©Úperiodsc                 3  s   � | ]}|ˆ  V  qd S r   r   r   ©rµ   r   r   r   …  s   € z3TestWhereCoercion._construct_exp.<locals>.<genexpr>)rP   é   é   é   r   rF   rQ   rR   ra   )rÍ   r   rq   r8   rG   Ú
date_range)r?   rl   r   rµ   rk   rJ   r\   r   rÛ   r   Ú_construct_exp  s   $z TestWhereCoercion._construct_expc                 C  sb   || j ƒ}||d ||d |g|d�}|  |||||¡ |  ||||¡\}}|  |||||¡ d S )Nr   rQ   ra   )Ú_condrØ   rà   )r?   rl   rµ   r   rk   r×   r\   rJ   r   r   r   Ú	_run_testŠ  s
   
zTestWhereCoercion._run_testrŸ   rF   r^   ù      ð?      ð?Tc                 C  s6   |}|t dƒtd�}|jtksJ ‚|  ||||¡ d S )Nr`   ra   )rI   r3   r   râ   ©r?   Úindex_or_seriesrµ   rk   r   rl   r   r   r   Útest_where_object“  s   z#TestWhereCoercion.test_where_objectc                 C  ó4   |}|g d¢ƒ}|j tjksJ ‚|  ||||¡ d S )Nr_   )r   rq   r4   râ   ©r?   rå   rµ   rk   r    r   rl   r   r   r   Útest_where_int64�  ó   z"TestWhereCoercion.test_where_int64zfill_val, exp_dtypec                 C  rç   )N)r^   çš™™™™™@çffffff
@çš™™™™™@)r   rq   r5   râ   rè   r   r   r   Útest_where_float64¨  rê   z$TestWhereCoercion.test_where_float64c                 C  s:   |}|g d¢t jd�}|jt jksJ ‚|  ||||¡ d S )N)rã   ù       @       @ù      @      @ù      @      @ra   )rq   r6   r   râ   rä   r   r   r   Útest_where_complex128³  s   
z'TestWhereCoercion.test_where_complex128c                 C  s4   |}|g d¢ƒ}|j tjksJ ‚|  ||||¡ d S )NrÕ   )r   rq   Úbool_râ   rä   r   r   r   Útest_where_series_boolÂ  rê   z(TestWhereCoercion.test_where_series_boolr    r¡   r¢   r£   r8   r9   r¦   c                 C  sŠ   |}|t jdddd� d ¡ƒ}|jdksJ ‚|}|dkr2|| ¡ | ¡ fD ]
}|  ||||¡ q%d S || ¡ fD ]
}|  ||||¡ q8d S )Nrª   rS   ÚD©rÚ   rÅ   r¡   )rG   rß   Ú
_with_freqr   Úto_pydatetimeÚto_datetime64râ   )r?   rå   rµ   rk   r   rl   ÚfvÚscalarr   r   r   Útest_where_datetime64Í  s   	ÿÿz'TestWhereCoercion.test_where_datetime64rw   rx   c                 C  rz   r   r<   r>   r   r   r   Útest_where_index_complex128ä  r|   z-TestWhereCoercion.test_where_index_complex128c                 C  rz   r   r<   r>   r   r   r   Útest_where_index_boolè  r|   z'TestWhereCoercion.test_where_index_boolc                 C  rz   r   r<   r>   r   r   r   Útest_where_series_timedelta64ì  r|   z/TestWhereCoercion.test_where_series_timedelta64c                 C  rz   r   r<   r>   r   r   r   Útest_where_series_periodð  r|   z*TestWhereCoercion.test_where_series_periodrŒ   é	   ©Údaysrõ   c                 C  sœ   t jddd�}t g d¢¡}t  d||dg¡}| ||¡}t ||¡ t dd¡}t j	|d |||d	 gt
d
�}|d |u s@J ‚| ||¡}t ||¡ d S )Nz1 DayrS   rÙ   )TFFTz4 DaysÚNaTr®   r   rR   ra   rF   )rG   Útimedelta_rangerq   ÚarrayrÀ   rÔ   rK   r‰   r8   rd   r3   )r?   rŒ   Útdir×   rN   r·   Údtnatr   r   r   Útest_where_index_timedelta64ô  s   z.TestWhereCoercion.test_where_index_timedelta64c           
      C  s.  t jdddd�}| d¡}t g d¢¡}|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-01rR   ÚQSrö   ÚQ)FTFéÿÿÿÿé
   rF   ra   r   rQ   rS   r  z
2020-04-21rõ   )rG   rß   Ú	to_periodrq   r  rÅ   rË   rÔ   rK   r‰   Úasarrayr3   rÁ   rd   rÌ   )
r?   ÚdtiÚpir×   rŒ   rN   r·   ÚotherÚtdÚperr   r   r   Útest_where_index_period  s&   
z)TestWhereCoercion.test_where_index_periodN)$r,   r@   rA   r   rq   r  rá   rØ   rà   râ   rf   r„   r…   r3   ræ   r4   r5   r6   ré   rî   rò   ró   rô   rG   r²   rü   r†   rý   rþ   rÿ   r   rÁ   r   r:   r	  r  r   r   r   r   rÓ   r  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g d¢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�d.d/„ ƒZejjdd�d0d1„ ƒZejjdd�d2d3„ ƒ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&d4¡g	¡d5d6„ ƒZejjdd�d7d8„ ƒZejjdd�d9d:„ ƒZ d;S )<ÚTestFillnaSeriesCoercionÚfillnarw   rx   c                 C  rz   r   r<   r>   r   r   r   Útest_has_comprehensive_tests*  r|   z5TestFillnaSeriesCoercion.test_has_comprehensive_testsc                 C  s0   |  ¡ }| |¡}t ||¡ |j|ksJ ‚dS )z!test coercion triggered by fillnaN)rU   r  rK   rÖ   r   rŠ   r   r   r   Ú_assert_fillna_conversion.  s   
z2TestFillnaSeriesCoercion._assert_fillna_conversionzfill_val, fill_dtyperF   r^   rã   Tc                 C  sP   |}|dt jddgtd�}|jtksJ ‚|d|ddgtd�}|  ||||¡ d S )NrE   r‘   r’   ra   )rq   Únanr3   r   r  ©r?   rå   rµ   Ú
fill_dtyper   rl   r\   r   r   r   Útest_fillna_object5  s
   z+TestFillnaSeriesCoercion.test_fillna_objectzfill_val,fill_dtypec                 C  sJ   |}|dt jddgƒ}|jt jksJ ‚|d|ddgƒ}|  ||||¡ d S )Nr^   rì   rí   )rq   r  r   r5   r  r  r   r   r   Útest_fillna_float64A  s
   z,TestFillnaSeriesCoercion.test_fillna_float64c                 C  sP   |}|dt jddgt jd�}|jt jksJ ‚|d|ddgƒ}|  ||||¡ d S )Nrã   rð   rñ   ra   )rq   r  r6   r   r  r  r   r   r   Útest_fillna_complex128M  s
   
z/TestFillnaSeriesCoercion.test_fillna_complex128r    r¡   r¢   r£   r   )r8   r9   r3   r3   r¦   c                 C  sl   |}|t  d¡t jt  d¡t  d¡gƒ}|jdksJ ‚|t  d¡|t  d¡t  d¡gƒ}|  ||||¡ d S )Nrª   r¬   r­   r¡   )rG   r²   r  r   r  r  r   r   r   Útest_fillna_datetime^  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s#J ‚t|dd ƒd u r.|}n| |¡}|t jd|d�|t jd|d�t jd|d�gƒ}|  ||||¡ d S )Nr¢   rª   r£   r¬   r­   r¥   r¤   )rG   r²   r  r   Úgetattrr´   r  )	r?   rå   rµ   r  r   r¤   rl   rú   r\   r   r   r   Útest_fillna_datetime64tz~  s*   üÿ
üÿz1TestFillnaSeriesCoercion.test_fillna_datetime64tzrµ   rQ   Úleft©Úclosedr  r
  rõ   c                 C  sr   t jdddd� dtj¡}t|jt jƒsJ ‚||ƒ}||d ||d |d |d	 gtd
�}t}|  	||||¡ d S )Nr˜   g      @Úrightr%  rF   r   rQ   rR   rS   ra   )
rG   Úinterval_rangerˆ   rq   r  rÍ   r   ÚIntervalDtyper3   r  )r?   rå   rµ   Úiirl   r\   r  r   r   r   Útest_fillna_interval¥  ó   &z-TestFillnaSeriesCoercion.test_fillna_intervalc                 C  rz   r   r<   r>   r   r   r   Útest_fillna_series_int64½  r|   z1TestFillnaSeriesCoercion.test_fillna_series_int64c                 C  rz   r   r<   r>   r   r   r   Útest_fillna_index_int64Á  r|   z0TestFillnaSeriesCoercion.test_fillna_index_int64c                 C  rz   r   r<   r>   r   r   r   Útest_fillna_series_boolÅ  r|   z0TestFillnaSeriesCoercion.test_fillna_series_boolc                 C  rz   r   r<   r>   r   r   r   Útest_fillna_index_boolÉ  r|   z/TestFillnaSeriesCoercion.test_fillna_index_boolc                 C  rz   r   r<   r>   r   r   r   Útest_fillna_series_timedelta64Í  r|   z7TestFillnaSeriesCoercion.test_fillna_series_timedelta64ÚWc                 C  sr   t jdddd� dt j¡}t|jt jƒsJ ‚||ƒ}||d ||d |d |d gtd	�}t}|  ||||¡ d S )
Nr
  rS   rõ   rö   rF   r   rQ   rR   ra   )	rG   Úperiod_rangerˆ   r  rÍ   r   ÚPeriodDtyper3   r  )r?   rå   rµ   r  rl   r\   r  r   r   r   Útest_fillna_series_periodÑ  r,  z2TestFillnaSeriesCoercion.test_fillna_series_periodc                 C  rz   r   r<   r>   r   r   r   Útest_fillna_index_timedelta64é  r|   z6TestFillnaSeriesCoercion.test_fillna_index_timedelta64c                 C  rz   r   r<   r>   r   r   r   Útest_fillna_index_periodí  r|   z1TestFillnaSeriesCoercion.test_fillna_index_periodN)!r,   r@   rA   r   rf   r„   r†   r  r  r…   r3   r  rq   r5   r6   r  r   rG   r²   r!  r#  ÚIntervalrÁ   rÌ   r+  r-  r.  r/  r0  r1  r5  r6  r7  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 ]Z	de	› d�Z
ejde	d�ejde	d�gee
< q<e d¡e d¡ged< ejddgd�d d!„ ƒZejg d"¢d�d#d$„ ƒZejg d"¢g d%¢d&�d'd(„ ƒZejd)d*„ ƒZejjeƒ d+d,�d-d.„ ƒZejjd/g d0¢dd1�ejjd2d3d4gdd1�d5d6„ ƒƒZejjd/g d7¢dd1�ejjd2g d7¢dd1�d8d9„ ƒƒZejjd:d,�d;d<„ ƒZd=S )>ÚTestReplaceSeriesCoercionr2   Úreplacezdict[str, list]ÚreprE   r�   r3   rS   rP   r4   r^   rë   r5   rã   rï   r6   TFr7   rª   r¬   r¡   )ÚUTCr¢   zdatetime64[ns, ú]r£   rº   r»   r¾   Údict)Úparamsc                 C  ó   |j S r   ©Úparam©r?   r    r   r   r   Úhow  s   zTestReplaceSeriesCoercion.how)	r3   r4   r5   r6   r7   r¡   údatetime64[ns, UTC]r¥   r¾   c                 C  r@  r   rA  rC  r   r   r   Úfrom_key  s   z"TestReplaceSeriesCoercion.from_key)	r3   r4   r5   r6   r7   r8   r9   r9   r:   )r?  r§   c                 C  r@  r   rA  rC  r   r   r   Úto_key  s   z TestReplaceSeriesCoercion.to_keyc                 C  sP   |dkrt t| j| | j| ƒƒ}|S |dkr&tj| j| | j| d�}|S t‚)z9
        Object we will pass to `Series.replace`
        r>  r2   rT   )r>  Úzipr;  rG   rH   Ú
ValueError)r?   rD  rF  rG  Úreplacerr   r   r   rJ  7  s   üÿz"TestReplaceSeriesCoercion.replacerzTODO: test is to complexrx   c                 C  sZ  t jddgdd�}t j| j| |dd�}|j|ksJ ‚| d¡r'| d¡r'd S |dv r-d S |d	kr5|d
v s=|dkrZ|dv rZtrBtƒ rMt 	d|› d|› �¡ t j| j| |d|d�}nt j| j| |dd�}|j|kslJ ‚d}t
}	|j|jks‡|jtks‡|jjdv r‰|jjdv r‰d }	tj|	|d�� | |¡}
W d   ƒ n1 s w   Y  t |
|¡ d S )NrR   rS   Úxxxr   Úyyy©r1   r   r   )r¥   rE  r5   r4   r6   )r4   r5   z32-bit platform buggy: z -> )r1   r   r   ú!Downcasting behavior in `replace`Úiufcrb   )rG   rd   rH   r;  r   Ú
startswithr   r   rf   Úskipri   r3   ÚkindrK   rh   r:  rL   )r?   rD  rG  rF  rJ  r1   rl   r\   rn   Úwarnr·   r   r   r   Útest_replace_seriesE  s0   

ÿz-TestReplaceSeriesCoercion.test_replace_seriesrG  )r¾   r7   r3   r6   r5   r4   )ÚindirectrF  rE  r¥   c                 C  sÔ   t jddgdd�}t j| j| |dd�}|j|ksJ ‚t j| j| |dd�}|r4|dkr4|jdks3J ‚n|j|ks;J ‚d	}	|jtkrDtnd }
tj|
|	d
�� | 	|¡}W d   ƒ n1 s]w   Y  t 
||¡ d S )NrR   rS   Úxyzr   rL  rM  r3   ÚstringrN  rb   )rG   rd   rH   r;  r   r3   ri   rK   rh   r:  rL   )r?   rD  rG  rF  rJ  Úusing_infer_stringr1   rl   r\   rn   rS  r·   r   r   r   Útest_replace_series_datetime_tzl  s   ÿz9TestReplaceSeriesCoercion.test_replace_series_datetime_tz)r¡   rE  r¥   c                 C  sä   t jddgdd�}t j| j| |dd�}|j|ksJ ‚t j| j| |dd�}t}t|jt jƒr?t|jt jƒr?| |j¡}d }n|j|ksFJ ‚||krLd }d}	t	j
||	d�� | |¡}
W d   ƒ n1 sew   Y  t	 |
|¡ d S )	NrR   rS   rV  r   rL  rM  rN  rb   )rG   rd   rH   r;  r   ri   rÍ   ÚDatetimeTZDtyper³   rK   rh   r:  rL   )r?   rD  rG  rF  rJ  r1   rl   r\   rS  rn   r·   r   r   r   Ú%test_replace_series_datetime_datetimeˆ  s$   ÿÿz?TestReplaceSeriesCoercion.test_replace_series_datetime_datetimerw   c                 C  rz   r   r<   r>   r   r   r   Útest_replace_series_periodª  r|   z4TestReplaceSeriesCoercion.test_replace_series_periodN)r,   r@   rA   r%   r   r;  rƒ   rG   r²   r¤   ÚkeyrÁ   rf   ÚfixturerD  rF  rG  rJ  r„   Úskipifr   rT  r…   rY  r[  r†   r\  r   r   r   r   r9  ò  sj   
 
þ
ÿ
ô


&ý
ÿýýr9  )Ú
__future__r   r   r   r#   Únumpyrq   rf   Úpandas._configr   Úpandas.compatr   r   Úpandas.compat.numpyr   ÚpandasrG   Úpandas._testingÚ_testingrK   r^  r/   r0   rC   r‡   rÓ   r  r9  r   r   r   r   Ú<module>   s*    
g ? 4 N