403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/pandas/tests/computation/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/pandas/tests/computation/__pycache__/test_eval.cpython-312.pyc
�

.	�g;���UddlmZddlmZddlmZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZddlmcmZddlmZmZmZmZddlZddlmZmZmZmZmZm Z ddl!m"Z#dd	l$m%Z%m&Z&dd
l'm(Z(ddl)m*Z*m+Z+m,Z,ddl-m.Z.m/Z/dd
l0m1Z1m2Z2m3Z3m4Z4m5Z5ddl6m7Z7e	jpd�e(D���d��Z9e	jpe%jt��d��Z;d�Z<e	jpe=e>d��gd���d��Z?e?Z@e?ZAe	jpd��ZBGd�d�ZCGd�d�ZDd�ZEGd�d�ZFGd �d!�ZGGd"�d#�ZHej�j�d$�j�d%�ZLGd&�d'�ZMej�d(�d)��ZOej�d(�e	j�j�d*d+�d,���ZRej�d(�d-��ZSej�d(�d.��ZTe,e&j�e+d/�ZVd0eWd1<e	j�j�d2e(�e	j�j�d3eV�d4���ZXd5�ZYd6�ZZe	j�j�d7gd8��d9��Z[d:�Z\d;�Z]d<�Z^d=�Z_e	j�j�d>d?�e	j�j�d@e`eaf�e	j�j�dAe`eaf�dB����Zbe	j�j�dCdDdEg�dF��ZcdG�Zde	j�j�dHdIdJg�dK��ZedL�Zfe	j�j�dHe7j���dM��ZhdN�ZiGdO�dP�Zjy)Q�)�annotations)�reduce)�productN)�PY312)�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�SPECIAL_CASE_ARITH_OPS_SYMS�_binary_math_ops�_binary_ops_dict�_unary_math_ops)�DEFAULT_GLOBALSc#��K�|]i}tj|tjj|dk(xrtdt�dt
����t
jd�g�����ky�w)�numexprznumexpr enabled->z
, installed->��reason��marksN)�pytest�param�mark�skipifrr�td�
skip_if_no)�.0�engines  �DC:\Python312\Lib\site-packages\pandas/tests/computation/test_eval.py�	<genexpr>r1<s{����
�
�	�������"�"��i�'�;��O�.�{�m�<"�"3�!4�6�#��
�
�
�i�(�
�
	
�
	
�
�s�A/A1)�paramsc��|jS�N�r)��requests r0r/r/;s��"�=�=��c��|jSr4r5r6s r0�parserr:Os���=�=�r8c���t|}t|jr
	|||�S|||�S#t$r5}t	|�jd�rtjcYd}~S�d}~wwxYw)Nz6negative number cannot be raised to a fractional power)rr�has_neg_frac�
ValueError�str�
startswith�np�nan)�lhs�cmp1�rhsr/�c�es      r0�_eval_single_binrGTsm�����A��v��#�#�	��S�#�;��
�S�#�;���
�	��1�v� � �H���v�v�
���	�s �0�	A.�)A)�"A.�(A)�)A.�)rr�	SeriesNaN�DataFrameNaN�float)r2�idsc	�F�ttjjd�j	d��}tj
||dkD<ttjjd�j	d��t
tjjd�j	d��t
ddtj
tj
dg�|tjjd�j	�f}||jS)N�)�
rH��?rH�)rr@�random�default_rng�standard_normalrArr))r7�nan_df1�optss   r0rBrBcs���
��	�	�-�-�a�0�@�@��I�J�G��V�V�G�G�c�M��	�"�)�)�'�'��*�:�:�7�C�D��r�y�y�$�$�Q�'�7�7��:�;���1�b�f�f�b�f�f�a�(�)��
�	�	���a� �0�0�2��D���
�
��r8c� �d�d�d�d�d�d�d�S)Nc�^�ttj|�tj��S�N��dtype)rr@�arange�int64��ns r0�<lambda>zidx_func_dict.<locals>.<lambda>|s��u�R�Y�Y�q�\����:�r8c�^�ttj|�tj��SrY)rr@r\�float64r^s r0r`zidx_func_dict.<locals>.<lambda>}s��u�R�Y�Y�q�\����<�r8c
�t�ttdd|z�D�cgc]}|�dt|�����c}�Scc}w)N�a�_)r�range�chr)r_�is  r0r`zidx_func_dict.<locals>.<lambda>~s2��u�u�R��a��7H�I�!���1�S��V�H�o�I�J���Is�5c��td|��S)N�
2020-01-01��periods)rr^s r0r`zidx_func_dict.<locals>.<lambda>s
��
�<��;�r8c��td|��S)Nz1 dayrk)rr^s r0r`zidx_func_dict.<locals>.<lambda>�s
�����;�r8c��td|d��S)Nrj�D)rl�freq)rr^s r0r`zidx_func_dict.<locals>.<lambda>�s��|�L�!�#�F�r8)rh�f�s�dtr,�p�rur8r0�
idx_func_dictrvys ��;�
<�
J�;�;�
F�
�r8c
��eZdZejjdgd�gd���ejjdddgdd	g��ejjd
ej�d����Zejjdej�d
��Z
ejjdej�d��Zejjdddg�ejjdddg�d���Zejjde
ee�j!e���d��Zd�Zd�Zej,d��Zd�Zd�Zd�Zd�Zd�Zejjdeej>jAd�jCd��eej>jAd�jEdd���eej>jAd�jCd�d kD�g�d!��Z#ejjde$ej>jAd�jCd��e$ej>jAd�jEdd���e$ej>jAd�jCd�d kD�g�d"��Z%d#�Z&d$�Z'ejjd%ejPejRg�ejjd&d'd(g�d)���Z*d*�Z+ejjd+d,�d-��Z,d.�Z-d/�Z.d0�Z/d1�Z0d2�Z1d3�Z2y4)5�TestEvalrC)z!=z==z<=z>=�<�>)�ne�eq�le�ge�lt�gt)rL�cmp2rzryr�r�binopc��|dk(rO|dvrKd}tjt|��5d|�d|�d|�d�}	tj|	||�	�ddd�yt||||�}
t||||�}t|
|||�}d|�d|�d|�d�}	tj|	||�	�}
t
j|
|�y#1swYyxYw)
N�python��and�or�"'BoolOp' nodes are not implemented��match�(lhs z rhs) z (lhs � rhs)�r/r:)r(�raises�NotImplementedError�pd�evalrG�tm�assert_equal)�selfrCr�r�rBrDr/r:�msg�ex�lhs_new�rhs_new�expected�results              r0�test_complex_cmp_opszTestEval.test_complex_cmp_ops�s����X��%�=�"8�6�C����2�#�>�
:��T�F�&���v�d�V�5�A������6�&�9�
:�
�"�3��c�6�:��"�3��c�6�:��#�G�U�G�V�D���T�F�&���v�d�V�5�
9������F�6�:��
�����)�
:�
�s�%B:�:C�cmp_opc	�.�|dk}|dk}|dk(rI|dvrEd}tjt|��5d|�d�}tj|||��ddd�yd|�d�}d	jd
dg�}|dvrLt
|�sAtjt|��5tj|||||d��
�ddd�yt||||�}tj|||��}	tj|	|�y#1swYyxYw#1swYyxYw)Nrr���in�not in�&'(In|NotIn)' nodes are not implementedr��lhs � rhsr��|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�rBrD�r/r:�
local_dict)r(r�r�r�r��joinr�	TypeErrorrGr�r�)
r�r�rBrDr/r:r�r�r�r�s
          r0�test_simple_cmp_opszTestEval.test_simple_cmp_ops�s$���A�g���A�g���X��&�,<�"<�:�C����2�#�>�
:��F�8�4�(������6�&�9�
:�
��F�8�4�
 ���h�h�"�:�	
�
���%�%�l�3�.?����y��4�
�����!�!�'*�3�7�	�
�
�(��V�S�&�A�H��W�W�R��v�>�F��O�O�F�H�-�3
:�
��
�
�s�C?�D�?D�D�opc	�8�|dk(rI|dvrEd}tjt|��5d|�d�}tj|||��ddd�yt|�rJt|�s?|dvr;|dk(r6|dk(r1tjjd	�
�}	|j|	�ddg}
d|�d�}d
jddg�}t|�rE||
vrAtjt|��5tj|||||d���ddd�yt|�rt|�rd�||fD�\}}t||||�}t|�r|}n|}tj|||��}tj||�y#1swYyxYw#1swYyxYw)Nr�r�r�r�z~(lhs 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�c3�HK�|]}tj|g����y�wr4)r@�array�r.�xs  r0r1z3TestEval.test_compound_invert_op.<locals>.<genexpr>�s����>�a�B�H�H�a�S�M�>�s� ")r(r�r�r�r�rr*�xfail�applymarkerr�r
r�rGr��assert_almost_equal)
r�r�rBrDr7r/r:r�r�r*�
skip_theser�r�s
             r0�test_compound_invert_opz TestEval.test_compound_invert_op�s����X��"�(8�"8�:�C����2�#�>�
:��b�T��'������6�&�9�
:�
�
�S�M��S�M��&�&��(�"��(�"��;�;�$�$�?�%��D�
����%��H�%�
��b�T��
���h�h�#�;�	
�
���S�>�b�J�.����y��4�
�����!�!�'*�3�7�	�
�
���~�)�C�.�>�C��:�>���S�'��R��f�=�H���"�'�<��$�9���W�W�R��v�>�F��"�"�8�V�4�]
:�
��4
�
�s�F�+F�F
�Fc��|}|dk(rHd|�d|�d�}	d}
tjt|
��5tj|	||��ddd�yt||||�}t||||�}|�e|�bd|�d|�d�}	d|�d|�d�}
d	|�d
|�d�}t|d||�}|	|
|fD]0}tj|||��}t
j||��2yyy#1swYyxYw)
Nr�r�� mid r�r�r�r��
 mid and mid r��
 mid) & (mid r��&)r(r�r�r�r�rGr�r�)r�rCr�rB�midhsrDr/r:�mid�ex1r�r�r��ex2�ex3r�r�r�s                  r0�test_chained_cmp_opzTestEval.test_chained_cmp_op�s�����X�����e�D�6��.�C�6�C����2�#�>�
;�����F�6�:�
;��"�3��c�6�:��"�3��c�6�:����7�#6����e�D�6��.�C����m�D�6��6�C��$��}�T�F�%�8�C�'���g�v�F�H��C��o�
9������F�6�B���&�&�v�x�8�
9�
$7��
;��s�C�C�arith1c��d|�d�}tj|||��}t||||�}tj||�d|�d|�d�}tj|||��}t||||�}		|	j|�\}	}
|dk(r:ddl}|jd|�d��}tj|j|�ytd|�d��}tj||�y#tttf$rYywxYw)	Nr�r�r�z rhs r#rznlhs z ghs)r�r�rGr�r��alignr#�evaluate�valuesr=r��AttributeError)r�r�rBrDr/r:r�r�r��nlhs�ghsr{s            r0�test_binary_arith_opszTestEval.test_binary_arith_ops
s���F�8�4�
 ������F�6�:��#�C���f�=��
���v�x�0��F�8�5����
-������F�6�:����V�S�&�9��	9��
�
�3��I�D�#���"�$��;�;��v�h�d�';�<��
�&�&�v�}�}�h�?��%��x�t� 4�5���&�&�v�x�8��#�I�~�6�	�
�	�s�3C,�,D�Dc��d}tj|||��}||z}tj||�|dk(rqddl}|jd�}t
|ttf�r!tj|j|�ytj||j��yt|d||�}tj||�y)Nz	lhs % rhsr�r#rzexpected % rhs�%)r�r�r�r�r#r��
isinstancerrr��itemrG)	r�rBrDr/r:r�r�r�r{s	         r0�test_moduluszTestEval.test_modulus0s���
������F�6�:����9��
���v�x�0��Y�� ��{�{�#4�5�H��&�9�f�"5�6��&�&�v�}�}�h�?��&�&�v�x�}�}��?�'��#�s�F�C�H��"�"�6�8�4r8c��d}|dk(r4tj|||��}||z}tj||�yd}t	j
t|��5tj|||d�||��ddd�y#1swYyxYw)Nz
lhs // rhsr�r�zGunsupported operand type\(s\) for //: 'VariableNode' and 'VariableNode'r�r��r�r/r:)r�r�r�r�r(r�r�)	r�rBrDr/r:r��resr�r�s	         r0�test_floor_divisionzTestEval.test_floor_divisionBs���
���X���'�'�"�V�F�;�C��c�z�H��O�O�C��*�!�
����y��4�
�����'*�3�7�!�!�	�
�
�
�s�A?�?Bc�@�d}t|d||�}tj|||��}t|�r}t|�rrt	|t
tjf�rRt
j|�r=d}tjt|��5tj||�ddd�ytj||�d}tj|||��}t|d||�}	t|	d||�}tj||�y#1swYyxYw)Nz
lhs ** rhs�**r�z-(DataFrame.columns|numpy array) are differentr�z(lhs ** rhs) ** rhs)rGr�r�r
r��complexr@�complexfloating�isnanr(r��AssertionErrorr��assert_numpy_array_equalr�)
r�rBrDr/r:r�r�r�r��middles
          r0�test_powzTestEval.test_powVs�����#�C��s�F�;������F�6�:��
�c�N��#���8�g�r�/A�/A�%B�C����� �A�C����~�S�9�
>��+�+�F�H�=�
>�
>�
�"�"�6�8�4�&�B��W�W�R��v�>�F�%�c�4��f�=�F�'���c�6�B�H��"�"�6�8�4�
>�
>�s�D�Dc���	|jt�}|}tjd||��}tj||�y#t$r"tjt|�g�}Y�\wxYw)Nz~elbr�)	�astype�boolr�r@r�r�r�r�r�)r�rBr/r:�elbr�r�s       r0�test_check_single_invert_opz$TestEval.test_check_single_invert_oppse��	(��*�*�T�"�C��4�������v�>��
���x��0��	�	(��(�(�D��I�;�'�C�	(�s�A	�	(A4�3A4c��d}ttjjd�j	d��}|dk(r?d}tjt|��5tj|||��ddd�n>d}tjt|��5tj|||��ddd�ttjjd�jd	d�
��}|dk(r?d}tjt|��5tj|||��ddd�n1|}tj|||��}tj||�ttjjd�j	d�dkD�}|}tj|||��}tj||�tgd
�tjjd�j	d�dkDd��}|dk(r=tjtd��5tj|||��ddd�yd}tjt|��5tj|||��ddd�y#1swY���xYw#1swY���xYw#1swY��OxYw#1swYyxYw#1swYyxYw)N�~lhsrN�rHrNr#�-couldn't find matching opcode for 'invert_dd'r�r��0ufunc 'invert' not supported for the input typesrH��size�)couldn't find matching opcode for 'invertrP��arQg@�)�brE�unknown type object�#bad operand type for unary ~: 'str')rr@rRrSrTr(r�r�r�r�r��integersr��assert_frame_equalr=)r�r/r:rrBr��expectr�s        r0�test_frame_invertzTestEval.test_frame_invertzsU����
��	�	�-�-�a�0�@�@��H�I���Y��A�C����2�#�>�
<�����V�F�;�
<�
<�E�C����y��4�
<�����V�F�;�
<���	�	�-�-�a�0�9�9�!�&�9�I�J���Y��=�C����2�#�>�
<�����V�F�;�
<�
<��T�F��W�W�T�&��@�F��!�!�&�&�1���	�	�-�-�a�0�@�@��H�3�N�O���������f�V�<��
���f�f�-���b�i�i�&;�&;�A�&>�&N�&N�q�&Q�TW�&W�X�
���Y�����z�1F�G�
<�����V�F�;�
<�
<�8�C����y��4�
<�����V�F�;�
<�
<�C
<�
<��
<�
<��
<�
<��$
<�
<��
<�
<�s<�J�J"�J/�4J<�3K�J�"J,�/J9�<K�Kc�D�d}ttjjd�j	d��}|dk(r?d}tjt|��5tj|||��}ddd�n>d}tjt|��5tj|||��ddd�ttjjd�jdd�	��}|dk(r?d
}tjt|��5tj|||��ddd�n1|}tj|||��}tj||�ttjjd�j	d�dkD�}|}tj|||��}tj||�tgd��}|dk(r=tjtd
��5tj|||��ddd�yd}tjt|��5tj|||��ddd�y#1swY���xYw#1swY���xYw#1swY��xYw#1swYyxYw#1swYyxYw)Nr�rNrHr#r�r�r�r�r�r�rPr�r�r�)rr@rRrSrTr(r�r�r�r�r�r�r��assert_series_equalr=)r�r/r:rrBr�r�r�s        r0�test_series_invertzTestEval.test_series_invert�s2�����R�Y�Y�*�*�1�-�=�=�a�@�A���Y��A�C����2�#�>�
E�����f�V�D��
E�
E�E�C����y��4�
<�����V�F�;�
<��R�Y�Y�*�*�1�-�6�6�q�q�6�A�B���Y��=�C����2�#�>�
<�����V�F�;�
<�
<��T�F��W�W�T�&��@�F��"�"�6�6�2��R�Y�Y�*�*�1�-�=�=�a�@�3�F�G���������f�V�<��
���v�v�.��]�#���Y�����z�1F�G�
<�����V�F�;�
<�
<�8�C����y��4�
<�����V�F�;�
<�
<�G
E�
E��
<�
<��
<�
<��(
<�
<��
<�
<�s<�I#�I0�I=�J
�J�#I-�0I:�=J�
J�Jc�"�d}ttjjd�j	d��}|}tj|||��}tj||�ttjjd�jdd���}|}tj|||��}tj||�ttjjd�j	d�dkD�}|dk(r?d	}tjt|�
�5tj|||��ddd�y|}tj|||��}tj||�y#1swYyxYw)N�-lhsrNr�r�rHr�rPr#�*couldn't find matching opcode for 'neg_bb'r�)
rr@rRrSrTr�r�r�r�r�r(r�r��r�r/r:rrBr�r�r�s        r0�test_frame_negatezTestEval.test_frame_negate�sF������	�	�-�-�a�0�@�@��H�I���������f�V�<��
���f�f�-���	�	�-�-�a�0�9�9�!�&�9�I�J���������f�V�<��
���f�f�-���	�	�-�-�a�0�@�@��H�3�N�O���Y��>�C����2�#�>�
<�����V�F�;�
<�
<��T�F��W�W�T�&��@�F��!�!�&�&�1�
<�
<���1F�Fc�"�d}ttjjd�j	d��}|}tj|||��}tj||�ttjjd�jdd���}|}tj|||��}tj||�ttjjd�j	d�dkD�}|dk(r?d}tjt|�	�5tj|||��ddd�y|}tj|||��}tj||�y#1swYyxYw)
Nr�rNrHr�r�rPr#r�r�)
rr@rRrSrTr�r�r�r�r�r(r�r�r�s        r0�test_series_negatezTestEval.test_series_negate�sF�����R�Y�Y�*�*�1�-�=�=�a�@�A���������f�V�<��
���v�v�.��R�Y�Y�*�*�1�-�6�6�q�q�6�A�B���������f�V�<��
���v�v�.��R�Y�Y�*�*�1�-�=�=�a�@�3�F�G���Y��>�C����2�#�>�
<�����V�F�;�
<�
<��T�F��W�W�T�&��@�F��"�"�6�6�2�
<�
<�r�rBrNr�rHr�rPc�h�d}|}tj|||��}tj||�y�Nz+lhsr�)r�r�r�r��r�rBr/r:rr�r�s       r0�test_frame_poszTestEval.test_frame_pos
s0����������f�V�<��
���f�f�-r8c�h�d}|}tj|||��}tj||�yr)r�r�r�r�rs       r0�test_series_poszTestEval.test_series_poss0����������f�V�<��
���v�v�.r8c��d}d}tr|dk(r|dk(st}tjt|��5tjd||��ddd�tjd||��d	k(sJ�tjd
||��dk(sJ�tjd||��d
k(sJ�tjd||��dk(sJ�tjd||��dk(sJ�tj|dd��5tjd||��d
k(sJ�	ddd�tj|dd��5tjd||��dk(sJ�	ddd�tjd||��dk(sJ�tjd||��dk(sJ�tjd||��dk(sJ�tjd||��dk(sJ�y#1swY���xYw#1swY��xYw#1swY��xYw)Nz%bad operand type for unary ~: 'float'r#r�r�z~1.0r�z-1.0�r:r/g�z+1.0g�?z~1���z-1���z+1rQzBitwise inversionF)r��check_stacklevelz~Truez~Falsez-Truez-Falserz+Truez+False)	r�DeprecationWarningr(r�r�r�r�r��assert_produces_warning)r�r/r:r��warns     r0�test_scalar_unaryzTestEval.test_scalar_unary.s���5�����&�I�-�&�H�2D�%�D�
�]�]�9�C�
0�	:��G�G�F�6�&�9�	:��w�w�v�f�V�<��D�D�D��w�w�v�f�V�<��D�D�D��w�w�t�F�6�:�b�@�@�@��w�w�t�F�6�:�b�@�@�@��w�w�t�F�6�:�b�@�@�@�
�
'�
'��+�e�
�	K��7�7�7�6�&�A�U�J�J�J�	K��
'�
'��+�e�
�	M��7�7�8�F�6�B�f�L�L�L�	M��w�w�w�v�f�=��F�F�F��w�w�x��v�>�&�H�H�H��w�w�w�v�f�=��F�F�F��w�w�x��v�>�&�H�H�H�'	:�	:��	K�	K��	M�	M�s#�G�G(�?G4�G%�(G1�4G=c���tjtjd�tj��}tjgd�tj��}tj||�y)Nz>[-True, True, +True, -False, False, +False, -37, 37, ~37, +37]rZ)
rTrQrFri����%i���r)r@r�r�r��object_r�r�)r�r�r�s   r0�test_unary_in_arrayzTestEval.test_unary_in_arrayHsV������G�G�T�U��*�*�
���8�8�
��*�*�
��	�#�#�F�H�5r8r[rzx < -0.1z-5 > xc��tdtjdg|��i�}|j|�}|jtjdg�k(sJ�y)Nr�rrZF)rr@r�r�r�)r�r[r�dfr�s     r0�test_float_comparison_bin_opz%TestEval.test_float_comparison_bin_opasJ����R�X�X�q�c��7�8�
9���g�g�d�m���z�z�R�X�X�u�g�.�.�.�.r8c�h�tdddtjgi�}|jd�}|jjd�}t
j||t��|jd�}|jjdd��}t
j||t��y)	Nr�rrQzx.fillna(-1)r��check_nameszx.shift(1, fill_value=-1))�
fill_value)
rr@rAr�r��fillnar�r�r�shift�r�rr�r�s    r0�test_unary_in_functionzTestEval.test_unary_in_functionis���
��a��B�F�F�^�,�
-������(���4�4�;�;�r�?��	���v�x��_�M����4�5���4�4�:�:�a�B�:�/��
���v�x��_�Mr8r�)z1 or 2z1 and 2za and bza or bz1 or 2 and (3 + 2) > 3z2 * x > 2 or 1 and 2z2 * df > 3 and 1 or ac�j�tjjd�jd�dd}}}t	tjjd�jd��}d}tjt|��5tj|||��ddd�y#1swYyxYw)NrNr�rQ�r�rN�;cannot evaluate scalar only bool ops|'BoolOp' nodes are notr�r�)
r@rRrSrTrr(r�r�r�r�)	r�r�r/r:r�r�r�rr�s	         r0�test_disallow_scalar_bool_opsz&TestEval.test_disallow_scalar_bool_opsws����)�)�'�'��*�:�:�1�=�q�!�a�1��
�r�y�y�,�,�Q�/�?�?��G�
H��K��
�]�]�.�c�
:�	6��G�G�B�v�f�5�	6�	6�	6�s�B)�)B2c��d}tjd||��}|dk(sJ�t|�sJ�d}tjd||��}|dk(sJ�t|�sJ�d}tjd||��}|rJ�t|�sJ�t|�sJ�t	j
dg�}tjd||��}t
j|t	j
dg��|jdk(sJ�t	j
dg�}tjd||��}t
j|t	j
dg��|jdk(sJ�t	j
dg�}tjd||��}t
j|t	j
dg��|jdk(sJ�y)NrQr�r�g�?F)rQ)	r�r�r
r
r@r�r�r��shape)r�r/r:r�r�s     r0�test_identicalzTestEval.test_identical�s���
������V�F�;����{��{��� � � �������V�F�;����}��}��� � � �������V�F�;����z��v������ � � ��H�H�a�S�M������V�F�;��
�#�#�F�B�H�H�a�S�M�:��|�|�t�#�#�#��H�H�c�U�O������V�F�;��
�#�#�F�B�H�H�c�U�O�<��|�|�t�#�#�#��H�H�e�W�������V�F�;��
�#�#�F�B�H�H�e�W�,=�>��|�|�t�#�#�#r8c�F�d}tj|||��}|dk(sJ�y)Nz1 + 2 *         5 - 1 + 2 r��)r�r�)r�r/r:�expr�s     r0�test_line_continuationzTestEval.test_line_continuation�s'��������V�F�;����|��|r8c���d}tj|||��}tj|�}||k(sJ�t	dgd�i�}d}|jd|d���}|jsJ�d}|jd	|d���}|jd
dgdd�f}tj||�d}|jd
|d���}|jd
gdd�f}tj||�y)Nz1000000000.006r��A)g~e��A�$e��Ag'1e��Ag�e��AzA < z.4fg� e��AzA > rQrNr*�A == )
r�r�r@rbr�query�empty�locr�r�)	r�r/r:r&r�r�r�cutoff�exacts	         r0�test_float_truncationzTestEval.test_float_truncation�s���������V�F�;���:�:�c�?����!�!�!�
��P�Q�
R�� �����D����-�.���|�|��|� �����D����-�.���6�6�1�a�&�!�)�$��
���h��/������E�%���-�.���6�6�1�#�q�&�>��
���h��/r8c�f�tgd�ggd���}d}tjt|��5|j	d�ddd�t�}d|j
_tjt|��5|j	d�ddd�y#1swY�ZxYw#1swYyxYw)	N)rrr)�foo�bar�class��columnsz4Python keyword not valid identifier in numexpr queryr�z
class == 0�lambdazlambda == 0)rr(r��SyntaxErrorr,�index�name�r�rr�s   r0�test_disallow_python_keywordsz&TestEval.test_disallow_python_keywords�s���
�	�{�,C�
D��D��
�]�]�;�c�
2�	#��H�H�\�"�	#��[�� ����
�
�]�]�;�c�
2�	$��H�H�]�#�	$�	$�	#�	#��
	$�	$�s�B�B'�B$�'B0c��tjttd��5t	j
d�dk(sJ�t	j
d�dk(sJ�t	j
d�dk(sJ�	ddd�y#1swYyxYw)	NF)r	znot Truerz	not FalserzTrue and not Truer)r��maybe_produces_warningr
rr�r�)r�s r0�test_true_false_logiczTestEval.test_true_false_logic�sv���
&�
&����
�	5��7�7�:�&�"�,�,�,��7�7�;�'�2�-�-�-��7�7�.�/�1�4�4�4�	5�	5�	5�s�AA:�:Bc�X�tddi�}tj|jj	d�j
��sJ�tj|jj	d�j
xr%|jj	d�j
��sJ�y)Nr��hello)rr�r�r>r�r�)r��events  r0�test_and_logic_string_matchz$TestEval.test_and_logic_string_match�sx����W�~�&���w�w�%�)�)�/�/�'�2�4�4�5�7�7�7��w�w�%�)�)�/�/�'�2�4�4�S�������9Q�9S�9S�T�V�V�Vr8N)3�__name__�
__module__�__qualname__r(r*�parametrizer�
BOOL_OPS_SYMSr��CMP_OPS_SYMSr�r�r��sorted�setr�
differencerr�r�r�r,�skip_if_windowsr�r�r�r�r�r�rr@rRrSrTr�rrrr
r�float32rbrrr r#r'r1r=r@rDrur8r0rxrx�s|���[�[����*�0���
�[�[���V�c�3�Z�d�D�\��B��[�[���W�d�&8�&8�9�*�:�C��*� �[�[���X�t�'8�'8�9� .�:� .�D�[�[���T�4�#4�#4�5�15�6�15�f�[�[���V�c�3�Z�0��[�[���V�c�3�Z�0�9�1�1�9�.�[�[����&��^�,�7�7�8S�T�U��9��9�@5�$�(���5��5�21�+<�Z-<�^2�43�4�[�[���
�
�b�i�i�+�+�A�.�>�>�v�F�G��b�i�i�+�+�A�.�7�7���7�G�H��b�i�i�+�+�A�.�>�>�v�F��L�M�
	
�
�.�
�.��[�[���
�
�2�9�9�(�(��+�;�;�A�>�?��2�9�9�(�(��+�4�4�Q�Q�4�?�@��2�9�9�(�(��+�;�;�A�>��D�E�
	
�
�/�
�/�I�46�2�[�[���W�r�z�z�2�:�:�&>�?��[�[���V�j�(�%;�<�/�=�@�/�N��[�[����	
��6��6�$�B�0�,
$�5�Wr8rxc��eZdZejjdgd��ejjdddg�d���Zy)�TestTypeCastingr�)�+�-�*r��/�
left_right)r�3)rWrc���|}ttjjd�j	d�|��}|\}	}
|	�d|�d|
��}tj|||��}|dk(r6|dk(r1tjjd�	�}
|j|
�|jj|k(sJ�|jj|k(sJ�tj|t
|�d
��y)NrN�rHr�rZ� r��	complex64r#zfnumexpr issue with complex that are upcast to complex 128 https://github.com/pydata/numexpr/issues/492r$F)�check_exact)rr@rRrSrTr�r�r(r*r�r�r�r[r�r�)r�r/r:r��complex_or_float_dtyperVr7r[r�left�rightrrr�r*s              r0�test_binop_typecastingz&TestTypeCasting.test_binop_typecasting�s���'��
�r�y�y�,�,�Q�/�?�?��G�u�
U�� ���e��f�A�b�T��5�'�"���g�g�a��v�6���K��F�i�$7��;�;�$�$�?�%��D�

����%��y�y���%�'�'�'��z�z���5�(�(�(�
���c�4��7��>r8N)rErFrGr(r*rHr`rur8r0rQrQ�sG���[�[���T�#=�>��[�[���\�K��+E�F�?�G�?�?r8rQc��tttjd�|��}t	tj
d�|D��}|xr|S)N�is_monotonic_increasingc3�xK�|]2}t|jjtj����4y�wr4)�
issubclassr[�typer@�
datetime64r�s  r0r1zshould_warn.<locals>.<genexpr>s#����M�1�z�!�'�'�,�,��
�
�>�M�s�8:)�any�map�operator�
attrgetterr�xor)�args�not_mono�only_one_dts   r0�should_warnrosH���s�8�.�.�/H�I�4�P�Q�Q�H�����M��M��K��#��#r8c�L�eZdZgd�ZedgzZd�Zejjd�ejjde�ejjde�ejjde�d�����Z
ejjd	e�ejjde�d
���Zejjd�ejjde�ejjd
e�ejjde�ejjde�d������Zejjd�ejjdddg�ejjde�ejjd	e�d�����Z
ejjdddg�ejjdeeddgddg��dgz�ejjd�d����Zejjd�ejjde�ejjd	e�ejjdddg�ejjdddg�d������Zejjd�ejjde�ejjd
e�ejjde�ejjde�d������Zd�Zy) �
TestAlignment)rhrrrsrrc���d}ttjjd�j	d��}tj|||��}tj||dz�y)Nzdf * ~2rNrYr����)	rr@rRrSrTr�r�r�r�)r�r/r:rrrr�s      r0�test_align_nested_unary_opz(TestAlignment.test_align_nested_unary_opsQ����
�r�y�y�,�,�Q�/�?�?��G�
H���g�g�a��v�6��
���c�2��7�+r8zalways::RuntimeWarning�lr_idx_type�rr_idx_type�
c_idx_typec�d�ttjjd�j	d�||d�||d���}ttjjd�j	d�||d�||d���}t|j|j�r;tjt�5tjd||��}	ddd�ntjd||��}	tj	||z�y#1swY�#xYw)	NrN�rOrOrO�r:r7)�rOr{zdf + df2r��
rr@rRrSrTror:r�r�RuntimeWarningr�r�r�)
r�r/r:rurvrwrvr�df2r�s
          r0�test_basic_frame_alignmentz(TestAlignment.test_basic_frame_alignments����I�I�!�!�!�$�4�4�X�>�,�-��,�R�0�-�M�*�-�b�1�
��
��I�I�!�!�!�$�4�4�X�>�,�-��,�R�0�-�M�*�-�b�1�
���r�x�x����+��+�+�N�;�
H��g�g�j���G��
H�
H��'�'�*�V�F�C�C�
���c�2��8�,�	
H�
H�s�D&�&D/�
r_idx_typec��ttjjd�j	d�||d�||d���}tjd||��}tj||dk�ttjjd�j	|j�|j|j��}tjd||��}tj|||k�y)NrNryrOrz�df < 2r�zdf < df3)rr@rRrSrTr�r�r�r�r"r:r7)	r�r/r:r�rwrvrr��df3s	         r0�test_frame_comparisonz#TestAlignment.test_frame_comparison3s���
��I�I�!�!�!�$�4�4�X�>�+�-�
�+�B�/�-�M�*�-�b�1�
��
�g�g�h�v�f�=��
���c�2��6�*���I�I�!�!�!�$�4�4�R�X�X�>��(�(��J�J�
��
�g�g�j���?��
���c�2��8�,r8zignore::RuntimeWarning�r1�c1�r2�c2c��ttjjd�j	d�||d�||d���}ttjjd�j	d�||d�||d���}	ttjjd�j	d�||d�||d���}
t|j|	j|
j�r;tjt�5tjd	||�
�}ddd�ntjd	||�
�}tj||	z|
z�y#1swY�&xYw)NrNrr�rz)�rNr�r�rHzdf + df2 + df3r�r|)r�r/r:r�r�r�r�rvrr~r�r�s            r0�#test_medium_complex_frame_alignmentz1TestAlignment.test_medium_complex_frame_alignmentHs^����I�I�!�!�!�$�4�4�V�<�#�-��#�A�&�%�M�"�%�a�(�
��
��I�I�!�!�!�$�4�4�V�<�#�-��#�A�&�%�M�"�%�a�(�
��
��I�I�!�!�!�$�4�4�V�<�#�-��#�A�&�%�M�"�%�a�(�
��
�r�x�x����C�I�I�6��+�+�N�;�
N��g�g�.�v�f�M��
N�
N��'�'�*�6�&�I�C�
���c�2��8�c�>�2�	
N�
N�s�)F�F	�
index_namer:r7c��ttjjd�j	d�||d�||d���}t||�}t
tjjd�j	d�|dd�}	t|j|	j�r;tjt�5tjd||��}
ddd�ntjd||��}
|dk(s|dk(r|d	k(r|j|	�n||	z}n||	z}tj
|�y#1swY�KxYw)
NrNryrOrzrH�df + sr�rsr#)rr@rRrSrT�getattrrror:r�rr}r�r��addr�)r�r/r:r�r�rwrvrr:rrr�r�s            r0�!test_basic_frame_series_alignmentz/TestAlignment.test_basic_frame_series_alignmentfs*����I�I�!�!�!�$�4�4�X�>�+�-�
�+�B�/�-�M�*�-�b�1�
��
��J�'���2�9�9�(�(��+�;�;�A�>��b�q�	�J���r�x�x����)��+�+�N�;�
F��g�g�h�v�f�E��
F�
F��'�'�(�6�&�A�C�����t�!3�$*�i�$7�r�v�v�a�y�R�!�V�H��A�v�H�
���c�8�,�
F�
F�s�
E	�	Ezr_idx_type, c_idx_typerh)rsrsc
�\�|dk(rT|dvrP|dk(rK|dk(rF|dk(rAd|�d|�d|�d	|�d
|��
}|jtjj|d���t	t
jjd
�jd�||d�||d���}	t|	|�}
tt
jjd
�jd�|
dd�}t|j|	j�r;tjt�5t!j"d||��}ddd�nt!j"d||��}|dk(s|dk(r|dk(r|	j%|�n||	z}
n||	z}
tj&|
�y#1swY�KxYw)Nr#)r�r�r:rhrrz"Flaky column ordering when engine=z	, parser=z
, index_name=z
, r_idx_type=z
, c_idx_type=F)r%�strictrN)rO�rOr�rzrHzs + dfr�rs)r�r(r*r�rr@rRrSrTr�rror:r�rr}r�r�r�r�)r�r7r/r:r�r�rwrvr%rr:rrr�r�s              r0�!test_basic_series_frame_alignmentz/TestAlignment.test_basic_series_frame_alignment�s���
�i���.�.��g�%��c�!��c�!�5�V�H�=� ���z�l�;�(�\��z�l�D�
�

������ 1� 1��� 1� N�O�
��I�I�!�!�!�$�4�4�W�=�+�-�
�+�B�/�-�M�*�-�a�0�
��
��J�'���2�9�9�(�(��+�;�;�A�>��b�q�	�J���q�w�w����)��+�+�N�;�
F��g�g�h�v�f�E��
F�
F��'�'�(�6�&�A�C�����t�!3�$*�i�$7�r�v�v�a�y�Q��V�H��2�v�H�
���c�8�,�
F�
F�s�&F"�"F+r�rRrTc�L�ttjjd�j	d�||d�||d���}t||�}	t
tjjd�j	d�|	dd�}
d|�d�}d|�d	�}t|j|
j�rutjt�5tj|||�
�}
ddd�tjt�5tj|||�
�}ddd�n0tj|||�
�}
tj|||�
�}|dk7r#|dk7r|dk(rtj
�yyyy#1swY��xYw#1swY�>xYw)
NrNryrOrzrHzs z dfzdf z sr�rsr#)rr@rRrSrTr�rror:r�rr}r�r�r�)r�r/r:r�r�r�rwrvrr:rrrBrDr�r�s               r0�test_series_frame_commutativityz-TestAlignment.test_series_frame_commutativity�sx����I�I�!�!�!�$�4�4�X�>�+�-�
�+�B�/�-�M�*�-�b�1�
��
��J�'���2�9�9�(�(��+�;�;�A�>��b�q�	�J���2�$�c�l���B�4�r�l���r�x�x����)��+�+�N�;�
?��G�G�C��v�>��
?��+�+�N�;�
?��G�G�C��v�>��
?�
?�����F�6�:�A�����F�6�:�A����*��"4���"��%�%�a��+�#�#5��
?�
?��
?�
?�s�F�F�F�F#c��d}d}	d|	z}
ttjjd�j	|	|f�|||	�|||���}ttjjd�j	|
|f�|||
�|||���}|j
}
t
tjjd�j	|�|
d|�}|dk(s|dk(r|dk(r|j|�}n||z}n||z}|dk(s|dk(r|dk(r|j|�}n||z}n||z}t|j|j|j�r;tjt�5tjd||��}ddd�ntjd||��}j|jk(sJ�tj ||�y#1swY�;xYw)	Nr�rHrNrzrsr#zdf2 + ser + dfr�)rr@rRrSrTr7rr�ror:r�rr}r�r�r"r�)r�r/r:r�r�r�r�rvr_�m1�m2rr~r:�ser�	expected2r�r�s                  r0�#test_complex_series_frame_alignmentz1TestAlignment.test_complex_series_frame_alignment�s���
��
��
��V��
��I�I�!�!�!�$�4�4�b�!�W�=�#�-��#�B�'�%�M�"�%�a�(�
��
��I�I�!�!�!�$�4�4�b�!�W�=�#�-��#�B�'�%�M�"�%�a�(�
��
�����R�Y�Y�*�*�1�-�=�=�a�@�%���)�L��
��:��t����"��G�G�C�L�	��#�I�	��c�	�I�
��:��t����"�$�=�=��,��$�r�>�� �2�~�H��s�y�y�#�)�)�R�X�X�6��+�+�N�;�
N��g�g�.�v�f�M��
N�
N��'�'�*�6�&�I�C��y�y�H�N�N�*�*�*�
���c�8�,�
N�
N�s�	G5�5G>c�&�ttjjd�j	d��}ttjjd�j	d��}|dk(rt}nd}tj|�5tjd||��ddd�ttjjd�j	d��}tjd�5tjd||��ddd�ttjjd�j	d	��}ttjjd�j	d��}tjd�5tjd||��ddd�ttjjd�j	d
��}ttjjd�j	d��}|dk(}|st}nd}tj|�5}tjd||��|set|�dk(sJ�t|d
j�}	tj|j|j dz
�}
d|
d�d�}|	|k(sJ�ddd�y#1swY��7xYw#1swY���xYw#1swY��@xYw#1swYyxYw)NrN)��rO�'r#Fr�r�r�)rOr�ryr�rQrz_Alignment difference on axis 1 is larger than an order of magnitude on term 'df', by more than z.4gz; performance may suffer.)rr@rRrSrTrrr�rr�r��lenr>�message�log10r�r")r�r/r:rrr�seen�is_python_engine�wrn�wr��loggedr�s            r0�+test_performance_warning_for_poor_alignmentz9TestAlignment.test_performance_warning_for_poor_alignment�sm��
�r�y�y�,�,�Q�/�?�?�
�K�
L���2�9�9�(�(��+�;�;�E�B�C���Y��%�D��D�
�
'�
'��
-�	<��G�G�H�V�F�;�	<�
�2�9�9�(�(��+�;�;�D�A�B��
�
'�
'��
.�	<��G�G�H�V�F�;�	<��r�y�y�,�,�Q�/�?�?��L�
M���2�9�9�(�(��+�;�;�E�B�C��
�
'�
'��
.�	<��G�G�H�V�F�;�	<��r�y�y�,�,�Q�/�?�?��I�
J���2�9�9�(�(��+�;�;�E�B�C��!�X�-���$�C��C�
�
'�
'��
,�	'���G�G�H�V�F�;�#��1�v��{�"�{��!�A�$�,�,�'�����!�&�&�2�8�8�A�;�"6�7��$�$*�3�<�/H�J��
�h��&��	'�	'�-	<�	<��	<�	<��
	<�	<��	'�	'�s1�K �?K-�#K:�BL� K*�-K7�:L�LN)rErFrG�index_types�lhs_index_typesrtr(r*�filterwarningsrHrr�r�r��listrr�r�r�r�rur8r0rqrqs`��"�K�!�S�E�)�O�,��[�[��� 8�9��[�[���]�O�<��[�[���]�K�8��[�[���\�;�7�-�8�9�=�:�-�*�[�[���\�?�;��[�[���\�?�;�-�<�<�-�&�[�[��� 8�9��[�[���T�?�3��[�[���T�;�/��[�[���T�;�/��[�[���T�;�/�3�0�0�0�4�:�
3�2�[�[��� 8�9��[�[���\�G�Y�+?�@��[�[���\�;�7��[�[���\�?�;�-�<�8�A�:�-�.�[�[���\�G�Y�+?�@��[�[��� ��W�c�3�Z�#�s��
,�-���>���[�[��� 8�9�!-�:�	�A�!-�F�[�[��� 8�9��[�[���\�;�7��[�[���\�?�;��[�[���\�G�Y�+?�@��[�[���T�C��:�.�,�/�A�<�8�:�
,�4�[�[��� 8�9��[�[���T�?�3��[�[���T�;�/��[�[���T�;�/��[�[���T�;�/�)-�0�0�0�4�:�
)-�V*'r8rqc
��eZdZd�Zd�Zejjdddg�ejjdddg�ejjdej�d����Z
ejjdddg�ejjdddg�ejjdej�d	����Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zejj;d��d��Zd�Zd�Z d �Z!d!�Z"d"�Z#d#�Z$d$�Z%ejjd%d&d'd&d(ge&jNg�d)g�d*��Z(ejjd%gd+��d,��Z)ejjd-d&d'd&d(ge&jNg�d)d&d(ig�d.��Z*d/�Z+d0�Z,d1�Z-d2�Z.d3�Z/d4�Z0ejjd5gd6��d7��Z1ejjd8d9d:g�d;��Z2y<)=�TestOperationsc�\�|jdd�dz|d<tj|i|��S�N�levelrrQ��popr�r��r�rl�kwargss   r0r�zTestOperations.eval+�/�� �*�*�W�a�0�1�4��w���w�w��'��'�'r8c�r�g}|dk(rddg}tjtjzD�cgc]}||vr|��
}}d�|D�}|D]�}d|�d�}d|�d�}d|�d�}	|d	vr?d
}
tjt
|
��5t
j|||��ddd��Xtd
|d
|�}|j|||��}||k(sJ�t||d
|�}|j|d|i||��}
|
|k(sJ�td
||d
z|�}|j|	d|i||��}
|
|k(r��J�ycc}w#1swY��xYw)Nr�r�r�c3�,K�|]}|dk7s�	|���y�w)z//Nru)r.r�s  r0r1z7TestOperations.test_simple_arith_ops.<locals>.<genexpr>:s����4�b��t��r�4�s�
�z1 z 1zx z (x + 1)r�z&argument of type 'int' is not iterabler�r�rQr�r�)	rrrJr(r�r�r�r�rG)r�r/r:�
exclude_arithr��	arith_ops�opsr�r�r�r��expecr��ys              r0�test_simple_arith_opsz$TestOperations.test_simple_arith_ops/s����
��X��!�8�,�M��)�)�D�,=�,=�=�
����&�
�
�	�
�5�I�4���	"�B��b�T���B��r�d�"�+�C��r�d�(�#�C��%�%�>���]�]�9�C�8�>��G�G�B�v�f�=�>�>�)��B��6�:���I�I�b���I�?���E�z�!�z�(��B��6�:���I�I�c�s�A�h�v�f�I�U���E�z�!�z�(��B��A��v�>���I�I�c�s�A�h�v�f�I�U���E�z�!�z�)	"��
�>�>�s�
D(�?D-�-D6	rDTFrBr�c��|�d|�d|��}tdk(r<|dvr8d}tjt|��5|j	|�ddd�y|j	|�}t	|�}||k(sJ�y#1swYyxYw�NrZr�r�r�r��r:r(r�r�r��r�rDrBr�r�r�r�r&s        r0�test_simple_bool_opsz#TestOperations.test_simple_bool_opsR����u�A�b�T��3�%�
 ���X��"�
�"5�6�C����2�#�>�
��	�	�"�
�
���i�i��m���2�h���c�z��z�

����A4�4A=c��|�d|�d|��}tdk(r<|dvr8d}tjt|��5|j	|�ddd�y|j	|�}t	|�}||k(sJ�y#1swYyxYwr�r�r�s        r0�test_bool_ops_with_constantsz+TestOperations.test_bool_ops_with_constantsbr�r�c�^�tjjd�jd�}t	tjjd�jd��}d}tjt|��5|jd||d���ddd�y#1swYyxYw)	NrN)r�r�rH�rOz?N-dimensional objects, where N > 2, are not supported with evalr��x + y�r�r��r�)	r@rRrSrTrr(r�r�r�)r�r�r�r�s    r0�test_4d_ndarray_failsz$TestOperations.test_4d_ndarray_failsrs����I�I�!�!�!�$�4�4�\�B���2�9�9�(�(��+�;�;�B�?�@��O��
�]�]�.�c�
:�	<��I�I�g���*:�I�;�	<�	<�	<�s�B#�#B,c�4�|jd�}|dk(sJ�y)N�1rQ)r�)r�r�s  r0�
test_constantzTestOperations.test_constantys���I�I�c�N���A�v�
�vr8c���ttjjd�j	d��}|jdd|i��}t
j||�y)NrN�rOrNrr��rr@rRrSrTr�r�r�)r�rr~s   r0�test_single_variablez#TestOperations.test_single_variable}sL��
�r�y�y�,�,�Q�/�?�?��H�
I���i�i��$���i�4��
���b�#�&r8c���ttjjd�j	d��}tjtd��5|jd�ddd�y#1swYyxYw)NrNrY�name 'x' is not definedr�z
df[x > 2] > 2)	rr@rRrSrTr(r��	NameErrorr��r�rs  r0�&test_failing_subscript_with_name_errorz5TestOperations.test_failing_subscript_with_name_error�sV��
�r�y�y�,�,�Q�/�?�?��G�
H��
�]�]�9�,E�
F�	'��I�I�o�&�	'�	'�	'�s�A.�.A7c���ttjjd�j	d��}|jdd|i��}|dz|dkD}t
j||�y)NrNrYz(df + 1)[df > 2]rr�rQr�rs    r0�test_lhs_expression_subscriptz,TestOperations.test_lhs_expression_subscript�s_��
�r�y�y�,�,�Q�/�?�?��G�
H�����-�4��*��E����F�B��F�#��
���f�h�/r8c	��ttjjd�j	d�td���}d}|j|jk}d}|j|jz|jz}d}|j|jz|j|jdkz}|||f}|||f}	t||	�D].\}
}tj||j|
d	|i�
���0y)NrNrY�abcr6zdf.a < df.bzdf.a + df.b + df.czdf.a + df.b + df.c[df.b < 0]rrr�)
rr@rRrSrTr�r�r�rE�zipr�r�r�)r�r�expr1�expec1�expr2�expec2�expr3�expec3�exprs�expecsrFr�s            r0�test_attr_expressionz#TestOperations.test_attr_expression�s���
��I�I�!�!�!�$�4�4�V�<�d�5�k�
������������$���������r�t�t�#��.���������r�t�t�B�D�D�1�H�~�-���u�e�#�����'���E�6�*�	O�H�A�u��"�"�5�$�)�)�A�4��*�)�*M�N�	Or8c��ttjjd�j	d�td���}ttjjd�j	d��}d}d}t
jt|��5|j|||d��	�ddd�y#1swYyxYw)
NrNrYr�r6zdf = df2�%cannot assign without a target objectr�)rr~r�)
rr@rRrSrTr�r(r�r=r�)r�rr~r�r�s     r0�test_assignment_failsz$TestOperations.test_assignment_fails�s���
��I�I�!�!�!�$�4�4�V�<�d�5�k�
����	�	�-�-�a�0�@�@��H�I����5��
�]�]�:�S�
1�	@��I�I�e�r�#�(>�I�?�	@�	@�	@�s�B9�9Cc�
�ttjjd�j	d�td���}t
jtd��5|jd�ddd�y#1swYyxYw)NrNr��abr6�invalid syntaxr�zd c = a + b�
rr@rRrSrTr�r(r�r9r�r�s  r0�%test_assignment_column_multiple_raisez4TestOperations.test_assignment_column_multiple_raise�sa��
��I�I�!�!�!�$�4�4�V�<�d�4�j�
���]�]�;�.>�
?�	#��G�G�M�"�	#�	#�	#�s�A9�9Bc��ttjjd�j	d�td���}d}t
jt|��5|jd�ddd�y#1swYyxYw)NrNr�r�r6z5left hand side of an assignment must be a single namer�zd,c = a + br�r<s   r0�%test_assignment_column_invalid_assignz4TestOperations.test_assignment_column_invalid_assign�sf��
��I�I�!�!�!�$�4�4�V�<�d�4�j�
��F��
�]�]�;�c�
2�	#��G�G�M�"�	#�	#�	#��� A;�;Bc��ttjjd�j	d�td���}d}t
jt|��5|jd�ddd�y#1swYyxYw)NrNr�r�r6zcannot assign to function callr�zTimestamp("20131001") = a + br�r<s   r0�3test_assignment_column_invalid_assign_function_callzBTestOperations.test_assignment_column_invalid_assign_function_call�sf��
��I�I�!�!�!�$�4�4�V�<�d�4�j�
��/��
�]�]�;�c�
2�	5��G�G�3�4�	5�	5�	5�r�c��ttjjd�j	d�td���}|j
�}|d|dz|d<|jdd�	�tj||�y)
NrNr�r�r6r�r��	a = a + bT��inplace�
rr@rRrSrTr��copyr�r�r��r�rr�s   r0�&test_assignment_single_assign_existingz5TestOperations.test_assignment_single_assign_existing��r��
��I�I�!�!�!�$�4�4�V�<�d�4�j�
���7�7�9�� ��
���
�5���
�
����T��*�
���b�(�+r8c��ttjjd�j	d�td���}|j
�}|d|dz|d<|jdd	�
�tj||�y)NrNr�r�r6r�r�rE�	c = a + bTr�r�r�s   r0�!test_assignment_single_assign_newz0TestOperations.test_assignment_single_assign_new�r�r8c�4�ttjjd�j	d�td���}|j
�}d}|jdd��|j
�}d|d	z|d
<tj||�y)NrNr�r�r6rQz	a = 1 + bTr�r�r�r�)r�rr�r�s    r0�+test_assignment_single_assign_local_overlapz:TestOperations.test_assignment_single_assign_local_overlap�s~��
��I�I�!�!�!�$�4�4�V�<�d�4�j�
���W�W�Y��
��
����T��*��7�7�9���H�S�M�)���
�
���b�(�+r8c�d�ttjjd�j	d�td���}d}|jj�}|jdd��||jz}tj||jd	�
�|j�J�y)NrNr�r�r6rQr�Tr�Fr)
rr@rRrSrTr�r�r�r�r�r�r�r;)r�rr��old_ar�s     r0�"test_assignment_single_assign_namez1TestOperations.test_assignment_single_assign_name�s���
��I�I�!�!�!�$�4�4�V�<�d�4�j�
��
�����	�	���
����T��*�������
���v�r�t�t��?��{�{�"�"�"r8c�4�ttjjd�j	d�td���}|j
dd��d}tjt|�	�5|j
d
�ddd�y#1swYyxYw)NrNr�r�r6rTr�z#can only assign a single expressionr�z	c = a = b)
rr@rRrSrTr�r�r(r�r9r<s   r0�test_assignment_multiple_raisesz.TestOperations.test_assignment_multiple_raises�su��
��I�I�!�!�!�$�4�4�V�<�d�4�j�
��	����T��*�3��
�]�]�;�c�
2�	!��G�G�K� �	!�	!�	!�s�3B�Bc��ttjjd�j	d�td���}|j
dd|i|d��|j�}|d	|d
z|d<tj||�y)NrNr�r�r6zc = df.a + df.brT)r��targetr�r�r�rE�
rr@rRrSrTr�r�r�r�r�r�s   r0�test_assignment_explicitz'TestOperations.test_assignment_explicit�s{��
��I�I�!�!�!�$�4�4�V�<�d�4�j�
��	
�	�	�#��r�
�2�t�	�T��7�7�9�� ��
���
�5���
�
���b�(�+r8c��tdgdgd��}|jd�}tdg�}tj||d��y)N�i���r�r�za in [11, -32]TFr)rr�rr�r�rs    r0�test_column_inzTestOperations.test_column_in�sC��
�b�T���.�
/�����)�*���4�&�>��	���v�x�U�Cr8z%Unknown: Omitted test_ in name prior.r$c��ttjjd�j	d�td���}|j
dd��}|�J�|j�}|d|d	z|d
<tj||�y)NrNr�r�r6rFr�r�r�rEr)r�r�actualr�s    r0�test_assignment_not_inplacez*TestOperations.test_assignment_not_inplaces�����I�I�!�!�!�$�4�4�V�<�d�4�j�
������e��4���!�!�!��7�7�9�� ��
���
�5���
�
���b�(�+r8c���tgd�gd�d��}|j�}|d|dz|d<|d|dz|d<|jdd	�
�}tj||�|�J�|ddz
|d<|ddz|d
<|jdd	�
�}tj||�|�J�d}tjt|��5|jdd�
�ddd�y#1swYyxYw)N�rQrNr��r�rHr�rr�r�rE�d�$
        c = a + b
        d = c + bTr�rQrNrF�$
        a = a - 1
        e = a + 2z@Multi-line expressions are only valid if all expressions containr�z(
            a = b + 2
            b - 2F)rr�r�r�r�r(r�r=)r��warn_copy_on_writerr��answerr�s      r0�test_multi_line_expressionz)TestOperations.test_multi_line_expressions$��
�Y�Y�7�
8���7�7�9�� ��
���
�5���
� ��
���
�5���
����
��	�
��	���h��+��~��~� ��
��)���
� ��
��)���
����
��	�
��	���h��+��~��~�Q��
�]�]�:�S�
1�	��G�G���	
�
�	�	�	�s�C)�)C2c�P�tgd�gd�d��}|j�}|d|dz|d<|d|dz|d<|jdd	�
�}tj||�|ddz
|d<|ddz|d
<|jdd	�
�}tj||�y)Nrrrr�r�rErrFr�rQrNrFr�rr�r�r�r�r�s   r0�&test_multi_line_expression_not_inplacez5TestOperations.test_multi_line_expression_not_inplace;s���
�Y�Y�7�
8���7�7�9�� ��
���
�5���
� ��
���
�5���
�
�W�W�
��	�
��	���h��+� ��
��)���
� ��
��)���
�
�W�W�
��	�
��	���h��+r8c���tgd�gd�d��}|j�}d}|d|z|d<|d|z|d<|jdd	�
�}tj||�|�J�y)Nrrrr�r�rErz?
        c = a * @local_var
        d = c + @local_var
        Tr�r)r�rr��	local_varrs     r0�)test_multi_line_expression_local_variablez8TestOperations.test_multi_line_expression_local_variableTs~��
�Y�Y�7�
8���7�7�9���	� ��
�	�1���
� ��
�	�1���
����
���
��	���h��+��~��~r8c���tgd�gd�d��}d�}|j�}|d|dd�z|d<|d|dd�z|d	<|jd
d��}tj||�|�J�y)
Nrrrc��|Sr4rurs  r0�
local_funczUTestOperations.test_multi_line_expression_callable_local_variable.<locals>.local_funcj����Hr8r�rQr�rErzM
        c = a * @local_func(1, 7)
        d = c + @local_func(1, 7)
        Tr�r�r�rr%r�rs     r0�2test_multi_line_expression_callable_local_variablezATestOperations.test_multi_line_expression_callable_local_variablefs���
�Y�Y�7�
8��	��7�7�9�� ��
�
�1�a�(8�8���
� ��
�
�1�a�(8�8���
����
���
��	���h��+��~��~r8c���tgd�gd�d��}d�}|j�}|d|dd��z|d	<|d	|dd��z|d
<|jdd�
�}tj||�|�J�y)Nrrrc��|Sr4rurs  r0r%zaTestOperations.test_multi_line_expression_callable_local_variable_with_kwargs.<locals>.local_func~r&r8r�r�rQ)r�r�rErzU
        c = a * @local_func(b=7, a=1)
        d = c + @local_func(b=7, a=1)
        Tr�rr's     r0�>test_multi_line_expression_callable_local_variable_with_kwargszMTestOperations.test_multi_line_expression_callable_local_variable_with_kwargszs���
�Y�Y�7�
8��	��7�7�9�� ��
�
�Q�!�(<�<���
� ��
�
�Q�!�(<�<���
����
���
��	���h��+��~��~r8c��tgd�gd�d��}|j�}d}tjt|��5|jd�ddd�t
j||�y#1swY� xYw)Nrrrr�r�za = 1)rr�r(r�r=r,r�r�)r�r�df_origr�s    r0�test_assignment_in_queryz'TestOperations.test_assignment_in_query�s`��
�Y�Y�7�
8���'�'�)��5��
�]�]�:�S�
1�	��H�H�W��	�
���b�'�*�	�	�s�A1�1A:c��tgd�gd�d��}|j�}||ddk(}|jdd��tj||�i}dd	i}|jd
|d��tj||�y)Nrrrr�rNza == 2Tr�r��	a = 1 + 2�r
r�)rr�r,r�r�r��assert_dict_equalr�s   r0�test_query_inplacez!TestOperations.test_query_inplace�s��
�Y�Y�7�
8���7�7�9���H�S�M�Q�.�/��
����4��(�
���h��+�
����8���	�	�+�b�$�	�7�
���R��*r8�invalid_targetrQ�catrN�rQr�c�6�d}d}tjt|��5|j||d��ddd�t	|d�r9tjt|��5|j||d��ddd�yy#1swY�OxYw#1swYyxYw)Nz)Cannot assign expression output to targetr0r�Tr1r�F)r(r�r=r��hasattr�r�r4r��
expressions    r0�test_cannot_item_assignz&TestOperations.test_cannot_item_assign�s���9�� �
�
�]�]�:�S�
1�	G��I�I�j���I�F�	G��>�6�*����z��5�
L��	�	�*�^�U�	�K�
L�
L�+�	G�	G��
L�
L�s�B�$B�B�B)rQr5r6c��d}d}tjt|��5|j||d��ddd�y#1swYyxYw)Nz"Cannot return a copy of the targetr0r�Fr1)r(r�r=r�r9s    r0�test_cannot_copy_itemz$TestOperations.test_cannot_copy_item�sE��2�� �
�
�]�]�:�S�
1�	H��I�I�j���I�G�	H�	H�	H�s	�>�Ar
c���d}|j||d��dk(sJ�d}tjt|��5|j||d��ddd�y#1swYyxYw)N�1 + 2Fr1r�z0Cannot operate inplace if there is no assignmentr�T)r�r(r�r=)r�r
r:r�s    r0�test_inplace_no_assignmentz)TestOperations.test_inplace_no_assignment�s^���
��y�y��F�E�y�B�a�G�G�G�@��
�]�]�:�S�
1�	?��I�I�j���I�>�	?�	?�	?�s�A�A c�$�ttjjd�j	d�tddd����}|dk}|j
dd|i�	�}|dk}tj||�tj||�y)
NrN�rNrNrjro�rprlr6r�rr��	rr@rRrSrTrr�r�r�)r�rrF�rr�s     r0�*test_basic_period_index_boolean_expressionz9TestOperations.test_basic_period_index_boolean_expression�s��
��I�I�!�!�!�$�4�4�V�<� ��C��C�
��
��F���I�I�h�D�"�:�I�6����F��
���a��#�
���a��#r8c���ttjjd�j	d�tddd����}|j
dd|i�	�}||d
k}tj||�y)NrNrBrjrorCr6zdf[df < 2 + 3]rr�rHrD�r�rrErFs    r0�,test_basic_period_index_subscript_expressionz;TestOperations.test_basic_period_index_subscript_expression�sk��
��I�I�!�!�!�$�4�4�V�<� ��C��C�
��
�I�I�&�D�"�:�I�>���r�E�z�N��
���a��#r8c��ttjjd�j	d�tddd����}|j
dd|i�	�}|||dkdk|dzz}tj||�y)
NrNrBrjrorCr6zdf[df[df < 2] < 2] + df * 2rr�rDrHs    r0�-test_nested_period_index_subscript_expressionz<TestOperations.test_nested_period_index_subscript_expression�s}��
��I�I�!�!�!�$�4�4�V�<� ��C��C�
��
�I�I�3��r�
�I�K���r�"�q�&�z�A�~���a��'��
���a��#r8c��ttjjd�j	d��}tdd��|d<|j
dd|i||�	�}|jd
k}tj||d��y)
NrNrYz1/1/2012rHrk�dates1zdf.dates1 < 20130101rr��20130101Fr)
rr@rRrSrTrr�rMr�r�)r�r/r:rr�r�s      r0�test_date_booleanz TestOperations.test_date_boolean�s{��
�r�y�y�,�,�Q�/�?�?��G�
H��!�*�a�8��8���i�i�"��b�z���	�
���	�	�J�&��
���s�E�u�=r8c��|dk7�rtjd||��}|sJ�tjd||��}|sJ�tjd||��}|rJ�tjd||��}|sJ�tjd||��}|sJ�tjd||��}|sJ�tjd	||��}|sJ�tjd
||��}|sJ�tjd||��}|rJ�tjd||��}|sJ�yd
}tjt|��5tjd||��ddd�tjt|��5tjd||��ddd�tjt|��5tjd||��ddd�tjt|��5tjd||��ddd�d}tjt|��5tjd||��ddd�tjt|��5tjd||��ddd�y#1swY��9xYw#1swY��
xYw#1swY��xYw#1swY��xYw#1swY�xxYw#1swYyxYw)Nr�z1 in [1, 2]r�z2 in (1, 2)z3 in (1, 2)z3 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�r/r:r�r�s     r0�test_simple_in_opsz!TestOperations.test_simple_in_ops�sn���X���'�'�-��v�F�C��J�3��'�'�-��v�F�C��J�3��'�'�-��v�F�C��N�7��'�'�+�F�6�J�C��J�3��'�'�-�f�V�L�C��J�3��'�'�+�F�6�J�C��J�3��'�'�/��v�N�C��J�3��'�'�-�f�V�L�C��J�3��'�'�1�&��P�C��N�7��'�'�1�&��P�C��J�3�2�C����2�#�>�
E����
�f�V�D�
E����2�#�>�
E����
�f�V�D�
E����2�#�>�
E����
�f�V�D�
E����2�#�>�
R����2�6�&�Q�
R�5�C����2�#�>�
I����)�&��H�
I����2�#�>�
R����2�6�&�Q�
R�
R�
E�
E��
E�
E��
E�
E��
R�
R��
I�
I��
R�
R�sH�=J
�9J�5J'�1J3�/J?�+K�
J�J$�'J0�3J<�?K�Kc�l�d}djd�}d}tj|||��}||k(sJ�y)NrQz * �!aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar�)r�r�r�)r�r/r:r�rr�r�s       r0�test_check_many_exprsz$TestOperations.test_check_many_exprss8��
���z�z�(�#�����g�g�d�6�&�9���h���r8r)zdf > 2 and df > 3zdf > 2 or df > 3z
not df > 2c�Z�ttjjd�j	d��}|dk(rHd}d|vrd}tjt|��5tj|d|i||�	�ddd�ytj|d|i||�	�y#1swYyxYw)
NrNrYr�r��not�'Not' nodes are not implementedr�r)r�r:r/�
rr@rRrSrTr(r�r�r�r�)r�rr/r:rr�s      r0�test_fails_and_or_notz$TestOperations.test_fails_and_or_not#s����r�y�y�,�,�Q�/�?�?��G�
H���X��6�C���}�7�����2�#�>�
����� $�b�z�!�!�	�
�
�
�G�G�� �"�:���	
�
�
�s� B!�!B*�charr�r�c�N�ttjjd�j	d��}d|�d�}|dk(r?d}tjt|��5tj|||��ddd�ytj|||��y#1swYyxYw)	NrNrYz(df + 2)[df > 1] > 0 z	 (df > 0)r�z$cannot evaluate scalar only bool opsr�rrX)r�rZr/r:rr�r�s       r0�test_fails_ampersand_pipez(TestOperations.test_fails_ampersand_pipeBs���
�r�y�y�,�,�Q�/�?�?��G�
H��$�T�F�)�
4���X��8�C����2�#�>�
:�����6�&�9�
:�
:�
�G�G�B�v�f�5�	
:�
:�s� B�B$N)3rErFrGr�r�r(r*rHrrIr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr�rrrr"r(r+r.r3r@r�r;r=r@rFrIrKrOrQrTrYr\rur8r0r�r�*s���(�!"�F�[�[���U�T�5�M�2��[�[���U�T�5�M�2��[�[���T�4�#5�#5�6��7�3�3���[�[���U�T�5�M�2��[�[���U�T�5�M�2��[�[���T�4�#5�#5�6��7�3�3��<��'�
'�
0�
O�@�#�#�5�,�,�
,�
#�!�,�D��[�[���E��F�,�G�,�#�J,�2�$�(�(+�+��[�[���-��5�1�a�&�(�"�(�(�2�,�PV�/W�X�	L�Y�	L��[�[���-�/A�B�H�C�H��[�[���X��5�1�a�&�(�"�(�(�2�,��QR�TU�PV�'W�X�?�Y�?�
$�$�$�
>�-R�^��[�[����	
�����.�[�[���V�c�3�Z�0�	6�1�	6r8r�c�T�eZdZd�Zej
j
ed��ej
jde	�d���Z
ej
jde�d��Zd�Z
d�Zej
jd	ej ej"fej$ej"fej&ej&fej"ej"fej(ej*ej*ej.�
�g�d��Zd�Zd
�Zy)�TestMathc�\�|jdd�dz|d<tj|i|��Sr�r�r�s   r0r�z
TestMath.evalPr�r8z&Unary ops only implemented for numexprr$�fnc�l�tdtjjd�j	d�i�}|j
}|�d�}|j
|�}tjd��5tt|�|�}ddd�tj|d��y#1swY�"xYw)	Nr�rNrOz(a)�ignore��allFr)rr@rRrSrTr�r��errstater�r�r�)r�r`rr�r�gotr�s       r0�test_unary_functionszTestMath.test_unary_functionsTs���
��R�Y�Y�2�2�1�5�E�E�b�I�J�
K���D�D����S�z���i�i��o��
�[�[�X�
&�	(�$�W�R��_�Q�'�F�	(�
���s�F��>�	(�	(�s�2B*�*B3c���ttjjd�j	d�tjjd�j	d�d��}|j
}|j}|�d�}|j|�}tjd��5tt|�||�}ddd�tj|d��y#1swY�"xYw)	NrNrOrz(a, b)rbrcFr)rr@rRrSrTr�r�r�rer�r�r�)r�r`rr�r�rrfr�s        r0�test_binary_functionszTestMath.test_binary_functionsbs���
��Y�Y�*�*�1�-�=�=�b�A��Y�Y�*�*�1�-�=�=�b�A�
�
��
�D�D���D�D����V�}���i�i��o��
�[�[�X�
&�	+�$�W�R��_�Q��*�F�	+�
���s�F��>�	+�	+�s�+C$�$C-c��ttjjd�j	d�tjjd�j	d�d��}|jd||d��|j}tjtj|j�|j�}tj||d��y)	NrNrOrze = arctan2(sin(a), b)T�r/r:r�Fr)
rr@rRrSrTr�rF�arctan2�sinr�r�r�r��r�r/r:rrfr�s      r0�test_df_use_casezTestMath.test_df_use_casess���
��Y�Y�*�*�1�-�=�=�b�A��Y�Y�*�*�1�-�=�=�b�A�
�
��	���$����		�	
��d�d�����B�F�F�2�4�4�L�"�$�$�/��
���s�F��>r8c��ttjjd�j	d�tjjd�j	d�d��}|jd||d��|j}tj|j|jz�}tj||d��y)	NrNrOrze = sin(a + b)TrkFr)rr@rRrSrTr�rFrmr�r�r�r�rns      r0� test_df_arithmetic_subexpressionz)TestMath.test_df_arithmetic_subexpression�s���
��Y�Y�*�*�1�-�=�=�b�A��Y�Y�*�*�1�-�=�=�b�A�
�
��	��� �����M��d�d��������r�t�t��$��
���s�F��>r8zdtype, expect_dtyper&c���tdtjjd�j	d�j|�i�}|jj|k(sJ�|jd||d��|j}tj|j�}|j|jk(sJ�||jk(sJ�tj||d��y)	Nr�rNrOz
b = sin(a)TrkFr)
rr@rRrSrTr�r�r[r�r�rmr�r�)r�r[�expect_dtyper/r:rrfr�s        r0�test_result_typeszTestMath.test_result_types�s��� �
�"�)�)�'�'��*�:�:�2�>�E�E�e�L�M�
���t�t�z�z�U�"�"�"�
����V�F�D��I��d�d�����������|�|�s�y�y�(�(�(��s�y�y�(�(�(�
���s�F��>r8c��tdtjjd�j	d�i�}d}tjt|��5|jd||��ddd�y#1swYyxYw)Nr�rNrOz#"mysin" is not a supported functionr�zmysin(a)r�)	rr@rRrSrTr(r�r=r��r�r/r:rr�s     r0�test_undefined_funczTestMath.test_undefined_func�se��
��R�Y�Y�2�2�1�5�E�E�b�I�J�
K��3��
�]�]�:�S�
1�	>��G�G�J�v�f�G�=�	>�	>�	>���A5�5A>c��tdtjjd�j	d�i�}d}tjt|��5|jd||��ddd�y#1swYyxYw)Nr�rNrOz1Function "sin" does not support keyword argumentsr�zsin(x=a)r�)	rr@rRrSrTr(r�r�r�rvs     r0�test_keyword_argzTestMath.test_keyword_arg�se��
��R�Y�Y�2�2�1�5�E�E�b�I�J�
K��A��
�]�]�9�C�
0�	>��G�G�J�v�f�G�=�	>�	>�	>�rxN)rErFrGr�r(r*r+rrHr rgrrirorqr@�int32rbr]rOr)�
complex128r,rNrtrwrzrur8r0r^r^Os��(��[�[�����&N����[�[���T�?�3�?�4��?��[�[���T�#3�4�?�5�?� ?�"
?��[�[����
�X�X�r�z�z�"�
�X�X�r�z�z�"�
�Z�Z����$�
�Z�Z����$��F�L�L�����
�
�R�=O�=O�P�	
�	�?�	�?�">�>r8r^rNrOc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�	TestScopec�n�d}tjtdztj|||���y)N�
_var_s * 2rNr�)r�r��_var_sr�r�)r�r/r:rFs    r0�test_global_scopezTestScope.test_global_scope�s+����
�#�#��Q�J�����&��@�	
r8c���d}t�j�}tjd|||��t�j�}|j	d�||k(sJ�y)NrQ�x + 1r��lcls)�localsr�r�r�r�)r�r/r:r�r��lcls2s      r0�test_no_new_localszTestScope.test_no_new_locals�sK��
���x�}�}���
����D���G���
�
���
�	�	�&���u�}��}r8c��d}t�j�}tjd||��t�j�}||k(sJ�y)NrQr�r�)�globalsr�r�r�)r�r/r:r��gbls�gbls2s      r0�test_no_new_globalszTestScope.test_no_new_globals�s?��
���y�~�~���
�����v�6��	��� ���u�}��}r8c��d}d}tjt|��5tjd||i��ddd�y#1swYyxYw)NrQr�r�r�r��r(r�r	r�r�)r�r/r:r�r�s     r0�test_empty_localszTestScope.test_empty_locals�sF��
��'��
�]�]�1��
=�	J��G�G�G�F�6�b�I�	J�	J�	J���A�Ac��d}d}tjt|��5tj|||i��ddd�y#1swYyxYw)Nzname '_var_s' is not definedr�r�)r/r:�global_dictr�)r�r/r:r�rFs     r0�test_empty_globalszTestScope.test_empty_globals�sF��,����
�]�]�1��
=�	E��G�G�A�f�V��D�	E�	E�	E�r�N)rErFrGr�r�r�r�r�rur8r0r~r~�s��
���J�Er8r~r#c��d}tjt|��5tjdddd�d��ddd�y#1swYyxYw)	NzInvalid engine 'asdf' passedr�r�rQrNr��asdf)r�r/�r(r��KeyErrorr�r��r�s r0�test_invalid_enginer���C��
(�C�	���x�s�	+�E�
����!�!�$4�V�D�E�E�E���A�A)�use_numexprr�))Tr#)Fr�c��ddlm}tjd|�5|d�}||k(sJ�	ddd�y#1swYyxYw)Nr)�
_check_engine�compute.use_numexpr)�pandas.core.computation.evalr�r��option_context)r�r�r�r�s    r0�test_numexpr_option_respectedr��sE��;�	�	�	�0�+�	>�"��t�$����!�!�!�"�"�"�s	�7�Ac��tjdd�5tgd�gd�d��}|jd�}tddgddgd�d	dg�
�}t	j
||�ddd�y#1swYyxYw)Nr�F)TFTFNN)rQrNr�r�rHr�)r)�Bz
A.isnull()rHr�r�)r:)r�r�rr,r�r�)rr�r�s   r0�#test_numexpr_option_incompatible_opr��sz��
�	�	�0�%�	8�0�
�8�?Q�R�
�����,�'���D�$�<�q�!�f�=�a��V�L��
���f�h�/�
0�0�0�s�AA0�0A9c��d}tjt|��5tjdddd�d��ddd�y#1swYyxYw)	NzInvalid parser 'asdf' passedr�r�rQrNr�r�)r�r:r�r�s r0�test_invalid_parserr�r�r�)r�rr�z dict[str, type[BaseExprVisitor]]�_parsersr/r:c���t|}|d||�}|jD]9}d}tjt|��5t||��ddd��;y#1swY�FxYw)Nr�znodes are not implementedr�)r��unsupported_nodesr(r�r�r�)r/r:�VisitorClass�instr�r�s      r0�test_disallowed_nodesr�sn���F�#�L�����0�D��-�-�!��)��
�]�]�.�c�
:�	!��G�D�#�� �	!�	!�!�	!�	!�s�A�A&	c��d}tjtd��5tj|||��ddd�y#1swYyxYw)Nzs +r�r�r��r(r�r9r�r�)r/r:rFs   r0�test_syntax_error_exprsr� s;��
�A�	���{�*:�	;�1�
����&��0�1�1�1�s�A�A	c��d}d}tjt|��5tj|||��ddd�y#1swYyxYw)Nzs + tzname 's' is not definedr�r�)r(r�r�r�r�)r/r:rFr�s    r0�test_name_error_exprsr�&s?���A�
#�C�	���y��	,�1�
����&��0�1�1�1�s�A�A�express)za + @bz@a + bz@a + @bc�:�d\}}|dk7r=tjtd��5tj|||��ddd�ytjtd��5tj|||��ddd�y#1swYyxYw#1swYyxYw)N�rQrNr�zThe '@' prefix is onlyr�r�zThe '@' prefix is notr�)r/r:r�r�r�s     r0�%test_invalid_local_variable_referencer�-s����D�A�q�
���
�]�]�;�.F�
G�	;��G�G�G�F�6�:�	;�	;��]�]�;�.E�
F�	;��G�G�G�F�6�:�	;�	;�	;�	;��	;�	;�s�B�#B�B�Bc���d\}}|dk(r?d}tjt|��5tjd||��ddd�ytjd||��}|||zk(sJ�y#1swYyxYw)Nr�r#zVariables in expression .+r�zsin + dotted_liner�)r(r�rr�r�)r/r:rm�dotted_liner�r�s      r0�test_numexpr_builtin_raisesr�9s�����C��
���*��
�]�]�1��
=�	G��G�G�'��v�F�	G�	G��g�g�)�&��H���c�K�'�'�'�'�		G�	G�s�A-�-A6c��d}tjtd��5tjd|||��ddd�y#1swYyxYw)N)�*g@zResolver of type .+r�r?)�	resolversr/r:)r(r�r�r�r�)r/r:�cannot_resolves   r0�test_bad_resolver_raisesr�DsA���N�	���y�(=�	>�Q�
����>�&��P�Q�Q�Q�s�A�A
c��tjtd��5tjd||��ddd�y#1swYyxYw)Nzexpr cannot be an empty stringr��r��r(r�r=r�r�r�s  r0�test_empty_string_raisesr�Js6��	���z�)I�	J�2�
����6�&�1�2�2�2��	�>�Ac��tjtd��5tjd||��ddd�y#1swYyxYw)Nz#only a single expression is allowedr�z1 + 1; 2 + 2r�r�r�s  r0�$test_more_than_one_expression_raisesr�Ps6��	���{�*O�	P�>�
����v�f�=�>�>�>�r��cmpr�rBrDc��td�ttjj	d�j
i}||�}||�}||�}d|�d|�d�}d|�d|�d�}d|�d|�d	�}	|||	fD]@}
d
}t
jt|��5tj|
||��ddd��By#1swY�MxYw)
Nc�^�tjjd�jd�S)NrNrO)r@rRrSr�rur8r0r`z0test_bool_ops_fails_on_scalars.<locals>.<lambda>Zs ��R�Y�Y�*�*�1�-�6�6�r�:�r8rNr�r�r�r�r�r�r�rr�r�)�intrKr@rRrSrTr(r�r�r�r�)rBr�rDr/r:�genr�r�r�r�r�r�s            r0�test_bool_ops_fails_on_scalarsr�Us���
	�
:�
�r�y�y�$�$�Q�'�7�7��C�
�#�c�(�*�C�
�#�c�(�*�C�
�#�c�(�*�C����U�3�%�t�
$�C����]�3�%�t�
,�C��#��m�C�5��
.�C��C��o�6��K��
�]�]�.�c�
:�	6��G�G�B�v�f�5�	6�	6�6�	6�	6�s�B9�9C	�otherz'x'z...c��tdgd�it��}|jd|���}tgd�d��}trd|_t
j||�y)Nr))r�r�rErZr+)FFF�r;)r�objectr�rrr;r�r�)r�rr�r�s    r0�test_equals_variousr�ksR��
�C��)��	8�B�
�W�W�u�U�G�_�
%�F��+�#�6�H����
����6�8�,r8c�f�d}tj}tj|||��}||k(sJ�y)Nzinf + 1r�)r@�infr�r�)r/r:rrr�r�s     r0�test_infr�}s0���A��v�v�H�
�W�W�Q�v�f�
5�F��X���r8�columnu	Temp(°C)uCapacitance(μF)c���ttjjd�j	d�|dg��}|||dkD}d|�d�}|j||��}t
j||�y)	NrNr�r�r6rH�`z` > 5)r/)rr@rRrSrTr,r�r�)r/r�rr��query_stringr�s      r0�test_query_tokenr��su��
�
�	�	���a� �0�0��8�6�3�-�
�B��"�V�*�q�.�!�H��v�h�e�$�L�
�X�X�l�6�X�
2�F����&�(�+r8c��tddgddggddg��}||jdkD}|jd||�	�}tj||�|d
k(r;d}tjt|��5|jd
||�	�ddd�y|jd
||�	�}tj||�y#1swYyxYw)NrrOrQr{r5�countr6z
~(cat > 0)r�r�rWr�z
not (cat > 0))rr5r,r�r�r(r�r�)r/r:rr�r�r�s      r0�test_negate_lt_eq_ler��s���	�Q��G�a��W�%��w�/?�	@�B��B�F�F�Q�J�-� �H�
�X�X�l�6�&�X�
A�F����&�(�+�
���/��
�]�]�.�c�
:�	D��H�H�_�V�F�H�C�	D�	D����/�&���H��
���f�h�/�		D�	D�s�5B>�>Cc�`�|dvr7|jtjjtd|�����ttjjd�jddd��|d	g�
�}|||dkD}|j|�d��}tj||�y)
N)�True�Falser��Infz+GH 47859 DataFrame eval not supported with )r�r%rNr�dr�r��col1r6r�z>6)
r�r(r*r�r�rr@rRrSr�r,r�r�)r7r�rr�r�s     r0� test_eval_no_support_column_namer��s����0�0�����K�K����D�V�H�M�
�
�	
�
�
�	�	���a� �)�)�!�S�w�)�?��� �
�B��"�V�*�q�.�!�H�
�X�X����m�
$�F����&�(�+r8c��tgd�gd�gd�d��}|dd}|d}tj|�5|jdd��ddd�tgd	�gd�gd�d��}tj||�|s6tj
||d�tj
|d|d�yt
gd�d�
�}tj
||�tj
|d|�y#1swY��xYw)Nrr)r���	)r)r��Cr)z	A = B + CTr�)r�
�r�)rr��assert_cow_warningr�r�r�r)�using_copy_on_writerr�result_viewr�r�s      r0�test_set_inplacer��s���
����C�	D�B��Q�%�K�
�S�'�C�	�	�	�1�	2�+�
����T��*�+��|�)�)�L�M�H����"�h�'��
���s�H�S�M�2�
���{�3�/��#��?��)�#�.��
���s�H�-�
���{�3�/��:�+�+�s�C3�3C<c�\�eZdZejjdddgd�dg�d��Zy)�TestValidate�valuerQr�rg@c��d}tjt|��5tjd|��ddd�y#1swYyxYw)Nz8For argument "inplace" expected type bool, received typer�z2+2r�r�)r�r�r�s   r0�test_validate_bool_argsz$TestValidate.test_validate_bool_args�s8��H��
�]�]�:�S�
1�	*��G�G�E�5�)�	*�	*�	*�s	�?�AN)rErFrGr(r*rHr�rur8r0r�r��s/���[�[���W�q�&�)�S�&A�B�*�C�*r8r�)k�
__future__r�	functoolsr�	itertoolsrri�numpyr@r(�
pandas.compatr�
pandas.errorsrrr	�pandas.util._test_decorators�util�_test_decoratorsr,�pandas.core.dtypes.commonr
rrr
r�r�rrrrrr�pandas._testing�_testingr��pandas.core.computationrr�pandas.core.computation.enginesr�pandas.core.computation.exprrrr�#pandas.core.computation.expressionsrr�pandas.core.computation.opsrrrrr �pandas.core.computation.scoper!�fixturer/�PARSERSr:rGr�rfrBrDr�rvrxrQrorqr�r^rRrSrTr�r~r-r�r*rHr�r�r��PyTablesExprVisitorr��__annotations__r�r�r�r�r�r�r�r�r�rKr�r�r�r�r��keysr�r�r�rur8r0�<module>r
s���"�����
����
*�)��������4���
���:�����
��
�� �!� �����t�|�|�$��%���������a��>�E���	��
����������^	W�^	W�J?�?�<$�S'�S'�tb6�b6�Jh>�h>�V
���	�	�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�&������
�
���-��-��������K�1C�#D�E�,�F�,�
0� �������O�����,�	�,�(;�(*�*r8

Youez - 2016 - github.com/yon3zu
LinuXploit