
    d~                        d dl mZmZmZ d dlm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  d d	l!m"Z"  e	j#        d
d dgddg          d             Z$d Z% G d d          Z& G d d          Z' G d d          Z( G d d          Z) G d d          Z* G d d          Z+ G d d          Z,d Z-d  Z.d! Z/dS )"    )date	timedeltatimezone)DecimalN)IncompatibleFrequency)is_datetime64_dtypeis_datetime64tz_dtype)CategoricalIndexSeries	Timedeltabdate_range
date_rangeisna)nanopsops)expressions)NUMEXPR_INSTALLEDTi@B numexprpython)autouseparamsidsc              #   n   K   t           j        }| j        t           _        | j        V  |t           _        d S N)expr_MIN_ELEMENTSparam)requestr   s     _/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/series/test_arithmetic.pyswitch_numexpr_min_elementsr!   &   s4      &M D
-&D    c                     |                      t          j                            t	          |                               S r   )takenprandompermutationlen)objs    r    _permuter*   .   s*    88BI))#c((33444r"   c            	       "   e Zd Zej                            dd d dfd d dfd d d	fd
 d d	fg          ej                            dg d          d                         Zd Z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             ZefdZe                    eeef           e                    eeef           aej                            de          d             ZdS )TestSeriesFlexArithmetictsc                     | S r    xs    r    <lambda>z!TestSeriesFlexArithmetic.<lambda>6       q r"   c                     | dz  S N   r/   r0   s    r    r2   z!TestSeriesFlexArithmetic.<lambda>6   s
    AE r"   Fc                     | S r   r/   r0   s    r    r2   z!TestSeriesFlexArithmetic.<lambda>7   r3   r"   c                     | d d d         S r5   r/   r0   s    r    r2   z!TestSeriesFlexArithmetic.<lambda>7   s    AcccF r"   c                     | S r   r/   r0   s    r    r2   z!TestSeriesFlexArithmetic.<lambda>8   r3   r"   c                     dS )N   r/   r0   s    r    r2   z!TestSeriesFlexArithmetic.<lambda>8   s    A r"   Tc                 (    t          j                    S r   tmmakeFloatSeriesr0   s    r    r2   z!TestSeriesFlexArithmetic.<lambda>9   s    r)++ r"   c                 (    t          j                    S r   r=   r0   s    r    r2   z!TestSeriesFlexArithmetic.<lambda>9   s    r7I7K7K r"   opname)addsubmulfloordivtruedivpowc                    t          j                                        d          } |d         |          } |d         |          }|d         }t          t          |          }t          t
          |          } |||          }	 |||          }
t          j        |	|
           |rGt          t          d|z             } |||          }	 |||          }
t          j        |	|
           d S d S )Nr-   r      r6   r)r>   makeTimeSeriesrenamegetattrr   operatorassert_almost_equal)selfrA   r-   tserseriesothercheck_reverseopaltresultexpectedrops               r    test_flex_method_equivalencez5TestSeriesFlexArithmetic.test_flex_method_equivalence3   s      ""))$//At1d1VV$$h''FE""3vu%%
