o
    iu                     @   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 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Series	Timedeltabdate_range
date_rangeisna)nanopsops)expressionsTmodulei@B numexprpython)autousescopeparamsidsc                 c   s"    t j}| jt _| jV  |t _d S N)expr_MIN_ELEMENTSparam)requestr    r   ^/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/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g d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 ]+Z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 qPejdedd ZdS )TestSeriesFlexArithmetictsc                 C      | S r   r   xr   r   r   <lambda>3       z!TestSeriesFlexArithmetic.<lambda>c                 C   s   | d S N   r   r)   r   r   r   r+   3       Fc                 C   r(   r   r   r)   r   r   r   r+   4   r,   c                 C   s   | d d d S r-   r   r)   r   r   r   r+   4   s    c                 C   r(   r   r   r)   r   r   r   r+   5   r,   c                 C   s   dS )N   r   r)   r   r   r   r+   5   r,   Tc                 C   s   t  S r   )tmmakeFloatSeriesr)   r   r   r   r+   6   r/   opname)addsubmulfloordivtruedivpowc                 C   s   t  d}|d |}|d |}|d }tt|}tt|}|||}	|||}
t |	|
 |rLttd| }|||}	|||}
t |	|
 d S d S )Nr'   r      r.   r)r1   makeTimeSeriesrenamegetattrr   operatorassert_almost_equal)selfr3   r'   tserseriesothercheck_reverseopaltresultexpectedropr   r   r   test_flex_method_equivalence0   s   





z5TestSeriesFlexArithmetic.test_flex_method_equivalencec                    sT   G  fdddt  |}tt |} g ddd}d|_||d}|jdks(J 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   )rA   MySeriesr   r   _constructorU   s   zgTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeries._constructorN)__name__
__module____qualname__	_metadatapropertyrN   r   rL   r   r   rM   R   s    rM   r:   r.      testname*   r:   )r   r>   r*   )rA   all_arithmetic_operatorsr3   rF   mrH   r   rL   r   /test_flex_method_subclass_metadata_preservationP   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   r:   rU      r0   r.   
fill_value)r   r    nanfillnar4   r1   assert_series_equal)rA   serexpresr   r   r   test_flex_add_scalar_fill_value`   s   z8TestSeriesFlexArithmetic.test_flex_add_scalar_fill_valuer:   )r4   r5   r6   r9   r8   r7   r   r;   c                 C   s   t t||| S r   )r>   r?   )r*   yrF   r   r   r   r+   o   s    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   s8  |j |j }||}||}t|}t|}g }tt|D ]f}	tjddV ||	 rK||	 r@|tj	 	 W d    q!|||||	  n-||	 rl||	 ra|tj	 	 W d    q!||||	 | n||||	 ||	  W d    n1 sw   Y  q!| |||d}
t
||}t|
| d S )Nignore)allr^   )indexunionreindexr   ranger#   r    errstateappendr`   r   r1   rb   )methrF   abr_   	exp_indexamaskbmask
exp_valuesirH   rI   r   r   r   _check_fillu   s6   



