§
    tŠtjKò  ã            	       ó¤  — d dl Z d dlmZ d dlZd dlZd dlmZmZ d dl	m
c mZ d dlZd dlmZmZmZmZmZ d dlmZ d dlmZ  ej        ddgd„ ¬	¦  «        d
„ ¦   «         Z ej        d ej        d ej        d¦  «        ¬¦  «        gd„ ¬	¦  «        d„ ¦   «         Zd„ Z G d„ d¦  «        Z G d„ d¦  «        Z  G d„ d¦  «        Z! ej        d¦  «         G d„ d¦  «        ¦   «         Z" ej        d¦  «         G d„ de"¦  «        ¦   «         Z# G d„ de"¦  «        Z$ G d„ de#¦  «        Z% G d„ d¦  «        Z& G d „ d!¦  «        Z' G d"„ d#¦  «        Z(dS )$é    N)Ú
TokenError)ÚNumExprClobberingErrorÚUndefinedVariableError)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ
date_range)ÚNUMEXPR_INSTALLEDÚpythonÚpandasc                 ó   — | S ©N© ©Úxs    ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/frame/test_query_eval.pyú<lambda>r      s   € ¸1€ ó    )ÚparamsÚidsc                 ó   — | j         S r   ©Úparam©Úrequests    r   Úparserr      s
   € àŒ=Ðr   Únumexpr)Úmarksc                 ó   — | S r   r   r   s    r   r   r       s   € �!€ r   c                 ó   — | j         S r   r   r   s    r   Úenginer"      s   € ð
 Œ=Ðr   c                 óD   — | dk    rt          j        d| › �¦  «         d S d S )Nr   zcannot evaluate with parser=)ÚpytestÚskip)r   s    r   Úskip_if_no_pandas_parserr&   &   s4   € Ø�ÒÐÝŒÐ;°6Ð;Ð;Ñ<Ô<Ð<Ð<Ð<ð Ðr   c                   ó†   — e Zd Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ ZdS )	Ú
TestCompatc                 ó(   — t          dg d¢i¦  «        S )NÚA©é   é   é   ©r   ©Úselfs    r   ÚdfzTestCompat.df,   s   € å˜#˜y˜y˜yÐ)Ñ*Ô*Ð*r   c                 ó$   — ||j         dk             S )Nr   ©r*   ©r1   r2   s     r   Ú	expected1zTestCompat.expected10   s   € à�"”$˜’(Œ|Ðr   c                 ó   — |j         dz   S ©Nr,   r4   r5   s     r   Ú	expected2zTestCompat.expected24   s   € àŒt�a‰xˆr   c                 ó®   — |                      d¦  «        }t          j        ||¦  «         |                     d¦  «        }t          j        ||¦  «         d S )NúA>0úA+1©ÚqueryÚtmÚassert_frame_equalÚevalÚassert_series_equal©r1   r2   r6   r9   Úresults        r   Útest_query_defaultzTestCompat.test_query_default8   sN   € ð —’˜%‘”ˆÝ
Ô˜f iÑ0Ô0Ð0Ø—’˜‘”ˆÝ
Ô˜v yÑ1Ô1Ð1Ð1Ð1r   c                 ó¶   — |                      dd ¬¦  «        }t          j        ||¦  «         |                     dd ¬¦  «        }t          j        ||¦  «         d S )Nr;   ©r"   r<   r=   rC   s        r   Útest_query_NonezTestCompat.test_query_None@   sX   € Ø—’˜%¨�Ñ-Ô-ˆÝ
Ô˜f iÑ0Ô0Ð0Ø—’˜ t�Ñ,Ô,ˆÝ
Ô˜v yÑ1Ô1Ð1Ð1Ð1r   c                 ó¶   — |                      dd¬¦  «        }t          j        ||¦  «         |                     dd¬¦  «        }t          j        ||¦  «         d S )Nr;   r   rG   r<   r=   rC   s        r   Útest_query_pythonzTestCompat.test_query_pythonF   sX   € Ø—’˜%¨�Ñ1Ô1ˆÝ
Ô˜f iÑ0Ô0Ð0Ø—’˜ x�Ñ0Ô0ˆÝ
Ô˜v yÑ1Ô1Ð1Ð1Ð1r   c                 óö  — t           rZ|                     dd¬¦  «        }t          j        ||¦  «         |                     dd¬¦  «        }t          j        ||¦  «         d S d}t          j        t          |¬¦  «        5  |                     dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  |                     dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr;   r   rG   r<   z~'numexpr' is not installed or an unsupported version. Cannot use engine='numexpr' for query/eval if 'numexpr' is not installed©Úmatch)	r   r>   r?   r@   rA   rB   r$   ÚraisesÚImportError)r1   r2   r6   r9   rD   Úmsgs         r   Útest_query_numexprzTestCompat.test_query_numexprL   s{  € Ýð 	1Ø—X’X˜e¨I�XÑ6Ô6ˆFÝÔ! &¨)Ñ4Ô4Ð4Ø—W’W˜U¨9�WÑ5Ô5ˆFÝÔ" 6¨9Ñ5Ô5Ð5Ð5Ð5ð!ð õ
 ”�{°#Ð6Ñ6Ô6ð 2ð 2Ø—’˜ y�Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å”�{°#Ð6Ñ6Ô6ð 1ð 1Ø—’˜ i�Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s$   Á?B#Â#B'Â*B'Ã	C.Ã.C2Ã5C2N)Ú__name__Ú
__module__Ú__qualname__r$   Úfixturer2   r6   r9   rE   rH   rJ   rQ   r   r   r   r(   r(   +   s¥   € € € € € Ø„^ð+ð +ñ „^ð+ð „^ðð ñ „^ðð „^ðð ñ „^ðð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð1ð 1ð 1ð 1ð 1r   r(   c                   óâ   — e Zd Zej                             dddg¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestDataFrameEvalÚné   i   zop_str,op,rop))ú+Ú__add__Ú__radd__)ú-Ú__sub__Ú__rsub__)Ú*Ú__mul__Ú__rmul__)ú/Ú__truediv__Ú__rtruediv__c                 ót  — t          dt          |¦  «        t          d¦  «        ¬¦  «        }d|j        d<   |                     ¦   «         }t          t          j        |j        |¦  «                             |d¦  «        t          d¦  «        ¬¦  «        }t          d|› d	�¦  «        }t          d
|› d	�¦  «        }	t          j        |	|¦  «         |dv r0 t          ||¦  «        |¦  «        }	t          j        |	|¦  «         d S |dv r0 t          ||¦  «        |¦  «        }	t          j        |	|¦  «         d S d S )Nr,   Úabcd©ÚindexÚcolumnsr-   r   éÿÿÿÿ©rj   zbase z dfzm )rZ   r`   )r]   rc   )r   ÚrangeÚlistÚilocÚmeanÚnpÚtileÚvaluesÚreshaperA   r?   r@   Úgetattr)
r1   Úop_strÚopÚroprX   r2   ÚmÚbaseÚexpectedrD   s
             r   Útest_opszTestDataFrameEval.test_ops`   sF  € õ �q¥ a¡¤µ$°v±,´,Ð?Ñ?Ô?ˆØˆŒ�‰
Ø�GŠG‰IŒIˆåÝŒG�A”H˜aÑ Ô ×(Ò(¨¨BÑ/Ô/½¸f¹¼ð
ñ 
ô 
ˆõ Ð+ Ð+Ð+Ð+Ñ,Ô,ˆõ Ð&˜6Ð&Ð&Ð&Ñ'Ô'ˆÝ
Ô˜f hÑ/Ô/Ð/ð �ÐÐØ$•W˜R ‘_”_ QÑ'Ô'ˆFÝÔ! &¨(Ñ3Ô3Ð3Ð3Ð3ð �:ÐÐØ%•W˜R Ñ%Ô% aÑ(Ô(ˆFÝÔ! &¨(Ñ3Ô3Ð3Ð3Ð3ð Ðr   c                 ón  — t          dt          j                             d¦  «                             d¦  «        i¦  «        }t          j        |j        dd…<   dt          j        |j        dd…         ¦  «        z
  }dt          j        |¦  «        z
  j        dd…         }t          j	        ||¦  «         d S )Nr*   r-   i¨a  r   é   r,   é   )
r   rq   ÚrandomÚdefault_rngÚstandard_normalÚnanro   Úisnanr?   r@   )r1   r2   r{   rD   s       r   Útest_dataframe_sub_numexpr_pathz1TestDataFrameEval.test_dataframe_sub_numexpr_path†   sš   € õ ˜�RœY×2Ò2°1Ñ5Ô5×EÒEÀeÑLÔLÐMÑNÔNˆÝ”vˆŒ��!�‰Ø•r”x ¤¨¨"¨¤Ñ.Ô.Ñ.ˆØ•b”h˜r‘l”lÑ"Ô(¨¨2¨Ô.ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 óZ  — t          g d¢g d¢dœ¦  «        }d}t          j        t          |¬¦  «        5  |                     d„ ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr+   )ÚaÚbrˆ   ©r*   ÚBz%expr must be a string to be evaluatedrL   c                 ó   — | j         dk    S )Nrˆ   )rŠ   r   s    r   r   z6TestDataFrameEval.test_query_non_str.<locals>.<lambda>•   s   € ˜qœs cšz€ r   éo   ©r   r$   rN   Ú
ValueErrorr>   ©r1   r2   rP   s      r   Útest_query_non_strz$TestDataFrameEval.test_query_non_str�   s.  € å˜Y˜Y˜Y¨_¨_¨_Ð=Ð=Ñ>Ô>ˆà5ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	+ð 	+Ø�HŠHÐ)Ð)Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+õ Œ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�HŠH�S‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s#   ´AÁAÁAÁ=B Â B$Â'B$c                 óÂ   — t          dg d¢i¦  «        }d}t          j        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr*   r+   zexpr cannot be an empty stringrL   Ú r�   r�   s      r   Útest_query_empty_stringz)TestDataFrameEval.test_query_empty_stringš   s¥   € å˜˜Y˜Y˜YÐ'Ñ(Ô(ˆà.ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�HŠH�R‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ±AÁAÁAc                 ó0  — t          t          d¦  «        t          d¦  «        t          d¦  «        dœ¦  «                             ddi¬¦  «        }|                     d||¬¦  «        }t          g d¢gg d	¢d
g¬¦  «        }t	          j        ||¦  «         d S )Nr.   )r*   rŠ   ÚCrŠ   r*   rl   zC == 1©r"   r   )r,   r,   r,   )r*   r*   r•   r,   )rj   ri   )r   rm   Úrenamer>   r?   r@   )r1   r"   r   r2   ÚresÚexpects         r   Ú test_query_duplicate_column_namez2TestDataFrameEval.test_query_duplicate_column_name¢   sš   € Ý�U 1™XœX­E°!©H¬H½5À¹8¼8ÐDÐDÑEÔE×LÒLØ˜#�Jð Mñ 
ô 
ˆð �hŠh�x¨°vˆhÑ>Ô>ˆå˜I˜I˜I˜;°°°ÈÀsÐKÑKÔKˆå
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 óh  — t          t          j                             d¦  «                             d¦  «        t          d¦  «        ¬¦  «        }ddi}ddi}|                     d||g¬	¦  «        |d         |d         z   k    sJ ‚t          j        d||g¬	¦  «        |d         |d         z   k    sJ ‚d S )
Nr-   ©é
   r-   Úabrl   r‡   r,   rˆ   úa + b©Ú	resolvers)r   rq   r€   r�   r‚   rn   rA   Úpd)r1   r2   Údict1Údict2s       r   Útest_eval_resolvers_as_listz-TestDataFrameEval.test_eval_resolvers_as_list­   s¾   € åÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÅtÈDÁzÄzð
ñ 
ô 
ˆð �a�ˆØ�a�ˆØ�wŠw�w¨5°%¨.ˆwÑ9Ô9¸UÀ3¼ZÈ%ÐPSÌ*Ñ=TÒTÐTÐTÐTÝŒw�w¨5°%¨.Ð9Ñ9Ô9¸UÀ3¼ZÈ%ÐPSÌ*Ñ=TÒTÐTÐTÐTÐTÐTr   c                 ó8  — t          t          j                             d¦  «                             d¦  «        t          d¦  «        ¬¦  «        }ddi}|                     d|g¬¦  «        }|d         |d	         |d         z  z   }t          j        ||¦  «         d S )
Nr-   rœ   rž   rl   Úcz	a + b * cr    r‡   rˆ   )	r   rq   r€   r�   r‚   rn   rA   r?   rB   )r1   r2   r£   rD   r{   s        r   Útest_eval_resolvers_combinedz.TestDataFrameEval.test_eval_resolvers_combined·   s—   € åÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÅtÈDÁzÄzð
ñ 
ô 
ˆð �a�ˆð —’˜°°�Ñ8Ô8ˆà�c”7˜R œW u¨S¤zÑ1Ñ1ˆÝ
Ô˜v xÑ0Ô0Ð0Ð0Ð0r   c                 ó¬   — t          dddgi¦  «        }|                     d¦  «        }t          ddgddgdœ¦  «        }t          j        ||¦  «         d S )NÚa1ÚYÚNzc = ((a1 == 'Y') & True)TF)rª   r§   )r   rA   r?   r@   )r1   r2   r˜   r{   s       r   Útest_eval_object_dtype_binopz.TestDataFrameEval.test_eval_object_dtype_binopÄ   s`   € å˜˜s C˜jÐ)Ñ*Ô*ˆØ�gŠgÐ0Ñ1Ô1ˆÝ S¨# J°d¸E°]ÐCÐCÑDÔDˆÝ
Ô˜c 8Ñ,Ô,Ð,Ð,Ð,r   c                 óü   — t          |¦  «         t          g d¢d¬¦  «                             ¦   «         }|                     d||¬¦  «        }t	          j        |d         ¦  «        }t          j        ||¦  «         d S )N©gš™™™™™É?g      ø?gffffff@r‡   ©Únamez@np.floor(a)r–   )r&   r	   Úto_framerA   rq   Úfloorr?   rB   ©r1   r"   r   r2   r˜   r{   s         r   Útest_using_numpyz"TestDataFrameEval.test_using_numpyË   su   € å  Ñ(Ô(Ð(Ý�O�O�O¨#Ð.Ñ.Ô.×7Ò7Ñ9Ô9ˆØ�gŠg�n¨V¸FˆgÑCÔCˆÝ”8˜B˜sœGÑ$Ô$ˆÝ
Ô˜x¨Ñ-Ô-Ð-Ð-Ð-r   c                 óº   — t          g d¢d¬¦  «                             ¦   «         }|                     d||¬¦  «        }|d         }t          j        ||¦  «         d S )Nr¯   r‡   r°   r–   )r	   r²   rA   r?   rB   r´   s         r   Útest_eval_simplez"TestDataFrameEval.test_eval_simpleÓ   s]   € Ý�O�O�O¨#Ð.Ñ.Ô.×7Ò7Ñ9Ô9ˆØ�gŠg�c &°ˆgÑ8Ô8ˆØ�c”7ˆÝ
Ô˜x¨Ñ-Ô-Ð-Ð-Ð-r   c                 ó�  — |dk    r5t           j                             d¬¦  «        }|                     |¦  «         t	          t          j        g d¢¦  «        t          j        g d¢¦  «        dœ¦  «        }|                     d||¬¦  «        }t          t          j        g d	¢¦  «        ¦  «        }t          j
        ||¦  «         d S )
Nr   z/numexpr does not support extension array dtypes)Úreasonr+   ©rY   r~   é   ©r‡   rˆ   za / br–   )g      Ð?gš™™™™™Ù?ç      à?)r$   ÚmarkÚxfailÚapplymarkerr   r¢   ÚarrayrA   r	   r?   rB   )r1   r"   r   r   r¾   r2   rD   r{   s           r   Útest_extension_array_evalz+TestDataFrameEval.test_extension_array_evalÙ   sÁ   € à�YÒÐÝ”;×$Ò$ØHð %ñ ô ˆDð ×Ò Ñ%Ô%Ð%Ý�RœX i i iÑ0Ô0µr´xÀ	À	À	Ñ7JÔ7JÐKÐKÑLÔLˆØ—’˜¨¸�Ñ?Ô?ˆÝ�"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ñ7Ô7ˆÝ
Ô˜v xÑ0Ô0Ð0Ð0Ð0r   c                 ó¨   — t          dgdgdœ¦  «        }|                     d||¬¦  «        }t          dg¦  «        }t          j        ||¦  «         d S )Ny      ð?       @y      ð?      ð?r¼   za/br–   y      ø?      à?)r   rA   r	   r?   rB   )r1   r"   r   r2   rD   r{   s         r   Útest_complex_evalz#TestDataFrameEval.test_complex_evalå   sZ   € å˜f˜X¨V¨HÐ5Ð5Ñ6Ô6ˆØ—’˜ v°f�Ñ=Ô=ˆÝ˜:˜,Ñ'Ô'ˆÝ
Ô˜v xÑ0Ô0Ð0Ð0Ð0r   N)rR   rS   rT   r$   r¾   Úparametrizer|   r…   r�   r“   rš   r¥   r¨   r­   rµ   r·   rÂ   rÄ   r   r   r   rW   rW   ^   s  € € € € € à„[×Ò˜S 1 d )Ñ,Ô,Ø„[×ÒØð	
ð 	
ð 	
ñô ð4ð 4ñô ñ -Ô,ð4ð80ð 0ð 0ð	ð 	ð 	ðð ð ð	+ð 	+ð 	+ðUð Uð Uð1ð 1ð 1ð-ð -ð -ð.ð .ð .ð.ð .ð .ð
1ð 
1ð 
1ð1ð 1ð 1ð 1ð 1r   rW   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú TestDataFrameQueryWithMultiIndexc                 ó\  — t          |¦  «         t          j                             d¦  «                             ddgd¬¦  «        }t          j                             d¦  «                             ddgd¬¦  «        }t          j        ||gdd	g¬
¦  «        }t          t          j                             d¦  «                             d¦  «        |¬¦  «        }t          |j
                             d¦  «        j        |d¬¦  «        }|                     d||¬¦  «        }|                     d||¬¦  «        }	||dk             }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||dk             }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                 }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                  }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                 }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                  }
t          j        ||
¦  «         t          j        |	|
¦  «         d S )Nr-   ÚredÚgreenr�   ©ÚsizeÚeggsÚhamÚcolorÚfood©Únamesrœ   ©ri   ©ri   r±   zcolor == "red"©r   r"   z"red" == colorzcolor != "red"z"red" != colorzcolor == ["red"]z["red"] == colorzcolor != ["red"]z["red"] != colorz["red"] in colorz"red" in colorz["red"] not in colorz"red" not in color©r&   rq   r€   r�   Úchoicer   Úfrom_arraysr   r‚   r	   ri   Úget_level_valuesrs   r>   r?   r@   Úisin©r1   r   r"   r‡   rˆ   ri   r2   ÚindÚres1Úres2Úexps              r   Ú test_query_with_named_multiindexzATestDataFrameQueryWithMultiIndex.test_query_with_named_multiindexî   sz  € Ý  Ñ(Ô(Ð(ÝŒI×!Ò! !Ñ$Ô$×+Ò+¨U°GÐ,<À2Ð+ÑFÔFˆÝŒI×!Ò! !Ñ$Ô$×+Ò+¨V°U¨OÀ"Ð+ÑEÔEˆÝÔ&¨¨1 v°g¸vÐ5FÐGÑGÔGˆÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑHÔHÐPUÐVÑVÔVˆÝØŒH×%Ò% gÑ.Ô.Ô5¸UÈð
ñ 
ô 
ˆð
 �xŠxÐ(°ÀˆxÑGÔGˆØ�xŠxÐ(°ÀˆxÑGÔGˆØ�˜’ÔˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ(°ÀˆxÑGÔGˆØ�xŠxÐ(°ÀˆxÑGÔGˆØ�˜’ÔˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ*°6À&ˆxÑIÔIˆØ�xŠxÐ*°6À&ˆxÑIÔIˆØ�—’˜5˜'Ñ"Ô"Ô#ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(à�xŠxÐ*°6À&ˆxÑIÔIˆØ�xŠxÐ*°6À&ˆxÑIÔIˆØ�#—(’(˜E˜7Ñ#Ô#Ð#Ô$ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ*°6À&ˆxÑIÔIˆØ�xŠxÐ(°ÀˆxÑGÔGˆØ�—’˜5˜'Ñ"Ô"Ô#ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(à�xŠxÐ.°vÀfˆxÑMÔMˆØ�xŠxÐ,°VÀFˆxÑKÔKˆØ�#—(’(˜E˜7Ñ#Ô#Ð#Ô$ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(Ð(Ð(r   c                 óú  — t          |¦  «         t          j                             d¦  «                             ddgd¬¦  «        }t          j                             d¦  «                             ddgd¬¦  «        }t          j        ||g¦  «        }t          t          j                             d¦  «                             d¦  «        |¬	¦  «        }t          |j
                             d
¦  «        j        |¬	¦  «        }|                     d||¬¦  «        }|                     d||¬¦  «        }	||dk             }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||dk             }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                 }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                  }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                 }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                  }
t          j        ||
¦  «         t          j        |	|
¦  «         t          |j
                             d¦  «        j        |¬	¦  «        }|                     d||¬¦  «        }|                     d||¬¦  «        }	||dk             }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||dk             }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d||¬¦  «        }	||                     dg¦  «                 }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d||¬¦  «        }|                     d ||¬¦  «        }	||                     dg¦  «                  }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d!||¬¦  «        }|                     d"||¬¦  «        }	||                     dg¦  «                 }
t          j        ||
¦  «         t          j        |	|
¦  «         |                     d#||¬¦  «        }|                     d$||¬¦  «        }	||                     dg¦  «                  }
t          j        ||
¦  «         t          j        |	|
¦  «         d S )%Nr-   rÉ   rÊ   r�   rË   rÍ   rÎ   rœ   rÓ   r   úilevel_0 == "red"rÕ   z"red" == ilevel_0úilevel_0 != "red"z"red" != ilevel_0zilevel_0 == ["red"]z["red"] == ilevel_0zilevel_0 != ["red"]z["red"] != ilevel_0z["red"] in ilevel_0z"red" in ilevel_0z["red"] not in ilevel_0z"red" not in ilevel_0r,   zilevel_1 == "eggs"z"eggs" == ilevel_1zilevel_1 != "eggs"z"eggs" != ilevel_1zilevel_1 == ["eggs"]z["eggs"] == ilevel_1zilevel_1 != ["eggs"]z["eggs"] != ilevel_1z["eggs"] in ilevel_1z"eggs" in ilevel_1z["eggs"] not in ilevel_1z"eggs" not in ilevel_1rÖ   rÛ   s              r   Ú"test_query_with_unnamed_multiindexzCTestDataFrameQueryWithMultiIndex.test_query_with_unnamed_multiindex   s  € Ý  Ñ(Ô(Ð(ÝŒI×!Ò! !Ñ$Ô$×+Ò+¨U°GÐ,<À2Ð+ÑFÔFˆÝŒI×!Ò! !Ñ$Ô$×+Ò+¨V°U¨OÀ"Ð+ÑEÔEˆÝÔ&¨¨1 vÑ.Ô.ˆÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑHÔHÐPUÐVÑVÔVˆÝ�R”X×.Ò.¨qÑ1Ô1Ô8ÀÐFÑFÔFˆà�xŠxÐ+°FÀ6ˆxÑJÔJˆØ�xŠxÐ+°FÀ6ˆxÑJÔJˆØ�˜’ÔˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ+°FÀ6ˆxÑJÔJˆØ�xŠxÐ+°FÀ6ˆxÑJÔJˆØ�˜’ÔˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ-°fÀVˆxÑLÔLˆØ�xŠxÐ-°fÀVˆxÑLÔLˆØ�—’˜5˜'Ñ"Ô"Ô#ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(à�xŠxÐ-°fÀVˆxÑLÔLˆØ�xŠxÐ-°fÀVˆxÑLÔLˆØ�#—(’(˜E˜7Ñ#Ô#Ð#Ô$ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ-°fÀVˆxÑLÔLˆØ�xŠxÐ+°FÀ6ˆxÑJÔJˆØ�—’˜5˜'Ñ"Ô"Ô#ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(à�xŠxÐ1¸&ÈˆxÑPÔPˆØ�xŠxÐ/¸ÀvˆxÑNÔNˆØ�#—(’(˜E˜7Ñ#Ô#Ð#Ô$ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(õ �R”X×.Ò.¨qÑ1Ô1Ô8ÀÐFÑFÔFˆØ�xŠxÐ,°VÀFˆxÑKÔKˆØ�xŠxÐ,°VÀFˆxÑKÔKˆØ�˜’ÔˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ,°VÀFˆxÑKÔKˆØ�xŠxÐ,°VÀFˆxÑKÔKˆØ�˜’ÔˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ.°vÀfˆxÑMÔMˆØ�xŠxÐ.°vÀfˆxÑMÔMˆØ�—’˜6˜(Ñ#Ô#Ô$ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(à�xŠxÐ.°vÀfˆxÑMÔMˆØ�xŠxÐ.°vÀfˆxÑMÔMˆØ�#—(’(˜F˜8Ñ$Ô$Ð$Ô%ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(ð �xŠxÐ.°vÀfˆxÑMÔMˆØ�xŠxÐ,°VÀFˆxÑKÔKˆØ�—’˜6˜(Ñ#Ô#Ô$ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(à�xŠxÐ2¸6È&ˆxÑQÔQˆØ�xŠxÐ0¸ÈˆxÑOÔOˆØ�#—(’(˜F˜8Ñ$Ô$Ð$Ô%ˆÝ
Ô˜d CÑ(Ô(Ð(Ý
Ô˜d CÑ(Ô(Ð(Ð(Ð(r   c                 ó´  — t          |¦  «         t          j                             d¦  «                             ddgd¬¦  «        }t          j        d¦  «        }t          j        ||g¦  «        }d dg|_        t          t          j                             d¦  «         
                    d¦  «        |¬¦  «        }|                     d	||¬
¦  «        }t          |j                             d¦  «        j        |d¬¦  «        }||dk             }	t!          j        ||	¦  «         |                     d||¬
¦  «        }t          |j                             d¦  «        j        |d¬¦  «        }||dk             }	t!          j        ||	¦  «         |                     d||¬
¦  «        }t          |j                             d¦  «        j        |¬¦  «        }||dk             }	t!          j        ||	¦  «         |                     d||¬
¦  «        }t          |j                             d¦  «        j        |¬¦  «        }||dk             }	t!          j        ||	¦  «         d S )Nr-   rÉ   rÊ   r�   rË   Úratingrœ   rÓ   zrating == 1rÕ   rÔ   r,   zrating != 1râ   r   rã   )r&   rq   r€   r�   r×   Úaranger   rØ   rÒ   r   r‚   r>   r	   ri   rÙ   rs   r?   r@   )
r1   r   r"   r‡   rˆ   ri   r2   r˜   rÜ   rß   s
             r   Ú*test_query_with_partially_named_multiindexzKTestDataFrameQueryWithMultiIndex.test_query_with_partially_named_multiindexx  s+  € Ý  Ñ(Ô(Ð(ÝŒI×!Ò! !Ñ$Ô$×+Ò+¨U°GÐ,<À2Ð+ÑFÔFˆÝŒI�b‰MŒMˆÝÔ&¨¨1 vÑ.Ô.ˆØ˜XÐ&ˆŒÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑHÔHÐPUÐVÑVÔVˆØ�hŠh�}¨V¸FˆhÑCÔCˆÝØŒH×%Ò% hÑ/Ô/Ô6¸eÈ(ð
ñ 
ô 
ˆð �˜’ŒlˆÝ
Ô˜c 3Ñ'Ô'Ð'à�hŠh�}¨V¸FˆhÑCÔCˆÝØŒH×%Ò% hÑ/Ô/Ô6¸eÈ(ð
ñ 
ô 
ˆð �˜’ŒlˆÝ
Ô˜c 3Ñ'Ô'Ð'à�hŠhÐ*°6À&ˆhÑIÔIˆÝ�R”X×.Ò.¨qÑ1Ô1Ô8ÀÐFÑFÔFˆØ�˜’ÔˆÝ
Ô˜c 3Ñ'Ô'Ð'à�hŠhÐ*°6À&ˆhÑIÔIˆÝ�R”X×.Ò.¨qÑ1Ô1Ô8ÀÐFÑFÔFˆØ�˜’ÔˆÝ
Ô˜c 3Ñ'Ô'Ð'Ð'Ð'r   c           	      ót  — t          t          j        d¦  «        t          j        d„ t          d¦  «        D ¦   «         ddg¬¦  «        ¬¦  «        }|                     ¦   «         }d„ }|j                             ¦   «         }|j	        | ||j	        d¦  «         ||j	        d¦  «        |d	œ}| 
                    ¦   «         D ]w\  }}t          |t          ¦  «        r|                     ||         ¦  «        sJ ‚Œ8t          |t          ¦  «        rt          j        |||         ¦  «         Œit#          d
¦  «        ‚d S )N©r�   r.   c                 ó,   — g | ]}t          d ¦  «        ‘ŒS )r�   )rm   )Ú.0Ú_s     r   ú
<listcomp>z^TestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers.<locals>.<listcomp>›  s   € Ð-Ð-Ð-˜q•�r‘”Ð-Ð-Ð-r   r-   ÚspamrÍ   rÑ   rÓ   c                 óf   — |                       |¦  «        }|                     ¦   «         }| |_        |S r   )rÙ   Ú	to_seriesri   )ÚmiÚlevelÚlevel_valuesÚss       r   rñ   z]TestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers.<locals>.to_series   s2   € Ø×.Ò.¨uÑ5Ô5ˆLØ×&Ò&Ñ(Ô(ˆAØˆAŒGØˆHr   )ri   rj   rï   rÍ   Úclevel_0z object must be a Series or Index)r   rq   Úonesr   rØ   rm   Ú_get_index_resolversrj   rñ   ri   ÚitemsÚ
isinstancer   Úis_r	   r?   rB   ÚAssertionError)r1   r2   r¡   rñ   Ú
col_seriesr{   ÚkÚvs           r   Ú)test_query_multiindex_get_index_resolverszJTestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers—  sa  € ÝÝŒG�GÑÔÝÔ(Ø-Ð-¥E¨!¡H¤HÐ-Ñ-Ô-°f¸fÐ5Eðñ ô ð
ñ 
ô 
ˆð ×+Ò+Ñ-Ô-ˆ	ð	ð 	ð 	ð ”Z×)Ò)Ñ+Ô+ˆ
à”XØ!Ø�I˜bœh¨Ñ/Ô/Ø�I˜bœh¨Ñ/Ô/Ø"ð
ð 
ˆð —O’OÑ%Ô%ð 	Ið 	I‰DˆAˆqÝ˜!�UÑ#Ô#ð IØ—u’u˜X aœ[Ñ)Ô)Ð)Ð)Ð)Ð)Ý˜A�vÑ&Ô&ð IÝÔ& q¨(°1¬+Ñ6Ô6Ð6Ð6å$Ð%GÑHÔHÐHð	Ið 	Ir   N)rR   rS   rT   rà   rä   rè   r   r   r   r   rÇ   rÇ   í   sZ   € € € € € ð0)ð 0)ð 0)ðdV)ð V)ð V)ðp(ð (ð (ð>Ið Ið Ið Ið Ir   rÇ   c                   óF  — e Zd Zej        d„ ¦   «         Zej        d„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             ddej         gdej!        gg¦  «        d„ ¦   «         Z"d„ Z#d„ Z$dS ) ÚTestDataFrameQueryNumExprPandasc                 ó   — dS ©Nr   r   r0   s    r   r"   z&TestDataFrameQueryNumExprPandas.engine¹  ó   € àˆyr   c                 ó   — dS ©Nr   r   r0   s    r   r   z&TestDataFrameQueryNumExprPandas.parser½  ó   € àˆxr   c                 ó®  — t          |¦  «         t          t          j                             d¦  «                             d¦  «        ¦  «        }t          dd¬¦  «        |d<   t          dd¬¦  «        |d<   t          d	d¬¦  «        |d
<   |                     d||¬¦  «        }||j        dk     d|j	        k     z           }t          j        ||¦  «         d S )Nr-   ©r~   r.   ú1/1/2012r~   ©ÚperiodsÚdates1ú1/1/2013Údates2ú1/1/2014Údates3z"@df.dates1 < 20130101 < @df.dates3r–   Ú20130101)r&   r   rq   r€   r�   r‚   r
   r>   r  r  r?   r@   ©r1   r"   r   r2   r˜   Úexpecs         r   Ú%test_date_query_with_attribute_accesszETestDataFrameQueryNumExprPandas.test_date_query_with_attribute_accessÁ  sÔ   € Ý  Ñ(Ô(Ð(Ý•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ø�hŠhØ0¸Èð ñ 
ô 
ˆð �B”I 
Ò*¨z¸B¼IÒ/EÑFÔGˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó�  — t          t          j                             d¦  «                             d¦  «        ¦  «        }t          dd¬¦  «        |d<   t          dd¬¦  «        |d<   t          d	d¬¦  «        |d
<   |                     d||¬¦  «        }||j        dk     d|j        k     z           }t          j
        ||¦  «         d S )Nr-   r
  r  r~   r  r  r  r  r  r  údates1 < 20130101 < dates3r–   r  ©r   rq   r€   r�   r‚   r
   r>   r  r  r?   r@   r  s         r   Ú#test_date_query_no_attribute_accesszCTestDataFrameQueryNumExprPandas.test_date_query_no_attribute_accessÍ  s½   € Ý•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ø�hŠhÐ3¸FÈ6ˆhÑRÔRˆØ�B”I 
Ò*¨z¸B¼IÒ/EÑFÔGˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 óÀ  — d}t          t          j                             d¦  «                             |df¦  «        ¦  «        }t          d|¬¦  «        |d<   t          d|¬¦  «        |d<   t          d	|¬¦  «        |d
<   t          j        |j        t          j                             d¦  «                             |¦  «        dk    df<   t          j        |j        t          j                             d¦  «                             |¦  «        dk    d
f<   | 	                    d||¬¦  «        }||j
        dk     d|j        k     z           }t          j        ||¦  «         d S )Nr�   r-   r.   r  r  r  r  r  r  r  r½   r  r–   r  ©r   rq   r€   r�   r‚   r
   r¢   ÚNaTÚlocr>   r  r  r?   r@   ©r1   r"   r   rX   r2   r˜   r  s          r   Útest_date_query_with_NaTz8TestDataFrameQueryNumExprPandas.test_date_query_with_NaTÖ  s2  € ØˆÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÀAÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰ÝEGÄVˆŒ�rŒy×$Ò$ QÑ'Ô'×.Ò.¨qÑ1Ô1°CÒ7¸ÐAÑBÝEGÄVˆŒ�rŒy×$Ò$ QÑ'Ô'×.Ò.¨qÑ1Ô1°CÒ7¸ÐAÑBØ�hŠhÐ3¸FÈ6ˆhÑRÔRˆØ�B”I 
Ò*¨z¸B¼IÒ/EÑFÔGˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó¨  — d}t          t          j                             d¦  «                             |df¦  «        ¦  «        }t          d|¬¦  «        |d<   t          d|¬¦  «        |d<   |                     dd	d	¬
¦  «        }|�J ‚|                     d||¬¦  «        }||j        dk     d|j	        k     z           }t          j        ||¦  «         d S )Nr�   r-   r.   r  r  r  r  r  T©ÚinplaceÚdropúindex < 20130101 < dates3r–   r  ©r   rq   r€   r�   r‚   r
   Ú	set_indexr>   ri   r  r?   r@   ©r1   r"   r   rX   r2   Úreturn_valuer˜   r  s           r   Útest_date_index_queryz5TestDataFrameQueryNumExprPandas.test_date_index_queryâ  sÓ   € ØˆÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÀAÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ø—|’| H°dÀ�|ÑFÔFˆØÐ#Ð#Ð#Ø�hŠhÐ2¸6È&ˆhÑQÔQˆØ�B”H˜zÒ)¨j¸2¼9Ò.DÑEÔFˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó  — d}t          t          j                             d¦  «                             |df¦  «        ¦  «                             dt          i¦  «        }t          d|¬¦  «        |d<   t          d|¬¦  «        |d	<   t          j	        |j
        d
<   |                     ddd¬¦  «        }|�J ‚|                     d||¬¦  «        }||j        dk     d|j        k     z           }t          j        ||¦  «         d S )Nr�   r-   r.   r   r  r  r  r  r  ©r   r   Tr"  r%  r–   r  ©r   rq   r€   r�   r‚   ÚastypeÚobjectr
   r¢   r  ro   r'  r>   ri   r  r?   r@   r(  s           r   Útest_date_index_query_with_NaTz>TestDataFrameQueryNumExprPandas.test_date_index_query_with_NaTí  sù   € Øˆå•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÀAÀÑGÔGÑHÔH×OÒOØ•ˆKñ
ô 
ˆõ " *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰ÝœˆŒ�‰Ø—|’| H°dÀ�|ÑFÔFˆØÐ#Ð#Ð#Ø�hŠhÐ2¸6È&ˆhÑQÔQˆØ�B”H˜zÒ)¨j¸2¼9Ò.DÑEÔFˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó   — d}i }t          d|¬¦  «        |d<   t          d|¬¦  «        |d<   t          |¦  «        }t          j        |j        t
          j                             d¦  «                             |¦  «        dk    df<   |                     dd	d	¬
¦  «        }|�J ‚| 	                    d||¬¦  «        }||j
                             ¦   «         dk     d|j        k     z           }t          j        ||¦  «         d S )Nr�   r  r  r  r  r  r-   r½   Tr"  r  r–   r  )r
   r   r¢   r  r  rq   r€   r�   r'  r>   ri   rñ   r  r?   r@   )	r1   r"   r   rX   Údr2   r)  r˜   r  s	            r   Ú)test_date_index_query_with_NaT_duplicateszITestDataFrameQueryNumExprPandas.test_date_index_query_with_NaT_duplicatesü  sö   € ØˆØˆÝ  °QÐ7Ñ7Ô7ˆˆ(‰Ý  °QÐ7Ñ7Ô7ˆˆ(‰Ý�q‰\Œ\ˆÝEGÄVˆŒ�rŒy×$Ò$ QÑ'Ô'×.Ò.¨qÑ1Ô1°CÒ7¸ÐAÑBØ—|’| H°dÀ�|ÑFÔFˆØÐ#Ð#Ð#Ø�hŠhÐ3¸FÈ6ˆhÑRÔRˆØ�B”H×&Ò&Ñ(Ô(¨:Ò5¸*ÀrÄyÒ:PÑQÔRˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 óÒ  — d}t          t          d|d¬¦  «        t          j        |¦  «        dœ¦  «        }|                     d||¬¦  «        }t          |¦  «        dk    sJ ‚|                     d	||¬¦  «        }t          j        ||¦  «         d
}dD ]Q}t          j	        t          |¬¦  «        5  |                     d|› d�||¬¦  «         d d d ¦  «         n# 1 swxY w Y   ŒRd S )Nr�   r  Úns)r  Úunit)ÚdatesÚnondatezdates == nondaterÕ   r   zdates != nondatez=Invalid comparison between dtype=datetime64\[ns\] and ndarray)ú<ú>ú<=ú>=rL   zdates z nondate)r   r
   rq   rç   r>   Úlenr?   r@   r$   rN   Ú	TypeError)r1   r"   r   rX   r2   rD   rP   rw   s           r   Útest_date_query_with_non_datez=TestDataFrameQueryNumExprPandas.test_date_query_with_non_date	  s[  € ØˆÝå# J¸ÀÐEÑEÔEÝœ9 Q™<œ<ðð ñ
ô 
ˆð —’Ð,°VÀF�ÑKÔKˆÝ�6‰{Œ{˜aÒÐÐÐà—’Ð,°VÀF�ÑKÔKˆÝ
Ô˜f bÑ)Ô)Ð)àNˆØ(ð 	Nð 	NˆBÝ”�y°Ð4Ñ4Ô4ð Nð NØ—’Ð. "Ð.Ð.Ð.°vÀf�ÑMÔMÐMðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nøð	Nð 	Ns   Â2CÃC	Ã"C	c                 ó  — t          t          d¦  «        t          dd¦  «        t          dd¦  «        dœ¦  «        }d}t          j        t          |¬¦  «        5  |                     d	||¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   r.   é   rY   é   )ÚirZ   Úrúinvalid syntaxrL   zi - +r–   )r   rm   r$   rN   ÚSyntaxErrorr>   )r1   r"   r   r2   rP   s        r   Útest_query_syntax_errorz7TestDataFrameQueryNumExprPandas.test_query_syntax_error  sÅ   € Ý�U 2™YœY­U°1°b©\¬\ÅÀaÈÁÄÐMÐMÑNÔNˆØˆÝŒ]�;¨cÐ2Ñ2Ô2ð 	<ð 	<Ø�HŠH�W V°FˆHÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   ÁB Â BÂBc                 óú  — t          |¦  «         t          t          j                             d¦  «                             d¦  «        t          d¦  «        ¬¦  «        }d\  }}|                     d||¬¦  «        }||j        |j	        k             }t          j        ||¦  «         |                     d||¬¦  «        }|||j	        k             }t          j        ||¦  «         t          j        t          d	¬
¦  «        5  |                     d||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬
¦  «        5  |                     d||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr-   )é   r-   rž   rl   )r,   r-   za > br–   z@a > bú!local variable 'c' is not definedrL   z@a > b > @czname 'c' is not definedz
@a > b > c)r&   r   rq   r€   r�   r‚   rn   r>   r‡   rˆ   r?   r@   r$   rN   r   )r1   r"   r   r2   r‡   rˆ   r˜   r{   s           r   Útest_query_scopez0TestDataFrameQueryNumExprPandas.test_query_scope#  s  € Ý  Ñ(Ô(Ð(åÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÅtÈDÁzÄzð
ñ 
ô 
ˆð ‰ˆˆ1Ø�hŠh�w v°fˆhÑ=Ô=ˆØ�b”d˜RœT’k”?ˆÝ
Ô˜c 8Ñ,Ô,Ð,à�hŠh�x¨°vˆhÑ>Ô>ˆØ�a˜"œ$’h”<ˆÝ
Ô˜c 8Ñ,Ô,Ð,õ Œ]Ý"Ð*Mð
ñ 
ô 
ð 	Bð 	Bð �HŠH�]¨6¸&ˆHÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bõ Œ]Õ1Ð9RÐSÑSÔSð 	Að 	AØ�HŠH�\¨&¸ˆHÑ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að 	Að 	As$   Ã?D$Ä$D(Ä+D(Å
E0Å0E4Å7E4c                 óJ  — dx}}t          t          j                             d¦  «                             ||df¬¦  «        t          d¦  «        ¬¦  «        }t          j        t          d¬¦  «        5  | 	                    d	||¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   r-   r.   rË   Úabcrl   zname 'sin' is not definedrL   úsin > 5r–   )
r   rq   r€   r�   Úintegersrn   r$   rN   r   r>   )r1   r"   r   rX   ry   r2   s         r   Útest_query_doesnt_pickup_localz>TestDataFrameQueryNumExprPandas.test_query_doesnt_pickup_local=  sæ   € Øˆ
ˆˆAÝÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°q¸!°fÐ-Ñ=Ô=ÅtÈEÁ{Ä{ð
ñ 
ô 
ˆõ
 Œ]Õ1Ð9TÐUÑUÔUð 	>ð 	>Ø�HŠH�Y v°fˆHÑ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s   Á2BÂBÂBc                 óf  — dx}}t          t          j                             d¦  «                             ||df¬¦  «        t          d¦  «        ¬¦  «        }d|j        _        d}t          j	        t          |¬	¦  «        5  |                     d
||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   r-   r.   rË   rM  rl   ÚsinzVariables in expression.+rL   rN  r–   )r   rq   r€   r�   rO  rn   ri   r±   r$   rN   r   r>   )r1   r"   r   rX   ry   r2   rP   s          r   Útest_query_builtinz2TestDataFrameQueryNumExprPandas.test_query_builtinG  só   € Øˆ
ˆˆAÝÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°q¸!°fÐ-Ñ=Ô=ÅtÈEÁ{Ä{ð
ñ 
ô 
ˆð ˆŒŒØ)ˆÝŒ]Õ1¸Ð=Ñ=Ô=ð 	>ð 	>Ø�HŠH�Y v°fˆHÑ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s   Â B&Â&B*Â-B*c                 ó¨  — t          t          j                             d¦  «                             d¦  «        g d¢¬¦  «        }t          j        |                     d||¬¦  «        ||j        |j	        k              ¦  «         t          j        |                     d||¬¦  «        ||j        |j	        z   |j	        |j
        z  k             ¦  «         d S )Nr-   rê   ©r‡   rˆ   r§   rl   úa < br–   za + b > b * c)r   rq   r€   r�   r‚   r?   r@   r>   r‡   rˆ   r§   ©r1   r"   r   r2   s       r   Ú
test_queryz*TestDataFrameQueryNumExprPandas.test_queryR  sÊ   € ÝÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÀÀÀð
ñ 
ô 
ˆõ 	ÔØ�HŠH�W V°FˆHÑ;Ô;¸RÀÄÀrÄtÂ¼_ñ	
ô 	
ð 	
õ 	ÔØ�HŠH�_¨V¸FˆHÑCÔCØˆrŒt�b”d‰{˜RœT B¤D™[Ò(Ô)ñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óî  — t          t          j                             d¦  «                             dd¬¦  «        t          t          d¦  «        d¬¦  «        g d¢¬¦  «        }|                     d	||¬
¦  «        }||j        dk     |j	        |j
        k     z           }t          j        ||¦  «         |                     d||¬
¦  «        }||j        |j
        k              }t          j        ||¦  «         d S )Nr-   r�   rê   rË   Úblobr°   rU  rh   z(blob < 5) & (a < b)r–   r~   zblob < b)r   rq   r€   r�   rO  r   rm   r>   ri   r‡   rˆ   r?   r@   r  s         r   Útest_query_index_with_namez:TestDataFrameQueryNumExprPandas.test_query_index_with_name_  så   € ÝÝŒI×!Ò! !Ñ$Ô$×-Ò-¨b°wÐ-Ñ?Ô?Ý�˜b™	œ	¨Ð/Ñ/Ô/Ø#�O�Oð
ñ 
ô 
ˆð
 �hŠhÐ-°fÀVˆhÑLÔLˆØ�B”H˜q’L R¤T¨B¬D¢[Ñ1Ô2ˆÝ
Ô˜c 5Ñ)Ô)Ð)à�hŠh�z¨&¸ˆhÑ@Ô@ˆØ�2”8˜bœd’?Ô#ˆå
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó®  — t          t          j                             d¦  «                             dd¬¦  «        t          d¦  «        g d¢¬¦  «        }|                     d||¬¦  «        }||j        |j        k              }t          j
        ||¦  «         |                     d	||¬¦  «        }||j        d
k              }t          j
        ||¦  «         d S )Nr-   r�   rê   rË   rU  rh   z	index < br–   z	index < 5r~   )r   rq   r€   r�   rO  rm   r>   ri   rˆ   r?   r@   r  s         r   Útest_query_index_without_namez=TestDataFrameQueryNumExprPandas.test_query_index_without_namen  sÌ   € ÝÝŒI×!Ò! !Ñ$Ô$×-Ò-¨b°wÐ-Ñ?Ô?Ý˜‘)”)Ø#�O�Oð
ñ 
ô 
ˆð �hŠh�{¨6¸&ˆhÑAÔAˆØ�2”8˜bœd’?Ô#ˆÝ
Ô˜c 5Ñ)Ô)Ð)ð �hŠh�{¨6¸&ˆhÑAÔAˆØ�2”8˜a’<Ô ˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó   — t          |¦  «         t          t          j                             d¦  «                             d¦  «        ¦  «        }t          t          j                             d¦  «                             d¦  «        ¦  «        }||dk    |dk    z           }|                     d||¬¦  «        }t          j        ||¦  «         t          j
        d||¬¦  «        }t          j        ||¦  «         t          j
        d||¬¦  «        }||dk    |dk    z  ||dk             dk    z           }t          j        ||¦  «         t          j
        d||¬¦  «        }|                     d	||¬¦  «        }t          j        ||¦  «         d S )
Nr-   r
  r   z(@df > 0) & (@df2 > 0)r–   zdf[df > 0 and df2 > 0]z)df[df > 0 and df2 > 0 and df[df > 0] > 0]zdf[(df>0) & (df2>0)]ú(@df>0) & (@df2>0))r&   r   rq   r€   r�   r‚   r>   r?   r@   r¢   rA   )r1   r"   r   r2   Údf2r{   rD   s          r   Útest_nested_scopez1TestDataFrameQueryNumExprPandas.test_nested_scope  st  € Ý  Ñ(Ô(Ð(å•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑGÔGÑHÔHˆÝ�œ	×-Ò-¨aÑ0Ô0×@Ò@ÀÑHÔHÑIÔIˆØ�r˜A’v #¨¢'Ñ*Ô+ˆà—’Ð2¸6È&�ÑQÔQˆÝ
Ô˜f hÑ/Ô/Ð/å”Ð1¸&ÈÐPÑPÔPˆÝ
Ô˜f hÑ/Ô/Ð/å”Ø7ÀÈvð
ñ 
ô 
ˆð �r˜A’v #¨¢'Ñ*¨b°°a²¬j¸1ªnÑ=Ô>ˆÝ
Ô˜f hÑ/Ô/Ð/å”Ð/¸ÀvÐNÑNÔNˆØ—8’8Ð0¸È�8ÑOÔOˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó  — t          t          j                             d¦  «                             d¦  «        ¦  «        }t          j        t          d¬¦  «        5  |                     d||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr-   r
  úname 'df' is not definedrL   zdf > 0r–   )	r   rq   r€   r�   r‚   r$   rN   r   r>   rW  s       r   Ú*test_nested_raises_on_local_self_referencezJTestDataFrameQueryNumExprPandas.test_nested_raises_on_local_self_reference–  sÂ   € Ý•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑGÔGÑHÔHˆõ Œ]Õ1Ð9SÐTÑTÔTð 	=ð 	=Ø�HŠH�X f°VˆHÑ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ÁBÂBÂBc                 óÆ  — t          |¦  «         t          t          j                             d¦  «                             d¦  «        t          d¦  «        ¬¦  «        }d}||j        |k              }|                     d||¬¦  «        }t          j
        ||¦  «         ||j        |j        k              }|                     d||¬¦  «        }t          j
        ||¦  «         d S )	Nr-   )éd   r�   Ú
abcdefghijrl   r,   za < @br–   rV  )r&   r   rq   r€   r�   r‚   rn   r‡   r>   r?   r@   rˆ   )r1   r"   r   r2   rˆ   r™   rD   s          r   Útest_local_syntaxz1TestDataFrameQueryNumExprPandas.test_local_syntax�  sÑ   € Ý  Ñ(Ô(Ð(åÝŒI×!Ò! !Ñ$Ô$×4Ò4°YÑ?Ô?Ý˜Ñ&Ô&ð
ñ 
ô 
ˆð ˆØ�B”D˜1’H”ˆØ—’˜(¨6¸&�ÑAÔAˆÝ
Ô˜f fÑ-Ô-Ð-à�B”D˜2œ4’K”ˆØ—’˜'¨&¸�Ñ@Ô@ˆÝ
Ô˜f fÑ-Ô-Ð-Ð-Ð-r   c                 ó  — t          |¦  «         t          d¦  «        }t          t          j                             d¦  «                             dt          |¦  «        f¦  «        |¬¦  «        }|                     d||¬¦  «        }|j	        |j
        k     |j
        |j        k     z  |j
                             |j	        ¦  «         z  |j                             |j
        ¦  «         z  }||         }t          j        ||¦  «         d S )NrM  r-   rf  rl   z!a < b < c and a not in b not in cr–   )r&   rn   r   rq   r€   r�   r‚   r=  r>   r‡   rˆ   r§   rÚ   r?   r@   )r1   r"   r   Úcolsr2   r˜   rÜ   r  s           r   Útest_chained_cmp_and_inz7TestDataFrameQueryNumExprPandas.test_chained_cmp_and_in­  sé   € Ý  Ñ(Ô(Ð(Ý�E‰{Œ{ˆÝÝŒI×!Ò! !Ñ$Ô$×4Ò4°c½3¸t¹9¼9Ð5EÑFÔFÐPTð
ñ 
ô 
ˆð �hŠhØ/¸Àvð ñ 
ô 
ˆð Œt�b”dŠ{˜rœt b¤dš{Ñ+¨r¬t¯yªy¸¼©¬Ð.>Ñ>À"Ä$Ç)Â)ÈBÌDÁ/Ä/ÐAQÑQˆØ�3”ˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó$  — t          |¦  «         t          t          j                             d¦  «                             dd¬¦  «        d¬¦  «        }t          t          j                             d¦  «                             dd¬¦  «        d¬¦  «        }t          ||d	œ¦  «        }|j        |j        d
z
   	                    |¦  «                 }| 
                    d||¬¦  «        }t          j        ||¦  «         t          t          j                             d¦  «                             dd¬¦  «        d¬¦  «        }|j        |d
z
   	                    |¦  «                 }| 
                    d||¬¦  «        }t          j        ||¦  «         d S )Nr-   r.   é   rË   r‡   r°   r�   rˆ   r¼   r,   z
b - 1 in ar–   z@b - 1 in a)r&   r	   rq   r€   r�   rO  r   r  rˆ   rÚ   r>   r?   r@   )r1   r"   r   r‡   rˆ   r2   r{   rD   s           r   Útest_local_variable_with_inz;TestDataFrameQueryNumExprPandas.test_local_variable_with_inº  sV  € Ý  Ñ(Ô(Ð(Ý•2”9×(Ò(¨Ñ+Ô+×4Ò4°Q¸RÐ4Ñ@Ô@ÀsÐKÑKÔKˆÝ•2”9×(Ò(¨Ñ+Ô+×4Ò4°R¸bÐ4ÑAÔAÈÐLÑLÔLˆÝ˜Q QÐ'Ð'Ñ(Ô(ˆà”6˜2œ4 !™8Ÿ/š/¨!Ñ,Ô,Ô-ˆØ—’˜,¨v¸f�ÑEÔEˆÝ
Ô˜h¨Ñ/Ô/Ð/å•2”9×(Ò(¨Ñ+Ô+×4Ò4°R¸bÐ4ÑAÔAÈÐLÑLÔLˆØ”6˜1˜q™5Ÿ,š, q™/œ/Ô*ˆØ—’˜-°¸v�ÑFÔFˆÝ
Ô˜h¨Ñ/Ô/Ð/Ð/Ð/r   c                 óÊ   — t          |¦  «         d}t          dg d¢i¦  «        }|                     d||¬¦  «        }||j        dk             }t	          j        ||¦  «         d S )Nr,   r‡   )r‡   r‡   rˆ   rˆ   ú@crp  z	a == "@c"r–   rp  ©r&   r   r>   r‡   r?   r@   )r1   r"   r   r§   r2   rD   r{   s          r   Útest_at_inside_stringz5TestDataFrameQueryNumExprPandas.test_at_inside_stringÉ  sn   € Ý  Ñ(Ô(Ð(ØˆÝ˜Ð=Ð=Ð=Ð>Ñ?Ô?ˆØ—’˜+¨f¸V�ÑDÔDˆØ�b”d˜d’lÔ#ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ót  — | j         | j        }}t          |¦  «         t          t          j                             d¦  «                             d¦  «        t          d¦  «        ¬¦  «        }t          j	        t          d¬¦  «        5  |                     d||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr-   rœ   rž   rl   rJ  rL   za == @cr–   )r"   r   r&   r   rq   r€   r�   rn   r$   rN   r   r>   rW  s       r   Útest_query_undefined_localz:TestDataFrameQueryNumExprPandas.test_query_undefined_localÑ  sî   € Øœ d¤k�ˆÝ  Ñ(Ô(Ð(å•r”y×,Ò,¨QÑ/Ô/×6Ò6°wÑ?Ô?ÍÈdÉÌÐTÑTÔTˆÝŒ]Ý"Ð*Mð
ñ 
ô 
ð 	>ð 	>ð �HŠH�Y v°fˆHÑ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s   ÂB-Â-B1Â4B1c                 ó@  — d}t           j        ddd…         }t          |t           j                             d¦  «                             |j        ¦  «        dœ¦  «        }d|j        _        | 	                    d||¬¦  «        }||d         d	k             }t          j        ||¦  «         t          |t           j                             d¦  «                             |j        ¦  «        dœ¦  «        }| 	                    d
||¬¦  «        }|j        |j        |j        d	k                      }t          j        ||¦  «         t          |t           j                             d¦  «                             |j        ¦  «        dœ¦  «        }d|j        _        | 	                    d||¬¦  «        }||j        d	k             }t          j        ||¦  «         | 	                    d||¬¦  «        }|j        |j        |j        d	k                      }t          j        ||¦  «         d S )Nr,   rI  ée   r-   )ri   rˆ   ri   z	index > 5r–   r~   zilevel_0 > 5r¼   r‡   za > 5)rq   Úr_r   r€   r�   r‚   rÌ   ri   r±   r>   r?   r@   r  r‡   )r1   r"   r   rX   r‡   r2   rD   r{   s           r   Ú:test_index_resolvers_come_after_columns_with_the_same_namezZTestDataFrameQueryNumExprPandas.test_index_resolvers_come_after_columns_with_the_same_nameÛ  sÛ  € ð ˆÝŒE�"�S˜�)ÔˆåØ�bœi×3Ò3°AÑ6Ô6×FÒFÀqÄvÑNÔNÐOÐOñ
ô 
ˆð  ˆŒŒØ—’˜+¨f¸V�ÑDÔDˆØ�b˜”k A’oÔ&ˆÝ
Ô˜f hÑ/Ô/Ð/åØ�bœi×3Ò3°AÑ6Ô6×FÒFÀqÄvÑNÔNÐOÐOñ
ô 
ˆð —’˜.°À�ÑGÔGˆØ”6˜"œ( 2¤8¨a¢<Ô0Ô1ˆÝ
Ô˜f hÑ/Ô/Ð/å˜Q¥R¤Y×%:Ò%:¸1Ñ%=Ô%=×%MÒ%MÈaÌfÑ%UÔ%UÐVÐVÑWÔWˆØˆŒŒØ—’˜'¨&¸�Ñ@Ô@ˆØ�b”d˜Q’h”<ˆÝ
Ô˜f hÑ/Ô/Ð/à—’˜+¨f¸V�ÑDÔDˆØ”6˜"œ( 2¤8¨a¢<Ô0Ô1ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   zop, fú==ú!=c                 óÈ  — d}t          t          j                             d¦  «                             |¦  «        t          j                             d¦  «                             |¦  «        dœ¦  «        }t          j        |j        d d d…df<   d|› d�}| ||j        t          j        ¦  «                 }|                     |||¬¦  «        }	t          j	        |	|¦  «         d S )Nr�   r-   r¼   r   úa z infr–   )
r   rq   r€   r�   Úinfr  r‡   r>   r?   r@   )
r1   rw   Úfr"   r   rX   r2   Úqr{   rD   s
             r   Útest_infz(TestDataFrameQueryNumExprPandas.test_infú  sÐ   € àˆÝå”Y×*Ò*¨1Ñ-Ô-×4Ò4°QÑ7Ô7Ý”Y×*Ò*¨1Ñ-Ô-×4Ò4°QÑ7Ô7ðð ñ
ô 
ˆõ œˆŒˆsˆs�ˆs�Aˆv‰Ø�ˆMˆMˆMˆØ�a�a˜œ�bœf‘o”oÔ&ˆØ—’˜! F°6�Ñ:Ô:ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó\  — |}t          ddd|d¬¦  «        }t          |¬¦  «        }t          |¬¦  «        }|                     d¦  «        }t          j        ||¦  «         t          |¦  «        }|                     ¦   «                              d¦  «        }t          j        ||¦  «         d S )Nz
2019-01-01Ú1Dr�   Útime)ÚstartÚfreqr  Útzr±   rÓ   z"2018-01-03 00:00:00+00" < time)r
   r   r>   r?   r@   Úreset_index)r1   Útz_aware_fixturer†  Údf_indexr{   r2   rD   s          r   Útest_check_tz_aware_index_queryz?TestDataFrameQueryNumExprPandas.test_check_tz_aware_index_query	  s±   € àˆÝØ T°2¸"À6ð
ñ 
ô 
ˆõ  8Ð,Ñ,Ô,ˆÝ˜XÐ&Ñ&Ô&ˆØ—’Ð;Ñ<Ô<ˆÝ
Ô˜f hÑ/Ô/Ð/å˜XÑ&Ô&ˆØ—’Ñ!Ô!×'Ò'Ð(IÑJÔJˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c           	      óº  — d}t          dt          j                             d¦  «                             |¦  «        z  t          j                             d¦  «                             |¦  «        dœ¦  «        }||d                              d¦  «        dk             }|                     d||¬¦  «        }t          j        ||¦  «         t          t          j        t          j                             d¦  «                             |¦  «        d	k     t          j	        t          j                             d¦  «         
                    |¦  «        ¦  «        t          j                             d¦  «         
                    |¦  «        dœ¦  «        }||d                              ¦   «                  }|                     d
||¬¦  «        }t          j        ||¦  «         d S )Nr�   r-   r¼   r‡   Úintr   za.astype('int') == 0r–   r½   za.notnull())r   rq   r€   r�   r.  r>   r?   r@   Úwhererƒ   r‚   Únotnull)r1   r"   r   rX   r2   r{   rD   s          r   Útest_method_calls_in_queryz:TestDataFrameQueryNumExprPandas.test_method_calls_in_query  s”  € àˆÝà�œ×.Ò.¨qÑ1Ô1×8Ò8¸Ñ;Ô;Ñ;Ý”Y×*Ò*¨1Ñ-Ô-×4Ò4°QÑ7Ô7ðð ñ
ô 
ˆð �b˜”g—n’n UÑ+Ô+¨qÒ0Ô1ˆØ—’Ð0¸È�ÑOÔOˆÝ
Ô˜f hÑ/Ô/Ð/åå”XÝ”I×)Ò)¨!Ñ,Ô,×3Ò3°AÑ6Ô6¸Ò<Ý”FÝ”I×)Ò)¨!Ñ,Ô,×<Ò<¸QÑ?Ô?ñô õ
 ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸aÑ@Ô@ðð ñ	
ô 	
ˆð �b˜”g—o’oÑ'Ô'Ô(ˆØ—’˜-°¸v�ÑFÔFˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   N)%rR   rS   rT   r$   rU   r"   r   r  r  r   r*  r0  r3  r?  rG  rK  rP  rS  rX  r[  r]  ra  rd  rh  rk  rn  rr  rt  rx  r¾   rÅ   ÚoperatorÚeqÚner€  rŠ  r�  r   r   r   r  r  ·  sü  € € € € € à„^ðð ñ „^ðð „^ðð ñ „^ðð
*ð 
*ð 
*ð*ð *ð *ð
*ð 
*ð 
*ð	*ð 	*ð 	*ð*ð *ð *ð*ð *ð *ðNð Nð Nð(<ð <ð <ðAð Að Að4>ð >ð >ð	>ð 	>ð 	>ð
ð 
ð 
ð*ð *ð *ð*ð *ð *ð"0ð 0ð 0ð.=ð =ð =ð.ð .ð .ð *ð *ð *ð0ð 0ð 0ð0ð 0ð 0ð>ð >ð >ð0ð 0ð 0ð> „[×Ò˜W¨¨h¬kÐ':¸TÀ8Ä;Ð<OÐ&PÑQÔQð0ð 0ñ RÔQð0ð0ð 0ð 0ð0ð 0ð 0ð 0ð 0r   r  c                   óx   — e Zd Zej        d„ ¦   «         Zej        d„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
S )ÚTestDataFrameQueryNumExprPythonc                 ó   — dS r  r   r0   s    r   r"   z&TestDataFrameQueryNumExprPython.engine6  r  r   c                 ó   — dS ©Nr   r   r0   s    r   r   z&TestDataFrameQueryNumExprPython.parser:  r  r   c                 ó�  — t          t          j                             d¦  «                             d¦  «        ¦  «        }t          dd¬¦  «        |d<   t          dd¬¦  «        |d<   t          d	d¬¦  «        |d
<   |                     d||¬¦  «        }||j        dk     d|j        k     z           }t          j
        ||¦  «         d S )Nr-   r
  r  r~   r  r  r  r  r  r  ú)(dates1 < 20130101) & (20130101 < dates3)r–   r  r  r  s         r   r  zCTestDataFrameQueryNumExprPython.test_date_query_no_attribute_access>  sÆ   € Ý•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ø�hŠhØ7ÀÈvð ñ 
ô 
ˆð �B”I 
Ò*¨z¸B¼IÒ/EÑFÔGˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 óÀ  — d}t          t          j                             d¦  «                             |df¦  «        ¦  «        }t          d|¬¦  «        |d<   t          d|¬¦  «        |d<   t          d	|¬¦  «        |d
<   t          j        |j        t          j                             d¦  «                             |¦  «        dk    df<   t          j        |j        t          j                             d¦  «                             |¦  «        dk    d
f<   | 	                    d||¬¦  «        }||j
        dk     d|j        k     z           }t          j        ||¦  «         d S )Nr�   r-   r.   r  r  r  r  r  r  r  r½   r™  r–   r  r  r  s          r   r   z8TestDataFrameQueryNumExprPython.test_date_query_with_NaTI  s;  € ØˆÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÀAÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰ÝEGÄVˆŒ�rŒy×$Ò$ QÑ'Ô'×.Ò.¨qÑ1Ô1°CÒ7¸ÐAÑBÝEGÄVˆŒ�rŒy×$Ò$ QÑ'Ô'×.Ò.¨qÑ1Ô1°CÒ7¸ÐAÑBØ�hŠhØ7ÀÈvð ñ 
ô 
ˆð �B”I 
Ò*¨z¸B¼IÒ/EÑFÔGˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó¨  — d}t          t          j                             d¦  «                             |df¦  «        ¦  «        }t          d|¬¦  «        |d<   t          d|¬¦  «        |d<   |                     dd	d	¬
¦  «        }|�J ‚|                     d||¬¦  «        }||j        dk     d|j	        k     z           }t          j        ||¦  «         d S )Nr�   r-   r.   r  r  r  r  r  Tr"  ú((index < 20130101) & (20130101 < dates3)r–   r  r&  r(  s           r   r*  z5TestDataFrameQueryNumExprPython.test_date_index_queryW  sÜ   € ØˆÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÀAÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰Ø—|’| H°dÀ�|ÑFÔFˆØÐ#Ð#Ð#Ø�hŠhØ6¸vÈfð ñ 
ô 
ˆð �B”H˜zÒ)¨j¸2¼9Ò.DÑEÔFˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó  — d}t          t          j                             d¦  «                             |df¦  «        ¦  «                             dt          i¦  «        }t          d|¬¦  «        |d<   t          d|¬¦  «        |d	<   t          j	        |j
        d
<   |                     ddd¬¦  «        }|�J ‚|                     d||¬¦  «        }||j        dk     d|j        k     z           }t          j        ||¦  «         d S )Nr�   r-   r.   r   r  r  r  r  r  r,  Tr"  rœ  r–   r  r-  r(  s           r   r0  z>TestDataFrameQueryNumExprPython.test_date_index_query_with_NaTd  s  € Øˆå•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÀAÀÑGÔGÑHÔH×OÒOØ•ˆKñ
ô 
ˆõ " *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰ÝœˆŒ�‰Ø—|’| H°dÀ�|ÑFÔFˆØÐ#Ð#Ð#Ø�hŠhØ6¸vÈfð ñ 
ô 
ˆð �B”H˜zÒ)¨j¸2¼9Ò.DÑEÔFˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   c                 óD  — d}t          t          j                             d¦  «                             |df¦  «        ¦  «        }t          d|¬¦  «        |d<   t          d|¬¦  «        |d<   t          j        |j        t          j                             d¦  «                             |¦  «        d	k    df<   | 	                    dd
d
¬¦  «        }|�J ‚d}t          j        t          |¬¦  «        5  |                     d||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   r-   r.   r  r  r  r  r  r½   Tr"  ú"'BoolOp' nodes are not implementedrL   r%  r–   )r   rq   r€   r�   r‚   r
   r¢   r  r  r'  r$   rN   ÚNotImplementedErrorr>   )r1   r"   r   rX   r2   r)  rP   s          r   r3  zITestDataFrameQueryNumExprPython.test_date_index_query_with_NaT_duplicatesu  sg  € ØˆÝ•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÀAÀÑGÔGÑHÔHˆÝ! *°aÐ8Ñ8Ô8ˆˆ8‰Ý! *°aÐ8Ñ8Ô8ˆˆ8‰ÝEGÄVˆŒ�rŒy×$Ò$ QÑ'Ô'×.Ò.¨qÑ1Ô1°CÒ7¸ÐAÑBØ—|’| H°dÀ�|ÑFÔFˆØÐ#Ð#Ð#Ø3ˆÝŒ]Õ.°cÐ:Ñ:Ô:ð 	Pð 	PØ�HŠHÐ0¸ÈˆHÑOÔOÐOð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Ps   Ã/DÄDÄDc                 ó’  — d}t          j        d||¬¦  «        }|dk    sJ ‚t          t          j                             d¦  «                             d¦  «        ¦  «        }t          t          j                             d¦  «                             d¦  «        ¦  «        }d}t          j        t          |¬¦  «        5  | 
                    d||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  | 
                    d
||¬¦  «         d d d ¦  «         n# 1 swxY w Y   ||dk    |dk    z           }t          j        d||¬¦  «        }t          j        ||¦  «         ||dk    |dk    z  ||dk             dk    z           }t          j        d||¬¦  «        }t          j        ||¦  «         d S )Nr,   zx + 1r–   r-   r
  z5The '@' prefix is only supported by the pandas parserrL   r_  rc  z(df>0) & (df2>0)r   zdf[(df > 0) & (df2 > 0)]z+df[(df > 0) & (df2 > 0) & (df[df > 0] > 0)])r¢   rA   r   rq   r€   r�   r‚   r$   rN   rF  r>   r   r?   r@   )	r1   r"   r   r   rD   r2   r`  rP   r{   s	            r   ra  z1TestDataFrameQueryNumExprPython.test_nested_scope�  sX  € àˆÝ”˜¨¸Ð?Ñ?Ô?ˆØ˜Š{ˆ{ˆ{ˆ{å•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑGÔGÑHÔHˆÝ�œ	×-Ò-¨aÑ0Ô0×@Ò@ÀÑHÔHÑIÔIˆð GˆÝŒ]�;¨cÐ2Ñ2Ô2ð 	Ið 	IØ�HŠHÐ)°&ÀˆHÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Iõ Œ]Õ1Ð9SÐTÑTÔTð 	Gð 	GØ�HŠHÐ'°¸vˆHÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð �r˜A’v #¨¢'Ñ*Ô+ˆÝ”Ð3¸FÈ6ÐRÑRÔRˆÝ
Ô˜h¨Ñ/Ô/Ð/à�r˜A’v #¨¢'Ñ*¨b°°a²¬j¸1ªnÑ=Ô>ˆÝ”Ø9À&ÐQWð
ñ 
ô 
ˆõ 	Ô˜h¨Ñ/Ô/Ð/Ð/Ð/s$   Â=C"Ã"C&Ã)C&ÄD-Ä-D1Ä4D1c                 ó\  — t          g d¢g d¢dœ¦  «        }d}t          j        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr+   rº   )ÚminÚmaxzMVariables in expression \"\(min\) == \(1\)\" overlap with builtins: \('min'\)rL   zmin == 1zMVariables in expression \"\(max\) == \(1\)\" overlap with builtins: \('max'\)zmax == 1)r   r$   rN   r   r>   )r1   r2   Úregex_to_matchs      r   Ú+test_query_numexpr_with_min_and_max_columnszKTestDataFrameQueryNumExprPython.test_query_numexpr_with_min_and_max_columnsœ  s@  € Ý˜y˜y˜y°°°Ð;Ð;Ñ<Ô<ˆð0ð 	õ Œ]Õ1¸ÐHÑHÔHð 	!ð 	!Ø�HŠH�ZÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð0ð 	õ Œ]Õ1¸ÐHÑHÔHð 	!ð 	!Ø�HŠH�ZÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s#   ´AÁAÁAÁ>B!Â!B%Â(B%N)rR   rS   rT   r$   rU   r"   r   r  r   r*  r0  r3  ra  r¦  r   r   r   r”  r”  4  s¸   € € € € € à„^ðð ñ „^ðð „^ðð ñ „^ðð	*ð 	*ð 	*ð*ð *ð *ð*ð *ð *ð*ð *ð *ð"
Pð 
Pð 
Pð0ð 0ð 0ð6!ð !ð !ð !ð !r   r”  c                   óT   — e Zd Zej        d„ ¦   «         Zej        d„ ¦   «         Zd„ ZdS )ÚTestDataFrameQueryPythonPandasc                 ó   — dS r—  r   r0   s    r   r"   z%TestDataFrameQueryPythonPandas.engine®  r  r   c                 ó   — dS r  r   r0   s    r   r   z%TestDataFrameQueryPythonPandas.parser²  r  r   c                 óF  — dx}}t          t          j                             d¦  «                             ||df¬¦  «        t          d¦  «        ¬¦  «        }d|j        _        ||j        dk             }|                     d	||¬
¦  «        }t          j
        ||¦  «         d S ©Nr�   r-   r.   rË   rM  rl   rR  r~   rN  r–   ©r   rq   r€   r�   rO  rn   ri   r±   r>   r?   r@   ©r1   r"   r   rX   ry   r2   r{   rD   s           r   rS  z1TestDataFrameQueryPythonPandas.test_query_builtin¶  óœ   € Øˆ
ˆˆAÝÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°q¸!°fÐ-Ñ=Ô=ÅtÈEÁ{Ä{ð
ñ 
ô 
ˆð ˆŒŒØ�b”h ’lÔ#ˆØ—’˜)¨F¸6�ÑBÔBˆÝ
Ô˜h¨Ñ/Ô/Ð/Ð/Ð/r   N©rR   rS   rT   r$   rU   r"   r   rS  r   r   r   r¨  r¨  ­  ó[   € € € € € Ø„^ðð ñ „^ðð „^ðð ñ „^ðð	0ð 	0ð 	0ð 	0ð 	0r   r¨  c                   óT   — e Zd Zej        d„ ¦   «         Zej        d„ ¦   «         Zd„ ZdS )ÚTestDataFrameQueryPythonPythonc                 ó   — dS r—  r   r0   s    r   r"   z%TestDataFrameQueryPythonPython.engineÃ  r  r   c                 ó   — dS r—  r   r0   s    r   r   z%TestDataFrameQueryPythonPython.parserÇ  r  r   c                 óF  — dx}}t          t          j                             d¦  «                             ||df¬¦  «        t          d¦  «        ¬¦  «        }d|j        _        ||j        dk             }|                     d	||¬
¦  «        }t          j
        ||¦  «         d S r¬  r­  r®  s           r   rS  z1TestDataFrameQueryPythonPython.test_query_builtinË  r¯  r   Nr°  r   r   r   r³  r³  Â  r±  r   r³  c            
       ó2  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j
                             ddej        gd	ej        gd
