a
    oÝEb< ã                   @   s4  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Zd dl	Z	d dl
m  mZ d dlZd dlmZmZmZmZ d dlmZ d dlm  mZ d dlmZ d dlmZm Z  d dl!m"Z"m#Z# ej$dd	d d
gd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*dd„ Z+dd„ Z,ej- .d¡dd „ ƒZ/G d!d"„ d"ƒZ0d#d$„ Z1d%d&„ Z2d'd(„ Z3d)d*„ Z4ej- 5d+ed,d-gd.d/gge6d0ƒd1�d2fed,d3gd.d3gge6d0ƒd1�d4fg¡d5d6„ ƒZ7d7d8„ Z8ej- 5d9ed:d:gƒged:d:gƒed:d:gƒgg¡d;d<„ ƒZ9d=d>„ Z:d?d@„ Z;dAdB„ Z<dCdD„ Z=dS )Eé    )Údeque)ÚdatetimeN)Ú	DataFrameÚIndexÚ
MultiIndexÚSeries)Úexpressions)Ú_MIN_ELEMENTSÚNUMEXPR_INSTALLED)Ú_check_mixed_floatÚ_check_mixed_intTÚmodulei@B ZnumexprÚpython)ZautouseÚscopeÚparamsÚidsc                 c   s    t j}| jt _| jV  |t _d S ©N)Úexprr	   Úparam)Úrequestr	   © r   úb/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/frame/test_arithmetic.pyÚswitch_numexpr_min_elements!   s    r   c                   @   sT   e Zd Zdd„ Zdd„ Zedœdd„Zedœdd	„Zddd„Zdd„ Z	ddd„Z
dS )ÚDummyElementc                 C   s   || _ t |¡| _d S r   )ÚvalueÚnpÚdtype)Úselfr   r   r   r   r   Ú__init__,   s    zDummyElement.__init__c                 C   s   t j| j| jd�S )N©r   )r   Úarrayr   r   ©r   r   r   r   Ú	__array__0   s    zDummyElement.__array__)Úreturnc                 C   s   d| j › d| j› d�S )NzDummyElement(z, ú))r   r   r!   r   r   r   Ú__str__3   s    zDummyElement.__str__c                 C   s   t | ƒS r   )Ústrr!   r   r   r   Ú__repr__6   s    zDummyElement.__repr__Fc                 C   s
   || _ | S r   r   )r   r   Úcopyr   r   r   Úastype9   s    zDummyElement.astypec                 C   s   t | ƒ| j |¡|ƒS r   )Útyper   Úview)r   r   r   r   r   r+   =   s    zDummyElement.viewNc                 C   s
   t | jƒS r   )Úboolr   )r   Úaxisr   r   r   Úany@   s    zDummyElement.any)F)N)Ú__name__Ú
__module__Ú__qualname__r   r"   r&   r%   r'   r)   r+   r.   r   r   r   r   r   +   s   
r   c                   @   sT  e Zd Zdd„ Zdd„ Zej dej	j
ddd�ejddd	�d
œej	j
ddd�ej	j
ddd�d
œgej	j
ddd�ej	j
ddd�d
œej	j
ddd�ejddd	�d
œgejddd	�ejddd	�d
œej	j
ddd�ej	j
ddd�d
œgej	j
ddd�ejddd	�d
œejddd	�ejddd	�d
œgg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestFrameComparisonsc                 C   s^   t dg d¢iƒ}t dg d¢iƒ}|dk}t ||¡ |d  d¡|d< |dk}t ||¡ d S )NÚA)ÚfooÚbarÚbaz)TFFr4   Úcategory)r   ÚtmÚassert_frame_equalr)   )r   ÚdfÚexpÚresr   r   r   Ú&test_comparison_with_categorical_dtypeK   s    z;TestFrameComparisons.test_comparison_with_categorical_dtypec                 C   sX   t tj dd¡tdƒd�}d}tjt|d�� |dv  W d   ƒ n1 sJ0    Y  d S )Né   é   ÚABCD©Úcolumnsz+The truth value of a DataFrame is ambiguous©Úmatchr   )r   r   ÚrandomÚrandnÚlistÚpytestÚraisesÚ
ValueError)r   r:   Úmsgr   r   r   Útest_frame_in_listZ   s    z'TestFrameComparisons.test_frame_in_listz	arg, arg2é
   ©ÚsizeÚ20010101©Úperiods©ÚaÚbc                    sr  t |ƒ‰ t |ƒ‰ˆ ˆk}t ‡ ‡fdd„ˆ jD ƒˆ jˆ jd�}t ||¡ ˆ ˆk}t ‡ ‡fdd„ˆ jD ƒˆ jˆ jd�}t ||¡ g d¢}d |¡}tjt|d�� ˆ ˆk W d   ƒ n1 s¾0    Y  tjt|d�� ˆ ˆk W d   ƒ n1 sô0    Y  tjt|d�� ˆ ˆk  W d   ƒ n1 �s,0    Y  tjt|d�� ˆ ˆk W d   ƒ n1 �sd0    Y  d S )Nc                    s   i | ]}|ˆ | ˆ| k“qS r   r   ©Ú.0Úcol©ÚxÚyr   r   Ú
<dictcomp>—   ó    z@TestFrameComparisons.test_comparison_invalid.<locals>.<dictcomp>©ÚindexrB   c                    s   i | ]}|ˆ | ˆ| k“qS r   r   rV   rY   r   r   r\   Ÿ   r]   )z=Invalid comparison between dtype=datetime64\[ns\] and ndarrayzinvalid type promotionzbThe DTypes <class 'numpy.dtype\[.*\]'> and <class 'numpy.dtype\[.*\]'> do not have a common DType.ú|rC   )	r   rB   r_   r8   r9   ÚjoinrH   rI   Ú	TypeError)r   ÚargZarg2ÚresultÚexpectedZmsgsrK   r   rY   r   Útest_comparison_invalida   s4    0ýý	
&&(z,TestFrameComparisons.test_comparison_invalidc           
   	   C   s  t tjddd�tjddd�tjjddd�tj d¡tt 	d¡ƒdœƒ}tj
|jtj t|ƒ¡dkd	f< d
ddddddœ}| ¡ D �]’\}}tt|ƒ}tt|ƒ}|dv rÔ||t d¡ƒ}|t d¡|ƒ}t ||¡ n„d}	tjt|	d��  ||t d¡ƒ W d   ƒ n1 �s0    Y  tjt|	d��  |t d¡|ƒ W d   ƒ n1 �sN0    Y  |dv �r�||t d¡ƒ}|t d¡|ƒ}t ||¡ q€d}	tjt|	d��  ||t d¡ƒ W d   ƒ n1 �sÊ0    Y  tjt|	d��  |t d¡|ƒ W d   ƒ q€1 �s
0    Y  q€d S )NrP   rM   rQ   Z20010102i Êš;rN   )Zdates1Údates2ZintcolZfloatcolZ	stringcolg      à?rg   ÚltÚgtÚleÚgeÚeqÚne)ri   rh   rk   rj   rl   rm   )rl   rm   Z20010109zL'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'Timestamp'rC   ZnatzJ'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'NaTType')r   ÚpdÚ
date_ranger   rE   ÚrandintrF   rG   r8   ZrandsÚNaTÚlocÚrandÚlenÚitemsÚgetattrÚoperatorÚ	Timestampr9   rH   rI   rb   )
r   r:   ÚopsÚleftÚrightZleft_fZright_fre   rd   rK   r   r   r   Útest_timestamp_compare¸   sB    
ûÿ	 

