a
    Pf                    @   sL  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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Z d dlmZm Z  ej!d	d
 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#Z,d$d% Z-d&d' Z.d(d) Z/ej01d*ed+d,gd-d.gge2d/d0d1fed+d2gd-d2gge2d/d03d2e4id3fgd4d5 Z5d6d7 Z6ej01d8ed9d9gged9d9ged9d9gggd:d; Z7d<d= Z8d>d? Z9d@dA Z:dBdC Z;ej0<dDdEdF Z=dGdH Z>dIdJ Z?dS )K    )deque)datetimetimezone)EnumN)using_pyarrow_string_dtype)	DataFrameIndex
MultiIndexSeries)expressions)_check_mixed_float_check_mixed_intc                  C   s2   t g dg dg dg} t| g dg ddS )z
    Fixture for simple 3x3 DataFrame

    Columns are ['one', 'two', 'three'], index is ['a', 'b', 'c'].

       one  two  three
    a  1.0  2.0    3.0
    b  4.0  5.0    6.0
    c  7.0  8.0    9.0
          ?       @      @)      @      @g      @)g      @g       @g      "@onetwothreeabccolumnsindex)nparrayr   )arr r"   [/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/frame/test_arithmetic.pysimple_frame!   s    r$   Td   Znumexprpython)Zautouseparamsidsc                 c   sD   |  (}|td| j | jV  W d    n1 s60    Y  d S )NZ_MIN_ELEMENTS)contextsetattrexprparam)requestZmonkeypatchmr"   r"   r#   switch_numexpr_min_elements2   s    
r/   c                   @   s\   e Zd ZddddZd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 )DummyElementNreturnc                 C   s   || _ t|| _d S N)valuer   dtype)selfr4   r5   r"   r"   r#   __init__:   s    zDummyElement.__init__c                 C   s   t j| j| jdS )Nr5   )r   r    r4   r5   r6   r5   copyr"   r"   r#   	__array__>   s    zDummyElement.__array__c                 C   s   d| j  d| j dS )NzDummyElement(z, ))r4   r5   r6   r"   r"   r#   __str__A   s    zDummyElement.__str__c                 C   s   t | S r3   )strr=   r"   r"   r#   __repr__D   s    zDummyElement.__repr__Fc                 C   s
   || _ | S r3   r8   r9   r"   r"   r#   astypeG   s    zDummyElement.astypec                 C   s   t | | j||S r3   )typer4   view)r6   r5   r"   r"   r#   rC   K   s    zDummyElement.viewc                 C   s
   t | jS r3   )boolr4   )r6   axisr"   r"   r#   anyN   s    zDummyElement.any)NN)F)N)__name__
__module____qualname__r7   r;   r?   r>   r@   rA   rC   rF   r"   r"   r"   r#   r0   9   s   

r0   c                   @   s  e Zd Zdd Zdd Zejdej	
djdddejd	dd
dej	
djdddej	
djddddgej	
djdddej	
djddddej	
djdddejd	dd
dgejd	dd
ejd	dd
dej	
djdddej	
djddddgej	
d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ejje dd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)TFFrL   category)r   tmassert_frame_equalrA   )r6   dfexpresr"   r"   r#   &test_comparison_with_categorical_dtypeY   s    z;TestFrameComparisons.test_comparison_with_categorical_dtypec                 C   s\   t tjddtdd}d}tjt|d |dv  W d    n1 sN0    Y  d S )N   )      ABCDr   z+The truth value of a DataFrame is ambiguousmatchr3   )	r   r   randomdefault_rngstandard_normallistpytestraises
ValueError)r6   rR   msgr"   r"   r#   test_frame_in_listh   s    z'TestFrameComparisons.test_frame_in_listz	arg, arg2rV   
   size20010101periodsr   r   c                    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 s0    Y  tjt|d  k W d    n1 s0    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>r   r   c                    s   i | ]}| | | kqS r"   r"   rm   rp   r"   r#   rs      rt   )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.|r[   )	r   r   r   rP   rQ   joinra   rb   	TypeError)r6   argZarg2resultexpectedZmsgsrd   r"   rp   r#   test_comparison_invalidq   s4    0	