ej        gdej        gg¦  «        d„ ¦   «         Zd„ Zd„ Ze	j
                             dg d¢g d¢g d¢g d¢g d¢g d¢g¦  «        d„ ¦   «         ZdS )ÚTestDataFrameQueryStringsc           	      ó”  — t          t          j                             d¦  «                             d¦  «        dg¬¦  «        }t          t          d¦  «        ¦  «        |d<   ||j        dk             }|dk    r¡d}d	}|gdz  |gdz  z   }|d d d
…         }d\  }	}
d|	|
gz  }d}t          |||¦  «        D ]c\  }}}|› d|› d|› �}t          j
        t          |¬¦  «        5  |                     |||d|j        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œdd S |                     d||¬¦  «        }t          j        ||¦  «         |                     d||¬¦  «        }t          j        ||¦  «         t          j        |||j                             dg¦  «                 ¦  «         ||j        dk             }|                     d||¬¦  «        }t          j        ||¦  «         |                     d||¬¦  «        }t          j        ||¦  «         t          j        |||j                             dg¦  «                  ¦  «         d S )Nr-   ©r�   r,   rˆ   rl   Ú
aabbccddeeÚstringsr‡   r   z"a"rk   ©ry  rz  ú$'(Not)?In' nodes are not implementedú rL   )r"   r   Ú
local_dictz"a" == stringsr–   zstrings == "a"zstrings != "a"z"a" != strings)r   rq   r€   r�   r‚   r	   rn   r¼  Úzipr$   rN   r   r>   r?   r@   rÚ   )r1   r   r"   r2   r™   ÚcolÚlstÚlhsÚrhsr‘  r’  ÚopsrP   ÚlhÚop_ÚrhÚexr˜   s                     r   Útest_str_query_methodz/TestDataFrameQueryStrings.test_str_query_methodØ  s­  € Ý•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑHÔHÐSVÐRWÐXÑXÔXˆÝ�t LÑ1Ô1Ñ2Ô2ˆˆ9‰Ø�B”J #Ò%Ô&ˆà�XÒÐØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ�d�d˜�d”)ˆCà‰FˆB�Ø˜˜B�x‘.ˆCØ9ˆCå" 3¨¨SÑ1Ô1ð ð ‘��C˜ØÐ'Ð'˜SÐ'Ð' 2Ð'Ð'�Ý”]Õ#6¸cÐBÑBÔBð ð Ø—H’HØØ%Ø%Ø$-¨r¬zÐ#:ð	 ñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øðð ð —(’(Ð+°FÀ6�(ÑJÔJˆCÝÔ! # vÑ.Ô.Ð.à—(’(Ð+°FÀ6�(ÑJÔJˆCÝÔ! # vÑ.Ô.Ð.ÝÔ! # r¨"¬*¯/ª/¸3¸%Ñ*@Ô*@Ô'AÑBÔBÐBà˜œ
 cÒ)Ô*ˆFØ—(’(Ð+°FÀ6�(ÑJÔJˆCÝÔ! # vÑ.Ô.Ð.à—(’(Ð+°FÀ6�(ÑJÔJˆCÝÔ! # vÑ.Ô.Ð.ÝÔ! # r¨2¬:¯?ª?¸C¸5Ñ+AÔ+AÐ*AÔ'BÑCÔCÐCÐCÐCs   Ã!DÄD	ÄD	c                 óø  — t          t          j                             d¦  «                             d¦  «        dg¬¦  «        }t          t          d¦  «        ¦  «        |d<   ||j                             ddg¦  «                 }|dk    r™d}d	}|gdz  |gdz  z   }|d d d
…         }d\  }	}
d|	|
gz  }d}t          |||¦  «        D ][\  }}}|› d|› d|› �}t          j        t          |¬¦  «        5  |                     |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œ\d S |                     d||¬¦  «        }t          j        ||¦  «         |                     d||¬¦  «        }t          j        ||¦  «         ||j                             ddg¦  «                  }|                     d||¬¦  «        }t          j        ||¦  «         |                     d||¬¦  «        }t          j        ||¦  «         d S )Nr-   rº  rˆ   rl   r»  r¼  r‡   r   z
["a", "b"]rk   r½  r¾  r¿  rL   r–   zstrings == ["a", "b"]z["a", "b"] == stringszstrings != ["a", "b"]z["a", "b"] != strings)r   rq   r€   r�   r‚   r	   rn   r¼  rÚ   rÁ  r$   rN   r   r>   r?   r@   )r1   r   r"   r2   r™   rÂ  rÃ  rÄ  rÅ  r‘  r’  rÆ  rP   rÇ  Úops_rÉ  rÊ  r˜   s                     r   Útest_str_list_query_methodz4TestDataFrameQueryStrings.test_str_list_query_method  s]  € Ý•r”y×,Ò,¨QÑ/Ô/×?Ò?ÀÑHÔHÐSVÐRWÐXÑXÔXˆÝ�t LÑ1Ô1Ñ2Ô2ˆˆ9‰Ø�B”J—O’O S¨# JÑ/Ô/Ô0ˆà�XÒÐØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ�d�d˜�d”)ˆCà‰FˆB�Ø˜˜B�x‘.ˆCØ9ˆCå # C¨¨cÑ 2Ô 2ð ?ð ?‘��D˜"ØÐ(Ð(˜TÐ(Ð( BÐ(Ð(�Ý”]Õ#6¸cÐBÑBÔBð ?ð ?Ø—H’H˜R¨°v�HÑ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?øð?ð ?ð
 —(’(Ð2¸6È&�(ÑQÔQˆCÝÔ! # vÑ.Ô.Ð.à—(’(Ð2¸6È&�(ÑQÔQˆCÝÔ! # vÑ.Ô.Ð.à˜œŸš¨#¨s¨Ñ4Ô4Ð4Ô5ˆFà—(’(Ð2¸6È&�(ÑQÔQˆCÝÔ! # vÑ.Ô.Ð.à—(’(Ð2¸6È&�(ÑQÔQˆCÝÔ! # vÑ.Ô.Ð.Ð.Ð.s   Ã0DÄD	ÄD	c           	      óÚ  — t          t          d¦  «        t          d¦  «        t          j                             d¦  «                             dd¬¦  «        t          j                             d¦  «                             dd¬¦  «        dœ¦  «        }|d	k    r·|                     d
||¬¦  «        }||j                             |j	        ¦  «                 }t          j        ||¦  «         |                     d||¬¦  «        }||j                             |j	        ¦  «        |j        |j        k     z           }t          j        ||¦  «         d S d}t          j        t           |¬¦  «        5  |                     d
||¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t           |¬¦  «        5  |                     d||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚaaaabbbbccccÚaabbccddeeffr-   r~   é   rË   é	   ©r‡   rˆ   r§   r2  r   za in brÕ   za in b and c < dr¾  rL   rŸ  )r   rn   rq   r€   r�   rO  r>   r‡   rÚ   rˆ   r?   r@   r§   r2  r$   rN   r   )r1   r   r"   r2   r˜   r  rP   s          r   Útest_query_with_string_columnsz8TestDataFrameQueryStrings.test_query_with_string_columns$  si  € Ýå˜.Ñ)Ô)Ý˜.Ñ)Ô)Ý”Y×*Ò*¨1Ñ-Ô-×6Ò6°q¸rÐ6ÑBÔBÝ”Y×*Ò*¨1Ñ-Ô-×6Ò6°q¸rÐ6ÑBÔBð	ð ñ
ô 
ˆð �XÒÐØ—(’(˜8¨F¸6�(ÑBÔBˆCØ�r”t—y’y ¤‘”Ô'ˆEÝÔ! # uÑ-Ô-Ð-à—(’(Ð-°fÀV�(ÑLÔLˆCØ�r”t—y’y ¤‘”¨"¬$°´ª+Ñ6Ô7ˆEÝÔ! # uÑ-Ô-Ð-Ð-Ð-à9ˆCÝ”Õ2¸#Ð>Ñ>Ô>ð Að AØ—’˜¨&¸�Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Að 8ˆCÝ”Õ2¸#Ð>Ñ>Ô>ð Kð KØ—’Ð+°FÀ6�ÑJÔJÐJðKð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kð Kð Ks$   Å-FÆFÆFÆ:G Ç G$Ç'G$c           	      ó6  — t          t          d¦  «        t          d¦  «        t          j                             d¦  «                             dd¬¦  «        t          j                             d¦  «                             dd¬¦  «        dœ¦  «        }|                     d	||¬
¦  «        }||j        |j        k             }t          j
        ||¦  «         |                     d||¬
¦  «        }||j        |j        k             }t          j
        ||¦  «         d S )NrÐ  rÑ  r-   r~   rÒ  rË   rÓ  rÔ  za == brÕ   za != b)r   rn   rq   r€   r�   rO  r>   r‡   rˆ   r?   r@   )r1   r   r"   r2   r˜   rß   s         r   Útest_object_array_eq_nez1TestDataFrameQueryStrings.test_object_array_eq_ne>  sý   € Ýå˜.Ñ)Ô)Ý˜.Ñ)Ô)Ý”Y×*Ò*¨1Ñ-Ô-×6Ò6°q¸rÐ6ÑBÔBÝ”Y×*Ò*¨1Ñ-Ô-×6Ò6°q¸rÐ6ÑBÔBð	ð ñ