ÿ00
ÿ0z+TestFrameComparisons.test_timestamp_comparec                 C   s\   t ddgddggƒ}t ddgddggƒ}||k}| ¡  ¡ r@J ‚||k}| ¡  ¡ sXJ ‚d S )Nz
1989-08-01é   é   rT   rU   ÚcÚd)r   r.   Úall)r   r:   Úotherrd   r   r   r   Útest_mixed_comparisonè   s    z*TestFrameComparisons.test_mixed_comparisonc                 C   s^   t t d¡ d¡ƒ}t ddgddgddggƒ}|dk}t ||¡ |ddgk}t ||¡ d S )Nr>   ©é   r~   FT©r~   r~   r~   )r   r   ÚarangeÚreshaper8   r9   )r   r:   re   rd   r   r   r   Ú test_df_boolean_comparison_errorõ   s    z5TestFrameComparisons.test_df_boolean_comparison_errorc                 C   s>   t tj dd¡tdƒg d¢d�}| d ¡}| ¡  ¡ r:J ‚d S )Né   r…   ©r3   ÚBÚCr^   )r   r   rE   rF   ÚrangeÚ__eq__r.   ©r   r:   rd   r   r   r   Útest_df_float_none_comparison  s     
z2TestFrameComparisons.test_df_float_none_comparisonc                 C   s¼   t dddœdddœgƒ}|jdk}t || |jdd…d d …f ¡ t ||  |jdd…d d …f ¡ |jdk}t || |jdd…d d …f ¡ t ||  |jdd…d d …f ¡ d S )Nr}   r4   rS   r~   r5   r   )r   rT   r8   r9   rr   rU   )r   r:   Zmask_aZmask_br   r   r   Útest_df_string_comparison	  s    
"$
"z.TestFrameComparisons.test_df_string_comparisonN)r/   r0   r1   r=   rL   rH   ÚmarkÚparametrizer   rE   rp   rn   ro   rf   r|   rƒ   r‰   r‘   r’   r   r   r   r   r2   H   sP   þþûþþûþþûþþûáþ-
*0r2   c                   @   sh   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡dd„ ƒZ
ej 	d	g d
¢¡dd„ ƒZdd„ ZdS )ÚTestFrameFlexComparisonsc              	   C   s$  t j dd¡}t j dd¡}t|ƒ}t|ƒ}t  |jd ¡}dd„ }| |¡j ¡ sXJ ‚| 	|¡j 
¡ rlJ ‚dD ]Â}t||ƒ}tt|ƒ}	t ||ƒ|	||ƒ¡ |||	||ƒ t ||jƒ|	||jƒ¡ t |dƒ|	|dƒ¡ d}
t |t jƒ|	|t jƒ¡ tjt|
d	�� ||ƒ W d   ƒ qp1 �s(0    Y  qpd
d„ }tt j d¡ƒ}tt j d¡ƒ}||||ƒ |||j|jƒ t j|jd< | |¡}|jd �ržJ ‚| 	|¡}|jd �s¸J ‚| |¡}|jd �rÒJ ‚| |¡}|jd �rìJ ‚| |¡}|jd �rJ ‚| |¡}|jd �r J ‚d S )Né   r…   )r}   r…   c                 S   sJ   |j dd …dd …f  ¡ }| |ƒ}|||j|j|jd�ƒ}t ||¡ d S )Nr…   r}   r^   )rr   r(   Úreindexr_   rB   r8   r9   )ÚmethÚopr:   r‚   Zpart_oÚrsZxpr   r   r   Ú_check_unaligned_frame  s    zMTestFrameFlexComparisons.test_bool_flex_frame.<locals>._check_unaligned_frame©rl   rm   ri   rh   rk   rj   r   ú$Unable to coerce to Series/DataFramerC   c                 S   s°  | j |dd�}|   |¡}| j|dd�}|  |¡}t || t|ƒk¡ t || ¡ t || ¡ t || j  |¡j¡ t ||   t|ƒ¡¡ t || j t|ƒdd�¡ t || j t|ƒdd�¡ | j|dd�}|  |¡}| j|dd�}	|  |¡}
t || t|ƒk¡ t ||
 ¡ t ||	 ¡ t || j |¡j¡ | j	|dd�}|  	|¡}| j
|dd�}|  
|¡}t || t|ƒk¡ t || ¡ t || ¡ t || j 	|¡j¡ d S )Nr   ©r-   )rl   rm   r8   r9   r   ÚTrG   ri   rj   rk   rh   )r:   Úidx_serÚcol_serZidx_eqZcol_eqZidx_neZcol_neZidx_gtZcol_gtZidx_leZcol_leZidx_geZcol_geZidx_ltZcol_ltr   r   r   Ú	_test_seq8  s6    





z@TestFrameFlexComparisons.test_bool_flex_frame.<locals>._test_seq©r   r   )r   rE   rF   r   ÚonesÚshaperl   Úvaluesr�   rm   r.   rv   rw   r8   r9   ÚnanrH   rI   rJ   r   rr   ri   rh   rk   rj   )r   ÚdataZ
other_datar:   r‚   Úndim_5r›   r™   ÚfÚorK   r¢   r    r¡   rš   r   r   r   Útest_bool_flex_frame  sJ    

* 





