
    Mh7                     T   S SK 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r  \R"                  S 5       r\R"                  S 5       r\R"                  S 5       r\R"                  S 5       r\R"                  S	 5       r\R"                  S
 5       r\R"                  S 5       r\R"                  S 5       r\R"                  S 5       r\R"                  S 5       r\R"                  S 5       r\R:                  R=                  \R>                  (       + SS9 " S S5      5       r g)    N)option_context)	DataFrameIndexSeries)expressionsc                      [        [        R                  R                  S5      R	                  S5      [        S5      SS9$ )N   i'     ABCDfloat64columnsdtyper   nprandomdefault_rngstandard_normallist     O/var/www/html/env/lib/python3.13/site-packages/pandas/tests/test_expressions.py_framer      s6    
		a 00<V r   c                      [        [        R                  R                  S5      R	                  S5      [        S5      SS9$ )Nr	   )d   r   r   r   r   r   r   r   r   _frame2r      s6    
		a 00:V r   c                     [        U S   R                  5       U S   R                  S5      U S   R                  S5      U S   R                  S5      S.5      $ 	NABfloat32Cint64Dint32)r    r!   r#   r%   r   copyastyper   s    r   _mixedr+   #   sZ    !!###I.##G,##G,		
 r   c                     [        U S   R                  5       U S   R                  S5      U S   R                  S5      U S   R                  S5      S.5      $ r   r'   r   s    r   _mixed2r.   /   sZ    ""$$$Y/$$W-$$W-		
 r   c                      [        [        R                  R                  S5      R	                  SSSS9[        S5      SS9$ )	Nr	      r   r
   sizer   r$   r   r   r   r   r   integersr   r   r   r   _integerr5   ;   s=    
		a ))!Sz)BV r   c                     U [         R                  R                  S5      R                  SS[         R                  " U 5      S9-  $ )Nr	   r   r1   )r   r   r   r4   shape)r5   s    r   _integer_integersr8   D   s9     bii++A.771288HCU7VVVr   c                      [        [        R                  R                  S5      R	                  SSSS9[        S5      SS9$ )	Nr	   r0   r   )e   r   r1   r   r$   r   r3   r   r   r   	_integer2r;   J   s=    
		a ))!Sx)@V r   c                 <    U S   R                   R                  5       $ Nr    valuesr(   r*   s    r   _arrayr@   S       #;""$$r   c                 <    U S   R                   R                  5       $ r=   r>   r-   s    r   _array2rC   X       3<##%%r   c                 <    U S   R                   R                  5       $ Nr%   r>   )r+   s    r   _array_mixedrG   ]   rA   r   c                 <    U S   R                   R                  5       $ rF   r>   )r.   s    r   _array_mixed2rI   b   rD   r   znot using numexpr)reasonc                      \ rS rSr\S\S\4S j5       r\R                  R                  S/ SQ5      \R                  R                  SSS/5      \R                  R                  S	/ S
Q5      S 5       5       5       r\R                  R                  S/ SQ5      \R                  R                  SSS/5      S 5       5       rS r\R                  R                  S5      \R                  R                  S/ SQ5      \R                  R                  SSS/5      S 5       5       5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      \R                  R                  S/ SQ5      S 5       5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S\" / SQ/ SQ// S QS!9\" SS/SS//S"S#/S!94\" / S$Q/ S%Q/ S&Q// S QS!9\" SS/SS/SS//S"S#/S!94/5      S' 5       r\R                  R                  S	S
5      \R                  R                  S(S)5      S* 5       5       r\R                  R                  S+/ S,Q5      \R                  R                  S-\\\/5      \R                  R                  S.S/S0/5      S1 5       5       5       rS2rg3)4TestExpressionsg   flexopnamec                    ^ U(       a  U4S jnTUl         O[        [        T5      n[        SS5         U" X5      nS S S 5        [        R
                  " 5         U" X5      nUW4$ ! , (       d  f       N/= f)Nc                 (   > [        U T5      " U5      $ )N)getattr)xyrO   s     r   <lambda>)TestExpressions.call_op.<locals>.<lambda>l   s    ga03r   compute.use_numexprF)__name__rR   operatorr   exprget_test_result)dfotherrN   rO   opexpectedresults      `   r   call_opTestExpressions.call_opi   sb    3B BK6*B159"}H : 	Bx :9s   	A%%
A3fixture)r5   r;   r8   r   r   r+   r.   TFarith)addsubmulmodtruedivfloordivc                    UR                  U5      nUR                  5        nUR                  [        SS5        U R	                  XfX45      u  pUS:X  a-  [        S U	R                  R                   5       5      (       d   e[        R                  " X5        [        [        UR                  5      5       Hr  n
U R	                  UR                  S S 2U
4   UR                  S S 2U
4   X45      u  pUS:X  a  U	R                  R                  S:X  d   e[        R                  " X5        Mt     S S S 5        g ! , (       d  f       g = f)N_MIN_ELEMENTSr   ri   c              3   >   #    U  H  oR                   S :H  v   M     g7f)fN)kind).0rS   s     r   	<genexpr>6TestExpressions.test_run_arithmetic.<locals>.<genexpr>   s     I2HQ66S=2Hs   rn   )getfixturevaluecontextsetattrrZ   ra   alldtypesr?   tmassert_equalrangelenr   ilocr   ro   )selfrequestrc   rN   rd   monkeypatchr\   mr`   r_   is              r   test_run_arithmetic#TestExpressions.test_run_arithmeticy   s    " $$W-  "aIIdOQ/#||BD@F	!I(//2H2HIIIIIOOH-3rzz?+#'<<GGAqDM2771a4=$$  I%#>>..#5551 , #""s   D	D44
Ec                    UR                  U5      nUR                  n[        SS5         UR                  5       S-   nSSS5        UR	                  5        n	U	R                  [        SS5        [        R                  " S5        U R                  UWX75      u  p[        R                  " 5       nU(       d   S5       e[        R                  " X5        [        [        UR                  5      5       H=  nUR                  SS2U4   S-   nU R                  UR                  SS2U4   XS	5        M?     SSS5        g! , (       d  f       GN= f! , (       d  f       g= f)
z
tests solely that the result is the same whether or not numexpr is
enabled.  Need to test whether the function does the correct thing
elsewhere.
rW   Fr0   Nrl   r   Tz Did not use numexpr as expected.re   )rs   rX   r   r(   rt   ru   rZ   set_test_modera   r[   rx   ry   rz   r{   r   r|   )r}   r~   rc   rN   comparison_opr   r\   rd   r]   r   r`   r_   used_numexprr   binary_comps                  r   test_run_binaryTestExpressions.test_run_binary   s   & $$W-&&159GGIME :   "aIIdOQ/t$#||BtCF//1LC!CC<OOH-3rzz?+#jjA.2RWWQT]KuE , #" :9 #"s   D:CE:
E	
Ec                    [         R                  R                  S5      R                  S5      n[         R                  R                  S5      R                  S5      n[        R
                  " [        R                  S XS5      nU(       a   e[        R
                  " [        R                  SX"S5      nU(       a   e[        R
                  " [        R                  SXS5      nU(       d   eg )Nr	   iAB r   evaluate+)r   r   r   r   rZ   _can_use_numexprrY   re   )r}   arrayarray2r`   s       r   test_invalidTestExpressions.test_invalid   s    		%%a(88C&&q)99#> &&x||T5Tz &&x||S&*Uz &&x||S%Tvr   z2ignore:invalid value encountered in:RuntimeWarningzopname,op_str))re   r   )rf   -)rg   *)ri   /)pow**zleft_fix,right_fix)r@   rC   )rG   rI   c                 &   UR                  U5      nUR                  U5      nS n[        SS5         U" XgX#5        S S S 5        [        R                  " S5        U" XgX#5        [        R                  " 5         U" XgX#5        g ! , (       d  f       NL= f)Nc                 "   US:X  a  [         R                  " U 5      n [        [        U5      n[        R
                  " X@U SS9n[        R
                  " X@U SS9n[        R                  " XV5        [        R                  " XCXS5      nU(       a   eg )Nr   Tuse_numexprFr   )	r   absrR   rY   rZ   r   rx   assert_numpy_array_equalr   )leftrightrO   op_strr^   r`   r_   s          r   testit/TestExpressions.test_binary_ops.<locals>.testit   st    vvd|6*B ]]2TtDF}}RtGH''9**2uZPF:vr   rW   Fr0   rs   r   rZ   set_numexpr_threads)	r}   r~   rO   r   left_fix	right_fixr   r   r   s	            r   test_binary_opsTestExpressions.test_binary_ops   s~     &&x0''	2	 1594/ : 	  #tF+  "tF+ :9s   
B
Bc                 *  ^^^ UR                  U5      mUR                  U5      mUUU4S jn[        SS5         U" 5         S S S 5        [        R                  " S5        U" 5         [        R                  " 5         U" 5         g ! , (       d  f       NH= f)Nc                     > TS-   n TS-   nTn[         R                  " UTU SS9n[         R                  " UTU SS9n[        R                  " X45        [         R                  " X"TUS5      nU(       a   eg )Nr0   Tr   Fr   )rZ   r   rx   r   r   )f12f22r^   r`   r_   r   r   r   s        r   r   3TestExpressions.test_comparison_ops.<locals>.testit   sp    (C!)CB]]2tSdCF}}RsFH''9**25#zJF:vr   rW   Fr0   r   )r}   r~   r   r   r   r   r   r   s     `   @@r   test_comparison_ops#TestExpressions.test_comparison_ops   sp     &&x0''	2	 159H : 	  #  " :9s   B
Bcond)r   r   r+   r.   c                   ^^ UR                  U5      mUU4S jn[        SS5         U" 5         S S S 5        [        R                  " S5        U" 5         [        R                  " 5         U" 5         g ! , (       d  f       NH= f)Nc                  j  > [         R                  " TR                  [         R                  S9n U R	                  T5        [
        R                  " U TR                  TR                  S-   5      n[         R                  " U TR                  TR                  S-   5      n[        R                  " X5        g )N)r   r0   )
r   emptyr7   bool_fillrZ   wherer?   rx   r   )cr`   r_   r   r\   s      r   r   *TestExpressions.test_where.<locals>.testit  sp    2AFF4LZZ299bii!m<Fxx299bii!m<H''9r   rW   Fr0   r   )r}   r~   r   rc   r   r\   s     `  @r   
test_whereTestExpressions.test_where  s`     $$W-	: 159H : 	  #  " :9s   A11
A?zop_str,opname))r   ri   )z//rj   )r   r   c                 T   [        [        R                  R                  S5      R                  S5      S:  [        R                  R                  S5      R                  S5      S:  S.5      nSU S3n[	        [
        U5      n[        R                  " U5      n[        R                  " [        US9   U" X35        S S S 5        [        R                  " [        US9   U" UR                  UR                  5        S S S 5        [        R                  " [        US9   U" UR                  S5        S S S 5        [        R                  " [        US9   U" S	UR                  5        S S S 5        [        R                  " [        US9   U" S	U5        S S S 5        [        R                  " [        US9   U" US5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)
Nr	   
         ?abz
operator 'z!' not implemented for bool dtypes)matchTF)r   r   r   r   rR   rY   reescapepytestraisesNotImplementedErrorr   r   )r}   r   rO   r\   msgrn   err_msgs          r   !test_bool_ops_raise_on_arithmetic1TestExpressions.test_bool_ops_raise_on_arithmetic#  s    YY**1-44R83>YY**1-44R83>
 6("CDHf%))C.]].g>bI ? ]].g>bddBDDM ? ]].g>bddDM ? ]].g>eRTTN ? ]].g>eRL ? ]].g>b$K ?> ?> ?> ?> ?> ?> ?>sH   2	GGG&G7
H0
H
G
G#&
G47
H
H
H'))r   re   )r   rg   )r   rf   c                 d   Sn[        [        R                  R                  S5      R                  U5      S:  [        R                  R                  S5      R                  U5      S:  S.5      nSSSS.nS	S
SS.n[	        [
        U5      n[	        [
        XeU      5      nUS:X  a  g [        R                  " SSS9   [        R                  " 5          U" XD5      n	U" XD5      n
[        R                  " X5        S S S 5        [        R                  " 5          U" UR                  UR                  5      n	U" UR                  UR                  5      n
[        R                  " X5        S S S 5        [        R                  " 5          U" UR                  S5      n	U" UR                  S5      n
[        R                  " X5        S S S 5        [        R                  " 5          U" SUR                  5      n	U" SUR                  5      n
[        R                  " X5        S S S 5        [        R                  " 5          U" SU5      n	U" SU5      n
[        R                  " X5        S S S 5        [        R                  " 5          U" US5      n	U" US5      n
[        R                  " X5        S S S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNj= f! , (       d  f       GN"= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       g = f)Nr   r	   r   r   |&^)r   r   r   or_and_xor)r   r   r   r   T   )min_elementsF)r   r   r   r   rR   rY   rx   r   assert_produces_warningassert_frame_equalr   r   assert_series_equal)r}   r   rO   nr\   subs	sub_funcsrn   feres              r    test_bool_ops_warn_on_arithmetic0TestExpressions.test_bool_ops_warn_on_arithmeticD  sV    YY**1-44Q7#=YY**1-44Q7#=
 s-f59	Hf%Xyf67S=^^Dq1++-bIrJ%%a+ .
 ++-bddBDDMrttRTTN&&q, .
 ++-bddDMrttTN&&q, .
 ++-eRTTNubddO&&q, .
 ++-eRLubM%%a+ .
 ++-b$Kr4L%%a+ .5 21--
 .-
 .-
 .-
 .-
 .-5 21s   <L!'J89L!AK
'L!=KL!=K.L!8)K?!L!>)L'L!8
K	L!

K	L!
K+	&L!.
K<	8L!?
L		L!
L	L!!
L/ztest_input,expected)r   r0   r	   aa)r   r   r   r   )r   r   r   )r      r	   r   )r   r   r	   r   )r   r0   r0   bbc                     UR                   S S 2SS/4   R                  UR                   S S 2SS/4   5      n[        R                  " X25        g )Nr   r   )locnerx   r   )r}   
test_inputr_   r`   s       r   test_bool_ops_column_name_dtype/TestExpressions.test_bool_ops_column_name_dtypey  sF    . C> 1255jnnQgEV6WX
f/r   axis)r   r0   c                    UnUS:X  a  UR                   SS S 24   nOUR                   S S 2S4   nUR                  5        nUR                  [        SS5        [	        XR5      n[        SS5         U" XaS9n	S S S 5        U" XaS9n
[        R                  " W	U
5        S S S 5        g ! , (       d  f       N4= f! , (       d  f       g = f)Nr0   r   rl   rW   F)r   )r|   rt   ru   rZ   rR   r   rx   r   )r}   r   rd   r   r   r\   r]   r   op_funcr_   r`   s              r   test_frame_series_axis&TestExpressions.test_frame_series_axis  s     19GGAqDMEGGAqDME  "aIIdOQ/b(G 5u="54 > U.F!!(F3 #"
 >= #"s$    /B5/B$6%B5$
B2	.B55
Cr^   )__mod____rmod____floordiv____rfloordiv__boxscalarr   c                 D   UR                  5        nUR                  [        SS5        [        R                  " SS5      nU" U5      n[        Xq5      nU" U5      n	[        SS5         U" U5      n
S S S 5        [        R                  " U	W
5        [        U5       HH  u  pU[        :X  a  U	R                  US4   nOX   n [        [        U5      U5      " U5      n
X:X  d   eMJ     S S S 5        g ! , (       d  f       N= f! [         a     Ms  f = f! , (       d  f       g = f)Nrl   r   i2   rW   F)rt   ru   rZ   r   arangerR   r   rx   ry   	enumerater   r|   intZeroDivisionError)r}   r^   r   r   r   r   dataobjmethodr`   r_   r   elemscalar_results                 r   ,test_python_semantics_with_numexpr_installed<TestExpressions.test_python_semantics_with_numexpr_installed  s      "aIIdOQ/99S"%Dd)CS%FF^F   5u=!&> > OOFH- %T?)#$*KK1$5M$*IM5&s4y"5f=H )444 + #" >= ) + #"sI   AD'	C/0AD D D/
C=	9D 
D
DDD
Dr   N)rX   
__module____qualname____firstlineno__staticmethodboolstrra   r   markparametrizer   r   r   filterwarningsr   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   rL   rL   g   s[      s     [[	
 [[VdE]3[[D2 4 2$ [[	
 [[VdE]3F 4F2  [[ TU[[S [[46WX,	 V,4 [[46WX2 [[VdE]3[[Y(RS T 4$ [[N< [[C0,0,d [[ $o6@X E5>E5>:S'NS	 $oG4 U^eU^eU^D 'N		
*0+*0
 [[D [[VV,4 -4( [[	
 [[UY$>?[[XAw/5 0 @5r   rL   )!rY   r   numpyr   r   pandasr   pandas._testing_testingrx   pandas.core.apir   r   r   pandas.core.computationr   rZ   rc   r   r   r+   r.   r5   r8   r;   r@   rC   rG   rI   r  skipifUSE_NUMEXPRrL   r   r   r   <module>r     sk    	   !  
 8           W W
   % % & & % % & & (((1DEj5 j5 Fj5r   