&&(z,TestFrameComparisons.test_comparison_invalidzleft, right))gtlt)r~   r}   )gele)r   r   )eqr   )ner   c           	      C   s  t tjdddtjdddtjdjdddtjdddd	 tdD d
}tj	|j
tjdt|dkdf< tt|}tt|}|dv r||td}|td|}t|| nd}tjt|d  ||td W d    n1 s0    Y  tjt|d  |td| W d    n1 s>0    Y  |dv r||td}|td|}t|| nd}tjt|d  ||td W d    n1 s0    Y  tjt|d  |td| W d    n1 s0    Y  d S )Nri   rf   rj   Z20010102rV   i ʚ;rg   c                 S   s   g | ]}t d | qS )r%   )chrrn   ir"   r"   r#   
<listcomp>   rt   z?TestFrameComparisons.test_timestamp_compare.<locals>.<listcomp>)Zdates1dates2ZintcolZfloatcolZ	stringcolg      ?r   )r   r   Z20010109zL'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'Timestamp'r[   ZnatzJ'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'NaTType')r   pd
date_ranger   r]   r^   integersr_   rangeNaTloclengetattroperator	TimestamprP   rQ   ra   rb   rx   )	r6   leftrightrR   Zleft_fZright_fr{   rz   rd   r"   r"   r#   test_timestamp_compare   s>    	&

.0
0z+TestFrameComparisons.test_timestamp_comparezcan't compare string and int)reasonc                 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   rV   r   r   r   d)r   rF   all)r6   rR   otherrz   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 )NrW      rV   FTrV   rV   rV   )r   r   arangereshaperP   rQ   )r6   rR   r{   rz   r"   r"   r#    test_df_boolean_comparison_error  s    z5TestFrameComparisons.test_df_boolean_comparison_errorc                 C   sB   t tjddtdg dd}|d }|  r>J d S )NrV   )   r   r   rK   BCru   )r   r   r]   r^   r_   r   __eq__rF   r6   rR   rz   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   rL   rl   rV   rM   r   )r   r   rP   rQ   r   r   )r6   rR   Zmask_aZmask_br"   r"   r#   test_df_string_comparison(  s    
"$
"z.TestFrameComparisons.test_df_string_comparisonN)rG   rH   rI   rU   re   ra   markparametrizer   r]   r^   r   r   r   r|   r   xfailr   r   r   r   r   r"   r"   r"   r#   rJ   V   s^   	-
*
-

rJ   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)r   r   r}   r~   r   r   c                 C   sf  t jdd}t jdd}t|}t|}t |jd }||j	 sXJ |
|j rlJ 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    n1 sX0    Y  d S )
NrV      r   )r   r   r   r   ru   r   $Unable to coerce to Series/DataFramer[   )r   r]   r^   r_   r   onesshaper   valuesr   r   rF   r   r   rP   rQ   r   r:   reindexr   r   nanra   rb   rc   )r6   r   dataZ
other_datarR   r   ndim_5foZpart_orsZxprd   r"   r"   r#   test_bool_flex_frame5  s(    