z-TestFrameFlexComparisons.test_bool_flex_framec           	      C   sð  t  t jddt jg¡}t  dt jdd g¡}td|iƒ}td|iƒ}d ddg¡}tjt|d	�� | |¡ W d   ƒ n1 s~0    Y  tjt|d	��" |d  |d ¡ W d   ƒ n1 s¾0    Y  tjt|d	�� |j	|j	k W d   ƒ n1 sø0    Y  | 
|¡}|j	 ¡ �sJ ‚t  dt jd g¡}td|iƒ}tjt|d	�� | d¡ W d   ƒ n1 �sj0    Y  tjt|d	�� |d  d¡ W d   ƒ n1 �s¨0    Y  tjt|d	�� |j	dk W d   ƒ n1 �sâ0    Y  d S )
Nr}   r>   y               @é   rT   r`   z9'>' not supported between instances of '.*' and 'complex'z unorderable types: .*complex\(\)rC   )r   r    r§   r   ra   rH   rI   rb   ri   r¦   rm   r�   )	r   ÚarrZarr2r:   Údf2rK   rš   Zarr3Údf3r   r   r   Ú"test_bool_flex_frame_complex_dtypen  s2    þÿ(0*
*.z;TestFrameFlexComparisons.test_bool_flex_frame_complex_dtypec                 C   sT   t ddtjdgiƒ}t ddt ¡ dgiƒ}| |¡}t dg d¢iƒ}t ||¡ d S )NrX   r4   r5   )FTF)r   r   r§   r   Únowrm   r8   r9   )r   Údf1r¯   rd   r;   r   r   r   Ú!test_bool_flex_frame_object_dtype•  s
    
z:TestFrameFlexComparisons.test_bool_flex_frame_object_dtypec                 C   s”   t tjgƒ}|tjk}|jd  ¡ du s,J ‚| tj¡}|jd  ¡ du sNJ ‚|tjk}|jd  ¡ du snJ ‚| tj¡}|jd  ¡ du s�J ‚d S )Nr£   FT)r   rn   rq   ÚilocÚitemrl   rm   r�   r   r   r   Útest_flex_comparison_nat�  s    

z1TestFrameFlexComparisons.test_flex_comparison_natÚopnamerœ   c                 C   sP   t g d¢g d¢dœƒ}d}t||ƒ|ƒj ¡ }t |tdgt t	¡gd�¡ d S )N©r}   r~   r…   ©ç      ð?ç       @ç      @rY   r~   ©r_   )
r   rv   ÚdtypesÚvalue_countsr8   Úassert_series_equalr   r   r   r,   )r   r¸   r:   Úconstrd   r   r   r   Ú&test_df_flex_cmp_constant_return_types¯  s    z?TestFrameFlexComparisons.test_df_flex_cmp_constant_return_typesc                 C   s^   t g d¢g d¢dœƒ}d}|jd d… }t||ƒ|ƒj ¡ }t |tdgt 	t
¡gd�¡ d S )Nr¹   rº   rY   r~   r   r¾   )r   rµ   rv   r¿   rÀ   r8   rÁ   r   r   r   r,   )r   r¸   r:   rÂ   Úemptyrd   r   r   r   Ú,test_df_flex_cmp_constant_return_types_empty¸  s
    zETestFrameFlexComparisons.test_df_flex_cmp_constant_return_types_emptyc                 C   sŒ   t j g d¢¡}t||dœƒ}tddgƒ}|j|dd�}tddgddgdœƒ}t ||¡ tddgdd	gd
�}|j|dd�}t ||¡ d S )Nr¹   ©r3   rŒ   r   rž   Fr}   r~   r3   rŒ   r¾   )rn   ZIntervalIndexZfrom_breaksr   r   rl   r8   r9   )r   Úiir:   Úserr<   re   Zser2Úres2r   r   r   Ú-test_df_flex_cmp_ea_dtype_with_ndarray_seriesÂ  s    zFTestFrameFlexComparisons.test_df_flex_cmp_ea_dtype_with_ndarray_seriesN)r/   r0   r1   r¬   r±   r´   r·   rH   r“   r”   rÃ   rÅ   rÊ   r   r   r   r   r•     s   X'

	r•   c                   @   sÖ   e Zd Zdd„ Zejje dd�ej dddg¡dd	„ ƒƒZ	d
d„ Z
dd„ Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dg d ¢¡d!d"„ ƒZej d#d$d%g¡d&d'„ ƒZd%S )(ÚTestFrameFlexArithmeticc                    st   t  d¡}t|ƒ‰tˆˆdœƒ‰ ˆ jˆdd�}t‡ ‡fdd„ˆ jD ƒƒ}t ||¡ ˆ jˆjdd�}t ||¡ d S )Nr…   rÆ   r   rž   c                    s   i | ]}|ˆ | ˆ “qS r   r   rV   ©r:   rÈ   r   r   r\   Þ  r]   z?TestFrameFlexArithmetic.test_floordiv_axis0.<locals>.<dictcomp>)	r   r‡   r   r   ÚfloordivrB   r8   r9   r¦   )r   r®   rd   re   Úresult2r   rÌ   r   Útest_floordiv_axis0Ö  s    
z+TestFrameFlexArithmetic.test_floordiv_axis0znumexpr not installed)Úreasonr¸   rÍ   Úpowc                    s¢   t t|ƒ‰t td ¡ td d d¡d }t|ƒ‰ dˆ d< ˆ d ‰t ˆ |ƒˆdd�}t‡ ‡‡fdd	„ˆ jD ƒƒ}t 	||¡ t ˆ |ƒˆj
dd�}t 	||¡ d S )
Néd   r}   éÿÿÿÿr»   r�   r   rž   c                    s   i | ]}|ˆˆ | ˆƒ“qS r   r   rV   ©r:   r™   rÈ   r   r   r\   ò  r]   zLTestFrameFlexArithmetic.test_floordiv_axis0_numexpr_path.<locals>.<dictcomp>)rv   rw   r   r‡   r	   rˆ   r   rB   r8   r9   r¦   )r   r¸   r®   rd   re   rÎ   r   rÔ   r   Ú test_floordiv_axis0_numexpr_pathå  s    
"z8TestFrameFlexArithmetic.test_floordiv_axis0_numexpr_pathc                 C   sf   t jddd�}t jddd�}t|ƒ}t||dœƒ}|j|dd�}t|| || dœƒ}t ||¡ d S )Nú
2016-01-01rM   rQ   Ú1©r   r}   r   rž   )rn   ro   Ztimedelta_ranger   r   Úaddr8   r9   )r   ÚdtiZtdiZtserr:   rd   re   r   r   r   Útest_df_add_td64_columnwiseø  s    z3TestFrameFlexArithmetic.test_df_add_td64_columnwisec                 C   s†   t jddd�}tg d¢dd�}t||dœƒ}t||dœƒ}t jdd	� ¡ }|j||d
�}ttg d¢dd�|d dœƒ}t ||¡ d S )NrÖ   r…   rQ   )z1 Dayrq   z2 Daysútimedelta64[ns]r   rÆ   r}   )Údays©Ú
fill_value)z
2016-01-02z
2016-01-03z
2016-01-05zdatetime64[ns]r~   )	rn   ro   r   r   Ú	TimedeltaZto_timedelta64rÙ   r8   r9   )r   rÚ   rÈ   r:   r‚   Úfillrd   re   r   r   r   Ú$test_df_add_flex_filled_mixed_dtypes  s    ÿüÿz<TestFrameFlexArithmetic.test_df_add_flex_filled_mixed_dtypesc                    s|   |‰ ‡ fdd„}t |ˆ ƒd| ƒ}||d| ƒ}t ||¡ t |ˆ ƒd| ƒ}||d| ƒ}t ||¡ t|dd id� d S )Nc                    s2   ˆ   d¡r"ttˆ  dd¡ƒ|| ƒS ttˆ ƒ| |ƒS )NÚ__rÚ__)Ú
startswithrv   rw   ÚreplacerY   ©r™   r   r   rª     s    
z8TestFrameFlexArithmetic.test_arith_flex_frame.<locals>.fr~   r�   r   )rv   r8   r9   r   )r   Úall_arithmetic_operatorsÚfloat_frameÚmixed_float_framerª   rd   re   r   rç   r   Útest_arith_flex_frame  s    z-TestFrameFlexArithmetic.test_arith_flex_framer™   )Ú__add__Ú__sub__Ú__mul__c           
      C   sö   t t|ƒ}t ||ƒd| ƒ}||d| ƒ}d }	|dv rBdd dœ}	n|dv rRdd i}	tjrr|dkrrd| d j|	d< t ||¡ t||	d	� t ||ƒd| ƒ}||d| ƒ}t ||¡ t|dd id	� t ||ƒd| ƒ}||d| ƒ}t ||¡ d S )
Nr~   )rí   Zuint64)rŒ   r�   )rì   rî   r�   r   r3   r   )	rv   rw   r   ÚUSE_NUMEXPRr   r8   r9   r   r   )
r   r™   Z	int_frameÚmixed_int_framerê   r   rª   rd   re   r   r   r   r   Útest_arith_flex_frame_mixed,  s&    	
z3TestFrameFlexArithmetic.test_arith_flex_frame_mixedc              	   C   sf   |}t ddƒD ]R}t d| ¡}d}tjt|d�� t||ƒ|ƒ W d   ƒ q1 sV0    Y  qd S )Nr…   r>   )r}   r�   rC   )rŽ   r   r¤   rH   rI   rJ   rv   )r   rè   ré   r™   Údimr®   rK   r   r   r   Útest_arith_flex_frame_raiseU  s    z3TestFrameFlexArithmetic.test_arith_flex_frame_raisec                 C   sì   |  d¡}t ||d ¡ |  |d d… ¡}t ||tj ¡ |d d…   |¡}t ||tj ¡ tjtdd��$ |j |jd dd� W d   ƒ n1 sš0    Y  tjtdd��& |j |jd ddd� W d   ƒ n1 sÞ0    Y  d S )	Nr}   r   rß   rC   r…   rÞ   r_   ©r-   rß   )	rÙ   r8   r9   r   r§   rH   rI   ÚNotImplementedErrorrµ   )r   ré   Z	const_addrd   r   r   r   Útest_arith_flex_frame_corner`  s    
2z4TestFrameFlexArithmetic.test_arith_flex_frame_cornerc           
      C   sj  |}|  d¡}|d }g d¢}|D ]L}t||ƒ}tt|ƒ}t ||ƒ|||ƒ¡ t ||dd�||j|ƒj¡ q"t |j|d d�|| ¡ t | |¡|| ¡ t |j|dd�|j| j¡ tt	 
d¡ d¡dd	�}tt	jt	jgd
dgd
dggƒ}|j|d dd�}	t |	|¡ tt	 
d¡ d¡dd	�}tt	jt	jgd
dgd
dggƒ}|j|d dd�}	t |	|¡ d S )NrT   Útwo)rÙ   ÚsubÚmulÚmodr   rž   r>   r„   Úint64r   r»   ç      ø?g      ô?r_   Úfloat64)Úxsrv   rw   r8   r9   rŸ   rÙ   Údivr   r   r‡   rˆ   r§   Úinf)
r   Úsimple_framer:   ÚrowrX   ry   r™   rª   re   rd   r   r   r   Útest_arith_flex_seriesr  s(    


 z.TestFrameFlexArithmetic.test_arith_flex_seriesc                 C   s¸   t g td�}tddgd�}tddgddggddgd�}tjtd	d
�� |j|dd� W d   ƒ n1 sh0    Y  tjtd	d
��$ |j|d d dd� W d   ƒ n1 sª0    Y  d S )Nr   r3   rŒ   rA   r}   r~   r…   r?   rß   rC   ÚErÞ   rô   )r   Úobjectr   rH   rI   rõ   rÙ   rø   )r   Zser_len0Zdf_len0r:   r   r   r   Útest_arith_flex_zero_len_raises‘  s    ,z7TestFrameFlexArithmetic.test_arith_flex_zero_len_raisesc                 C   s^   t jddt jdddgdd�}td|itd	ƒd
�}| d¡ d¡}|jddd�}t ||¡ d S )Nr   r}   r…   r?   r–   Úfloatr   r4   r>   r¾   r~   rÞ   )	r   r    r§   r   rŽ   ÚfillnarÙ   r8   r9   )r   Zdatr:   r;   r<   r   r   r   Útest_flex_add_scalar_fill_valuež  s
    z7TestFrameFlexArithmetic.test_flex_add_scalar_fill_valuec                 C   sV   t g d¢g d¢d�}t g d¢g d¢d�}t g d¢g d¢d�}| |¡}t ||¡ d S )N)r}   r~   r…   r?   r–   )r}   r~   r}   r~   r…   r¾   r¹   )r   r~   r   r~   r~   )r}   r}   r~   r~   r…   )r   rø   r8   r9   )r   r³   r¯   re   rd   r   r   r   Ú'test_sub_alignment_with_duplicate_index§  s
    
