
    Owg                        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	jD                  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.y)"    )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   |j                         5 }|j                  t        d| j                         d  d d d        y # 1 sw Y   y xY ww)N_MIN_ELEMENTS)contextsetattrexprparam)requestmonkeypatchms      Z/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/series/test_arithmetic.pyswitch_numexpr_min_elementsr#       s?     				 !			$7  s   A&A	AAAc                     | j                  t        j                  j                  d      j	                  t        |                   S N   )takenprandomdefault_rngpermutationlen)objs    r"   _permuter.   '   s/    88BII))!,88SBCC    c            	          e Zd Zej                  j                  dd d dfd d dfd d d	fd
 d d	fg      ej                  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 ]O  ZdZ ee	e      Z eee      Z ee	dez         ZefdZej1                  eeef       ej1                  eeef       Q ej                  j                  de      d        Zy)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    AccF r/   c                     | S r4   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>1   r9   r/   c                      y)N   r5   r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>1   s    r/   Tc                 J    t        t        d      t        j                        S N
   dtyper   ranger(   float64r6   s    r"   r8   z!TestSeriesFlexArithmetic.<lambda>3       &r"**= r/   c                 J    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                  |	|
       |r<t        t         d
|z         } |||      }	 |||      }
t        j                  |	|
       y y )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    $ IIb

+\26
 At1d1VV$h'FE"vu%
vx0&#,/C'F5&)H""684	 r/   c                      G fddt               |}t        t         |      } g dd      }d|_         ||d      }|j                  dk(  sJ y )Nc                   (    e Zd ZdgZe fd       Zy)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   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   sP    	 v 	  *VV$YV,Aqxx2~~r/   c                     t        ddt        j                  dddg      }|j                  d      j	                  d      }|j	                  dd      }t        j                  ||       y )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   sW    aBFFAq!,-jjm"ggaAg&
sC(r/   rX   )rK   rL   rM   rP   rO   rN   r   rY   c                 0     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       y )Nr   c           	         |j                   j                  |j                         }|j                  |      }|j                  |      }t        |      }t        |      }g }t	        t        |            D ]  }	t        j                  d      5  ||	   rJ||	   r)|j                  t        j                         	 d d d        M|j                   ||||	                nm||	   rJ||	   r)|j                  t        j                         	 d d d        |j                   |||	   |             n|j                   |||	   ||	                d d d          | |||      }
t        ||      }t        j                  |
|       y # 1 sw Y   xY w)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   sa   agg.I		)$A		)$AGEGEJ3y>* :[[X. :Qx 8&--bff5$	: :
 #))"Z1*>?q 8&--bff5$: : #))"QqT:*>?"))"QqT1Q4.9: :: !Q:6Fj)4H""684!: :s   +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    	58 BFFCc2662"))A,GBFFArvvq"&&#6biilKAqq!n
vs+B!Q2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5 50 ) X--q1FKKq3QRHA +fb!2&fcBh'!#@fb)*fb)*+ [[/:% ;%r/   r1   c                   `   e Zd Zd Zej
                  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
                  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
                  j                  dddg      d        Zd  Zy)!TestSeriesArithmeticc                 (   t        j                  ddd      }t        t        j                  j                  d      j                  t        |            |      }||d d d   z   }||z   }t        j                  |j                  dd d<   t        j                  ||       |t        |d d d         z   }t        j                  ||       d}t        j                  t        |	      5  ||j!                  d
d      z    d d d        y # 1 sw Y   y xY w)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   s    ooj*3?BII))!,<<SXFcRb1g7 ffadd
vx0hr#A#w''
vx0F]]0< 	+3E**	+ 	+ 	+s   (DDz%target_add,input_value,expected_value!helloworldzhello!zworld!r!   hellomworldmc                 f    t        |      }||z   }t        |      }t        j                  ||       y r4   r   r]   r   )r_   
target_addinput_valueexpected_valuer   rf   rg   s          r"   test_string_additionz)TestSeriesArithmetic.test_string_addition   s1     ;Z.)
vx0r/   c                    t        dddt        j                  gg d      }t        dt        j                  dt        j                  gg d      }|j                  |      }t        ||      }t	        j
                  |d   |d          t	        j
                  |d   |d          |j                  |      }t        ||      }t	        j
                  |d   |d          t	        j
                  |d   |d          y )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!RVV$,@AArvvq"&&)1EF!!Q<