z-TestFrameFlexComparisons.test_bool_flex_frameboxc                 C   s"  t jdd}t|}|t jdd}|t jd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d}t	t jdd}d S )NrV   r   r   r   r   rE   )r   r]   r^   r_   r   r   r   rP   rQ   r
   Tr`   r}   r   r   r~   )r6   r   r   rR   Zidx_serZ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_bool_flex_seriesS  sB    





z.TestFrameFlexComparisons.test_bool_flex_seriesc                 C   s   t tjdd}tj|jd< ||}|jd r:J ||}|jd sRJ |	|}|jd rjJ |
|}|jd rJ ||}|jd rJ ||}|jd rJ d S )NrV   r   r   r   )r   r   r]   r^   r_   r   r   r   r   r}   r~   r   r   )r6   rR   r   r"   r"   r#   test_bool_flex_frame_na~  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~0    Y  tjt|d	" |d |d  W d    n1 s0    Y  tjt|d	 |j	|j	k W d    n1 s0    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 s0    Y  tjt|d	 |j	dk W d    n1 s0    Y  d S )
Nr   rW   y               @   r   rv   z9'>' not supported between instances of '.*' and 'complex'z unorderable types: .*complex\(\)r[   )r   r    r   r   rw   ra   rb   rx   r}   r   r   r   )	r6   r!   Zarr2rR   df2rd   r   Zarr3df3r"   r"   r#   "test_bool_flex_frame_complex_dtype  s2    (0*
*.z;TestFrameFlexComparisons.test_bool_flex_frame_complex_dtypec                 C   s\   t ddtjdgitd}t ddt dgitd}||}t dg di}t|| d S )Nro   rL   rM   r8   )FTF)	r   r   r   objectr   nowr   rP   rQ   )r6   df1r   rz   rS   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 sJ d S )Nr   FT)r   r   r   ilocitemr   r   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   rV   r   r   rp   rV   countr   name)
r   r   dtypesvalue_countsrP   assert_series_equalr
   r   r5   rD   )r6   r   rR   constrz   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   rp   rV   r   r   r   )r   r   r   r   r   rP   r   r
   r   r5   rD   )r6   r   rR   r   emptyrz   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   rK   r   r   r   Fr   rV   rK   r   r   )r   ZIntervalIndexZfrom_breaksr   r
   r   rP   rQ   )r6   iirR   serrT   r{   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)rG   rH   rI   ra   r   r   r   r   r    r
   r   r   r   r   r   r   r   r   r"   r"   r"   r#   r   3  s   

*'


r   c                   @   s  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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(d)gd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd)S )4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"   rm   rR   r   r"   r#   rs     rt   z?TestFrameFlexArithmetic.test_floordiv_axis0.<locals>.<dictcomp>)	r   r   r
   r   floordivr   rP   rQ   r   )r6   r!   rz   r{   result2r"   r   r#   test_floordiv_axis0  s    
z+TestFrameFlexArithmetic.test_floordiv_axis0c                 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-01rf   rj   1r   r   r   r   )r   r   Ztimedelta_ranger
   r   addrP   rQ   )r6   dtiZtdiZtserrR   rz   r{   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   rj   )z1 Dayr   z2 Daystimedelta64[ns]r8   r   r   )days
fill_value)z
2016-01-02z
2016-01-03z
2016-01-05zdatetime64[ns]rV   )	r   r   r
   r   	TimedeltaZto_timedelta64r   rP   rQ   )r6   r   r   rR   r   fillrz   r{   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   replacerp   r   r"   r#   r   .  s    
z8TestFrameFlexArithmetic.test_arith_flex_frame.<locals>.frV   r   r8   )r   rP   rQ   r   )r6   all_arithmetic_operatorsfloat_framemixed_float_framer   rz   r{   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 )
NrV   )r   Zuint64)r   r   )r   r   r   r   rK   r8   )	r   r   r+   USE_NUMEXPRr5   rP   rQ   r   r   )
r6   r   Z	int_framemixed_int_framer   r/   r   rz   r{   r5   r"   r"   r#   test_arith_flex_frame_mixed>  s&    	
z3TestFrameFlexArithmetic.test_arith_flex_frame_mixeddimr   rW   c                 C   sV   |}t d| }d}tjt|d t||| W d    n1 sH0    Y  d S )N)r   r   r[   )r   r   ra   rb   rc   r   )r6   r   r   r   r   r!   rd   r"   r"   r#   test_arith_flex_frame_raiseg  s
    z3TestFrameFlexArithmetic.test_arith_flex_frame_raisec                 C   s   | d}t||d  | |d d }| tj }t|| |d d  |}| tj }t|| tjtdd$ |j |j	d dd W d    n1 s0    Y  tjtdd& |j |j	d ddd W d    n1 s0    Y  d S )	Nr   r   r   r[   r   r   r   rE   r   )
r   rP   rQ   
sort_indexr   r   ra   rb   NotImplementedErrorr   )r6   r   Z	const_addrz   r{   r"   r"   r#   test_arith_flex_frame_cornerr  s    
2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 )Nr   r   r   r   )xsr   r   rP   rQ   r   )r6   r$   r   rR   rowro   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 )Nr   r   r   r   )r	  rP   rQ   r   divr   )r6   r$   rR   r
  ro   r"   r"   r#   test_arith_flex_series  s    
z.TestFrameFlexArithmetic.test_arith_flex_seriesr5   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 )
NrW   r   r8   r         ?g      ?r   r   r   )	r   r   r   r   r   infr  rP   rQ   )r6   r5   rR   r{   rz   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 sh0    Y  tjtd	d
$ |j|d d dd W d    n1 s0    Y  d S )Nr8   rK   r   rZ   r   rV   r   rX   r   r[   Er   r  )r
   r   r   ra   rb   r  r   r  )r6   Zser_len0Zdf_len0rR   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   rX   r   floatr8   rL   rW   r   rV   r   )	r   r    r   r   r   fillnar   rP   rQ   )r6   ZdatrR   rS   rT   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   rV   r   rX   r   )r   rV   r   rV   r   r   r   )r   rV   r   rV   rV   )r   r   rV   rV   r   )r   r  rP   rQ   )r6   r   r   r{   rz   r"   r"   r#   'test_sub_alignment_with_duplicate_index  s
    
z?TestFrameFlexArithmetic.test_sub_alignment_with_duplicate_index)r   r   r   __truediv__c                 C   sb   t tdtjddd}t|||}ddg|_ddg|_t|||}t|| d S )Nrf   rV   r   rK   )	r   r   r   r]   r^   r   r   rP   rQ   )r6   r   rR   r{   rz   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   rV   r   r   ZL1r   r   r   ))rK   r   )rK   DZL2)r  )r   r   Z	set_namesr   rP   rQ   )r6   r  r   r   rz   r{   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   rX   r   i  i  r   r   r  scenr  idnamesr   皙?r  r#  )ffffff?333333@333333@)r*  皙@g@r   r   r   r	   from_productr
   r   rP   rQ   r6   rR   seriesr{   rz   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   r!  r   r   r#  r  r%  r   )      $@g      4@g      >@r  r"  )g      &@   g      ?@)g      *@g      7@g     @@r   r   r,  r.  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   r   r!  r   r   r  r"  r%  r   r'  r   r  r#  r   r   r   r   r   r   )r   r   rV   r   r   )
r   r	   r-  r
   r   r   from_tuplesr   rP   rQ   r.  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   r   r!  )r4  r5  )r   r   rV   r"  r%  r   r'  r   r   r  r#  r(  r)  r*  r+  r   r   )
r   r	   r6  r
   r-  r   r   r   rP   rQ   r.  r"   r"   r#   +test_frame_multiindex_operations_part_align)  s(    zCTestFrameFlexArithmetic.test_frame_multiindex_operations_part_align)rG   rH   rI   r   r   r   r   ra   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r0  r3  r7  r8  r"   r"   r"   r#   r     s2   
(



	
	
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   r8   r   rV   r   rX   r   r
   r   rP   rQ   )r6   r   rR   rz   r{   r"   r"   r#   test_td64_op_nat_castingL  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 )NrW   r   rV   TFr   r   r   rX   r   r   r   r5   
r   r   r   r   r   r   r   r5   rP   rQ   )r6   r!   rR   rowliker{   rz   r"   r"   r#   'test_df_add_2d_array_rowlike_broadcastsV  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 )NrW   r   rV   TFr   r   r   r   r   	   rf   r<  r=  )r6   r!   rR   colliker{   rz   r"   r"   r#   'test_df_add_2d_array_collike_broadcastsk  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__rW   r   rV   TFr   r   r   rK   r   r   )td&mark_array_manager_not_yet_implementedr   r   r   r   r   r   r   squeezer   r   rP   rQ   )r6   r-   r   using_array_managerr   r!   rR   r>  exvalsr{   rz   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 rtj	dd |
 D  }	t||j|j|	d}
t|||}t||
 d S )NrC  rW   r   rV   TFr   r   r   r   )TFc                 s   s   | ]}|j V  qd S r3   )r   rn   rq   r"   r"   r#   	<genexpr>  rt   zPTestFrameArithmetic.test_df_arith_2d_array_collike_broadcasts.<locals>.<genexpr>r<  )rF  rG  r   r   r   r   r   r   rH  Zcommon_typer   r   r   rP   rQ   )r6   r-   r   rI  r   r!   rR   rA  rJ  r5   r{   rz   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 r3   kindrq   r"   r"   r#   <lambda>  rt   z:TestFrameArithmetic.test_df_bool_mul_int.<locals>.<lambda>r   c                 S   s   | j S r3   rO  rQ  r"   r"   r#   rR    rt   )r   r   applyr   )r6   rR   rz   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 )Nr   r   r   )ZaaZbbccrV   rX   rW   r   rP   rQ   )r6   r   rz   r{   r"   r"   r#   test_arith_mixed  s    z$TestFrameArithmetic.test_arith_mixedro   rK   r   c                 C   sB   t ddgddgd}||d| }||| d}t|| d S )Ng?gffffff
@g      @g333333r   r   )r   rP   r   )r6   Zall_arithmetic_functionsro   rR   rz   r{   r"   r"   r#   test_arith_getitem_commute  s    z.TestFrameArithmetic.test_arith_getitem_commuter   r   rV   r   rV   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   rV   r   rX  )r6   r   rR   r{   rz   r"   r"   r#   &test_arith_alignment_non_pandas_object  s    z:TestFrameArithmetic.test_arith_alignment_non_pandas_objectc                 C   s8  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d|j}t |j| |j|jd
}t	||| d S )Nr   rf   f8r8   r   r   r   r   r   ru   r   r   r   r   rV   )r   r   r   r   r	  r   r   r   rP   rQ   r   r   r`   r]   r^   r   )r6   rR   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   rV   rZ   rf   c                    s   g | ]}t | qS r"   )r   )rn   nnumr   r"   r#   r     rt   zVTestFrameArithmetic.test_operations_with_interval_categories_index.<locals>.<listcomp>)r   ZCategoricalIndexZinterval_ranger   r   rP   rQ   )r6   r   indr   rR   rz   r{   r"   rd  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	}|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)rL   rM   rL   rM   M8[ns]r   r5   r   rZ   )r   r   r   r   r   r   rP   rQ   )r6   rR   r   rz   r{   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  )TrD      ns<m8[ns]<M8[ns]r   c                 C   s   | j S r3   )rG   rQ  r"   r"   r#   rR  2  rt   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s|dkr|t jkrd }
nN|dkrd}
n@|t j
u rd}
|dkrtjr|d	krt}	nd
|j d}
tjt|
dH t|	 |||j W d    n1 s\0    Y  W d    n1 s|0    Y  n
||f|v rB|t jt jfv r tjr|d	krt}	nd }	t|	 |||j W d    n1 s0    Y  n@d}
tjt|
d |||j W d    n1 s60    Y  nRtd * |||jj}|||j}W d    n1 s~0    Y  t|| d S )NrD   rK   r8   rq  rp  rm  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)r[   z+operator '.*' not implemented for .* dtypes)r   truedivpowr   r  r0   r   r4   r5   r  r  r+   r   UserWarningrG   ra   rb   rx   rP   assert_produces_warningr  r   r   )r6   r   r4   r5   r/   skipelemrR   invalidwarnrd   rz   r{   r"   r"   r#   test_binop_other  sn    
P..,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   rV   r   rX   Int8r8   rZ   r   r	   Zfrom_arraysr
   r   rP   rQ   r6   midxZmidx2r   r   rz   r{   r"   r"   r#   *test_arithmetic_midx_cols_different_dtypesz  s    "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   rV   r   rX   r{  r8   rZ   r|  r}  r"   r"   r#   :test_arithmetic_midx_cols_different_dtypes_different_order  s    "zNTestFrameArithmetic.test_arithmetic_midx_cols_different_dtypes_different_orderN)"rG   rH   rI   r;  r?  rB  rK  rN  rU  rY  ra   r   r   rZ  r   r    r   r   r\  r_  rg  rj  Ztimedelta64Z
datetime64r   r   r  r  rr  r  rs  rz  r  r  r"   r"   r"   r#   r9  K  sT   
 
*
F
r9  c                  C   s   t tjd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 s0    Y  t | jd
| j
d}tjtdd	 ||k W d    n1 s0    Y  d S )NrV   rW   r   rK   r   rZ   r8   znot alignedr[   rh  )r   r   r]   r^   r_   r   r
   r  r   r   r   rP   rQ   ra   rb   rc   rC   )rR   r   rz   r{   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 )NrK   r   ri  r   rV   r   )r   r   r  r
   rP   rQ   )rR   r   rz   r{   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 )NZOnerK   333333?r   r   )rK   r  r   )r
   r   r   r   sumrP   r   )r   rR   rz   r{   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d*d+ej#d,ejj$e%d-d.d/d0d1d2d3d4d5d6d7gd8d9 Z&ejd:g d;d;e'j(g d;e'j)d<e*d=d>gd?d@ Z+ejd:d=dAgdBe'(d=dAge*d=dCgdDdE Z,dFdG Z-dHdI Z.dJdK Z/dLdM Z0dNS )OTestFrameArithmeticUnsortedc                 C   sv   t jddddd}ttjdt||dgd}|d	}|| }|j	j
tju sXJ || }|j	j
tju srJ d S )
Nz1/1/2011rf   h
US/Eastern)rk   freqtzrV   r   ru   zEurope/Moscow)r   r   r   r   r]   r^   r_   r   
tz_convertr   r  r   utc)r6   rngrR   Z	df_moscowrz   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dt|df|d}||d d d  }|| }tj|j	dd d< t
|| |d d d }||tjdt| }t
|| d S )	Nz1/1/2000z1/1/2010Y)r  rV   r   r   r   )r   Zperiod_ranger   r   r]   r^   r_   r   r   r   rP   rQ   ZtakeZpermutation)r6   r  tsrz   r{   Zhalfr"   r"   r#   test_align_frame  s     z,TestFrameArithmeticUnsorted.test_align_framer   c                 C   sf  t g dg ddtd}d}tjt|d |tj}W d    n1 sN0    Y  ||d}||dt}tj|t	
|< t|| |||}|||t}tj|t	
|< t|| d}tjt|d  |||d}W d    n1 s0    Y  t|| d}tjt|d  ||d|}W d    n1 sL0    Y  t|| d S )	N)rV   r   {   N)r   rV   r   rX   )col1Zcol2r8   zDowncasting object dtype arraysr[   r   r   )r   r   rP   ru  FutureWarningr  r   r   rA   r   ZisnarQ   )r6   r   rR   rd   Zfilledrz   r{   r"   r"   r#   test_operators_none_as_na  s,    *

.0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 )NrL   )r   rD   r   )r6   r   rT   r   rz   r"   r"   r#   %test_logical_typeerror_with_non_valid  s    zATestFrameArithmeticUnsorted.test_logical_typeerror_with_non_valid)r   r  r  r  rr  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 rfd 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thirdr%  Q      r   )Zvalue1Zvalue2Zvalue3ru   )r   r1  g      Y@r  r   )r  rE   c                    s:   g | ]2\}} j d d d d |f d d f |qS r3   r   rn   r   vrR   idxopar"   r#   r      rt   zETestFrameArithmeticUnsorted.test_binary_ops_align.<locals>.<listcomp>r   r1  r   r   r  c                    s4   g | ],\}} j d d |f d d f |qS r3   r  r  r  r"   r#   r   (  rt   )r	   r-  r`   r   r   r   r   r  r   Z
IndexSlicer   r   r
   concatitemsrP   rQ   Zreindex_like)r6   r   r   rq   rz   r{   r"   r  r#   test_binary_ops_align  s4    
 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|| qddg|j_||	|
|fD ]}t|| qd S )NrK   r   r   r   )rV   rX   r  r8   rZ   r   rV   rl   Zlvl0Zlvl1)rE   r  )r   rV   r   rV   )r	   r-  r   r   r   r
   r:   r   r&  r   r   r  r    rP   rQ   )r6   r~  rR   sr   s2Zres1r   Zres3Zres4Zres5Zres6rS   rT   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/TokyorV   r  r   rK   r   r   )r   ZDatetimeIndexr  r   r   r   rP   rQ   )r6   baseZidx1Zidx2r   r   rS   r"   r"   r#    test_add_with_dti_mismatched_tzsM  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  sJ t
