
    Pi              	       X   d dl mZmZmZ d dlmZ d dlmZmZ d dl	Z	d dl
Zd dl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   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-ej.        /                    d! ed"d#$           ed"d%d#&           ej0        d'd#$          g          d(             Z1dS ))    )date	timedeltatimezone)Decimal)EnumautoN)lib)CategoricalDatetimeTZDtypeIndexSeries	Timedeltabdate_range
date_rangeisna)ops)expressionsTi@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      w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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            	       t   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ej                            dddg          d             Zd ZdS )TestSeriesFlexArithmetictsc                     | S N xs    r"   <lambda>z!TestSeriesFlexArithmetic.<lambda>1       q r/   c                     | dz  S r%   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>1   s
    AE r/   Fc                     | S r4   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>2   r9   r/   c                     | d d d         S r%   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>2   s    AcccF r/   c                     | S r4   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>3   r9   r/   c                     dS )N   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>3   s    A r/   Tc                 R    t          t          d          t          j                  S N
   dtyper   ranger(   float64r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>5       &r"*=== r/   c                 R    t          t          d          t          j                  S rA   rE   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>6   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._constructor[   s    r/   N)__name__
__module____qualname__	_metadatapropertyro   )rn   s   r"   rn   rl   X   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_preservationV   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_valuef   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>u   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_fill{   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_combiney   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/   kinddatetimer   c                 (   |dk    rJt          t          j        d          t          j        d          gt          j        d                    }nAt          t          d          t          d          gt          j        d	                    }|j        }|                    ||j        d
                   }t          t          j	        t          |          t          j        d	                              }t          j        ||           d S )Nr   z
