U
    f/e%{                     @   s@  d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZ d dlZd dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ ejdd	d d
gddgddd Z dd Z!G dd dZ"G dd dZ#G dd dZ$G dd dZ%G dd dZ&G dd dZ'G dd dZ(d d! Z)d"d# Z*dS )$    )	timedeltaN)IncompatibleFrequency)is_datetime64_dtypeis_datetime64tz_dtype)CategoricalIndexIntervalIndexSeries	Timedeltabdate_range
date_rangeisna)nanopsops)expressionsTmodulei@B Znumexprpython)ZautouseZscopeparamsidsc                 c   s    t j}| jt _| jV  |t _d S N)expr_MIN_ELEMENTSparam)requestr    r   G/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/series/test_arithmetic.pyswitch_numexpr_min_elements"   s    r   c                 C   s   |  tjt| S r   )takenprandompermutationlen)objr   r   r   _permute,   s    r#   c                
   @   s  e Zd Zejddd dd dfdd dd dfdd d	d d
fdd dd d
fgejdddddddgdd Zdd Zdd Ze	j
ejdfe	jejdfgZdD ]VZdZee	eZeeeZee	de ZefddZeeeef eeeef qejdedd  Zd!S )"TestSeriesFlexArithmetictsc                 C   s   | S r   r   xr   r   r   <lambda>4       z!TestSeriesFlexArithmetic.<lambda>c                 C   s   | d S N   r   r&   r   r   r   r(   4   r)   Fc                 C   s   | S r   r   r&   r   r   r   r(   5   r)   c                 C   s   | d d d S r*   r   r&   r   r   r   r(   5   r)   c                 C   s   | S r   r   r&   r   r   r   r(   6   r)   c                 C   s   dS )N   r   r&   r   r   r   r(   6   r)   Tc                 C   s   t  S r   )tmZmakeFloatSeriesr&   r   r   r   r(   7   r)   opnameaddsubmulfloordivtruedivpowc                 C   s   t  d}|d |}|d |}|d }tt|}tt|}|||}	|||}
t |	|
 |rttd| }|||}	|||}
t |	|
 d S )Nr%   r      r+   r)r-   ZmakeTimeSeriesrenamegetattrr	   operatorassert_almost_equal)selfr.   r%   ZtserseriesotherZcheck_reverseopZaltresultexpectedropr   r   r   test_flex_method_equivalence1   s    





z5TestSeriesFlexArithmetic.test_flex_method_equivalencec                    sV   G  fdddt  |}tt |} dddgdd}d|_||d}|jdksRtd S )	Nc                       s"   e Zd ZdgZe fddZdS )zZTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeriesr'   c                    s    S r   r   )r;   MySeriesr   r   _constructorV   s    zgTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeries._constructorN)__name__
__module____qualname__	_metadatapropertyrE   r   rC   r   r   rD   S   s   rD   r5   r+      testname*   )r	   r8   r'   AssertionError)r;   Zall_arithmetic_operatorsr.   r>   mr?   r   rC   r   /test_flex_method_subclass_metadata_preservationQ   s    

zHTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservationc                 C   sD   t ddtjdddg}|dd}|jddd}t|| d S )Nr   r5   rK      r,   r+   
fill_value)r	   r   nanfillnar/   r-   assert_series_equal)r;   sexpresr   r   r   test_flex_add_scalar_fill_valuea   s    z8TestSeriesFlexArithmetic.test_flex_add_scalar_fill_valuer5   )r/   r0   r1   r4   r3   r2   r   r6   c                 C   s   t t||| S r   )r8   r9   )r'   yr>   r   r   r   r(   p   r)   zop, equiv_op, fvc           	      C   s   ddd}t tjdddtjgtdd}t tjd	tjd
tjdgtdd}|||}|||}t|| ||||||d |||dd d S )Nr   c              
   S   s  |j |j }||}||}t|}t|}g }tt|D ]}	tjdd ||	 r||	 r||tj	 W 5 Q R  qB|||||	  nV||	 r||	 r|tj	 W 5 Q R  qB||||	 | n||||	 ||	  W 5 Q R X qB| |||d}
t
||}t|
| d S )Nignore)allrT   )indexunionreindexr   ranger!   r   errstateappendrV   r	   r-   rX   )methr>   abrU   Z	exp_indexZamaskZbmaskZ
exp_valuesir?   r@   r   r   r   _check_fillv   s,    