z?TestFrameFlexArithmetic.test_sub_alignment_with_duplicate_index)rì   rî   rí   Ú__truediv__c                 C   sj   t t d¡tj d¡dœƒ}t||ƒ|ƒ}ddg|_ddg|_t||ƒ|ƒ}t ||¡ t	|ƒ |j
 d S )NrM   rÆ   r3   )r   r   r‡   rE   rs   rv   rB   r8   r9   r&   r¿   )r   r™   r:   re   rd   r   r   r   Ú&test_arithmetic_with_duplicate_columns¯  s    

z>TestFrameFlexArithmetic.test_arithmetic_with_duplicate_columnsÚlevelr   Nc                 C   s’   t g d¢g d¢dœƒ}|j d¡|_t g d¢g d¢dœƒ}|j ddg¡|_|j||d�}t g d¢g d¢dœƒ}|j ddg¡|_t ||¡ d S )	N©r   r}   r~   r¹   rÆ   ZL1©r   r   r   ))r3   r�   )r3   ÚDZL2)r  )r   rB   Z	set_namesrÙ   r8   r9   )r   r  r³   r¯   rd   re   r   r   r   Útest_broadcast_multiindex»  s    z1TestFrameFlexArithmetic.test_broadcast_multiindex)r/   r0   r1   rÏ   rH   r“   Zskipifr
   r”   rÕ   rÛ   râ   rë   rñ   ró   rö   r  r  r	  r
  r  r  r   r   r   r   rË   Õ  s&   
(	
rË   c                   @   s  e Z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
ej dddgde ddg¡eddƒeddgƒg¡dd„ ƒZdd„ Zdd„ Zdd„ Zej ddd d!d"d#d$e d%d&¡d'fe d%d&¡d(fg¡ejjd)ejejejejejejgd*d+„ d,�d-d.„ ƒƒZd/S )0ÚTestFrameArithmeticc                 C   sJ   t ddgdd�}tddgddggƒ}|| }t||dœƒ}t ||¡ d S )	Nrq   rÜ   r   r}   r~   r…   r?   rØ   ©r   r   r8   r9   )r   rÈ   r:   rd   re   r   r   r   Útest_td64_op_nat_castingÌ  s
    z,TestFrameArithmetic.test_td64_op_nat_castingc                 C   s¦   t  d¡ dd¡}t|ddgg d¢d�}|dgd d …f }|jd|jd fksRJ ‚tdd	gd	dgdd
gg|j|j|jd�}|| }t 	||¡ || }t 	||¡ d S )Nr>   r…   r~   TFr‹   ©rB   r_   r}   r?   rŠ   ©rB   r_   r   ©
r   r‡   rˆ   r   r¥   rB   r_   r   r8   r9   )r   r®   r:   Úrowlikere   rd   r   r   r   Ú'test_df_add_2d_array_rowlike_broadcastsÖ  s    úz;TestFrameArithmetic.test_df_add_2d_array_rowlike_broadcastsc                 C   s¦   t  d¡ dd¡}t|ddgg d¢d�}|d d …dgf }|j|jd	 dfksRJ ‚tddgd
dgddgg|j|j|jd�}|| }t 	||¡ || }t 	||¡ d S )Nr>   r…   r~   TFr‹   r  r}   r   r–   é	   rM   r  r  )r   r®   r:   Úcollikere   rd   r   r   r   Ú'test_df_add_2d_array_collike_broadcastsë  s    úz;TestFrameArithmetic.test_df_add_2d_array_collike_broadcastsc                 C   sâ   |}|r|dv rt  |¡ t d¡ dd¡}t|ddgg d¢d�}|d	gd d …f }|jd	|jd	 fkslJ ‚t|jd
 |ƒ| 	¡ ƒt|jd |ƒ| 	¡ ƒt|jd |ƒ| 	¡ ƒg}t||j
|jd�}	t||ƒ|ƒ}
t |
|	¡ d S )N©Ú__rmod__Ú__rfloordiv__r>   r…   r~   TFr‹   r  r}   r3   rŒ   r�   )ÚtdÚ&mark_array_manager_not_yet_implementedr   r‡   rˆ   r   r¥   rv   rr   ÚsqueezerB   r_   r8   r9   )r   r   rè   Úusing_array_managerr¸   r®   r:   r  Úexvalsre   rd   r   r   r   Ú)test_df_arith_2d_array_rowlike_broadcasts   s    
ýz=TestFrameArithmetic.test_df_arith_2d_array_rowlike_broadcastsc                 C   sð   |}|r|dv rt  |¡ t d¡ dd¡}t|ddgg d¢d�}|d d …d	gf }|j|jd
 d	fkslJ ‚t|d |ƒ| ¡ ƒt|d |ƒ| ¡ ƒdœ}d }	|dv r¾tj	dd„ | 
¡ D ƒŽ }	t||j|j|	d�}
t||ƒ|ƒ}t ||
¡ d S )Nr  r>   r…   r~   TFr‹   r  r}   r   )TFc                 s   s   | ]}|j V  qd S r   )r¦   ©rW   rZ   r   r   r   Ú	<genexpr>4  r]   zPTestFrameArithmetic.test_df_arith_2d_array_collike_broadcasts.<locals>.<genexpr>r  )r   r!  r   r‡   rˆ   r   r¥   rv   r"  Zcommon_typer¦   rB   r_   r8   r9   )r   r   rè   r#  r¸   r®   r:   r  r$  r   re   rd   r   r   r   Ú)test_df_arith_2d_array_collike_broadcasts  s     
þz=TestFrameArithmetic.test_df_arith_2d_array_collike_broadcastsc                 C   sh   t ddgddggƒ}|d }|j dd„ ¡}|dk ¡ s<J ‚d| }|j dd„ ¡}|dk ¡ sdJ ‚d S )NFTr}   c                 S   s   | j S r   ©Úkind©rZ   r   r   r   Ú<lambda>C  r]   z:TestFrameArithmetic.test_df_bool_mul_int.<locals>.<lambda>Úic                 S   s   | j S r   r)  r+  r   r   r   r,  G  r]   )r   r¿   Úapplyr�   )r   r:   rd   Úkindsr   r   r   Útest_df_bool_mul_int;  s    z(TestFrameArithmetic.test_df_bool_mul_intc                 C   sD   t g d¢g d¢dœƒ}|| }t g d¢g d¢dœƒ}t ||¡ d S )N©rT   rU   r   r¹   rÆ   )ZaaZbbÚcc©r~   r?   r>   ©r   r8   r9   )r   rz   rd   re   r   r   r   Útest_arith_mixedJ  s    z$TestFrameArithmetic.test_arith_mixedc                 C   sö   t ddgddgdœƒ}dd„ }||tjƒ ||tjƒ ||tjƒ ||tjƒ ||tjƒ ||tjƒ ||dd	„ ƒ ||d
d	„ ƒ ||dd	„ ƒ ||dd	„ ƒ ||dd	„ ƒ ||dd	„ ƒ ||dd	„ ƒ ||dd	„ ƒ ||dd	„ ƒ ||dd	„ ƒ d S )Ngš™™™™™ñ?gffffff
@g      @g333333ÀrÆ   c                 S   sD   || dƒ}| j jstdƒ‚|j D ]}t || || | dƒ¡ q d S )Nr}   z*Only unique columns supported by this test)rB   Z	is_uniquerJ   r8   rÁ   )r:   r™   rd   rX   r   r   r   Ú_test_opU  s
    