2025-08-20z
2025-08-21zdatetime64[ns]rC   rX   daysr&   ztimedelta64[ns]r   r~   )r   pd	Timestampr(   rD   r   _valuesrL   iloczerosr,   r]   r   )r_   r   leftrightrf   rg   s         r"   ,test_rhs_extension_array_sub_with_fill_valuezETestSeriesFlexArithmetic.test_rhs_extension_array_sub_with_fill_value   s     :l++R\,-G-GHh/00  DD
 """I1$5$5$56h011  D L 	 %DIaL99"(3t99BH=N4O4OPPPQQ
vx00000r/   c           	         t          j        dgdgdt           j                            dgdggddg          	          }t	          g d
t           j                            dgdgg dgg d          	          }d}t          j        t          |          5  |                    |d           d d d            d S # 1 swxY w Y   d S )NrX   rv   )i  i  r   r   scenmodnamesr   )g      $@g      4@g      >@)r   rX   r&   )r   r   idz/Series.add does not support a DataFrame `other`matchr   r   )	r   	DataFrame
MultiIndexfrom_productr   pytestraises	TypeErrorrK   )r_   dfr   msgs       r"   test_flex_disallows_dataframez6TestSeriesFlexArithmetic.test_flex_disallows_dataframe   s6   \3qc""-,,secU^FE?,SS
 
 

 -,,yyy)1F1F1F -  
 
 
 @]9C000 	  	 GGBQG	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   B>>CCN)rp   rq   rr   r   markparametrizeri   r{   r   r   divr\   rO   rdivr   rtruedivpairingsrd   r   r[   loplequivrh   requivr   r   r   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)****[/::% % ;:%N [Vj+%>??1 1 @?1*         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                    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 S )N1/1/2000z1/1/2010Yfreqr&   r   rX   )r   period_ranger   r(   r)   r*   standard_normalr,   r   r   r]   r   r.   )r_   rngr2   rf   rg   s        r"   !test_add_series_with_period_indexz6TestSeriesArithmetic.test_add_series_with_period_index   s    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00r/   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   r   )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   r,   )r_   datetime_seriesemptyrf   s       r"   test_add_corner_casesz*TestSeriesArithmetic.test_add_corner_cases  sp    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d                    }t          j        |j        d<   |d d d         }t          t          d          t          d          t          j        gd	
          }||z
  }t          j	        ||           t          |d          }|
                                |
                                z
  d         }t          j	        ||           d S )Nz2012-1-1rv   Dns)rT   r   unitr&   r   m8[ns]rC   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     Jz13TJJJKKV
2h9Q<<1rv>hOOO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 )N
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_categoricalJ  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d	
          |          }t          t          ddd	
          |          }||z
  }t          t          d          g dd          }t          j        ||           d S )N)r&   r&   rv   rv   r}   rX   r   int64rC   r   r?   z20130101 09:00:00r  rT   r	  20130101z9 hoursr  r   )r   r(   rZ   r]   r   r   r   )r_   rV   r   rb   rf   rg   s         r"   $test_arithmetic_with_duplicate_indexz9TestSeriesArithmetic.test_arithmetic_with_duplicate_indexX  s     RYq!73335AAAry'222%@@@u!???333
vx000 Z 3QTJJJRWXXXz*adCCC5QQQu)I..oooXVVV
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_naj  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   r0  s        r"   +test_mask_div_propagate_na_for_non_na_dtypez@TestSeriesArithmetic.test_mask_div_propagate_na_for_non_na_dtyper  s    r25!Q'w777r1bfa())3ruc2)DDD
vx000
vx00000r/   valrv   g      @c                     t          g dd          }|dd |gz   }t          dt          j        d|z   gd          }t          j        ||           dd |g|z   }t          j        ||           d S )N)rX   Nrv   r-  rC   rX   r&   rv   r.  )r   r   r/  r]   r   )r_   r5  r   rf   rg   s        r"   test_add_list_to_masked_arrayz2TestSeriesArithmetic.test_add_list_to_masked_array}  s     \\\1114~%1beQW-Y???
vx000T3#%
vx00000r/   c                     t          g dd          }|g dz   }t          dt          j        dgt                    }t	          j        ||           g d|z   }t	          j        ||           d S )N)TNFbooleanrC   )TNTr&   rX   )r   r   r/  objectr]   r   r_   r   rf   rg   s       r"   %test_add_list_to_masked_array_booleanz:TestSeriesArithmetic.test_add_list_to_masked_array_boolean  s    (((	:::))))1beQ-v666
vx000###c)
vx00000r/   )rp   rq   rr   r   r   r   r   r   r   rF   r   r   r   r   r  r  r  r  r%  r*  r1  r4  r7  r<  r5   r/   r"   r   r      s       
1 
1 
1 [/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 [UQH--1 1 .-11 1 1 1 1r/   r   c                   4   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 e	 e
g d                     e	 ej        ddd                    gdd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(d&Zd(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_opr   r   rf   rg   s          r"   test_comparison_flex_basicz3TestSeriesFlexComparison.test_comparison_flex_basic  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/   r   )r   r   r   2020Q1rv   QrT   r   categoricalperiod)r   c                     |j         }|                    ||j        d                   }t          g d          }t	          j        ||           d S )Nr   r~   TTT)r   rE  r   r   r]   r   )r_   r   r   rf   rg   s        r"   +test_rhs_extension_array_eq_with_fill_valuezDTestSeriesFlexComparison.test_rhs_extension_array_eq_with_fill_value  sS     49Q<88,,,--
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 )NrL  rM  r   rN  rO  r~   rP  rQ  )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/   returnNc                     G d dt                     }t          |j        |j        g          }|j        |j        g}|                    |j                  }t          ddg          }t          j        ||           |                    |          }t          ddg          }t          j        ||           |                    t          j        |                    }t          ddg          }t          j        ||           |                    t          |                    }t          ddg          }t          j        ||           t          ddgddgg                              ddg          }t          ddg          }t          j
        t                    5  t          j        ||           d d d            n# 1 swxY w Y   t          ddg          }t          j        ||           d S )	Nc                   6    e Zd Z e            Z e            ZdS )7TestSeriesFlexComparison.test_eq_objects.<locals>.ThingN)rp   rq   rr   r   FIRSTSECONDr5   r/   r"   Thingra    s$        DFFETVVFFFr/   rd  TFrX   r&   rv   r}   )r   r   rb  rc  rE  r]   r   r(   asarrayr   r   AssertionError)r_   rd  r   py_lrf   rg   s         r"   test_eq_objectsz(TestSeriesFlexComparison.test_eq_objects  s   	 	 	 	 	D 	 	 	 u{EL122U\*%%4-((
vx0004,''
vx000D))**4,''
vx000&&4,''
vx000!Q!Q()),,aV444-((]>** 	5 	5"68444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	55%.))
vx00000s   !GG
Gc                 |   t          ddgddg          }ddg}|                    |          }t          ddgddg          }t          j        ||           |                    t	          j        |                    }t          ddgddg          }t          j        ||           |                    t          |                    }t          ddg          }t          j        ||           |                    t          ddg                    }t          ddg          }t          j        ||           d S )NrX   r&   r   r   TF)r   rE  r]   r   r(   re  )r_   r   rg  rf   rg   s        r"   test_eq_with_indexz+TestSeriesFlexComparison.test_eq_with_index  s-   q!fQF+++1v 4,q!f555
vx000 D))**4,q!f555
vx000&&5%.))
vx000A((4,''
vx00000r/   )r^  N)rp   rq   rr   r   r   r   rA  rD  rS  r   r
   r   r   r[  r]  rh  rj  r5   r/   r"   r>  r>    s(       [V%7%7%7881 1 981A A A [((($/&&&-((($/)))40'''.((($/	

 
1 1
 
1 [F;;//00F?2?8QSAAABB	
 H%   1 1 1 [ '''q1'''q1'''q1((($2&&&a0'''q1	

 
1 1
 
11 1 1 1B1 1 1 1 1 1r/   r>  c                   |   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g dg d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   rC  )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   )rE  rF  rJ  rH  rI  rG  c                     t          g dt          d                    }d} t          ||          |          j        }t	          j        d          }||k    sJ d S )NrL  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 )NrL  rv   r   r   r&   rq  )r   rF   r   r[   rr  r(   rD   )r_   rJ   r   r   rs  rf   rg   s          r"   %test_ser_flex_cmp_return_dtypes_emptyz:TestSeriesComparison.test_ser_flex_cmp_return_dtypes_empty+  sv     YYYeAhh///!'''..58F##!!!!!!r/   r   ))NNN)r   barN)bazrx  rx  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\   rE  rF  interval_ranger   )
r_   r   r@  rd   r  r   rf   tdiiicidxs
             r"   test_ser_cmp_result_namesz.TestSeriesComparison.test_ser_cmp_result_names5  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 )Nrn  )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 )NrM  r}  rC   r:  )r   r   ccacbr   r    can only compare equality or notr   )r   rR  r
   r   r   r   r   )r_   r   r   r   r   r   fr   s           r"   test_categorical_comparisonsz1TestSeriesComparison.test_categorical_comparisonsi  s/    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 )NrM  r  r   r   F)orderedTz1Invalid comparison between dtype=category and strr   r  rZ  )r   r
   rR  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_   r  rf   rg   s       r"   test_comparison_tuplesz+TestSeriesComparison.test_comparison_tuples  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;  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   rB   rS   rC   r&   r?   TF)r   r   r:  r(   r   dropnar   rV   r\   rF  r   r   rq  r]   r   )r_   r@  r   r5  rf   rg   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                    }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/   
right_datarN  )r&   r&   r&   r&   c                    t          g dt          d          d          }t          |t          d          d t          |                   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 )
Nru   ABCr7   rU   ABDCz@Can only compare identically-labeled \(both index and columns\) z objectsz%Can only compare identically-labeled r   )r   rR  r,   rp   r  r   r   rC  )r_   r  frame_or_seriesr   r   r   s         r"   test_comp_ops_df_compatz,TestSeriesComparison.test_comp_ops_df_compat  s|    iiitE{{===zf6GJ6G)HsSSS&((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   9CCC2DD	D	+D>>EE$E77E;>E;F00F47F4G**G.1G.c                     t          g d          }|dk    }t          g d          }t          j        ||           d S )N)	IntervalA	IntervalB	IntervalCr  )TFFr   r;  s       r"   $test_compare_series_interval_keywordz9TestSeriesComparison.test_compare_series_interval_keyword  sM    <<<==#...//
vx00000r/   N)rp   rq   rr   ro  r   r   r   rt  rv  r  r  r  r  r  r  r  r  r  r  r5   r/   r"   rl  rl    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"@ @ @ [\III|||+DEE  FEB1 1 1 1 1r/   rl  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   rz  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   rz  rV  r&   r   r  z0Cannot join tz-naive with tz-aware DatetimeIndexr   )r   r   r(   r)   r*   r   r,   r  r   r   	Exception)r_   r   r   r  r   s        r"   "test_series_add_aware_naive_raisesz;TestTimeSeriesArithmetic.test_series_add_aware_naive_raisesI  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   r(  r   r   )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_understoodW  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>i  s     111!QVVXX111r/   )r   r   r(   r)   r*   r   copyrV   
_with_freqr]   r   )r_   r   r2   ts_slicets2rf   r   rg   s           r"   *test_align_date_objects_with_datetimeindexzCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindexc  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}
 ||          }|r|	rd S  t	          ||          |          }n_|	rQ|t
          t          fv rAt          j        t          |
          5   |||           d d d            n# 1 swxY w Y   d S  |||          }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   stripr[   rR  tupler   r   r   
isinstancer   rW   )r_   r  r  r   all_binary_operatorsrd   r   r   rW   
is_logicalr   rf   s               r"   test_series_ops_name_retentionz3TestNamePreservation.test_series_ops_name_retentiont  s    "eBiieAh///uRyyuQx000{  %%HH
# 	
 E

 	% (WT4((//FF cdE]22]9C888 $ $BtUOOO$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ Re__F&&)))))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   r   rP   c                     g | ]}d |z   S )rY   r5   )r  rd   s     r"   r  zGTestNamePreservation.test_binop_maybe_preserve_name.<locals>.<listcomp>  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   rR  r  r(   r  r   r   r   r  r  r  r5   r/   r"   r  r  s  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_ops  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    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  numr   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   r   r   rR  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/   rV   r  rv   rS   z
US/Pacific)r  rT   z1 Dayc                 <   t          d|           }t          d|                     d                    }||k    }t          g d|j                  }t          j        ||           ||k     }t          g d|j                  }t          j        ||           d S )NrX   r   r  rZ  r  )r   r  rV   r]   r   )rV   r   r$  rf   rg   r   	expected2s          r"   )test_comparison_mismatched_datetime_unitsr  )  s     %
 
 
 C!5==..///DD[F(((	:::H68,,,SjG,,,DJ???I7I.....r/   )2r   r   r   r   decimalr   enumr   r   r\   numpyr(   r   pandas._libsr	   pandasr   r
   r   r   r   r   r   r   r   pandas._testing_testingr]   pandas.corer   pandas.core.computationr   r   fixturer#   r.   r1   r   r>  rl  r  r  r  r  r   r  r   r   timedelta_ranger  r5   r/   r"   <module>r     s           
                             	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	             7 7 7 7 7 7 a\	87LMMM  NMD D DZ  Z  Z  Z  Z  Z  Z  Z zF1 F1 F1 F1 F1 F1 F1 F1Z{1 {1 {1 {1 {1 {1 {1 {1|O1 O1 O1 O1 O1 O1 O1 O1p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-! -! -!`- - -.- - - 
<+++
<L!<<<7A... / / / / /r/   