
    bMh                        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 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 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)lib)IncompatibleFrequency)CategoricalDatetimeTZDtypeIndexSeries	Timedeltabdate_range
date_rangeisna)ops)expressions)NUMEXPR_INSTALLEDTi@B numexprpython)autouseparamsidsc              #      K   |                                 5 }|                    t          d| j                   d V  d d d            d S # 1 swxY w Y   d S )N_MIN_ELEMENTS)contextsetattrexprparam)requestmonkeypatchms      c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/series/test_arithmetic.pyswitch_numexpr_min_elementsr#       s      					 !			$777                 s   &A

AAc                     |                      t          j                            d                              t          |                               S N   )takenprandomdefault_rngpermutationlen)objs    r"   _permuter.   '   s8    88BI))!,,88SBBCCC    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 N xs    r"   <lambda>z!TestSeriesFlexArithmetic.<lambda>/       q r/   c                     | dz  S r%   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>/   s
    AE r/   Fc                     | S r4   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>0   r9   r/   c                     | d d d         S r%   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>0   s    AcccF r/   c                     | S r4   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>1   r9   r/   c                     dS )N   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>1   s    A r/   Tc                 R    t          t          d          t          j                  S N
   dtyper   ranger(   float64r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>3       &r"*=== r/   c                 R    t          t          d          t          j                  S rA   rE   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>4   rH   r/   opname)addsubmulfloordivtruedivpowc                    t          t          j        dt          j                  t	          dd          d          } |d         |          } |d         |          }|d	         }t          t           |          }t          t          |          } |||          }	 |||          }
t          j        |	|
           |rGt          t           d
|z             } |||          }	 |||          }
t          j        |	|
           d S d S )N   rC   z
2020-01-01periodsr2   indexnamer      r&   r)	r   r(   arangerG   r   getattroperatortmassert_almost_equal)selfrJ   r2   tserseriesothercheck_reverseopaltresultexpectedrops               r"   test_flex_method_equivalencez5TestSeriesFlexArithmetic.test_flex_method_equivalence,   s   $ Ib
+++\2666
 
 
 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>.MySeriesr7   c                     S r4   r5   )r_   MySeriess    r"   _constructorzgTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation.<locals>.MySeries._constructorY   s    r/   N)__name__