$
zDTestSeriesFlexArithmetic.test_operators_combine.<locals>._check_fillg      ?g       @g      @r,   r`   r5   rK   g      @   rT   axis)r   )r	   r   rV   aranger-   rX   )	r;   r>   Zequiv_opfvrj   rg   rh   r?   rZ   r   r   r   test_operators_combinet   s    
 $

z/TestSeriesFlexArithmetic.test_operators_combineN)rF   rG   rH   pytestmarkparametrizerB   rR   r\   r	   divr9   r3   Zrdivr   ZrtruedivZpairingsr>   rp   r8   ZlopZlequivrA   Zrequivre   rq   r   r   r   r   r$   0   s4   	 

r$   c                   @   s   e Zd Zdd Zejddddgddgfd	ddgd
dgfgdd Zdd Zejdde	dgdd Z
dd Zdd Zdd Zdd Zdd Zdd  Zd!d" ZdS )#TestSeriesArithmeticc              	   C   s   t jdddd}ttjt||d}||d d d  }|| }tj|jdd d< t	
|| |t|d d d  }t	
|| d}tjt|d	 ||jd
dd  W 5 Q R X d S )N1/1/2000z1/1/2010Afreqrk   r+   r5   z4Input has different freq=D from Period\(freq=A-DEC\)matchDend)how)pdZperiod_ranger	   r   r   randnr!   rV   ilocr-   rX   r#   rr   raisesr   Zasfreq)r;   rngr%   r?   r@   msgr   r   r   !test_add_series_with_period_index   s    z6TestSeriesArithmetic.test_add_series_with_period_indexz%target_add,input_value,expected_value!ZhelloZworldzhello!zworld!rQ   ZhellomZworldmc                 C   s(   t |}|| }t |}t|| d S r   r	   r-   rX   )r;   Z
target_addZinput_valueZexpected_valuerg   r?   r@   r   r   r   test_string_addition   s    	z)TestSeriesArithmetic.test_string_additionc                 C   s   t dddtjgddddgd}t dtjdtjgddddgd}||}t||}t|d	 |d	  t|d |d  ||}t||}t|d	 |d	  t|d |d  d S )
Nr5   rg   rh   cdrk   r+   er   )r	   r   rV   divmodr-   rX   Zrdivmod)r;   rg   rh   r?   r@   r   r   r   test_divmod   s     



z TestSeriesArithmetic.test_divmodr`   N	   c              	   C   sD   t tdd}t d|d}d}tjt|d ||  W 5 Q R X d S )Nr5   
   foork   z4not all arguments converted during string formattingr{   )r	   rc   rr   r   	TypeError)r;   r`   s1s2r   r   r   r   test_series_integer_mod   s
    z,TestSeriesArithmetic.test_series_integer_modc                 C   sZ   t ddgddgd}t ddgddgd}|| }t ddtjgdddgd}t|| d S )Nr5   r+   rk   r         )r	   r   rV   r-   rX   )r;   r   r   r?   r@   r   r   r   test_add_with_duplicate_index   s
    z2TestSeriesArithmetic.test_add_with_duplicate_indexc                 C   s   ddl m} ddlm} t|d|dg|ddd|dddgd	}||d }|d| }t|d sptt|d std S )
Nr   date)Decimalz1.3z2.3i  r5   r+   rk   )datetimer   decimalr   r	   shiftr   rP   )r;   r   r   rY   r?   result2r   r   r   test_add_na_handling   s     z)TestSeriesArithmetic.test_add_na_handlingc                 C   s   t g tg tjd}|| }t| s.t||  }t|dksJt|	t
d d }|| }t |jd d |j |jd d dd}t|d d | d S )N)r`   dtyper   r%   r`   rN   )r	   r   r   Zfloat64isnanr_   rP   copyr!   astypeintvaluesr`   r-   rX   )r;   datetime_seriesemptyr?   Zint_tsaddedr@   r   r   r   test_add_corner_cases   s    
z*TestSeriesArithmetic.test_add_corner_casesc                 C   s>   t g g tjd}t ddi}t|| t tjgdgd d S )Nr   r'   g        rk   )r	   r   Zint32r-   rX   rV   )r;   r   r   r   r   r   test_mul_empty_int_corner_case  s    z3TestSeriesArithmetic.test_mul_empty_int_corner_casec                 C   s   t tdddd}tj|jd< |d d d }t tdtdtjg}|| }t	|| t |dd}|
 |
  d }t	|| d S )	Nz2012-1-1rK   r}   periodsrz   r+   r   rM   )r	   r   r   rV   r   r   r   ZNaTr-   rX   to_frame)r;   dtZdt2r@   r?   r   r   r   test_sub_datetimelike_align  s    z0TestSeriesArithmetic.test_sub_datetimelike_alignc                 C   sX   t dddd}|d}td|d}td|d}||  |j|ksFt|j|ksTtd S )Nz
