U
    f/e1                     @   s$  d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dlZd dl	m
  mZ d dlZd dlmZmZmZmZ d dlmZ d dlm  mZ d dlmZ d dlmZmZ d dl m!Z!m"Z" ej#dd	d d
gddgddd Z$G dd dZ%G dd dZ&G dd dZ'G dd dZ(G dd dZ)dd Z*dd Z+ej,-ddd  Z.G d!d" d"Z/d#d$ Z0d%d& Z1d'd( Z2d)d* Z3ej,4d+ed,d-gd.d/gge5d0d1d2fed,d3gd.d3gge5d0d1d4fgd5d6 Z6d7d8 Z7ej,4d9ed:d:gged:d:ged:d:gggd;d< Z8d=d> Z9d?d@ Z:dAdB Z;dS )C    )deque)datetimeN)	DataFrameIndex
MultiIndexSeries)expressions)_MIN_ELEMENTSNUMEXPR_INSTALLED)_check_mixed_float_check_mixed_intTmodulei@B Znumexprpython)ZautouseZscopeparamsidsc                 c   s    t j}| jt _| jV  |t _d S N)exprr	   param)requestr	    r   F/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/frame/test_arithmetic.pyswitch_numexpr_min_elements    s    r   c                   @   sT   e Zd Zdd Zdd ZedddZeddd	ZdddZdd Z	dddZ
dS )DummyElementc                 C   s   || _ t|| _d S r   )valuenpdtype)selfr   r   r   r   r   __init__+   s    zDummyElement.__init__c                 C   s   t j| j| jdS )Nr   )r   arrayr   r   r   r   r   r   	__array__/   s    zDummyElement.__array__)returnc                 C   s   d| j  d| j dS )NzDummyElement(z, ))r   r   r    r   r   r   __str__2   s    zDummyElement.__str__c                 C   s   t | S r   )strr    r   r   r   __repr__5   s    zDummyElement.__repr__Fc                 C   s
   || _ | S r   r   )r   r   copyr   r   r   astype8   s    zDummyElement.astypec                 C   s   t | | j||S r   )typer   view)r   r   r   r   r   r*   <   s    zDummyElement.viewNc                 C   s
   t | jS r   )boolr   )r   axisr   r   r   any?   s    zDummyElement.any)F)N)__name__
__module____qualname__r   r!   r%   r$   r&   r(   r*   r-   r   r   r   r   r   *   s   
r   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestFrameComparisonsc                 C   sb   t ddddgi}t ddddgi}|dk}t|| |d d|d< |dk}t|| d S )NAfoobarbazTFcategory)r   tmassert_frame_equalr(   )r   dfexpresr   r   r   &test_comparison_with_categorical_dtypeJ   s    z;TestFrameComparisons.test_comparison_with_categorical_dtypec              	   C   sD   t tjddtdd}d}tjt|d |dk W 5 Q R X d S )N      ABCDcolumnsz+The truth value of a DataFrame is ambiguousmatchr   )r   r   randomrandnlistpytestraises
ValueError)r   r9   msgr   r   r   test_frame_in_listY   s    z'TestFrameComparisons.test_frame_in_listc                 C   s   dd }t tjjddddgd}tjdt|d	|d
< | }|d |d
< ||| t tjjdddddgd}t tjdt|d	tjdt|d	d}||| d S )Nc              
      s,  | |f|| ffD ]\  k}t  fdd jD  j jd}t||  k}t  fdd jD  j jd}t|| dddg}d|}tjt|d	  k W 5 Q R X tjt|d	  k W 5 Q R X tjt|d	  k  W 5 Q R X tjt|d	  k W 5 Q R X qd S )
Nc                    s   i | ]}| | | kqS r   r   .0colxyr   r   
<dictcomp>h   s      zOTestFrameComparisons.test_comparison_invalid.<locals>.check.<locals>.<dictcomp>indexrA   c                    s   i | ]}| | | kqS r   r   rL   rO   r   r   rR   p   s      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.|rB   )	r   rA   rT   r7   r8   joinrG   rH   	TypeError)r9   df2resultexpectedZmsgsrJ   r   rO   r   checka   s8    	
z;TestFrameComparisons.test_comparison_invalid.<locals>.check
   r\      sizear@   20010101periodsdates)r\      bZ20100101ra   rg   )r   r   rD   randintpd
date_rangelenr'   )r   r[   r9   rX   r   r   r   test_comparison_invalid`   s    *
z,TestFrameComparisons.test_comparison_invalidc           
   
   C   s  t tjdddtjdddtjjdddtjdtt	dd}tj