ô 
ˆð �hŠh�x¨°vˆhÑ>Ô>ˆØ�”˜œ’ÔˆÝ
Ô˜c 3Ñ'Ô'Ð'à�hŠh�x¨°vˆhÑ>Ô>ˆØ�”˜œ’ÔˆÝ
Ô˜c 3Ñ'Ô'Ð'Ð'Ð'r   c                 óº  — t          |¦  «         d„ t          dd¦  «        D ¦   «         dz  }t          ddd¬¦  «        }t          d	dd¬¦  «        }t          t	          j        dd
¦  «                             d¦  «        ||                     |¦  «        dœ¦  «        }||j        dk             }| 	                    d||¬¦  «        }t          j        ||¦  «         d S )Nc                 ó(   — g | ]}d D ]
}d|› d|› �‘ŒŒS ))ÚloadÚexitzpage r¿  r   )rì   rX   Úacts      r   rî   zLTestDataFrameQueryStrings.test_query_with_nested_strings.<locals>.<listcomp>Q  sK   € ð 
ð 
ð 
Ø"#Ð>Nð
ð 
Ø7:Ð�AÐÐ˜ÐÐð
ð 
ð 
ð 
r   r,   rY   r-   z2014-01-01 0:00:01Ú30sr»   )r…  r  z2014-02-01 1:00:01é   )ÚidÚeventÚ	timestampz"page 1 load"z'"page 1 load"' in eventrÕ   )r&   rm   r
   r   rq   rç   ÚrepeatÚappendrà  r>   r?   r@   )	r1   r   r"   ÚeventsÚstamps1Ústamps2r2   r{   r˜   s	            r   Útest_query_with_nested_stringsz8TestDataFrameQueryStrings.test_query_with_nested_stringsO  sô   € Ý  Ñ(Ô(Ð(ð