__module____qualname__	_metadatapropertyro   )rn   s   r"   rn   rl   V   s?        I        X     r/   rn   rX   r&      testrW   *   rX   )r   r[   r7   )r_   all_arithmetic_operatorsrJ   rd   r!   rf   rn   s         @r"   /test_flex_method_subclass_metadata_preservationzHTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservationT   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   rX   rv      r?   r&   
fill_value)r   r(   nanfillnarK   r]   assert_series_equal)r_   serexpress       r"   test_flex_add_scalar_fill_valuez8TestSeriesFlexArithmetic.test_flex_add_scalar_fill_valued   si    aBFAq!,--jjmm""ggaAg&&
sC(((((r/   rX   )rK   rL   rM   rP   rO   rN   r   rY   c                 @     t          t          |          ||           S r4   )r[   r\   )r7   yrd   s      r"   r8   z!TestSeriesFlexArithmetic.<lambda>s   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)allr~   )rV   unionreindexr   rF   r,   r(   errstateappendr   r   r]   r   )methrd   abr   	exp_indexamaskbmask
exp_valuesirf   rg   s               r"   _check_fillzDTestSeriesFlexArithmetic.test_operators_combine.<locals>._check_filly   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?   rV   rX   rv         @   r~   axis)r   )r   r(   r   rZ   r]   r   )	r_   rd   equiv_opfvr   r   r   rf   r   s	            r"   test_operators_combinez/TestSeriesFlexArithmetic.test_operators_combinew   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)rp   rq   rr   pytestmarkparametrizeri   r{   r   r   divr\   rO   rdivr   rtruedivpairingsrd   r   r[   loplequivrh   requivr   r   r5   r/   r"   r1   r1   +   s       [[//51[**E2[++t,====			
  [EEE 5 5   50   ) ) ) X-q1FKq3QRHA + +gfb!!2&&gfcBh''!#@@@fb)***fb)****[/::% % ;:% % %r/   r1   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                 N   t          j        ddd          }t          t          j                            d                              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Yfreqr&   r   rX   z4Input has different freq=D from Period\(freq=Y-DEC\)matchDend)how)pdperiod_ranger   r(   r)   r*   standard_normalr,   r   ilocr]   r   r.   r   raisesr   asfreq)r_   rngr2   rf   rg   msgs         r"   !test_add_series_with_period_indexz6TestSeriesArithmetic.test_add_series_with_period_index   sZ   oj*3???BI))!,,<<SXXFFcRRRb1g7 fadd
vx000hr##A#w'''
vx000F]0<<< 	+ 	+3E****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   2DD!Dz%target_add,input_value,expected_value!helloworldzhello!zworld!r!   hellomworldmc                 v    t          |          }||z   }t          |          }t          j        ||           d S r4   r   r]   r   )r_   
target_addinput_valueexpected_valuer   rf   rg   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 )NrX   )r   r   cdr   r&   )r   r   r   er   )r   r(   r   divmodr]   r   rdivmod)r_   r   r   rf   rg   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/   rV   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 )NrX   rB   foor   zHnot all arguments converted during string formatting|'mod' not supportedr   )r   rF   r   r   	TypeError)r_   rV   s1s2r   s        r"   test_series_integer_modz,TestSeriesArithmetic.test_series_integer_mod   s     E!RLL!!E'''X]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 )NrX   r&   r   rB         )rX   rX   r&   )r   r(   r   r]   r   )r_   r   r   rf   rg   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           	      p   t          t          d          t          d          gt          ddd          t          ddd          g          }||                    d          z   }|                    d          |z   }t	          |j        d                   sJ t	          |j        d                   sJ d S )Nz1.3z2.3i  rX   r&   r   r   )r   r   r   shiftr   r   )r_   r   rf   result2s       r"   test_add_na_handlingz)TestSeriesArithmetic.test_add_na_handling   s    U^^WU^^,T$15E5EtDRSUVGWGW4X
 
 
 syy||#))A,,$FKN#####GLO$$$$$$$r/   c                 
   t          g t          g           t          j                  }||z   }t          j        |                                          sJ ||                                z   }t          |          dk    sJ d S )N)rV   rD   r   )r   r   r(   rG   isnanr   copyr,   )r_   datetime_seriesemptyrf   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 )Nr2   rU   )astypeintr   valuesrV   r]   r   )r_   r   int_tsaddedrg   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 )NrC   r7   g        r   )r   r(   int32r]   r   r   )r_   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-1rv   r   rT   r   r&   r   rx   )r   r   r(   r   r   r   r   NaTr]   r   to_frame)r_   dtdt2rg   rf   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-01rB   CET)rT   tzUTCr   )r   
tz_convertr   rV   )r_   dtidti_utcr   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  N503r&   r   r   r  r}   r  r   r  )
categoriesr      )	r	   r   r   CategoricalIndexr	  r(   r   r]   r   )r_   catser1ser2rf   r   r   rg   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)r&   r&   rv   rv   r}   rX   r   int64rC   r   r?   z20130101 09:00:00rS   20130101z9 hours)r   r(   rZ   r]   r   r   r   )r_   rV   r   rb   rf   rg   s         r"   $test_arithmetic_with_duplicate_indexz9TestSeriesArithmetic.test_arithmetic_with_duplicate_index2  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   floatrC   rX   Int64Float64)r   r(   r   r   NAr]   r   r_   r  r  rf   rg   s        r"   'test_masked_and_non_masked_propagate_naz<TestSeriesArithmetic.test_masked_and_non_masked_propagate_naD  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?   r}   r  rC   r   r  )r   r   r  r(   r   r]   r   r  s        r"   +test_mask_div_propagate_na_for_non_na_dtypez@TestSeriesArithmetic.test_mask_div_propagate_na_for_non_na_dtypeL  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)rv   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)rX   Nrv   r  rC   rX   r&   rv   r   )r_   valrD   r   rf   rg   s         r"   test_add_list_to_masked_arrayz2TestSeriesArithmetic.test_add_list_to_masked_arrayW  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booleanrC   )TNT)	nodecallspecidr   UserWarningr   r]   assert_produces_warningr   )r_   r   warningr   rf   rg   s         r"   %test_add_list_to_masked_array_booleanz:TestSeriesArithmetic.test_add_list_to_masked_array_booleanb  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 )rp   rq   rr   r   r   r   r   r   r   rF   r   r   r   r   r   r   r   r  r  r  r  r  r   r)  r5   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   NrV   c                    t          t          j                            d                              d                    }t          t          j                            d                              d                    } t          ||j                  ||          } |||          }t          j        ||           d S )Nr&   rB   r   )	r   r(   r)   r*   r   r[   rp   r]   r   )r_   r   comparison_opleftrightrf   rg   s          r"   test_comparison_flex_basicz3TestSeriesFlexComparison.test_comparison_flex_basicy  s    bi++A..>>rBBCCry,,Q//??CCDD6}566u4HHH =u--
vx00000r/   c                    t          t          j                            d                              d                    }t          t          j                            d                              d                    }d}t          j        t          |          5   t          ||j	                  |d           d d d            d S # 1 swxY w Y   d S )Nr&   rB   zNo axis named 1 for object typer   rX   r   )
r   r(   r)   r*   r   r   r   
ValueErrorr[   rp   )r_   r-  r.  r/  r   s        r"   test_comparison_bad_axisz1TestSeriesFlexComparison.test_comparison_bad_axis  s   bi++A..>>rBBCCry,,Q//??CCDD/]: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   !C