|jtjt|dkd	f< d
dddddd}| D ]:\}}tt|}tt|}|dkr||td}|td|}t|| nXd}	tjt|	d ||td W 5 Q R X tjt|	d |td| W 5 Q R X |dkrd||td}|td|}t|| qd}	tjt|	d ||td W 5 Q R X tjt|	d |td| W 5 Q R X qd S )Nrb   r\   rc   Z20010102i ʚ;r_   )Zdates1dates2ZintcolZfloatcolZ	stringcolg      ?rn   ltgtlegeeqne)rp   ro   rr   rq   rs   rt   )rs   rt   Z20010109zL'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'Timestamp'rB   ZnatzJ'(<|>)=?' not supported between instances of 'numpy.ndarray' and 'NaTType')r   rj   rk   r   rD   ri   rE   rF   r7   ZrandsNaTlocrandrl   itemsgetattroperator	Timestampr8   rG   rH   rW   )
r   r9   opsleftrightZleft_fZright_frZ   rY   rJ   r   r   r   test_timestamp_compare   sB    
	 


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@t||k}|  sXtd S )Nz
1989-08-01r^   rf   ra   rg   cd)r   r-   AssertionErrorall)r   r9   otherrY   r   r   r   test_mixed_comparison   s    z*TestFrameComparisons.test_mixed_comparisonc                 C   s^   t tdd}t ddgddgddgg}|dk}t|| |ddgk}t|| d S )Nr=      rf   FTrf   rf   rf   )r   r   arangereshaper7   r8   )r   r9   rZ   rY   r   r   r    test_df_boolean_comparison_error   s    z5TestFrameComparisons.test_df_boolean_comparison_errorc                 C   s@   t tjddtddddgd}|d }|  r<td S )N   r   r2   BCrS   )r   r   rD   rE   range__eq__r-   r   r   r9   rY   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^   r3   rh   rf   r4   r   )r   ra   r7   r8   rv   rg   )r   r9   Zmask_aZmask_br   r   r   test_df_string_comparison   s    
"$
"z.TestFrameComparisons.test_df_string_comparisonN)r.   r/   r0   r<   rK   rm   r   r   r   r   r   r   r   r   r   r1   G   s   ;0r1   c                	   @   sx   e Zd Zdd Zdd Zdd Zdd Zej	d	d
dddddgdd Z
ej	d	d
dddddgdd Zdd ZdS )TestFrameFlexComparisonsc              
   C   s  t jdd}t jdd}t|}t|}t |jd }dd }||j sXt	|
|j rlt	dD ]}t||}tt|}	t|||	|| |||	|| t||j|	||j t|d|	|d d}
t|t j|	|t j tjt|
d	 || W 5 Q R X qpd
d }tt jd}tt jd}|||| |||j|j t j|jd< ||}|jd rt	|
|}|jd st	||}|jd rt	||}|jd rt	||}|jd rt	||}|jd r
t	d S )N   r   )r^   r   c                 S   sJ   |j dd dd f  }| |}|||j|j|jd}t|| d S )Nr   r^   rS   )rv   r'   reindexrT   rA   r7   r8   )methopr9   r   Zpart_orsZxpr   r   r   _check_unaligned_frame  s    zMTestFrameFlexComparisons.test_bool_flex_frame.<locals>._check_unaligned_frame)rs   rt   rp   ro   rr   rq   r   $Unable to coerce to Series/DataFramerB   c                 S   s  | j |dd}|  |}| j|dd}| |}t|| t|k t||  t||  t|| j |j t||  t| t|| j t|dd t|| j t|dd | j|dd}| |}| j|dd}	| |}
t|| t|k t||
  t||	  t|| j|j | j	|dd}| 	|}| j
|dd}| 
|}t|| t|k t||  t||  t|| j	|j d S )Nr   r,   )rs   rt   r7   r8   r   TrF   rp   rq   rr   ro   )r9   idx_sercol_serZidx_eqZcol_eqZidx_neZcol_neZidx_gtZcol_gtZidx_leZcol_leZidx_geZcol_geZidx_ltZcol_ltr   r   r   	_test_seq  s6    





z@TestFrameFlexComparisons.test_bool_flex_frame.<locals>._test_seqr   r   )r   rD   rE   r   onesshapers   valuesr   r   rt   r-   ry   rz   r7   r8   nanrG   rH   rI   r   rv   rp   ro   rr   rq   )r   dataZ
other_datar9   r   ndim_5r   r   forJ   r   r   r   r   r   r   r   test_bool_flex_frame   sJ    

 





z-TestFrameFlexComparisons.test_bool_flex_framec           	   	   C   sp  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 5 Q R X tjt|d	 |d |d  W 5 Q R X tjt|d	 |j	|j	k W 5 Q R X |
|}|j	 stt dt jd g}td|i}tjt|d	 |d W 5 Q R X tjt|d	 |d d W 5 Q R X tjt|d	 |j	dk W 5 Q R X d S )
Nr^   r=   y               @   ra   rU   z9'>' not supported between instances of '.*' and 'complex'z unorderable types: .*complex\(\)rB   )r   r   r   r   rV   rG   rH   rW   rp   r   rt   r   r   )	r   arrZarr2r9   rX   rJ   r   Zarr3df3r   r   r   "test_bool_flex_frame_complex_dtypeQ  s2    
z;TestFrameFlexComparisons.test_bool_flex_frame_complex_dtypec                 C   sV   t ddtjdgi}t ddt dgi}||}t ddddgi}t|| d S )NrN   r3   r4   FT)r   r   r   r   nowrt   r7   r8   )r   df1rX   rY   r:   r   r   r   !test_bool_flex_frame_object_dtypex  s
    
z:TestFrameFlexComparisons.test_bool_flex_frame_object_dtypec                 C   s   t tjg}|tjk}|jd  dks,t|tj}|jd  dksNt|tjk}|jd  dksnt|tj}|jd  dkstd S )Nr   FT)r   rj   ru   ilocitemr   rs   rt   r   r   r   r   test_flex_comparison_nat  s    

