
    A>id                   z   % S SK Jr  S SKJr  S SKJr  S SKrS SKrS SK	r	S SK
Jr  S SKJr  S SKJrJrJr  S SKJs  Jr  S SKJrJrJrJr  S SKrS S	KJrJrJrJ r J!r!J"r"  S SK#J$r%  S S
K&J'r'J(r(  S SK)J*r*  S SK+J,r,J-r-J.r.  S SK/J0r0J1r1  S SK2J3r3J4r4J5r5J6r6  S SK7J8r8  S SK9J:r:  \" SSS9r;\	Rx                  " S \* 5       S9S 5       r=\	Rx                  " \'R|                  S9S 5       r?S r@\	Rx                  " \A" \B" S5      5      / SQS9S 5       rC\CrD\CrE\	Rx                  S 5       rF " S S5      rG " S  S!5      rHS" rI " S# S$5      rJ " S% S&5      rK " S' S(5      rL\R                  R                  S)5      R                  S*5      rP " S+ S,5      rQ\R                  " S5      S- 5       rS\R                  " S5      \	R                  R                  S.S/5      S0 5       5       rV\R                  " S5      S1 5       rW\R                  " S5      S2 5       rX\.\(R                  \-S3.rZS4\[S5'   \	R                  R                  S6\*5      \	R                  R                  S7\Z5      S8 5       5       r\S9 r]S: r^\	R                  R                  S;/ S<Q5      S= 5       r_S> r`S? raS@ rbSA rc\	R                  R                  SBSC5      \	R                  R                  SD\d\e45      \	R                  R                  SE\d\e45      SF 5       5       5       rf\	R                  R                  SGSHSI/5      SJ 5       rgSK rh\	R                  R                  SLSMSN/5      SO 5       riSP rj\	R                  R                  SL\8R                  " 5       5      SQ 5       rlSR rm\	R                  R                  SSSTSU/ SVQSW/5      SX 5       rn\R                  " S5      SY 5       roSZ rpg)[    )annotations)reduce)productN)PY312)import_optional_dependency)NumExprClobberingErrorPerformanceWarningUndefinedVariableError)is_boolis_floatis_list_like	is_scalar)	DataFrameIndexSeries
date_rangeperiod_rangetimedelta_range)exprpytables)ENGINES)BaseExprVisitorPandasExprVisitorPythonExprVisitor)NUMEXPR_INSTALLEDUSE_NUMEXPR)ARITH_OPS_SYMS_binary_math_ops_binary_ops_dict_unary_math_ops)DEFAULT_GLOBALS)Versionnumexprignore)errorsc              #     #    U  Ho  n[         R                  " U[         R                  R                  US :H  =(       a    [        (       + S[         S[
         3S9[        R                  " S 5      /S9v   Mq     g7f)r#   znumexpr enabled->z, installed->reasonmarksN)pytestparammarkskipifr   r   td
skip_if_no).0engines     a/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/computation/test_eval.py	<genexpr>r4   ?   sw       F 	""i';O.{m <""3!46 # 
 i(
	
 s   A7A9)paramsc                    U R                   $ Nr,   requests    r3   r2   r2   >   s    " ==    c                    U R                   $ r7   r8   r9   s    r3   parserr=   R   s    ==r;   c                    [         U   n[        U   R                  (       a	   U" X5      $ U" X5      $ ! [         a:  n[	        U5      R                  S5      (       a  [        R                  s S nA$ e S nAff = f)Nz6negative number cannot be raised to a fractional power)r   r   has_neg_frac