vx000 	5&#,//CS''Fs5&))H"6844444		5 	5r"   c                      G fddt                     |}t          t           |          } g dd          }d|_         ||d          }|j        dk    sJ d S )Nc                   0    e Zd ZdgZe fd            ZdS )ZTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeriesr1   c                     S r   r/   )rP   MySeriess    r    _constructorzgTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeries._constructorX   s    r"   N)__name__
__module____qualname__	_metadatapropertyr`   )r_   s   r    r_   r]   U   s?        I        X     r"   r_   rI   r6      testname*   rI   )r   rM   r1   )rP   all_arithmetic_operatorsrA   rU   mrW   r_   s         @r    /test_flex_method_subclass_metadata_preservationzHTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservationS   s    	  	  	  	  	  	  	 v 	  	  	  *VV$$HYYYV,,,Aqx2~~~~~~r"   c                     t          ddt          j        dddg          }|                    d                              d          }|                    dd          }t          j        ||           d S )Nr   rI   rg      r;   r6   
fill_value)r   r%   nanfillnarB   r>   assert_series_equal)rP   serexpress       r    test_flex_add_scalar_fill_valuez8TestSeriesFlexArithmetic.test_flex_add_scalar_fill_valuec   si    aBFAq!,--jjmm""ggaAg&&
sC(((((r"   rI   )rB   rC   rD   rG   rF   rE   r   rJ   c                 @     t          t          |          ||           S r   )rM   rN   )r1   yrU   s      r    r2   z!TestSeriesFlexArithmetic.<lambda>r   s    %:WXr%:%:1a%@%@ r"   zop, equiv_op, fvc                    dd}t          t          j        dddt          j        gt          j        d                    }t          t          j        dt          j        d	t          j        d
gt          j        d                    } |||          } |||          }t	          j        ||            ||||||            |||d           d S )Nr   c           	         |j                             |j                   }|                    |          }|                    |          }t          |          }t          |          }g }t	          t          |                    D ]}	t          j        d          5  ||	         rZ||	         r,|                    t          j	                   	 d d d            U|                     ||||	                              n||	         rZ||	         r,|                    t          j	                   	 d d d            |                     |||	         |                     n+|                     |||	         ||	                              d d d            n# 1 swxY w Y   ! | |||          }
t          ||          }t          j        |
|           d S )Nignore)allrq   )indexunionreindexr   ranger(   r%   errstateappendrs   r   r>   ru   )methrU   abrr   	exp_indexamaskbmask
exp_valuesirW   rX   s               r    _check_fillzDTestSeriesFlexArithmetic.test_operators_combine.<locals>._check_fillx   s:   ag..I		)$$A		)$$AGGEGGEJ3y>>** : :[X... : :Qx : 8 %&--bf555$	: : : : : : :
 #))""Z1*>*>????q : 8 %&--bf555$: : : : : : : #))""QqT:*>*>????"))""QqT1Q4..999: : : : : : : : : : : : : : : T!Q:666Fj)44H"6844444s    1FAF=AFF	!F	      ?g       @g      @r;   r   rI   rg         @   rq   axis)r   )r   r%   rs   aranger>   ru   )	rP   rU   equiv_opfvr   r   r   rW   rw   s	            r    test_operators_combinez/TestSeriesFlexArithmetic.test_operators_combinev   s    	5 	5 	5 	58 BFCc262")A,,GGGBFArvq"&#6billKKKAqhq!nn
vs+++B!Q26666
1aar"   N)ra   rb   rc   pytestmarkparametrizerZ   rn   ry   r   divrN   rF   rdivr   rtruedivpairingsrU   r   rM   loplequivrY   requivr   r   r/   r"   r    r,   r,   2   s       [[//51[**E2[++t,++-K-KTR		
  [EEE 5 5  5(   ) ) ) X-q1FKq3QRHA + +gfb!!2&&gfcBh''!#@@@fb)***fb)****[/::% % ;:% % %r"   r,   c                   t   e Zd Zd Zej                            ddddgddgfdddgd	d
gfg          d             Zd Zej                            dd e	d          g          d             Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                            dddg          d             Zd  ZdS )!TestSeriesArithmeticc                 (   t          j        ddd          }t          t          j                            t          |                    |          }||d d d         z   }||z   }t          j        |j        dd d<   t          j
        ||           |t          |d d d                   z   }t          j
        ||           d}t          j        t          |	          5  ||                    d
d          z    d d d            d S # 1 swxY w Y   d S )N1/1/2000z1/1/2010Afreqr   r6   rI   z4Input has different freq=D from Period\(freq=A-DEC\)matchDend)how)pdperiod_ranger   r%   r&   randnr(   rs   ilocr>   ru   r*   r   raisesr   asfreq)rP   rngr-   rW   rX   msgs         r    !test_add_series_with_period_indexz6TestSeriesArithmetic.test_add_series_with_period_index   sJ   oj*3???BIOOCHH--S999b1g7 fadd
vx000hr##A#w'''
vx000F]0<<< 	+ 	+3E****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   DDDz%target_add,input_value,expected_value!helloworldzhello!zworld!rm   hellomworldmc                 v    t          |          }||z   }t          |          }t          j        ||           d S r   r   r>   ru   )rP   
target_addinput_valueexpected_valuer   rW   rX   s          r    test_string_additionz)TestSeriesArithmetic.test_string_addition   s@     ;Z.))
vx00000r"   c                 :   t          dddt          j        gg d          }t          dt          j        dt          j        gg d          }|                    |          }t          ||          }t	          j        |d         |d                    t	          j        |d         |d                    |                    |          }t          ||          }t	          j        |d         |d                    t	          j        |d         |d                    d S )NrI   )r   r   cdr   r6   )r   r   r   er   )r   r%   rs   divmodr>   ru   rdivmod)rP   r   r   rW   rX   s        r    test_divmodz TestSeriesArithmetic.test_divmod   s    Aq!RV$,@,@,@AAAArvq"&)1E1E1EFFF!!Q<<
vay(1+666
vay(1+6661!Q<<
vay(1+666
vay(1+66666r"   r   N	   c                     t          t          dd                    }t          d|          }d}t          j        t          |          5  ||z   d d d            d S # 1 swxY w Y   d S )NrI   
   foor   z4not all arguments converted during string formattingr   )r   r   r   r   	TypeError)rP   r   s1s2r   s        r    test_series_integer_modz,TestSeriesArithmetic.test_series_integer_mod   s     E!RLL!!E'''D]9C000 	 	GG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA#&A#c                     t          ddgddg          }t          ddgddg          }||z   }t          ddt          j        gg d          }t          j        ||           d S )NrI   r6   r   r         )rI   rI   r6   )r   r%   rs   r>   ru   )rP   r   r   rW   rX   s        r    test_add_with_duplicate_indexz2TestSeriesArithmetic.test_add_with_duplicate_index   sw    QF1a&)))RHQF+++b2r26*)))<<<
vx00000r"   c           	      \   t          t          d          t          d          gt          ddd          t          ddd          g          }||                    d          z   }|                    d          |z   }t	          |d                   sJ t	          |d                   sJ d S )Nz1.3z2.3i  rI   r6   r   r   )r   r   r   shiftr   )rP   rv   rW   result2s       r    test_add_na_handlingz)TestSeriesArithmetic.test_add_na_handling   s    U^^WU^^,T$15E5EtDRSUVGWGW4X
 
 
 syy||#))A,,$F1IGAJr"   c                 
   t          g t          g           t          j                  }||z   }t          j        |                                          sJ ||                                z   }t          |          dk    sJ d S )N)r   dtyper   )r   r   r%   float64isnanr   copyr(   )rP   datetime_seriesemptyrW   s       r    test_add_corner_casesz*TestSeriesArithmetic.test_add_corner_cases   sy    rr"*=== 5(x##%%%%%%6{{ar"   c                     |                     t                    d d         }||z   }t          |j        d d         |j        z   |j        d d         d          }t          j        |d d         |           d S )Nr-   r   rj   )astypeintr   valuesr   r>   ru   )rP   r   int_tsaddedrX   s        r    test_add_float_plus_intz,TestSeriesArithmetic.test_add_float_plus_int   s     '',,SbS1&("3B3'&-7!',
 
 

 	uSbSz844444r"   c                     t          g g t          j                  }t          ddi          }t          j        ||z  t          t          j        gdg                     d S )Nr   r1   g        r   )r   r%   int32r>   ru   rs   )rP   r   r   s      r    test_mul_empty_int_corner_casez3TestSeriesArithmetic.test_mul_empty_int_corner_case  sY    B"(+++S#J
rBwxu(E(E(EFFFFFr"   c                    t          t          ddd                    }t          j        |j        d<   |d d d         }t          t          d          t          d          t          j        g          }||z
  }t          j	        ||           t          |d          }|
                                |
                                z
  d         }t          j	        ||           d S )	Nz2012-1-1rg   r   periodsr   r6   r   ri   )r   r   r%   rs   r   r   r   NaTr>   ru   to_frame)rP   dtdt2rX   rW   s        r    test_sub_datetimelike_alignz0TestSeriesArithmetic.test_sub_datetimelike_align  s     Jz13???@@V
2h9Q<<1rv>??r
vx000(+++,,..2;;==0!4
vx00000r"   c                     t          ddd          }|                    d          }t          d|          }t          d|          }||z   |j        |u sJ |j        |u sJ d S )Nz
2016-01-01r   CET)r   tzUTCr   )r   
tz_convertr   r   )rP   dtidti_utcrv   ser_utcs        r    test_alignment_doesnt_change_tzz4TestSeriesArithmetic.test_alignment_doesnt_change_tz  s    re<<<..''Rs###7+++ 	gyC}''''''r"   c                 P   t          g d          }t          d|          }t          d|d d                   }||z  }dgdz  dgdz  z   d	gz   }t          j        ||j        
          }dgdz  t
          j        gz   }t          ||          }t          j        ||           d S )N)3z53r  LoJGr  r  N503r6   r   r   r  rp   r  r   r  )
categoriesr      )	r
   r   r   CategoricalIndexr  r%   rs   r>   ru   )rP   catser1ser2rW   r   r   rX   s           r    test_alignment_categoricalz/TestSeriesArithmetic.test_alignment_categorical#  s    JJJKKas###as3B3x(((HqLF8a</6(:	'	cnMMM	URZ26(*
*i00
vx00000r"   c                    g d}t          t          j        ddd          |          }t          t          j        dd          |          }||z
  }t          dg d          }t          j        ||           t          t          dd	          |          }t          t          d
d	          |          }||z
  }t          t          d          g d          }t          j        ||           d S )N)r6   r6   rg   rg   rp   rI   r   int64r   r   r;   z20130101 09:00:00r   20130101z9 hours)r   r%   r   r>   ru   r   r   )rP   r   rv   rS   rW   rX   s         r    $test_arithmetic_with_duplicate_indexz9TestSeriesArithmetic.test_arithmetic_with_duplicate_index1  s     RYq!73335AAAry'222%@@@u!???333
vx000 Z 3Q???uMMMz*a888FFFu)I..oooFFF
vx00000r"   c                     t          dt          j        gd          }t          ddgd          }||z  }t          dt          j        gd          }t          j        ||           d S )Nr   floatr   rI   Int64Float64)r   r%   rs   r   NAr>   ru   rP   r	  r
  rW   rX   s        r    'test_masked_and_non_masked_propagate_naz<TestSeriesArithmetic.test_masked_and_non_masked_propagate_naC  sj    q"&k111q!fG,,,1be*I666
vx00000r"   c                 8   t          dt          j        ddgd          }t          ddt          j        dg          }||z  }t          dt          j        t          j        dgd          }t          j        ||           ||z  }t          j        ||           d S )N   r;   rp   r  r   r   r  )r   r   r  r%   rs   r>   ru   r  s        r    +test_mask_div_propagate_na_for_non_na_dtypez@TestSeriesArithmetic.test_mask_div_propagate_na_for_non_na_dtypeK  s    r25!Q'w777r1bfa())3ruc2)DDD
vx000
vx00000r"   z
val, dtype)rg   r  )g      @r  c                     t          g dd          }|dd |gz   }t          dd d|z   g|          }t          j        ||           dd |g|z   }t          j        ||           d S )N)rI   Nrg   r  r   rI   r6   rg   r   )rP   valr   rv   rW   rX   s         r    test_add_list_to_masked_arrayz2TestSeriesArithmetic.test_add_list_to_masked_arrayV  s     \\\1114~%1dAG,E:::
vx000T3#%
vx00000r"   c                    |j         j        j        dk    rt          rt          nd }t          g dd          }t          j        |          5  |g dz   }d d d            n# 1 swxY w Y   t          g dd          }t          j        ||           t          j        |          5  g d|z   }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   )TNFbooleanr   )TNT)	nodecallspecidr   UserWarningr   r>   assert_produces_warningru   )rP   r   warningrv   rW   rX   s         r    %test_add_list_to_masked_array_booleanz:TestSeriesArithmetic.test_add_list_to_masked_array_booleana  sy    |$'9449J4 K 	
 (((	:::'00 	. 	.----F	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.,,,I>>>
vx000'00 	. 	.'''#-F	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.
vx00000s$   A!!A%(A%(B<<C C )ra   rb   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r&  r/   r"   r    r   r      s       + + +  [/7G$x&:;7G$x&:;	
 1 1 17 7 7 [WtUU1XX&677  871 1 1          	5 	5 	5G G G
1 1 1 ( ( (1 1 11 1 1$1 1 1	1 	1 	1 [\L:J+KLL1 1 ML11 1 1 1 1r"   r   c                   t   e Zd Zej                            dg d          d             Z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             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             Z	dS )TestSeriesFlexComparisonr   )r   Nr   c                 8   t          t          j                            d                    }t          t          j                            d                    } t	          ||j                  ||          } |||          }t          j        ||           d S )Nr   r   )r   r%   r&   r   rM   ra   r>   ru   )rP   r   comparison_opleftrightrW   rX   s          r    test_comparison_flex_basicz3TestSeriesFlexComparison.test_comparison_flex_basicx  s    bioob))**ryr**++6}566u4HHH =u--
vx00000r"   c                 b   t          t          j                            d                    }t          t          j                            d                    }d}t	          j        t          |          5   t          ||j                  |d           d d d            d S # 1 swxY w Y   d S )Nr   zNo axis named 1 for object typer   rI   r   )	r   r%   r&   r   r   r   
ValueErrorrM   ra   )rP   r*  r+  r,  r   s        r    test_comparison_bad_axisz1TestSeriesFlexComparison.test_comparison_bad_axis  s    bioob))**ryr**++/]:S111 	A 	A1GD-011%a@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   6!B$$B(+B(z
values, op)FFTFeq)TTFTnele)FFFFlt)FTTFge)FTFFgtc                    t          g dt          d                    }t          g dt          d                    } t          ||          |          }t          |t          d                    }t          j        ||           d S )NrI   rg   r6   abcr   r6   r6   r6   bcdabcdr   listrM   r>   ru   )rP   r   rU   r+  r,  rW   rX   s          r    test_comparison_flex_alignmentz7TestSeriesFlexComparison.test_comparison_flex_alignment  s     iiitE{{333yyyU444"r""5))&V555
vx00000r"   zvalues, op, fill_value)FFTTr6   )TTFFr   )FFFT)TTTFc                 "   t          g dt          d                    }t          g dt          d                    } t          ||          ||          }t          |t          d                    }t          j        ||           d S )Nr8  r9  r   r:  r;  rq   r<  r=  )rP   r   rU   rr   r+  r,  rW   rX   s           r    #test_comparison_flex_alignment_fillz<TestSeriesFlexComparison.test_comparison_flex_alignment_fill  s     iiitE{{333yyyU444"r""5Z@@@&V555
vx00000r"   N)
ra   rb   rc   r   r   r   r-  r0  r?  rA  r/   r"   r    r(  r(  w  s}       [V%7%7%7881 1 981A A A [((($/&&&-((($/)))40'''.((($/	

 
1 1
 
1 [ '''q1'''q1'''q1((($2&&&a0'''q1	

 
1 1
 
1 1 1r"   r(  c                   4   e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Z	d	 Z
d
 Zd Zd Zd Zd Zd Zej                            d eg d ed          d           eg d ed          d          f eg d ed          d           eg d ed          d          fg          d             Zd ZdS )TestSeriesComparisonc                 x   t          g d          }t          ddg          }d}t          j        t          |          5  ||k      d d d            n# 1 swxY w Y   t          ddg          }t          g d          }t          j        t          |          5  ||k     d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r   r   z'only compare identically-labeled Seriesr   rI   r6   )r6   rg   rp   )r   r   r   r/  )rP   r   r   r   s       r     test_comparison_different_lengthz5TestSeriesComparison.test_comparison_different_length  s@   ???##C:7]:S111 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Aq6NN999]:S111 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$    AAAB//B36B3rA   )r1  r2  r6  r4  r5  r3  c                     t          g dt          d                    }d} t          ||          |          j        }t	          j        d          }||k    sJ d S )Nr8  rg   r   r6   bool)r   r   rM   dtypesr%   r   )rP   rA   rv   constrW   rX   s         r    test_ser_flex_cmp_return_dtypesz4TestSeriesComparison.test_ser_flex_cmp_return_dtypes  sg     YYYeAhh///%f%%e,,38F##!!!!!!r"   c                     t          g dt          d                    }|j        d d         }d} t          ||          |          j        }t          j        d          }||k    sJ d S )Nr8  rg   r   r   r6   rH  )r   r   r   rM   rI  r%   r   )rP   rA   rv   r   rJ  rW   rX   s          r    %test_ser_flex_cmp_return_dtypes_emptyz:TestSeriesComparison.test_ser_flex_cmp_return_dtypes_empty  sv     YYYeAhh///!'''..58F##!!!!!!r"   names))NNN)r   barN)bazrP  rP  c                 X   |}t          ddd|d                   }t          |                              |d                   } |||          }|j        |d         k    sJ |                    d          }t          j        |d	
          }t          |                              |d                   } |||          }|j        |d         k    sJ ||                    d          z
  }t          |                              |d                   } |||          }|j        |d         k    sJ |t          j	        t          j
        fv rdt          j        dd|d                   }t          |                              |d                   } |||          }|j        |d         k    sJ |t          j	        t          j
        fv r\|                    d          }	t          |	                              |d                   } |||	          }|j        |d         k    sJ d S d S )Nz1949-06-07 03:00:00Hr;   r   )r   r   rj   rI   r6   z
US/Centralinferr   )startr   rj   category)r   r   rL   rj   tz_localizer   DatetimeIndexr   rN   r1  r2  interval_ranger   )
rP   rN  r*  rU   r   rv   rW   tdiiicidxs
             r    test_ser_cmp_result_namesz.TestSeriesComparison.test_ser_cmp_result_names  s   
 .S!%PQ(SSSSkk  q**C{eAh&&&& ool++s111Skk  q**C{eAh&&&& CIIaLL Skk  q**C{eAh&&&& (+x{+++"AE!HEEEB**##E!H--CRR[[F;%(**** (+x{+++::j))D,,%%eAh//CRT]]F;%(**** ,+
 +*r"   c                 p   t           j                            d          }t           j                            d          }t           j        |d d<   t	          j        ||          }t          j        d          5  ||k                        d          }d d d            n# 1 swxY w Y   t           j        |d d<   t          j	        ||           t          g d          }t          g d          }t          g d          }t          j        ||k    |           t          j        ||k    |           d S )	Nr   rg   r~   )invalidOrE  )FTFFFF)r%   r&   r   rs   r   nangtr   r   r>   rO   r   ru   )rP   r+  r,  rW   rX   sr   rw   s           r    test_comparisonsz%TestSeriesComparison.test_comparisons  sX   yr""	##6RaRdE**[*** 	2 	2u,,S11H	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2v!
vx000???##((()) ***++
qBw,,,
rQw,,,,,s   :B  B$'B$c                    t          t          d          d          }t          t          d          d          }t          g dd          }t          t          d          d          }t          t          d                    }t          t          d                    }|dk                                    rJ |dk    |dk     k                                    sJ d|k                                    rJ |dk    d         sJ d|k    d         sJ d|k    d         rJ ||k                                    sJ ||k                                    rJ |t          |          k                                    sJ ||k                                    sJ ||k                                    sJ ||k     ||k    k                                    sJ ||k     ||k    k                                    sJ ||k                                    rJ ||k                                    rJ ||k                                    rJ ||k                                    rJ ||k                                    sJ ||k                                    sJ ||k                                    rJ ||k                                    rJ ||k     ||k    k                                    sJ ||k     ||k    k                                    sJ ||k     ||k    k                                    sJ ||k     ||k    k                                    sJ d	}t	          j        t          |
          5  ||k      d d d            n# 1 swxY w Y   t	          j        t          |
          5  ||k      d d d            n# 1 swxY w Y   t	          j        t          |
          5  ||k     d d d            n# 1 swxY w Y   t	          j        t          |
          5  ||k     d d d            d S # 1 swxY w Y   d S )Nr9  rU  r   object)r   r   ccacbr   r    can only compare equality or notr   )r   r>  r
   r   r   r   r   )rP   r   r   r   r   r   fr   s           r    test_categorical_comparisonsz1TestSeriesComparison.test_categorical_comparisons  s6    4;;j1114;;h///###84444;;h///U$$U$$ H>>#####cSk)..000001H>>#####S!}q!}1Ha=    Q||~~F<<>>!!!T!WW!!#####Q||~~Q||~~6Q',,.....6Q',,.....F<<>>!!!F<<>>!!!F<<>>!!!F<<>>!!! Q||~~Q||~~F<<>>!!!F<<>>!!!q&	a1f%**,,,,,q&	a1f%**,,,,,q&	a1f%**,,,,,q&	a1f%**,,,,, 1]9C000 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   5NNN.OOO'O::O>O> P44P8;P8c                 X   t          t          t          d                              }d}t          j        t
          |          5  |dk     d d d            n# 1 swxY w Y   t          t          t          d          d                    }t          j        t
          |          5  |dk     d d d            n# 1 swxY w Y   t          t          t          d          d                    }d}t          j        t
          |          5  |d	k      d d d            n# 1 swxY w Y   t          j        t
          |          5  |d	k     d d d            n# 1 swxY w Y   t          j        t
          |          5  d	|k      d d d            n# 1 swxY w Y   t          j        t
          |          5  d	|k     d d d            n# 1 swxY w Y   t          j        |d	k    t          g d
                     t          j        |d	k    t          g d                     d S )Nr9  rh  r   r   F)orderedTz1Invalid comparison between dtype=category and strr   r`  )TTT)r   r
   r>  r   r   r   r>   ru   )rP   r  r   s      r    5test_unequal_categorical_comparison_raises_type_errorzJTestSeriesComparison.test_unequal_categorical_comparison_raises_type_errorD  sq   [e--..0]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 [ee<<<==]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 [ed;;;<<A]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	scz62G2G2G+H+HIII
