U
    ¾mœdZÍ  ã                   @  s  U d dl mZ d dlmZ d dlmZ d dlmZ d dlZd dl	Z
d dlZd dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ ejeeej gd
�dd„ ƒZ!dd„ Z"dd„ Z#dddddddddddgZ$edddƒgZ%de&d< e% 'd d!„ e$D ƒ¡ e% 'd"d!„ e$D ƒ¡ G d#d$„ d$ƒZ(G d%d&„ d&ƒZ)G d'd(„ d(ƒZ*G d)d*„ d*ƒZ+G d+d,„ d,ƒZ,G d-d.„ d.ƒZ-G d/d0„ d0ƒZ.G d1d2„ d2ƒZ/d3d4„ Z0d5d6„ Z1ej2 3d7d d8d9gd d9d:gfg¡d;d<„ ƒZ4d=d>„ Z5ej2 3d?d8d9d@g¡ej2 3dAd d8d9d@g¡dBdC„ ƒƒZ6dDdE„ Z7dS )Fé    )Úannotations)Úabc)Ú	timedelta)ÚDecimalN)ÚIndexÚ
RangeIndexÚSeriesÚ	TimedeltaÚTimedeltaIndexÚarray)Úops)Úexpressions)Úassert_invalid_addsub_typeÚassert_invalid_comparison)Úparamsc                 C  s   | j S )zL
    Fixture to test behavior for Index, Series and tm.to_array classes
    )Úparam)Úrequest© r   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/arithmetic/test_numeric.pyÚbox_pandas_1d_array    s    r   c                 C  s8   t  t  | ¡¡ ¡ r4t  t  | ¡¡ ¡ s,t‚|d9 }|S )z_
    Helper to adjust the expected result if we are dividing by -0.0
    as opposed to 0.0
    éÿÿÿÿ)ÚnpZsignbitr   ÚanyÚallÚAssertionError)ÚzeroÚexpectedr   r   r   Úadjust_negative_zero(   s    r   c                 C  sˆ   |t jtjfkrt | ¡n| }|t jtjfkr8t |¡n|}|||ƒ}| ||¡}t|tƒrx|j	 
| j	¡sx|j	 d ¡|_	t ||¡ d S ©N)r   ÚrpowÚoperatorÚpowr   ÚabsÚcombineÚ
isinstancer   ÚindexÚequalsÚ
_with_freqÚtmÚassert_series_equal)ÚseriesÚotherÚopÚleftÚrightZcython_or_numpyÚpythonr   r   r   Ú
compare_op7   s    
r0   Úi1Úi2Úi4Úi8Úu1Úu2Zu4Úu8Úf2Zf4Úf8é
   é(   zlist[Index | Series]Úleftsc                 C  s   g | ]}t d ddg|d�‘qS )r:   é   é   ©Údtype)r   ©Ú.0r@   r   r   r   Ú
<listcomp>G   s     rC   c                 C  s&   g | ]}|d krt dddg|d�‘qS )r8   r:   r=   r>   r?   )r   rA   r   r   r   rC   H   s      c                   @  s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestNumericComparisonsc                 C  s°   t  d¡tdddgƒk}dtdddgƒk}t ||¡ tdddgƒt  d¡k }tdddgƒdk }t ||¡ t  dddg¡d tdddgƒk}dtdddgƒk}t ||¡ d S )Nr   é   é   é   ç        )r   Úfloat64r   r(   r)   r   )ÚselfÚresultr   r   r   r   Ú(test_operator_series_comparison_zerorankO   s    "z?TestNumericComparisons.test_operator_series_comparison_zerorankc                 C  s.   |}t  tdƒ¡}t ||¡}t|||ƒ d S ©Né   )r   r   Úranger(   Úbox_expectedr   )rJ   Úbox_with_arrayÚfixed_now_tsÚtsÚobjr   r   r   Útest_df_numeric_cmp_dt64_raises[   s    z6TestNumericComparisons.test_df_numeric_cmp_dt64_raisesc                 C  sL   t tj d¡dd�}t tj d¡ƒ}t d¡|_t || d||  ¡ d S )NrN   r   ©Únamez
2000-01-01rE   )	r   r   ÚrandomÚrandnÚpdÚ	TimestamprW   r(   r)   )rJ   ÚaÚbr   r   r   Útest_compare_invalidc   s    z+TestNumericComparisons.test_compare_invalidc              	   C  s¬   |}|t k	r|ntj}ttj d¡ƒ}tj||dd�}|dk}ttjdt	d�ƒ}tj||dd�}t 
||¡ |dk}t 
|| ¡ d}tjt|d�� |dk  W 5 Q R X d S )Ni † F©Z	transposer\   r?   z0Invalid comparison between dtype=float64 and str©Úmatch)r   r   Zndarrayr   rX   rY   r(   rP   ÚzerosÚboolÚassert_equalÚpytestÚraisesÚ	TypeError)rJ   rQ   ÚboxZxboxrT   rK   r   Úmsgr   r   r   Ú$test_numeric_cmp_string_numexpr_pathk   s    z;TestNumericComparisons.test_numeric_cmp_string_numexpr_pathN)Ú__name__Ú
__module__Ú__qualname__rL   rU   r^   rj   r   r   r   r   rD   N   s   rD   c                   @  sî  e Zd Zej dejee	g¡ejjde
dd„ d�dd„ ƒƒZej dejee	g¡ejjde
dd„ d�d	d
„ ƒƒZejjdedd�edd� ¡ edd� ¡ edd� ¡  d¡edd� ¡  d¡gdd„ d�dd„ ƒZejjdedd�edd� ¡ edd� ¡ gdd„ d�ej dejejg¡dd„ ƒƒZdd„ Zejjdedd�edd� ¡ edd� ¡ edd� ¡  d¡e d¡e dd¡ej d¡ej d ¡ejd!d"d#�e d!¡e d!¡ ¡ ejd!d$d#� ¡ e d!¡ ¡ e dd%¡ejge d�d&d'„ ƒZ!d(S ))Ú.TestNumericArraylikeArithmeticWithDatetimeLikeÚbox_clsr-   c                 C  s   t | ƒjt| jƒ S r   ©Útyperk   Ústrr@   ©Úxr   r   r   Ú<lambda>ˆ   ó    z7TestNumericArraylikeArithmeticWithDatetimeLike.<lambda>©Zidsc                 C  s†   t jdddgdd�}||ƒ}tdddg|jd�}t|tƒsB|tkrJt|ƒ}|j|jksZt‚|| }t ||¡ || }t ||¡ d S )	NrE   rF   rG   úm8[s]r?   Z10sZ40sZ90s)	r   r   r
   r@   r$   r   r   r(   rd   )rJ   r-   ro   r.   r   rK   r   r   r   Útest_mul_td64arr†   s    z?TestNumericArraylikeArithmeticWithDatetimeLike.test_mul_td64arrc                 C  s   t | ƒjt| jƒ S r   rp   rs   r   r   r   ru   �   rv   c              	   C  sÒ   t jdddgdd�}||ƒ}tdddg|jd�}t|tƒsB|tkrJt|ƒ}|j|jksZt‚|| }t ||¡ || }t ||¡ d	}t	j
