o
    d                    @   s>  d dl mZ d dlmZ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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
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.dd Z/G d d! d!Z0d"d# Z1d$d% Z2d&d' Z3d(d) Z4ej56d*ed+d,gd-d.gge7d/d0d1fed+d2gd-d2gge7d/d0d3fgd4d5 Z8d6d7 Z9ej56d8ed9d9gged9d9ged9d9gggd:d; Z:d<d= Z;d>d? Z<d@dA Z=dBdC Z>dDdE Z?dFdG Z@dS )H    )deque)datetimetimezone)EnumN)	DataFrameIndex
MultiIndexSeries)expressions)_MIN_ELEMENTSNUMEXPR_INSTALLED)_check_mixed_float_check_mixed_intTi@B numexprpython)autouseparamsidsc                 c   s"    t j}| jt _| jV  |t _d S N)exprr   param)requestr    r   g/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/frame/test_arithmetic.pyswitch_numexpr_min_elements$   s
   
r   c                   @   sV   e Zd ZdddZdd ZdefddZdefd	d
ZdddZdd Z	dddZ
dS )DummyElementreturnNc                 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__1   s   zDummyElement.__array__c                 C   s   d| j  d| j dS )NzDummyElement(z, ))r   r   r$   r   r   r   __str__4      zDummyElement.__str__c                 C   s   t | S r   )strr$   r   r   r   __repr__7   s   zDummyElement.__repr__Fc                 C   s
   || _ | S r   r"   )r    r   copyr   r   r   astype:   s   zDummyElement.astypec                 C   s   t | | j||S r   )typer   view)r    r   r   r   r   r.   >   r(   zDummyElement.viewc                 C   s
   t | jS r   )boolr   )r    axisr   r   r   anyA   s   
zDummyElement.anyr   N)Fr   )__name__
__module____qualname__r!   r%   r)   r'   r*   r,   r.   r1   r   r   r   r   r   ,   s    

r   c                   @   sf  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ejdg d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)TFFr8   category)r   tmassert_frame_equalr,   )r    dfexpresr   r   r   &test_comparison_with_categorical_dtypeL   s   z;TestFrameComparisons.test_comparison_with_categorical_dtypec                 C   sZ   t tjddtdd}d}tjt|d |dv  W d    d S 1 s&w   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_list[   s
   
"z'TestFrameComparisons.test_frame_in_listz	arg, arg2
   size20010101periodsabc                    sp  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_w   Y  tjt|d  k W d    n1 szw   Y  tjt|d  k  W d    n1 sw   Y  tjt|d  k W d    d S 1 sw   Y  d S )Nc                    s   i | ]}| | | kqS r   r   .0colxyr   r   