|d  sJ || }t|j|j || }	t
|d  sJ t
|	d  s4J |t  }
t
|
j sTJ t | }t
|j stJ 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 )NrV   r  rX   r   rK   r   r  rZ   r  r8   )r   r   r   r   r   Zdropnar:   rP   r   isinisnanr   assert_index_equalr   r   r   r   rQ   r   )r6   r   r   r   Z
frame_copyr^  ZindexerrS   Z
self_addedZ	added_revZ
plus_emptyZ
empty_plusZempty_emptyreverser"   r"   r#   test_combineFrameW  s@    &

z-TestFrameArithmeticUnsorted.test_combineFramec           
      C   s\  | |jd }|| }| D ] \}}t||| ||   q | }d|d< t|}|| }	| D ] \}}t|	| |||   qjd|	v sJ t|	d 	 sJ || }t	|j
|jksJ ||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   r8   Zfloat16r%   r  r  )rK   r   r   r  Zint32)r	  r   r  rP   r   to_dictr
   r   r  r   r   r5   rA   r   r   )
r6   r   r   r   r/  r^  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 )NrK   r   r   F)Zcheck_namesr   ru   r   rZ   )r   r  rP   r   r   r  r   rQ   r   r   r   r   r   r  r   )r6   Zdatetime_framer  r^  r  ro   rz   Zsmaller_frameZsmaller_addedZ
smaller_tsZsmaller_added2r{   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sJ d S )NrV   r   r8   r   )
rP   assert_numpy_array_equalr   r  r   r   r   equalsr   r   )r6   r   r   rz   r   r  r"   r"   r#   test_combineFunc  s    
z,TestFrameArithmeticUnsorted.test_combineFuncfuncc                 C   sF  t tjddttdtdtj	ddddd	}|
 }|d
}t|jd }|||}t|j||j|j d}	tjtt|	d ||| W d    n1 s0    Y  |||}
t|
j||j|j ||d}t|j||jd d}	tjt|	d" |||d d  W d    n1 s80    Y  d S )NrV   )   rX   rY   r8   z
2000-01-01r  r   )rk   r  r   r   r   r   r   zNUnable to coerce to Series/DataFrame, dimension must be <= 2: (30, 4, 1, 1, 1)r[   r   zQCan only compare identically-labeled \(both index and columns\) DataFrame objects)r   r   r]   r^   r_   r   r`   r   r   r   r:   r	  r   r   rP   r  r   ra   rb   rc   reescape)r6   r$   r   r  r   r   r
  r   rz   rd   r   result3r"   r"   r#   test_comparisons  s0    

(

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 )rL   rM   rN   )rq   rr   zr"   rL  r"   r"   r#   rs   #  rt   zZTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raises.<locals>.<dictcomp>r   z;'[<>]=?' not supported between instances of 'str' and 'int'r[   r   )r   r   r   ra   rb   rx   )r6   Zcompare_operators_no_eq_nerR   r   rd   r"   r"   r#   *test_strings_to_numbers_comparisons_raises   s    
zFTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raisesc                 C   s   t tjdtjdttdtdd}tj|j|j	d df< tj
dd |jdk }W d    n1 sf0    Y  tj
d	d |dk j}W d    n1 s0    Y  t|| d S )
N)rf   rX   r8   rY   rZ   r   rK   ignore)rx  raise)r   r   r   r  r   r`   r   r   r   r   Zerrstater   rP   r  )r6   Z
missing_dfr{   rz   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 s0    Y  tjt|	d
 ||k W d    n1 s0    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 s0    Y  t ddgddgddgg}||k}t	|| tjt|	d
 ||k W d    n1 s0    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 s0    Y  |j