zDTestSeriesFlexArithmetic.test_operators_combine.<locals>._check_fillg      ?g       @g      @r0   rj   r:   rU   g      @   r^   axis)r   )r   r    r`   aranger1   rb   )	rA   rF   equiv_opfvrx   rq   rr   rH   rd   r   r   r   test_operators_combines   s   
 $

z/TestSeriesFlexArithmetic.test_operators_combineN)rO   rP   rQ   pytestmarkparametrizerK   r\   rf   r   divr?   r8   rdivr   rtruedivpairingsrF   r   r>   loplequivrJ   requivro   r   r   r   r   r   r&   /   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#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 d    d S 1 s_w   Y  d S )N1/1/2000z1/1/2010Afreqry   r.   r:   z4Input has different freq=D from Period\(freq=A-DEC\)matchDend)how)pdperiod_ranger   r    r!   randnr#   r`   ilocr1   rb   r%   r   raisesr   asfreq)rA   rngr'   rH   rI   msgr   r   r   !test_add_series_with_period_index   s   "z6TestSeriesArithmetic.test_add_series_with_period_indexz%target_add,input_value,expected_value!helloworldzhello!zworld!r[   hellomworldmc                 C   s(   t |}|| }t |}t|| d S r   r   r1   rb   )rA   
target_addinput_valueexpected_valuerq   rH   rI   r   r   r   test_string_addition   s   	z)TestSeriesArithmetic.test_string_additionc                 C   s   t dddtjgg dd}t dtjdtjgg dd}||}t||}t|d |d  t|d |d  ||}t||}t|d |d  t|d |d  d S )Nr:   )rq   rr   cdry   r.   )rq   rr   r   er   )r   r    r`   divmodr1   rb   rdivmod)rA   rq   rr   rH   rI   r   r   r   test_divmod   s   



z TestSeriesArithmetic.test_divmodrj   N	   c                 C   sZ   t tdd}t d|d}d}tjt|d ||  W d    d S 1 s&w   Y  d S )Nr:   
   foory   z4not all arguments converted during string formattingr   )r   rm   r   r   	TypeError)rA   rj   s1s2r   r   r   r   test_series_integer_mod   s   
"z,TestSeriesArithmetic.test_series_integer_modc                 C   sX   t ddgddgd}t ddgddgd}|| }t ddtjgg dd}t|| d S )Nr:   r.   ry   r         )r:   r:   r.   )r   r    r`   r1   rb   )rA   r   r   rH   rI   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 s8J t|d s@J d S )
Nr   date)Decimalz1.3z2.3i  r:   r.   ry   )datetimer   decimalr   r   shiftr   )rA   r   r   rc   rH   result2r   r   r   test_add_na_handling   s   $z)TestSeriesArithmetic.test_add_na_handlingc                 C   sN   t g tg tjd}|| }t| sJ ||  }t|dks%J d S )N)rj   dtyper   )r   r   r    float64isnanri   copyr#   )rA   datetime_seriesemptyrH   r   r   r   test_add_corner_cases   s
   z*TestSeriesArithmetic.test_add_corner_casesc                 C   sZ   | td d }|| }t|jd d |j |jd d dd}t|d d | d S )Nr'   rj   rX   )astypeintr   valuesrj   r1   rb   )rA   r   int_tsaddedrI   r   r   r   test_add_float_plus_int   s   z,TestSeriesArithmetic.test_add_float_plus_intc                 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        ry   )r   r    int32r1   rb   r`   )rA   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-1rU   r   periodsr   r.   r   rW   )r   r   r    r`   r   r   r   NaTr1   rb   to_frame)rA   dtdt2rI   rH   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|u s#J |j|u s*J d S )Nz
2016-01-01r   CET)r   tzUTCry   )r   
tz_convertr   rj   )rA   dtidti_utcrc   ser_utcr   r   r   test_alignment_doesnt_change_tz  s   
z4TestSeriesArithmetic.test_alignment_doesnt_change_tzc                 C   s   g d}t tjdddd|d}t tjddd|d}|| }t dg dd}t|| t tddd	|d}t td
dd	|d}|| }t tdg dd}t|| d S )N)r.   r.   rU   rU   r]   r:   rz   int64r   ry   r0   z20130101 09:00:00r   20130101z9 hours)r   r    r}   r1   rb   r   r	   )rA   rj   rc   rD   rH   rI   r   r   r   $test_arithmetic_with_duplicate_index#  s   z9TestSeriesArithmetic.test_arithmetic_with_duplicate_index)rO   rP   rQ   r   r   r   r   r   r   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s(    


	r   c                   @   s   e Zd Zejdg ddd Zdd Zejdg dd	fg d
dfg ddfg ddfg ddfg ddfgdd Zejdg dd	dfg dddfg dddfg dddfg dddfg dddfgdd Z	dS )TestSeriesFlexComparisonr|   )r   Nrj   c                 C   sN   t tjd}t tjd}t||j||d}|||}t|| d S )Nr   r{   )r   r    r!   r   r>   rO   r1   rb   )rA   r|   comparison_opleftrightrH   rI   r   r   r   test_comparison_flex_basic<  s
   
z3TestSeriesFlexComparison.test_comparison_flex_basicc                 C   sl   t tjd}t tjd}d}tjt|d t||j|dd W d    d S 1 s/w   Y  d S )Nr   zNo axis named 1 for object typer   r:   r{   )	r   r    r!   r   r   r   
ValueErrorr>   rO   )rA   r   r   r   r   r   r   r   test_comparison_bad_axisD  s   "z1TestSeriesFlexComparison.test_comparison_bad_axisz
values, op)FFTFeq)TTFTnele)FFFFlt)FTTFge)FTFFgtc                 C   sV   t g dtdd}t g dtdd}t|||}t |tdd}t|| d S )Nr:   rU   r.   abcry   r.   r.   r.   bcdabcdr   listr>   r1   rb   )rA   r   rF   r   r   rH   rI   r   r   r   test_comparison_flex_alignmentL  s
   z7TestSeriesFlexComparison.test_comparison_flex_alignmentzvalues, op, fill_value)FFTTr.   )TTFFr   )FFFT)TTTFc                 C   sZ   t g dtdd}t g dtdd}t||||d}t |tdd}t|| d S )Nr   r   ry   r   r   r^   r   r   )rA   r   rF   r_   r   r   rH   rI   r   r   r   #test_comparison_flex_alignment_fill^  s
   z<TestSeriesFlexComparison.test_comparison_flex_alignment_fillN)