t|d
�� ||  W 5 Q R X d}t	j
t|d
�� ||  W 5 Q R X d S )Nr:   r;   éZ   rx   r?   Z1sZ2sZ3sz5ufunc '(true_)?divide' cannot use operands with typesr`   z3ufunc 'floor_divide' cannot use operands with types)r   r   r
   r@   r$   r   r   r(   rd   re   rf   rg   )rJ   r-   ro   r.   r   rK   ri   r   r   r   Útest_div_td64arr›   s     z?TestNumericArraylikeArithmeticWithDatetimeLike.test_div_td64arrÚ	scalar_tdrE   ©Údaysztimedelta64[s]ztimedelta64[ms]c                 C  s
   t | ƒjS r   ©rq   rk   rs   r   r   r   ru   Ã   rv   c           
      C  sš   |}|}t dd„ tt|ƒƒD ƒƒ}t|tjƒr@|j}| |¡}nt|ƒt	krV| d¡}t
 ||¡}t
 ||¡}|| }t
 ||¡ || }	t
 |	|¡ d S )Nc                 S  s   g | ]}t |d �‘qS )r}   )r	   )rB   Únr   r   r   rC   É   s     z`TestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar.<locals>.<listcomp>úm8[us])r
   rO   Úlenr$   r   Útimedelta64r@   Úastyperq   r   r(   rP   rd   )
rJ   r|   Únumeric_idxrQ   rh   r%   r   r@   rK   Zcommuter   r   r   Útest_numeric_arr_mul_tdscalarº   s    
zLTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalarc                 C  s
   t | ƒjS r   r   rs   r   r   r   ru   à   rv   r@   c           
      C  sš   |}t  d¡jt jdd�}|j|dd�}tj||dd�}| d¡ d¡}t|ƒtkr^| d¡}tj||dd�}|| }	t 	|	|¡ || }	t 	|	|¡ d S )Ni N  F©Úcopyr_   ztimedelta64[D]ztimedelta64[ns]ztimedelta64[us])
r   Úaranger„   Úint64r(   rP   Úviewrq   r   rd   )
rJ   r@   r|   rQ   rh   Zarr_i8ÚarrrT   r   rK   r   r   r   Ú*test_numeric_arr_mul_tdscalar_numexpr_pathÙ   s    
zYTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_mul_tdscalar_numexpr_pathc           
   	   C  s¾   |}|dd… }t ddgƒ}t|tjƒrR|j}|t d¡k rFt d¡}| |¡}nt|ƒtkrh| d¡}t 	||¡}t 	||¡}|| }t 