j|jksJ 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 )NrW   r   rV   rV   rV   rV   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 shapesr[   ZABr  r   )r   r   r   r   r    Z
atleast_2dr   tuplerP   rQ   r   r  ra   rb   rc   r   r`   r   r   )r6   rR   r   Zb_rZb_clsttupr{   rz   Zmsg1dZmsg2dZmsg2dbr"   r"   r#   test_boolean_comparison7  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abcdefgrf   r  r   r%   r   ZbedcfZbcdefrZ   )r`   r   r   r   r   r   r   r   r:   r   rP   rQ   )r6   r   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djdddddd}| }|}|d7 }t	|| t	|d | ||u slJ |j
|j
u s|J | }|}|d7 }t|| t|d | ||u sJ |j
|j
u sJ | }|}|d	7 }t	|| t	|d	 | | }|}|d	7 }t|| t|d	 | ||u s6J |j
|j
u sHJ tjd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   rV   r   r   rf   rg   r  r   r  rL   r   rK   )r
   r   r   r]   r^   r   r   r:   rP   r   Z_mgrrQ   )	r6   Zs_origdf_origr  r  rR   r   r!   r{   r"   r"   r#   test_inplace_ops_identity  s\    z5TestFrameArithmeticUnsorted.test_inplace_ops_identityr   andr  z__idiv__ not implemented)rb   r   )Zmarksr   r  r  orrs  r  rr  xorc                 C   s   t g dg dd}d}|dv r.g d|d< | }d| d	}d	| d	}t||| t|||}t|| t|}t||ksJ d S )
Nr   r   rl   rV   )r  r  r  )TFTr   Z__ir   )r   r:   r   rP   rQ   r$  )r6   r   rR   operandZdf_copyZiopr{   r"   r"   r#   test_inplace_ops_identity2  s    z6TestFrameArithmeticUnsorted.test_inplace_ops_identity2valr   r8   r   rX   c                 C   s   g d}g d}t tjdd||d}t j}t |||d|jd}t|||ddd	 | t g d
g dg dd|jd}t|||d	dd	 | d S )Nr   r  r  r  rV   r   r   ru   r   r   r   r   r  r  r   r   r   )	r   r   r]   r^   r_   _align_for_opr   rP   rQ   )r6   r  r   r   rR   alignr{   r"   r"   r#   test_alignment_non_pandas  s    
z5TestFrameArithmeticUnsorted.test_alignment_non_pandasrV   r[  r   c                 C   s   g d}g d}t tjdd||d}t j}d}tjt|d |||dd	 W d    n1 sh0    Y  tjt|d |||d
d	 W d    n1 s0    Y  d S )Nr   r  rV   r  ru   z5Unable to coerce to Series, length must be 3: given 2r[   r   r   r   )	r   r   r]   r^   r_   r  ra   rb   rc   )r6   r  r   r   rR   r  rd   r"   r"   r#   )test_alignment_non_pandas_length_mismatch4  s    ,zETestFrameArithmeticUnsorted.test_alignment_non_pandas_length_mismatchc                 C   s  g d}g d}t tjdd||d}t j}tg dg dg dg}t|||d	d
d t ||j	|j
d t|||dd
d t ||j	|j
d d}tg dg dg}tjt|d |||d	d
 W d    n1 s0    Y  tjt|d |||dd
 W d    n1 s(0    Y  td}td}tjt|d |||d	d
 W d    n1 sz0    Y  tjt|d |||dd
 W d    n1 s0    Y  d S )Nr   r  rV   r  ru   r   rX   r   rW   )r   r   r@  r   r   r   r  r[   r  zGUnable to coerce to Series/DataFrame, dimension must be <= 2: (3, 3, 3))r   r   r]   r^   r_   r  r    rP   rQ   r   r   ra   rb   rc   Zzerosr  r  )r6   r   r   rR   r  r  rd   r"   r"   r#   'test_alignment_non_pandas_index_columnsG  s>    ,.