rO   rP   rQ   r   r   r   r   r   r   r   r   r   r   r   r   ;  s4    







r   c                
   @   s  e Zd Zdd Zejdg ddd Zejdg 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dd Zejdeg dedddeg d ed!ddfeg dedddeg d"ed#ddfgd$d% Zd&d' Zd(S ))TestSeriesComparisonc                 C   s   t g d}t ddg}d}tjt|d ||k  W d    n1 s$w   Y  t ddg}t g d}tjt|d ||k W d    d S 1 sLw   Y  d S )	Nrq   rr   r   rr   rq   z'only compare identically-labeled Seriesr   r:   r.   )r.   rU   r]   )r   r   r   r   )rA   rq   rr   r   r   r   r    test_comparison_different_lengthr  s   

"z5TestSeriesComparison.test_comparison_different_lengthr3   )r   r   r   r   r   r   c                 C   sB   t g dtdd}d}t|||j}td}||ksJ d S )Nr   rU   ry   r.   bool)r   rm   r>   dtypesr    r   )rA   r3   rc   constrH   rI   r   r   r   test_ser_flex_cmp_return_dtypes~  s
   
z4TestSeriesComparison.test_ser_flex_cmp_return_dtypesc                 C   sP   t g dtdd}|jd d }d}t|||j}td}||ks&J d S )Nr   rU   ry   r   r.   r   )r   rm   r   r>   r   r    r   )rA   r3   rc   r   r  rH   rI   r   r   r   %test_ser_flex_cmp_return_dtypes_empty  s   
z:TestSeriesComparison.test_ser_flex_cmp_return_dtypes_emptynames))NNN)r   barN)bazr  r  c           
      C   sj  |}t ddd|d d}t||d }|||}|j|d ks#J |d}tj|d	d
}t||d }|||}|j|d ksFJ ||d }t||d }|||}|j|d ksdJ |tj	tj
fv rtjdd|d d}t||d }|||}|j|d ksJ |tj	tj
fv r|d}	t|	|d }|||	}|j|d ksJ d S d S )Nz1949-06-07 03:00:00Hr0   r   )r   r   rX   r:   r.   z
US/Centralinferr   )startr   rX   category)r   r   r=   rX   tz_localizer   DatetimeIndexr   r?   r   r   interval_ranger   )
rA   r  r   rF   r   rc   rH   tdiiicidxr   r   r   test_ser_cmp_result_names  s4   






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 d    n1 s1w   Y  t j|d d< t	|| t
g d}t
g d}t
g d}t||k| t||k| d S )	Nr   rU   rh   )invalidOr   )FTFFFF)r    r!   r   r`   r   nangtrn   r   r1   r@   r   rb   )rA   r   r   rH   rI   sr   rd   r   r   r   test_comparisons  s   z%TestSeriesComparison.test_comparisonsc                 C   s   t tddd}t tddd}t g ddd}t tddd}ttd}ttd}|dk r4J |dk|dk k sAJ d|k rIJ |dkd sQJ d|kd sYJ d|kd raJ ||k siJ ||k rqJ |t|k s{J ||k sJ ||k sJ ||k ||kk sJ ||k ||kk sJ ||k rJ ||k rJ ||k rJ ||k rJ ||k sJ ||k sJ ||k rJ ||k rJ ||k ||kk sJ ||k ||kk sJ ||k ||kk sJ ||k ||kk sJ d	}tjt|d
 ||k  W d    n	1 s4w   Y  tjt|d
 ||k  W d    n	1 sPw   Y  tjt|d
 ||k W d    n	1 slw   Y  tjt|d
 ||k W d    d S 1 sw   Y  d S )Nr   r
  r   object)rq   rr   ccacbrq   r    can only compare equality or notr   )r   r   r   ri   r   r   r   )rA   rq   rr   r   r   r   fr   r   r   r   test_categorical_comparisons  sX   



$z1TestSeriesComparison.test_categorical_comparisonsc                 C   s  t ttd}d}tjt|d |dk W d    n1 s w   Y  t ttddd}tjt|d |dk W d    n1 sEw   Y  t ttddd}d}tjt|d |d	k  W d    n1 slw   Y  tjt|d |d	k W d    n1 sw   Y  tjt|d d	|k  W d    n1 sw   Y  tjt|d d	|k W d    n1 sw   Y  t|d	kt g d
 t|d	kt g d d S )Nr   r  r   rr   F)orderedTz1Invalid comparison between dtype=category and strr   r  )TTT)r   r   r   r   r   r   r1   rb   )rA   catr   r   r   r   5test_unequal_categorical_comparison_raises_type_error  s2   





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|| d S )N)r:   r:   )r:   r.   FT)r   r   r   )rA   r  rH   rI   r   r   r   test_comparison_tuples'  s(   z+TestSeriesComparison.test_comparison_tuplesc                 C   sD   t tdgtddgg}|tdgk}t ddg}t|| d S )Nr:   r.   TF)r   	frozensetr1   rb   rA   rc   rH   rI   r   r   r   test_comparison_frozensetF  s   z.TestSeriesComparison.test_comparison_frozensetc                 C   s   t tdddtd}tj|d d d< |d }|||}|| ||j}|tj	u r4|
dt}n|
dt}t|| d S )	Nr   r   r   r   r.   r0   TF)r   r
   r  r    r`   dropnarl   rj   r?   r   ra   r   r   r1   rb   )rA   r   rc   valrH   rI   r   r   r   "test_comparison_operators_with_nasM  s   