vay(1+6
vay(1+61!Q<
vay(1+6
vay(1+6r/   rV   N	   c                     t        t        dd            }t        d|      }d}t        j                  t        t
        f|      5  ||z   d d d        y # 1 sw Y   y xY w)NrX   rB   foor   z<not all arguments converted during string formatting|mod notr   )r   rF   r   r   	TypeErrorNotImplementedError)r_   rV   s1s2r   s        r"   test_series_integer_modz,TestSeriesArithmetic.test_series_integer_mod   sU     E!RL!E'L]]I':;3G 	G	 	 	s   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                  ||       y )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   sZ    QF1a&)RHQF+b2r266*)<
vx0r/   c           	      .   t        t        d      t        d      gt        ddd      t        ddd      g      }||j                  d      z   }|j                  d      |z   }t	        |j
                  d         sJ t	        |j
                  d         sJ y )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$15EtDRSUVGW4X
 syy|#))A,$FKKN###GLLO$$$r/   c                     t        g t        g       t        j                        }||z   }t        j                  |      j                         sJ ||j                         z   }t        |      dk(  sJ y )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   s_    rr"**= 5(xx##%%%%6{ar/   c                     |j                  t              d d }||z   }t        |j                  d d |j                  z   |j                  d d d      }t        j                  |d d |       y )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   sq     '',Sb1&(""3B'&--7!'',

 	uSbz84r/   c                     t        g g t        j                        }t        ddi      }t        j                  ||z  t        t        j
                  gdg             y )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  sE    B"((+S#J
rBwxu(E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      }|j                         |j                         z
  d   }t        j                  ||       y )	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?@VV
2h9Q<1rvv>?r
vx0(+,,.2;;=0!4
vx0r/   c                     t        ddd      }|j                  d      }t        d|      }t        d|      }||z   |j                  |u sJ |j                  |u sJ y )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  sc    re<..'Rs#7+ 	gyyC}}'''r/   c                 :   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                  ||       y )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Kas#as3Bx(HqLF8a</6(:	''	cnnM	URZ266(*
*i0
vx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                  ||       y )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      RYYq!735Aryy'2%@u!?3
vx0 Z 3Q?uMz*a8Fu)I.oF
vx0r/   c                     t        dt        j                  gd      }t        ddgd      }||z  }t        dt        j                  gd      }t        j                  ||       y )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  sS    q"&&k1q!fG,1bee*I6
vx0r/   c                 B   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                  ||       y )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    r255!Q'w7r1bffa()3ruuc2)D
vx0
vx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                  ||       y )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  sg     \14~%1dAG,E:
vx0T3#%
vx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        t        g dd      }t        j                  |       t        j                  |      5  g d|z   }d d d        t        j                  ||       y # 1 sw Y   jxY w# 1 sw Y   ,xY w)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  s     ||$$''949J  	
 (	:''0 	.--F	.,I>
vx0''0 	.'#-F	.
vx0	. 	.
	. 	.s   C C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7 [[WtU1X&67 81% 	5G
1 (11$1	1 [[\L:J+KL1 M11r/   r   c                   f   e Zd Zej                  j                  dg d      d        Zd Zej                  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                  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	y)TestSeriesFlexComparisonr   )r   NrV   c                 Z   t        t        j                  j                  d      j	                  d            }t        t        j                  j                  d      j	                  d            } t        ||j                        ||      } |||      }t        j                  ||       y )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    bii++A.>>rBCryy,,Q/??CD6}556u4H u-
vx0r/   c                    t        t        j                  j                  d      j	                  d            }t        t        j                  j                  d      j	                  d            }d}t        j                  t        |      5   t        ||j                        |d       d d d        y # 1 sw Y   y xY w)Nr&   rB   zNo axis named 1 for object typer   rX   r   )
r   r(   r)   r*   r   r   r   
ValueErrorr[   rp   )r_   r.  r/  r0  r   s        r"   test_comparison_bad_axisz1TestSeriesFlexComparison.test_comparison_bad_axis  s    bii++A.>>rBCryy,,Q/??CD/]]:S1 	A1GD-001%a@	A 	A 	As   B44B=z
values, op)FFTFeq)TTFTnele)FFFFlt)FTTFge)FTFFgtc                     t        g dt        d            }t        g dt        d            } t        ||      |      }t        |t        d            }t        j                  ||       y )NrX   rv   r&   abcr   r&   r&   r&   bcdabcdr   listr[   r]   r   )r_   r   rd   r/  r0  rf   rg   s          r"   test_comparison_flex_alignmentz7TestSeriesFlexComparison.test_comparison_flex_alignment  sW     itE{3yU4"r"5)&V5
vx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                  ||       y )Nr<  r=  r   r>  r?  r~   r@  rA  )r_   r   rd   r   r/  r0  rf   rg   s           r"   #test_comparison_flex_alignment_fillz<TestSeriesFlexComparison.test_comparison_flex_alignment_fill  sY     itE{3yU4"r"5Z@&V5
vx0r/   N)
rp   rq   rr   r   r   r   r1  r4  rC  rE  r5   r/   r"   r,  r,  x  s    [[V%781 91A [[($/&-($/)40'.($/	