z@TestFrameArithmetic.test_arith_getitem_commute.<locals>._test_opc                 S   s   ||  S r   r   rY   r   r   r   r,  e  r]   z@TestFrameArithmetic.test_arith_getitem_commute.<locals>.<lambda>c                 S   s   ||  S r   r   rY   r   r   r   r,  f  r]   c                 S   s   ||  S r   r   rY   r   r   r   r,  g  r]   c                 S   s   ||  S r   r   rY   r   r   r   r,  h  r]   c                 S   s   ||  S r   r   rY   r   r   r   r,  i  r]   c                 S   s   | | S r   r   rY   r   r   r   r,  k  r]   c                 S   s   | | S r   r   rY   r   r   r   r,  l  r]   c                 S   s   | | S r   r   rY   r   r   r   r,  m  r]   c                 S   s   | | S r   r   rY   r   r   r   r,  n  r]   c                 S   s   | | S r   r   rY   r   r   r   r,  o  r]   )r   rw   rÙ   rø   rù   ÚtruedivrÍ   rÑ   )r   r:   r6  r   r   r   Útest_arith_getitem_commuteR  s$    	z.TestFrameArithmetic.test_arith_getitem_commuter¦   r}   r~   ©r}   r~   r…   c                 C   sD   t ddgddgdœƒ}t ddgddgdœƒ}|| }t ||¡ d S )Nr}   rÆ   r~   r…   r4  )r   r¦   r:   re   rd   r   r   r   Ú&test_arith_alignment_non_pandas_objectq  s    z:TestFrameArithmetic.test_arith_alignment_non_pandas_objectc                 C   s2  t tjdddd� dd¡g d¢g d¢d�}| d	¡j}t |j| |j|jd
�}t 	|| |¡ t |jj
| j
|j|jd
�}t 	|j|dd�|¡ t|d ƒ}t |j| |j|jd
�}t 	|| |¡ t |jj
| j
|j|jd
�}t 	|j|dd�|¡ tjj|jŽ }t |j| |j|jd
�}t 	| |¡|¡ d S )Nr}   rM   Úf8r   r…   ©Úoner÷   Úthreer1  r  rT   r^   r   rž   r÷   r_   )r   r   r‡   rˆ   rþ   r¦   r_   rB   r8   r9   rŸ   rÙ   rG   rE   rs   r¥   )r   r:   Zval1ÚaddedZval2Zval3r   r   r   Útest_arith_non_pandas_object{  s$    ýz0TestFrameArithmetic.test_arith_non_pandas_objectc                    sn   |‰t  t jddd�¡}ddg}t|g|d�}d‰ t|ˆƒˆ ƒ}t‡ ‡fdd	„|D ƒg|d�}t ||¡ d S )
Nç        r¼   )ÚstartÚendr}   r~   rA   rM   c                    s   g | ]}t |ˆƒˆ ƒ‘qS r   )rv   )rW   Ún©Únumr™   r   r   Ú
<listcomp>�  r]   zVTestFrameArithmetic.test_operations_with_interval_categories_index.<locals>.<listcomp>)rn   ZCategoricalIndexZinterval_ranger   rv   r8   r9   )r   rè   Úindr¨   r:   rd   re   r   rE  r   Ú.test_operations_with_interval_categories_index•  s    zBTestFrameArithmetic.test_operations_with_interval_categories_indexc                 C   s†   t t d¡t d¡gt d¡t d¡gdœddgd�}|dg }|| }t t d	¡t d	¡gtjtjgdœddgd�}t ||¡ d S )
NZ2019Z2020Z2018Z2021)r4   r5   r4   r5   rA   r   )r   rn   rx   rà   r   r§   r8   r9   )r   r:   r¯   rd   re   r   r   r   Útest_frame_with_frame_reindex   s    þû
 þz1TestFrameArithmetic.test_frame_with_frame_reindexzvalue, dtype)r}   Úi8)r»   r;  )ì            r;  )y              ð?Ú
complex128)rL  rM  )Tr,   é   Únsú<m8[ns]ú<M8[ns]r™   c                 C   s   | j S r   )r/   r+  r   r   r   r,  Ê  r]   zTestFrameArithmetic.<lambda>)r   c              
   C   s~  t jdft jdft jdft jdfh}t||ƒ}td|j|jgi|jd�}t jdft j	dft jdft jdft jdft jdft jdft j
dft j	dfh	}||f|v �rpd }	|dkr¸|t jksÊ|dkrÐ|t jkrÐd }
n4|dkrâd}
t}	n"|t j
u röd}
t}	nd	|j› d
�}
tjt|
d��H t |	¡� |||jƒ W d   ƒ n1 �sB0    Y  W d   ƒ n1 �sb0    Y  �n
||f|v �r(|t jt jfv �rætj�r¨|dk�r¨t}	nd }	t |	¡� |||jƒ W d   ƒ n1 �sÚ0    Y  n@d}
tjt|
d�� |||jƒ W d   ƒ n1 �s0    Y  nRt d ¡�* |||jƒj}|||ƒj}W d   ƒ n1 �sd0    Y  t ||¡ d S )Nr,   r3   r   rQ  rP  rM  z3ufunc 'remainder' not supported for the input typesz-numpy boolean subtract, the `-` operator, is zcannot perform __z7__ with this index type: (DatetimeArray|TimedeltaArray)rC   r   z+operator '.*' not implemented for .* dtypes)rw   r7  rÑ   rÙ   rù   r   r   r   r   rú   rø   ÚUserWarningr/   rH   rI   rb   r8   Úassert_produces_warningr   rï   rõ   r¿   rÁ   )r   r™   r   r   r   ÚskipÚelemr:   ÚinvalidÚwarnrK   rd   re   r   r   r   Útest_binop_other³  sd    ü
÷ÿÿ
ÿP..,z$TestFrameArithmetic.test_binop_otherN) r/   r0   r1   r  r  r  r%  r(  r0  r5  r8  rH   r“   r”   r   r    rŽ   r   r:  r@  rI  rJ  Ztimedelta64Z
datetime64rw   rÙ   rø   rù   r7  rú   rÑ   rX  r   r   r   r   r  Ë  sN   
 *ÿ
øþúör  c                  C   s  t tj d¡ dd¡ddgd�} ttjd�}| | }t | jtj | j	d�}t
 ||¡ t
 t¡� | |k}W d   ƒ n1 s~0    Y  t d| j| j	d	�}t
 ||¡ t | j d
¡| j	d�}t
 t¡� ||k}W d   ƒ n1 sä0    Y  t d| j| j	d	�}t
 ||¡ d S )Nr>   r…   r~   r3   rŒ   rA   r   Fr^   zM8[ns])r   r   rE   rF   rˆ   r   rý   r¦   r§   rB   r8   r9   rS  ÚFutureWarningr_   r+   )r:   rÈ   rd   re   r¯   r   r   r   Ú,test_frame_with_zero_len_series_corner_cases  s     &&rZ  c                  C   sB   t ddgtjd�} tddgddgd�}| | }| }t ||¡ d S )Nr3   rŒ   ©rB   r   r}   r~   r¾   )r   r   rý   r   r8   r9   )r:   rÈ   rd   re   r   r   r   Ú,test_zero_len_frame_with_series_corner_cases*  s
    r\  z(ignore:.*Select only valid:FutureWarningc                  C   sD   dt ddtjgƒi} t| ƒ}|jdd�}t g d¢ƒ}t ||¡ d S )NZOner3   ç333333ó?r}   rž   )r3   r]  r   )r   r   r§   r   Úsumr8   rÁ   )r¨   r:   rd   re   r   r   r   Ú+test_frame_single_columns_object_sum_axis_14  s    ÿr_  c                   @   s  e Zd Zdd„ Zdd„ Zej dej	ej
ejejg¡dd„ ƒZej dd	d
g¡ej d¡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ej dg d&¢¡d'd(„ ƒZd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Z d1S )2ÚTestFrameArithmeticUnsortedc                 C   sp   t jddddd�}ttj t|ƒ¡|dgd�}| d¡}|| }|jj	t
ju sRJ ‚|| }|jj	t
ju slJ ‚d S )	Nz1/1/2011rM   ÚHú
US/Eastern)rR   ÚfreqÚtzrT   r^   zEurope/Moscow)rn   ro   r   r   rE   rF   rt   Ú
tz_convertr_   rd  ÚpytzÚutc)r   Úrngr:   Z	df_moscowrd   r   r   r   Ú*test_frame_add_tz_mismatch_converts_to_utcG  s    
zFTestFrameArithmeticUnsorted.test_frame_add_tz_mismatch_converts_to_utcc                 C   sš   t jdddd�}ttj t|ƒd¡|d�}||d d d…  }|| }tj|jdd d…< t	 
||¡ |d d d… }|| tj t|ƒ¡¡ }t	 
||¡ d S )	Nz1/1/2000z1/1/2010r3   )rc  r…   r¾   r~   r}   )rn   Zperiod_ranger   r   rE   rF   rt   r§   rµ   r8   r9   ZtakeZpermutation)r   rh  Útsrd   re   Zhalfr   r   r   Útest_align_frameR  s    z,TestFrameArithmeticUnsorted.test_align_framer™   c                 C   sÎ   t g d¢g d¢dœtd�}| tj¡}||dƒ}||dƒ t¡}d |t |¡< t 	||¡ |||ƒ}|||ƒ t¡}d |t |¡< t 	||¡ ||| d¡ƒ}t 	||¡ || d¡|ƒ}tj	||dd� d S )	N)r~   ç      @é{   N)r}   r~   r…   r?   )Zcol1Zcol2r   r…   r­   F)Zcheck_dtype)
r   r  r  r   r§   r)   ÚcomZisnar8   r9   )r   r™   r:   Zfilledrd   re   r   r   r   Útest_operators_none_as_na_  s     ÿ