<dictcomp>       z@TestFrameComparisons.test_comparison_invalid.<locals>.<dictcomp>indexrF   c                    s   i | ]}| | | kqS r   r   rZ   r]   r   r   r`      ra   )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.|rG   )	r   rF   rc   r<   r=   joinrL   rM   	TypeError)r    argarg2resultexpectedmsgsrO   r   r]   r   test_comparison_invalidb   s<   0
	



"z,TestFrameComparisons.test_comparison_invalidzleft, right))gtlt)rn   rm   )gele)rp   ro   )eqrq   )nerr   c           	   	   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< tt|}tt|}|d
v rX||td}|td|}t|| n@d}tjt|d ||td W d    n1 stw   Y  tjt|d |td| W d    n1 sw   Y  |d
v r||td}|td|}t|| d S d}tjt|d ||td W d    n1 sw   Y  tjt|d |td| W d    d S 1 sw   Y  d S )NrT   rQ   rU   20010102i ʚ;rR   )dates1dates2intcolfloatcol	stringcolg      ?ru   )rq   rr   20010109zL'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'Timestamp'rG   natzJ'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'NaTType')r   pd
date_ranger   rI   randintrJ   rK   r<   randsNaTlocrandlengetattroperator	Timestampr=   rL   rM   rf   )	r    leftrightr>   left_fright_frj   ri   rO   r   r   r   test_timestamp_compare   sF   
 	

"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}|  s,J d S )Nz
1989-08-01      rX   rY   cd)r   r1   all)r    r>   otherri   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 )NrB      r   FTr   r   r   )r   r   arangereshaper<   r=   )r    r>   rj   ri   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   r7   BCrb   )r   r   rI   rJ   range__eq__r1   r    r>   ri   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   r8   rW   r   r9   r   )r   rX   r<   r=   r   rY   )r    r>   mask_amask_br   r   r   test_df_string_comparison  s   
"$
"(z.TestFrameComparisons.test_df_string_comparisonN)r3   r4   r5   rA   rP   rL   markparametrizer   rI   r}   r{   r|   rl   r   r   r   r   r   r   r   r   r   r6   I   sZ    
-*
-r6   c                   @   s   e Zd Zejdg ddd Zejdeje	g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g ddd Zdd ZdS )TestFrameFlexComparisonsop)rq   rr   rm   rn   ro   rp   c                 C   s^  t jdd}t jdd}t|}t|}t |jd }||j s(J |	|j
 r2J t||}tt|}t||||| |jdd dd f  }	||	}
|||	j|j|jd}t|
| t||j|||j t|d||d d}t|t j||t j tjt|d || W d    d S 1 sw   Y  d S )	N   r   )r   r   r   rb   r   $Unable to coerce to Series/DataFramerG   )r   rI   rJ   r   onesshaperq   valuesr   rr   r1   r   r   r<   r=   r   r+   reindexrc   rF   nanrL   rM   rN   )r    r   data
other_datar>   r   ndim_5fopart_orsxprO   r   r   r   test_bool_flex_frame  s*   


"z-TestFrameFlexComparisons.test_bool_flex_frameboxc                 C   s  t jdd}t|}|t jd}|t jd}|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	 tt jd}tt jd}d S )Nr   r   r   r0   )r   rI   rJ   r   rq   rr   r<   r=   r	   TrK   rm   rp   ro   rn   )r    r   r   r>   idx_sercol_seridx_eqcol_eqidx_necol_neidx_gtcol_gtidx_lecol_leidx_gecol_geidx_ltcol_ltr   r   r   test_bool_flex_series=  sB   





z.TestFrameFlexComparisons.test_bool_flex_seriesc                 C   s   t tjdd}tj|jd< ||}|jd rJ ||}|jd s'J ||}|jd r3J |	|}|jd r?J |
|}|jd rKJ ||}|jd rWJ d S )Nr   r   r   r   )r   r   rI   rJ   r   r   rq   rr   rm   rn   ro   rp   )r    r>   r   r   r   r   test_bool_flex_frame_nah  s   





z0TestFrameFlexComparisons.test_bool_flex_frame_nac           	      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?w   Y  tjt|d	 |d |d  W d    n1 s_w   Y  tjt|d	 |j	|j	k W d    n1 s|w   Y  |
|}|j	 sJ t dt jd g}td|i}tjt|d	 |d W d    n1 sw   Y  tjt|d	 |d d W d    n1 sw   Y  tjt|d	 |j	dk W d    d S 1 sw   Y  d S )
Nr   rB   y               @   rX   rd   z9'>' not supported between instances of '.*' and 'complex'z unorderable types: .*complex\(\)rG   )r   r#   r   r   re   rL   rM   rf   rm   r   rr   r   )	r    arrarr2r>   df2rO   r   arr3df3r   r   r   "test_bool_flex_frame_complex_dtypey  s>   
"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 )Nr\   r8   r9   )FTF)r   r   r   r   nowrr   r<   r=   )r    df1r   ri   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 s'J |tjk}|jd  du s7J |tj}|jd  du sHJ d S )Nr   FT)r   r{   r   ilocitemrq   rr   r   r   r   r   test_flex_comparison_nat  s   

z1TestFrameFlexComparisons.test_flex_comparison_natopnamec                 C   sR   t g dg dd}d}t|||j }t|tdgtt	gdd d S )Nr   r   r         ?       @      @r]   r   countrc   name)
r   r   dtypesvalue_countsr<   assert_series_equalr	   r   r   r/   )r    r   r>   constri   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 d S )Nr   r   r]   r   r   r   r   )r   r   r   r   r   r<   r   r	   r   r   r/   )r    r   r>   r   emptyri   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   r7   r   r   r   Fr   r   r7   r   rc   )r{   IntervalIndexfrom_breaksr   r	   rq   r<   r=   )r    iir>   serr@   rj   ser2res2r   r   r   -test_df_flex_cmp_ea_dtype_with_ndarray_series  s   zFTestFrameFlexComparisons.test_df_flex_cmp_ea_dtype_with_ndarray_seriesN)r3   r4   r5   rL   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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ejdedddd Zdd Zejdg ddd Zdd Z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ejd.d/d0gd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd0S );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   rZ   r>   r   r   r   r`         z?TestFrameFlexArithmetic.test_floordiv_axis0.<locals>.<dictcomp>)	r   r   r	   r   floordivrF   r<   r=   r   )r    r   ri   rj   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 )
Nd   r   r   r   r   r   c                    s   i | ]
}| | qS r   r   rZ   r>   r   r   r   r   r`     s    zLTestFrameFlexArithmetic.test_floordiv_axis0_numexpr_path.<locals>.<dictcomp>)r   r   r   r   r   r   r   rF   r<   r=   r   )r    r   r   ri   rj   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-01rQ   rU   1r   r   r   r   )r{   r|   timedelta_ranger	   r   addr<   r=   )r    dtitditserr>   ri   rj   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   rU   )z1 Dayr   z2 Daystimedelta64[ns]r"   r   r   )days
fill_value)z
2016-01-02z
2016-01-03z
2016-01-05zdatetime64[ns]r   )	r{   r|   r	   r   	Timedeltato_timedelta64r  r<   r=   )r    r  r   r>   r   fillri   rj   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__)
startswithr   r   replacer]   r   r   r   r   +  s   
z8TestFrameFlexArithmetic.test_arith_flex_frame.<locals>.fr   r   r"   )r   r<   r=   r   )r    all_arithmetic_operatorsfloat_framemixed_float_framer   ri   rj   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 r!dd d}	n|dv r)dd i}	tjr9|dkr9d| d j|	d< t|| t||	d	 t ||d| }||d| }t|| t|dd id	 t ||d| }||d| }t|| d S )
Nr   )r  uint64)r   r   )r  r  r   r   r7   r"   )	r   r   r   USE_NUMEXPRr   r<   r=   r   r   )
r    r   	int_framemixed_int_framer  r   r   ri   rj   r   r   r   r   test_arith_flex_frame_mixed;  s&   
	z3TestFrameFlexArithmetic.test_arith_flex_frame_mixeddimr   rB   c                 C   sX   |}t d| }d}tjt|d t||| W d    d S 1 s%w   Y  d S )N)r   r   rG   )r   r   rL   rM   rN   r   )r    r  r  r  r   r   rO   r   r   r   test_arith_flex_frame_raised  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 sMw   Y  tjtdd |j |jd ddd W d    d S 1 spw   Y  d S )	Nr   r   r	  rG   r   r  rc   r0   r	  )	r  r<   r=   r   r   rL   rM   NotImplementedErrorr   )r    r  	const_addri   r   r   r   test_arith_flex_frame_cornero  s   
"z4TestFrameFlexArithmetic.test_arith_flex_frame_corner)r  submulmodc                 C   sb   |}| d}|d }t||}tt|}t||||| t||dd||j|j d S )NrX   twor   r   )xsr   r   r<   r=   r   )r    simple_framer   r>   rowr\   r   r   r   r   test_arith_flex_series_ops  s   


"z2TestFrameFlexArithmetic.test_arith_flex_series_opsc                 C   sh   |}| d}|d }t|j|d d||  t||||  t|j|dd|j| j d S )NrX   r(  r   r   )r)  r<   r=   r  divr   )r    r*  r>   r+  r\   r   r   r   test_arith_flex_series  s   
"z.TestFrameFlexArithmetic.test_arith_flex_seriesr   int64float64c                 C   sX   t tdd|d}t tjtjgddgddgg}|j|d dd	}t|| d S )
NrB   r   r"   r         ?g      ?r   rc   r   )	r   r   r   r   r   infr-  r<   r=   )r    r   r>   rj   ri   r   r   r   #test_arith_flex_series_broadcasting  s   z;TestFrameFlexArithmetic.test_arith_flex_series_broadcastingc                 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 s4w   Y  tjtd	d
 |j|d d dd W d    d S 1 sVw   Y  d S )Nr"   r7   r   rE   r   r   r   rC   r	  rG   Er  r!  )r	   objectr   rL   rM   r"  r  r%  )r    ser_len0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   rC   r   floatr"   r8   rB   r   r   r  )	r   r#   r   r   r   fillnar  r<   r=   )r    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   rC   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   rj   ri   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 )NrQ   r   r7   )r   r   r   rI   r   r   rF   r<   r=   r)   r   )r    r   r>   rj   ri   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   L1r   r   r   ))r7   r   )r7   DL2)r@  )r   rF   	set_namesr  r<   r=   )r    r@  r   r   ri   rj   r   r   r   test_broadcast_multiindex  s   z1TestFrameFlexArithmetic.test_broadcast_multiindexc                 C   s   t g dg ddtjdgdgg dgg ddd	}td
gtjdgdggddgdd	}t g dg ddtjdgdgg dgg ddd	}|j|dd}t|| d S )Nr   r   rC   r   i  i  rX   rY   rA  scenr'  idnamesr   皙?r'  rK  )ffffff?333333@333333@)rR  皙@g@r   r   r   r   from_productr	   r  r<   r=   r    r>   seriesrj   ri   r   r   r    test_frame_multiindex_operations  s$   z8TestFrameFlexArithmetic.test_frame_multiindex_operationsc                 C   s   t dgdgdtjdgdggddgdd	}tg d
tjdgdgg dgg ddd	}t g dg ddtjdgdgg dgg ddd	}|j|dd}t|| d S )Nr   r   rI  rX   rY   rK  r'  rM  r   )      $@g      4@g      >@rA  rJ  )g      &@   g      ?@)g      *@g      7@g     @@r   r   rT  rV  r   r   r   <test_frame_multiindex_operations_series_index_to_frame_index  s$   zTTestFrameFlexArithmetic.test_frame_multiindex_operations_series_index_to_frame_indexc              	   C   s   t g dg ddtjdgdgg dgg ddd	}td
gtjdgdggddgdd	}t tjtjdtjdddddtjfgg ddd	}|j|dd}t	|| d S )Nr   rH  rI  rX   rY   rA  rJ  rM  r   rO  r   r'  rK  rX   rY   r   rX   rY   r   )rX   rY   r   r   r   )
r   r   rU  r	   r   r   from_tuplesr  r<   r=   rV  r   r   r   )test_frame_multiindex_operations_no_align	  s.   
zATestFrameFlexArithmetic.test_frame_multiindex_operations_no_alignc                 C   s   t g dg ddtjg dg ddd}tdgtjd	gd
ggddgdd}t ddtjgddtjgdtjg dg ddd}|j|dd}t	|| d S )Nr   rH  rI  )r\  r]  )rX   r   r   rJ  rM  r   rO  rY   rX   r'  rK  rP  rQ  rR  rS  r   r   )
r   r   r^  r	   rU  r   r   r  r<   r=   rV  r   r   r   +test_frame_multiindex_operations_part_align&  s(   zCTestFrameFlexArithmetic.test_frame_multiindex_operations_part_align)r3   r4   r5   r   rL   r   skipifr   r   r   r  r  r  r  r   r   r$  r,  r.  r3  r8  r<  r=  r?  rG  rX  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	e
jdddg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/d0d1 Zd2d3 Z d4d5 Z!d6S )7TestFrameArithmeticc                 C   sJ   t ddgdd}tddgddgg}|| }t||d}t|| d S )	Nr   r  r"   r   r   r   rC   r   r	   r   r<   r=   )r    r   r>   ri   rj   r   r   r   test_td64_op_nat_castingI  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s)J tdd	gd	dgdd
gg|j|j|jd}|| }t	|| || }t	|| d S )NrB   r   r   TFr   rF   rc   r   rC   r   rF   rc   r   
r   r   r   r   r   rF   rc   r   r<   r=   )r    r   r>   rowlikerj   ri   r   r   r   'test_df_add_2d_array_rowlike_broadcastsS     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s)J tddgd
dgddgg|j|j|jd}|| }t	|| || }t	|| d S )NrB   r   r   TFr   re  r   r   r   	   rQ   rf  rg  )r    r   r>   collikerj   ri   r   r   r   'test_df_add_2d_array_collike_broadcastsh  rj  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s6J t|jd
 ||	 t|jd ||	 t|jd ||	 g}t||j
|jd}	t|||}
t|
|	 d S )N__rmod____rfloordiv__rB   r   r   TFr   re  r   r7   r   r   )td&mark_array_manager_not_yet_implementedr   r   r   r   r   r   r   squeezerF   rc   r<   r=   )r    r   r  using_array_managerr   r   r>   rh  exvalsrj   ri   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s6J t|d || t|d || d}d }	|dv r_tj	dd |
 D  }	t||j|j|	d}
t|||}t||
 d S )Nrn  rB   r   r   TFr   re  r   r   )TFc                 s   s    | ]}|j V  qd S r   )r   r[   r^   r   r   r   	<genexpr>  s    zPTestFrameArithmetic.test_df_arith_2d_array_collike_broadcasts.<locals>.<genexpr>rf  )rq  rr  r   r   r   r   r   r   rs  common_typer   rF   rc   r<   r=   )r    r   r  rt  r   r   r>   rl  ru  r   rj   ri   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 s2J d S )NFTr   c                 S      | j S r   kindr^   r   r   r   <lambda>      z:TestFrameArithmetic.test_df_bool_mul_int.<locals>.<lambda>ic                 S   r{  r   r|  r~  r   r   r   r    r  )r   r   applyr   )r    r>   ri   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rX   rY   r   r   r   )aabbccr   rC   rB   r   r<   r=   )r    r   ri   rj   r   r   r   test_arith_mixed  s   z$TestFrameArithmetic.test_arith_mixedr\   r7   r   c                 C   sB   t ddgddgd}||d| }||| d}t|| d S )Ng?gffffff
@g      @g333333r   r   )r   r<   r   )r    all_arithmetic_functionsr\   r>   ri   rj   r   r   r   test_arith_getitem_commute  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   r  )r    r   r>   rj   ri   r   r   r   &test_arith_alignment_non_pandas_object  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   rQ   f8r"   r   oner(  threer  re  rX   rb   r   r   r(  rc   )r   r   r   r   r)  r   rc   rF   r<   r=   r   r  rK   rI   r   r   )r    r>   val1addedval2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   rE   rQ   c                    s   g | ]	}t | qS r   )r   )r[   nnumr   r   r   
<listcomp>  r   zVTestFrameArithmetic.test_operations_with_interval_categories_index.<locals>.<listcomp>)r{   CategoricalIndexinterval_ranger   r   r<   r=   )r    r  indr   r>   ri   rj   r   r  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 )
N2019202020182021)r8   r9   r8   r9   rE   r   )r   r{   r   r
  r   r   r<   r=   )r    r>   r   ri   rj   r   r   r   test_frame_with_frame_reindex  s   
 z1TestFrameArithmetic.test_frame_with_frame_reindexzvalue, dtype)r   i8)r   r  )            r  )y              ?
complex128)r  r  )Tr/      ns<m8[ns]<M8[ns]r   c                 C   r{  r   )r3   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 rd }
|dkr[|t jksd|dkrg|t jkrgd }n#|dkrnd}n|t j
u rd}|dkrtjr|d	krt}
nd
|j d}tjt|d, t|
 |||j W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S ||f|v r$|t jt jfv rtjr|d	krt}
nd }
t|
 |||j W d    d S 1 sw   Y  d S d}tjt|d |||j W d    d S 1 sw   Y  d S td  |||jj}|||j}W d    n	1 sBw   Y  t|| d S )Nr/   r7   r"   r  r  r  z3ufunc 'remainder' not supported for the input typesz-numpy boolean subtract, the `-` operator, is r   zcannot perform __z7__ with this index type: (DatetimeArray|TimedeltaArray)rG   z+operator '.*' not implemented for .* dtypes)r   truedivr   r  r&  r   r   r   r   r'  r%  r   r  UserWarningr3   rL   rM   rf   r<   assert_produces_warningr"  r   r   )r    r   r   r   r   r   skipelemr>   invalidwarnrO   ri   rj   r   r   r   test_binop_other  s~   

""$z$TestFrameArithmetic.test_binop_otherc                 C   s   t tddgtddgg}t tddgddtddgg}tddgddgg|d}tddgddgg|d}|| }tddgddgg|d}t|| d S )	Nr   r   r   rC   Int8r"   rE   r   r   from_arraysr	   r   r<   r=   r    midxmidx2r   r   ri   rj   r   r   r   *test_arithmetic_midx_cols_different_dtypesv     "z>TestFrameArithmetic.test_arithmetic_midx_cols_different_dtypesc                 C   s   t tddgtddgg}t tddgddtddgg}tddgddgg|d}tddgddgg|d}|| }tddgddgg|d}t|| d S )	Nr   r   r   rC   r  r"   rE   r   r  r  r   r   r   :test_arithmetic_midx_cols_different_dtypes_different_order  r  zNTestFrameArithmetic.test_arithmetic_midx_cols_different_dtypes_different_orderN)"r3   r4   r5   rd  ri  rm  rv  rz  r  r  rL   r   r   r  r   r#   r   r   r  r  r  r  timedelta64
datetime64r   r  r%  r&  r  r'  r   r  r  r  r   r   r   r   rb  H  sV    
 
*
F
rb  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jtdd	 | |k W d    n1 sAw   Y  t | jd
| j	d}tjtdd	 ||k W d    d S 1 shw   Y  d S )NrB   r   r   r7   r   rE   r"   znot alignedrG   zM8[ns])r   r   rI   rJ   r   r	   r0  r   r   rF   r<   r=   rL   rM   rN   r.   )r>   r   ri   rj   r   r   r   r   ,test_frame_with_zero_len_series_corner_cases  s    

"r  c                  C   sB   t ddgtjd} tddgddgd}| | }| }t|| d S )Nr7   r   rF   r   r   r   r   )r   r   r0  r	   r<   r=   )r>   r   ri   rj   r   r   r   ,test_zero_len_frame_with_series_corner_cases  s
   r  c                  C   sD   dt ddtjgi} t| }|jdd}t g d}t|| d S )NOner7   333333?r   r   )r7   r  r   )r	   r   r   r   sumr<   r   )r   r>   ri   rj   r   r   r   +test_frame_single_columns_object_sum_axis_1  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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ejejej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"ejdg d*d+d, Z#ejd-g d.d.e$j%g d.e$j&d/e'd0d1gd2d3 Z(ejd-d0d4gd5e$%d0d4ge'd0d6gd7d8 Z)d9d: Z*d;d< Z+d=d> Z,d?d@ Z-dAS )BTestFrameArithmeticUnsortedc                 C   sp   t jddddd}ttjt||dgd}|d}|| }|jj	t
ju s)J || }|jj	t
ju s6J d S )	Nz1/1/2011rQ   H
US/Eastern)rV   freqtzrX   rb   zEurope/Moscow)r{   r|   r   r   rI   rJ   r   
tz_convertrc   r  r   utc)r    rngr>   	df_moscowri   r   r   r   *test_frame_add_tz_mismatch_converts_to_utc  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/2010r7   )r  r   r   r   r   )r{   period_ranger   r   rI   rJ   r   r   r   r<   r=   takepermutation)r    r  tsri   rj   halfr   r   r   test_align_frame  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   rC   )col1col2r"   r   r   F)check_dtype)
r   r5  r:  r   r   r,   comisnar<   r=   )r    r   r>   filledri   rj   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 )Nr8   )r   r/   r   )r    r   r@   r  ri   r   r   r   %test_logical_typeerror_with_non_valid  s   zATestFrameArithmeticUnsorted.test_logical_typeerror_with_non_valid)r  r%  r&  r-  r  c                    s  t jtdg dg dgg dd}ttddd|g d	d
  tj	t
t|d d u r3d S t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|| d S )Nabcr  r   )firstsecondthirdrM  Q      r   )value1value2value3rb   )r   rY  g      Y@r  r   )r@  r0   c                    s:   g | ]\}} j d d d d |f d d f |qS r   r   r[   r  vr>   idxopar   r   r    s   : zETestFrameArithmeticUnsorted.test_binary_ops_align.<locals>.<listcomp>r   rY  r(  r  r  c                    s4   g | ]\}} j d d |f d d f |qS r   r  r  r  r   r   r    s   4 )r   rU  rK   r   r   r   r   
sort_indexr{   
IndexSlicer   r   r	   concatitemsr<   r=   reindex_like)r    r   rc   r^   ri   rj   r   r  r   test_binary_ops_align  s<   z1TestFrameArithmeticUnsorted.test_binary_ops_alignc                 C   s(  t 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|| qtddg|j_||	|
|fD ]}t|| qd S )Nr7   r   rX   rY   )r   rC   r/  r"   rE   r   r   rW   lvl0lvl1)r0   r@  )r   r   r   r   )r   rU  r   r   r   r	   r+   rF   rN  rc   r   r&  r#   r<   r=   )r    r  r>   sr   s2res1r   res3res4res5res6r?   r@   r   r   r   &test_binary_ops_align_series_dataframe  s,   zBTestFrameArithmeticUnsorted.test_binary_ops_align_series_dataframec                 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)r  z
Asia/Tokyor   r  r   r7   r   r   )r{   DatetimeIndexr  r   r   r   r<   r=   )r    baseidx1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|jd |jd df< || }|d  j}|d d  }t|d  |j|  tj|j|j	| < t|d |j|d j  t
|d  |jd d  sgJ t
|d  srJ || }t|j|j || }	t
|d  sJ t
|	d  sJ |t  }
t
|
j sJ t | }t
|j sJ t t  }|jsJ |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   rD  rC   r   r7   r   r   rE   r0  r"   )r   rc   r   r   r   dropnar+   r<   r   isinisnanr   assert_index_equalr   r   r   rF   r=   r   )r    r  r  r  
frame_copyr  indexerr?   
self_added	added_rev
plus_empty
empty_plusempty_emptyreverser   r   r   test_combineFrameG  s@   &


z-TestFrameArithmeticUnsorted.test_combineFramec           
      C   s\  | |jd }|| }| D ]\}}t||| ||   q| }d|d< t|}|| }	| D ]\}}t|	| |||   q5d|	v sLJ t|	d 	 sWJ || }t	|j
|jksfJ ||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   r4  float32r   r"   float16r   r/  r0  )r7   r   r   rD  int32)r)  rc   r  r<   r   to_dictr	   r   r  r   r   r   r,   r   r   )
r    r  r  r  rW  r  keyr  larger_serieslarger_addedr   r   r   test_combine_series  s4   
z/TestFrameArithmeticUnsorted.test_combine_seriesc                 C   sv  |d }|j |dd}| D ]0\}}|| }tj|| |dd || j|ks*J |j|jkr8|jdks7J 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sJ d S )Nr7   rc   r   F)check_namesr   rb   r   rE   )r  r  r<   r   r   r  rc   r=   r   r   r   rF   r   r&  r   )r    datetime_framer  r  r  r\   ri   smaller_framesmaller_added
smaller_tssmaller_added2rj   framer   r   r   test_combine_timeseries  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sGJ d S )Nr   r   r"   r   )
r<   assert_numpy_array_equalr   r  r   r   rc   equalsr   rF   )r    r  r  ri   r   r  r   r   r   test_combineFunc  s   
z,TestFrameArithmeticUnsorted.test_combineFuncfuncc                 C   s  t  }t  }|d}t|jd }|||}t |j||j|j d}	tj	t
t|	d ||| W d    n1 sBw   Y  |||}
t |
j||j|j ||d}t |j||jd d}	tj	t
|	d |||d d  W d    d S 1 sw   Y  d S )NrX   r   r   r   zNUnable to coerce to Series/DataFrame, dimension must be <= 2: (30, 4, 1, 1, 1)rG   r   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr   )r<   makeTimeDataFramer)  r   r   r   r(  r   rL   rM   rN   reescape)r    r*  r  r+  r   r   r+  r   ri   rO   r   result3r   r   r   test_comparisons  s,   



"z,TestFrameArithmeticUnsorted.test_comparisonsc                 C   s^   t dd dD }tt|}d}tjt|d ||d W d    d S 1 s(w   Y  d S )Nc                 S   s   i | ]	}|d dddqS )r8   r9   r:   )r^   r_   zr   rw  r   r   r   r`     r   zZTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raises.<locals>.<dictcomp>r  z;'[<>]=?' not supported between instances of 'str' and 'int'rG   r   )r   r   r   rL   rM   rf   )r    compare_operators_no_eq_ner>   r   rO   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 s%w   Y  tjdd |dk j}W d    n1 s@w   Y  t || d S )Nr   r7   ignore)r  raise)	r<   makeDataFramer   r   r   rc   errstater   r(  )r    
missing_dfrj   ri   r   r   r   'test_comparison_protected_from_errstate  s   zCTestFrameArithmeticUnsorted.test_comparison_protected_from_errstatec                 C   sZ  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 sbw   Y  tjt|	d
 ||k W d    n1 s}w   Y  ||k}t	|| |j