z1TestFrameFlexComparisons.test_flex_comparison_natopnamers   rt   rp   ro   rr   rq   c                 C   sT   t dddgdddgd}d}t|||j }t|tdgtt	gd d S )	Nr^   rf   r         ?       @      @rO   rT   )
r   ry   dtypesvalue_countsr7   assert_series_equalr   r   r   r+   )r   r   r9   constrY   r   r   r   &test_df_flex_cmp_constant_return_types  s    z?TestFrameFlexComparisons.test_df_flex_cmp_constant_return_typesc                 C   sb   t dddgdddgd}d}|jd d }t|||j }t|tdgt	t
gd	 d S )
Nr^   rf   r   r   r   r   rO   r   r   )r   r   ry   r   r   r7   r   r   r   r   r+   )r   r   r9   r   emptyrY   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dddg}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^   rf   r   r2   r   r   r   Fr2   r   r   )rj   ZIntervalIndexZfrom_breaksr   r   rs   r7   r8   )r   iir9   serr;   rZ   Zser2res2r   r   r   -test_df_flex_cmp_ea_dtype_with_ndarray_series  s    zFTestFrameFlexComparisons.test_df_flex_cmp_ea_dtype_with_ndarray_seriesN)r.   r/   r0   r   r   r   r   rG   markparametrizer   r   r   r   r   r   r   r      s   X'

	r   c                   @   s   e Zd Zdd Zejje ddejdddgdd	 Z	d
d Z
dd Zdd Zejddddgdd Zdd Zdd Zdd Zdd Zdd Zd d! Zejddddd"gd#d$ Zd%S )&TestFrameFlexArithmeticc                    st   t d}t|td  jdd}t fdd jD }t||  jjdd}t|| d S )Nr   r   r   r   c                    s   i | ]}| |  qS r   r   rL   r9   r   r   r   rR     s      z?TestFrameFlexArithmetic.test_floordiv_axis0.<locals>.<dictcomp>)	r   r   r   r   floordivrA   r7   r8   r   )r   r   rY   rZ   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   rL   r9   r   r   r   r   rR     s      zLTestFrameFlexArithmetic.test_floordiv_axis0_numexpr_path.<locals>.<dictcomp>)ry   rz   r   r   r	   r   r   rA   r7   r8   r   )r   r   r   rY   rZ   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-01r\   rc   1r   r^   r   r   )rj   rk   Ztimedelta_ranger   r   addr7   r8   )r   dtiZtdiZtserr9   rY   rZ   r   r   r   test_df_add_td64_columnwise  s    z3TestFrameFlexArithmetic.test_df_add_td64_columnwisec                 C   s   t jddd}tdddgdd}t||d	}t||d	}t jd
d }|j||d}ttdddgdd|d d	}t|| d S )Nr   r   rc   z1 Dayru   z2 Daystimedelta64[ns]r   r   r^   )days
fill_valuez
2016-01-02z
2016-01-03z
2016-01-05zdatetime64[ns]rf   )	rj   rk   r   r   	TimedeltaZto_timedelta64r   r7   r8   )r   r   r   r9   r   fillrY   rZ   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 )NZ__r__)
startswithry   rz   replacerO   r   r   r   r     s    
z8TestFrameFlexArithmetic.test_arith_flex_frame.<locals>.frf   r   r   )ry   r7   r8   r   )r   all_arithmetic_operatorsfloat_framemixed_float_framer   rY   rZ   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krBdd d}	n|dk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 )
Nrf   )r   Zuint64)r   r   )r   r   r   r   r2   r   )	ry   rz   r   USE_NUMEXPRr   r7   r8   r   r   )
r   r   Z	int_framemixed_int_framer   r   r   rY   rZ   r   r   r   r   test_arith_flex_frame_mixed  s&    	
z3TestFrameFlexArithmetic.test_arith_flex_frame_mixedc              
   C   sR   |}t ddD ]>}td| }d}tjt|d t||| W 5 Q R X qd S )Nr   r=   )r^   r   rB   )r   r   r   rG   rH   rI   ry   )r   r   r   r   Zdimr   rJ   r   r   r   test_arith_flex_frame_raise8  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 5 Q R X tjtdd |j |jd ddd W 5 Q R X d S )	Nr^   r   r   rB   r   r   rT   r,   r   )	r   r7   r8   r   r   rG   rH   NotImplementedErrorr   )r   r   Z	const_addrY   r   r   r   test_arith_flex_frame_cornerC  s    
z4TestFrameFlexArithmetic.test_arith_flex_frame_cornerc           
      C   sn  |}| d}|d }ddddg}|D ]L}t||}tt|}t||||| t||dd||j|j q&t|j|d d||  t||||  t|j|dd|j| j tt	
d	d
dd}tt	jt	jgddgddgg}|j|d dd}	t|	| tt	
d	d
dd}tt	jt	jgddgddgg}|j|d dd}	t|	| d S )Nra   twor   submulmodr   r   r=   r   int64r   r         ?g      ?rT   float64)xsry   rz   r7   r8   r   r   divr   r   r   r   r   inf)
r   simple_framer9   rowrN   r|   r   r   rZ   rY   r   r   r   test_arith_flex_seriesU  s(    


 z.TestFrameFlexArithmetic.test_arith_flex_seriesc              	   C   s   t g td}tddgd}tddgddggddgd}tjtd	d
 |j|dd W 5 Q R X tjtd	d
 |j|d d dd W 5 Q R X d S )Nr   r2   r   r@   r^   rf   r   r>   r   rB   Er   r   )r   objectr   rG   rH   r   r   r   )r   Zser_len0Zdf_len0r9   r   r   r   test_arith_flex_zero_len_raisest  s    z7TestFrameFlexArithmetic.test_arith_flex_zero_len_raisesc                 C   s^   t jddt jdddgdd}td|itd	d
}|dd}|jddd}t|| d S )Nr   r^   r   r>   r   floatr   r3   r=   r   rf   r   )	r   r   r   r   r   fillnar   r7   r8   )r   Zdatr9   r:   r;   r   r   r   test_flex_add_scalar_fill_value  s
    z7TestFrameFlexArithmetic.test_flex_add_scalar_fill_valuec                 C   sr   t dddddgdddddgd}t dddgdddgd}t dddddgdddddgd}||}t|| d S )Nr^   rf   r   r>   r   r   r   )r   r   r7   r8   )r   r   rX   rZ   rY   r   r   r   'test_sub_alignment_with_duplicate_index  s
      