z5TestFrameArithmeticUnsorted.test_operators_none_as_nazop,res)r�   F)Ú__ne__Tz ignore:elementwise:FutureWarningc                 C   s*   t ||ƒdƒ}t| ¡  ¡ ƒ|u s&J ‚d S )Nr4   )rv   r,   r�   )r   r™   r<   ré   rd   r   r   r   Ú%test_logical_typeerror_with_non_validz  s    zATestFrameArithmeticUnsorted.test_logical_typeerror_with_non_validc                    sL  t jtdƒg d¢g d¢gg d¢d�}tt d¡ dd¡|g d	¢d
� ¡ ‰ tj	‰dD ]Ì}t
t|d ƒ‰ˆd u rlqRtg d¢g d¢ƒ}t
ˆ |ƒ|ddd�}t ‡ ‡‡fdd„| ¡ D ƒ¡ ¡ }t ||¡ tddgddgƒ}t
ˆ |ƒ|ddd�}t ‡ ‡‡fdd„| ¡ D ƒ¡ ˆ ¡ ¡ }t ||¡ qRt  ddgddgg¡}ttjddd�|d�‰ td d!d"œƒ}ˆ  ¡ }d#d$g|j_| ¡ }	d$|	j_ˆ j|d d d%�}
ˆ j|	d d d%�}|j|d d d%�}|j|	d d d%�}|j|d d$d%�}|j|	d d$d%�}ttjg d&¢g d&¢gdd�|d�}|
|fD ]}t ||¡ �qd#d$g|j_||||fD ]}t ||¡ �q4d S )'NÚabcr<  r¹   )ÚfirstÚsecondÚthird©ÚnameséQ   é   r…   )Zvalue1Zvalue2Zvalue3r^   )rÙ   rø   rù   rÿ   r7  )r»   ç      $@g      Y@ru  r   )r  r-   c                    s:   g | ]2\}}ˆˆ j ˆd d …d d …|f d d …f |ƒ‘qS r   ©rr   ©rW   r-  Úv©r:   ÚidxÚopar   r   rG  œ  r]   zETestFrameArithmeticUnsorted.test_binary_ops_align.<locals>.<listcomp>r»   rz  r÷   r>  rt  c                    s4   g | ],\}}ˆˆ j ˆd d …|f d d …f |ƒ‘qS r   r{  r|  r~  r   r   rG  ¤  r]   r3   rŒ   rT   rU   )r~   r?   rû   r   rA   r}   r~   rS   Zlvl0Zlvl1)r-   r  )r}   r~   r}   r~   )r   Úfrom_productrG   r   r   r‡   rˆ   Z
sort_indexrn   Z
IndexSlicerv   rw   r   Úconcatru   r8   r9   Zreindex_liker¤   r(   rB   rw  r_   Únamerù   r    )r   r_   r™   rZ   rd   re   ZmidxÚsr¯   Ús2Zres1rÉ   Zres3Zres4Zres5Zres6r;   r<   r   r~  r   Útest_binary_ops_align‚  s`    þý
ÿ ÿÿÿz1TestFrameArithmeticUnsorted.test_binary_ops_alignc                 C   sŒ   t jg d¢dd�}| d¡d d… }| d¡dd … }tdddgi|d	�}tdddgi|d	�}tdtjd
tjgi|d	�}t || |¡ d S )N)z
2011-01-01z
2011-01-02z
2011-01-03ÚUTC)rd  z
Asia/Tokyor~   rb  r}   r3   r¾   r…   )rn   ZDatetimeIndexre  r   r   r§   r8   r9   )r   ÚbaseZidx1Zidx2r³   r¯   r;   r   r   r   Ú test_add_with_dti_mismatched_tzsÈ  s    z<TestFrameArithmeticUnsorted.test_add_with_dti_mismatched_tzsc                 C   s  |  |jd d d… ¡}|d= tj|d d d…< || }|d  ¡ j}|d d  ¡ }t |d  ¡ |j| ¡ tj|j|j 	|¡ < t |d |j|d j ¡ t 
|d   |j¡d d… ¡ ¡ sÆJ ‚t 
|d ¡ ¡ sÜJ ‚|| }t |j|j¡ || }	t 
|d ¡ ¡ �sJ ‚t 
|	d ¡ ¡ �s,J ‚|tƒ  }
t 
|
j¡ ¡ �sLJ ‚tƒ | }t 
|j¡ ¡ �slJ ‚tƒ tƒ  }|j�s„J ‚|j |jd d d… d�}t || |d ¡ || }t|dd	� || }t|dd	� || }t|dd id	� || }t|dd	� d S )
Nr~   r  r�   r–   r3   rÓ   rA   rý   r   )r—   r_   r   r§   Zdropnar(   r8   rÁ   rr   ÚisinÚisnanr�   Úassert_index_equalr   r¦   rÄ   rB   r9   r   )r   ré   rê   rð   Z
frame_copyr?  Zindexerr;   Z
self_addedZ	added_revZ
plus_emptyZ
empty_plusZempty_emptyÚreverser   r   r   Útest_combineFrameÒ  s@    &

z-TestFrameArithmeticUnsorted.test_combineFramec           
      C   s\  |  |jd ¡}|| }| ¡ D ] \}}t ||| ||  ¡ q | ¡ }d|d< t|ƒ}|| }	| ¡ D ] \}}t |	| |||  ¡ qjd|	v s˜J ‚t |	d ¡ 	¡ s®J ‚|| }t 	|j
|jk¡sÌJ ‚|| d¡ }t|dd id� || d¡ }t|dd id� |d|  d	¡ }t|d	d
d	d	dœd� |d|  d¡ }t|dd
dd	dœd� d S )Nr   r}   r  Zfloat32r�   r   Zfloat16rÒ   rû   rý   )r3   rŒ   r�   r  Zint32)rþ   r_   ru   r8   rÁ   Úto_dictr   r   r‹  r�   r¿   r   r)   r   r   )
r   ré   rê   rð   Úseriesr?  Úkeyr„  Zlarger_seriesZlarger_addedr   r   r   Útest_combine_series  s4    ÿÿz/TestFrameArithmeticUnsorted.test_combine_seriesc                 C   sx  |d }|j |dd�}| ¡ D ]`\}}|| }tj|| |dd� || j|ksTJ ‚|j|jkrp|jdks~J ‚q|jd u sJ ‚q|d d… }|j |dd�}t |j|j¡ |d d… }	|j |	dd�}
t ||
¡ |j |d d… dd�}tt	j
|j|jd�}t ||¡ |d d… j |dd�}tt	j
|j|jd�}t ||¡ |d d	… jg d
�}|j|dd�}t|ƒt|ƒk�stJ ‚d S )Nr3   r_   rž   F)Zcheck_nameséûÿÿÿr   r^   r}   rA   )rÙ   ru   r8   rÁ   rƒ  rŒ  r_   r9   r   r   r§   rB   r—   rù   rt   )r   Zdatetime_framerj  r?  r‘  rX   rd   Zsmaller_frameZsmaller_addedZ
smaller_tsZsmaller_added2re   Úframer   r   r   Útest_combine_timeseries7  s8    ÿÿz3TestFrameArithmeticUnsorted.test_combine_timeseriesc                 C   s’   |d }t  |j|jd ¡ |d }| ¡ D ] \}}t  |j|| jd ¡ q,t|dd id� tƒ d }|j tƒ j¡s|J ‚t|j	ƒdksŽJ ‚d S )Nr~   r�   r   r   )
r8   Úassert_numpy_array_equalr¦   ru   r   r   r_   Úequalsrt   rB   )r   ré   rê   rd   r   r„  r   r   r   Útest_combineFunce  s    
z,TestFrameArithmeticUnsorted.test_combineFuncc                    s€   t  ¡ ‰ t  ¡ ‰ˆ d¡‰t ˆ jd ¡‰‡ ‡‡‡‡‡fdd„}|tjƒ |tjƒ |tj	ƒ |tj
ƒ |tjƒ |tjƒ d S )NrT   ©r}   r}   r}   c                    sî   | ˆ ˆƒ}t  |j| ˆ jˆjƒ¡ d}tjtt |¡d�� | ˆ ˆƒ W d   ƒ n1 sZ0    Y  | ˆˆƒ}t  |j| ˆjˆjƒ¡ | ˆdƒ}t  |j| ˆjdƒ¡ d}tjt|d��" | ˆˆd d… ƒ W d   ƒ n1 sà0    Y  d S )NzNUnable to coerce to Series/DataFrame, dimension must be <= 2: (30, 4, 1, 1, 1)rC   r   z.Can only compare identically-labeled DataFramer~   )r8   r–  r¦   rH   rI   rJ   ÚreÚescape)Úfuncrd   rK   rÎ   Úresult3©r³   r¯   ré   r©   r  r  r   r   Ú	test_compz  s    
ÿ(
ÿ
z?TestFrameArithmeticUnsorted.test_comparisons.<locals>.test_comp)r8   ZmakeTimeDataFramerþ   r   r¤   r¥   rw   rl   rm   rh   ri   rk   rj   )r   r  ré   rŸ  r   rž  r   Útest_comparisonss  s    