CC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rX   rv   r&   abcr   r&   r&   r&   bcdabcdr   listr[   r]   r   )r_   r   rd   r.  r/  rf   rg   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)FFTTr&   )TTFFr   )FFFT)TTTFc                 "   t          g dt          d                    }t          g dt          d                    } t          ||          ||          }t          |t          d                    }t          j        ||           d S )Nr;  r<  r   r=  r>  r~   r?  r@  )r_   r   rd   r   r.  r/  rf   rg   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)
rp   rq   rr   r   r   r   r0  r3  rB  rD  r5   r/   r"   r+  r+  x  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   rX   r&   )r&   rv   r}   )r   r   r   r2  )r_   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rJ   )r4  r5  r9  r7  r8  r6  c                     t          g dt          d                    }d} t          ||          |          j        }t	          j        d          }||k    sJ d S )Nr;  rv   r   r&   bool)r   rF   r[   dtypesr(   rD   )r_   rJ   r   constrf   rg   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 )Nr;  rv   r   r   r&   rK  )r   rF   r   r[   rL  r(   rD   )r_   rJ   r   r   rM  rf   rg   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)bazrS  rS  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   rT   rW   rX   r&   z
US/Centralinferr   )startrT   rW   category)r   r   renamerW   tz_localizer   DatetimeIndexr   r\   r4  r5  interval_ranger   )
r_   rQ  r-  rd   r  r   rf   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                     t          g d          }t          g d          }t          g d          }t          j        ||k    |           t          j        ||k    |           d S )NrH  )FTFFFFr   )r_   sr   r   s       r"   test_comparisonsz%TestSeriesComparison.test_comparisons  sq    ???##((()) ***++
qBw,,,
rQw,,,,,r/   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 )Nr<  rX  rC   object)r   r   ccacbr   r    can only compare equality or notr   )r   rA  r	   r   r   r   r   )r_   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 )Nr<  ri  r   r   F)orderedTz1Invalid comparison between dtype=category and strr   rb  )TTT)r   r	   rA  r   r   r   r]   r   )r_   r  r   s      r"   5test_unequal_categorical_comparison_raises_type_errorzJTestSeriesComparison.test_unequal_categorical_comparison_raises_type_error:  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)rX   rX   )rX   r&   FT)r   r   r   )r_   rc  rf   rg   s       r"   test_comparison_tuplesz+TestSeriesComparison.test_comparison_tuplesY  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 )NrX   r&   TF)r   	frozensetr]   r   r_   r   rf   rg   s       r"   test_comparison_frozensetz.TestSeriesComparison.test_comparison_frozensetx  sd    inniA&7&7899	1#&4-((
vx00000r/   c                 n   t          t          dd          t                    }t          j        |d d d<   |d         } |||          } ||                                |                              |j                  }d}t          j	        t          |          5  |t          j        u r.|                    d	                              t                    }n-|                    d
                              t                    }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   rB   rS   rC   r&   r?   zDowncasting object dtype arraysr   TF)r   r   rf  r(   r   dropnar   rV   r]   r'  FutureWarningr\   r5  r   r   rK  r   )r_   r-  r   r  rf   rg   r   s          r"   "test_comparison_operators_with_nasz7TestSeriesComparison.test_comparison_operators_with_nas  sO   [R888GGG6CCaC !fsC(( =s33;;CIFF/'SAAA 	? 	?++#??40077==#??51188>>		? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	vx00000s   A*DDDc                     t          g dg dt                    }t          j        g d          }t	          j        |j        dk    |           t	          j        |j        dk     |           d S )N)rv   r}   r?   r      rC   )TTFTTr?   )r   r  r(   arrayr]   assert_numpy_array_equalrV   )r_   r2   rg   s      r"   test_nezTestSeriesComparison.test_ne  so    OOO___EBBB8;;;<<