|k}t||j
 tjt|
d
 ||k W d    n1 sw   Y  tjt|d
 |j
|k W d    n1 sw   Y  t ddgddgddgg}||k}t	|| tjt|	d
 ||k W d    n1 sw   Y  tjt|	d
 ||k W d    n	1 sw   Y  ||k}t	|| |j
|k}t||j
 tjt|
d
 ||k W d    n	1 sJw   Y  |j
j|jksYJ t tddtdtdd}|j|_|j|_tjt|	d
 ||k W d    n	1 sw   Y  tjt|	d
 ||k W d    d S 1 sw   Y  d S )NrB   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 shapesrG   ABr  re  )r   r   r   r   r#   
atleast_2dr   tupler<   r=   r   r(  rL   rM   rN   r   rK   rc   rF   )r    r>   rY   b_rb_clsttuprj   ri   msg1dmsg2dmsg2dbr   r   r   test_boolean_comparison   st   










$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 )
NabcdefgrQ   r   re  r   r   bedcfbcdefrE   )rK   r   r   r   r   r   r   r   r+   r   r<   r=   )r    rF   X_origZblock1subsXresult1r   r0  result4r   r   r   test_inplace_ops_alignmentn  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 s3J |j	|j	u s;J | }|}|d7 }t
|| t
|d | ||u sYJ |j	|j	u saJ | }|}|d7 }t|| t|d | | }|}|d7 }t
|| t
|d | ||u sJ |j	|j	u sJ tjjdddd}t| d	d
}| }|}|d  d7  < t| d d	d
}t
|| t
|| |j	|j	u sJ | }|}|d  d7  < t| d d	d
}t
|| t
|| |j	|j	u sJ d S )Nr   r   r   rQ   rR   r   r   r1  r8   r   r7   )r	   r   r   rI   r}   r   r+   r<   r   _mgrr=   )	r    s_origdf_origr  r  r>   r   r   rj   r   r   r   test_inplace_ops_identity  sX   z5TestFrameArithmeticUnsorted.test_inplace_ops_identity)r  andr-  r   r'  r&  orr   r%  r  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sMJ d S )Nr-  r   r   rW   r   )rW  rX  rY  )TFTrX   __ir  )r   r+   r   r<   r=   rL  )r    r   r>   operanddf_copyioprj   r   r   r   test_inplace_ops_identity2  s   z6TestFrameArithmeticUnsorted.test_inplace_ops_identity2valr   r"   r   rC   c                 C   s   g d}g d}t tjdd||d}tjjj}t |||d|jd}t	
|||dd | t g dg d	g d
d|jd}t	
|||dd | d S )Nr   rO  YrL  r   rb   r   rc   r   r,  r;  r   r   r   rF   )r   r   rI   rJ   r{   coreopsalign_method_FRAMErc   r<   r=   )r    r_  rc   rF   r>   alignrj   r   r   r   test_alignment_non_pandas  s   