2016-01-01r   ZCET)r   tzUTCrk   )r   
tz_convertr	   r`   rP   )r;   dtiZdti_utcserser_utcr   r   r   test_alignment_doesnt_change_tz  s    
z4TestSeriesArithmetic.test_alignment_doesnt_change_tzc                 C   s   dddddg}t tjdddd|d}t tjd	dd|d}|| }t ddddddgd}t|| t td
d	d|d}t tdd	d|d}|| }t tddddddgd}t|| d S )Nr+   rK   rS   r5   rl   Zint64r   rk   r,   z20130101 09:00:00r   Z20130101z9 hours)r	   r   ro   r-   rX   r   r
   )r;   r`   r   r=   r?   r@   r   r   r   $test_arithmetic_with_duplicate_index*  s    z9TestSeriesArithmetic.test_arithmetic_with_duplicate_index)rF   rG   rH   r   rr   rs   rt   r   r   rc   r   r   r   r   r   r   r   r   r   r   r   r   rv      s$   


rv   c                   @   s  e Zd Zejddddgdd Zdd Zejd	d
d
dd
gdfddd
dgdfd
d
dd
gdfd
d
d
d
gdfd
ddd
gdfd
dd
d
gdfgdd Zejdd
d
ddgddfddd
d
gddfd
d
ddgddfd
d
d
dgddfdddd
gddfddd
d
gddfgdd Z	dS )TestSeriesFlexComparisonrn   r   Nr`   c                 C   s\   | d}ttjd}ttjd}t||||d}tt|||}t|| d S )N__r   rm   )	stripr	   r   r   r   r8   r9   r-   rX   )r;   rn   all_compare_operatorsr>   leftrightr?   r@   r   r   r   test_comparison_flex_basicC  s    
z3TestSeriesFlexComparison.test_comparison_flex_basicc              	   C   s^   | d}ttjd}ttjd}d}tjt|d t|||dd W 5 Q R X d S )Nr   r   zNo axis named 1 for object typer{   r5   rm   )	r   r	   r   r   r   rr   r   
ValueErrorr8   )r;   r   r>   r   r   r   r   r   r   test_comparison_bad_axisL  s    
z1TestSeriesFlexComparison.test_comparison_bad_axisz
values, opFTeqneleltgegtc                 C   sZ   t dddgtdd}t dddgtdd}t|||}t |tdd}t|| d S )Nr5   rK   r+   abcrk   bcdabcdr	   listr8   r-   rX   )r;   r   r>   r   r   r?   r@   r   r   r   test_comparison_flex_alignmentU  s
    z7TestSeriesFlexComparison.test_comparison_flex_alignmentzvalues, op, fill_valuer+   c                 C   s^   t dddgtdd}t dddgtdd}t||||d}t |tdd}t|| d S )	Nr5   rK   r+   r   rk   r   rT   r   r   )r;   r   r>   rU   r   r   r?   r@   r   r   r   #test_comparison_flex_alignment_fillg  s
    z<TestSeriesFlexComparison.test_comparison_flex_alignment_fill)
rF   rG   rH   rr   rs   rt   r   r   r   r   r   r   r   r   r   B  s2   
	
r   c                
   @   sF  e Z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ejde	j
e	je	je	je	je	jg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!ed"d#d$ged%d&d'ed#d#d#ged(d&d'fed"d#d$ged%d&d'ed#d#d#d#ged)d&d'fgd*d+ Zd,d- Zd.S )/TestSeriesComparisonc              	   C   s   t dddg}t ddg}d}tjt|d ||k  W 5 Q R X t ddg}t ddd	g}tjt|d ||k W 5 Q R X d S )
Nrg   rh   r   z'only compare identically-labeled Seriesr{   r5   r+   rK   rS   )r	   rr   r   r   )r;   rg   rh   r   r   r   r    test_comparison_different_length{  s    z5TestSeriesComparison.test_comparison_different_lengthr.   r   r   r   r   r   r   c                 C   sD   t dddgtdd}d}t|||j}td}||ks@td S )Nr5   rK   r+   rk   bool)r	   rc   r8   dtypesr   r   rP   )r;   r.   r   constr?   r@   r   r   r   test_ser_flex_cmp_return_dtypes  s
    
z4TestSeriesComparison.test_ser_flex_cmp_return_dtypesc                 C   sR   t dddgtdd}|jd d }d}t|||j}td}||ksNtd S )Nr5   rK   r+   rk   r   r   )r	   rc   r   r8   r   r   r   rP   )r;   r.   r   r   r   r?   r@   r   r   r   %test_ser_flex_cmp_return_dtypes_empty  s    
z:TestSeriesComparison.test_ser_flex_cmp_return_dtypes_emptyr>   names)NNN)r   barN)bazr   r   c           	      C   sj  t ddd|d d}t||d }|||}|j|d ksBt|d}tj|d	d
}t||d }|||}|j|d kst||d }t||d }|||}|j|d kst|t	j
t	jfkrtjdd|d d}t||d }|||}|j|d kst|t	j
t	jfkrf|d}t||d }|||}|j|d ksftd S )Nz1949-06-07 03:00:00Hr,   r   )rz   r   rN   r5   r+   z
US/CentralZinferry   )startr   rN   category)r   r	   r7   rN   rP   tz_localizer   ZDatetimeIndexr   r9   r   r   Zinterval_ranger   )	r;   r   r>   r   r   r?   ZtdiiiZcidxr   r   r   test_ser_cmp_result_names  s.    	






z.TestSeriesComparison.test_ser_cmp_result_namesc              	   C   s   t jd}t jd}t j|d d< t||}t jdd ||kd}W 5 Q R X t j|d d< t	|| t
dddg}t
d	d
d	g}t
d	d	d	g}t||k| t||k| d S )Nr   rK   r^   )invalidOrg   rh   r   FT)r   r   r   rV   r   Znangtrd   r   r-   r:   r	   rX   )r;   r   r   r?   r@   rY   r   rZ   r   r   r   test_comparisons  s    z%TestSeriesComparison.test_comparisonsc              	   C   s  t tddd}t tddd}t dddgdd}t tddd}ttd}ttd}|dk rjt|dk|dk k std|k rt|dkd	 std|kd	 std|kd	 rt||k st||k rt|t|k st||k s
t||k st||k ||kk s8t||k ||kk sTt||k rft||k rxt||k rt||k rt||k st||k st||k rt||k rt||k ||kk s t||k ||kk st||k ||kk s8t||k ||kk sTt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 d S )Nr   r   r   objectrg   rh   ccZacbr    can only compare equality or notr{   )r	   r   r   r_   rP   rr   r   r   )r;   rg   rh   r   r   r   fr   r   r   r   test_categorical_comparisons  sP    z1TestSeriesComparison.test_categorical_comparisonsc              	   C   sD  t ttd}d}tjt|d |dk W 5 Q R X t ttddd}tjt|d |dk W 5 Q R X t ttddd}d}tjt|d |d	k  W 5 Q R X tjt|d |d	k W 5 Q R X tjt|d d	|k  W 5 Q R X tjt|d d	|k W 5 Q R X t|d	kt dddg t|d	kt dddg d S )
Nr   r   r{   rh   F)ZorderedTz1Invalid comparison between dtype=category and strr   )r	   r   r   rr   r   r   r-   rX   )r;   catr   r   r   r   5test_unequal_categorical_comparison_raises_type_error  s&    zJTestSeriesComparison.test_unequal_categorical_comparison_raises_type_errorc                 C   s  t ddg}|dk}t ddg}t|| |dk}t ddg}t|| |dk}t ddg}t|| |dk}t ddg}t|| t ddg}|dk}t ddg}t|| |dk}t ddg}t|| t tdgtddgg}|tdgk}t ddg}t|| d S )N)r5   r5   )r5   r+   FT)r   r   r5   r+   )r	   r-   rX   	frozensetr;   rY   r?   r@   r   r   r   test_comparison_tuples3  s0    z+TestSeriesComparison.test_comparison_tuplesc                 C   s   |}t tdddtd}tj|d d d< tt|}|d }|||}|| ||j	}|dkrt|
dt}n|
d	t}t|| d S )
Nrw   r   r   r   r+   r,   __ne__TF)r	   r   r   r   rV   r8   r9   Zdropnarb   r`   rW   r   r   r-   rX   )r;   r   r>   r   r   valr?   r@   r   r   r   "test_comparison_operators_with_nasX  s    