||¡ d}	tjt|	d�� ||  W 5 Q R X d S )	NrE   rG   z3 Daysz36 Hoursrx   r�   ú$cannot use operands with types dtyper`   )r
   r$   r   rƒ   r@   r„   rq   r   r(   rP   rd   re   rf   rg   )
rJ   Z
three_daysr…   rQ   rh   r%   r   r@   rK   ri   r   r   r   Útest_numeric_arr_rdiv_tdscalarù   s"    

zMTestNumericArraylikeArithmeticWithDatetimeLike.test_numeric_arr_rdiv_tdscalarr+   é   )Úhourszm8[h]ÚNaTÚDrG   r   z
2021-01-01z
Asia/Tokyo)ÚtzÚUTCÚnsc                 C  s>   |}t  ||¡}d dddddddd	d
dg
¡}t|||ƒ d S )Nú|úunsupported operand typez3Addition/subtraction of integers and integer-arrayszInstead of adding/subtractingrŽ   z;Concatenation operation is not implemented for NumPy arraysz+Cannot (add|subtract) NaT (to|from) ndarrayzBoperand type\(s\) all returned NotImplemented from __array_ufunc__z(can only perform ops with numeric valuesz*cannot subtract DatetimeArray from ndarrayz.Cannot add or subtract Timedelta from integers)r(   rP   Újoinr   )rJ   r…   r+   rQ   rh   r-   ri   r   r   r   Ú&test_add_sub_datetimedeltalike_invalid  s     ôÿzUTestNumericArraylikeArithmeticWithDatetimeLike.test_add_sub_datetimedeltalike_invalidN)"rk   rl   rm   re   ÚmarkÚparametrizer   r   r   r   r<   ry   r{   r	   Zto_timedelta64Zto_pytimedeltar„   r†   rŠ   rI   r�   r�   rƒ   rZ   ÚoffsetsZMinuteZSecondr[   Úto_pydatetimeZto_datetime64Z
datetime64r’   Úreprrš   r   r   r   r   rn   …   sr     ÿ  ÿû÷
ýù	



ïërn   c                   @  sö   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	e
je
jg¡d
d„ ƒZej 	dejejejg¡dd„ ƒZej 	dejejejg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Z d+S ),ÚTestDivisionByZeroc                 C  sv   |}t tjtjtjtjtjgtjd�}t||ƒ}|| }t ||¡ t|ƒ 	d¡t 
|¡ 	d¡ }t |t|ƒ¡ d S ©Nr?   r4   ©r   r   ÚnanÚinfrI   r   r(   Úassert_index_equalr   r„   r   r)   ©rJ   r   r…   Úidxr   Z	expected2rK   Ú
ser_compatr   r   r   Útest_div_zeroG  s    "
z TestDivisionByZero.test_div_zeroc                 C  sv   |}t tjtjtjtjtjgtjd�}t||ƒ}|| }t ||¡ t|ƒ 	d¡t 
|¡ 	d¡ }t |t|ƒ¡ d S r¡   r¢   r¦   r   r   r   Útest_floordiv_zeroT  s    "
z%TestDivisionByZero.test_floordiv_zeroc                 C  sl   |}t tjtjtjtjtjgtjd�}|| }t ||¡ t|ƒ d¡t |¡ d¡ }t 	|t|ƒ¡ d S r¡   )
r   r   r£   rI   r(   r¥   r   r„   r   r)   )rJ   r   r…   r§   r   rK   r¨   r   r   r   Útest_mod_zeroa  s    "z TestDivisionByZero.test_mod_zeroc                 C  s€   |}t tjtjtjtjtjgtjd�}t tjtjtjtjtjgtjd�}t||ƒ}t||ƒ}t |d |¡ t |d |¡ d S )Nr?   r   rE   )	r   r   r£   r¤   rI   r   Údivmodr(   r¥   )rJ   r   r…   r§   ZexleftZexrightrK   r   r   r   Útest_divmod_zeroj  s    ""

z#TestDivisionByZero.test_divmod_zeror,   c                 C  sd   |j tjkrd S |d }ttj tj tj tjtjgtjd�}t||ƒ}|||ƒ}t 	||¡ d S )NrG   r?   )
r@   r   Úuint64r   r¤   r£   rI   r   r(   r¥   )rJ   r   r…   r,   r§   r   rK   r   r   r   Útest_div_negative_zerou  s    (

z)TestDivisionByZero.test_div_negative_zeroÚdtype1c           	   	   C  sÔ   |}t ddddgdd� |¡}t ddddgdd� |¡}tjd	d
��$ t |j tj¡|j dd d�}W 5 Q R X tj|jdd…< |jdkrª|jdkrªt	j
rª|dkrª| d¡}|| }t ||¡ | || ¡rÐt‚d S )NrG   é   rN   é   ÚfirstrV   r   ÚsecondÚignore©r   rI   ©r@   rW   rŠ   Zfloat32)r   r„   r   ÚerrstateÚvaluesrI   r¤   Úilocr@   ÚexprZUSE_NUMEXPRr(   r)   r&   r   )	rJ   Zswitch_numexpr_min_elementsr°   Úany_real_numpy_dtypeÚdtype2r³   r´   r   rK   r   r   r   Útest_ser_div_ser„  s     ý
z#TestDivisionByZero.test_ser_div_serc                 C  sÌ   |}t ddgƒ |¡}t ddgƒ |¡}|| || f}t|ƒ}|d  tj¡|d< tj|d d< t||ƒ}t |d |d ¡ t |d |d ¡ t|j	|ƒ}t |d |d ¡ t |d |d ¡ d S )NrE   r   rF   )
r   r„   Úlistr   rI   r¤   r¬   r(   r)   r¹   )rJ   r°   r¼   r½   r-   r.   r   rK   r   r   r   Útest_ser_divmod_zero¢  s    
z'TestDivisionByZero.test_ser_divmod_zeroc                 C  s–   t tjdgƒ}t tjdgƒ}|| || f}t||ƒ}t |d |d ¡ t |d |d ¡ t|j|ƒ}t |d |d ¡ t |d |d ¡ d S )Nç      ð?ç       @r   rE   )r   r   r¤   r¬   r(   r)   r¹   )rJ   r-   r.   r   rK   r   r   r   Útest_ser_divmod_inf¹  s    
z&TestDivisionByZero.test_ser_divmod_infc                 C  sz   t  dgd ¡}t j d¡}tdgd ƒ}|t|ƒ }t ||¡ t|ƒ| }t ||¡ t|ƒt|ƒ }t ||¡ d S )Nr   rN   rH   )r   r   rX   rY   r   r(   r)   )rJ   Z
zero_arrayÚdatar   rK   r   r   r   Útest_rdiv_zero_compatÈ  s    z(TestDivisionByZero.test_rdiv_zero_compatc                 C  sD   t dddgdd�}t tj tjtjgdd�}|d }t ||¡ d S ©Nr   r   rE   r³   rV   ©r   r   r¤   r£   r(   r)   ©rJ   Úserr   rK   r   r   r   Útest_div_zero_inf_signs×  s    z*TestDivisionByZero.test_div_zero_inf_signsc                 C  s>   t dddgdd�}t dtjdgdd�}d| }t ||¡ d S )Nr   r   rE   r³   rV   rH   )r   r   r£   r(   r)   rÈ   r   r   r   Útest_rdiv_zeroß  s    z!TestDivisionByZero.test_rdiv_zeroc                 C  sD   t dddgdd�}|d }t tj tjtjgdd�}t ||¡ d S rÆ   rÇ   )rJ   rÉ   rK   r   r   r   r   Útest_floordiv_divç  s    z$TestDivisionByZero.test_floordiv_divc                 C  sn   t  ddddgddddgdœ¡}|| }tddddgƒ}ttjtjtjdgƒ}t  ||dœ¡}t ||¡ d S )	NrG   r±   rN   r²   r   ©r³   r´   rÁ   rE   )rZ   Ú	DataFramer   r   r£   r(   Úassert_frame_equal)rJ   ÚdfrK   r³   r´   r   r   r   r   Útest_df_div_zero_dfï  s     z&TestDivisionByZero.test_df_div_zero_dfc              	   C  s¤   t  ddddgddddgdœ¡}tddddgƒ}ttjtjtjdgƒ}t  ||dœ¡}tjd	d
�� |j d¡|j }W 5 Q R X t j||j|j	d�}t
 ||¡ d S )NrG   r±   rN   r²   r   rÍ   rÁ   rE   rµ   r¶   Úfloat©r%   Úcolumns)rZ   rÎ   r   r   r£   r¸   r¹   r„   r%   rÔ   r(   rÏ   )rJ   rÐ   r³   r´   r   rŒ   rK   r   r   r   Útest_df_div_zero_arrayù  s     z)TestDivisionByZero.test_df_div_zero_arrayc              	   C  sª   t  ddddgddddgdœ¡}|d }t jtj|j|jd�}tj|jdd…df< t 	||¡ tj
d	d
�� |j d¡d }W 5 Q R X t j||j|jd�}t 	||¡ d S )NrG   r±   rN   r²   r   rÍ   rÓ   rE   rµ   r¶   rI   )rZ   rÎ   r   r¤   r%   rÔ   r£   rº   r(   rÏ   r¸   r¹   r„   ©rJ   rÐ   rK   r   rŒ   Úresult2r   r   r   Útest_df_div_zero_int  s     z'TestDivisionByZero.test_df_div_zero_intc                 C  sJ   t  tj dd¡¡}|d }|| }|| }| d¡ | d¡¡rFt‚d S ©Nr:   rN   r   ©rZ   rÎ   r   rX   rY   Zfillnar&   r   ©rJ   rÐ   rÉ   ÚresZres2r   r   r   Ú(test_df_div_zero_series_does_not_commute  s
    z;TestDivisionByZero.test_df_div_zero_series_does_not_commutec                 C  sî   t  ddddgddddgdœ¡}tddddgƒ}|s>| d¡}ttjtjtjdgƒ}t  ||dœ¡}|| }t ||¡ t jddddgddddgdœdd	�}tddddgd
d�}ttjtjtjdgƒ}t  ||dœ¡}|| }t ||¡ d S )NrG   r±   rN   r²   r   rÍ   rI   Fr‡   rŠ   r?   )rZ   rÎ   r   r„   r   r£   r(   rÏ   )rJ   Zusing_array_managerrÐ   r³   r´   r   rK   r   r   r   Útest_df_mod_zero_df   s     
$z&TestDivisionByZero.test_df_mod_zero_dfc              	   C  s¸   t  ddddgddddgdœ¡}tddddgdd�}ttjtjtjdgƒ}t  ||dœ¡}tjd	d
�� |j|j }W 5 Q R X t j||j|jdd�}tj|j	dd…df< t
 ||¡ d S )NrG   r±   rN   r²   r   rÍ   rI   r?   rµ   r¶   )r%   rÔ   r@   rE   )rZ   rÎ   r   r   r£   r¸   r¹   r%   rÔ   rº   r(   rÏ   )rJ   rÐ   r³   r´   r   rŒ   r×   r   r   r   Útest_df_mod_zero_array8  s     z)TestDivisionByZero.test_df_mod_zero_arrayc              	   C  s–   t  ddddgddddgdœ¡}|d }t jtj|j|jd�}t ||¡ tjdd	�� |j	 
d
¡d }W 5 Q R X t j||j|jd�}t ||¡ d S )NrG   r±   rN   r²   r   rÍ   rÓ   rµ   r¶   rI   )rZ   rÎ   r   r£   r%   rÔ   r(   rÏ   r¸   r¹   r„   rÖ   r   r   r   Útest_df_mod_zero_intI  s     z'TestDivisionByZero.test_df_mod_zero_intc                 C  sJ   t  tj dd¡¡}|d }|| }|| }| d¡ | d¡¡rFt‚d S rÙ   rÚ   rÛ   r   r   r   Ú(test_df_mod_zero_series_does_not_commuteW  s
    z;TestDivisionByZero.test_df_mod_zero_series_does_not_commuteN)!rk   rl   rm   r©   rª   r«   r­   re   r›   rœ   r    ÚtruedivÚfloordivr¯   r   rŠ   rI   r®   r¾   rÀ   rÃ   rÅ   rÊ   rË   rÌ   rÑ   rÕ   rØ   rÝ   rÞ   rß   rà   rá   r   r   r   r   r    F  s.   	



r    c                	   @  sò   e Zd Zdd„ Zdd„ Zdd„ Zej de	j
eje	jg¡dd	„ ƒZd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej de	jejg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej d ejd!d"d#d$ejg¡d%d&„ ƒZd'd(„ Z d)d*„ Z!d+d,„ Z"d-S ).ÚTestMultiplicationDivisionc                 C  sl   |}t tdƒgƒ}t tdƒgƒ}t ||¡}t ||¡}|tdƒ }t ||¡ |tdƒ }t ||¡ d S )Nr:   rN   rF   )r   r   r(   rP   rd   )rJ   rQ   rh   rÉ   r   rK   r   r   r   Útest_divide_decimale  s    z.TestMultiplicationDivision.test_divide_decimalc                 C  sb   t ddgdd�}t ddgdd�}t dtj gƒ}| |¡}tj||dd	� || }t ||¡ d S )
NrE   r   r³   rV   g{®Gáz„¿g{®Gáz”¿r´   F©Zcheck_names)r   r   r¤   Údivr(   r)   )rJ   r³   r´   r   rK   r   r   r   Útest_div_equiv_binopu  s    
z/TestMultiplicationDivision.test_div_equiv_binopc                 C  sH   |}|d }|  d¡}t ||¡ |d }t|jd ƒ}t ||¡ d S )NrE   rI   rF   )r„   r(   r¥   r   r¹   )rJ   r…   r§   rK   r   r   r   r   Útest_div_intƒ  s    
z'TestMultiplicationDivision.test_div_intr,   c                 C  s*   |}t  ||¡}||dƒ}t  ||¡ d S ©NrE   )r(   rP   rd   )rJ   r,   r…   rQ   r§   rK   r   r   r   Útest_mul_int_identity�  s    
z0TestMultiplicationDivision.test_mul_int_identityc                 C  sd   |}|| }|t jddd� }t ||d ¡ |jt jkr>dnd}|t jd|d� }t ||¡ d S )NrN   rŠ   r?   r®   )r   r   r(   r¥   r@   r®   r‰   )rJ   r…   r§   ÚdidxrK   Ú	arr_dtyper   r   r   Útest_mul_int_array•  s    z-TestMultiplicationDivision.test_mul_int_arrayc                 C  sJ   |}|| }|j tjkrdnd}|ttjd|d�ƒ }t |t|ƒ¡ d S )Nr®   rŠ   rN   r?   )r@   r   r®   r   r‰   r(   r)   )rJ   r…   r§   rì   rí   rK   r   r   r   Útest_mul_int_series   s
    z.TestMultiplicationDivision.test_mul_int_seriesc                 C  sB   |}t jddd�}|t|d ƒ }t||d  ƒ}t ||¡ d S )NrN   rI   r?   gš™™™™™¹?)r   r‰   r   r(   r)   )rJ   r…   r§   Zrng5rK   r   r   r   r   Útest_mul_float_series¨  s
    z0TestMultiplicationDivision.test_mul_float_seriesc                 C  s    |}|| }t  ||d ¡ d S ©NrF   ©r(   r¥   )rJ   r…   r§   rK   r   r   r   Útest_mul_index°  s    z)TestMultiplicationDivision.test_mul_indexc              	   C  s8   |}d}t jt|d�� |tjddd�  W 5 Q R X d S )Nz,cannot perform __rmul__ with this index typer`   Ú20130101rN   ©Zperiods)re   rf   rg   rZ   Ú