z7TestSeriesComparison.test_comparison_operators_with_nasc                 C   sP   t g dg dtd}g d}t|jdk|sJ t|jdk |s&J d S )N)rU   r]   r0   rz      r   )TTFTTr0   )r   floatr1   equalContentsrj   )rA   r'   rI   r   r   r   test_ne^  s   zTestSeriesComparison.test_nezleft, rightrT   ABCr*   r   r   ABD)r.   r.   r.   r.   ABCDc                 C   sp  d|j  d}|tur| }| }tjt|d ||k W d    n1 s)w   Y  tjt|d ||k W d    n1 sDw   Y  tjt|d ||k W d    n1 s_w   Y  tjt|d ||k W d    n1 szw   Y  tjt|d ||k  W d    n1 sw   Y  tjt|d ||k  W d    d S 1 sw   Y  d S )Nz%Can only compare identically-labeled z objectsr   )rO   r   r   r   r   r   )rA   r   r   frame_or_seriesr   r   r   r   test_comp_ops_df_compatd  s,   





"z,TestSeriesComparison.test_comp_ops_df_compatc                 C   s0   t g d}|dk}t g d}t|| d S )N)	IntervalA	IntervalB	IntervalCr1  )TFFr   r#  r   r   r   $test_compare_series_interval_keyword  s   z9TestSeriesComparison.test_compare_series_interval_keywordN)rO   rP   rQ   r   r   r   r   r  r  r  r  r  r   r!  r$  r'  r+  r   r   r0  r4  r   r   r   r   r   q  s:    

	
%8
r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestTimeSeriesArithmeticc           	      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sWJ t|| d S )
N1/1/2011d   r  utc)r   r   r   Z   z
US/Easternry   zEurope/Berlin)r   r    r!   r"   r   r   r   r   rj   r   pytzr   r1   rb   )	rA   r   permser1ser2rH   uts1uts2rI   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 d    n1 s0w   Y  tjt	|d ||  W d    d S 1 sLw   Y  d S )	Nr6  r   r  r   ry   r8  z0Cannot join tz-naive with tz-aware DatetimeIndexr   )
r   r   r    r!   r   r#   r  r   r   	Exception)rA   r   rc   r   r   r   r   r   "test_series_add_aware_naive_raises  s   


"z;TestTimeSeriesArithmetic.test_series_add_aware_naive_raisesc                 C   sH   t tddd}tjjdd}|| }t tg d}t|| d S )Nz
2012-01-01rU   r   rz   )days)z
2011-12-26z
2011-12-27z
2011-12-28)r   r   r   offsets
DateOffsetto_datetimer1   rb   )rA   rC   offsetrH   rI   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 )Nr      r   ry   r0   c                 S   s   g | ]}|  qS r   r   ).0r*   r   r   r   
<listcomp>      zWTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex.<locals>.<listcomp>)
r   r   r    r!   r   r   rj   
_with_freqr1   rb   )rA   r   r'   ts_slicets2rH   r   rI   r   r   r   *test_align_date_objects_with_datetimeindex  s   zCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindexN)rO   rP   rQ   r@  rB  rH  rP  r   r   r   r   r5    s
    	r5  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 td|d d}t td|d d}|jd}|dv }	|	o&|d}