.zCTestFrameArithmeticUnsorted.test_alignment_non_pandas_index_columnsc                 C   sZ   t ddgdd gd}|d }td  t||| W d    n1 sL0    Y  d S )Nr`  r   r   )r   rP   ru  r   r6   r   rR   r   r"   r"   r#   test_no_warningm  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 )Nr`  r   r   ztakes 2 positional argumentsr[   r   )r   ra   rb   rx   r   r  r"   r"   r#   test_dunder_methods_binarys  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  r8   rf   )rf   r   z0.X)r   r   r   r   intr   rH  rA   r  meanrP   rQ   )r6   r  r  r   r   rz   r{   r"   r"   r#   test_align_int_fill_bugz  s    
z3TestFrameArithmeticUnsorted.test_align_int_fill_bugN)1rG   rH   rI   r  r  ra   r   r   r   r   r  r  rr  r  filterwarningsr  r  r  r  r  r  r  r  r   r   r~   r}   r   r   r  r  r  r  r  r  r,   r   AttributeErrorr  r   r    r  r   r  r  r  r  r  r  r"   r"   r"   r#   r    s~   


&
=(.
$N0;
	
(
&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 )NrK   r  r   r   r   r   r   rP   rQ   )r   r   rz   r{   r"   r"   r#   test_pow_with_realignment  s
    r  c                  C   s   t tjd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 )NrV   r   r%   )rf   r   r   rZ   r   r   r  r  r   ZInt64ri  )r   r   r]   r^   r   r
   Zto_numpyr   r   rA   rP   rQ   )rR   r   r{   Zdf_earz   r"   r"   r#   &test_dataframe_series_extension_dtypes  s    
r  c                     s  t jd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 ]6\   }t fdd j
D }t|| qd S )NrV   r   i  )r%   rf   r  )r   r   r   r   rV   r   rX   r  rX   r   c                    s   i | ]}| | |  qS r"   r"   r   r   r   r"   r#   rs     rt   z6test_dataframe_blockwise_slicelike.<locals>.<dictcomp>)r   r]   r^   r   r   r:   rA   r   r   r   r   rP   rQ   )r!   r   r   r   Zdf4Zdf5rT   r{   r"   r  r#   "test_dataframe_blockwise_slicelike  s    r  zdf, col_dtyper   r   r   r   abrZ   r  r   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 )	Nr`  r   r  rZ   r   g      r   r   )r   r   r   r`   rA   r
   rP   rQ   )rR   Z	col_dtyper{   rz   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   r   r  )r  r  r  rZ   r  r   r   rz   r{   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 sV0    Y  tjt|d | |  W d    n1 s0    Y  d S )Nr   rV   rp   zUnable to coerce list of r   z to Series/DataFramer[   )r   rB   ra   rb   rc   )r  rR   rd   r"   r"   r#   "test_arith_list_of_arraylike_raise  s    &r  c                 C   s   t dg di}| }|d }|j}t| |d7 }W d    n1 sN0    Y  | rx|j|usjJ t|| n*|j|u sJ t dg di}t|| d S )NrK   r   r   r  )r   r:   Z_valuesrP   Zassert_cow_warningrQ   )Zusing_copy_on_writeZwarn_copy_on_writerR   r  r/  valsr{   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   r   r   r   r%  ru   r   N)r   r	   r-  r   rP   rQ   )r   r   r{   rz   r"   r"   r#    test_arithmetic_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   r`   r   r   rP   rQ   )rR   rz   r{   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   rV   Nr8   r   )r   r   N)r
   r   Zto_framerP   rQ   )Zany_int_ea_dtypeZseries1Zseries2r{   rz   r"   r"   r#   test_frame_sub_nullable_int  s
    r  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                     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 r3   r"   r=   SubclassedSeriesr"   r#   _constructor%  s    zRtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructorc                    s    S r3   r"   r=   )SubclassedDataFramer"   r#   _constructor_expanddim)  s    z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedSeries._constructor_expanddimN)rG   rH   rI   propertyr   r  r"   r  r  r"   r#   r  $  s   r  c                       sD   e Zd ZdgZd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_dataNr1   c                    s   || _ t j|i | d S r3   )r  superr7   )r6   r  argskwargs	__class__r"   r#   r7   0  s    zQtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame.__init__c                 S   s   t t| | jS r3   )	functoolspartialrB   r  r=   r"   r"   r#   r   4  s    zUtest_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame._constructorc                    s    S r3   r"   r=   r  r"   r#   _constructor_sliced8  s    z\test_frame_op_subclass_nonclass_constructor.<locals>.SubclassedDataFrame._constructor_sliced)	rG   rH   rI   	_metadatar7   r  r   r  __classcell__r"   r  r	  r#   r  -  s   
r  Z	some_datar   r  r   rV   rW  )r   rf      r:  )Zsdfrz   r{   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
   rP   r   )r  q1q2rz   r{   r"   r"   r#   test_enum_column_equalityE  s    
r  c                  C   sb   t tdddgd} t tdddgd}|jd| _| | }t tdddgd}t|| d S )Nr  r   r   )r   r   r   r`  string)r   r`   r   rA   rP   rQ   r  r"   r"   r#   test_mixed_col_index_dtypeQ  s    r  )@collectionsr   r   r   enumr   r  r   r  numpyr   ra   Zpandas._configr   Zpandas.util._test_decoratorsutilZ_test_decoratorsrF  Zpandasr   r   r   r	   r
   Zpandas._testingZ_testingrP   Zpandas.core.computationr   r+   Zpandas.tests.frame.commonr   r   Zfixturer$   r/   r0   rJ   r   r   r9  r  r  r  r  r  r  r  r   r   r`   rA   r   r  r  r  r  r  r  r  r  r  r  r  r"   r"   r"   r#   <module>   s   

 ^ H  S  F
     M

	.
	
$