scz62D2D2D+E+EFFFFFsl   AA!A+B>>CCD$$D(+D(
EE!$E!FFF<GGGc                 Z   t          ddg          }|dk    }t          ddg          }t          j        ||           |dk    }t          ddg          }t          j        ||           |dk    }t          ddg          }t          j        ||           |dk    }t          ddg          }t          j        ||           t          ddg          }|dk    }t          ddg          }t          j        ||           |dk    }t          ddg          }t          j        ||           d S )N)rI   rI   )rI   r6   FT)r   r   r   )rP   rb  rW   rX   s       r    test_comparison_tuplesz+TestSeriesComparison.test_comparison_tuplesc  s<    FF#$$f5$-((
vx000f4-((
vx000f5%.))
vx000f4,''
vx000FF#$$f4,''
vx000f5%.))
vx00000r"   c                     t          t          dg          t          ddg          g          }|t          dg          k    }t          ddg          }t          j        ||           d S )NrI   r6   TF)r   	frozensetr>   ru   rP   rv   rW   rX   s       r    test_comparison_frozensetz.TestSeriesComparison.test_comparison_frozenset  sd    inniA&7&7899	1#&4-((
vx00000r"   c                    t          t          dd          t                    }t          j        |d d d<   |d         } |||          } ||                                |                              |j                  }|t          j	        u r.|
                    d                              t                    }n-|
                    d                              t                    }t          j        ||           d S )	Nr   r   r  r   r6   r;   TF)r   r   re  r%   rs   dropnar   r   rN   r2  rt   r   rH  r>   ru   )rP   r*  rv   r  rW   rX   s         r    "test_comparison_operators_with_nasz7TestSeriesComparison.test_comparison_operators_with_nas  s    [R888GGG6CCaC !fsC(( =s33;;CIFFHK''t,,33D99HHu--44T::H