z,TestFrameArithmeticUnsorted.test_comparisonsc                 C   s\   t dd„ dD ƒƒ}tt|ƒ}d}tjt|d�� ||dƒ W d   ƒ n1 sN0    Y  d S )Nc                 S   s   i | ]}|d dddœ“qS )r4   r5   r6   )rZ   r[   Úzr   r&  r   r   r   r\   ›  r]   zZTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raises.<locals>.<dictcomp>r1  z;'[<>]=?' not supported between instances of 'str' and 'int'rC   r   )r   rv   rw   rH   rI   rb   )r   Zcompare_operators_no_eq_ner:   rª   rK   r   r   r   Ú*test_strings_to_numbers_comparisons_raises˜  s    ÿ
zFTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raisesc                 C   sš   t  ¡ }tj|j|jd df< tjdd�� |jdk }W d   ƒ n1 sJ0    Y  tjdd�� |dk j}W d   ƒ n1 s€0    Y  t  ||¡ d S )Nr   r3   Úignore)rV  Úraise)	r8   ZmakeDataFramer   r§   rr   r_   Zerrstater¦   r–  )r   Z
missing_dfre   rd   r   r   r   Ú'test_comparison_protected_from_errstate£  s    ((zCTestFrameArithmeticUnsorted.test_comparison_protected_from_errstatec                 C   s^  t t d¡ d¡ƒ}t ddg¡}t ddg¡}|j}g d¢}t|ƒ}t ddgddgddggƒ}||k}t 	||¡ |j
|k}t ||j
¡ d}	d}
d	}tjt|	d
�� ||k W d   ƒ n1 sÄ0    Y  tjt|	d
�� ||k}W d   ƒ n1 sú0    Y  ||k}t 	||¡ |j
|k}t ||j
¡ tjt|
d
�� ||k W d   ƒ n1 �s^0    Y  tjt|d
�� |j
|k W d   ƒ n1 �s˜0    Y  t ddgddgddggƒ}||k}t 	||¡ tjt|	d
�� ||k}W d   ƒ n1 �sþ0    Y  tjt|	d
�� ||k}W d   ƒ n1 �s60    Y  ||k}t 	||¡ |j
|k}t ||j
¡ tjt|
d
�� ||k W d   ƒ n1 �sš0    Y  |j
j|jk�s¸J ‚t t d¡ d¡tdƒtdƒd�}|j|_|j|_tjt|	d
�� ||k}W d   ƒ n1 �s0    Y  tjt|	d
�� ||k}W d   ƒ n1 �sP0    Y  d S )Nr>   r„   r~   ©r~   r~   r~   FTz5Unable to coerce to Series, length must be 2: given 3ú,Unable to coerce to DataFrame, shape must bez4operands could not be broadcast together with shapesrC   ZABrr  r  )r   r   r‡   rˆ   r    Z
atleast_2drŸ   Útupler8   r9   r¦   r–  rH   rI   rJ   r¥   rG   r_   rB   )r   r:   rU   Zb_rZb_cÚlstÚtupre   rd   Zmsg1dZmsg2dZmsg2dbr   r   r   Útest_boolean_comparison¬  sb    
&&
(*((
(ÿ(z3TestFrameArithmeticUnsorted.test_boolean_comparisonc                 C   sž  t dƒ}tt dt|ƒ ¡ dt|ƒ¡|tdƒd�}d|jd d …dd…f  ¡  }t dƒ}t dƒ}| ¡ }|| | j	|d	�}||  |7  < |j	|d	�}| ¡ }|| ||  j	|d	�}	||  || 7  < |j	|d	�}
t
 ||¡ t
 ||	¡ t
 ||
¡ | ¡ }|| | j	|d	�}||  |8  < |j	|d	�}| ¡ }|| ||  j	|d	�}	||  || 8  < |j	|d	�}
t
 ||¡ t
 ||	¡ t
 ||
¡ d S )
NZabcdefgrM   rÓ   r  rÒ   r}   ZbedcfZbcdefrA   )rG   r   r   r‡   rt   rˆ   rŽ   rµ   r(   r—   r8   r9   )r   rB   ZX_origÚZZblock1ÚsubsÚXZresult1rÎ   r�  Zresult4r   r   r   Útest_inplace_ops_alignmentû  s>    ýz6TestFrameArithmeticUnsorted.test_inplace_ops_alignmentc           	      C   s"  t g d¢ƒ}ttjjdddd� dd¡ƒ}| ¡ }|}|d7 }t ||¡ t |d |¡ ||u sfJ ‚|j	|j	u svJ ‚| ¡ }|}|d7 }t 
||¡ t 
|d |¡ ||u s²J ‚|j	|j	u sÂJ ‚| ¡ }|}|d7 }t ||¡ t |d |¡ | ¡ }|}|d7 }t 
||¡ t 
|d |¡ ||u �s0J ‚|j	|j	u �sBJ ‚tjjdddd�}t| ¡ d	d
œƒ}| ¡ }|}|d  d7  < t| ¡ d d	d
œƒ}t 
||¡ t 
||¡ |j	|j	u �sÂJ ‚| ¡ }|}|d  d7  < t| ¡ d d	d
œƒ}t 
||¡ t 
||¡ |j	|j	u �sJ ‚d S )Nr¹   r   r–   rM   rN   rÓ   r}   rü   r4   rÆ   r3   )r   r   r   rE   rp   rˆ   r(   r8   rÁ   Z_mgrr9   )	r   Zs_origZdf_origr„  r…  r:   r¯   r®   re   r   r   r   Útest_inplace_ops_identity,  sX    z5TestFrameArithmeticUnsorted.test_inplace_ops_identity)rÙ   Úandrÿ   rÍ   rú   rù   ÚorrÑ   rø   r7  Úxorc                 C   sž   |dkrd S t g d¢g d¢dœƒ}d}|dv r:g d¢|d< | ¡ }d	|› d
�}d
|› d
�}t||ƒ|ƒ t||ƒ|ƒ}t ||¡ t|ƒ}t|ƒ|ksšJ ‚d S )Nrÿ   rº   r¹   rS   r~   )r±  r²  r³  )TFTrT   Z__irä   )r   r(   rv   r8   r9   Úid)r   r™   r:   ÚoperandZdf_copyZiopre   r   r   r   Útest_inplace_ops_identity2f  s    z6TestFrameArithmeticUnsorted.test_inplace_ops_identity2c              	   C   sò  g d¢}g d¢}t tj dd¡||d�}tjjj}g d¢dtjg d¢tj	d�t
ddƒfD ]l}t |||dœ|jd	�}t |||d
ƒd |¡ t g d¢g d¢g d¢dœ|jd	�}t |||dƒd |¡ qXd}ddgdt ddg¡t
ddƒfD ]|}tjt|d�� |||d
ƒ W d   ƒ n1 �s 0    Y  tjt|d�� |||dƒ W d   ƒ qê1 �s\0    Y  qêt g d¢g d¢g d¢g¡}t |||d
ƒd t ||j|jd�¡ t |||dƒd t ||j|jd�¡ d}t g d¢g d¢g¡}tjt|d�� |||d
ƒ W d   ƒ n1 �s0    Y  tjt|d�� |||dƒ W d   ƒ n1 �sX0    Y  t d¡}t d¡}tjt|d�� |||d
ƒ W d   ƒ n1 �s¨0    Y  tjt|d�� |||dƒ W d   ƒ n1 �sä0    Y  d S )Nr‹   )r®  ÚYr¬  r…   r^   r¹   r   r}   r?   r¾   r_   r™  r¦  )r…   r…   r…   rB   z5Unable to coerce to Series, length must be 3: given 2r~   r9  rC   ©r?   r–   r>   )r­   rŠ   r  r§  zGUnable to coerce to Series/DataFrame, dimension must be <= 2: (3, 3, 3))r   r   rE   rF   rn   Úcorery   Zalign_method_FRAMEr    rû   rŽ   r_   r8   r9   rH   rI   rJ   rB   Zzerosrš  r›  )r   r_   rB   r:   ÚalignÚvalre   rK   r   r   r   Útest_alignment_non_pandas�  sX    
üÿ$,.þþ,,
ÿ,z5TestFrameArithmeticUnsorted.test_alignment_non_pandasc                 C   sZ   t ddgdd gdœƒ}|d }t d ¡� t||ƒ|ƒ W d   ƒ n1 sL0    Y  d S )NrA  rÆ   rŒ   )r   r8   rS  rv   ©r   rè   r:   rU   r   r   r   Útest_no_warningÈ  s    z+TestFrameArithmeticUnsorted.test_no_warningc                 C   s`   t ddgdd gdœƒ}|d }tjtdd��  t||ƒ|dƒ W d   ƒ n1 sR0    Y  d S )NrA  rÆ   rŒ   ztakes 2 positional argumentsrC   r   )r   rH   rI   rb   rv   r½  r   r   r   Útest_dunder_methods_binaryÎ  s    z6TestFrameArithmeticUnsorted.test_dunder_methods_binaryc                 C   sj   t jddd� dd¡}t jdtd�}t|ƒ}| ¡ |d< | t¡}|| 	¡  }|| 	¡  }t
 ||¡ d S )NrÒ   rý   r   rM   )rM   r}   z0.X)r   r‡   rˆ   r¤   Úintr   r"  r)   r  Úmeanr8   r9   )r   r®  r·  r³   r¯   rd   re   r   r   r   Útest_align_int_fill_bugÕ  s    
z3TestFrameArithmeticUnsorted.test_align_int_fill_bugN)!r/   r0   r1   ri  rk  rH   r“   r”   rw   rÙ   rø   rù   r7  ro  Úfilterwarningsrq  r†  r‰  rŽ  r’  r•  r˜  r   r¢  r¥  r«  r¯  r°  r¶  r¼  r¾  r¿  rÂ  r   r   r   r   r`  F  s<   ÿ