1
1 [[ 'q1'q1'q1($2&a0'q1	

1
1r/   r,  c                      e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Z	d	 Z
d
 Zd Zd Zd Zd Zd Zej
                  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y)TestSeriesComparisonc                 D   t        g d      }t        ddg      }d}t        j                  t        |      5  ||k   d d d        t        ddg      }t        g d      }t        j                  t        |      5  ||k(   d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)	Nr   r   r   r   r   z'only compare identically-labeled Seriesr   rX   r&   )r&   rv   r}   )r   r   r   r3  )r_   r   r   r   s       r"    test_comparison_different_lengthz5TestSeriesComparison.test_comparison_different_length  s    ?#C:7]]:S1 	E	 Aq6N9]]:S1 	F	 		 	
	 	s   B
;B
BBrJ   )r5  r6  r:  r8  r9  r7  c                     t        g dt        d            }d} t        ||      |      j                  }t	        j
                  d      }||k(  sJ y )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  sN     YeAh/%f%e,3388F#!!!r/   c                     t        g dt        d            }|j                  d d }d} t        ||      |      j                  }t        j                  d      }||k(  sJ y )Nr<  rv   r   r   r&   rL  )r   rF   r   r[   rM  r(   rD   )r_   rJ   r   r   rN  rf   rg   s          r"   %test_ser_flex_cmp_return_dtypes_emptyz:TestSeriesComparison.test_ser_flex_cmp_return_dtypes_empty  s]     YeAh/!''.5588F#!!!r/   names))NNN)r   barN)bazrT  rT  c                    |}t        ddd|d         }t        |      j                  |d         } |||      }|j                  |d   k(  sJ |j	                  d      }t        j                  |d	
      }t        |      j                  |d         } |||      }|j                  |d   k(  sJ ||j                  d      z
  }t        |      j                  |d         } |||      }|j                  |d   k(  sJ |t        j                  t        j                  fv rUt        j                  dd|d         }t        |      j                  |d         } |||      }|j                  |d   k(  sJ |t        j                  t        j                  fv rL|j                  d      }	t        |	      j                  |d         } |||	      }|j                  |d   k(  sJ y y )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\   r5  r6  interval_ranger   )