vx00000r"   c                     t          g dg dt                    }g d}t          j        |j        dk    |          sJ t          j        |j        dk     |          sJ d S )N)rg   rp   r;   r      r   )TTFTTr;   )r   r  r>   equalContentsr   )rP   r-   rX   s      r    test_nezTestSeriesComparison.test_ne  sp    OOO___EBBB222Ax88888"(a- 0(;;;;;;;r"   zleft, rightrf   ABCr1   r   r:  ABD)r6   r6   r6   r6   ABCDc                 D   |t           ur4d|j         d}|                                }|                                }nd|j         d}t          j        t
          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t
          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t
          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t
          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t
          |          5  ||k      d d d            n# 1 swxY w Y   t          j        t
          |          5  ||k      d d d            d S # 1 swxY w Y   d S )Nz@Can only compare identically-labeled \(both index and columns\) z objectsz%Can only compare identically-labeled r   )r   ra   r   r   r   r/  )rP   r+  r,  frame_or_seriesr   s        r    test_comp_ops_df_compatz,TestSeriesComparison.test_comp_ops_df_compat  s3     &((6"+6 6 6  ==??DNN$$EE8P    
 ]:S111 	 	EMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	TMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	 	EMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	TMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	DLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sl   $A77A;>A;B00B47B4C))C-0C-D""D&)D&EE"EFFFc                     t          g d          }|dk    }t          g d          }t          j        ||           d S )N)	IntervalA	IntervalB	IntervalCr  )TFFr   rr  s       r    $test_compare_series_interval_keywordz9TestSeriesComparison.test_compare_series_interval_keyword  sM    <<<==#...//