ð 
Ý',¨Q°¡{¤{ð
ñ 
ô 
àñˆõ Ð1¸ÀqÐIÑIÔIˆÝÐ1¸ÀqÐIÑIÔIˆÝå”i  1‘o”o×,Ò,¨QÑ/Ô/ØØ$Ÿ^š^¨GÑ4Ô4ðð ñ
ô 
ˆð �b”h /Ò1Ô2ˆØ�hŠhÐ5¸fÈVˆhÑTÔTˆÝ
Ô˜h¨Ñ,Ô,Ð,Ð,Ð,r   c                 óÌ   — t          |¦  «         t          g d¢g d¢dœ¦  «        }|                     d||¬¦  «        }||j        dk             }t	          j        ||¦  «         d S )N)r‡   rˆ   útest & testr+   r¼   za == "test & test"rÕ   ré  rq  )r1   r   r"   r2   r˜   r  s         r   Ú(test_query_with_nested_special_characterzBTestDataFrameQueryStrings.test_query_with_nested_special_characterb  sr   € Ý  Ñ(Ô(Ð(ÝÐ6Ð6Ð6¸Y¸Y¸YÐGÐGÑHÔHˆØ�hŠhÐ+°FÀ6ˆhÑJÔJˆØ�2”4˜=Ò(Ô)ˆÝ
Ô˜c 5Ñ)Ô)Ð)Ð)Ð)r   zop, funcr9  r:  r;  r<  c                 ó   — t          t          j                             d¦  «                             t          d¦  «        d¦  «        ¦  «        }t          t          j        |j        ¦  «        ¦  «        }t          ||dœ¦  «        }| 	                    d|› d�||¬¦  «        }| ||j
        d¦  «                 }	t          j        ||	¦  «         d S )	Nr-   ÚabcderI  )ÚXr«   zX z "d"r–   r2  )r	   rq   r€   r�   r×   rn   rç   rÌ   r   r>   rí  r?   r@   )
r1   r   r"   rw   Úfuncr‡   rˆ   r2   r˜   r{   s
             r   Útest_query_lex_compare_stringsz8TestDataFrameQueryStrings.test_query_lex_compare_stringsi  s³   € õ •2”9×(Ò(¨Ñ+Ô+×2Ò2µ4¸±=´=À"ÑEÔEÑFÔFˆÝ•2”9˜QœVÑ$Ô$Ñ%Ô%ˆÝ˜Q QÐ'Ð'Ñ(Ô(ˆà�hŠh�}˜B�}�}�}¨V¸FˆhÑCÔCˆØ�d�d˜2œ4 ‘o”oÔ&ˆÝ
Ô˜c 8Ñ,Ô,Ð,Ð,Ð,r   c                 óf  — d}t           j                             d¦  «                             ddt	          |¦  «        f¬¦  «                             t          ¦  «        }t          ||¬¦  «        }|                     d||¬¦  «        }||j	        |j
        z           }t          j        ||¦  «         d S )N)ÚbidÚbidsizeÚaskÚasksizer-   r,   rË   rl   z	bid & askr–   )rq   r€   r�   rO  r=  r.  Úboolr   r>   rñ  ró  r?   r@   )r1   r   r"   rj   Údatar2   r˜   r{   s           r   Ú"test_query_single_element_booleansz<TestDataFrameQueryStrings.test_query_single_element_booleans{  s�   € Ø4ˆÝŒy×$Ò$ QÑ'Ô'×0Ò0°¸!½SÀ¹\¼\Ð9JÐ0ÑKÔK×RÒRÕSWÑXÔXˆÝ�t WÐ-Ñ-Ô-ˆØ�hŠh�{¨6¸&ˆhÑAÔAˆØ�b”f˜rœv‘oÔ&ˆÝ
Ô˜c 8Ñ,Ô,Ð,Ð,Ð,r   c                 óÐ   — t          |¦  «         t          g d¢g d¢dœ¦  «        }||j        dk             }d}|                     d||¬¦  «        }t	          j        ||¦  «         d S )N)úBUD USrù  úIBM USrú  )gÍÌÌÌÌl[@g®Gázn[@gš™™™™éf@g33333ëf@)ÚSymbolÚPricerù  zSymbol == @symbrÕ   )r&   r   rû  r>   r?   r@   )r1   r   r"   r2   ÚeÚsymbrD  s          r   Ú!test_query_string_scalar_variablez;TestDataFrameQueryStrings.test_query_string_scalar_variableƒ  s„   € Ý  Ñ(Ô(Ð(ÝàBÐBÐBØ9Ð9Ð9ðð ñ
ô 
ˆð ˆrŒy˜HÒ$Ô%ˆØˆØ�HŠHÐ&¨v¸fˆHÑEÔEˆÝ
Ô˜a Ñ#Ô#Ð#Ð#Ð#r   Úin_list)NÚasdfÚghjk)r  Nr  )r  r  N)NNr  )r  NN)NNNc                 óZ  — d}d}d„ t          |¦  «        D ¦   «         }t          d|id¬¦  «        }|j                             d¦  «        |_        t          d|id¬¦  «        }t	          t          |j        ¦  «        |j        j        ¬¦  «        |_        |                     d||¬	¦  «        }||d         d
k             }|                     d||¬	¦  «        }	t          j	        ||¦  «         t          j	        ||¦  «         t          j	        ||	¦  «         t          j	        ||	¦  «         d S )Nr   r   c                 ó&   — i | ]\  }}|d k    ¯||“ŒS )r  r   )rì   rC  Úvalues      r   ú
<dictcomp>zMTestDataFrameQueryStrings.test_query_string_null_elements.<locals>.<dictcomp>Ÿ  s#   € ÐSÐSÐS¡  EÀ5ÈFÂ?À?�A�uÀ?À?À?r   r‡   Ústring©ÚdtypeÚint64za == 'asdf'rÕ   r  za <= 'asdf')
Ú	enumerater   ri   r.  r   rn   r	  r>   r?   r@   )
r1   r   r   r"   r{   Údf_expectedr2   rÝ   rÞ   Úres3s
             r   Útest_query_string_null_elementsz9TestDataFrameQueryStrings.test_query_string_null_elements�  s!  € ð ˆØˆØSÐS­Y°wÑ-?Ô-?ÐSÑSÔSˆå  h °xÐ@Ñ@Ô@ˆØ'Ô-×4Ò4°WÑ=Ô=ˆÔÝ˜˜W�~¨XÐ6Ñ6Ô6ˆÝ�˜bœh™œ¨r¬x¬~Ð>Ñ>Ô>ˆŒØ�xŠx˜¨f¸VˆxÑDÔDˆØ�"�S”'˜VÒ#Ô$ˆØ�xŠx˜¨f¸VˆxÑDÔDˆÝ