r_   rR  r.  rd   r  r   rf   tdiiicidxs
             r"   test_ser_cmp_result_namesz.TestSeriesComparison.test_ser_cmp_result_names  s   
 .S!%PQ(SSk  q*C{{eAh&&& ool+s1Sk  q*C{{eAh&&& CIIaL Sk  q*C{{eAh&&& (++x{{++""AE!HEB*##E!H-CR[F;;%(*** (++x{{++::j)D,%%eAh/CT]F;;%(*** ,r/   c                 >   t        g d      }t        g d      }t        g d      }|rdd l}d}t        j                  |j                  j
                  |      5  ||k(   d d d        t        j                  t        dd	      5  t        j                  |j                  j
                  |      5  ||k(   d d d        d d d        y t        j                  ||k(  |       t        j                  ||k(  |       y # 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)
NrI  )FTFFFFr   zhas no kernelr   
comparisonF)r   check_stacklevel)
r   pyarrowr   r   r   ArrowNotImplementedErrorr]   r(  DeprecationWarningr   )r_   using_infer_stringsr   r   par   s          r"   test_comparisonsz%TestSeriesComparison.test_comparisons  s    ?#() *+ !Crvv>>cJ R++",  ]]266#B#B#N !G  ""17C0""27C0 
  s0   C;,D1D7D;DD	DD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(  j                         rJ |dk7  |dk(   k(  j                         sJ d|k(  j                         rJ |dk(  d   sJ d|k(  d   sJ d|k7  d   rJ ||k(  j                         sJ ||k7  j                         rJ |t        |      k(  j                         sJ ||k(  j                         sJ ||k(  j                         sJ ||k(   ||k7  k(  j                         sJ ||k(   ||k7  k(  j                         sJ ||k(  j                         rJ ||k(  j                         rJ ||k(  j                         rJ ||k(  j                         rJ ||k(  j                         sJ ||k(  j                         sJ ||k(  j                         rJ ||k(  j                         rJ ||k(   ||k7  k(  j                         sJ ||k(   ||k7  k(  j                         sJ ||k(   ||k7  k(  j                         sJ ||k(   ||k7  k(  j                         sJ d	}t	        j
                  t        |
      5  ||k   d d d        t	        j
                  t        |
      5  ||k   d d d        t	        j
                  t        |
      5  ||kD   d d d        t	        j
                  t        |
      5  ||kD   d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)Nr=  rY  rC   object)r   r   ccacbr   r    can only compare equality or notr   )r   rB  r	   r   r   r   r   )r_   r   r   r   r   r   fr   s           r"   test_categorical_comparisonsz1TestSeriesComparison.test_categorical_comparisons  sP    4;j14;h/#844;h/U$U$ H>>###cSk)..0001H>>###S!}}q!}}1Ha=   Q||~~F<<>!!T!W!!###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 	E	]]9C0 	E	]]9C0 	E	]]9C0 	E	 		 		 		 		 	s0   =M&MM8M+MMM(+M4c                    t        t        t        d                  }d}t        j                  t
        |      5  |dkD   d d d        t        t        t        d      d            }t        j                  t
        |      5  |dkD   d d d        t        t        t        d      d            }d}t        j                  t
        |      5  |d	k   d d d        t        j                  t
        |      5  |d	kD   d d d        t        j                  t
        |      5  d	|k   d d d        t        j                  t
        |      5  d	|kD   d d d        t        j                  |d	k(  t        g d
             t        j                  |d	k7  t        g d             y # 1 sw Y   `xY w# 1 sw Y   %xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr=  rq  r   r   F)orderedTz1Invalid comparison between dtype=category and strr   rc  )TTT)r   r	   rB  r   r   r   r]   r   )r_   r  r   s      r"   5test_unequal_categorical_comparison_raises_type_errorzJTestSeriesComparison.test_unequal_categorical_comparison_raises_type_errorG  s   [e-.0]]9C0 	#I	 [ee<=]]9C0 	#I	 [ed;<A]]9C0 	#I	]]9C0 	#I	]]9C0 	#I	]]9C0 	#I	 	scz62G+HI
scz62D+EF/	 		 		 		 		 		 	sG   FF,F96GGGF),F69GGGG&c                    t        ddg      }|dk(  }t        ddg      }t        j                  ||       |dk7  }t        ddg      }t        j                  ||       |dk(  }t        ddg      }t        j                  ||       |dk7  }t        ddg      }t        j                  ||       t        ddg      }|dk(  }t        ddg      }t        j                  ||       |dk7  }t        ddg      }t        j                  ||       y )N)rX   rX   )rX   r&   FT)r   r   r   )r_   rj  rf   rg   s       r"   test_comparison_tuplesz+TestSeriesComparison.test_comparison_tuplesf  s    FF#$f5$-(
vx0f4-(
vx0f5%.)
vx0f4,'
vx0FF#$f4,'
vx0f5%.)
vx0r/   c                     t        t        dg      t        ddg      g      }|t        dg      k(  }t        ddg      }t        j                  ||       y )NrX   r&   TF)r   	frozensetr]   r   r_   r   rf   rg   s       r"   test_comparison_frozensetz.TestSeriesComparison.test_comparison_frozenset  sN    iniA&789	1#&4-(
vx0r/   c                 *   t        t        dd      t              }t        j                  |d d d<   |d   } |||      } ||j                         |      j                  |j                        }d}t        j                  t        |      5  |t        j                  u r%|j                  d	      j                  t              }n$|j                  d
      j                  t              }d d d        t        j                   ||       y # 1 sw Y    xY w)Nr   rB   rS   rC   r&   r?   zDowncasting object dtype arraysr   TF)r   r   rn  r(   r   dropnar   rV   r]   r(  FutureWarningr\   r6  r   r   rL  r   )r_   r.  r   r   rf   rg   r   s          r"   "test_comparison_operators_with_nasz7TestSeriesComparison.test_comparison_operators_with_nas  s    [R8G66CaC !fsC( s3;;CIIF/''SA 	?+#??4077=#??5188>		? 	vx0	? 	?s   AD		Dc                     t        g dg dt              }t        j                  g d      }t	        j
                  |j                  dk7  |       t	        j
                  |j                  dk(   |       y )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  sR    O_EB88;<
##BHHM8<
##bhh!m$4h?r/   zleft, rightru   ABCr7   rU   r>  ABD)r&   r&   r&   r&   ABCDc                    |t         ur1d|j                   d}|j                         }|j                         }nd|j                   d}t        j                  t
        |      5  ||k(   d d d        t        j                  t
        |      5  ||k(   d d d        t        j                  t
        |      5  ||k7   d d d        t        j                  t
        |      5  ||k7   d d d        t        j                  t
        |      5  ||k   d d d        t        j                  t
        |      5  ||k   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   y xY w)Nz@Can only compare identically-labeled \(both index and columns\) z objectsz%Can only compare identically-labeled r   )r   rp   r   r   r   r3  )r_   r/  r0  frame_or_seriesr   s        r"   test_comp_ops_df_compatz,TestSeriesComparison.test_comp_ops_df_compat  sg     &(S"++,H6  ==?DNN$E 88P8P7Q R  
 ]]:S1 	EM	]]:S1 	TM	 ]]:S1 	EM	]]:S1 	TM	 ]]:S1 	5L	]]:S1 	DL	 		 		 		 		 		 		 	sH   %EE7E E%	E12E=E