F
<).%	O1:þ
;r`  c                  C   sL   t dg d¢iƒ} t g d¢d�}| | }t dtjdtjgiƒ}t ||¡ d S )Nr3   r  r¾   r»   ©r   r   r§   r8   r9   )rz   r{   rd   re   r   r   r   Útest_pow_with_realignmentä  s
    rÅ  c                  C   sp   t dtjtjtjgiƒ} t dg d¢iƒ}t dg d¢iƒ}| | }t ||¡ | d |d  }t ||d ¡ d S )Nr3   r  )r»   r»   r»   )r   r   r§   r8   r9   rÁ   )rz   r{   re   rd   r   r   r   Útest_pow_nan_with_zeroï  s    rÆ  c                  C   s˜   t tj ddd¡g d¢d�} tg d¢g d¢d�}|  d¡| d¡ d	d
¡ }t || jdd�}|  d¡}|| }t	 
||¡ || d¡ }t	 
||¡ d S )Nr   rÒ   )rM   r…   r1  rA   r¹   r¾   rû   rÓ   r…   ZInt64r[  )r   r   rE   rp   r   Zto_numpyrˆ   rB   r)   r8   r9   )r:   rÈ   re   Zdf_eard   r   r   r   Ú&test_dataframe_series_extension_dtypesü  s    
rÇ  c                     sà   t j ddd¡} t| ƒ}| ¡ }t j|jdg d¢f< | ¡ }t j|jddgf< | ¡ }t j|jdt  dd¡f< | ¡ }t j|jdt  dd¡f< ||f||f||ffD ]6\‰ ‰ˆ ˆ }t‡ ‡fd	d
„ˆ jD ƒƒ}t	 
||¡ q¤d S )Nr   iè  )rÒ   rM   )r}   r…   r­   r–   r~   r?   r­   c                    s   i | ]}|ˆ | ˆ|  “qS r   r   )rW   r-  ©rz   r{   r   r   r\     r]   z6test_dataframe_blockwise_slicelike.<locals>.<dictcomp>)r   rE   rp   r   r(   r§   rµ   r‡   rB   r8   r9   )r®   r³   r¯   r°   Zdf4Zdf5r<   re   r   rÈ  r   Ú"test_dataframe_blockwise_slicelike  s    rÉ  zdf, col_dtyper»   r¼   g      @rl  ÚabrA   rý   rU   r  c                 C   sT   t dtjgdtjggtdƒd�}| d|i¡}| tdgtdƒd� }t ||¡ d S )	NrA  r½   rÊ  rA   rU   g      ð¿rT   r¾   )r   r   r§   rG   r)   r   r8   r9   )r:   Z	col_dtypere   rd   r   r   r   Ú/test_dataframe_operation_with_non_numeric_types!  s    	 rË  c                  C   sZ   t dggdgd�} t g d¢gg d¢d�}| | }t tjddggg d¢d�}t ||¡ d S )Nr   rt  )r¨   rB   r  )rs  rt  rt  rA   rÄ  )r³   r¯   rd   re   r   r   r   Ú"test_arith_reindex_with_duplicates0  s
    rÌ  Úto_addr}   c                 C   sš   t ddgddgdœƒ}dt| d ƒ› d�}tjt|d�� ||   W d   ƒ n1 sV0    Y  tjt|d�� | |  W d   ƒ n1 sŒ0    Y  d S )Nr}   r~   rY   zUnable to coerce list of r   z to Series/DataFramerC   )r   r*   rH   rI   rJ   )rÍ  r:   rK   r   r   r   Ú"test_arith_list_of_arraylike_raise9  s    &rÎ  c                  C   sT   t dg d¢iƒ} | d }|j}|d7 }|j|u s4J ‚t dg d¢iƒ}t | |¡ d S )Nr3   r¹   r}   )r~   r…   r?   )r   Z_valuesr8   r9   )r:   r�  Úvalsre   r   r   r   Ú%test_inplace_arithmetic_series_updateE  s    rÐ  c                  C   sŠ   t dggdgtjdgdggddgd�d�} t dggdgtdgdd�d�}t dggdgtjdgdggddgd�d�}| | }t ||¡ dS )	zP
    Regression test for: https://github.com/pandas-dev/pandas/issues/33765
    r}   rT   r   rU   rv  r^   )rƒ  N)r   r   r�  r   r8   r9   )r³   r¯   re   rd   r   r   r   Ú!test_arithemetic_multiindex_alignR  s    ýýrÑ  c                  C   sF   t dtdƒtdƒƒ} | d }t t d¡tdƒtdƒƒ}t ||¡ d S )NTrÊ  Úcdr»   r†   )r   rG   r   r¤   r8   r9   )r:   rd   re   r   r   r   Útest_bool_frame_mult_floate  s    rÓ  c                     s†   G ‡ ‡fdd„dt ƒ‰G ‡fdd„dtƒ‰ ˆ dg d¢g d¢dœƒ} | d	 }ˆ dg d
¢g d¢dœƒ}t ||¡ | |  }t ||¡ d S )Nc                       s,   e Zd Ze‡fdd„ƒZe‡ fdd„ƒZdS )zEtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeriesc                    s   ˆ S r   r   r!   ©ÚSubclassedSeriesr   r   Ú_constructorq  s    zRtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructorc                    s   ˆ S r   r   r!   )ÚSubclassedDataFramer   r   Ú_constructor_expanddimu  s    z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructor_expanddimN)r/   r0   r1   ÚpropertyrÖ  rØ  r   ©r×  rÕ  r   r   rÕ  p  s   rÕ  c                       s>   e Zd ZdgZ‡ fdd„Zedd„ ƒZe‡fdd„ƒZ‡  ZS )zHtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrameÚmy_extra_datac                    s   || _ tƒ j|i |¤Ž d S r   )rÛ  Úsuperr   )r   rÛ  ÚargsÚkwargs©Ú	__class__r   r   r   |  s    zQtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame.__init__c                 S   s   t  t| ƒ| j¡S r   )Ú	functoolsÚpartialr*   rÛ  r!   r   r   r   rÖ  €  s    zUtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame._constructorc                    s   ˆ S r   r   r!   rÔ  r   r   Ú_constructor_sliced„  s    z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame._constructor_sliced)	r/   r0   r1   Ú	_metadatar   rÙ  rÖ  rã  Ú__classcell__r   rÔ  rß  r   r×  y  s   
r×  Z	some_datar¹   r¸  rÆ   r~   r3  )rŠ   rM   é   r  )Zsdfrd   re   r   rÚ  r   Ú+test_frame_op_subclass_nonclass_constructorm  s    	rç  )>Úcollectionsr   r   rá  rw   rš  Únumpyr   rH   rf  Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr   Zpandasrn   r   r   r   r   Zpandas._testingZ_testingr8   Zpandas.core.commonr¹  Úcommonrn  Zpandas.core.computationr   r   Z#pandas.core.computation.expressionsr	   r
   Zpandas.tests.frame.commonr   r   Zfixturer   r   r2   r•   rË   r  rZ  r\  r“   rÃ  r_  r`  rÅ  rÆ  rÇ  rÉ  r”   rG   rË  rÌ  rÎ  rÐ  rÑ  rÓ  rç  r   r   r   r   Ú<module>   sr   ÿ
 M B w  H


     #þþ
	.