z?TestFrameFlexArithmetic.test_sub_alignment_with_duplicate_index__truediv__c                 C   sj   t tdtjdd}t|||}ddg|_ddg|_t|||}t|| t	| |j
 d S )Nr\   r   r2   )r   r   r   rD   rw   ry   rA   r7   r8   r%   r   )r   r   r9   rZ   rY   r   r   r   &test_arithmetic_with_duplicate_columns  s    

z>TestFrameFlexArithmetic.test_arithmetic_with_duplicate_columnsN)r.   r/   r0   r   rG   r   Zskipifr
   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r   r   r   r     s"   
(	r   c                   @   s  e Zd Zdd Zdd Zdd Zejdd Zejd	d
 Z	dd Z
dd Zdd Zejdddgdeddgeddeddggdd Zdd Zdd Zdd Zejddd d!d"d#d$ed%d&d'fed%d&d(fgejjd)ejejejejejej gd*d+ d,d-d. Z!d/S )0TestFrameArithmeticc                 C   sJ   t ddgdd}tddgddgg}|| }t||d}t|| d S )	Nru   r   r   r^   rf   r   r>   r   )r   r   r7   r8   )r   r   r9   rY   rZ   r   r   r   test_td64_op_nat_casting  s
    z,TestFrameArithmetic.test_td64_op_nat_castingc                 C   s   t ddd}t|ddgdddgd	}|d
gd d f }|jd
|jd
 fksTttddgddgddgg|j|j|jd}|| }t	
|| || }t	
|| d S )Nr=   r   rf   TFr2   r   r   rA   rT   r^   r>   r   rA   rT   r   r   r   r   r   r   r   rA   rT   r   r7   r8   )r   r   r9   rowlikerZ   rY   r   r   r   'test_df_add_2d_array_rowlike_broadcasts  s    z;TestFrameArithmetic.test_df_add_2d_array_rowlike_broadcastsc                 C   s   t ddd}t|ddgdddgd	}|d d d
gf }|j|jd d
fksTttd
dgddgddgg|j|j|jd}|| }t	
|| || }t	
|| d S )Nr=   r   rf   TFr2   r   r   r
  r^   r   r   	   r\   r  r  )r   r   r9   collikerZ   rY   r   r   r   'test_df_add_2d_array_collike_broadcasts  s    z;TestFrameArithmetic.test_df_add_2d_array_collike_broadcastsc           	      C   s   |}t ddd}t|ddgdddgd	}|d
gd d f }|jd
|jd
 fksXtt|jd || t|jd || t|jd || g}t||j	|j
d	}t|||}t|| d S )Nr=   r   rf   TFr2   r   r   r
  r^   )r   r   r   r   r   r   ry   rv   squeezerA   rT   r7   r8   )	r   r   r   r   r9   r  exvalsrZ   rY   r   r   r   )test_df_arith_2d_array_rowlike_broadcasts  s    z=TestFrameArithmetic.test_df_arith_2d_array_rowlike_broadcastsc           
      C   s   |}t ddd}t|ddgdddgd	}|d d d
gf }|j|jd d
fksXtt|d || t|d || d}d }|dkrt jdd |	 D  }t||j
|j|d}t|||}	t|	| d S )Nr=   r   rf   TFr2   r   r   r
  r^   r   )TF)__rmod____rfloordiv__c                 S   s   g | ]
}|j qS r   )r   rM   rP   r   r   r   
<listcomp>  s     zQTestFrameArithmetic.test_df_arith_2d_array_collike_broadcasts.<locals>.<listcomp>r  )r   r   r   r   r   r   ry   r  Zcommon_typer   rA   rT   r7   r8   )
r   r   r   r   r9   r  r  r   rZ   rY   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<td| }|jdd }|dk sdtd S )NFTr^   c                 S   s   | j S r   kindrP   r   r   r   <lambda>      z:TestFrameArithmetic.test_df_bool_mul_int.<locals>.<lambda>ic                 S   s   | j S r   r  r  r   r   r   r    r  )r   r   applyr   r   )r   r9   rY   kindsr   r   r   test_df_bool_mul_int  s    z(TestFrameArithmetic.test_df_bool_mul_intc                 C   sL   t dddgdddgd}|| }t dd	d
gdddgd}t|| d S )Nra   rg   r   r^   rf   r   r   ZaaZbbccr>   r=   r   r7   r8   )r   r}   rY   rZ   r   r   r   test_arith_mixed  s    z$TestFrameArithmetic.test_arith_mixedc                 C   s   t ddgddgd}dd }||tj ||tj ||tj ||tj ||tj ||tj ||dd	  ||d
d	  ||dd	  ||dd	  ||dd	  ||dd	  ||dd	  ||dd	  ||dd	  ||dd	  d S )Ng?gffffff
@g      @g333333r   c                 S   sD   || d}| j jstd|j D ]}t|| || | d q d S )Nr^   z*Only unique columns supported by this test)rA   Z	is_uniquerI   r7   r   )r9   r   rY   rN   r   r   r   _test_op  s
    