EE"%E.1E:=Fc                 n    t        g d      }|dk(  }t        g d      }t        j                  ||       y )N)	IntervalA	IntervalB	IntervalCr  )TFFr   r{  s       r"   $test_compare_series_interval_keywordz9TestSeriesComparison.test_compare_series_interval_keyword  s2    <=#./
vx0r/   N)rp   rq   rr   rJ  r   r   r   rO  rQ  ra  rl  rs  rv  rx  r|  r  r  r   rB  r  r  r5   r/   r"   rG  rG    s#   
 [[X'KL" M" [[X'KL" M" [[R#+#+J126pG>1>11&@ [[ yU#>yU#>
 yU#>|4<cB		
>1r/   rG  c                   $    e Zd Zd Zd Zd Zd Zy)TestTimeSeriesArithmeticc                 6   t        dddd      }t        j                  j                  d      j	                  d      d d }t        t        j                  j                  d      j                  d      |j                  |      j                  d      	      }t        j                  j                  d      j	                  d      d d }t        t        j                  j                  d      j                  d      |j                  |      j                  d
      	      }||z   }|j                  d      }|j                  d      }||z   }|j                         }|j                  j                  t        j                  u sJ t        j                  ||       y )N1/1/2011d   rV  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  sD   SsuEyy$$Q'33C8"=II!!!$44R8((4.++L9

 yy$$Q'33C8"=II!!!$44R8((4.++O<

 u%u%$; &&(||(,,...
vx0r/   c                    t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }|j                  d      }d}t        j                  t        |	      5  ||z    d d d        t        j                  t        |	      5  ||z    d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)
Nr  rB   rV  r   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_raises  s    Rc:RYY**1-==c#hGsS//%(@]]9C0 	'M	 ]]9C0 	cM	 		 		 	s   ?B7(C7C Cc                 
   t        t        dd|            }t        j                  j	                  d      }||z
  }t        j
                  g d      j                  |      }t        |      }t        j                  ||       y )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	  so     