z7TestSeriesComparison.test_comparison_operators_with_nasc                 C   sb   t dddddgdddddgtd}dddddg}t|jdk|sFtt|jdk |s^td S )	NrK   rS   r,   rl      r   TF)r	   floatr-   ZequalContentsr`   rP   )r;   r%   r@   r   r   r   test_neq  s    "zTestSeriesComparison.test_nezleft, rightr5   r+   rK   ABCr'   r   ZABDABCDc              	   C   s   d|j  d}|tk	r&| }| }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 tjt|d ||k  W 5 Q R X tjt|d ||k  W 5 Q R X d S )Nz%Can only compare identically-labeled z objectsr{   )rF   r	   r   rr   r   r   )r;   r   r   Zframe_or_seriesr   r   r   r   test_comp_ops_df_compatw  s     z,TestSeriesComparison.test_comp_ops_df_compatc                 C   s4   t dddg}|dk}t dddg}t|| d S )NZ	IntervalAZ	IntervalBZ	IntervalCTFr   r   r   r   r   $test_compare_series_interval_keyword  s    z9TestSeriesComparison.test_compare_series_interval_keywordN)rF   rG   rH   r   rr   rs   rt   r   r   r9   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   z  s@   

	 $8%
r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestTimeSeriesArithmeticc                 C   sj   t ddddd}ttjt||d}|d}|| }|jjt	j
ksLt|| }|jjt	j
ksftd S )N1/1/2011r   r   
US/Easternr   rz   r   rk   zEurope/Moscow)r   r	   r   r   r   r!   r   r`   r   pytzutcrP   )r;   r   r   Z	ts_moscowr?   r   r   r   5test_series_add_tz_mismatch_converts_to_utc_duplicate  s    
zNTestTimeSeriesArithmetic.test_series_add_tz_mismatch_converts_to_utc_duplicatec           	      C   s   t ddddd}tjdd d }ttjd||dd}tjdd d }ttjd||d	d}|| }|d}|d}|| }|jj	t
jkstt|| d S )
Nr   d   r   r   r   Z   r   rk   zEurope/Berlin)r   r   r   r    r	   r   r   r   r`   r   r   r   rP   r-   rX   )	r;   r   permser1ser2r?   Zuts1Zuts2r@   r   r   r   +test_series_add_tz_mismatch_converts_to_utc  s"    
 
 

zDTestTimeSeriesArithmetic.test_series_add_tz_mismatch_converts_to_utcc              	   C   s|   t dddd}ttjt||d}|d}d}tjt	|d ||  W 5 Q R X tjt	|d ||  W 5 Q R X d S )	Nr   r   r   r   rk   r   z0Cannot join tz-naive with tz-aware DatetimeIndexr{   )
r   r	   r   r   r   r!   r   rr   r   	Exception)r;   r   r   r   r   r   r   r   "test_series_add_aware_naive_raises  s    
z;TestTimeSeriesArithmetic.test_series_add_aware_naive_raisesc                 C   sJ   t tddd}tjjdd}|| }t tdddg}t|| d S )	Nz
2012-01-01rK   r   rl   )daysz
2011-12-26z
2011-12-27z
2011-12-28)r	   r   r   offsetsZ
DateOffsetZto_datetimer-   rX   )r;   r<   offsetr?   r@   r   r   r   test_datetime_understood  s
    z1TestTimeSeriesArithmetic.test_datetime_understoodc                 C   s   t ddd}ttjd|d}|dd  }| }dd |jD |_|| }|| }||dd   }|jd |_t	|| t	|| d S )Nrw      r   rk   r,   c                 S   s   g | ]}|  qS r   r   ).0r'   r   r   r   
<listcomp>  s     zWTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex.<locals>.<listcomp>)
r   r	   r   r   r   r   r`   Z
_with_freqr-   rX   )r;   r   r%   Zts_sliceZts2r?   r   r@   r   r   r   *test_align_date_objects_with_datetimeindex  s    zCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindexN)rF   rG   rH   r  r  r	  r  r  r   r   r   r   r     s
   	r   c                	   @   sT   e Zd Zejdeeej	e