ValueErrorstr
startswithnpnan)lhscmp1rhsr2   ces         r3   _eval_single_binrJ   W   sn    Av##	S; S;  	1v  H  vv	s    3 
A7.A2+A71A22A7   )r   r   	SeriesNaNDataFrameNaNfloat)r5   idsc                N   [         R                  R                  S5      nU R                  S:X  a  [	        UR                  S5      5      $ U R                  S:X  a  [        UR                  S5      5      $ U R                  S:X  a,  [        SS[         R                  [         R                  S/5      $ U R                  S:X  a1  [	        UR                  S5      5      n[         R                  X"S:  '   U$ U R                  S:X  a  UR                  5       $ [        U R                   5      e)	N   r   )
   rK      rK            ?   )	rC   randomdefault_rngr,   r   standard_normalr   rD   r@   )r:   rngnan_df1s      r3   rE   rE   f   s    
 ))


"C}},,W566	!	c))!,--	!	q!RVVRVVQ/00	!	C//89!##	!	""$$GMM?,,r;   c                      S S S S S S S.$ )Nc                Z    [        [        R                  " U 5      [        R                  S9$ Ndtype)r   rC   arangeint64ns    r3   <lambda>idx_func_dict.<locals>.<lambda>   s    uRYYq\:r;   c                Z    [        [        R                  " U 5      [        R                  S9$ r^   )r   rC   ra   float64rc   s    r3   re   rf      s    uRYYq\<r;   c           
     x    [        [        SSU -   5       Vs/ s H  o S[        U5       3PM     sn5      $ s  snf )Na   _)r   rangechr)rd   is     r3   re   rf      s4    uuRa7HI7H!1SVHo7HIJIs   7c                    [        SU S9$ )N
2020-01-01periods)r   rc   s    r3   re   rf      s    
<;r;   c                    [        SU S9$ )Nz1 dayrq   )r   rc   s    r3   re   rf      s    ;r;   c                    [        SU SS9$ )Nrp   D)rr   freq)r   rc   s    r3   re   rf      s    |L!#Fr;   )rn   fsdtr/   p r{   r;   r3   idx_func_dictr|      s      ;<J;;F r;   c            
         \ rS rSr\R
                  R                  S/ SQ/ SQS9\R
                  R                  SSS/S	S
/S9\R
                  R                  S\R                  5      S 5       5       5       r	\R
                  R                  S\R                  5      S 5       r\R
                  R                  S\R                  5      S 5       r\R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       r\R
                  R                  S\" \" \5      R#                  1 Sk5      5      5      S 5       rS rS r\R,                  S 5       rS rS rS rS rS r\R
                  R                  S\R<                  R?                  S5      RA                  S5      \R<                  R?                  S5      RC                  S SS!9\RD                  " / S"Q\RF                  S#9/5      S$ 5       r$\R
                  R                  S\R<                  R?                  S5      RA                  S 5      \R<                  R?                  S5      RC                  S S S!9\RD                  " / S"Q\RF                  S#9/5      S% 5       r%S& r&S' r'\R
                  R                  S(S)S*/5      S+ 5       r(S, r)\R
                  R                  S-S.5      S/ 5       r*S0 r+S1 r,S2 r-S3 r.S4 r/S5 r0S6 r1S7 r2S8r3g9):TestEval   rF   )z!=z==z<=z>=<>)neeqlegeltgt)rO   cmp2r   r   r   r   binopc                   US:X  aL  US;   aF  SnSU SU SU S3n	[         R                  " [        US9   [        R                  " XUS	9  S S S 5        g [        XAXV5      n
[        XBXV5      n[        XX5      nSU SU SU S3n	[        R                  " XUS	9n[        R                  " X5        g ! , (       d  f       g = f)
Npythonandor"'BoolOp' nodes are not implemented(lhs z rhs) z (lhs  rhs)matchr2   r=   )r+   raisesNotImplementedErrorpdevalrJ   tmassert_equal)selfrF   r   r   rE   rG   r2   r=   msgexlhs_newrhs_newexpectedresults                 r3   test_complex_cmp_opsTestEval.test_complex_cmp_ops   s     X%="86CfUG6$u=B2#>&9 ?"3c:"3c:#GGDTF&vdV596:
) ?>s   B//
B=cmp_opc           	     8   US:  nUS:  nUS:X  aF  US;   a@  SnSU S3n[         R                  " [        US9   [        R                  " XtUS9  S S S 5        g SU S3nS	R                  S
S/5      nUS;   aL  [        U5      (       d<  [         R                  " [        US9   [        R                  " UUUX#S.S9  S S S 5        g [        X!X45      n[        R                  " XtUS9n	[        R                  " X5        g ! , (       d  f       g = f! , (       d  f       g = f)Nr   r   innot in&'(In|NotIn)' nodes are not implementedlhs  rhsr   r   |zvonly list-like( or dict-like)? objects are allowed to be passed to (DataFrame\.)?isin\(\), you passed a (`|')bool(`|')z'argument of type 'bool' is not iterablerE   rG   r2   r=   
local_dict)r+   r   r   r   r   joinr   	TypeErrorrJ   r   r   )
r   r   rE   rG   r2   r=   r   r   r   r   s
             r3   test_simple_cmp_opsTestEval.test_simple_cmp_ops   s   AgAgX&,<"<:Cxt$B2#>&9 ?F84 hh" :	
 %%l3.?.?y4!!'*7	 54 (SAHWWRv>FOOF-1 ?> 54s   C:D:
D
Dopc           	     x   US:X  aF  US;   a@  SnSU S3n[         R                  " [        US9   [        R                  " XUS9  S S S 5        g [        U5      (       aP  [        U5      (       d@  US;   a:  US:X  a4  US:X  a.  [         R                  R                  S	S
9n	UR                  U	5        SS/n
SU S3nSR                  SS/5      n[        U5      (       aA  X;   a<  [         R                  " [        US9   [        R                  " UUUX#S.S9  S S S 5        g [        U5      (       a  [        U5      (       a  S X#4 5       u  p#[        X!X55      n[        U5      (       a  U(       + nOU) n[        R                  " XUS9n[        R                  " X5        g ! , (       d  f       g = f! , (       d  f       g = f)Nr   r   r   z~(lhs r   r   r   pandasz]Looks like expected is negative, unclear whether expected is incorrect or result is incorrectr'   r   r   r   zwonly list-like( or dict-like)? objects are allowed to be passed to (DataFrame\.)?isin\(\), you passed a (`|')float(`|')z(argument of type 'float' is not iterabler   r   c              3  P   #    U  H  n[         R                  " U/5      v   M     g 7fr7   )rC   arrayr1   xs     r3   r4   3TestEval.test_compound_invert_op.<locals>.<genexpr>   s     >:aBHHaSMM:s   $&)r+   r   r   r   r   r   r-   xfailapplymarkerr   r   r   rJ   r   assert_almost_equal)r   r   rE   rG   r:   r2   r=   r   r   r-   
skip_theser   r   s                r3   test_compound_invert_op TestEval.test_compound_invert_op   s   X"(8"8:C"U#B2#>&9 ? SMMSMM&&("(";;$$? % D %H%
bThh# ;	
 S>>b.y4!!'*7	 54 ~~)C..>C:>'=H""'<$9WWRv>F""84[ ?>4 54s   F8F+
F(+
F9c                   UnUS:X  aC  SU SU S3n	Sn
[         R                  " [        U
S9   [        R                  " XUS9  S S S 5        g [        X1X5      n[        XXV5      nUbd  Ub`  SU SU S3n	SU SU S3nS	U S
U S3n[        USX5      nXU4 H/  n[        R                  " UXgS9n[        R                  " UU5        M1     g g g ! , (       d  f       g = f)Nr   r    mid r   r   r   r    mid and mid r    mid) & (mid r   &)r+   r   r   r   r   rJ   r   r   )r   rF   r   rE   midhsrG   r2   r=   midex1r   r   r   ex2ex3r   r   r   s                     r3   test_chained_cmp_opTestEval.test_chained_cmp_op   s     XeD6.C6C2#>6: ?"3c:"3c:7#6eD6.CmD66C$}TF%8C'gFHoFB&&vx8 & $7 ?>s   C
Carith1>   %**//c                   SU S3n[         R                  " XdUS9n[        X!X45      n[        R                  " Xx5        SU SU S3n[         R                  " XdUS9n[        X!X45      n	 U	R                  U5      u  pUS:X  a;  SS KnUR                  SU S35      n[        R                  " UR                  U5        g [        SU S35      n[        R                  " Xx5        g ! [        [        [        4 a     g f = f)	Nr   r   r   z rhs r#   r   znlhs z ghs)r   r   rJ   r   r   alignr#   evaluatevaluesr@   r   AttributeError)r   r   rE   rG   r2   r=   r   r   r   nlhsghsr   s               r3   test_binary_arith_opsTestEval.test_binary_arith_ops  s     F84 6:#C=
v0F85-6:S9	9

3ID "$ ;;vhd';<
 &&v}}h?%xt 45&&v8# I~6 	 	s   )C# #C;:C;c                   Sn[         R                  " XSUS9nX-  n[        R                  " Xg5        US:X  aw  SS KnUR                  S5      n[        U[        [        45      (       a"  [        R                  " UR                  U5        g [        R                  " XgR                  5       5        g [        USX#5      n[        R                  " Xg5        g )Nz	lhs % rhsr   r#   r   zexpected % rhsr   )r   r   r   r   r#   r   
isinstancer   r   r   itemrJ   )	r   rE   rG   r2   r=   r   r   r   r   s	            r3   test_modulusTestEval.test_modulus6  s    6:9
v0Y {{#45H&9f"566&&v}}h?&&v}}?'#sCH""64r;   c                h   SnUS:X  d,  US:X  aV  [        [        R                  5      [        S5      :  a0  [        R                  " XSUS9nX-  n[
        R                  " Xg5        g Sn[        R                  " [        US9   [        R                  " UXS.UUS	9  S S S 5        g ! , (       d  f       g = f)
Nz
lhs // rhsr   r#   2.13.0r   zGunsupported operand type\(s\) for //: 'VariableNode' and 'VariableNode'r   r   r   r2   r=   )
r"   r#   __version__r   r   r   r   r+   r   r   )	r   rE   rG   r2   r=   r   resr   r   s	            r3   test_floor_divisionTestEval.test_floor_divisionH  s    XiGG,?,?$@GHDU$U''"F;CzHOOC*!  y4'*7!!	 544s    B##
B1c                ^   Sn[        USX#5      n[        R                  " XSUS9n[        U5      (       a  [        U5      (       a{  [	        U[
        [        R                  45      (       aV  [        R                  " U5      (       a;  Sn[        R                  " [        US9   [        R                  " Xv5        S S S 5        g [        R                  " Xv5        Sn[        R                  " XSUS9n[        USX#5      n	[        U	SX#5      n[        R                  " Xv5        g ! , (       d  f       g = f)Nz
lhs ** rhsr   r   z-(DataFrame.columns|numpy array) are differentr   z(lhs ** rhs) ** rhs)rJ   r   r   r   r   complexrC   complexfloatingisnanr+   r   AssertionErrorr   assert_numpy_array_equalr   )
r   rE   rG   r2   r=   r   r   r   r   middles
             r3   test_powTestEval.test_pow^  s     #Cs;6: cNN#8gr/A/A%BCC  AC~S9++F= :9 ""64&BWWRv>F%c4=F'cBH""64 :9s    D
D,c                     UR                  [        5      nU) n[
        R                  " SX#S9n[        R                  " XV5        g ! [         a#    [        R                  " [        U5      /5      n N[f = f)Nz~elbr   )	astypeboolr   rC   r   r   r   r   r   )r   rE   r2   r=   elbr   r   s          r3   test_check_single_invert_op$TestEval.test_check_single_invert_opx  sa    	(**T"C 4>
x0	  	(((DI;'C	(s   A *A32A3c                   Sn[        [        R                  R                  S5      R	                  S5      5      nUS:X  a:  Sn[
        R                  " [        US9   [        R                  " X1US9  S S S 5        O9Sn[
        R                  " [        US9   [        R                  " X1US9  S S S 5        [        [        R                  R                  S5      R                  S	SS
95      nUS:X  a`  [        [        R                  5      [        S5      :  a:  Sn[
        R                  " [        US9   [        R                  " X1US9  S S S 5        O.U) n[        R                  " X1US9n[        R                   " Xg5        [        [        R                  R                  S5      R	                  S5      S:  5      nU) n[        R                  " X1US9n[        R                   " Xg5        [        / SQ[        R                  R                  S5      R	                  S5      S:  S.5      nUS:X  a8  [
        R                  " ["        SS9   [        R                  " X1US9  S S S 5        g Sn[
        R                  " [        US9   [        R                  " X1US9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN
= f! , (       d  f       GNR= f! , (       d  f       g = f! , (       d  f       g = f)N~lhsrQ   rK   rQ   r#   -couldn't find matching opcode for 'invert_dd'r   r   0ufunc 'invert' not supported for the input typesrK   sizer   )couldn't find matching opcode for 'invertrU   arS   g       @rT   )brH   unknown type object#bad operand type for unary ~: 'str')r   rC   rW   rX   rY   r+   r   r   r   r   r   integersr"   r#   r   r   assert_frame_equalr@   )r   r2   r=   r   rE   r   expectr   s           r3   test_frame_invertTestEval.test_frame_invert  s1   
 		--a0@@HIYAC2#>F; ?> ECy4F; 5 		--a099!&9IJY77+>+>#?'(BS#S=C2#>F; ?> TFWWT@F!!&1 		--a0@@H3NOV<
f- bii&;&;A&>&N&Nq&QTW&WX
 Yz1FGF; HG 8Cy4F; 54C ?> 54 ?>$ HG 54s<   JJ.0K K=K#
J+.
J= 
K
K #
K1c                   Sn[        [        R                  R                  S5      R	                  S5      5      nUS:X  a:  Sn[
        R                  " [        US9   [        R                  " X1US9nS S S 5        O9Sn[
        R                  " [        US9   [        R                  " X1US9  S S S 5        [        [        R                  R                  S5      R                  SSS	95      nUS:X  a`  [        [        R                  5      [        S
5      :  a:  Sn[
        R                  " [        US9   [        R                  " X1US9  S S S 5        O.U) n[        R                  " X1US9n[        R                   " Xv5        [        [        R                  R                  S5      R	                  S5      S:  5      nU) n[        R                  " X1US9n[        R                   " Xv5        [        / SQ5      nUS:X  a8  [
        R                  " ["        SS9   [        R                  " X1US9  S S S 5        g Sn[
        R                  " [        US9   [        R                  " X1US9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN = f! , (       d  f       g = f! , (       d  f       g = f)Nr   rQ   rK   r#   r   r   r   r   r   r   r   rU   r   r  r  )r   rC   rW   rX   rY   r+   r   r   r   r   r   r  r"   r#   r   r   assert_series_equalr@   )r   r2   r=   r   rE   r   r   r  s           r3   test_series_invertTestEval.test_series_invert  s	    RYY**1-==a@AYAC2#>VD ?> ECy4F; 5 RYY**1-66qq6ABY77+>+>#?'(BS#S=C2#>F; ?> TFWWT@F""62 RYY**1-==a@3FGV<
v. ]#Yz1FGF; HG 8Cy4F; 54G ?> 54 ?>( HG 54s<   I*I<0JJ J1*
I9<
J
J 
J.1
J?c                   Sn[        [        R                  R                  S5      R	                  S5      5      nU* n[
        R                  " X1US9n[        R                  " XV5        [        [        R                  R                  S5      R                  SSS95      nU* n[
        R                  " X1US9n[        R                  " XV5        [        [        R                  R                  S5      R	                  S5      S:  5      nUS:X  a:  S	n[        R                  " [        US
9   [
        R                  " X1US9  S S S 5        g U* n[
        R                  " X1US9n[        R                  " XV5        g ! , (       d  f       g = f)N-lhsrQ   r   r   rK   r   rU   r#   *couldn't find matching opcode for 'neg_bb'r   )r   rC   rW   rX   rY   r   r   r   r  r  r+   r   r   r   r2   r=   r   rE   r  r   r   s           r3   test_frame_negateTestEval.test_frame_negate  s/    		--a0@@HIV<
f- 		--a099!&9IJV<
f- 		--a0@@H3NOY>C2#>F; ?> TFWWT@F!!&1 ?>   'E55
Fc                   Sn[        [        R                  R                  S5      R	                  S5      5      nU* n[
        R                  " X1US9n[        R                  " XV5        [        [        R                  R                  S5      R                  SSS95      nU* n[
        R                  " X1US9n[        R                  " XV5        [        [        R                  R                  S5      R	                  S5      S:  5      nUS:X  a:  Sn[        R                  " [        US	9   [
        R                  " X1US9  S S S 5        g U* n[
        R                  " X1US9n[        R                  " XV5        g ! , (       d  f       g = f)
Nr  rQ   rK   r   r   rU   r#   r  r   )r   rC   rW   rX   rY   r   r   r   r	  r  r+   r   r   r  s           r3   test_series_negateTestEval.test_series_negate  s/    RYY**1-==a@AV<
v. RYY**1-66qq6ABV<
v. RYY**1-==a@3FGY>C2#>F; ?> TFWWT@F""62 ?>r  rE   rQ   r   rK   r   )TFTFTr_   c                x    [        U5      nSnUn[        R                  " XBUS9n[        R                  " XV5        g Nz+lhsr   )r   r   r   r   r  r   rE   r2   r=   r   r  r   s          r3   test_frame_posTestEval.test_frame_pos  s5     nV<
f-r;   c                x    [        U5      nSnUn[        R                  " XBUS9n[        R                  " XV5        g r  r   r   r   r   r	  r  s          r3   test_series_posTestEval.test_series_pos%  s5     SkV<
v.r;   c                   SnS n[         (       a  US:X  a  US:X  d  [        n[        R                  " [        US9   [
        R                  " SXS9  S S S 5        [
        R                  " SX!S9S	:X  d   e[
        R                  " S
X!S9S:X  d   e[
        R                  " SX!S9S:X  d   e[
        R                  " SX!S9S:X  d   e[
        R                  " SX!S9S:X  d   e[        R                  " USSS9   [
        R                  " SX!S9S:X  d   e S S S 5        [        R                  " USSS9   [
        R                  " SX!S9S:X  d   e S S S 5        [
        R                  " SX!S9S:X  d   e[
        R                  " SX!S9S:X  d   e[
        R                  " SX!S9S:X  d   e[
        R                  " SX!S9S:X  d   eg ! , (       d  f       GNy= f! , (       d  f       N= f! , (       d  f       N= f)Nz%bad operand type for unary ~: 'float'r#   r   r   z~1.0r   z-1.0r=   r2   g      z+1.0g      ?z~1z-1z+1rS   zBitwise inversionF)r   check_stacklevelz~Truez~Falsez-Truez-Falser   z+Truez+False)	r   DeprecationWarningr+   r   r   r   r   r   assert_produces_warning)r   r2   r=   r   warns        r3   test_scalar_unaryTestEval.test_scalar_unary8  s   55&I-&H2D%D]]9C0GGF69 1 wwvf<DDDwwvf<DDDwwtF:b@@@wwtF:b@@@wwtF:b@@@''+e
 7776AUJJJ
 ''+e
 778FBfLLL
 wwwv=FFFwwx>&HHHwwwv=FFFwwx>&HHH' 10
 

 
s#   G6G1G&
G
G#&
G4c                    [         R                  " [        R                  " S5      [         R                  S9n[         R                  " / SQ[         R                  S9n[
        R                  " X5        g )Nz>[-True, True, +True, -False, False, +False, -37, 37, ~37, +37]r_   )
r"  TrS   r   Fr   i%   ir*  )rC   r   r   r   object_r   r   )r   r   r   s      r3   test_unary_in_arrayTestEval.test_unary_in_arrayR  sT     GGTU**
 88 **
 	##F5r;   r   zx < -0.1z-5 > xc                    [        S[        R                  " S/US905      nUR                  U5      nUR                  [        R                  " S/5      :X  d   eg )Nr   r   r_   F)r   rC   r   r   r   )r   float_numpy_dtyper   dfr   s        r3   test_float_comparison_bin_op%TestEval.test_float_comparison_bin_opk  sK     RXXqc1BCDEggdmzzRXXug....r;   c                f   [        SSS[        R                  /05      nUR                  S5      nUR                  R                  S5      n[        R                  " X#[        (       + S9  UR                  S5      nUR                  R                  SSS9n[        R                  " X#[        (       + S9  g )	Nr   r   rS   zx.fillna(-1)r"  check_nameszx.shift(1, fill_value=-1))
fill_value)
r   rC   rD   r   r   fillnar   r	  r   shiftr   r0  r   r   s       r3   test_unary_in_functionTestEval.test_unary_in_functionr  s    aBFF^,-(44;;r? 	v_M4544::aB:/
v_Mr;   r   )z1 or 2z1 and 2za and bza or bz1 or 2 and (3 + 2) > 3z2 * x > 2 or 1 and 2z2 * df > 3 and 1 or ac                h   [         R                  R                  S5      R                  S5      SSpen[	        [         R                  R                  S5      R                  S5      5      nSn[
        R                  " [        US9   [        R                  " XUS9  S S S 5        g ! , (       d  f       g = f)NrQ   rT   rS   rT   rQ   ;cannot evaluate scalar only bool ops|'BoolOp' nodes are notr   r   )
rC   rW   rX   rY   r   r+   r   r   r   r   )	r   r   r2   r=   r   r   r   r0  r   s	            r3   test_disallow_scalar_bool_ops&TestEval.test_disallow_scalar_bool_ops  s{     ))''*::1=q!aryy,,Q/??GHK]].c:GGBf5 ;::s   B##
B1c                   Sn[         R                  " SXS9nUS:X  d   e[        U5      (       d   eSn[         R                  " SXS9nUS:X  d   e[        U5      (       d   eSn[         R                  " SXS9nU(       a   e[        U5      (       d   e[        U5      (       d   e[        R
                  " S/5      n[         R                  " SXS9n[        R                  " U[        R
                  " S/5      5        UR                  S:X  d   e[        R
                  " S/5      n[         R                  " SXS9n[        R                  " U[        R
                  " S/5      5        UR                  S:X  d   e[        R
                  " S/5      n[         R                  " SXS9n[        R                  " U[        R
                  " S/5      5        UR                  S:X  d   eg )NrS   r   r   g      ?F)rS   )	r   r   r   r   rC   r   r   r   shape)r   r2   r=   r   r   s        r3   test_identicalTestEval.test_identical  s   V;{{    V;}}    V;zv    HHaSMV;
##FBHHaSM:||t###HHcUOV;
##FBHHcUO<||t###HHeWV;
##FBHHeW,=>||t###r;   c                B    Sn[         R                  " X1US9nUS:X  d   eg )Nz1 + 2 *         5 - 1 + 2 r      r   r   )r   r2   r=   expr   s        r3   test_line_continuationTestEval.test_line_continuation  s%    F;||r;   c                   Sn[         R                  " X1US9n[        R                  " U5      nXE:X  d   e[	        S/ SQ05      nSnUR                  SUS 35      nUR                  (       d   eSnUR                  S	US 35      nUR                  S
S/S S 24   n[        R                  " XT5        SnUR                  SUS 35      nUR                  S
/S S 24   n[        R                  " XT5        g )Nz1000000000.006r   A)g~  eA$  eAg'1  eAg  eAzA < z.4fg   eAzA > rS   rQ   rM  A == )
r   r   rC   rh   r   queryemptylocr   r  )	r   r2   r=   rH  r   r   r0  cutoffexacts	            r3   test_float_truncationTestEval.test_float_truncation  s    F;::c?!!!PQR D-.||| D-.661a&!)$
h/E%-.661#q&>
h/r;   c                l   [        / SQ// SQS9nSn[        R                  " [        US9   UR	                  S5        S S S 5        [        5       nSUR
                  l        [        R                  " [        US9   UR	                  S5        S S S 5        g ! , (       d  f       N]= f! , (       d  f       g = f)	N)r   r   r   )foobarclasscolumnsz4Python keyword not valid identifier in numexpr queryr   z
class == 0lambdazlambda == 0)r   r+   r   SyntaxErrorrO  indexnamer   r0  r   s      r3   test_disallow_python_keywords&TestEval.test_disallow_python_keywords  s}    	{,CDD]];c2HH\" 3 [ ]];c2HH]# 32 32
 32s   B9B%
B"%
B3c                   [         R                  " [        [        SS9   [        R
                  " S5      S:X  d   e[        R
                  " S5      S:X  d   e[        R
                  " S5      S:X  d   e S S S 5        g ! , (       d  f       g = f)	NF)r#  znot Truer!  z	not Falser"  zTrue and not Truer   )r   maybe_produces_warningr$  r   r   r   )r   s    r3   test_true_false_logicTestEval.test_true_false_logic  sq     &&
 77:&",,,77;'2---77./1444
 
 
s   AA>>
Bc                z   [        SS05      n[        R                  " UR                  R	                  S5      R
                   5      (       d   e[        R                  " UR                  R	                  S5      R
                  =(       a%    UR                  R	                  S5      R
                   5      (       d   eg )Nr   hello)r   r   r   rA   r   r   )r   events     r3   test_and_logic_string_match$TestEval.test_and_logic_string_match  s~    W~&ww%))//'24457777ww%))//'244S9Q9S9STVVVVr;   c                    [        / SQSS9R                  5       nUR                  SXS9n[        / SQSS9n[        R                  " XT5        g )N)rQ         r   r_  za + ar   )rV      8   )r   to_framer   r   r	  )r   r2   r=   r0  r   r   s         r3   test_eval_keep_nameTestEval.test_eval_keep_name  sC    Kc*335gggfg<+C0
x-r;   c                p    [        S/SS9n[        R                  " SXS9n[        R                  " X45        g )N*   series_namero  zvariable_name + 0r   r  )r   r2   r=   variable_namer   s        r3   test_eval_unmatching_names#TestEval.test_eval_unmatching_names  s/    t-8gg)&H
}2r;   r{   N)4__name__
__module____qualname____firstlineno__r+   r-   parametrizer   BOOL_OPS_SYMSr   CMP_OPS_SYMSr   r   r   sortedsetr   
differencer   r   r   r/   skip_if_windowsr   r   r  r
  r  r  rC   rW   rX   rY   r  r   bool_r  r  r'  r,  r1  r:  r?  rC  rI  rT  ra  re  rj  rs  ry  __static_attributes__r{   r;   r3   r~   r~      s#   [[*0  
 [[Vc3ZdD\B[[Wd&8&89* : C*  [[Xt'8'89. :.B [[T4#4#4515 615f [[Vc3Z0[[Vc3Z09 1 19. [[&^,778IJK99@5$, 5 521+<Z-<^2434 [[ II!!!$44V<II!!!$--af-=HH5RXXF	

.
. [[ II!!!$44Q7II!!!$--aa-8HH5RXXF	

/
/I462 [[Vj(%;</ =/N [[	
66$B0,
$5W.3r;   r~   c                      \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      S 5       5       rSrg	)
TestTypeCastingi  r   )+-*r   /
left_right)r0  3)r  r0  c                   Un[        [        R                  R                  S5      R	                  S5      US9nUu  pU	 SU SU
 3n[
        R                  " XUS9nUS:X  a4  US:X  a.  [        R                  R                  SS	9nUR                  U5        UR                  R                  U:X  d   eUR                  R                  U:X  d   e[        R                  " U[        U5      S
S9  g )NrQ   rK   rT   r_    r   	complex64r#   zfnumexpr issue with complex that are upcast to complex 128 https://github.com/pydata/numexpr/issues/492r'   F)check_exact)r   rC   rW   rX   rY   r   r   r+   r-   r   r   r   r`   r   r  )r   r2   r=   r   complex_or_float_dtyper  r:   r`   r0  leftrightrx   r   r-   s                 r3   test_binop_typecasting&TestTypeCasting.test_binop_typecasting  s     'ryy,,Q/??GuU fAbT5'"ggav6KFi$7;;$$? % D
 %yy%'''zz5(((
c47>r;   r{   N)	r{  r|  r}  r~  r+   r-   r  r  r  r{   r;   r3   r  r    sG    [[T#=> [[\K+EF? G ??r;   r  c                     [        [        [        R                  " S5      U 5      5      (       + n[	        [        R
                  S U  5       5      nU=(       a    U$ )Nis_monotonic_increasingc              3  ~   #    U  H3  n[        UR                  R                  [        R                  5      v   M5     g 7fr7   )
issubclassr`   typerC   
datetime64r   s     r3   r4   should_warn.<locals>.<genexpr>  s&     M1z!'',,>>s   ;=)anymapoperator
attrgetterr   xor)argsnot_monoonly_one_dts      r3   should_warnr    sH    s8../HI4PQQHMMK ##r;   c                  T   \ rS rSr/ SQr/ \QSPrS r\R                  R                  S5      \R                  R                  S\5      \R                  R                  S\5      \R                  R                  S\5      S	 5       5       5       5       r\R                  R                  S
\5      \R                  R                  S\5      S 5       5       r\R                  R                  S5      \R                  R                  S\5      \R                  R                  S\5      \R                  R                  S\5      \R                  R                  S\5      S 5       5       5       5       5       r\R                  R                  S5      \R                  R                  SSS/5      \R                  R                  S\5      \R                  R                  S
\5      S 5       5       5       5       r\R                  R                  SSS/5      \R                  R                  S/ \" \" SS/SS/5      5      QSP5      \R                  R                  S5      S 5       5       5       r\R                  R                  S5      \R                  R                  S\5      \R                  R                  S
\5      \R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       5       5       5       r\R                  R                  S5      \R                  R                  S\5      \R                  R                  S\5      \R                  R                  S\5      \R                  R                  S\5      S 5       5       5       5       5       rS rS rg!)"TestAlignmenti$  )rn   rx   ry   rx   c                    Sn[        [        R                  R                  S5      R	                  S5      5      n[
        R                  " X1US9n[        R                  " XTS-  5        g )Nzdf * ~2rQ   r  r   )	r   rC   rW   rX   rY   r   r   r   r  )r   r2   r=   rx   r0  r   s         r3   test_align_nested_unary_op(TestAlignment.test_align_nested_unary_op(  sM    ryy,,Q/??GHggav6
c7+r;   zalways::RuntimeWarninglr_idx_typerr_idx_type
c_idx_typec                Z   [        [        R                  R                  S5      R	                  S5      Xc   " S5      Xe   " S5      S9n[        [        R                  R                  S5      R	                  S5      Xd   " S5      Xe   " S5      S9n[        UR                  UR                  5      (       a9  [        R                  " [        5         [        R                  " SXS9n	S S S 5        O[        R                  " SXS9n	[        R                  " W	Xx-   5        g ! , (       d  f       N(= f)	NrQ   rR   rR   rR   r^  r[  )   rR   r  zdf + df2r   r   rC   rW   rX   rY   r  r^  r   r%  RuntimeWarningr   r   r  )
r   r2   r=   r  r  r  r|   r0  df2r   s
             r3   test_basic_frame_alignment(TestAlignment.test_basic_frame_alignment.  s     II!!!$44X>,R0!-b1

 II!!!$44X>,R0!-b1
 rxx++++N;ggjG <; ''*VCC
c28,	 <;s   D
D*
r_idx_typec                   [        [        R                  R                  S5      R	                  S5      XS   " S5      XT   " S5      S9n[
        R                  " SXS9n[        R                  " XvS:  5        [        [        R                  R                  S5      R	                  UR                  5      UR                  UR                  S9n[
        R                  " SXS9n[        R                  " XvU:  5        g )NrQ   r  rR   r  df < 2r   zdf < df3)r   rC   rW   rX   rY   r   r   r   r  rB  r^  r[  )	r   r2   r=   r  r  r|   r0  r   df3s	            r3   test_frame_comparison#TestAlignment.test_frame_comparisonG  s    
 II!!!$44X>+B/!-b1

 gghv=
c6*II!!!$44RXX>((JJ

 ggj?
c8,r;   ignore::RuntimeWarningr1c1r2c2c                   [        [        R                  R                  S5      R	                  S5      Xs   " S5      Xt   " S5      S9n[        [        R                  R                  S5      R	                  S5      Xu   " S5      Xv   " S5      S9n	[        [        R                  R                  S5      R	                  S5      Xu   " S5      Xv   " S5      S9n
[        UR                  U	R                  U
R                  5      (       a9  [        R                  " [        5         [        R                  " S	XS
9nS S S 5        O[        R                  " S	XS
9n[        R                  " WX-   U
-   5        g ! , (       d  f       N+= f)NrQ   r=  rT   r  )rV   rQ   rV   r   rK   zdf + df2 + df3r   r  )r   r2   r=   r  r  r  r  r|   r0  r  r  r   s               r3   #test_medium_complex_frame_alignment1TestAlignment.test_medium_complex_frame_alignment\  s5    II!!!$44V<#A&!%a(

 II!!!$44V<#A&!%a(

 II!!!$44V<#A&!%a(

 rxxCII66++N;gg.vM <; ''*6IC
c28c>2	 <;s    E11
E?
index_namer^  r[  c                   [        [        R                  R                  S5      R	                  S5      Xd   " S5      Xe   " S5      S9n[        Xs5      n[        [        R                  R                  S5      R	                  S5      US S 5      n	[        UR                  U	R                  5      (       a9  [        R                  " [        5         [        R                  " SXS9n
S S S 5        O[        R                  " SXS9n
US:X  d  US:X  a  US	:X  a  UR                  U	5      OXy-   nOXy-   n[        R                  " W
U5        g ! , (       d  f       NR= f)
NrQ   r  rR   r  rK   df + sr   ry   r#   )r   rC   rW   rX   rY   getattrr   r  r^  r   r%  r  r   r   addr  )r   r2   r=   r  r  r  r|   r0  r^  rx   r   r   s               r3   !test_basic_frame_series_alignment/TestAlignment.test_basic_frame_series_alignmentz  s    II!!!$44X>+B/!-b1

 '299((+;;A>bq	Jrxx))++N;gghvE <; ''(6ACt!3$*i$7rvvayRVHvH
c8, <;s   E
Ezr_idx_type, c_idx_typern   )ry   ry   c           
     d   US:X  aV  US;   aP  US:X  aJ  US:X  aD  US:X  a>  SU SU SU S	U S
U 3
nUR                  [        R                  R                  USS95        [	        [
        R                  R                  S5      R                  S5      Xu   " S5      Xv   " S5      S9n	[        X5      n
[        [
        R                  R                  S5      R                  S5      U
S S 5      n[        UR                  U	R                  5      (       a9  [        R                  " [        5         [         R"                  " SX#S9nS S S 5        O[         R"                  " SX#S9nUS:X  d  US:X  a  US:X  a  U	R%                  U5      OX-   nOX-   n[        R&                  " WU5        g ! , (       d  f       NR= f)Nr#   )r   r   r^  rn   rx   z"Flaky column ordering when engine=z	, parser=z, index_name=z, r_idx_type=z, c_idx_type=F)r(   strictrQ   )rR      rR   r  r  rK   zs + dfr   ry   )r   r+   r-   r   r   rC   rW   rX   rY   r  r   r  r^  r   r%  r  r   r   r  r  )r   r:   r2   r=   r  r  r  r|   r(   r0  r^  rx   r   r   s                 r3   !test_basic_series_frame_alignment/TestAlignment.test_basic_series_frame_alignment  s    i..g%c!c! 5VH = zl ;(\zlD 
  1 1 1 NOII!!!$44W=+B/!-a0

 '299((+;;A>bq	Jqww))++N;gghvE <; ''(6ACt!3$*i$7rvvayQVHvH
c8, <;s   )F!!
F/r   r  r  c                R   [        [        R                  R                  S5      R	                  S5      Xu   " S5      Xv   " S5      S9n[        X5      n	[        [        R                  R                  S5      R	                  S5      U	S S 5      n
SU S3nSU S	3n[        UR                  U
R                  5      (       aq  [        R                  " [        5         [        R                  " XUS
9nS S S 5        [        R                  " [        5         [        R                  " XUS
9nS S S 5        O*[        R                  " XUS
9n[        R                  " XUS
9nUS:w  a&  US:w  a  US:X  a  [        R                  " WW5        g g g g ! , (       d  f       N= f! , (       d  f       NL= f)NrQ   r  rR   r  rK   zs z dfzdf z sr   ry   r#   )r   rC   rW   rX   rY   r  r   r  r^  r   r%  r  r   r   r  )r   r2   r=   r  r   r  r  r|   r0  r^  rx   rE   rG   r   r   s                  r3   test_series_frame_commutativity-TestAlignment.test_series_frame_commutativity  sW    II!!!$44X>+B/!-b1

 '299((+;;A>bq	J2$clB4rlrxx))++N;GGCv> <++N;GGCv> <; 6:A6:A*"4"%%a+ # #5 <;;;s   FF
F
F&c                   SnSn	SU	-  n
[        [        R                  R                  S5      R	                  X45      Xs   " U	5      Xt   " U5      S9n[        [        R                  R                  S5      R	                  X45      Xu   " U
5      Xv   " U5      S9nUR
                  n[        [        R                  R                  S5      R	                  U5      US U 5      nUS:X  d  US:X  a  US:X  a  UR                  U5      nO	X-   nOX-   nUS:X  d  US:X  a  US:X  a  UR                  U5      nO	X-   nOX-   n[        UR                  UR                  UR                  5      (       a9  [        R                  " [        5         [        R                  " SXS9nS S S 5        O[        R                  " SXS9nWR                  UR                  :X  d   e[        R                   " UU5        g ! , (       d  f       NB= f)	NrT   rK   rQ   r  ry   r#   zdf2 + ser + dfr   )r   rC   rW   rX   rY   r[  r   r  r  r^  r   r%  r  r   r   rB  r  )r   r2   r=   r  r  r  r  r|   rd   m1m2r0  r  r^  ser	expected2r   r   s                     r3   #test_complex_series_frame_alignment1TestAlignment.test_complex_series_frame_alignment  s    VII!!!$44bW=#B'!%a(

 II!!!$44bW=#B'!%a(

 RYY**1-==a@%)L:t"GGCL	I		I:t"$==,$> ~Hsyy#))RXX66++N;gg.vM <; ''*6ICyyHNN***
c8, <;s   G--
G;c                ~   [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R	                  S5      5      nUS:X  a  U(       a  [        nOSnSn[        R                  " XgS9   [        R                  " SX#S	9  S S S 5        [        [        R                  R                  S5      R	                  S
5      5      n[        R                  " S5         [        R                  " SX#S	9  S S S 5        [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R	                  S5      5      n[        R                  " S5         [        R                  " SX#S	9  S S S 5        [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R	                  S5      5      nUS:H  nU(       d  U(       a  [        n	OSn	[        R                  " XS9 n
[        R                  " SX#S	9  U(       dn  U(       ag  [        U
5      S:X  d   e[        U
S   R                  5      n[        R                  " UR                  UR                   S   -
  5      nSUS S3nX|:X  d   eS S S 5        g ! , (       d  f       GNN= f! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       g = f)NrQ   )  rR   '  r#   FzCAlignment difference on axis 1 is larger than an order of magnituder   r  r   r  )rR   r  r  r   rS   r   z_Alignment difference on axis 1 is larger than an order of magnitude on term 'df', by more than z.4gz; performance may suffer.)r   rC   rW   rX   rY   r   r	   r   r%  r   r   lenrA   messagelog10r   rB  )r   performance_warningr2   r=   r0  rx   seenr   is_python_enginewrnwloggedr   s                r3   +test_performance_warning_for_poor_alignment9TestAlignment.test_performance_warning_for_poor_alignment  sU    ryy,,Q/??
KL299((+;;EBCY#6%DDS''8GGHV; 9 299((+;;DAB''.GGHV; / ryy,,Q/??LM299((+;;EBC''.GGHV; / ryy,,Q/??IJ299((+;;EBC!X-$7$CC''71GGHV;#(;1v{"{!A$,,'!&&288A;"67$$*3</HJ 
 & 87- 98 /.
 /. 87s1   K8L
(L$BL.8
L

L
L+.
L<r{   N)r{  r|  r}  r~  index_typeslhs_index_typesr  r+   r-   filterwarningsr  r  r  r  r  listr   r  r  r  r  r  r{   r;   r3   r  r  $  sf   "K))S)O, [[ 89[[]O<[[]K8[[\;7- 8 9 = :-* [[\?;[[\?;- < <-& [[ 89[[T?3[[T;/[[T;/[[T;/3 0 0 0 4 :
32 [[ 89[[\GY+?@[[\;7[[\?;- < 8 A :-. [[\GY+?@[[ >$wSzC:.
/>> [[ 89!- :	 A!-F [[ 89[[\;7[[\?;[[\GY+?@[[TC:., / A < 8 :
,4 [[ 89[[T?3[[T;/[[T;/[[T;/)- 0 0 0 4 :
)-V-'r;   r  c            
         \ rS rSrS rS r\R                  R                  SSS/5      \R                  R                  SSS/5      \R                  R                  S\	R                  5      S	 5       5       5       r\R                  R                  SSS/5      \R                  R                  SSS/5      \R                  R                  S\	R                  5      S
 5       5       5       rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R                  R=                  SS9S 5       rS r S  r!S! r"S" r#S# r$S$ r%S% r&\R                  R                  S&S'S(S'S)/\'RP                  " / 5      S*/5      S+ 5       r)\R                  R                  S&/ S,Q5      S- 5       r*\R                  R                  S.S'S(S'S)/\'RP                  " / 5      S*S'S)0/5      S/ 5       r+S0 r,S1 r-S2 r.S3 r/S4 r0S5 r1\R                  R                  S6/ S7Q5      S8 5       r2\R                  R                  S9S:S;/5      S< 5       r3S=r4g>)?TestOperationsiA  c                ^    UR                  SS5      S-   US'   [        R                  " U0 UD6$ Nlevelr   rS   popr   r   r   r  kwargss      r3   r   TestOperations.evalB  /     **Wa014www'''r;   c                p   / nUS:X  a  SS/n[         R                  [         R                  -    Vs/ s H  nXC;  d  M
  UPM     nnS U 5       nU H  nSU S3nSU S3nSU S3n	US	;   a;  S
n
[        R                  " [
        U
S9   [        R                  " XqUS9  S S S 5        MV  [        SUSU5      nU R                  XqUS9nX:X  d   e[        XSU5      nU R                  USU0XS9nX:X  d   e[        SXLS-   U5      nU R                  U	SU0XS9nX:X  a  M   e   g s  snf ! , (       d  f       M  = f)Nr   r   r   c              3  4   #    U  H  oS :w  d  M
  Uv   M     g7f)r   Nr{   )r1   r   s     r3   r4   7TestOperations.test_simple_arith_ops.<locals>.<genexpr>Q  s     4IbtrrIs   		z1 z 1zx z (x + 1)r   z&argument of type 'int' is not iterabler   r   rS   r   r   )	r   r   r  r+   r   r   r   r   rJ   )r   r2   r=   exclude_arithr   	arith_opsopsr   r   r   r   expecr   ys                 r3   test_simple_arith_ops$TestOperations.test_simple_arith_opsF  sb   X!8,M ))D,=,==
=& = 	 
 5I4BbTBrd"+Crd(#C%%>]]9C8GGBf= 98 )B6:IIbI?z!z(6:IIcsAhvIUz!z(BAv>IIcsAhvIUz!z) 
 98s   	D!D!D&&
D5	rG   TFrE   r   c                   U SU SU 3n[         S:X  a<  US;   a6  Sn[        R                  " [        US9   U R	                  U5        S S S 5        g U R	                  U5      n[	        U5      nXg:X  d   eg ! , (       d  f       g = fNr  r   r   r   r   r=   r+   r   r   r   r   rG   rE   r   r   r   r   rH  s           r3   test_simple_bool_ops#TestOperations.test_simple_bool_opsi  |     uAbT3% X""56C2#>		" ?iim2hzz ?>   A55
Bc                   U SU SU 3n[         S:X  a<  US;   a6  Sn[        R                  " [        US9   U R	                  U5        S S S 5        g U R	                  U5      n[	        U5      nXg:X  d   eg ! , (       d  f       g = fr  r	  r
  s           r3   test_bool_ops_with_constants+TestOperations.test_bool_ops_with_constantsy  r  r  c                \   [         R                  R                  S5      R                  S5      n[	        [         R                  R                  S5      R                  S5      5      nSn[
        R                  " [        US9   U R                  SXS.S9  S S S 5        g ! , (       d  f       g = f)	NrQ   )rT   rV   rK      rR   z?N-dimensional objects, where N > 2, are not supported with evalr   x + yr   r  r   )	rC   rW   rX   rY   r   r+   r   r   r   )r   r   r  r   s       r3   test_4d_ndarray_fails$TestOperations.test_4d_ndarray_fails  sx    II!!!$44\B299((+;;B?@O]].c:IIg*:I; ;::s   B
B+c                6    U R                  S5      nUS:X  d   eg )N1rS   )r   )r   r   s     r3   test_constantTestOperations.test_constant  s    IIcNAvvr;   c                    [        [        R                  R                  S5      R	                  S5      5      nU R                  SSU0S9n[        R                  " X5        g )NrQ   rR   rQ   r0  r  r   rC   rW   rX   rY   r   r   r  )r   r0  r  s      r3   test_single_variable#TestOperations.test_single_variable  sJ    ryy,,Q/??HIii$i4
b&r;   c                    [        [        R                  R                  S5      R	                  S5      5      n[
        R                  " [        SS9   U R                  S5        S S S 5        g ! , (       d  f       g = f)NrQ   r  name 'x' is not definedr   zdf[x > 2] > 2)	r   rC   rW   rX   rY   r+   r   	NameErrorr   r   r0  s     r3   &test_failing_subscript_with_name_error5TestOperations.test_failing_subscript_with_name_error  sN    ryy,,Q/??GH]]9,EFIIo& GFFs   A,,
A:c                    [        [        R                  R                  S5      R	                  S5      5      nU R                  SSU0S9nUS-   US:     n[        R                  " X#5        g )NrQ   r  z(df + 1)[df > 2]r0  r  rS   r  r9  s       r3   test_lhs_expression_subscript,TestOperations.test_lhs_expression_subscript  s]    ryy,,Q/??GH-4*EFBF#
f/r;   c           	        [        [        R                  R                  S5      R	                  S5      [        S5      S9nSnUR                  UR                  :  nSnUR                  UR                  -   UR                  -   nSnUR                  UR                  -   UR                  UR                  S:     -   nX$U4nX5U4n	[        XS	S
9 H+  u  p[        R                  " XR                  U
SU0S95        M-     g )NrQ   r  abcrZ  zdf.a < df.bzdf.a + df.b + df.czdf.a + df.b + df.c[df.b < 0]r   T)r  r0  r  )r   rC   rW   rX   rY   r  r   r   rH   zipr   r	  r   )r   r0  expr1expec1expr2expec2expr3expec3exprsexpecsrI   r  s               r3   test_attr_expression#TestOperations.test_attr_expression  s    II!!!$44V<d5k
 $rtt#.rttBDD1H~-e#'E$7HA""5))A4*)*MN 8r;   c                   [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        [        R                  R                  S5      R	                  S5      5      nSnSn[        R                  " [        US9   U R                  X1US.S	9  S S S 5        g ! , (       d  f       g = f)
NrQ   r  r,  rZ  zdf = df2%cannot assign without a target objectr   )r0  r  r  )
r   rC   rW   rX   rY   r  r+   r   r@   r   )r   r0  r  r.  r   s        r3   test_assignment_fails$TestOperations.test_assignment_fails  s    II!!!$44V<d5k
 		--a0@@HI5]]:S1IIe#(>I? 211s   B00
B>c                
   [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  " [        SS9   UR                  S5        S S S 5        g ! , (       d  f       g = f)NrQ   r   abrZ  invalid syntaxr   zd c = a + b
r   rC   rW   rX   rY   r  r+   r   r]  r   r%  s     r3   %test_assignment_column_multiple_raise4TestOperations.test_assignment_column_multiple_raise  sY    II!!!$44V<d4j
 ]];.>?GGM" @??s   A44
Bc                   [        [        R                  R                  S5      R	                  S5      [        S5      S9nSn[        R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)NrQ   r   r=  rZ  z5left hand side of an assignment must be a single namer   zd,c = a + br?  r`  s      r3   %test_assignment_column_invalid_assign4TestOperations.test_assignment_column_invalid_assign  s]    II!!!$44V<d4j
 F]];c2GGM" 322   A66
Bc                   [        [        R                  R                  S5      R	                  S5      [        S5      S9nSn[        R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)NrQ   r   r=  rZ  zcannot assign to function callr   zTimestamp("20131001") = a + br?  r`  s      r3   3test_assignment_column_invalid_assign_function_callBTestOperations.test_assignment_column_invalid_assign_function_call  s]    II!!!$44V<d4j
 /]];c2GG34 322rE  c                
   [        [        R                  R                  S5      R	                  S5      [        S5      S9nUR                  5       nUS   US   -   US'   UR                  SSS	9  [        R                  " X5        g )
NrQ   r   r=  rZ  r   r   	a = a + bTinplace
r   rC   rW   rX   rY   r  copyr   r   r  r   r0  r   s      r3   &test_assignment_single_assign_existing5TestOperations.test_assignment_single_assign_existing  p    II!!!$44V<d4j
 779 5
T*
b+r;   c                
   [        [        R                  R                  S5      R	                  S5      [        S5      S9nUR                  5       nUS   US   -   US'   UR                  SS	S
9  [        R                  " X5        g )NrQ   r   r=  rZ  r   r   rH   	c = a + bTrK  rM  rO  s      r3   !test_assignment_single_assign_new0TestOperations.test_assignment_single_assign_new  rR  r;   c                (   [        [        R                  R                  S5      R	                  S5      [        S5      S9nUR                  5       nSnUR                  SSS9  UR                  5       nSUS	   -   US
'   [        R                  " X5        g )NrQ   r   r=  rZ  rS   z	a = 1 + bTrK  r   r   rM  )r   r0  r   r   s       r3   +test_assignment_single_assign_local_overlap:TestOperations.test_assignment_single_assign_local_overlap  s|    II!!!$44V<d4j
 WWY
T*779HSM)
b+r;   c                R   [        [        R                  R                  S5      R	                  S5      [        S5      S9nSnUR                  R                  5       nUR                  SSS9  X1R                  -   n[        R                  " XAR                  S	S
9  UR                  b   eg )NrQ   r   r=  rZ  rS   rJ  TrK  Fr4  )r   rC   rW   rX   rY   r  r   rN  r   r   r   r	  r_  )r   r0  r   old_ar   s        r3   "test_assignment_single_assign_name1TestOperations.test_assignment_single_assign_name  s    II!!!$44V<d4j
 		
T*
vtt?{{"""r;   c                .   [        [        R                  R                  S5      R	                  S5      [        S5      S9nUR                  SSS9  Sn[        R                  " [        US	9   UR                  S
5        S S S 5        g ! , (       d  f       g = f)NrQ   r   r=  rZ  rT  TrK  z#can only assign a single expressionr   z	c = a = b)
r   rC   rW   rX   rY   r  r   r+   r   r]  r`  s      r3   test_assignment_multiple_raises.TestOperations.test_assignment_multiple_raises  sl    II!!!$44V<d4j
 	T*3]];c2GGK  322s   +B
Bc                   [        [        R                  R                  S5      R	                  S5      [        S5      S9nU R                  SSU0USS9  UR                  5       nUS	   US
   -   US'   [        R                  " X5        g )NrQ   r   r=  rZ  zc = df.a + df.br0  T)r   targetrL  r   r   rH   
r   rC   rW   rX   rY   r  r   rN  r   r  rO  s      r3   test_assignment_explicit'TestOperations.test_assignment_explicit  sy    II!!!$44V<d4j
 			#r
2t	T779 5
b+r;   c                    [        S/S/S.5      nUR                  SUS9n[        S/SS9n[        R                  " X45        g )	N   ir   r   za in [11, -32]r2   Tr   ro  )r   r   r   r   r	  )r   r2   r0  r   r   s        r3   test_column_inTestOperations.test_column_in  sD    bT./)&94&s+
v0r;   z%Unknown: Omitted test_ in name prior.r'   c                   [        [        R                  R                  S5      R	                  S5      [        S5      S9nUR                  SSS9nUc   eUR                  5       nUS   US	   -   US
'   [        R                  " X5        g )NrQ   r   r=  rZ  rT  FrK  r   r   rH   rc  )r   r0  actualr   s       r3   test_assignment_not_inplace*TestOperations.test_assignment_not_inplace  s     II!!!$44V<d4j
 e4!!!779 5
b+r;   c                   [        / SQ/ SQS.5      nUR                  5       nUS   US   -   US'   US   US   -   US'   UR                  SS	S
9n[        R                  " X!5        Ub   eUS   S-
  US'   US   S-   US'   UR                  SS	S
9n[        R                  " X!5        Ub   eSn[
        R                  " [        US9   UR                  SSS
9  S S S 5        g ! , (       d  f       g = f)NrS   rQ   rT   rV   rK   r  rh  r   r   rH   d$
        c = a + b
        d = c + bTrK  rS   rQ   rI   $
        a = a - 1
        e = a + 2z@Multi-line expressions are only valid if all expressions containr   z(
            a = b + 2
            b - 2F)r   rN  r   r   r  r+   r   r@   )r   r0  r   answerr   s        r3   test_multi_line_expression)TestOperations.test_multi_line_expression+  s   YY78779 5 5 	  
 	h+~~ ) ) 	  
 	h+~~ Q]]:S1GG 	   211s   C  
C.c                D   [        / SQ/ SQS.5      nUR                  5       nUS   US   -   US'   US   US   -   US'   UR                  SS	S
9n[        R                  " X!5        US   S-
  US'   US   S-   US'   UR                  SS	S
9n[        R                  " X!5        g )Nrq  rr  rh  r   r   rH   rs  rt  FrK  rS   rQ   rI   ru  r   rN  r   r   r  rO  s      r3   &test_multi_line_expression_not_inplace5TestOperations.test_multi_line_expression_not_inplaceP  s    YY78779 5 5WW 	  
 	h+ ) )WW 	  
 	h+r;   c                    [        / SQ/ SQS.5      nUR                  5       nSnUS   U-  US'   US   U-   US'   UR                  SS	S
9n[        R                  " X!5        Ub   eg )Nrq  rr  rh  r  r   rH   rs  z?
        c = a * @local_var
        d = c + @local_var
        TrK  rz  )r   r0  r   	local_varrv  s        r3   )test_multi_line_expression_local_variable8TestOperations.test_multi_line_expression_local_variablei  s|    YY78779	 	1 	1   
 	h+~~r;   c                    [        / SQ/ SQS.5      nS nUR                  5       nUS   U" SS5      -  US'   US   U" SS5      -   US	'   UR                  S
SS9n[        R                  " X15        Ub   eg )Nrq  rr  rh  c                    U$ r7   r{   rh  s     r3   
local_funcUTestOperations.test_multi_line_expression_callable_local_variable.<locals>.local_func      Hr;   r   rS   r  rH   rs  zM
        c = a * @local_func(1, 7)
        d = c + @local_func(1, 7)
        TrK  rz  r   r0  r  r   rv  s        r3   2test_multi_line_expression_callable_local_variableATestOperations.test_multi_line_expression_callable_local_variable{  s    YY78	 779 
1a(88 
1a(88   
 	h+~~r;   c                    [        / SQ/ SQS.5      nS nUR                  5       nUS   U" SSS9-  US	'   US	   U" SSS9-   US
'   UR                  SSS9n[        R                  " X15        Ub   eg )Nrq  rr  rh  c                    U$ r7   r{   rh  s     r3   r  aTestOperations.test_multi_line_expression_callable_local_variable_with_kwargs.<locals>.local_func  r  r;   r   r  rS   )r   r   rH   rs  zU
        c = a * @local_func(b=7, a=1)
        d = c + @local_func(b=7, a=1)
        TrK  rz  r  s        r3   >test_multi_line_expression_callable_local_variable_with_kwargsMTestOperations.test_multi_line_expression_callable_local_variable_with_kwargs  s    YY78	 779 
Q!(<< 
Q!(<<   
 	h+~~r;   c                    [        / SQ/ SQS.5      nUR                  5       nSn[        R                  " [        US9   UR                  S5        S S S 5        [        R                  " X5        g ! , (       d  f       N%= f)Nrq  rr  rh  r9  r   za = 1)r   rN  r+   r   r@   rO  r   r  )r   r0  df_origr   s       r3   test_assignment_in_query'TestOperations.test_assignment_in_query  sW    YY78'')5]]:S1HHW 2
b* 21s   A//
A=c                   [        / SQ/ SQS.5      nUR                  5       nX"S   S:H     nUR                  SSS9  [        R                  " X!5        0 nSS	0nU R                  S
USS9  [        R                  " X5        g )Nrq  rr  rh  r   rQ   za == 2TrK  rT   	a = 1 + 2rb  rL  )r   rN  rO  r   r  r   assert_dict_equalrO  s      r3   test_query_inplace!TestOperations.test_query_inplace  sy    YY78779SMQ./
4(
h+8		+b$	7
R*r;   invalid_targetrS   catrQ   rS   rT   c                <   SnSn[         R                  " [        US9   U R                  X1SS9  S S S 5        [	        US5      (       a3  [         R                  " [        US9   U R                  X1SS9  S S S 5        g g ! , (       d  f       NS= f! , (       d  f       g = f)Nz)Cannot assign expression output to targetr  r   Tr  rN  F)r+   r   r@   r   hasattrr   r  r   
expressions       r3   test_cannot_item_assign&TestOperations.test_cannot_item_assign  s{    9 
]]:S1IIjIF 2 >6**z5		*U	K 65 + 21 65s   A<!B<
B

B)rS   r  r  c                    SnSn[         R                  " [        US9   U R                  X1SS9  S S S 5        g ! , (       d  f       g = f)Nz"Cannot return a copy of the targetr  r   Fr  )r+   r   r@   r   r  s       r3   test_cannot_copy_item$TestOperations.test_cannot_copy_item  s6    2 
]]:S1IIjIG 211s	   8
Arb  c                    SnU R                  X!SS9S:X  d   eSn[        R                  " [        US9   U R                  X!SS9  S S S 5        g ! , (       d  f       g = f)N1 + 2Fr  rT   z0Cannot operate inplace if there is no assignmentr   T)r   r+   r   r@   )r   rb  r  r   s       r3   test_inplace_no_assignment)TestOperations.test_inplace_no_assignment  sQ    
yyEyBaGGG@]]:S1IIjI> 211s   A
Ac           	        [        [        R                  R                  S5      R	                  S5      [        SSSS9S9nUS:  nU R                  SSU0S	9nUS:  n[        R                  " X25        [        R                  " XB5        g )
NrQ   rQ   rQ   rp   ru   rv   rr   rZ  r  r0  r  	r   rC   rW   rX   rY   r   r   r   r  )r   r0  rI   rr   s        r3   *test_basic_period_index_boolean_expression9TestOperations.test_basic_period_index_boolean_expression  s{    II!!!$44V< CC
 FIIhD":I6F
a#
a#r;   c           	         [        [        R                  R                  S5      R	                  S5      [        SSSS9S9nU R                  SSU0S	9nXS
:     n[        R                  " X#5        g )NrQ   r  rp   ru   r  rZ  zdf[df < 2 + 3]r0  r  rK   r  r   r0  r  rI   s       r3   ,test_basic_period_index_subscript_expression;TestOperations.test_basic_period_index_subscript_expression  sg    II!!!$44V< CC
 II&D":I>EzN
a#r;   c           	         [        [        R                  R                  S5      R	                  S5      [        SSSS9S9nU R                  SSU0S	9nXUS:     S:     US-  -   n[        R                  " X#5        g )
NrQ   r  rp   ru   r  rZ  zdf[df[df < 2] < 2] + df * 2r0  r  r  r  s       r3   -test_nested_period_index_subscript_expression<TestOperations.test_nested_period_index_subscript_expression  sy    II!!!$44V< CC
 II3r
IK"q&zA~a'
a#r;   c                    [        [        R                  R                  S5      R	                  S5      5      n[        SSS9US'   U R                  SSU0UUS	9nUR                  S
:  n[        R                  " XE5        g )NrQ   r  z1/1/2012rK   rq   dates1zdf.dates1 < 20130101r0  r   20130101)
r   rC   rW   rX   rY   r   r   r  r   r	  )r   r2   r=   r0  r   r  s         r3   test_date_boolean TestOperations.test_date_boolean  sw    ryy,,Q/??GH!*a88ii"bz	  
 		J&
s*r;   c                   US:w  Ga-  [         R                  " SXS9nU(       d   e[         R                  " SXS9nU(       d   e[         R                  " SXS9nU(       a   e[         R                  " SXS9nU(       d   e[         R                  " SXS9nU(       d   e[         R                  " SXS9nU(       d   e[         R                  " S	XS9nU(       d   e[         R                  " S
XS9nU(       d   e[         R                  " SXS9nU(       a   e[         R                  " SXS9nU(       d   eg Sn[        R                  " [        US9   [         R                  " SXS9  S S S 5        [        R                  " [        US9   [         R                  " SXS9  S S S 5        [        R                  " [        US9   [         R                  " SXS9  S S S 5        [        R                  " [        US9   [         R                  " SXS9  S S S 5        Sn[        R                  " [        US9   [         R                  " SXS9  S S S 5        [        R                  " [        US9   [         R                  " SXS9  S S S 5        g ! , (       d  f       GN%= f! , (       d  f       GN = f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   z1 in [1, 2]r   z2 in (1, 2)z3 in (1, 2)z3 not in (1, 2)z[3] not in (1, 2)z[3] in ([3], 2)z[[3]] in [[[3]], 2]z(3,) in [(3,), 2]z(3,) not in [(3,), 2]z[(3,)] in [[(3,)], 2]z'In' nodes are not implementedr   z[(3,)] in (1, 2, [(3,)])z!'NotIn' nodes are not implementedz[3] not in (1, 2, [[3]]))r   r   r+   r   r   )r   r2   r=   r   r   s        r3   test_simple_in_ops!TestOperations.test_simple_in_ops  s   X''-FCJ3''-FCJ3''-FCN7''+FJCJ3''-fLCJ3''+FJCJ3''/NCJ3''-fLCJ3''1&PCN7''1&PCJ32C2#>fD ?2#>fD ?2#>fD ?2#>26Q ?5C2#>)&H ?2#>26Q ?> ?>>>>>>> ?>>>sH   JJ>J(5J9.K
%K
J
J%(
J69
K

K
K)c                f    SnSR                  S5      nSn[        R                  " XAUS9nXe:X  d   eg )NrS   z * !aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   )r   r   r   )r   r2   r=   r   r   r   r   s          r3   test_check_many_exprs$TestOperations.test_check_many_exprs1  s4    zz(#ggd&9r;   r   )zdf > 2 and df > 3zdf > 2 or df > 3z
not df > 2c                ^   [        [        R                  R                  S5      R	                  S5      5      nUS:X  aF  SnSU;   a  Sn[
        R                  " [        US9   [        R                  " USU0UUS	9  S S S 5        g [        R                  " USU0UUS	9  g ! , (       d  f       g = f)
NrQ   r  r   r   not'Not' nodes are not implementedr   r0  )r   r=   r2   
r   rC   rW   rX   rY   r+   r   r   r   r   )r   r   r2   r=   r0  r   s         r3   test_fails_and_or_not$TestOperations.test_fails_and_or_not8  s     ryy,,Q/??GHX6C}72#> $bz!!	 ?> GG ":	 ?>s   !B
B,charr   r   c                J   [        [        R                  R                  S5      R	                  S5      5      nSU S3nUS:X  a:  Sn[
        R                  " [        US9   [        R                  " XSUS9  S S S 5        g [        R                  " XSUS9  g ! , (       d  f       g = f)	NrQ   r  z(df + 2)[df > 1] > 0 z	 (df > 0)r   z$cannot evaluate scalar only bool opsr   r   r  )r   r  r2   r=   r0  r   r   s          r3   test_fails_ampersand_pipe(TestOperations.test_fails_ampersand_pipeW  s    ryy,,Q/??GH$TF)4X8C2#>&9 ?> GGBf5	 ?>s   B
B"r{   N)5r{  r|  r}  r~  r   r  r+   r-   r  r   r  r  r  r  r  r   r&  r)  r6  r:  r@  rC  rG  rP  rU  rX  r\  r_  rd  rj  r   rn  rw  r{  r  r  r  r  r  rC   r   r  r  r  r  r  r  r  r  r  r  r  r  r{   r;   r3   r  r  A  s   (!"F [[UT5M2[[UT5M2[[T4#5#56 7 3 3 [[UT5M2[[UT5M2[[T4#5#56 7 3 3<'
'
0O@##5,,
,
#!,1 [[EF, G,#J,2$((++ [[-51a&"((2,PV/WX	L Y	L [[-/ABH CH [[X51a&"((2,QRTUPV'WX? Y?
$$$
+-R^ [[	
. [[Vc3Z0	6 1	6r;   r  c                  P   \ rS rSrS r\R                  R                  S5      \R                  R                  S\	5      S 5       5       r
\R                  R                  S\5      S 5       rS rS r\R                  R                  S	\R                   \R"                  4\R$                  \R"                  4\R&                  \R&                  4\R"                  \R"                  4\R(                  " \R*                  \R*                  \R.                  S
9/5      S 5       rS rS rSrg)TestMathid  c                ^    UR                  SS5      S-   US'   [        R                  " U0 UD6$ r  r  r  s      r3   r   TestMath.evale  r  r;   r  fnc                n   [        S[        R                  R                  S5      R	                  S5      05      nUR
                  nU S3nU R                  XbUS9n[        R                  " SS9   [        [        U5      " U5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)Nr   rQ   rR   z(a)r   r$   all)r   rC   rW   rX   rY   r   r   errstater  r   r	  )	r   r  r2   r=   r0  r   r   gotr  s	            r3   test_unary_functionsTestMath.test_unary_functionsi  s     RYY2215EEbIJKDDSziiFi;[[X&R_Q'F '
sF+ '&s   /B&&
B4c                   [        [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      nUR
                  nUR                  nU S3nU R                  XrUS9n[        R                  " SS9   [        [        U5      " XV5      n	S S S 5        [        R                  " UW	5        g ! , (       d  f       N&= f)NrQ   rR   rh  z(a, b)r   r$   r  )r   rC   rW   rX   rY   r   r   r   r  r  r   r   )
r   r  r2   r=   r0  r   r   r   r  r  s
             r3   test_binary_functionsTestMath.test_binary_functionsu  s    YY**1-==bAYY**1-==bA
 DDDDV}iiFi;[[X&R_Q*F '
sF+ '&s   (C
C-c                   [        [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      nUR                  SUUSS9  UR                  n[        R                  " [        R                  " UR                  5      UR                  5      R                  S5      n[        R                  " XE5        g )NrQ   rR   rh  ze = arctan2(sin(a), b)Tr2   r=   rL  rI   )r   rC   rW   rX   rY   r   rI   arctan2sinr   r   renamer   r	  r   r2   r=   r0  r  r  s         r3   test_df_use_caseTestMath.test_df_use_case  s    YY**1-==bAYY**1-==bA
 	$	 	 	
 ddBFF244L"$$/66s;
s+r;   c                   [        [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      nUR                  SXSS9  UR                  n[        R                  " UR                  UR                  -   5      R                  S5      n[        R                  " XE5        g )NrQ   rR   rh  ze = sin(a + b)Tr  rI   )r   rC   rW   rX   rY   r   rI   r  r   r   r  r   r	  r  s         r3    test_df_arithmetic_subexpression)TestMath.test_df_arithmetic_subexpression  s    YY**1-==bAYY**1-==bA
 	 Mddrtt$++C0
s+r;   zdtype, expect_dtyper)   c                   [        S[        R                  R                  S5      R	                  S5      R                  U5      05      nUR                  R                  U:X  d   eUR                  SX4SS9  UR                  n[        R                  " UR                  5      R                  S5      nUR                  UR                  :X  d   eX&R                  :X  d   e[        R                  " Xg5        g )Nr   rQ   rR   z
b = sin(a)Tr  r   )r   rC   rW   rX   rY   r   r   r`   r   r   r  r  r   r	  )r   r`   expect_dtyper2   r=   r0  r  r  s           r3   test_result_typesTestMath.test_result_types  s      "))''*::2>EEeLM
 ttzzU"""
VDIdd$$S)||syy(((yy(((
s+r;   c                    [        S[        R                  R                  S5      R	                  S5      05      nSn[
        R                  " [        US9   UR                  SXS9  S S S 5        g ! , (       d  f       g = f)Nr   rQ   rR   z#"mysin" is not a supported functionr   zmysin(a)r   )	r   rC   rW   rX   rY   r+   r   r@   r   r   r2   r=   r0  r   s        r3   test_undefined_funcTestMath.test_undefined_func  sZ    RYY2215EEbIJK3]]:S1GGJvG= 211   A//
A=c                    [        S[        R                  R                  S5      R	                  S5      05      nSn[
        R                  " [        US9   UR                  SXS9  S S S 5        g ! , (       d  f       g = f)Nr   rQ   rR   z1Function "sin" does not support keyword argumentsr   zsin(x=a)r   )	r   rC   rW   rX   rY   r+   r   r   r   r  s        r3   test_keyword_argTestMath.test_keyword_arg  sZ    RYY2215EEbIJKA]]9C0GGJvG= 100r  r{   N)r{  r|  r}  r~  r   r+   r-   r  r  r    r  r   r  r  r  rC   int32rh   rb   float32r,   
complex128r/   r  r  r  r  r  r{   r;   r3   r  r  d  s   ( [[ 89[[T?3, 4 :, [[T#34, 5, ,"
, [[XXrzz"XXrzz"ZZ$ZZ$LLR=O=OP	
	,	,">>r;   r  rQ   rR   c                  2    \ rS rSrS rS rS rS rS rSr	g)		TestScopei  c           	     j    Sn[         R                  " [        S-  [        R                  " X1US95        g )N
_var_s * 2rQ   r   )r   r   _var_sr   r   )r   r2   r=   rI   s       r3   test_global_scopeTestScope.test_global_scope  s)    
##QJ@	
r;   c                    Sn[        5       R                  5       n[        R                  " SXAUS9  [        5       R                  5       nUR	                  S5        XE:X  d   eg )NrS   x + 1r   lcls)localsrN  r   r   r  )r   r2   r=   r   r  lcls2s         r3   test_no_new_localsTestScope.test_no_new_locals  sG    x}}
DG		&}}r;   c                    Sn[        5       R                  5       n[        R                  " SXS9  [        5       R                  5       nXE:X  d   eg )NrS   r  r   )globalsrN  r   r   )r   r2   r=   r   gblsgbls2s         r3   test_no_new_globalsTestScope.test_no_new_globals  s;    y~~
6	 }}r;   c                    SnSn[         R                  " [        US9   [        R                  " SX0 S9  S S S 5        g ! , (       d  f       g = f)NrS   r#  r   r  r   r+   r   r
   r   r   )r   r2   r=   r   r   s        r3   test_empty_localsTestScope.test_empty_locals  s7    ']]1=GGGFbI >==	   >
Ac                    SnSn[         R                  " [        US9   [        R                  " XAU0 S9  S S S 5        g ! , (       d  f       g = f)Nzname '_var_s' is not definedr  r   )r2   r=   global_dictr
  )r   r2   r=   r   rI   s        r3   test_empty_globalsTestScope.test_empty_globals  s7    ,]]1=GGAVD >==r  r{   N)
r{  r|  r}  r~  r  r  r  r  r  r  r{   r;   r3   r  r    s    
JEr;   r  c                     Sn [         R                  " [        U S9   [        R                  " SSSS.SS9  S S S 5        g ! , (       d  f       g = f)	NzInvalid engine 'asdf' passedr   r  rS   rQ   r  asdf)r   r2   r+   r   KeyErrorr   r   r   s    r3   test_invalid_enginer    6    
(C	xs	+
!!$4VD 
,	+	+	   ?
A)use_numexprr   ))Tr#   )Fr   c                    SSK Jn  [        R                  " SU 5         U" S 5      nX1:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   )_check_enginecompute.use_numexpr)pandas.core.computation.evalr  r   option_context)r  r   r  r   s       r3   test_numexpr_option_respectedr     s:     ;			0+	>t$!!! 
?	>	>s	   8
Ac                    [         R                  " SS5         [        / SQ/ SQS.5      n U R                  S5      n[        S S /SS/S.[	        S	S5      S
9n[
        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nr  F)TFTFNN)rS   rQ   rT   rV   rK   r  )rL  Bz
A.isnull()rK   r  rV   )r^  )r   r  r   rO  rl   r   r  )r0  r   r   s      r3   #test_numexpr_option_incompatible_opr#    sq     
		0%	88?QR
 ,'D$<q!f=U1a[Q
f/ 
9	8	8s   AA66
Bc                     Sn [         R                  " [        U S9   [        R                  " SSSS.SS9  S S S 5        g ! , (       d  f       g = f)	NzInvalid parser 'asdf' passedr   r  rS   rQ   r  r  )r   r=   r  r  s    r3   test_invalid_parserr%    r  r  )r   r   r   z dict[str, type[BaseExprVisitor]]_parsersr2   r=   c                    [         U   nU" SX5      nUR                   H7  nSn[        R                  " [        US9   [        X45      " 5         S S S 5        M9     g ! , (       d  f       MK  = f)Nr  znodes are not implementedr   )r&  unsupported_nodesr+   r   r   r  )r2   r=   VisitorClassinstr  r   s         r3   test_disallowed_nodesr+  '  sX     F#L0D--)]].c:D  ;: .::s   A
A*	c                    Sn[         R                  " [        SS9   [        R                  " X US9  S S S 5        g ! , (       d  f       g = f)Nzs +r>  r   r   r+   r   r]  r   r   )r2   r=   rI   s      r3   test_syntax_error_exprsr.  3  s0    A	{*:	;
0 
<	;	;	   ;
A	c                    SnSn[         R                  " [        US9   [        R                  " X US9  S S S 5        g ! , (       d  f       g = f)Nzs + tzname 's' is not definedr   r   )r+   r   r$  r   r   )r2   r=   rI   r   s       r3   test_name_error_exprsr1  9  s4    A
#C	y	,
0 
-	,	,s	   =
Aexpress)za + @bz@a + bz@a + @bc                :   Su  p4US:w  a8  [         R                  " [        SS9   [        R                  " X US9  S S S 5        g [         R                  " [        SS9   [        R                  " X US9  S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)NrS   rQ   r   zThe '@' prefix is onlyr   r   zThe '@' prefix is notr-  )r2   r=   r2  r   r   s        r3   %test_invalid_local_variable_referencer5  @  ss    DA]];.FGGGG6: HG ]];.EFGGG6: GF HG GFs   A;B;
B	
Bc                    Su  p#U S:X  a:  Sn[         R                  " [        US9   [        R                  " SXS9  S S S 5        g [        R                  " SXS9nXRU-   :X  d   eg ! , (       d  f       g = f)Nr4  r#   zVariables in expression .+r   zsin + dotted_liner   )r+   r   r   r   r   )r2   r=   r  dotted_liner   r   s         r3   test_numexpr_builtin_raisesr8  L  sj    C*]]1=GG'F >= gg)&HK''''	 >=s   A%%
A3c                    Sn[         R                  " [        SS9   [        R                  " SX US9  S S S 5        g ! , (       d  f       g = f)N)rv  g      @zResolver of type .+r   r  )	resolversr2   r=   )r+   r   r   r   r   )r2   r=   cannot_resolves      r3   test_bad_resolver_raisesr<  W  s2    N	y(=	>
>P 
?	>	>s	   <
A
c                    [         R                  " [        SS9   [        R                  " SXS9  S S S 5        g ! , (       d  f       g = f)Nzexpr cannot be an empty stringr    r   r+   r   r@   r   r   r   s     r3   test_empty_string_raisesr@  ]  s,    	z)I	J
61 
K	J	J	   9
Ac                    [         R                  " [        SS9   [        R                  " SXS9  S S S 5        g ! , (       d  f       g = f)Nz#only a single expression is allowedr   z1 + 1; 2 + 2r   r-  r   s     r3   $test_more_than_one_expression_raisesrC  c  s,    	{*O	P
v= 
Q	P	PrA  cmpr   rE   rG   c                   [         S [        [        R                  R	                  S5      R
                  0nXP   " 5       nXP   " 5       n XR   " 5       nSU SU S3nSU SU S3nSU SU S	3n	XxU	4 H<  n
S
n[        R                  " [        US9   [        R                  " XUS9  S S S 5        M>     g ! , (       d  f       MP  = f)Nc                 ^    [         R                  R                  S5      R                  S5      $ )NrQ   rR   )rC   rW   rX   r  r{   r;   r3   re   0test_bool_ops_fails_on_scalars.<locals>.<lambda>m  s    RYY**1-66r:r;   rQ   r   r   r   r   r   r   r   r>  r   r   )intrN   rC   rW   rX   rY   r+   r   r   r   r   )rE   rD  rG   r2   r=   genr   r   r   r   r   r   s               r3   test_bool_ops_fails_on_scalarsrJ  h  s    
 	:ryy$$Q'77C
 (*C
(*C
(*CU3%t
$C]3%t
,C#mC5
.CoK]].c:GGBf5 ;: ::s   B22
C	otherz'x'z...c                    [        S/ SQ0[        S9nUR                  SU  35      n[        / SQSS9n[        R
                  " X#5        g )NrL  )r   r   rH   r_   rN  )FFFro  )r   objectr   r   r   r	  )rK  r0  r   r   s       r3   test_equals_variousrN  ~  sD     
C)	8BWWuUG_%F+#6H6,r;   c                `    Sn[         R                  n[        R                  " X US9nXC:X  d   eg )Nzinf + 1r   )rC   infr   r   )r2   r=   rx   r   r   s        r3   test_infrQ    s,    AvvHWWQf5Fr;   columnu	   Temp(°C)u   Capacitance(μF)c                    [        [        R                  R                  S5      R	                  S5      US/S9nX"U   S:     nSU S3nUR                  X@S9n[        R                  " XS5        g )	NrQ   r   r   rZ  rK   `z` > 5ri  )r   rC   rW   rX   rY   rO  r   r  )r2   rR  r0  r   query_stringr   s         r3   test_query_tokenrV    so     

		a 00863-
B V*q.!Hvhe$LXXlX2F&+r;   c                |   [        SS/SS//SS/S9nX"R                  S:  )    nUR                  SXS	9n[        R                  " XC5        US
:X  a5  Sn[
        R                  " [        US9   UR                  SXS	9  S S S 5        g UR                  SXS	9n[        R                  " XC5        g ! , (       d  f       g = f)Nr   rR   rS   r  r  countrZ  z
~(cat > 0)r   r   r  r   znot (cat > 0))r   r  rO  r   r  r+   r   r   )r2   r=   r0  r   r   r   s         r3   test_negate_lt_eq_lerY    s    	QGaW%w/?	@BFFQJ- HXXl6XAF&+/]].c:HH_VHC ;: /&H
f/	 ;:s   ,B--
B;c                P   US;   a4  U R                  [        R                  R                  [        SU 3S95        [        [        R                  R                  S5      R                  SSSS9US	/S
9nX"U   S:     nUR                  U S35      n[        R                  " XC5        g )N)TrueFalserP  Infz+GH 47859 DataFrame eval not supported with )r   r(   rQ   r   d   r  r   col1rZ  r  z>6)r   r+   r-   r   r  r   rC   rW   rX   r  rO  r   r  )r:   rR  r0  r   r   s        r3    test_eval_no_support_column_namer`    s     00KKDVHM  	
 

		a ))!Sw)? 
B V*q.!HXXm$F&+r;   c                 0   [        / SQ/ SQ/ SQS.5      n U S S  nU S   nU R                  SSS9  [        / S	Q/ SQ/ SQS.5      n[        R                  " X5        [	        / SQSS
9n[        R
                  " X#5        [        R
                  " US   U5        g )Nrq  rr  )r     	   )rL  r"  CrL  z	A = B + CTrK  )rg     rm  ro  )r   r   r   r  r   r	  )r0  result_viewr  r   s       r3   test_set_inplacerg    s     
C	DBQ%K
S'CGGKG&|))LMH"'ic*H3);s+X6r;   valuerS   r[  rq  g      @c                    Sn[         R                  " [        US9   [        R                  " SU S9  S S S 5        g ! , (       d  f       g = f)Nz8For argument "inplace" expected type bool, received typer   z2+2rK  r?  )rh  r   s     r3   test_validate_bool_argsrj    s/    
DC	z	-
u% 
.	-	-r/  c                 @    [         R                  " SSS9n SnX:X  d   eg )Nz1 / 2r#   ri  rU   rG  )r   r   s     r3   test_eval_float_div_numexprrl    s%     WWWY/FHr;   c                    [        / SQ5      n [        / SQ5      n[        R                  " S5      nX-   R                  5       n[        R
                  " X#5        [        R                  " S5      nX-  R                  5       n[        R
                  " X#5        [        R                  " S5      nX-   R                  5       R                  SS9n[        R
                  " X#5        g )N)rS   rQ   rT   rK   )rQ   rT   rV   z(x + y).dropna()z(x * y).dropna()z'(x + y).dropna().reset_index(drop=True)T)drop)r   r   r   dropnar   r	  reset_index)r   r  r   r   s       r3   test_method_calls_on_binoprq    s    |AyA WW'(F~~H6, WW'(F~~H6, WW>?F~~+++6H6,r;   )q
__future__r   	functoolsr   	itertoolsr   r  numpyrC   r+   pandas.compatr   pandas.compat._optionalr   pandas.errorsr   r	   r
   pandas.util._test_decoratorsutil_test_decoratorsr/   pandas.core.dtypes.commonr   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr   pandas.core.computationr   r   pandas.core.computation.enginesr   pandas.core.computation.exprr   r   r   #pandas.core.computation.expressionsr   r   pandas.core.computation.opsr   r   r   r    pandas.core.computation.scoper!   pandas.util.versionr"   r#   fixturer2   PARSERSr=   rJ   r  rl   rE   rG   r   r|   r~   r  r  r  r  r  rW   rX   rY   r  r  r0   r  r-   r  r   r#  r%  PyTablesExprVisitorr&  __annotations__r+  r.  r1  r5  r8  r<  r@  rC  rH  rN   rJ  rN  rQ  rV  rY  keysr`  rg  rj  rl  rq  r{   r;   r3   <module>r     s   "       > 
 * )     4 
  : '
$Yx
@   !  t||$ % a>E-	-$ 
  k	3 k	3d? ?<$V' V'z`6 `6Ff> f>R 
		q	!	1	1"	5"E "EJ yE E y" " y0 0 yE E  ,,.
*  7+8,! - ,!11 $CD; E;(Q2>
 .e-e-6 . . /6& -- K1C#DE, F,0  ,	,(7 1fi"=>& ?& y -r;   