Ô˜d KÑ0Ô0Ð0Ý
Ô˜d DÑ)Ô)Ð)Ý
Ô˜d DÑ)Ô)Ð)Ý
Ô˜d DÑ)Ô)Ð)Ð)Ð)r   N)rR   rS   rT   rË  rÎ  rÕ  r×  rç  rê  r$   r¾   rÅ   r�  ÚltÚgtÚleÚgerï  r÷  rÿ  r  r   r   r   r¸  r¸  ×  sb  € € € € € ð'Dð 'Dð 'DðR!/ð !/ð !/ðFKð Kð Kð4(ð (ð (ð"-ð -ð -ð&*ð *ð *ð „[×ÒØà�(”+ÐØ�(”+ÐØ�8”;ÐØ�8”;Ðð		
ñô ð-ð -ñô ð-ð-ð -ð -ð$ð $ð $ð „[×ÒØà"Ð"Ð"Ø"Ð"Ð"Ø"Ð"Ð"Ø Ð Ð Ø Ð Ð ØÐÐð	
ñ
ô 
ð*ð *ñ
ô 
ð*ð *ð *r   r¸  c                   ó†   — e Zd Zej        d„ ¦   «         Zd„ Zd„ Zej         	                    dg d¢¦  «        d„ ¦   «         Z
dS )ÚTestDataFrameEvalWithFramec                 óž   — t          t          j                             d¦  «                             d¦  «        t          d¦  «        ¬¦  «        S )Nr-   rê   rM  rl   )r   rq   r€   r�   r‚   rn   r0   s    r   Úframez TestDataFrameEvalWithFrame.frame¯  sB   € åÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÅtÈEÁ{Ä{ð
ñ 
ô 
ð 	
r   c                 ó~   — |                      d||¬¦  «        }|j        |j        z   }t          j        ||¦  «         d S )NrŸ   r–   ©rA   r‡   rˆ   r?   rB   ©r1   r  r   r"   r˜   r™   s         r   Útest_simple_exprz+TestDataFrameEvalWithFrame.test_simple_exprµ  s@   € Ø�jŠj˜¨¸ˆjÑ?Ô?ˆØ”˜5œ7Ñ"ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 óœ   — |                      d||¬¦  «        }|j        |j        dk              |j        z   }t          j        ||¦  «         d S )Nza[a < 1] + br–   r,   r  r  s         r   Útest_bool_arith_exprz/TestDataFrameEvalWithFrame.test_bool_arith_exprº  sK   € Ø�jŠj˜°¸vˆjÑFÔFˆØ”˜œ 1šÔ%¨¬Ñ/ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   rw   )rZ   r]   r`   rc   c                 óÖ   — t          ddgddgdœ¦  «        }d}t          j        t          |¬¦  «        5  |                     d|› d	�||¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr,   r-   r§   r2  r¼   z:unsupported operand type\(s\) for .+: '.+' and '.+'|CannotrL   r|  z br–   )r   r$   rN   r>  rA   )r1   r   r"   rw   r2   rP   s         r   Ú%test_invalid_type_for_operator_raisesz@TestDataFrameEvalWithFrame.test_invalid_type_for_operator_raises¿  s½   € å˜a ˜V¨3°¨*Ð5Ð5Ñ6Ô6ˆØKˆåŒ]�9¨CÐ0Ñ0Ô0ð 	?ð 	?Ø�GŠG�K˜�K�K�K¨°vˆGÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   ´AÁA"Á%A"N)rR   rS   rT   r$   rU   r  r  r  r¾   rÅ   r  r   r   r   r  r  ®  s‚   € € € € € Ø„^ð
ð 
ñ „^ð
ð
,ð ,ð ,ð
,ð ,ð ,ð
 „[×Ò˜TÐ#7Ð#7Ð#7Ñ8Ô8ð?ð ?ñ 9Ô8ð?ð ?ð ?r   r  c                   óZ  — e Zd Zej        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ej$         %                    d g d!¢¦  «        d"„ ¦   «         Z&d#„ Z'd$„ Z(d%„ Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.d+„ Z/d,„ Z0d-„ Z1d.„ Z2ej$         %                    d/g d0¢¦  «        d1„ ¦   «         Z3ej$         %                    d2d3d4g¦  «        ej$         %                    d/g d0¢¦  «        d5„ ¦   «         ¦   «         Z4d6„ Z5d7S )8Ú!TestDataFrameQueryBacktickQuotingc                 óú   — t          i dg d¢“dg d¢“dg d¢“dg d¢“d	g d
¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d ¢“d!g d"¢“g d#¢g d$¢g d%¢g d¢g d¢g d&¢g d'¢d(œ¥¦  «        S ))zÄ
        Yields a dataframe with strings that may or may not need escaping
        by backticks. The last two columns cannot be escaped by backticks
        and should raise a ValueError.
        r*   r+   úB B)r.   r-   r,   úC Crº   úC  C)rÞ  rY   r.   ÚC_C)é   rÓ  r�   úD_D D)é   r,   rv  úE.E)r»   r.   r~   úF-F)r&  r,   r�   Ú1e1)r-   rY   r&  Údef)r�   r(  r-   úA (x))rY   r,   r.   zB(x))r,   r,   r~   zB (x))r-   rÞ  rY   õ     &^ :!â‚¬$?(} >    <++*''  )r-   r~   r»   r’   )r�   r(  r,   ú A)rY   rÞ  rÓ  ú  ©r,   r-   r,   )r»   r.   r,   )rÓ  r,   r&  )r&  rÞ  r»   )r-   rY   r~   )r~   rÞ  rÓ  )úit'súthat'sõ   â˜ºõ
   xy ï¼ˆzï¼‰õ   xy ï¼ˆz\uff09úfoo#barr,   r/   r0   s    r   r2   z$TestDataFrameQueryBacktickQuoting.dfÉ  si  € õ ðØ�Y�Y�Yðà�y�y�yðð �y�y�yðð ˜	˜	˜	ð	ð
 �z�z�zðð ˜˜˜ðð �y�y�yðð �z�z�zðð �y�y�yðð �{�{�{ðð ˜˜˜ðð ˜	˜	˜	ðð ˜˜˜ðð /°	°	°	ðð �K�K�Kðð  �i�i�ið!ð" �i�i�ið#ð$ "˜	˜	Ø#˜)˜)Ø �y�yØ'˜i˜iØ"+ ) )Ø$˜9˜9Ø�9�9ð1ð ð ñ
ô 
ð 	
r   c                 ó~   — |                      d¦  «        }|d|d         k              }t          j        ||¦  «         d S )Nz	1 < `B B`r,   r"  ©r>   r?   r@   ©r1   r2   r˜   r™   s       r   Ú#test_single_backtick_variable_queryzETestDataFrameQueryBacktickQuoting.test_single_backtick_variable_queryí  s>   € Ø�hŠh�{Ñ#Ô#ˆØ�A˜˜5œ	’MÔ"ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó˜   — |                      d¦  «        }|d|d         k     d|d         k     z           }t          j        ||¦  «         d S )Nz1 < `B B` and 4 < `C C`r,   r"  rY   r#  r9  r:  s       r   Ú!test_two_backtick_variables_queryzCTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_queryò  sL   € Ø�hŠhÐ0Ñ1Ô1ˆØ�Q˜˜Eœ’] q¨2¨e¬9¢}Ñ5Ô6ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )Nz	A + `B B`r*   r"  ©rA   r?   rB   r:  s       r   Ú"test_single_backtick_variable_exprzDTestDataFrameQueryBacktickQuoting.test_single_backtick_variable_expr÷  ó>   € Ø�gŠg�kÑ"Ô"ˆØ�C”˜2˜eœ9Ñ$ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )Nz`B B` + `C C`r"  r#  r?  r:  s       r   Ú test_two_backtick_variables_exprzBTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_exprü  s>   € Ø�gŠg�oÑ&Ô&ˆØ�E”˜R œYÑ&ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )Nz	`C_C` + Ar%  r*   r?  r:  s       r   Ú test_already_underscore_variablezBTestDataFrameQueryBacktickQuoting.test_already_underscore_variable  s>   € Ø�gŠg�kÑ"Ô"ˆØ�E”˜R œWÑ$ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )NzC_C + `C C`r%  r#  r?  r:  s       r   Útest_same_name_but_underscoresz@TestDataFrameQueryBacktickQuoting.test_same_name_but_underscores  s>   € Ø�gŠg�mÑ$Ô$ˆØ�E”˜R œYÑ&ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )NzA + `D_D D`r*   r'  r?  r:  s       r   Ú!test_mixed_underscores_and_spaceszCTestDataFrameQueryBacktickQuoting.test_mixed_underscores_and_spaces  s>   € Ø�gŠg�mÑ$Ô$ˆØ�C”˜2˜gœ;Ñ&ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )Nz	A + `C_C`r*   r%  r?  r:  s       r   Ú'test_backtick_quote_name_with_no_spaceszITestDataFrameQueryBacktickQuoting.test_backtick_quote_name_with_no_spaces  rA  r   c                 óŽ   — |                      d¦  «        }|d         |d         z   |d         z
  }t          j        ||¦  «         d S )Nz`E.E` + `F-F` - Ar)  r*  r*   r?  r:  s       r   Útest_special_charactersz9TestDataFrameQueryBacktickQuoting.test_special_characters  sH   € Ø�gŠgÐ)Ñ*Ô*ˆØ�E”˜R œYÑ&¨¨C¬Ñ0ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )Nz	A + `1e1`r*   r+  r?  r:  s       r   Útest_start_with_digitz7TestDataFrameQueryBacktickQuoting.test_start_with_digit  rA  r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )Nz	A + `def`r*   r,  r?  r:  s       r   Útest_keywordz.TestDataFrameQueryBacktickQuoting.test_keyword  rA  r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nz`A` > 2r*   r-   r9  r:  s       r   Útest_unneeded_quotingz7TestDataFrameQueryBacktickQuoting.test_unneeded_quoting$  s=   € Ø�hŠh�yÑ!Ô!ˆØ�B�s”G˜a’K”ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nz`A (x)` > 2r-  r-   r9  r:  s       r   Útest_parenthesisz2TestDataFrameQueryBacktickQuoting.test_parenthesis)  s>   € Ø�hŠh�}Ñ%Ô%ˆØ�B�w”K !’OÔ$ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nz`` > 5r’   r~   r9  r:  s       r   Útest_empty_stringz3TestDataFrameQueryBacktickQuoting.test_empty_string.  s=   € Ø�hŠh�xÑ Ô ˆØ�B�r”F˜Q’J”ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nz
`C  C` > 5r$  r~   r9  r:  s       r   Útest_multiple_spacesz6TestDataFrameQueryBacktickQuoting.test_multiple_spaces3  s>   € Ø�hŠh�|Ñ$Ô$ˆØ�B�v”J ’NÔ#ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó|   — |                      d¦  «        }|d         |d         z   }t          j        ||¦  «         d S )Nz` A` + `  `r/  r0  r?  r:  s       r   Útest_start_with_spacesz8TestDataFrameQueryBacktickQuoting.test_start_with_spaces8  s>   € Ø�gŠg�mÑ$Ô$ˆØ�D”˜B˜tœHÑ$ˆÝ
Ô˜s FÑ+Ô+Ð+Ð+Ð+r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nz`1` == 7r,   rÞ  r9  r:  s       r   Ú	test_intsz+TestDataFrameQueryBacktickQuoting.test_ints=  s=   € Ø�hŠh�zÑ"Ô"ˆØ�B�q”E˜Q’J”ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nu"   `  &^ :!â‚¬$?(} >    <++*''  ` > 4r.  rY   r9  r:  s       r   Útest_lots_of_operators_stringz?TestDataFrameQueryBacktickQuoting.test_lots_of_operators_stringB  sB   € Ø�hŠhÐ;Ñ<Ô<ˆØ�BÐ5Ô6¸Ò:Ô;ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 óœ   — d}t          j        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz(module 'pandas' has no attribute 'thing'rL   z	@pd.thing)r$   rN   ÚAttributeErrorrA   )r1   r2   Úmessages      r   Útest_missing_attributez8TestDataFrameQueryBacktickQuoting.test_missing_attributeG  s’   € Ø<ˆÝŒ]�>°Ð9Ñ9Ô9ð 	!ð 	!Ø�GŠG�KÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   žAÁAÁAc                 óŠ   — |                      d¦  «        }||d         |d         k             }t          j        ||¦  «         d S )Nz`it's` > `that's`r2  r3  r9  r:  s       r   Ú
test_quotez,TestDataFrameQueryBacktickQuoting.test_quoteL  sD   € Ø�hŠhÐ*Ñ+Ô+ˆØ�B�v”J  H¤Ò-Ô.ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nu	   `â˜º` > 4r4  rY   r9  r:  s       r   Ú#test_character_outside_range_smileyzETestDataFrameQueryBacktickQuoting.test_character_outside_range_smileyQ  s>   € Ø�hŠh�{Ñ#Ô#ˆØ�B�u”I ’MÔ"ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nu   `xy ï¼ˆzï¼‰` == 2r5  r-   r9  r:  s       r   Ú*test_character_outside_range_2_byte_parenszLTestDataFrameQueryBacktickQuoting.test_character_outside_range_2_byte_parensV  sA   € à�hŠhÐ*Ñ+Ô+ˆØ�B�|Ô$¨Ò)Ô*ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nu   `xy ï¼ˆz\uff09` == 2r6  r-   r9  r:  s       r   Ú1test_character_outside_range_and_actual_backslashzSTestDataFrameQueryBacktickQuoting.test_character_outside_range_and_actual_backslash\  sB   € à�hŠhÐ.Ñ/Ô/ˆØ�BÐ*Ô+¨qÒ0Ô1ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó~   — |                      d¦  «        }||d         dk             }t          j        ||¦  «         d S )Nz`foo#bar` > 4r7  rY   r9  r:  s       r   Útest_hashtagz.TestDataFrameQueryBacktickQuoting.test_hashtagb  s?   € Ø�hŠh�Ñ'Ô'ˆØ�B�y”M AÒ%Ô&ˆÝ
Ô˜c 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }||d         dk              }t          j        ||¦  «         d S )Nr+   úa#rl   z`a#` < 2r-   ©r   r>   r?   r@   ©r1   r2   rD   r{   s       r   Ú1test_expr_with_column_name_with_hashtag_characterzSTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_hashtag_characterg  sR   € å�y¨4¨&Ð1Ñ1Ô1ˆØ—’˜*Ñ%Ô%ˆØ�b˜”h ’lÔ#ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }||d         dk              }t          j        ||¦  «         d S )Nr+   ro  rl   z`a#` < 2  # This is a commentr-   rp  rq  s       r   Útest_expr_with_commentz8TestDataFrameQueryBacktickQuoting.test_expr_with_commentn  sS   € å�y¨4¨&Ð1Ñ1Ô1ˆØ—’Ð9Ñ:Ô:ˆØ�b˜”h ’lÔ#ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }||d         dk              }t          j        ||¦  «         d S )Nr+   za`#brl   z`a``#b` < 2r-   rp  rq  s       r   Ú1test_expr_with_column_name_with_backtick_and_hashzSTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick_and_hashu  sR   € å�y¨6¨(Ð3Ñ3Ô3ˆØ—’˜-Ñ(Ô(ˆØ�b˜”j 1’nÔ%ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó¢   — t          dddœ¦  «        }|                     d¦  «        }||d         dk              }t          j        ||¦  «         d S )Nr+   rº   )úa`brž   z
`a``b` < 2rx  r-   rp  rq  s       r   Ú(test_expr_with_column_name_with_backtickzJTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick|  sS   € å˜y°	Ð:Ð:Ñ;Ô;ˆØ—’˜,Ñ'Ô'ˆà�b˜”i !’mÔ$ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }|d|d         k              }t          j        ||¦  «         d S )N©ú`z`````z
``````````ú
#backticksrl   z'```' < `#backticks`z```rp  rq  s       r   Ú$test_expr_with_string_with_backtickszFTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticks„  sV   € åÐ3¸l¸^ÐLÑLÔLˆØ—’Ð0Ñ1Ô1ˆØ�e˜b Ô.Ò.Ô/ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }|d|d         k              }t          j        ||¦  «         d S )Nr{  r}  rl   z'`#backticks`' < `#backticks`z`#backticks`rp  rq  s       r   ÚCtest_expr_with_string_with_backticked_substring_same_as_column_namezeTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticked_substring_same_as_column_name‹  sV   € åÐ3¸l¸^ÐLÑLÔLˆØ—’Ð9Ñ:Ô:ˆØ�n r¨,Ô'7Ò7Ô8ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   zcol1,col2,expr))r2  r3  z`it's` < `that's`)zit"szthat"sz`it"s` < `that"s`)r2  zthat's "nice"z`it's` < `that's "nice"`)r2  zthat's #coolz+`it's` < `that's #cool` # This is a commentc           	      óÐ   — t          |d|di|d|di|d|di|d|dig¦  «        }|                     |¦  «        }|||         ||         k              }t          j        ||¦  «         d S )	Nr,   r-   r.   rY   rk   éþÿÿÿéýÿÿÿéüÿÿÿrp  )r1   Úcol1Úcol2Úexprr2   rD   r{   s          r   Ú3test_expr_with_column_names_with_special_characterszUTestDataFrameQueryBacktickQuoting.test_expr_with_column_names_with_special_characters’  s‰   € õ à�q˜$ Ð"Ø�q˜$ Ð"Ø�r˜4 Ð$Ø�r˜4 Ð$ð	ñ
ô 
ˆð —’˜$‘”ˆØ�b˜”h  D¤Ò)Ô*ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }|d|d         k              }t          j        ||¦  «         d S )N©ÚaaaÚvvvÚzzzÚcolumn_namerl   z'value' < column_namer  rp  rq  s       r   Útest_expr_with_no_backticksz=TestDataFrameQueryBacktickQuoting.test_expr_with_no_backticks©  sV   € åÐ,°}°oÐFÑFÔFˆØ—’Ð1Ñ2Ô2ˆØ�g  =Ô 1Ò1Ô2ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 óÊ   — t          ddg¬¦  «        }t          j        t          t          fd¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©r,   r~   r�   úcolumn-namerl   rE  rL   z5 < `column-name©r   r$   rN   rF  r   r>   r5   s     r   Ú2test_expr_with_no_quotes_and_backtick_is_unmatchedzTTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_unmatched°  s¨   € å�z¨M¨?Ð;Ñ;Ô;ˆÝŒ]�K­Ð4Ð<LÐMÑMÔMð 	)ð 	)Ø�HŠHÐ'Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ó   µAÁAÁAc                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }|d|d         k              }t          j        ||¦  «         d S )Nr‘  r’  rl   z5 < `column-name`r~   rp  rq  s       r   Ú0test_expr_with_no_quotes_and_backtick_is_matchedzRTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_matched¶  sU   € å�z¨M¨?Ð;Ñ;Ô;ˆØ—’Ð-Ñ.Ô.ˆØ�a˜"˜]Ô+Ò+Ô,ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 óÊ   — t          ddg¬¦  «        }t          j        t          t          fd¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr‘  úIt'srl   úunterminated string literalrL   z	5 < `It'sr“  r5   s     r   ÚEtest_expr_with_backtick_opened_before_quote_and_backtick_is_unmatchedzgTestDataFrameQueryBacktickQuoting.test_expr_with_backtick_opened_before_quote_and_backtick_is_unmatched½  s°   € å�z¨F¨8Ð4Ñ4Ô4ˆÝŒ]Ý�*Ð%Ð-Jð
ñ 
ô 
ð 	"ð 	"ð �HŠH�[Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"r•  c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }|d|d         k              }t          j        ||¦  «         d S )Nr‘  r™  rl   z
5 < `It's`r~   rp  rq  s       r   ÚCtest_expr_with_backtick_opened_before_quote_and_backtick_is_matchedzeTestDataFrameQueryBacktickQuoting.test_expr_with_backtick_opened_before_quote_and_backtick_is_matchedÅ  sR   € å�z¨F¨8Ð4Ñ4Ô4ˆØ—’˜,Ñ'Ô'ˆØ�a˜"˜Vœ*’nÔ%ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 óÊ   — t          ddg¬¦  «        }t          j        t          t          fd¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrŠ  r’  rl   rš  rL   z+`column-name` < 'It`s that\'s "quote" #hashr“  r5   s     r   ÚBtest_expr_with_quote_opened_before_backtick_and_quote_is_unmatchedzdTestDataFrameQueryBacktickQuoting.test_expr_with_quote_opened_before_backtick_and_quote_is_unmatchedÌ  sÆ   € åÐ,°}°oÐFÑFÔFˆÝŒ]Ý�*Ð%Ð-Jð
ñ 
ô 
ð 	Gð 	Gð �HŠHÐEÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gr•  c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }||d         dk              }t          j        ||¦  «         d S )NrŠ  r’  rl   z,`column-name` < 'It`s that\'s "quote" #hash'úIt`s that's "quote" #hashrp  rq  s       r   ÚGtest_expr_with_quote_opened_before_backtick_and_quote_is_matched_at_endziTestDataFrameQueryBacktickQuoting.test_expr_with_quote_opened_before_backtick_and_quote_is_matched_at_endÔ  sW   € åÐ,°}°oÐFÑFÔFˆØ—’ÐKÑLÔLˆØ�b˜Ô'Ð*FÒFÔGˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó¢   — t          ddg¬¦  «        }|                     d¦  «        }|d|d         k              }t          j        ||¦  «         d S )NrŠ  r’  rl   z,'It`s that\'s "quote" #hash' < `column-name`r¡  rp  rq  s       r   ÚGtest_expr_with_quote_opened_before_backtick_and_quote_is_matched_in_midziTestDataFrameQueryBacktickQuoting.test_expr_with_quote_opened_before_backtick_and_quote_is_matched_in_midÛ  sW   € åÐ,°}°oÐFÑFÔFˆØ—’ÐKÑLÔLˆØÐ2°R¸Ô5FÒFÔGˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó^  — d„ }|g}|                      d¦  «         t          j        t          d¬¦  «        5  |                      d¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zí
        Only attributes and variables ('named functions') can be called.
        .__call__() is not an allowed attribute because that would allow
        calling anything.
        https://github.com/pandas-dev/pandas/pull/32460
        c                  ó   — dS r8   r   )rí   s    r   rî  zNTestDataFrameQueryBacktickQuoting.test_call_non_named_expression.<locals>.funcê  s   € Ø�1r   z@func()z"Only named functions are supportedrL   z@funcs[0]()Nz@funcs[0].__call__())rA   r$   rN   r>  )r1   r2   rî  Úfuncss       r   Útest_call_non_named_expressionz@TestDataFrameQueryBacktickQuoting.test_call_non_named_expressionâ  s8  € ð	ð 	ð 	ð �ˆà