date_range©rJ   r…   r§   ri   r   r   r   Útest_mul_datelike_raises¶  s    z3TestMultiplicationDivision.test_mul_datelike_raisesc              	   C  sb   |}d}t jt|d�� ||dd…   W 5 Q R X t jt|d�� |t ddg¡  W 5 Q R X d S )Nz(operands could not be broadcast togetherr`   r   rG   rE   rF   )re   rf   Ú
ValueErrorr   r   r÷   r   r   r   Útest_mul_size_mismatch_raises¼  s    z8TestMultiplicationDivision.test_mul_size_mismatch_raisesc                 C  sJ   |}|}t ||jdƒƒ}t ||¡}t ||¡}||dƒ}t ||¡ d S )NrÂ   ©r   r¹   r(   rP   rd   )rJ   r,   r…   rQ   rh   r§   r   rK   r   r   r   Útest_pow_floatÄ  s    
z)TestMultiplicationDivision.test_pow_floatc                 C  sF   |}|}t |jd ƒ}t ||¡}t ||¡}|d }t ||¡ d S rñ   rû   )rJ   r…   rQ   rh   r§   r   rK   r   r   r   Útest_moduloÑ  s    z&TestMultiplicationDivision.test_moduloc           	   	   C  sj   |}t |dƒ}tjdd�� t |jdƒ\}}W 5 Q R X t|ƒt|ƒf}t||ƒD ]\}}t ||¡ qPd S )NrF   rµ   r¶   )r¬   r   r¸   r¹   r   Úzipr(   r¥   )	rJ   r…   r§   rK   rç   Úmodr   ÚrÚer   r   r   Útest_divmod_scalarÝ  s    
z-TestMultiplicationDivision.test_divmod_scalarc           
   	   C  s„   |}t j|jj|jjd�d }t||ƒ}t jdd�� t|j|ƒ\}}W 5 Q R X t|ƒt|ƒf}t||ƒD ]\}}	t	 
||	¡ qjd S ©Nr?   rF   rµ   r¶   )r   Úonesr¹   Úshaper@   r¬   r¸   r   rþ   r(   r¥   ©
rJ   r…   r§   r+   rK   rç   rÿ   r   r   r  r   r   r   Útest_divmod_ndarrayè  s    
z.TestMultiplicationDivision.test_divmod_ndarrayc           
   	   C  sˆ   |}t j|jj|jjd�d }t|t|ƒƒ}t jdd�� t|j|ƒ\}}W 5 Q R X t|ƒt|ƒf}t||ƒD ]\}}	t	 
||	¡ qnd S r  )r   r  r¹   r  r@   r¬   r   r¸   rþ   r(   r)   r  r   r   r   Útest_divmod_seriesô  s    z-TestMultiplicationDivision.test_divmod_seriesr+   é   iéÿÿÿgX9´Èv¾@g…ëQ¸	Àc                 C  sš   t j dd¡}dd„ }||ƒ}t |t  |¡ ||| ƒ¡ t t  |¡| ||| ƒ¡ t |t  |¡ ||| ƒ¡ t t  |¡| ||| ƒ¡ d S )NrN   rG   c                 S  s   t j| tdƒdddgd�S )NZABCDEZjimZjoeZjolierÓ   )rZ   rÎ   r¿   rs   r   r   r   ru     s     ÿz?TestMultiplicationDivision.test_ops_np_scalar.<locals>.<lambda>)r   rX   rY   r(   rÏ   r   )rJ   r+   ÚvalsÚfrÐ   r   r   r   Útest_ops_np_scalar   s    z-TestMultiplicationDivision.test_ops_np_scalarc                 C  s�   t  ¡ }d|_t d|i¡}t j|| ||d  dd� t j|| ||d  dd� t j||k ||d k dd� t j|| ||d  dd� d S )NrS   ÚAFræ   )r(   ÚmakeTimeSeriesrW   rZ   rÎ   r)   )rJ   rS   rÐ   r   r   r   Útest_operators_frame  s    z/TestMultiplicationDivision.test_operators_framec              	   C  s(  t jdd��� t ddddgddddgdœ¡}|d	 |d
  }t|d	 j|d
 j dd�}t j|jdd…< t 	||¡ |d	 d }tt j|j
d	d�}t 	||¡ | d¡}|d	 |d
  }t|d	 j|d
 j ƒ}t 	||¡ | d¡}|d	 |d
  }|d
 |d	  }| |¡�rt‚W 5 Q R X d S )Nrµ   r¶   rG   r±   rN   r²   r   rÍ   r³   r´   rI   r?   ©r%   rW   )r   r¸   rZ   rÎ   r   r¹   r£   rº   r(   r)   r%   r„   r&   r   )rJ   ÚprK   r   r×   r   r   r   Útest_modulo2  s"     

z'TestMultiplicationDivision.test_modulo2c              	   C  sn   t jdd��X tddgƒ}|d }tt jt jgƒ}t ||¡ d| }tt jdgƒ}t ||¡ W 5 Q R X d S )Nrµ   r¶   r   rE   rH   )r   r¸   r   r£   r(   r)   )rJ   ÚsrK   r   r   r   r   Útest_modulo_zero_int4  s    z/TestMultiplicationDivision.test_modulo_zero_intN)#rk   rl   rm   rå   rè   ré   re   r›   rœ   r    Úmulr   Zrmulrã   rë   rî   rï   rð   ró   rø   rú   r!   r   rü   rý   r  r  r  r   r£   r¤   r  r  r  r  r   r   r   r   rä   a  s,   



rä   c                   @  sL  e Zd Zej dedddgedƒdd�edddgedƒdd�ed	d
ej	ej	gedƒdd�fedddgedƒdd�eddddgedƒdd�edddej	gedƒdd�fg¡dd„ ƒZ
ej dejddddgiedƒd�ejddddgiedƒd�ejdd	d
ej	ej	giedƒd�fejddddgiedƒd�ejdddddgiedƒd�ejddddej	giedƒd�fg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dd¡dd „ ƒZejjd!d"d#„ d$d#„ d%d#„ gd&d'd(gd)�d*d+„ ƒZejjd!d,d#„ d-d#„ gd.d(gd)�d/d0„ ƒZejjd!d1d#„ d2d#„ d3d#„ gd&d'd(gd)�d4d5„ ƒZd6d7„ Zd8S )9ÚTestAdditionSubtractionzfirst, second, expectedrE   rF   rG   ÚABCrt   r  ZABDç      @ç      @ÚABCDr±   rN   c                 C  s$   t  || |¡ t  || |¡ d S r   )r(   r)   ©rJ   r³   r´   r   r   r   r   Útest_add_seriesF  s    z'TestAdditionSubtraction.test_add_series©r%   c                 C  s$   t  || |¡ t  || |¡ d S r   )r(   rÏ   r  r   r   r   Útest_add_framesZ  s    z'TestAdditionSubtraction.test_add_framesc           	   	   C  sØ   t t dd¡ƒ}d| }| dd„ ¡}t ||¡ t d|i¡}d| }t d| dd„ ¡i¡}t ||¡ t ¡ }d|_	| 
¡ }d	 d
dg¡}tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X d S )NrN   r:   Úfoo_c                 S  s   d|  S ©Nr  r   rs   r   r   r   ru   s  rv   zDTestAdditionSubtraction.test_series_frame_radd_bug.<locals>.<lambda>r
  c                 S  s   d|  S r   r   rs   r   r   r   ru   x  rv   rS   r—   r˜   zConcatenation operationr`   )r   r(   Zrands_arrayÚmapr)   rZ   rÎ   rÏ   r  rW   rž   r™   re   rf   rg   )	rJ   rR   r
  rK   r   ÚframerS   Zfix_nowri   r   r   r   Útest_series_frame_radd_bugo  s(    ýÿz2TestAdditionSubtraction.test_series_frame_radd_bugc              	   C  s  t tj d¡ƒ}||j ¡  }||j }t ||¡ t tj	ddd�tj	ddd�d�}||j ¡  }||j }t ||¡ d}t