eej	gejdddgdd Zdd Zd	d
 ZdS )TestNamePreservationboxflexTFc              	   C   sJ  |}|t jkr4|ttfkr4|s4|jtjjdd t	t
d|d d}t	t
d|d d}|jd}	|	dk}
|
o||	d	}||}|r|
rd S t||	|}n>|r|tkrtnd }d
}tj||dd |||}W 5 Q R X |tkr|rt|tstd S t|t	st|tt	fkr2|j|d ksFtn|j|d ksFtd S )Nz:op fails because of inconsistent ndarray-wrapping GH#28759)reasonr   r   rM   r5   _)andZrandxorZrxororZrorr6   z*operating as a set operation is deprecatedF)r|   Zcheck_stacklevelr+   )r   Z	rfloordivr   tuplenodeZ
add_markerrr   rs   Zxfailr	   rc   rF   r   
startswithr8   r   FutureWarningr-   Zassert_produces_warning
isinstancerP   rN   )r;   r   r  r  r   Zall_binary_operatorsr>   r   r   rN   Z
is_logicalZis_rlogicalr?   warnr   r   r   r   test_series_ops_name_retention  s8    z3TestNamePreservation.test_series_ops_name_retentionc                 C   s  || }|j |j kst||}|j |j ks2t||d d  }|j |j ksRt| }d|_ || }|j d ksvt||}|j d kstddddddd	d
g}|dd |D  }|D ]T}| }t|||}|j |j kst| }d|_ t|||}|j d kstqd S )Nzsomething elser/   r0   r1   ru   r3   r2   modr4   c                 S   s   g | ]}d | qS )r6   r   )r  r>   r   r   r   r  5  s     zGTestNamePreservation.test_binop_maybe_preserve_name.<locals>.<listcomp>changed)rN   rP   r1   r   r/   r8   )r;   r   r?   cpr   r>   r   r   r   r   test_binop_maybe_preserve_name"  s,    