z5TestFrameArithmeticUnsorted.test_alignment_non_pandasr   r  r   c                 C   s   g d}g d}t tjdd||d}tjjj}d}tj	t
|d |||d W d    n1 s3w   Y  tj	t
|d |||d W d    d S 1 sQw   Y  d S )	Nr   r`  r   rb   z5Unable to coerce to Series, length must be 3: given 2rG   rc   rF   )r   r   rI   rJ   r{   rc  rd  re  rL   rM   rN   )r    r_  rc   rF   r>   rf  rO   r   r   r   )test_alignment_non_pandas_length_mismatch  s   
"zETestFrameArithmeticUnsorted.test_alignment_non_pandas_length_mismatchc                 C   s  g d}g d}t tjdd||d}tjjj}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 srw   Y  tjt|d |||d
 W d    n1 sw   Y  td}td}tjt|d |||d W d    n1 sw   Y  tjt|d |||d
 W d    d S 1 sw   Y  d S )Nr   r`  r   rb   r   rC   r   rB   )r   r   rk  rc   r   rF   r<  rG   rb  zGUnable to coerce to Series/DataFrame, dimension must be <= 2: (3, 3, 3))r   r   rI   rJ   r{   rc  rd  re  r#   r<   r=   rc   rF   rL   rM   rN   zerosr.  r/  )r    rc   rF   r>   rf  r_  rO   r   r   r   'test_alignment_non_pandas_index_columns$  s>   

"zCTestFrameArithmeticUnsorted.test_alignment_non_pandas_index_columnsc                 C   s\   t ddgdd gd}|d }td  t||| W d    d S 1 s'w   Y  d S )Nr  r   r   )r   r<   r  r   r    r  r>   rY   r   r   r   test_no_warningF  s
   "z+TestFrameArithmeticUnsorted.test_no_warningc                 C   sb   t ddgdd gd}|d }tjtdd t|||d W d    d S 1 s*w   Y  d S )Nr  r   r   ztakes 2 positional argumentsrG   r   )r   rL   rM   rf   r   rl  r   r   r   test_dunder_methods_binaryL  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   r0  r"   rQ   )rQ   r   z0.X)r   r   r   r   intr   rs  r,   r9  meanr<   r=   )r    rO  ra  r   r   ri   rj   r   r   r   test_align_int_fill_bugS  s   