||}|r9|	r1d S t|||}n(|
rA|tu rAtnd }d}tj	||d	 |||}W d    n1 s\w   Y  |tu rp|
rpt
|tsnJ d S t
|t swJ |tt fv r|j|d
 u s|j|d
 ksJ d S d S |j|d u s|j|d ksJ d S d S )Nr   r   rW   r:   _)andrandxorrxororrorr;   z*operating as a set operation is deprecatedr   r.   )r   rm   rO   strip
startswithr>   r   FutureWarningr1   assert_produces_warning
isinstancerX   )rA   rS  rR  r  all_binary_operatorsrF   r   r   rX   
is_logicalis_rlogicalrH   warnr   r   r   r   test_series_ops_name_retention  s.   ((z3TestNamePreservation.test_series_ops_name_retentionc                 C   s  || }|j |j ksJ ||}|j |j ksJ ||d d  }|j |j ks)J | }d|_ || }|j d u s;J ||}|j d u sGJ g d}|dd |D  }|D ]*}| }t|||}|j |j kskJ | }d|_ t|||}|j d u sJ qVd S )Nzsomething else)r4   r5   r6   r   r8   r7   modr9   c                 S   s   g | ]}d | qS )r;   r   )rJ  rF   r   r   r   rK    rL  zGTestNamePreservation.test_binop_maybe_preserve_name.<locals>.<listcomp>changed)rX   r6   r   r4   r>   )rA   r   rH   cpr   rF   rc   r   r   r   test_binop_maybe_preserve_name  s.   

z3TestNamePreservation.test_binop_maybe_preserve_namec                 C   s   |d }|j |j ksJ d S r-   rW   )rA   r   rH   r   r   r   test_scalarop_preserve_name  s   z0TestNamePreservation.test_scalarop_preserve_nameN)rO   rP   rQ   r   r   r   r   tupler    arrayr   r   r   rd  ri  rj  r   r   r   r   rQ    s    $ rQ  c                   @   s"   e Zd Zejdddd ZdS )TestInplaceOperationsz)dtype1, dtype2, dtype_expected, dtype_mul))Int64rn  rn  rn  )r)  r)  r)  r)  )rn  r)  Float64ro  )rn  ro  ro  ro  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 )Nr:   r   r.   rU   r   )rA   dtype1dtype2dtype_expected	dtype_mulr<  r=  rI   r   r   r   test_series_inplace_ops  s   z-TestInplaceOperations.test_series_inplace_opsN)rO   rP   rQ   r   r   r   rt  r   r   r   r   rm    s    	rm  c                 C   s  |}t |dk r| jtjjdd tj|jd< |d k}|j	d r$J |j	d r+J |d k}|j	d s6J |j	d s=J d |k}|j	d rHJ |j	d rOJ d |k}|j	d sZJ |j	d saJ t
|jskt|jrd}tjt|d d |k W d    n1 sw   Y  tjt|d |d k W d    d S 1 sw   Y  d S d |k}|j	d rJ |j	d rJ |d k }|j	d rJ |j	d rJ d S )Nr:   z%Test doesn't make sense on empty data)reasonr   zInvalid comparisonr   )r#   node
add_markerr   r   xfailr    r`   r   iatr   r   r   r   r   )r   series_with_simple_indexrC   rH   r   r   r   r   test_none_comparison:  s@   

"r{  c                  C   s   t tdtjjtdtdddggg d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gd d d d f  | }t g dtjjg dg ddd}t	
|| d S )N   abxyr:   r.   )r}  r~  num)r  ry   c                 S   s   g | ]}d | qS )  r   )rJ  rw   r   r   r   rK  s  rL  z;test_series_varied_multiindex_alignment.<locals>.<listcomp>r0   r  rq   )r  i  i  i  ))r*   r:   rq   )r*   r.   rq   )rg   r:   rq   )rg   r.   rq   )r~  r  r}  )r   rm   r   
MultiIndexfrom_productr   loc
IndexSlicefrom_tuplesr1   rb   )r   r   rH   rI   r   r   r   'test_series_varied_multiindex_alignmentj  s&   $r  )*r   r   r?   numpyr    r   r:  pandas._libs.tslibsr   pandas.core.dtypes.commonr   r   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingr1   pandas.corer   r   pandas.core.computationr   r   fixturer   r%   r&   r   r   r   r5  rQ  rm  r{  r  r   r   r   r   <module>   s:    $	
m  6  &=L0