<FG&&A&.&..!KLTT
 '?
vx0r/   c                    t        dd      }t        t        j                  j	                  d      j                  d      |      }|dd  }|j                         }|j                  D cg c]  }|j                          c}|_        ||z   }||z   }||dd  z   }|j                  j                  d       |_        t        j                  ||       t        j                  ||       y c c}w )Nr   rR   rS   r&   r   r?   )r   r   r(   r)   r*   r   r   rV   r   
_with_freqr]   r   )	r_   r   r2   ts_slicets2r7   rf   r   rg   s	            r"   *test_align_date_objects_with_datetimeindexzCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindex  s    R0BII))!,<<R@Lab6mmo'*yy1!QVVX1	c(12;!2248
vx0
w1 2s   *C(N)rp   rq   rr   r  r  r  r  r5   r/   r"   r  r    s    16
12r/   r  c            	           e Zd Zej                  j                  deeej                  e
eej                  g      ej                  j                  dddg      d               Zd Zd Zy)	TestNamePreservationboxflexTFc                 b   |}t        t        d      |d         }t        t        d      |d         }|j                  j                  d      }|dv }	d}
d }|t        t
        fv r|	rt        } ||      }|r|	ry  t        ||      |      }n)t        j                  ||
      5   |||      }d d d        t        t               sJ |t        t         fv r'|j                  |d	   u s|j                  |d	   k(  sJ y y |j                  |d   u s|j                  |d   k(  sJ y y # 1 sw Y   wxY w)
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   striprB  tupler  r[   r]   r(  
isinstancer   rW   )r_   r  r  rR  all_binary_operatorsrd   r/  r0  rW   
is_logicalr   warnrf   s                r"   test_series_ops_name_retentionz3TestNamePreservation.test_series_ops_name_retention&  s?    "eBieAh/uRyuQx0{{  %HH
# 	 4-J DE
(WT4(/F ++D< )D%) &&)))5&/!;;%(*fkkU1X.EEE.E*;;%(*fkkU1X.EEE.E*) )s   %
D%%D.c                    ||z  }|j                   |j                   k(  sJ |j                  |      }|j                   |j                   k(  sJ ||d d z  }|j                   |j                   k(  sJ |j                         }d|_         ||z   }|j                   J |j                  |      }|j                   J g d}||D cg c]  }d|z   	 c}z   }|D ]v  }|j                         } t	        ||      |      }|j                   |j                   k(  sJ |j                         }d|_          t	        ||      |      }|j                   vJ  y c c}w )Nzsomething else)rK   rL   rM   r   rO   rN   modrP   rY   changed)rW   rM   r   rK   r[   )r_   r   rf   cpr   rd   r   s          r"   test_binop_maybe_preserve_namez3TestNamePreservation.test_binop_maybe_preserve_nameK  sk    ?2{{o22222 $$_5{{o22222 ?3B#77{{o22222 !!#" 2%{{""" $$R({{"""O,"S2X,, 
	'B!&&(C%WS"%c*F;;/"6"6666 !%%'BBG%WS"%b)F;;&&&
	' -s   Ec                 D    |dz  }|j                   |j                   k(  sJ y r%   rx   )r_   r   rf   s      r"   test_scalarop_preserve_namez0TestNamePreservation.test_scalarop_preserve_namek  s$     1${{o22222r/   N)rp   rq   rr   r   r   r   rB  r  r(   r  r   r   r   r  r  r  r5   r/   r"   r  r  %  sf    [[UT5"((E6288$TU[[VdE]3!F 4 V!FF'@3r/   r  c                   P    e Zd Zej                  j                  dd      d        Zy)TestInplaceOperationsz)dtype1, dtype2, dtype_expected, dtype_mul))r  r  r  r  )r  r  r  r  )r  r  r  r  )r  r  r  r  c                 2   t        dg|      }t        dg|      }||z  }t        dg|      }t        j                  ||       ||z  }t        dg|      }t        j                  ||       ||z  }t        dg|      }t        j                  ||       y )NrX   rC   r&   rv   r   )r_   dtype1dtype2dtype_expected	dtype_mulr  r  rg   s           r"   test_series_inplace_opsz-TestInplaceOperations.test_series_inplace_opsq  s     qc(qc(1#^4