jt|d�� ||j ¡  }W 5 Q R X tjtj dd¡tj	ddd�d�}t d¡|d	< |d	 |j ¡  |d
< |d	 |j |d< tj|d |d
 dd� d S )NrN   rô   rõ   r  z.cannot subtract PeriodArray from DatetimeArrayr`   rF   Z20130102Údater   rK   Fræ   )r   r   rX   rY   r%   Z	to_seriesr(   r)   rZ   rö   re   rf   rg   Z	to_periodrÎ   r[   )rJ   rÉ   r   rK   ri   rÐ   r   r   r   Útest_datetime64_with_indexŽ  s,    
þ
 ÿz2TestAdditionSubtraction.test_datetime64_with_indexc                 C  sð   |}t j d¡}t|t  |j¡d�}|| }|| }| ¡ D ]P\}}| ¡ D ]>\}	}
|| |	 d }t  |
¡s||
|ksŠt‚qLt  |¡sLt‚qLq<| ¡ D ]T\}}| ¡ D ]B\}	}
|| |	 ||  }t  |
¡sÚ|
|ksèt‚q¦t  |¡s¦t‚q¦q–d S )Nr±   r  rF   )r   rX   r   r   rÔ   ÚitemsÚisnanr   )rJ   Úfloat_framer"  ÚgarbageZ	colSeriesZidSumZ	seriesSumÚcolr*   r§   ÚvalZorigValr   r   r   Útest_frame_operators­  s"    

z,TestAdditionSubtraction.test_frame_operatorsc                 C  s6   t j|ddddgd�}|| }|d }t ||¡ d S )Nr“   ÚCÚBr  )rÔ   rF   )rZ   rÎ   r(   rÏ   )rJ   r(  Zframe2Úaddedr   r   r   r   Útest_frame_operators_col_alignÆ  s    z6TestAdditionSubtraction.test_frame_operators_col_alignc              	   C  s:   t  ddd dgi¡}t || t  ddtjdgi¡¡ d S )Nr\   r]   ZaaZbb)rZ   rÎ   r(   rÏ   r   r£   )rJ   rÐ   r   r   r   Ú test_frame_operators_none_to_nanÌ  s    z8TestAdditionSubtraction.test_frame_operators_none_to_nanr@   )rÒ   rŠ   c                 C  sZ   t j|d�t jdg|d�t jdg|d�g}|D ]&}||  |¡sDt‚t || |¡ q.d S )Nr?   r  )rÔ   r@   r   ©r%   r@   )rZ   rÎ   r&   r   r(   rÏ   )rJ   r@   ÚframesrÐ   r   r   r   Útest_frame_operators_empty_likeÐ  s    
ýz7TestAdditionSubtraction.test_frame_operators_empty_likeÚfuncc                 C  s   | d S rñ   r   rs   r   r   r   ru   Þ  rv   z TestAdditionSubtraction.<lambda>c                 C  s   | d d d… S rñ   r   rs   r   r   r   ru   Þ  rv   c                 C  s   dS rM   r   rs   r   r   r   ru   Þ  rv   ÚmultiplyÚsliceZconstantrw   c                 C  s*   |}t  ¡  d¡}||ƒ}t|||ƒ d S ©NrS   ©r(   r  Úrenamer0   )rJ   Zall_arithmetic_functionsr5  r,   r*   r+   r   r   r   Ú test_series_operators_arithmeticÜ  s    z8TestAdditionSubtraction.test_series_operators_arithmeticc                 C  s   | d S rê   r   rs   r   r   r   ru   è  rv   c                 C  s   dS rM   r   rs   r   r   r   ru   è  rv   Úaddc                 C  s*   |}t  ¡  d¡}||ƒ}t|||ƒ d S r8  r9  )rJ   Zcomparison_opr5  r,   r*   r+   r   r   r   Útest_series_operators_compareç  s    z5TestAdditionSubtraction.test_series_operators_comparec                 C  s   | d S rñ   r   rs   r   r   r   ru   ò  rv   c                 C  s   | d d d… S rñ   r   rs   r   r   r   ru   ò  rv   c                 C  s   dS rM   r   rs   r   r   r   ru   ò  rv   c           
   	   C  sê   t  ¡  d¡}||ƒ}t||ƒ}t|tjƒrbt|ƒt|ƒkrbg }|D ]}| |¡ | t	j
¡ qDn|}t	 |¡}t	jdd�� t|jt	 |¡ƒ}W 5 Q R X t||ƒD ]@\}}	t  t	 |¡|	¡ |j|jksÎt‚t  |j|j d ¡¡ q¤d S )NrS   rµ   r¶   )r(   r  r:  r¬   r$   r   ÚIterabler‚   Úappendr   r£   Zasarrayr¸   r¹   rþ   Zassert_almost_equalrW   r   r¥   r%   r'   )
rJ   r5  r*   r+   ÚresultsZother_npr€   Ú	expectedsrK   r   r   r   r   Útest_divmodð  s     


z#TestAdditionSubtraction.test_divmodc                 C  s|   t  ¡  d¡}|d }t||ƒ}ttjgt|ƒ |jdd�}ttj	gt|ƒ |jdd�}t  
|d |¡ t  
|d |¡ d S )NrS   r   r  rE   )r(   r  r:  r¬   r   r   r¤   r‚   r%   r£   r)   )rJ   Ztserr+   rK   Úexp1Úexp2r   r   r   Útest_series_divmod_zero  s    
z/TestAdditionSubtraction.test_series_divmod_zeroN)rk   rl   rm   re   r›   rœ   r   r¿   r   r£   r  rZ   rÎ   r  r#  r%  r,  r0  r1  r4  r;  r=  rB  rE  r   r   r   r   r  B  sh   ýýúþ
 ýýúþ

ý
  ÿ
ý
r  c                   @  s²   e Zd Zej deeeg¡ej de	j
e	je	jg¡dd„ ƒƒZej deeg¡ej de	j
e	je	jg¡dd„ ƒƒZej deeg¡ej de	j
e	je	jg¡dd„ ƒƒZd	d
„ ZdS )ÚTestUFuncCompatÚholderr@   c                 C  s�   |t krt nt}|tkrD|tjkr4t d|› d�¡ tdddd�}n|tjd|d�dd�}t |¡}|t tjd|d�¡dd�}t	 
||¡ d S )Nzdtype z not relevant for RangeIndexr   rN   ÚfoorV   r?   )r   r   r   r   rŠ   re   Úskipr‰   Úsinr(   rd   )rJ   rG  r@   rh   r§   rK   r   r   r   r   Útest_ufunc_compat!  s    

z!TestUFuncCompat.test_ufunc_compatc              	   C  s:  |dddddg|dd�}|t kr$t nt}t |¡}|jdkrFt||ƒsJt‚tt tjdddddgtjd	�¡dd
�}t	 
||¡}t	 ||¡ t |d¡}|jdkrªt||ƒs®t‚tdddddgtjdd�}t	 
||¡}t	 ||¡ |d }|jdkrþt||ƒ�st‚tdddddgtjdd�}t	 
||¡}t	 ||¡ |d }|jdk�rTt||ƒ�sXt‚tdddddgtjdd�}t	 
||¡}t	 ||¡ |d }|jdk�rªt||ƒ�s®t‚tdddddgtjdd�}t	 
||¡}t	 ||¡ |d }|jdk�r t||ƒ�st‚tdddddgtjdd�}t	 
||¡}t	 ||¡ d S )NrE   rF   rG   r±   rN   rt   r·   r9   r?   rV   rÂ   g      à?rÁ   g      ø?g      @r  r  g      @g      @g      @g      ð¿rH   )r   r   r   Úsqrtr@   r$   r   r   rI   r(   rP   rd   Údivide)rJ   rG  r@   r§   rh   rK   Úexpr   r   r   Útest_ufunc_coercions1  s@    
(z$TestUFuncCompat.test_ufunc_coercionsc                 C  sœ   |dddg|dd�}|t kr t nt}t |¡}t|tƒs<t‚tdddgtjdd�}tddd	gtjdd�}t 	|d
 t 
||¡¡ t 	|d t 
||¡¡ d S )NrE   rF   rG   rt   r·   rH   rÁ   rÂ   r  r   )r   r   r   Úmodfr$   Útupler   rI   r(   rd   rP   )rJ   rG  r@   rT   rh   rK   rC  rD  r   r   r   Ú!test_ufunc_multiple_return_values]  s    
z1TestUFuncCompat.test_ufunc_multiple_return_valuesc                 C  sX   t dddgdddgdd�}tj |ddgd¡ t dddgdddgdd�}t ||¡ d S )	Nr   rE   rF   rG   rt   r  r:   é   )r   r   r<  Úatr(   r)   )rJ   r  r   r   r   r   Útest_ufunc_atj  s    zTestUFuncCompat.test_ufunc_atN)rk   rl   rm   re   r›   rœ   r   r   r   r   rŠ   r®   rI   rK  rO  rR  rU  r   r   r   r   rF    s   *rF  c                   @  sj   e Zd Zej ddeg¡dd„ ƒZej ddeg¡dd„ ƒZej de	j
e	je	je	je	jg¡dd	„ ƒZdS )
ÚTestObjectDtypeEquivalencer@   Nc                 C  sv   |}t dddg|d�}t tjtjtjg|d�}t ||¡}t ||¡}tj| }t ||¡ |tj }t ||¡ d S )NrE   rF   rG   r?   )r   r   r£   r(   rP   rd   ©rJ   r@   rQ   rh   rÉ   r   rK   r   r   r   Útest_numarr_with_dtype_add_nant  s    

z9TestObjectDtypeEquivalence.test_numarr_with_dtype_add_nanc                 C  sl   |}t dddg|d�}t dddg|d�}t ||¡}t ||¡}d| }t ||¡ |d }t ||¡ d S )NrE   rF   rG   r?   r±   )r   r(   rP   rd   rW  r   r   r   Útest_numarr_with_dtype_add_intƒ  s    z9TestObjectDtypeEquivalence.test_numarr_with_dtype_add_intr,   c                 C  sL   t tj d¡t d¡td�}|d|ƒ}|d| t¡ƒ}t 	| t¡|¡ d S )Nr:   r2  rÁ   )
r   r   rX   rY   r‰   Úobjectr„   rÒ   r(   r)   )rJ   r,   rŒ   rK   r   r   r   r   Útest_operators_reverse_object“  s    
z8TestObjectDtypeEquivalence.test_operators_reverse_object)rk   rl   rm   re   r›   rœ   rZ  rX  rY  r    r<  Úsubr  râ   rã   r[  r   r   r   r   rV  q  s   

þrV  c                   @  sè  e Zd Zej dejejej	ej
ejg¡ej dedddƒedddƒedddƒed	d
dƒg¡ej dedddƒedddƒedddƒed	d
dƒg¡dd„ ƒƒƒZej dejejej	ej
ejg¡ej dedddƒedddƒedddƒed	d
dƒg¡ej ddddg¡dd„ ƒƒƒZej dedddƒedddƒg¡ej dedddƒedddƒg¡dd„ ƒƒZej dedddƒedddƒg¡ej dddg¡dd„ ƒƒZej dejejej	ej
ejejejg¡dd„ ƒZdd„ Zej dedddƒdedddƒfeddd ƒd ed!d"dƒfedddƒdeedddƒjƒd fedd#dƒd$eedd#dƒjƒd$ fedƒd%edƒfedd&dƒd'edddƒfed
dd(ƒd&ed)ddƒfed*d+d'ƒdedƒfg¡d,d-„ ƒZej d.ejejg¡ej d/dddg¡d0d1„ ƒƒZd2S )3ÚTestNumericArithmeticUnsortedr,   Úidx1r   r:   rE   r=   rF   iöÿÿÿrN   éûÿÿÿr   Úidx2c                 C  sL   |  d¡}|  d¡}|||ƒ}|t| ¡ ƒt| ¡ ƒƒ}tj||dd� d S ©NrH  ÚbarÚequiv©Úexact)Ú_renamer   Úto_numpyr(   r¥   )rJ   r,   r^  r`  rK   r   r   r   r   Útest_binops_index£  s
    