vx00000r"   N)ra   rb   rc   rF  r   r   r   rK  rM  r\  rc  rj  rm  ro  rs  rv  rz  r   r>  r  r  r/   r"   r    rC  rC    s       
 
 
 [X'K'K'KLL" " ML" [X'K'K'KLL" " ML" [RRR #+ #+ #+J- - -.6 6 6pG G G>1 1 1>1 1 11 1 1"< < < [ yyyU#>>>yyyU#>>>
 yyyU#>>>|||44<<cBBB		
   >1 1 1 1 1r"   rC  c                   &    e Zd Zd Zd Zd Zd ZdS )TestTimeSeriesArithmeticc                    t          dddd          }t          j                            d          d d         }t	          t          j                            d          |                    |                              d                    }t          j                            d          d d         }t	          t          j                            d          |                    |                              d	                    }||z   }|                    d          }|                    d          }||z   }|j        j	        t          j        u sJ t          j        ||           d S )
N1/1/2011d   rR  utc)r   r   r   Z   z
US/Easternr   zEurope/Berlin)r   r%   r&   r'   r   r   r$   r   r   r   r   r  r>   ru   )	rP   r   permr	  r
  rW   uts1uts2rX   s	            r    +test_series_add_tz_mismatch_converts_to_utczDTestTimeSeriesArithmetic.test_series_add_tz_mismatch_converts_to_utc  s:   SsuEEEy$$S))#2#.IOOBsxx~~'@'@'N'N
 
 
 y$$S))#2#.IOOBsxx~~'@'@'Q'Q
 
 
 u%%u%%$;|(,....
vx00000r"   c                    t          ddd          }t          t          j                            t          |                    |          }|                    d          }d}t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t          |          5  ||z    d d d            d S # 1 swxY w Y   d S )	Nr  r   rR  r   r   r  z0Cannot join tz-naive with tz-aware DatetimeIndexr   )
r   r   r%   r&   r   r(   rV  r   r   	Exception)rP   r   rv   r   r   s        r    "test_series_add_aware_naive_raisesz;TestTimeSeriesArithmetic.test_series_add_aware_naive_raises  sI   Rc:::RY__SXX..c::://%((@]9C000 	 	'MM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	cMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$    BBB8CCCc                     t          t          dd                    }t          j                            d          }||z
  }t          t          j        g d                    }t          j        ||           d S )Nz