�Š�	ÑÔÐåŒ]�9Ð,PÐQÑQÔQð 	#ð 	#Ø�GŠG�MÑ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#õ Œ]�9Ð,PÐQÑQÔQð 	,ð 	,Ø�GŠGÐ*Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s#   ·AÁAÁ AÁ?B"Â"B&Â)B&c                 ó:  — t          ddgddggddg|¬¦  «        }t          rt          nd }t          j        |¦  «        5  |                     d¦  «        }d d d ¦  «         n# 1 swxY w Y   t          g d	¢g d
¢gg d¢|¬¦  «        }t          j        ||¦  «         d S )Nr,   r-   r.   rY   r‡   rˆ   ©rj   r	  z	c = b - ar1  )r.   rY   r,   rU  ©r   r   ÚRuntimeWarningr?   Úassert_produces_warningrA   r@   )r1   Úany_numeric_ea_and_arrow_dtyper2   ÚwarningrD   r{   s         r   Útest_ea_dtypesz0TestDataFrameQueryBacktickQuoting.test_ea_dtypes÷  sÿ   € åØ�ˆV�a˜�VÐ s¨C jÐ8Vð
ñ 
ô 
ˆõ %6Ð?•.�.¸4ˆÝÔ'¨Ñ0Ô0ð 	*ð 	*Ø—W’W˜[Ñ)Ô)ˆFð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*åØˆYˆY˜	˜	˜	Ð"Ø#�O�OØ0ð
ñ 
ô 
ˆõ
 	Ô˜f hÑ/Ô/Ð/Ð/Ð/ó   ¿A!Á!A%Á(A%c                 ó:  — t          ddgddggddgd¬¦  «        }t          rt          nd }t          j        |¦  «        5  |                     d	¦  «        }d d d ¦  «         n# 1 swxY w Y   t          g d
¢g d¢gg d¢d¬¦  «        }t          j        ||¦  «         d S )Nr,   r-   r.   rY   r‡   rˆ   ÚFloat64rª  z	c = b - 1r1  )r.   rY   r.   rU  r«  )r1   r2   r¯  rD   r{   s        r   Útest_ea_dtypes_and_scalarz;TestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar  só   € å˜˜A˜  A Ð'°#°s°À9ÐMÑMÔMˆÝ$5Ð?•.�.¸4ˆÝÔ'¨Ñ0Ô0ð 	*ð 	*Ø—W’W˜[Ñ)Ô)ˆFð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*åØˆYˆY˜	˜	˜	Ð"¨O¨O¨OÀ9ð
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r±  c           	      ó0  — t          ddgddggddg|¬¦  «        }|                     d¦  «        }t          t          ddg|¬	¦  «        t          ddg|¬	¦  «        t          ddg|d
         j        ¬	¦  «        dœ¦  «        }t	          j        ||¦  «         d S )Nr,   r-   r.   rY   r‡   rˆ   rª  z	c = 2 - 1r  r§   rU  )r   rA   r	   r	  r?   r@   )r1   r®  r2   rD   r{   s        r   Ú#test_ea_dtypes_and_scalar_operationzETestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar_operation  s»   € åØ�ˆV�a˜�VÐ s¨C jÐ8Vð
ñ 
ô 
ˆð —’˜Ñ%Ô%ˆÝå˜Q ˜FÐ*HÐIÑIÔIÝ˜Q ˜FÐ*HÐIÑIÔIÝ˜Q ˜F¨&°¬+Ô*;Ð<Ñ<Ô<ðð ñ
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r   r	  )r
  ÚInt64úint64[pyarrow]c                 óˆ  — |dk    rt          j        d¦  «         t          dddgi|¬¦  «        }dh}|dk    rt          rt          nd }t          j        |¦  «        5  |                     d¦  «        }d d d ¦  «         n# 1 swxY w Y   t          ddgit          dd¦  «        |¬	¦  «        }t          j	        ||¦  «         d S )
Nr¸  Úpyarrowr‡   r,   r-   r  r·  z	a in @ref)ri   r	  )
r$   Úimportorskipr   r   r¬  r?   r­  r>   rm   r@   )r1   r	  r2   Úrefr¯  rD   r{   s          r   Útest_query_ea_dtypesz6TestDataFrameQueryBacktickQuoting.test_query_ea_dtypes   s  € àÐ$Ò$Ð$ÝÔ 	Ñ*Ô*Ð*å˜˜a ˜V�}¨EÐ2Ñ2Ô2ˆØˆcˆØ$)¨WÒ$4Ð$4Õ9JÐ$4•.�.ÐPTˆÝÔ'¨Ñ0Ô0ð 	+ð 	+Ø—X’X˜kÑ*Ô*ˆFð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+å˜c A 3˜Z­u°Q¸©{¬{À%ÐHÑHÔHˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/s   ÁA?Á?BÂBr"   r   r   c                 óZ  — |dk    rt           nd }|dk    rt          st          j        d¦  «         |dk    rt          j        d¦  «         t          t          g d¢d¬¦  «        t          g d¢|¬¦  «        d	œ¦  «        }t          j        |¦  «        5  | 	                    d
|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          t          ddgdt          ddd¦  «        ¬¦  «        t          ddg|t          ddd¦  «        ¬¦  «        d	œ¦  «        }t          j        ||¦  «         d S )Nr   znumexpr not installedr¸  rº  )r,   r,   r-   r·  r  )r,   r-   r-   r‰   zA == BrG   r,   r-   r   rY   )r	  ri   )r¬  r   r$   r%   r»  r   r	   r?   r­  r>   rm   r@   )r1   r	  r"   r¯  r2   rD   r{   s          r   Ú!test_query_ea_equality_comparisonzCTestDataFrameQueryBacktickQuoting.test_query_ea_equality_comparison-  s„  € ð %+¨iÒ$7Ð$7•.�.¸TˆØ�YÒÐÕ'8ÐÝŒKÐ/Ñ0Ô0Ð0ØÐ$Ò$Ð$ÝÔ 	Ñ*Ô*Ð*ÝÝ˜˜˜¨'Ð2Ñ2Ô2½À	À	À	ÐQVÐ9WÑ9WÔ9WÐXÐXñ
ô 
ˆõ Ô'¨Ñ0Ô0ð 	7ð 	7Ø—X’X˜h¨v�XÑ6Ô6ˆFð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7åå˜Q ˜F¨'½¸qÀ!ÀQ¹¼ÐHÑHÔHÝ˜Q ˜F¨%µu¸QÀÀ1±~´~ÐFÑFÔFðð ñ
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/s   ÂB7Â7B;Â>B;c                 ó$  — t           j                             d¦  «        }t          dt          j        d d gd¬¦  «        it
          ¬¦  «        }|                     d¦  «        }t          dg it
          ¬¦  «        }t          j        ||¦  «         d S )NÚUTCr‡   T)Úutcr  za > @now)	r¢   Ú	TimestampÚnowr   Úto_datetimer/  r>   r?   r@   )r1   rÄ  r2   rD   r{   s        r   Útest_all_nat_in_objectz8TestDataFrameQueryBacktickQuoting.test_all_nat_in_objectC  s�   € åŒl×Ò˜uÑ%Ô%ˆÝ˜�Rœ^¨T°4¨L¸dÐCÑCÔCÐDÍFÐSÑSÔSˆØ—’˜*Ñ%Ô%ˆÝ˜c 2˜Y­fÐ5Ñ5Ô5ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r   N)6rR   rS   rT   r$   rU   r2   r;  r=  r@  rC  rE  rG  rI  rK  rM  rO  rQ  rS  rU  rW  rY  r[  r]  r_  rc  re  rg  ri  rk  rm  rr  rt  rv  ry  r~  r€  r¾   rÅ   rˆ  r�  r”  r—  r›  r�  rŸ  r¢  r¤  r¨  r°  r´  r¶  r½  r¿  rÆ  r   r   r   r   r   È  sˆ  € € € € € Ø„^ð!
ð !
ñ „^ð!
ðF+ð +ð +ð
+ð +ð +ð
,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð
+ð +ð +ð
+ð +ð +ð
+ð +ð +ð
+ð +ð +ð
,ð ,ð ,ð
+ð +ð +ð
+ð +ð +ð
!ð !ð !ð
+ð +ð +ð
+ð +ð +ð
+ð +ð +ð+ð +ð +ð+ð +ð +ð
0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð „[×ÒØð	
ð 	
ð 	
ñô ð0ð 0ñô ð0ð0ð 0ð 0ð)ð )ð )ð0ð 0ð 0ð"ð "ð "ð0ð 0ð 0ðGð Gð Gð0ð 0ð 0ð0ð 0ð 0ð,ð ,ð ,ð*0ð 0ð 0ð	0ð 	0ð 	0ð0ð 0ð 0ð „[×Ò˜WÐ&JÐ&JÐ&JÑKÔKð
0ð 
0ñ LÔKð
0ð „[×Ò˜X¨°)Ð'<Ñ=Ô=Ø„[×Ò˜WÐ&JÐ&JÐ&JÑKÔKð0ð 0ñ LÔKñ >Ô=ð0ð(0ð 0ð 0ð 0ð 0r   r   ))r�  Útokenizer   Únumpyrq   r$   Úpandas.errorsr   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdr   r¢   r   r   r   r	   r
   Úpandas._testingÚ_testingr?   Úpandas.core.computation.checkr   rU   r   r   Ú
skip_if_nor"   r&   r(   rW   rÇ   r  r”  r¨  r³  r¸  r  r   r   r   r   ú<module>rÒ     s¥  ðØ €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ð €„˜ (Ð+°°Ð=Ñ=Ô=ðð ñ >Ô=ðð €„Ø�l�f”l 9°M°B´MÀ)Ñ4LÔ4LÐMÑMÔMÐNØˆðñ ô ðð ñ	ô ðð=ð =ð =ð
01ð 01ð 01ð 01ð 01ñ 01ô 01ð 01ðfL1ð L1ð L1ð L1ð L1ñ L1ô L1ð L1ð^GIð GIð GIð GIð GIñ GIô GIð GIðT €„ˆyÑÔðy0ð y0ð y0ð y0ð y0ñ y0ô y0ñ Ôðy0ðx €„ˆyÑÔðu!ð u!ð u!ð u!ð u!Ð&Eñ u!ô u!ñ Ôðu!ðp0ð 0ð 0ð 0ð 0Ð%Dñ 0ô 0ð 0ð*0ð 0ð 0ð 0ð 0Ð%Dñ 0ô 0ð 0ð*T*ð T*ð T*ð T*ð T*ñ T*ô T*ð T*ðn?ð ?ð ?ð ?ð ?ñ ?ô ?ð ?ð4A0ð A0ð A0ð A0ð A0ñ A0ô A0ð A0ð A0ð A0r   