z@TestFrameArithmetic.test_arith_getitem_commute.<locals>._test_opc                 S   s   ||  S r   r   rO   r   r   r   r  /  r  z@TestFrameArithmetic.test_arith_getitem_commute.<locals>.<lambda>c                 S   s   ||  S r   r   rO   r   r   r   r  0  r  c                 S   s   ||  S r   r   rO   r   r   r   r  1  r  c                 S   s   ||  S r   r   rO   r   r   r   r  2  r  c                 S   s   ||  S r   r   rO   r   r   r   r  3  r  c                 S   s   | | S r   r   rO   r   r   r   r  5  r  c                 S   s   | | S r   r   rO   r   r   r   r  6  r  c                 S   s   | | S r   r   rO   r   r   r   r  7  r  c                 S   s   | | S r   r   rO   r   r   r   r  8  r  c                 S   s   | | S r   r   rO   r   r   r   r  9  r  )r   rz   r   r   r   truedivr   r   )r   r9   r&  r   r   r   test_arith_getitem_commute  s$    	z.TestFrameArithmetic.test_arith_getitem_commuter   r^   rf   r^   rf   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   rf   r   r$  )r   r   r9   rZ   rY   r   r   r   &test_arith_alignment_non_pandas_object;  s    z:TestFrameArithmetic.test_arith_alignment_non_pandas_objectc                 C   s6  t tjdddddddddgd	d
dg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^   r\   f8r   r   oner   threera   rg   r   r
  rS   r   r   rT   )r   r   r   r   r   r   rT   rA   r7   r8   r   r   rF   rD   rw   r   )r   r9   Zval1addedZval2Zval3r   r   r   test_arith_non_pandas_objectE  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^   rf   r@   r\   c                    s   g | ]}t | qS r   )ry   )rM   nnumr   r   r   r  g  s     zVTestFrameArithmetic.test_operations_with_interval_categories_index.<locals>.<listcomp>)rj   ZCategoricalIndexZinterval_ranger   ry   r7   r8   )r   r   indr   r9   rY   rZ   r   r4  r   .test_operations_with_interval_categories_index_  s    zBTestFrameArithmetic.test_operations_with_interval_categories_indexc                 C   s   t tdtdgtdtdgdddgd}|dg }|| }t td	td	gtjtjgdddgd}t|| d S )
NZ2019Z2020Z2018Z2021)r3   r4   r3   r4   r@   r   )r   rj   r{   r   r   r   r7   r8   )r   r9   rX   rY   rZ   r   r   r   test_frame_with_frame_reindexj  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   s   | j S r   )r.   r  r   r   r   r    r  zTestFrameArithmetic.<lambda>)r   c              
   C   s  t jdft jdft jdft jdfh}t||}td|j|jgi|jd}t jdft j	dft jdft jdft jdft jdft jdft j
dft j	dfh	}||f|krBd }	|dkr|t jks|dkr|t jkrd }
n4|dkrd}
t}	n"|t j
krd}
t}	nd	|j d
}
tjt|
d( t|	 |||j W 5 Q R X W 5 Q R X n||f|kr|t jt jfkrtjrz|dkrzt}	nd }	t|	 |||j W 5 Q R X n*d}
tjt|
d |||j W 5 Q R X n<td   |||jj}|||j}W 5 Q R X t|| d S )Nr+   r2   r   r?  r>  r;  z3ufunc 'remainder' not supported for the input typesz-numpy boolean subtract, the `-` operator, is zcannot perform __z7__ with this index type: (DatetimeArray|TimedeltaArray)rB   r   z+operator '.*' not implemented for .* dtypes)rz   r'  r   r   r   r   r   r   r   r   r   UserWarningr.   rG   rH   rW   r7   assert_produces_warningr   r   r   r   r   )r   r   r   r   r   skipesinvalidwarnrJ   rY   rZ   r   r   r   test_binop_other}  sd    

"z$TestFrameArithmetic.test_binop_otherN)"r.   r/   r0   r	  r  r  tdZ&skip_array_manager_not_yet_implementedr  r  r"  r%  r(  rG   r   r   r   r   r   r   r*  r/  r7  r8  Ztimedelta64Z
datetime64rz   r   r   r   r'  r   r   rG  r   r   r   r   r    sT   


 (
r  c               	   C   s   t tjdddddgd} ttjd}| | }t | jtj | j	d}t
|| t
t | |k}W 5 Q R X t d| j| j	d	}t
|| t | jd
| j	d}t
t ||k}W 5 Q R X t d| j| j	d	}t
|| d S )Nr=   r   rf   r2   r   r@   r   FrS   zM8[ns])r   r   rD   rE   r   r   r   r   r   rA   r7   r8   rA  FutureWarningrT   r*   )r9   r   rY   rZ   rX   r   r   r   ,test_frame_with_zero_len_series_corner_cases  s     rJ  c                  C   sB   t ddgtjd} tddgddgd}| | }| }t|| d S )Nr2   r   rA   r   r^   rf   r   )r   r   r   r   r7   r8   )r9   r   rY   rZ   r   r   r   ,test_zero_len_frame_with_series_corner_cases  s
    rL  z(ignore:.*Select only valid:FutureWarningc                  C   sF   dt ddtjgi} t| }|jdd}t dddg}t|| d S )NZOner2   g333333?r^   r   r   )r   r   r   r   sumr7   r   )r   r9   rY   rZ   r   r   r   +test_frame_single_columns_object_sum_axis_1   s     rN  c                   @   s  e Zd Zdd Zdd Zejdej	ej