2012-01-01rg   r  r   )days)z
2011-12-26z
2011-12-27z
2011-12-28)r   r   r   offsets
DateOffsetto_datetimer>   ru   )rP   rR   offsetrW   rX   s        r    test_datetime_understoodz1TestTimeSeriesArithmetic.test_datetime_understood  sv     
<;;;<<&&A&..&".)S)S)STTUU
vx00000r"   c                    t          dd          }t          t          j                            d          |          }|dd          }|                                }d |j        D             |_        ||z   }||z   }||dd          z   }|j                            d           |_        t          j	        ||           t          j	        ||           d S )Nr      r  r   r;   c                 6    g | ]}|                                 S r/   )r   ).0r1   s     r    
<listcomp>zWTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex.<locals>.<listcomp>  s     111!QVVXX111r"   )
r   r   r%   r&   r   r   r   
_with_freqr>   ru   )rP   r   r-   ts_slicets2rW   r   rX   s           r    *test_align_date_objects_with_datetimeindexzCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex  s    R000BIOOB''s333abb6mmoo11sy111	c(122;!22488
vx000
w11111r"   N)ra   rb   rc   r  r  r  r  r/   r"   r    r  r    sP        1 1 1,  1 1 12 2 2 2 2r"   r  c            	           e Zd Zej                            deeej	        e
eej	        g          ej                            dddg          d                         Zd Zd ZdS )	TestNamePreservationboxflexTFc                 &   |}t          t          d          |d                   }t          t          d          |d                   }|j                            d          }|dv }	 ||          }|r|	rd S  t	          ||          |          }
n |||          }
t          |
t                     sJ |t          t           fv r&|
j        |d         u s|
j        |d         k    sJ d S d S |
j        |d         u s|
j        |d         k    sJ d S d S )Nr   r   ri   rI   _)andrandxorrxororrorr6   )r   r   ra   striprM   
isinstancer   rj   )rP   r  r  rN  all_binary_operatorsrU   r+  r,  rj   
is_logicalrW   s              r    test_series_ops_name_retentionz3TestNamePreservation.test_series_ops_name_retention  s:    "eBiieAh///uRyyuQx000{  %%HH
E

 	% (WT4((//FF Re__F&&)))))5&/!!;%(**fkU1X.E.E.E.E**.E.E;%(**fkU1X.E.E.E.E**.E.Er"   c                 v   ||z  }|j         |j         k    sJ |                    |          }|j         |j         k    sJ ||d d         z  }|j         |j         k    sJ |                                }d|_         ||z   }|j         J |                    |          }|j         J g d}|d |D             z   }|D ]~}|                                } t	          ||          |          }|j         |j         k    sJ |                                }d|_          t	          ||          |          }|j         J d S )Nzsomething else)rB   rC   rD   r   rF   rE   modrG   c                     g | ]}d |z   S )rJ   r/   )r  rU   s     r    r  zGTestNamePreservation.test_binop_maybe_preserve_name.<locals>.<listcomp>G  s    ,,,"S2X,,,r"   changed)rj   rD   r   rB   rM   )rP   r   rW   cpr   rU   rv   s          r    test_binop_maybe_preserve_namez3TestNamePreservation.test_binop_maybe_preserve_name4  s    ?2{o22222 $$_55{o22222 ?3B3#77{o22222 !!##" 2%{""" $$R(({"""OOO,,,,,, 
	' 
	'B!&&((C%WS"%%c**F;/"66666 !%%''BBG%WS"%%b))F;&&&&
	' 
	'r"   c                 4    |dz  }|j         |j         k    sJ d S r5   ri   )rP   r   rW   s      r    test_scalarop_preserve_namez0TestNamePreservation.test_scalarop_preserve_nameT  s(     1${o2222222r"   N)ra   rb   rc   r   r   r   r>  tupler%   arrayr   r   r   r  r  r  r/   r"   r    r  r    s        [UT5"(E628$TUU[VdE]33F F 43 VUF4' ' '@3 3 3 3 3r"   r  c                   V    e Zd Zej                            dd          d             ZdS )TestInplaceOperationsz)dtype1, dtype2, dtype_expected, dtype_mul))r  r  r  r  )r  r  r  r  )r  r  r  r  )r  r  r  r  c                 V   t          dg|          }t          dg|          }||z  }t          dg|          }t          j        ||           ||z  }t          dg|          }t          j        ||           ||z  }t          dg|          }t          j        ||           d S )NrI   r   r6   rg   r   )rP   dtype1dtype2dtype_expected	dtype_mulr	  r
  rX   s           r    test_series_inplace_opsz-TestInplaceOperations.test_series_inplace_opsZ  s     qc(((qc(((1#^444
tX...1#^444
tX...1#Y///
tX.....r"   N)ra   rb   rc   r   r   r   r  r/   r"   r    r  r  Y  sJ        [3	
 / / / / /r"   r  c                    |}t          |          dk     r8| j                            t          j                            d                     t          j        |j        d<   |d k    }|j	        d         rJ |j	        d         rJ |d k    }|j	        d         sJ |j	        d         sJ d |k    }|j	        d         rJ |j	        d         rJ d |k    }|j	        d         sJ |j	        d         sJ t          |j                  st          |j                  rwd}t          j        t          |          5  d |k     d d d            n# 1 swxY w Y   t          j        t          |          5  |d k     d d d            d S # 1 swxY w Y   d S d |k    }|j	        d         rJ |j	        d         rJ |d k     }|j	        d         rJ |j	        d         rJ d S )NrI   z%Test doesn't make sense on empty data)reasonr   zInvalid comparisonr   )r(   r   
add_markerr   r   xfailr%   rs   r   iatr   r   r	   r   r   )r   series_with_simple_indexrR   rW   r   s        r    test_none_comparisonr  u  s   %F
6{{QK%LMM	
 	
 	
 VFKN t^Fz!}z!} t^F:a=:a=V^Fz!}z!}V^F:a=:a=6<(( !,A&,,O,O ! #]9C000 	 	6MM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	TMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 :a=   :a=   $:a=   :a=     s$   7E

EE0FFFc            	      ^   t          t          d          t          j                            t          d          t          d          ddggg d                    } t          d	 t          dd
          D             t          j                            t          d          ddggddg                    }| j        t          j        dgd d d d f                  |z   }t          g dt          j                            g dg d                    }t          j
        ||           d S )N   abxyrI   r6   )r  r  num)rN  r   c                     g | ]}d |z  S )  r/   )r  r   s     r    r  z;test_series_varied_multiindex_alignment.<locals>.<listcomp>  s    '''a'''r"   r;   r  r   )r  i  i  i  ))r1   rI   r   )r1   r6   r   )r{   rI   r   )r{   r6   r   )r  r  r  )r   r   r   