z3TestNamePreservation.test_binop_maybe_preserve_namec                 C   s   |d }|j |j kstd S r*   )rN   rP   )r;   r   r?   r   r   r   test_scalarop_preserve_nameB  s    z0TestNamePreservation.test_scalarop_preserve_nameN)rF   rG   rH   rr   rs   rt   r   r  r   arrayr   r	   r   r   r%  r&  r   r   r   r   r    s
   - r  c                   @   s"   e Zd Zejdddd ZdS )TestInplaceOperationsz)dtype1, dtype2, dtype_expected, dtype_mul))Int64r)  r)  r)  )r   r   r   r   )r)  r   Float64r*  )r)  r*  r*  r*  c                 C   s   t dg|d}t dg|d}||7 }t dg|d}t|| ||8 }t dg|d}t|| ||9 }t dg|d}t|| d S )Nr5   r   r+   rK   r   )r;   Zdtype1Zdtype2Zdtype_expectedZ	dtype_mulr  r  r@   r   r   r   test_series_inplace_opsH  s    z-TestInplaceOperations.test_series_inplace_opsN)rF   rG   rH   rr   rs   rt   r+  r   r   r   r   r(  G  s
   	r(  c              	   C   s~  | }t |jtrtd t|dk r0td tj|d< |d k}|jd rPt	|jd r^t	|d k}|jd stt	|jd st	d |k}|jd rt	|jd rt	d |k}|jd st	|jd st	t
|jst|jr*d}tjt|d d |k W 5 Q R X tjt|d |d k W 5 Q R X nPd |k}|jd rBt	|jd rRt	|d k }|jd rjt	|jd rzt	d S )Nz(IntervalIndex doesn't support assignmentr5   z%Test doesn't make sense on empty datar   zInvalid comparisonr{   )r  r`   r   rr   skipr!   r   rV   ZiatrP   r   r   r   r   r   )Zseries_with_simple_indexr<   r?   r   r   r   r   test_none_comparisonc  s<    


r-  c                  C   s   t tdtjjtdtdddggdddgdd} t d	d
 tddD tjjtdddggddgdd}| jtjdd d d d f  | }t ddddgtjjddddgdddgdd}t	
|| d S )N   abZxyr5   r+   num)r   rk   c                 S   s   g | ]}d | qS )  r   )r  ri   r   r   r   r    s     z;test_series_varied_multiindex_alignment.<locals>.<listcomp>r,   rg   r1  i  i  i  )rg   r'   r5   )rg   r'   r+   )rg   r]   r5   )rg   r]   r+   )r	   rc   r   Z
MultiIndexZfrom_productr   locZ
IndexSlicefrom_tuplesr-   rX   )r   r   r?   r@   r   r   r   'test_series_varied_multiindex_alignment  s(     "

r4  )+r   r   r9   Znumpyr   rr   r   Zpandas._libs.tslibsr   Zpandas.core.dtypes.commonr   r   Zpandasr   r   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingr-   Zpandas.corer   r   Zpandas.core.computationr   r   Zfixturer   r#   r$   rv   r   r   r   r  r(  r-  r4  r   r   r   r   <module>   s>   (
   
m &8  0JU0