z/TestNumericArithmeticUnsorted.test_binops_indexr§   Úscalarc                 C  s0   |||ƒ}|t | ¡ ƒ|ƒ}tj||dd� d S ©Nrc  rd  )r   rg  r(   r¥   )rJ   r,   r§   ri  rK   r   r   r   r   Útest_binops_index_scalarÆ  s    
z6TestNumericArithmeticUnsorted.test_binops_index_scalarc                 C  sL   |  d¡}|  d¡}t||ƒ}tt| ¡ ƒt| ¡ ƒƒ}tj||dd� d S ra  )rf  r!   r   rg  r(   r¥   )rJ   r^  r`  rK   r   r   r   r   Útest_binops_index_powß  s
    


z3TestNumericArithmeticUnsorted.test_binops_index_powc                 C  s0   t ||ƒ}t t| ¡ ƒ|ƒ}tj||dd� d S rj  )r!   r   rg  r(   r¥   )rJ   r§   ri  rK   r   r   r   r   Útest_binops_index_scalar_powê  s    
z:TestNumericArithmeticUnsorted.test_binops_index_scalar_powc                 C  s~   t dƒ}ttj d¡ƒ}|t|ƒ|ƒ}|||ƒ}t ||¡ t tj dd¡¡}|t ||g¡|ƒ}|||ƒ}t 	||¡ d S )NrN   rF   )
r   r   r   rX   rY   r(   r)   rZ   rÎ   rÏ   )rJ   r,   r%   r+   r   rK   r   r   r   Ú$test_arithmetic_with_frame_or_seriesô  s    

zBTestNumericArithmeticUnsorted.test_arithmetic_with_frame_or_seriesc                 C  sJ  t dddƒ}|d }t dddƒ}tj||dd� |d }t dddƒ}tj||dd� |d }t d	d
dƒ}tj||dd� |d }t dddƒ d¡}tj||dd� |d }t dddƒd }tj||dd� |d }|}tj||dd� || }t|j|j ƒ}tj||dd� t dddƒ}|d }t|jƒd }tjt|jƒ|dd� d S )Nr   r:   rF   r=   r±   Trd  rS  éþÿÿÿr²   rN   rE   rI   éè  )r   r(   r¥   r„   r   r¹   Ú_values)rJ   r§   rK   r   r   r   r   Útest_numeric_compat2  s4    z2TestNumericArithmeticUnsorted.test_numeric_compat2zidx, div, expectedrp  iô  i�ÿÿÿi7ÿÿÿéýÿÿÿé!   éC   éd   rÂ   é2   r±   rG   iúÿÿÿro  iœÿÿÿi8ÿÿÿc                 C  s   t j|| |dd� d S )NTrd  rò   )rJ   r§   rç   r   r   r   r   Útest_numeric_compat2_floordiv8  s    z;TestNumericArithmeticUnsorted.test_numeric_compat2_floordivr@   Údeltac                 C  s    ||ƒ}t dddg|d�}|| }t |j| |d�}t ||¡ || }t |j| |d�}t ||¡ t || d| ¡ t || d| ¡ || jrœt‚d S )Nr:   é   rS  r?   rF   r   )r   r¹   r(   r¥   Úemptyr   )rJ   r@   ry  r%   rK   r   r   r   r   Útest_addsub_arithmeticR  s    z4TestNumericArithmeticUnsorted.test_addsub_arithmeticN)rk   rl   rm   re   r›   rœ   r    r<  r\  r  rã   râ   r   rh  rk  rl  rm  r!   rÿ   rn  rr  r   rq  rx  r   rŠ   rI   r|  r   r   r   r   r]     s¬   ûþ




üþ	



üþ	ûþ




üþ	  	 ùþ
)
ý
ýïþ
r]  c                  C  s~   t  dddgdd dgdœ¡} t jddddgiddd	gd
�}| j|dd�}t  tjdddgdtjdtjgdœ¡}t ||¡ d S )Nr   rE   rF   gš™™™™™ñ?)r  r.  r  g333333ó?gÍÌÌÌÌÌô?rG   r  ©Z
fill_valuerÁ   rH   )rZ   rÎ   Z	rfloordivr   r¤   r£   r(   rÏ   )rÐ   r+   rK   r   r   r   r   Útest_fill_value_inf_maskingf  s    ÿr~  c               	   C  s�   t jt d¡tjddddgd tjgd t d¡dœtdƒtdƒd	�} t jtj dd¡td
ƒtdƒd	�}t 	d ¡� | j
|dd� W 5 Q R X d S )Nr:   rE   rF   rG   r±   )r  r.  r-  r“   Z
abcdefghijr  rÓ   Z
abcdefghjkZABCXr   r}  )rZ   rÎ   r   r‰   r£   r¿   rX   rY   r(   Zassert_produces_warningrç   )Zpdf1Zpdf2r   r   r   Útest_dataframe_div_silencedt  s     
üø
  ÿr  zdata, expected_datarE   rF   r±   c           
      C  s|   t |dd�}| |ƒ}|||ƒ }||ƒ| }t|| fkr>t}nt|| fkrPt}nt }||dd�}	t ||	¡ t ||	¡ d S )NZInt64r?   )r   r   r   r(   rd   )
r   Zbox_1d_arrayrÄ   Zexpected_datarŒ   Ú	containerr-   r.   Úclsr   r   r   r   Ú test_integer_array_add_list_like‡  s    r‚  c                  C  s‚   t jdtj d¡it jjddgdddggddgd	�d
�} |  ¡ }|j 	dd¡|_| | }t jdgd dg| jd�}t
 ||¡ d S )Nr\   é   r]   r   rE   rF   ZlevAZlevB)Únamesr  rH   )rÔ   r%   )rZ   rÎ   r   rX   rY   Z
MultiIndexZfrom_productrˆ   r%   Z	swaplevelr(   rÏ   )rÐ   Zdf2rK   r   r   r   r   Ú"test_sub_multiindex_swapped_levels¡  s     ÿþr…  ÚpowerrN   Ústring_sizec                 C  sX   t  td|  ƒ¡}tj|t jd�}d| }||k}t t j|jtd�¡}t	 
||¡ d S )Nr:   r?   ú )r   r   rO   rZ   rÎ   rŠ   rb   r  rc   r(   rÏ   )r†  r‡  r\   r.   r-   rK   r   r   r   r   Útest_empty_str_comparison°  s    r‰  c                  C  sp   t dddgƒ} t dddgdd�}| | }t dddgdd�}t ||¡ | | }t ddd	gdd�}t ||¡ d S )
NrE   rF   rG   ZUInt64r?   rƒ  ZFloat64r   r   )r   r(   r)   )Zseries1Zseries2rK   r   r   r   r   Útest_series_add_sub_with_UInt64½  s    rŠ  )8Ú
__future__r   Úcollectionsr   Údatetimer   Údecimalr   r    Únumpyr   re   ZpandasrZ   r   r   r   r	   r
   r   Zpandas._testingZ_testingr(   Zpandas.corer   Zpandas.core.computationr   r»   Zpandas.tests.arithmetic.commonr   r   ZfixtureZto_arrayr   r   r0   Z_ldtypesr<   Ú__annotations__ÚextendrD   rn   r    rä   r  rF  rV  r]  r~  r  r›   rœ   r‚  r…  r‰  rŠ  r   r   r   r   Ú<module>   s^     
7 B   b ^R/ Gþ