ejejgdd Zejdd	d
gejddd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zejdd$d%d&d'd(d)d*d+d,d-d.gd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9S ):TestFrameArithmeticUnsortedc                 C   sp   t jddddd}ttjt||dgd}|d}|| }|jj	t
jksRt|| }|jj	t
jksltd S )	Nz1/1/2011r\   H
US/Eastern)rd   freqtzra   rS   zEurope/Moscow)rj   rk   r   r   rD   rE   rl   
tz_convertrT   rS  pytzutcr   )r   rngr9   Z	df_moscowrY   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/2010r2   )rR  r   r   rf   r^   )rj   Zperiod_ranger   r   rD   rE   rl   r   r   r7   r8   ZtakeZpermutation)r   rW  tsrY   rZ   Zhalfr   r   r   test_align_frame  s    z,TestFrameArithmeticUnsorted.test_align_framer   c                 C   s   t dddd gddddgdtd}|tj}||d}||dt}d |t|< t	|| |||}|||t}d |t|< t	|| |||d	}t	|| ||d	|}tj	||d
d d S )Nrf         @{   r^   r   r>   )Zcol1Zcol2r   r   F)Zcheck_dtype)
r   r   r  r   r   r(   comZisnar7   r8   )r   r   r9   ZfilledrY   rZ   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|  |ks&td S )Nr3   )ry   r+   r   r   )r   r   r;   r   rY   r   r   r   %test_logical_typeerror_with_non_validF  s    zATestFrameArithmeticUnsorted.test_logical_typeerror_with_non_validc                    s`  t jtddddgdddggdd	d
gd}ttddd|dddgd  tj	dD ]}t
t|d d krtqZtdddgdddg}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|| qZt 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ddddgddddggd d!|d"}|
|fD ]}t|| qd$d%g|j_||||fD ]}t|| qHd S )'Nabcr,  r   r-  r^   rf   r   firstsecondthirdnamesQ      Zvalue1Zvalue2Zvalue3rS   )r   r   r   r   r'  r   g      $@g      Y@r   )levelr,   c                    s:   g | ]2\}} j d d d d |f d d f |qS r   rv   rM   r  vr9   idxZopar   r   r  h  s     zETestFrameArithmeticUnsorted.test_binary_ops_align.<locals>.<listcomp>c                    s4   g | ],\}} j d d |f d d f |qS r   rj  rk  rm  r   r   r  p  s     r2   r   ra   rg   )rf   r>   r   r   r@   rh   Zlvl0Zlvl1)r,   ri  )r   from_productrF   r   r   r   r   Z
sort_indexrj   Z
IndexSlicery   rz   r   concatrx   r7   r8   Zreindex_liker   r'   rA   rf  rT   namer   r   )r   rT   r   rP   rY   rZ   ZmidxrD  rX   s2Zres1r   Zres3Zres4Zres5Zres6r:   r;   r   rm  r   test_binary_ops_alignN  sb    
   z1TestFrameArithmeticUnsorted.test_binary_ops_alignc                 C   s   t jdddg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 )Nz
2011-01-01z
2011-01-02z
2011-01-03UTC)rS  z
Asia/Tokyorf   rQ  r^   r2   r   r   )rj   ZDatetimeIndexrT  r   r   r   r7   r8   )r   baseZidx1Zidx2r   rX   r:   r   r   r    test_add_with_dti_mismatched_tzs  s    z<TestFrameArithmeticUnsorted.test_add_with_dti_mismatched_tzsc                 C   s  | |jd d d }|d= tj|d d d< || }|d  j}|d d  }t|d  |j|  tj|j|j	| < t|d |j|d j  t
|d  |jd d  stt
|d  st|| }t|j|j || }	t
|d  stt
|	d  s,t|t  }
t
|
j sLtt | }t
|j sltt t  }|jst|j |jd d d d}t|| |d  || }t|dd	 || }t|dd	 || }t|dd id	 || }t|dd	 d S )
Nrf   Dr   r   r2   r   r@   r   r   )r   rT   r   r   Zdropnar'   r7   r   rv   isinisnanr   r   assert_index_equalr   r   r   rA   r8   r   )r   r   r   r   Z
frame_copyr.  Zindexerr:   Z
self_addedZ	added_revZ
plus_emptyZ
empty_plusZempty_emptyreverser   r   r   test_combineFrame  s@    &

z-TestFrameArithmeticUnsorted.test_combineFramec                 C   s  | |jd }|| }| D ] \}}t||| ||   q | }	d|	d< t|	}	||	 }
| D ] \}}t|
| |||   qjd|
kstt	|
d 
 st|| }t
|j|jkst||d }t|dd id ||d }t|dd id |d }|j|d	d
}| D ]j\}}|| }tj|| |dd || j|ks^t|j|jkr~|jdkstn|jd ks&t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std S )Nr   r^   r   Zfloat32r   r   Zfloat16r2   rT   r   F)Zcheck_namesrS   r@   )r   rT   rx   r7   r   Zto_dictr   r   r   ry  r   r   r   r(   r   r   rq  rz  r8   r   r   rA   r   r   rl   )r   r   r   r   Zdatetime_frameseriesr.  keyrD  Zlarger_seriesZlarger_addedrY  rN   rY   Zsmaller_frameZsmaller_addedZ
smaller_tsZsmaller_added2rZ   framer   r   r   test_combine_series  sd        z/TestFrameArithmeticUnsorted.test_combine_seriesc                 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|tt	|j
dkstd S )Nrf   r   r   r   )r7   assert_numpy_array_equalr   rx   r   r   rT   equalsr   rl   rA   )r   r   r   rY   r   rD  r   r   r   test_combineFunc2  s    
z,TestFrameArithmeticUnsorted.test_combineFuncc                    s   t   t  dt jd  fdd}|tj |tj |tj	 |tj
 |tj |tj d S )Nra   )r^   r^   r^   c              	      s   |  }t |j|  jj d}tjtt|d |   W 5 Q R X | }t |j| jj | d}t |j| jd d}tjt|d | d d  W 5 Q R X d S )NzNUnable to coerce to Series/DataFrame, dimension must be <= 2: (30, 4, 1, 1, 1)rB   r   z.Can only compare identically-labeled DataFramerf   )r7   r  r   rG   rH   rI   reescape)funcrY   rJ   r   result3r   rX   r   r   r   r   r   r   	test_compG  s     

 
z?TestFrameArithmeticUnsorted.test_comparisons.<locals>.test_comp)r7   ZmakeTimeDataFramer   r   r   r   rz   rs   rt   ro   rp   rr   rq   )r   r   r   r  r   r  r   test_comparisons@  s    





z,TestFrameArithmeticUnsorted.test_comparisonsc              	   C   sH   t dd dD }tt|}d}tjt|d ||d W 5 Q R X d S )Nc                 S   s   i | ]}|d dddqS )r3   r4   r5   )rP   rQ   zr   r  r   r   r   rR   h  s      zZTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raises.<locals>.<dictcomp>)ra   rg   r   z;'[<>]=?' not supported between instances of 'str' and 'int'rB   r   )r   ry   rz   rG   rH   rW   )r   Zcompare_operators_no_eq_ner9   r   rJ   r   r   r   *test_strings_to_numbers_comparisons_raisese  s    
zFTestFrameArithmeticUnsorted.test_strings_to_numbers_comparisons_raisesc              	   C   sr   t  }tj|j|jd df< tjdd |jdk }W 5 Q R X tjdd |dk j}W 5 Q R X t || d S )Nr   r2   ignore)rE  raise)	r7   ZmakeDataFramer   r   rv   rT   Zerrstater   r  )r   Z
missing_dfrZ   rY   r   r   r   'test_comparison_protected_from_errstatep  s    zCTestFrameArithmeticUnsorted.test_comparison_protected_from_errstatec              	   C   s  t tdd}tddg}tddg}|j}dddg}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 5 Q R X tjt|	d	 ||k}W 5 Q R X ||k}t	|| |j
|k}t||j
 tjt|
d	 ||k W 5 Q R X tjt|d	 |j
|k W 5 Q R X t ddgddgddgg}||k}t	|| tjt|	d	 ||k}W 5 Q R X tjt|	d	 ||k}W 5 Q R X ||k}t	|| |j
|k}t||j
 tjt|
d	 ||k W 5 Q R X |j
j|jks$tt tddtd
tdd}|j|_|j|_tjt|	d	 ||k}W 5 Q R X tjt|	d	 ||k}W 5 Q R X d S )Nr=   r   rf   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 shapesrB   ZABra  r
  )r   r   r   r   r   Z
atleast_2dr   tupler7   r8   r   r  rG   rH   rI   r   r   rF   rT   rA   )r   r9   rg   Zb_rZb_clsttuprZ   rY   Zmsg1dZmsg2dZmsg2dbr   r   r   test_boolean_comparisony  sf    



  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abcdefgr\   r   r
  r   r^   ZbedcfZbcdefr@   )rF   r   r   r   rl   r   r   r   r'   r   r7   r8   )r   rA   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 dddg}ttjjdddddd}| }|}|d7 }t|| t|d | ||ksht	|j
|j
ksxt	| }|}|d7 }t|| t|d | ||kst	|j
|j
kst	| }|}|d	7 }t|| t|d	 | | }|}|d	7 }t|| t|d	 | ||ks2t	|j
|j
ksDt	tjjdddd}t| d
d}| }|}|d  d7  < t| d d
d}t|| t|| |j
|j
kst	| }|}|d  d	7  < t| d	 d
d}t|| t|| |j
|j
ks t	d S )Nr^   rf   r   r   r   r\   r_   r   r   r3   r   r2   )r   r   r   rD   ri   r   r'   r7   r   r   Z_mgrr8   )	r   Zs_origZdf_origrD  rr  r9   rX   r   rZ   r   r   r   test_inplace_ops_identity  sX    z5TestFrameArithmeticUnsorted.test_inplace_ops_identityr   andr   r   r   r   orr   r   r'  xorc                 C   s   |dkrd S t dddgdddgd}d}|d	kr@d
dd
g|d< | }d| d}d| d}t||| t|||}t|| t|}t||kstd S )Nr   r   r   r   r^   rf   r   rh   )r  r  r  TFra   Z__ir   )r   r'   ry   r7   r8   idr   )r   r   r9   ZoperandZdf_copyZioprZ   r   r   r   test_inplace_ops_identity23  s    z6TestFrameArithmeticUnsorted.test_inplace_ops_identity2c              
   C   s  dddg}dddg}t tjdd||d}tjjj}d	d
dgdtjd	d
dgtj	dt
d	dfD ]r}t |||d|jd}t|||dd	 | t d	d	d	gd
d
d
gdddgd|jd}t|||dd	 | q`d}d	d
gdtd	d
gt
d	dfD ]P}tjt|d |||d W 5 Q R X tjt|d |||d W 5 Q R X qtd	d
dgdddgdddgg}t|||dd	 t ||j|jd t|||dd	 t ||j|jd d}td	d
dgdddgg}tjt|d |||d W 5 Q R X tjt|d |||d W 5 Q R X td}td}tjt|d |||d W 5 Q R X tjt|d |||d W 5 Q R X d S )Nr2   r   r   r  Yr  r   rS   r^   rf   )r^   rf   r   r   r>   )r  r  r  r   rT   rA   z5Unable to coerce to Series, length must be 3: given 2r)  rB   r   r=   r   r   r  r  )r   r   r   zGUnable to coerce to Series/DataFrame, dimension must be <= 2: (3, 3, 3))r   r   rD   rE   rj   corer|   Zalign_method_FRAMEr   r   r   rT   r7   r8   rG   rH   rI   rA   zerosr  r  )r   rT   rA   r9   ZalignvalrZ   rJ   r   r   r   test_alignment_non_pandasZ  sZ    


 $"