tX.1#^4
tX.1#Y/
tX.r/   N)rp   rq   rr   r   r   r   r  r5   r/   r"   r  r  p  s+    [[3	
//r/   r  c                    |}t        |      dk  r/| j                  t        j                  j	                  d             t
        j                  |j                  d<   |d k(  }|j                  d   rJ |j                  d   rJ |d k7  }|j                  d   sJ |j                  d   sJ d |k(  }|j                  d   rJ |j                  d   rJ d |k7  }|j                  d   sJ |j                  d   sJ t        j                  |j                  d      st        |j                  t              rUd}t        j                  t        |      5  d |kD   d d d        t        j                  t        |      5  |d kD   d d d        y d |kD  }|j                  d   rJ |j                  d   rJ |d k  }|j                  d   rJ |j                  d   rJ y # 1 sw Y   xY w# 1 sw Y   y xY w)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KK%LM	
 VVFKKN t^Fzz!}zz!} t^F::a==::a==V^Fzz!}zz!}V^F::a==::a==
v||S)Zo-V #]]9C0 	6M	]]9C0 	TM	 	 ::a=  ::a=  $::a=  ::a=  =	 		 	s   G9G#G #G,c            	      <   t        t        d      t        j                  j	                  t        d      t        d      ddggg d            } t        t        dd	      D cg c]  }d
|z  	 c}t        j                  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                  j                  g dg d            }t        j                  ||       y c c}w )N   abxyrX   r&   )r  r  num)rR  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_productrB  loc
IndexSlicefrom_tuplesr]   r   )r   r   r   rf   rg   s        r"   'test_series_varied_multiindex_alignmentr    s    	amm(($ZdaV,4G ) 

B 
 A;'a'mm(($t*q!f)=dE](S
B VVBMM3%A+./"4F mm''H% ( 
H 68, 	(s   "Dc                      t        dgdz        j                  d      } t        dgdz        }t        j                  | |       y )Nr&   i'  r   rX   )r   rmodr]   r   )rf   rg   s     r"   !test_rmod_consistent_large_seriesr    s=    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,  rG  r  r  r  r  r  r  r5   r/   r"   <module>r     s    
      5 	 	 	   7 ; a\	87LM NDr rjQ1 Q1p31 31lh1 h1b	C2 C2LH3 H3V/ /8-!`-.-r/   