MultiIndexfrom_productr>  loc
IndexSlicefrom_tuplesr>   ru   )r   r   rW   rX   s       r    'test_series_varied_multiindex_alignmentr    sD   	am(($ZZdaV,4G4G4G ) 
 

 
 
B 
''5A;;'''m(($t**q!f)=dE](SS
 
 
B VBM3%AAA+./"4F   m''HHH%%% ( 
 
  H 68,,,,,r"   c                      t          dgdz                                d          } t          dgdz            }t          j        | |           d S )Nr6   i'  r   rI   )r   rmodr>   ru   )rW   rX   s     r    !test_rmod_consistent_large_seriesr    sO    QC%K  %%b))FqcEk""H68,,,,,r"   )0datetimer   r   r   decimalr   rN   numpyr%   r   pandas._libs.tslibsr   pandas.core.dtypes.commonr   r	   pandasr   r
   r   r   r   r   r   r   pandas._testing_testingr>   pandas.corer   r   pandas.core.computationr   r   pandas.core.computation.checkr   fixturer!   r*   r,   r   r(  rC  r  r  r  r  r  r  r/   r"   r    <module>r     s#           
             5 5 5 5 5 5       
                                   8 7 7 7 7 7 ; ; ; ; ; ; a\	87LMMM' ' NM'5 5 5j j j j j j j jZQ1 Q1 Q1 Q1 Q1 Q1 Q1 Q1p31 31 31 31 31 31 31 31ld1 d1 d1 d1 d1 d1 d1 d1Z	:2 :2 :2 :2 :2 :2 :2 :2z?3 ?3 ?3 ?3 ?3 ?3 ?3 ?3D/ / / / / / / /8-! -! -!`- - -.- - - - -r"   