z5TestFrameArithmeticUnsorted.test_alignment_non_pandasc              	   C   sF   t ddgdd gd}|d }td  t||| W 5 Q R X d S )Nr0  r   r   )r   r7   rA  ry   r   r   r9   rg   r   r   r   test_no_warning  s    z+TestFrameArithmeticUnsorted.test_no_warningc              	   C   sL   t ddgdd gd}|d }tjtdd t|||d W 5 Q R X d S )Nr0  r   r   ztakes 2 positional argumentsrB   r   )r   rG   rH   rW   ry   r  r   r   r   test_dunder_methods_binary  s    z6TestFrameArithmeticUnsorted.test_dunder_methods_binaryc                 C   sj   t jddddd}t jdtd}t|}| |d< |t}||	  }||	  }t
|| d S )Nr   r   r   r\   r]   z0.X)r   r   r   r   intr   r  r(   r  Zmeanr7   r8   )r   r  r  r   rX   rY   rZ   r   r   r   test_align_int_fill_bug  s    
z3TestFrameArithmeticUnsorted.test_align_int_fill_bugN) r.   r/   r0   rX  rZ  rG   r   r   rz   r   r   r   r'  r^  filterwarningsr`  rs  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   rO    sR    

F
<X%	O1:
;rO  c                  C   sP   t ddddgi} t dddgd}| | }t dtjdtjgi}t|| d S )Nr2   r   r^   rf   r   r   r   r   r   r7   r8   )r}   r~   rY   rZ   r   r   r   test_pow_with_realignment  s
    r  c                  C   st   t dtjtjtjgi} t ddddgi}t ddddgi}| | }t|| | d |d  }t||d  d S )Nr2   r   r   )r   r   r   r7   r8   r   )r}   r~   rZ   rY   r   r   r   test_pow_nan_with_zero  s    r  c                  C   s   t tjddddddgd} tdd	d