z3TestFrameArithmeticUnsorted.test_align_int_fill_bugN).r3   r4   r5   r  r  rL   r   r   r   r  r%  r&  r  r  filterwarningsr  r  r  r	  r  r  r'  r*  rq   rr   rn   rm   ro   rp   r1  r4  r:  rG  rR  rV  r^  r   r#   r/  r   rg  rh  rk  rm  rn  rq  r   r   r   r   r    s`    


&
=(.
 	N09

	(
"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 )Nr7   rA  r   r   r   r   r   r<   r=   )r   r   ri   rj   r   r   r   test_pow_with_realignmentb  s
   rt  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 )Nr7   rC  )r   r   r   )r   r   r   r<   r=   r   )r   r   rj   ri   r   r   r   test_pow_nan_with_zerom  s   ru  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   )rQ   r   r  rE   r   r   r/  r   r   Int64r  )r   r   rI   r}   r	   to_numpyr   rF   r,   r<   r=   )r>   r   rj   df_eari   r   r   r   &test_dataframe_series_extension_dtypesz  s   
ry  c                     s  t jddd} t| }| dddd}t j|jdg df< | ddi}t j|jddgf< | dddd}t j|jdt ddf< | dddd	}t j|jdt d
df< ||f||f||ffD ]\   }t fdd j	D }t
|| qld S )Nr   i  )r   rQ   r9  )r   r   r   r   r   r   rC   r   ri  rC   r   c                    s   i | ]}| | |  qS r   r   )r[   r  r   r   r   r   r`     ra   z6test_dataframe_blockwise_slicelike.<locals>.<dictcomp>)r   rI   r}   r   r+   r,   r   r   r   rF   r<   r=   )r   r   r   r   df4df5r@   rj   r   r{  r   "test_dataframe_blockwise_slicelike  s   r~  zdf, col_dtyper   r   g      @r  abrE   r0  rY   r5  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 )	Nr  r   r  rE   rY   g      rX   r   )r   r   r   rK   r,   r	   r<   r=   )r>   	col_dtyperj   ri   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   r  )r   rF   rC  )r  r  r  rE   rs  )r   r   ri   rj   r   r   r   "test_arith_reindex_with_duplicates  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 s+w   Y  tjt|d | |  W d    d S 1 sGw   Y  d S )Nr   r   r]   zUnable to coerce list of r   z to Series/DataFramerG   )r   r-   rL   rM   rN   )r  r>   rO   r   r   r   "test_arith_list_of_arraylike_raise  s   

"r  c                 C   s~   t dg di}| }|d }|j}|d7 }| r(|j|us J t|| d S |j|u s/J t dg di}t|| d S )Nr7   r   r   rz  )r   r+   _valuesr<   r=   )using_copy_on_writer>   rU  rW  valsrj   r   r   r   %test_inplace_arithmetic_series_update  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   rX   r   rY   rM  rb   r   N)r   r   rU  r   r<   r=   )r   r   rj   ri   r   r   r   !test_arithemetic_multiindex_align  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   rK   r   r   r<   r=   )r>   ri   rj   r   r   r   test_bool_frame_mult_float  s   r  c                 C   sP   t g d| d}t g d| d}tg d| d}| |  }t|| d S )N)r   r   Nr"   r   )r   r   N)r	   r   to_framer<   r=   )any_int_ea_dtypeseries1series2rj   ri   r   r   r   test_frame_sub_nullable_int  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 r   r   r$   SubclassedSeriesr   r   _constructor     zRtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructorc                    r  r   r   r$   )SubclassedDataFramer   r   _constructor_expanddim  r  z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructor_expanddimN)r3   r4   r5   propertyr  r  r   r  r  r   r   r     s
    r  c                       s@   e Zd ZdgZd
 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_datar   Nc                    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                    r  r   r   r$   r  r   r   _constructor_sliced  r  z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame._constructor_slicedr2   )	r3   r4   r5   	_metadatar!   r  r  r  __classcell__r   r  r  r   r  	  s    
r  	some_datar   ri  r   r   r  )r   rQ      rc  )sdfri   rj   r   r  r   +test_frame_op_subclass_nonclass_constructor  s   	r  c                  C   sd   t dd} t| jg di}t| jg di}|| j || j k}tg d| jd}t|| d S )NColsz	col1 col2r   )TTTr  )r   r   r  r	   r<   r   )r  q1q2ri   rj   r   r   r   test_enum_column_equality!  s   
r  )Acollectionsr   r   r   enumr   r  r   r.  numpyr   rL   pandas.util._test_decoratorsutil_test_decoratorsrq  pandasr{   r   r   r   r	   pandas._testing_testingr<   pandas.core.commonrc  commonr  pandas.core.computationr
   r   #pandas.core.computation.expressionsr   r   pandas.tests.frame.commonr   r   fixturer   r   r6   r   r   rb  r  r  r  r  rt  ru  ry  r~  r   r   rK   r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   st    
 U H  f  E
     ,
.	
	$