#BHM8<<<
#bh!m$4h?????r/   zleft, rightru   ABCr7   rU   r=  ABD)r&   r&   r&   r&   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   rp   r   r   r   r2  )r_   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   rs  s       r"   $test_compare_series_interval_keywordz9TestSeriesComparison.test_compare_series_interval_keyword  sM    <<<==#...//
vx00000r/   N)rp   rq   rr   rI  r   r   r   rN  rP  r`  rd  rk  rn  rp  rt  rx  r}  r   rA  r  r  r5   r/   r"   rF  rF    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/   rF  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 d         }t          t          j                            d                              d          |                    |                              d          	          }t          j                            d                              d          d d         }t          t          j                            d                              d          |                    |                              d
          	          }||z   }|                    d          }|                    d          }||z   }|	                                }|j
        j        t          j        u sJ t          j        ||           d S )N1/1/2011d   rU  utc)rT   r   r   r&   Z   z
US/Easternr   zEurope/Berlin)r   r(   r)   r*   r+   r   r   r'   r   
sort_indexrV   r   r   r  r]   r   )	r_   r   permr  r  rf   uts1uts2rg   s	            r"   +test_series_add_tz_mismatch_converts_to_utczDTestTimeSeriesArithmetic.test_series_add_tz_mismatch_converts_to_utc  s   SsuEEEy$$Q''33C88"=I!!!$$44R88((4..++L99
 
 

 y$$Q''33C88"=I!!!$$44R88((4..++O<<
 
 

 u%%u%%$; &&((|(,....
vx00000r/   c                    t          ddd          }t          t          j                            d                              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  rB   rU  r   r&   r   r  z0Cannot join tz-naive with tz-aware DatetimeIndexr   )r   r   r(   r)   r*   r   r,   rZ  r   r   	Exception)r_   r   r   r  r   s        r"   "test_series_add_aware_naive_raisesz;TestTimeSeriesArithmetic.test_series_add_aware_naive_raises  sY   Rc:::RY**1--==c#hhGGsSSS//%((@]9C000 	 	'MM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	cMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   B%%B),B)CC"%C"c                 (   t          t          dd|                    }t          j                            d          }||z
  }t          j        g d                              |          }t          |          }t          j        ||           d S )Nz
2012-01-01rv   )rT   unitr   )days)z
2011-12-26z
2011-12-27z
2011-12-28)	r   r   r   offsets
DateOffsetto_datetimeas_unitr]   r   )r_   r  ra   offsetrf   exp_dtirg   s          r"   test_datetime_understoodz1TestTimeSeriesArithmetic.test_datetime_understood  s     
<FFFGG&&A&..&.!K!K!KLLTT
 
 '??
vx00000r/   c                    t          dd          }t          t          j                            d                              d          |          }|dd          }|                                }d |j        D             |_        ||z   }||z   }||dd          z   }|j                            d           |_        t          j
        ||           t          j
        ||           d S )Nr   rR   rS   r&   r   r?   c                 6    g | ]}|                                 S r5   )r   ).0r7   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   rV   
_with_freqr]   r   )r_   r   r2   ts_slicets2rf   r   rg   s           r"   *test_align_date_objects_with_datetimeindexzCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex  s    R000BI))!,,<<R@@LLLabb6mmoo11sy111	c(122;!22488
vx000
w11111r/   N)rp   rq   rr   r  r  r  r  r5   r/   r"   r  r    sP        1 1 16  
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 }	d}
d }|t          t
          fv r	|	rt          } ||          }|r|	rd S  t          ||          |          }n:t          j	        ||
          5   |||          }d d d            n# 1 swxY w Y   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 )
NrB   r   rx   rX   _)andrandxorrxororrorzLLogical ops \(and, or, xor\) between Pandas objects and dtype-less sequencesr   r&   )r   rF   rp   striprA  tuplerw  r[   r]   r'  
isinstancer   rW   )r_   r  r  rQ  all_binary_operatorsrd   r.  r/  rW   
is_logicalr   warnrf   s                r"   test_series_ops_name_retentionz3TestNamePreservation.test_series_ops_name_retention  s    "eBiieAh///uRyyuQx000{  %%HH
# 	 4-J DE

 	) (WT4((//FF +D<<< ) )D%) ) ) ) ) ) ) ) ) ) ) ) ) ) ) &&)))))5&/!!;%(**fkU1X.E.E.E.E**.E.E;%(**fkU1X.E.E.E.E**.E.Es   C  C$'C$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)rK   rL   rM   r   rO   rN   modrP   c                     g | ]}d |z   S )rY   r5   )r  rd   s     r"   r  zGTestNamePreservation.test_binop_maybe_preserve_name.<locals>.<listcomp>Q  s    ,,,"S2X,,,r/   changed)rW   rM   r   rK   r[   )r_   r   rf   cpr   rd   r   s          r"   test_binop_maybe_preserve_namez3TestNamePreservation.test_binop_maybe_preserve_name>  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 r%   rx   )r_   r   rf   s      r"   test_scalarop_preserve_namez0TestNamePreservation.test_scalarop_preserve_name^  s(     1${o2222222r/   N)rp   rq   rr   r   r   r   rA  r  r(   r{  r   r   r   r  r  r  r5   r/   r"   r  r    s        [UT5"(E628$TUU[VdE]33!F !F 43 VU!FF' ' '@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 )NrX   rC   r&   rv   r   )r_   dtype1dtype2dtype_expected	dtype_mulr  r  rg   s           r"   test_series_inplace_opsz-TestInplaceOperations.test_series_inplace_opsd  s     qc(((qc(((1#^444
tX...1#^444
tX...1#Y///
tX.....r/   N)rp   rq   rr   r   r   r   r  r5   r/   r"   r  r  c  sJ        [3	
 / / / / /r/   r  c                    |}t          |          dk     r3|                     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
        |j        d          st          |j        t                    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 )NrX   z%Test doesn't make sense on empty data)reasonr   MzInvalid comparisonr   )r,   applymarkerr   r   xfailr(   r   r   iatr   is_np_dtyperD   r  r
   r   r   )r   series_with_simple_indexra   rf   r   s        r"   test_none_comparisonr    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=
v|S)) !Zo-V-V ! #]9C000 	 	6MM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	TMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 :a=   :a=   $:a=   :a=     s$   >EEE7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xyrX   r&   )r  r  num)rQ  r   c                     g | ]}d |z  S )  r5   )r  r   s     r"   r  z;test_series_varied_multiindex_alignment.<locals>.<listcomp>  s    '''a'''r/   r?   r  r   )r  i  i  i  ))r   r7   rX   )r   r7   r&   )r   r   rX   )r   r   r&   )r   rF   r   
MultiIndexfrom_productrA  loc
IndexSlicefrom_tuplesr]   r   )r   r   rf   rg   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 )Nr&   i'  r   rX   )r   rmodr]   r   )rf   rg   s     r"   !test_rmod_consistent_large_seriesr    sO    QC%K  %%b))FqcEk""H68,,,,,r/   )/datetimer   r   r   decimalr   r\   numpyr(   r   pandas._libsr   pandas._libs.tslibsr   pandasr   r	   r
   r   r   r   r   r   r   pandas._testing_testingr]   pandas.corer   pandas.core.computationr   r   pandas.core.computation.checkr   fixturer#   r.   r1   r   r+  rF  r  r  r  r  r  r  r5   r/   r"   <module>r     s           
                   5 5 5 5 5 5    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	             7 7 7 7 7 7 ; ; ; ; ; ; a\	87LMMM  NMD D Dr r r r r r r rj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[1 [1 [1 [1 [1 [1 [1 [1H	C2 C2 C2 C2 C2 C2 C2 C2LH3 H3 H3 H3 H3 H3 H3 H3V/ / / / / / / /8-! -! -!`- - -.- - - - -r/   