gdddgd}| d|ddd
 }t || jdd}| d}|| }t	
|| ||d }t	
|| d S )Nr   r   )r\   r   ra   rg   r   r@   r^   rf   r   r   r   r   ZInt64rK  )r   r   rD   ri   r   Zto_numpyr   rA   r(   r7   r8   )r9   r   rZ   Zdf_earY   r   r   r   &test_dataframe_series_extension_dtypes  s    
r  c                     s   t jddd} t| }| }t j|jddddgf< | }t j|jddgf< | }t j|jdt ddf< | }t j|jdt d	df< ||f||f||ffD ]6\   }t fd
d jD }t	
|| qd S )Nr   i  )r   r\   r^   r   r   r   rf   r>   c                    s   i | ]}| | |  qS r   r   )rM   r  r}   r~   r   r   rR     s      z6test_dataframe_blockwise_slicelike.<locals>.<dictcomp>)r   rD   ri   r   r'   r   r   r   rA   r7   r8   )r   r   rX   r   Zdf4Zdf5r;   rZ   r   r  r   "test_dataframe_blockwise_slicelike  s    r  zdf, col_dtyper   r   g      @r[  abr@   r   rg   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 )	Nr0  r   r  r@   rg   g      ra   r   )r   r   r   rF   r(   r   r7   r8   )r9   Z	col_dtyperZ   rY   r   r   r   /test_dataframe_operation_with_non_numeric_types  s    	 r  c                  C   s`   t dggdgd} t dddggdddgd}| | }t tjddggdddgd}t|| d S )Nr   rc  )r   rA   rb  r@   r  )r   rX   rY   rZ   r   r   r   "test_arith_reindex_with_duplicates  s
    r  to_addr^   c              	   C   sr   t ddgddgd}dt| d  d}tjt|d ||   W 5 Q R X tjt|d | |  W 5 Q R X d S )Nr^   rf   rO   zUnable to coerce list of r   z to Series/DataFramerB   )r   r)   rG   rH   rI   )r  r9   rJ   r   r   r   "test_arith_list_of_arraylike_raise  s    r  c                  C   sX   t ddddgi} | d }|j}|d7 }|j|ks6tt ddddgi}t| | d S )Nr2   r^   rf   r   r>   )r   Z_valuesr   r7   r8   )r9   r~  valsrZ   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^   ra   r   rg   re  rS   )rq  N)r   r   ro  r   r7   r8   )r   rX   rZ   rY   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  Zcdr   r   )r   rF   r   r   r7   r8   )r9   rY   rZ   r   r   r   test_bool_frame_mult_float2  s    r  )<collectionsr   r   rz   r  Znumpyr   rG   rU  Zpandas.util._test_decoratorsutilZ_test_decoratorsrH  Zpandasrj   r   r   r   r   Zpandas._testingZ_testingr7   Zpandas.core.commonr  commonr]  Zpandas.core.computationr   r   Z#pandas.core.computation.expressionsr	   r
   Zpandas.tests.frame.commonr   r   Zfixturer   r   r1   r   r   r  rJ  rL  r   r  rN  rO  r  r  r  r  r   rF   r  r  r  r  r  r  r   r   r   r   <module>   st      
 1 B h  @

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