Ë
    ž…jKò  ã            	       óf  — 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j2                  ddgd„ ¬	«      d
„ «       Z ej2                  d ej6                  d ej8                  d«      ¬«      gd„ ¬	«      d„ «       Zd„ Z G d„ d«      Z G d„ d«      Z  G d„ d«      Z! ej8                  d«       G d„ d«      «       Z" ej8                  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(y)$é    N)Ú
TokenError)ÚNumExprClobberingErrorÚUndefinedVariableError)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ
date_range)ÚNUMEXPR_INSTALLEDÚpythonÚpandasc                 ó   — | S ©N© ©Úxs    úc/root/aria/tools/markitdown-venv/lib/python3.12/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k7  rt        j                  d| › �«       y y )Nr   zcannot evaluate with parser=)ÚpytestÚskip)r   s    r   Úskip_if_no_pandas_parserr&   &   s#   € Ø�ÒÜ�‰Ð2°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y)	Ú
TestCompatc                 ó    — t        dg d¢i«      S )NÚA©é   é   é   ©r   ©Úselfs    r   ÚdfzTestCompat.df,   s   € ä˜#šyÐ)Ó*Ð*r   c                 ó&   — ||j                   dkD     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‰t�a‰xˆr   c                 ó    — |j                  d«      }t        j                  ||«       |j                  d«      }t        j                  ||«       y )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   s>   € ð —‘˜%“ˆÜ
×Ñ˜f iÔ0Ø—‘˜“ˆÜ
×Ñ˜v yÕ1r   c                 ó¨   — |j                  dd ¬«      }t        j                  ||«       |j                  dd ¬«      }t        j                  ||«       y )Nr;   ©r"   r<   r=   rC   s        r   Útest_query_NonezTestCompat.test_query_None@   sF   € Ø—‘˜%¨�Ó-ˆÜ
×Ñ˜f iÔ0Ø—‘˜ t�Ó,ˆÜ
×Ñ˜v yÕ1r   c                 ó¨   — |j                  dd¬«      }t        j                  ||«       |j                  dd¬«      }t        j                  ||«       y )Nr;   r   rG   r<   r=   rC   s        r   Útest_query_pythonzTestCompat.test_query_pythonF   sF   € Ø—‘˜%¨�Ó1ˆÜ
×Ñ˜f iÔ0Ø—‘˜ x�Ó0ˆÜ
×Ñ˜v yÕ1r   c                 óÆ  — t         rS|j                  dd¬«      }t        j                  ||«       |j	                  dd¬«      }t        j
                  ||«       y d}t        j                  t        |¬«      5  |j                  dd¬«       d d d «       t        j                  t        |¬«      5  |j	                  dd¬«       d d d «       y # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)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À   € ÝØ—X‘X˜e¨I�XÓ6ˆFÜ×!Ñ! &¨)Ô4Ø—W‘W˜U¨9�WÓ5ˆFÜ×"Ñ" 6¨9Õ5ð!ð ô
 —‘œ{°#Ô6ñ 2Ø—‘˜ y�Ô1÷2ä—‘œ{°#Ô6ñ 1Ø—‘˜ i�Ô0÷1ð 1÷2ð 2ú÷1ð 1ús   Á7CÂ.CÃCÃC N)Ú__name__Ú
__module__Ú__qualname__r$   Úfixturer2   r6   r9   rE   rH   rJ   rQ   r   r   r   r(   r(   +   s\   „ Ø‡^�^ñ+ó ð+ð ‡^�^ñó ðð ‡^�^ñó ðò2ò2ò2ó1r   r(   c                   óØ   — e Zd Zej                  j                  dddg«      ej                  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y)ÚTestDataFrameEvalÚné   i   zop_str,op,rop))ú+Ú__add__Ú__radd__)ú-Ú__sub__Ú__rsub__)Ú*Ú__mul__Ú__rmul__)ú/Ú__truediv__Ú__rtruediv__c                 ó&  — t        dt        |«      t        d«      ¬«      }d|j                  d<   |j	                  «       }t        t        j                  |j                  |«      j                  |d«      t        d«      ¬«      }t        d|› d	�«      }t        d
|› d	�«      }	t        j                  |	|«       |dv r) t        ||«      |«      }	t        j                  |	|«       y |dv r) t        ||«      |«      }	t        j                  |	|«       y y )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`   sù   € ô �q¤ a£´$°v³,Ô?ˆØˆ�‰�‰
Ø�G‰G‹IˆäÜ�G‰G�A—H‘H˜aÓ ×(Ñ(¨¨BÓ/¼¸f»ô
ˆô ˜% ˜x sÐ+Ó,ˆô ˜˜6˜( #Ð&Ó'ˆÜ
×Ñ˜f hÔ/ð �ÑØ$”W˜R “_ QÓ'ˆFÜ×!Ñ! &¨(Õ3ð �:ÑØ%”W˜R Ó% aÓ(ˆFÜ×!Ñ! &¨(Õ3ð r   c                 óp  — t        dt        j                  j                  d«      j	                  d«      i«      }t        j
                  |j                  dd dt        j                  |j                  dd «      z
  }dt        j                  |«      z
  j                  dd }t        j                  ||«       y )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™Y×2Ñ2°1Ó5×EÑEÀeÓLÐMÓNˆÜ—v‘vˆ�‰��!ˆØ”r—x‘x §¡¨¨" Ó.Ñ.ˆØ”b—h‘h˜r“lÑ"×(Ñ(¨¨2Ð.ˆÜ
×Ñ˜f hÕ/r   c                 ó2  — t        g d¢g d¢dœ«      }d}t        j                  t        |¬«      5  |j	                  d„ «       d d d «       t        j                  t        |¬«      5  |j	                  d«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)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™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ª_Ñ=Ó>ˆà5ˆÜ�]‰]œ:¨SÔ1ñ 	+Ø�H‰HÑ)Ô*÷	+ô �]‰]œ:¨SÔ1ñ 	Ø�H‰H�SŒM÷	ð 	÷	+ð 	+ú÷	ð 	ús   °BÁ&BÂB
ÂBc                 ó¨   — t        dg d¢i«      }d}t        j                  t        |¬«      5  |j	                  d«       d d d «       y # 1 sw Y   y xY w)Nr*   r+   zexpr cannot be an empty stringrL   Ú r�   r�   s      r   Útest_query_empty_stringz)TestDataFrameEval.test_query_empty_stringš   sD   € ä˜šYÐ'Ó(ˆà.ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�H‰H�RŒL÷	÷ 	ñ 	ús   ­AÁAc                 óø   — t        t        d«      t        d«      t        d«      dœ«      j                  ddi¬«      }|j                  d||¬«      }t        g d¢gg d	¢d
g¬«      }t	        j
                  ||«       y )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¢   so   € ÜœU 1›X¬E°!«H¼5À»8ÑDÓE×LÑLØ˜#�Jð Mó 
ˆð �h‰h�x¨°vˆhÓ>ˆäšI˜;²ÈÀsÔKˆä
×Ñ˜c 6Õ*r   c                 ó,  — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      }ddi}ddi}|j                  d||g¬	«      |d   |d   z   k(  sJ ‚t        j                  d||g¬	«      |d   |d   z   k(  sJ ‚y )
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‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzô
ˆð �a�ˆØ�a�ˆØ�w‰w�w¨5°%¨.ˆwÓ9¸UÀ3¹ZÈ%ÐPSÉ*Ñ=TÒTÐTÐTÜ�w‰w�w¨5°%¨.Ô9¸UÀ3¹ZÈ%ÐPSÉ*Ñ=TÒTÐTÑTr   c                 ó  — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      }ddi}|j                  d|g¬«      }|d   |d	   |d   z  z   }t        j                  ||«       y )
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‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzô
ˆð �a�ˆð —‘˜°°�Ó8ˆà�c‘7˜R ™W u¨S¡zÑ1Ñ1ˆÜ
×Ñ˜v xÕ0r   c                 ó”   — t        dddgi«      }|j                  d«      }t        ddgddgdœ«      }t        j                  ||«       y )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Ä   sK   € ä˜˜s C˜jÐ)Ó*ˆØ�g‰gÐ0Ó1ˆÜ S¨# J°d¸E°]ÑCÓDˆÜ
×Ñ˜c 8Õ,r   c                 óØ   — t        |«       t        g d¢d¬«      j                  «       }|j                  d||¬«      }t	        j
                  |d   «      }t        j                  ||«       y )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¨#Ô.×7Ñ7Ó9ˆØ�g‰g�n¨V¸FˆgÓCˆÜ—8‘8˜B˜s™GÓ$ˆÜ
×Ñ˜x¨Õ-r   c                 óœ   — t        g d¢d¬«      j                  «       }|j                  d||¬«      }|d   }t        j                  ||«       y )Nr¯   r‡   r°   r–   )r	   r²   rA   r?   rB   r´   s         r   Útest_eval_simplez"TestDataFrameEval.test_eval_simpleÓ   sD   € Ü’O¨#Ô.×7Ñ7Ó9ˆØ�g‰g�c &°ˆgÓ8ˆØ�c‘7ˆÜ
×Ñ˜x¨Õ-r   c                 ót  — |dk(  r1t         j                  j                  d¬«      }|j                  |«       t	        t        j                  g d¢«      t        j                  g d¢«      dœ«      }|j                  d||¬«      }t        t        j                  g d	¢«      «      }t        j                  ||«       y )
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™X¢iÓ0´r·x±xÂ	Ó7JÑKÓLˆØ—‘˜¨¸�Ó?ˆÜœ"Ÿ(™(Ò#5Ó6Ó7ˆÜ
×Ñ˜v xÕ0r   c                 ó�   — t        dgdgdœ«      }|j                  d||¬«      }t        dg«      }t        j                  ||«       y )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å   sE   € ä˜f˜X¨V¨HÑ5Ó6ˆØ—‘˜ v°f�Ó=ˆÜ˜:˜,Ó'ˆÜ
×Ñ˜v xÕ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ò80ò	òò	+òUò1ò-ò.ò.ò
1ó1r   rW   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú TestDataFrameQueryWithMultiIndexc                 ó¨  — t        |«       t        j                  j                  d«      j	                  ddgd¬«      }t        j                  j                  d«      j	                  ddgd¬«      }t        j                  ||gdd	g¬
«      }t        t        j                  j                  d«      j                  d«      |¬«      }t        |j                  j                  d«      j                  |d¬«      }|j                  d||¬«      }|j                  d||¬«      }	||dk(     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||dk7     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       y )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î   sý  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨V°U¨OÀ"Ð+ÓEˆÜ×&Ñ&¨¨1 v°g¸vÐ5FÔGˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÔVˆÜØ�H‰H×%Ñ% gÓ.×5Ñ5¸UÈô
ˆð
 �x‰xÐ(°ÀˆxÓGˆØ�x‰xÐ(°ÀˆxÓGˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ(°ÀˆxÓGˆØ�x‰xÐ(°ÀˆxÓGˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ*°6À&ˆxÓIˆØ�x‰xÐ*°6À&ˆxÓIˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ*°6À&ˆxÓIˆØ�x‰xÐ*°6À&ˆxÓIˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ*°6À&ˆxÓIˆØ�x‰xÐ(°ÀˆxÓGˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ,°VÀFˆxÓKˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÕ(r   c                 óº  — t        |«       t        j                  j                  d«      j	                  ddgd¬«      }t        j                  j                  d«      j	                  ddgd¬«      }t        j                  ||g«      }t        t        j                  j                  d«      j                  d«      |¬	«      }t        |j                  j                  d
«      j                  |¬	«      }|j                  d||¬«      }|j                  d||¬«      }	||dk(     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||dk7     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       t        |j                  j                  d«      j                  |¬	«      }|j                  d||¬«      }|j                  d||¬«      }	||dk(     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||dk7     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d ||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       |j                  d!||¬«      }|j                  d"||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d#||¬«      }|j                  d$||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       y )%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   sJ  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨V°U¨OÀ"Ð+ÓEˆÜ×&Ñ&¨¨1 vÓ.ˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÔVˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆà�x‰xÐ+°FÀ6ˆxÓJˆØ�x‰xÐ+°FÀ6ˆxÓJˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ+°FÀ6ˆxÓJˆØ�x‰xÐ+°FÀ6ˆxÓJˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ-°fÀVˆxÓLˆØ�x‰xÐ-°fÀVˆxÓLˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ-°fÀVˆxÓLˆØ�x‰xÐ-°fÀVˆxÓLˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ-°fÀVˆxÓLˆØ�x‰xÐ+°FÀ6ˆxÓJˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ1¸&ÈˆxÓPˆØ�x‰xÐ/¸ÀvˆxÓNˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ô �R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆØ�x‰xÐ,°VÀFˆxÓKˆØ�x‰xÐ,°VÀFˆxÓKˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ,°VÀFˆxÓKˆØ�x‰xÐ,°VÀFˆxÓKˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ.°vÀfˆxÓMˆØ�—‘˜6˜(Ó#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ.°vÀfˆxÓMˆØ�#—(‘(˜F˜8Ó$Ð$Ñ%ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ,°VÀFˆxÓKˆØ�—‘˜6˜(Ó#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ2¸6È&ˆxÓQˆØ�x‰xÐ0¸ÈˆxÓOˆØ�#—(‘(˜F˜8Ó$Ð$Ñ%ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÕ(r   c                 ón  — t        |«       t        j                  j                  d«      j	                  ddgd¬«      }t        j
                  d«      }t        j                  ||g«      }d dg|_        t        t        j                  j                  d«      j                  d«      |¬«      }|j                  d	||¬
«      }t        |j                  j                  d«      j                  |d¬«      }||dk(     }	t!        j"                  ||	«       |j                  d||¬
«      }t        |j                  j                  d«      j                  |d¬«      }||dk7     }	t!        j"                  ||	«       |j                  d||¬
«      }t        |j                  j                  d«      j                  |¬«      }||dk(     }	t!        j"                  ||	«       |j                  d||¬
«      }t        |j                  j                  d«      j                  |¬«      }||dk7     }	t!        j"                  ||	«       y )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‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I�b‹MˆÜ×&Ñ&¨¨1 vÓ.ˆØ˜XÐ&ˆŒÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÔVˆØ�h‰h�}¨V¸FˆhÓCˆÜØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ô
ˆð �˜‘‰lˆÜ
×Ñ˜c 3Ô'à�h‰h�}¨V¸FˆhÓCˆÜØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ô
ˆð �˜‘‰lˆÜ
×Ñ˜c 3Ô'à�h‰hÐ*°6À&ˆhÓIˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆØ�˜‘ÑˆÜ
×Ñ˜c 3Ô'à�h‰hÐ*°6À&ˆhÓIˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆØ�˜‘ÑˆÜ
×Ñ˜c 3Õ'r   c                 ód  — t        t        j                  d«      t        j                  t        d«      D �cg c]  }t        d«      ‘Œ c}ddg¬«      ¬«      }|j                  «       }d„ }|j                  j                  «       }|j                  | ||j                  d«       ||j                  d«      |d	œ}|j                  «       D ]`  \  }}t        |t        «      r|j                  ||   «      rŒ+J ‚t        |t        «      rt        j                   |||   «       ŒWt#        d
«      ‚ y c c}w )N©r�   r.   r-   r�   ÚspamrÍ   rÑ   rÓ   c                 óV   — | j                  |«      }|j                  «       }| |_        |S r   )rÙ   Ú	to_seriesri   )ÚmiÚlevelÚlevel_valuesÚss       r   rí   z]TestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers.<locals>.to_series   s,   € Ø×.Ñ.¨uÓ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—  s	  € ÜÜ�G‰G�GÓÜ×(Ñ(Ü$)¨!£HÖ-˜q”�r•Ò-°f¸fÐ5Eôô
ˆð ×+Ñ+Ó-ˆ	ò	ð —Z‘Z×)Ñ)Ó+ˆ
à—X‘XØ!Ù˜bŸh™h¨Ó/Ù˜bŸh™h¨Ó/Ø"ñ
ˆð —O‘OÓ%ò 	I‰DˆAˆqÜ˜!œUÔ#Ø—u‘u˜X a™[Õ)Ð)Ð)Ü˜AœvÔ&Ü×&Ñ& q¨(°1©+Õ6ä$Ð%GÓHÐHñ	Iùò' .s   ¶D-N)rR   rS   rT   rà   rä   rè   rý   r   r   r   rÇ   rÇ   í   s   „ ò0)òdV)òp(ó>Ir   rÇ   c                   ó\  — 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:                  j=                  ddej@                  gdejB                  gg«      d„ «       Z"d„ Z#d„ Z$y) ÚTestDataFrameQueryNumExprPandasc                  ó   — y©Nr   r   r0   s    r   r"   z&TestDataFrameQueryNumExprPandas.engine¹  ó   € àr   c                  ó   — y©Nr   r   r0   s    r   r   z&TestDataFrameQueryNumExprPandas.parser½  ó   € àr   c                 ó€  — t        |«       t        t        j                  j	                  d«      j                  d«      «      }t        dd¬«      |d<   t        dd¬«      |d<   t        d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )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‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø�h‰hØ0¸Èð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 ój  — t        t        j                  j                  d«      j	                  d«      «      }t        dd¬«      |d<   t        dd¬«      |d<   t        d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )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‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 óª  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   t        d	|¬«      |d
<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  df<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  d
f<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )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Ö  s  € ØˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 ó‚  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   |j                  dd	d	¬
«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )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‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hÐ2¸6È&ˆhÓQˆØ�B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 óæ  — d}t        t        j                  j                  d«      j	                  |df«      «      j                  dt        i«      }t        d|¬«      |d<   t        d|¬«      |d	<   t        j                  |j                  d
<   |j                  ddd¬«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                   ||«       y )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‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓH×OÑOØ”ˆKó
ˆô " *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜŸ™ˆ�‰�‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hÐ2¸6È&ˆhÓQˆØ�B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 óâ  — d}i }t        d|¬«      |d<   t        d|¬«      |d<   t        |«      }t        j                  |j                  t
        j                  j                  d«      j                  |«      dkD  df<   |j                  dd	d	¬
«      }|�J ‚|j                  d||¬«      }||j                  j                  «       dk  d|j                  k  z     }t        j                  ||«       y )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ˆˆ(‰Ü  °QÔ7ˆˆ(‰Ü�q‹\ˆÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—H‘H×&Ñ&Ó(¨:Ñ5¸*ÀrÇyÁyÑ:PÑQÑRˆÜ
×Ñ˜c 5Õ)r   c                 ó   — d}t        t        d|d¬«      t        j                  |«      dœ«      }|j	                  d||¬«      }t        |«      dk(  sJ ‚|j	                  d	||¬«      }t        j                  ||«       d
}dD ]>  }t        j                  t        |¬«      5  |j	                  d|› d�||¬«       d d d «       Œ@ y # 1 sw Y   ŒKxY w)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ÜŸ9™9 Q›<ñó
ˆð —‘Ð,°VÀF�ÓKˆÜ�6‹{˜aÒÐÐà—‘Ð,°VÀF�ÓKˆÜ
×Ñ˜f bÔ)àNˆØ(ò 	NˆBÜ—‘œy°Ô4ñ NØ—‘˜6 "  XÐ.°vÀf�ÔM÷Nð Nñ	N÷Nð Nús   Â CÃC	c                 óè   — t        t        d«      t        dd«      t        dd«      dœ«      }d}t        j                  t        |¬«      5  |j                  d	||¬
«       d d d «       y # 1 sw Y   y xY w)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¬U°1°b«\ÄÀaÈÃÑMÓNˆØˆÜ�]‰]œ;¨cÔ2ñ 	<Ø�H‰H�W V°FˆHÔ;÷	<÷ 	<ñ 	<ús   Á
A(Á(A1c                 ó¼  — t        |«       t        t        j                  j	                  d«      j                  d«      t        d«      ¬«      }d\  }}|j                  d||¬«      }||j                  |j                  kD     }t        j                  ||«       |j                  d||¬«      }|||j                  kD     }t        j                  ||«       t        j                  t        d	¬
«      5  |j                  d||¬«       d d d «       t        j                  t        d¬
«      5  |j                  d||¬«       d d d «       y # 1 sw Y   ŒBxY w# 1 sw Y   y xY w)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#  s4  € Ü  Ô(äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzô
ˆð ‰ˆˆ1Ø�h‰h�w v°fˆhÓ=ˆØ�b—d‘d˜RŸT™T‘k‘?ˆÜ
×Ñ˜c 8Ô,à�h‰h�x¨°vˆhÓ>ˆØ�a˜"Ÿ$™$‘h‘<ˆÜ
×Ñ˜c 8Ô,ô �]‰]Ü"Ð*Mô
ñ 	Bð �H‰H�]¨6¸&ˆHÔA÷	Bô �]‰]Ô1Ð9RÔSñ 	AØ�H‰H�\¨&¸ˆHÔ@÷	Að 	A÷	Bð 	Bú÷	Að 	Aús   Ã0EÄ(EÅEÅEc                 ó   — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }t        j                  t        d¬«      5  |j                  d	||¬
«       d d d «       y # 1 sw Y   y xY w)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=  sz   € Øˆ
ˆˆAÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆô
 �]‰]Ô1Ð9TÔUñ 	>Ø�H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   Á&BÂBc                 óF  — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }d|j                  _        d}t        j                  t        |¬	«      5  |j                  d
||¬«       d d d «       y # 1 sw Y   y xY w)Nr�   r-   r.   rË   rJ  rl   ÚsinzVariables in expression.+rL   rK  r–   )r   rq   r€   r�   rL  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‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆð ˆ�‰ŒØ)ˆÜ�]‰]Ô1¸Ô=ñ 	>Ø�H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   Á9BÂB c                 ó¶  — t        t        j                  j                  d«      j	                  d«      g d¢¬«      }t        j                  |j                  d||¬«      ||j                  |j                  k     «       t        j                  |j                  d||¬«      ||j                  |j                  z   |j                  |j                  z  kD     «       y )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‰I×!Ñ! !Ó$×4Ñ4°WÓ=Âô
ˆô 	×ÑØ�H‰H�W V°FˆHÓ;¸RÀÇÁÀrÇtÁtÁ¹_ô	
ô 	×ÑØ�H‰H�_¨V¸FˆHÓCØˆr�t‰t�b—d‘d‰{˜RŸT™T B§D¡D™[Ñ(Ñ)õ	
r   c                 óà  — t        t        j                  j                  d«      j	                  dd¬«      t        t        d«      d¬«      g d¢¬«      }|j                  d	||¬
«      }||j                  dk  |j                  |j                  k  z     }t        j                  ||«       |j                  d||¬
«      }||j                  |j                  k     }t        j                  ||«       y )Nr-   r�   rê   rË   Úblobr°   rR  rh   z(blob < 5) & (a < b)r–   r~   zblob < b)r   rq   r€   r�   rL  r   rm   r>   ri   r‡   rˆ   r?   r@   r  s         r   Útest_query_index_with_namez:TestDataFrameQueryNumExprPandas.test_query_index_with_name_  sÃ   € ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨b°wÐ-Ó?Üœ˜b›	¨Ô/Ú#ô
ˆð
 �h‰hÐ-°fÀVˆhÓLˆØ�B—H‘H˜q‘L R§T¡T¨B¯D©D¡[Ñ1Ñ2ˆÜ
×Ñ˜c 5Ô)à�h‰h�z¨&¸ˆhÓ@ˆØ�2—8‘8˜bŸd™d‘?Ñ#ˆä
×Ñ˜c 5Õ)r   c                 ó–  — t        t        j                  j                  d«      j	                  dd¬«      t        d«      g d¢¬«      }|j                  d||¬«      }||j                  |j                  k     }t        j                  ||«       |j                  d	||¬«      }||j                  d
k     }t        j                  ||«       y )Nr-   r�   rê   rË   rR  rh   z	index < br–   z	index < 5r~   )r   rq   r€   r�   rL  rm   r>   ri   rˆ   r?   r@   r  s         r   Útest_query_index_without_namez=TestDataFrameQueryNumExprPandas.test_query_index_without_namen  s¬   € ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨b°wÐ-Ó?Ü˜“)Ú#ô
ˆð �h‰h�{¨6¸&ˆhÓAˆØ�2—8‘8˜bŸd™d‘?Ñ#ˆÜ
×Ñ˜c 5Ô)ð �h‰h�{¨6¸&ˆhÓAˆØ�2—8‘8˜a‘<Ñ ˆÜ
×Ñ˜c 5Õ)r   c                 óÖ  — t        |«       t        t        j                  j	                  d«      j                  d«      «      }t        t        j                  j	                  d«      j                  d«      «      }||dkD  |dkD  z     }|j                  d||¬«      }t        j                  ||«       t        j                  d||¬«      }t        j                  ||«       t        j                  d||¬«      }||dkD  |dkD  z  ||dkD     dkD  z     }t        j                  ||«       t        j                  d||¬«      }|j                  d	||¬«      }t        j                  ||«       y )
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  s8  € Ü  Ô(ä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜœŸ	™	×-Ñ-¨aÓ0×@Ñ@ÀÓHÓIˆØ�r˜A‘v #¨¡'Ñ*Ñ+ˆà—‘Ð2¸6È&�ÓQˆÜ
×Ñ˜f hÔ/ä—‘Ð1¸&ÈÔPˆÜ
×Ñ˜f hÔ/ä—‘Ø7ÀÈvô
ˆð �r˜A‘v #¨¡'Ñ*¨b°°a±©j¸1©nÑ=Ñ>ˆÜ
×Ñ˜f hÔ/ä—‘Ð/¸ÀvÔNˆØ—8‘8Ð0¸È�8ÓOˆÜ
×Ñ˜f hÕ/r   c                 óú   — t        t        j                  j                  d«      j	                  d«      «      }t        j                  t        d¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)Nr-   r  úname 'df' is not definedrL   zdf > 0r–   )	r   rq   r€   r�   r‚   r$   rN   r   r>   rT  s       r   Ú*test_nested_raises_on_local_self_referencezJTestDataFrameQueryNumExprPandas.test_nested_raises_on_local_self_reference–  s_   € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆô �]‰]Ô1Ð9SÔTñ 	=Ø�H‰H�X f°VˆHÔ<÷	=÷ 	=ñ 	=ús   ÁA1Á1A:c                 ó¦  — t        |«       t        t        j                  j	                  d«      j                  d«      t        d«      ¬«      }d}||j                  |k     }|j                  d||¬«      }t        j                  ||«       ||j                  |j                  k     }|j                  d||¬«      }t        j                  ||«       y )	Nr-   )éd   r�   Ú
abcdefghijrl   r,   za < @br–   rS  )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‰I×!Ñ! !Ó$×4Ñ4°YÓ?Ü˜Ó&ô
ˆð ˆØ�B—D‘D˜1‘H‘ˆØ—‘˜(¨6¸&�ÓAˆÜ
×Ñ˜f fÔ-à�B—D‘D˜2Ÿ4™4‘K‘ˆØ—‘˜'¨&¸�Ó@ˆÜ
×Ñ˜f fÕ-r   c                 ó  — t        |«       t        d«      }t        t        j                  j                  d«      j                  dt        |«      f«      |¬«      }|j                  d||¬«      }|j                  |j                  k  |j                  |j                  k  z  |j                  j                  |j                  «       z  |j                  j                  |j                  «       z  }||   }t        j                  ||«       y )NrJ  r-   rc  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‰I×!Ñ! !Ó$×4Ñ4°c¼3¸t»9Ð5EÓFÐPTô
ˆð �h‰hØ/¸Àvð ó 
ˆð �t‰t�b—d‘d‰{˜rŸt™t b§d¡d™{Ñ+¨r¯t©t¯y©y¸¿¹«Ð.>Ñ>À"Ç$Á$Ç)Á)ÈBÏDÉDÃ/ÐAQÑQˆØ�3‘ˆÜ
×Ñ˜c 5Õ)r   c                 óØ  — t        |«       t        t        j                  j	                  d«      j                  dd¬«      d¬«      }t        t        j                  j	                  d«      j                  dd¬«      d¬«      }t        ||d	œ«      }|j                  |j                  d
z
  j                  |«         }|j                  d||¬«      }t        j                  ||«       t        t        j                  j	                  d«      j                  dd¬«      d¬«      }|j                  |d
z
  j                  |«         }|j                  d||¬«      }t        j                  ||«       y )Nr-   r.   é   rË   r‡   r°   r�   rˆ   r¼   r,   z
b - 1 in ar–   z@b - 1 in a)r&   r	   rq   r€   r�   rL  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º  s  € Ü  Ô(Ü”2—9‘9×(Ñ(¨Ó+×4Ñ4°Q¸RÐ4Ó@ÀsÔKˆÜ”2—9‘9×(Ñ(¨Ó+×4Ñ4°R¸bÐ4ÓAÈÔLˆÜ˜Q QÑ'Ó(ˆà—6‘6˜2Ÿ4™4 !™8Ÿ/™/¨!Ó,Ñ-ˆØ—‘˜,¨v¸f�ÓEˆÜ
×Ñ˜h¨Ô/ä”2—9‘9×(Ñ(¨Ó+×4Ñ4°R¸bÐ4ÓAÈÔLˆØ—6‘6˜1˜q™5Ÿ,™, q›/Ñ*ˆØ—‘˜-°¸v�ÓFˆÜ
×Ñ˜h¨Õ/r   c                 ó´   — t        |«       d}t        dg d¢i«      }|j                  d||¬«      }||j                  dk(     }t	        j
                  ||«       y )Nr,   r‡   )r‡   r‡   rˆ   rˆ   ú@crm  z	a == "@c"r–   rm  ©r&   r   r>   r‡   r?   r@   )r1   r"   r   r§   r2   rD   r{   s          r   Útest_at_inside_stringz5TestDataFrameQueryNumExprPandas.test_at_inside_stringÉ  sU   € Ü  Ô(ØˆÜ˜Ò=Ð>Ó?ˆØ—‘˜+¨f¸V�ÓDˆØ�b—d‘d˜d‘lÑ#ˆÜ
×Ñ˜f hÕ/r   c                 óV  — | j                   | j                  }}t        |«       t        t        j
                  j                  d«      j                  d«      t        d«      ¬«      }t        j                  t        d¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)	Nr-   rœ   rž   rl   rG  rL   za == @cr–   )r"   r   r&   r   rq   r€   r�   rn   r$   rN   r   r>   rT  s       r   Útest_query_undefined_localz:TestDataFrameQueryNumExprPandas.test_query_undefined_localÑ  s€   € ØŸ™ d§k¡k�ˆÜ  Ô(ä”r—y‘y×,Ñ,¨QÓ/×6Ñ6°wÓ?ÌÈdËÔTˆÜ�]‰]Ü"Ð*Mô
ñ 	>ð �H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   ÂBÂB(c                 ó>  — d}t         j                  ddd…   }t        |t         j                  j	                  d«      j                  |j                  «      dœ«      }d|j                  _        |j                  d||¬«      }||d   d	kD     }t        j                  ||«       t        |t         j                  j	                  d«      j                  |j                  «      dœ«      }|j                  d
||¬«      }|j                  |j                  |j                  d	kD        }t        j                  ||«       t        |t         j                  j	                  d«      j                  |j                  «      dœ«      }d|j                  _        |j                  d||¬«      }||j                  d	kD     }t        j                  ||«       |j                  d||¬«      }|j                  |j                  |j                  d	kD        }t        j                  ||«       y )Nr,   rF  é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‰E�"�S˜�)ÑˆäØœbŸi™i×3Ñ3°AÓ6×FÑFÀqÇvÁvÓNÑOó
ˆð  ˆ�‰ŒØ—‘˜+¨f¸V�ÓDˆØ�b˜‘k A‘oÑ&ˆÜ
×Ñ˜f hÔ/äØœbŸi™i×3Ñ3°AÓ6×FÑFÀqÇvÁvÓNÑOó
ˆð —‘˜.°À�ÓGˆØ—6‘6˜"Ÿ(™( 2§8¡8¨a¡<Ñ0Ñ1ˆÜ
×Ñ˜f hÔ/ä˜Q¤R§Y¡Y×%:Ñ%:¸1Ó%=×%MÑ%MÈaÏfÉfÓ%UÑVÓWˆØˆ�‰ŒØ—‘˜'¨&¸�Ó@ˆØ�b—d‘d˜Q‘h‘<ˆÜ
×Ñ˜f hÔ/à—‘˜+¨f¸V�ÓDˆØ—6‘6˜"Ÿ(™( 2§8¡8¨a¡<Ñ0Ñ1ˆÜ
×Ñ˜f hÕ/r   zop, fú==ú!=c                 óÀ  — d}t        t        j                  j                  d«      j                  |«      t        j                  j                  d«      j                  |«      dœ«      }t        j                  |j
                  d d d…df<   d|› d�}| ||j                  t        j                  «         }|j                  |||¬«      }	t        j                  |	|«       y )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‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7Ü—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7ñó
ˆô Ÿ™ˆ�‰‰s�ˆs�Aˆv‰Ø���DˆMˆØ‘a˜Ÿ™œbŸf™f“oÑ&ˆØ—‘˜! F°6�Ó:ˆÜ
×Ñ˜f hÕ/r   c                 ó&  — |}t        ddd|d¬«      }t        |¬«      }t        |¬«      }|j                  d«      }t        j                  ||«       t        |«      }|j                  «       j                  d«      }t        j                  ||«       y )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ˆÜ
×Ñ˜f hÕ/r   c           	      óR  — d}t        dt        j                  j                  d«      j                  |«      z  t        j                  j                  d«      j                  |«      dœ«      }||d   j	                  d«      dk(     }|j                  d||¬«      }t        j                  ||«       t        t        j                  t        j                  j                  d«      j                  |«      d	k  t        j                  t        j                  j                  d«      j                  |«      «      t        j                  j                  d«      j                  |«      dœ«      }||d   j                  «          }|j                  d
||¬«      }t        j                  ||«       y )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  sS  € àˆÜàœŸ™×.Ñ.¨qÓ1×8Ñ8¸Ó;Ñ;Ü—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7ñó
ˆð �b˜‘g—n‘n UÓ+¨qÑ0Ñ1ˆØ—‘Ð0¸È�ÓOˆÜ
×Ñ˜f hÔ/ää—X‘XÜ—I‘I×)Ñ)¨!Ó,×3Ñ3°AÓ6¸Ñ<Ü—F‘FÜ—I‘I×)Ñ)¨!Ó,×<Ñ<¸QÓ?óô
 —Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñó	
ˆð �b˜‘g—o‘oÓ'Ñ(ˆØ—‘˜-°¸v�ÓFˆÜ
×Ñ˜f hÕ/r   N)%rR   rS   rT   r$   rU   r"   r   r  r  r  r'  r-  r0  r<  rD  rH  rM  rP  rU  rX  rZ  r^  ra  re  rh  rk  ro  rq  ru  r¾   rÅ   ÚoperatorÚeqÚner}  r‡  rŒ  r   r   r   rÿ   rÿ   ·  sç   „ à‡^�^ñó ðð ‡^�^ñó ðò
*ò*ò
*ò	*ò*ò*òNò(<òAò4>ò	>ò
ò*ò*ò"0ò.=ò.ò *ò0ò0ò>ò0ð> ‡[�[×Ñ˜W¨¨h¯k©kÐ':¸TÀ8Ç;Á;Ð<OÐ&PÓQñ0ó Rð0ò0ó0r   rÿ   c                   ó~   — 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y
)ÚTestDataFrameQueryNumExprPythonc                  ó   — yr  r   r0   s    r   r"   z&TestDataFrameQueryNumExprPython.engine6  r  r   c                  ó   — y©Nr   r   r0   s    r   r   z&TestDataFrameQueryNumExprPython.parser:  r  r   c                 ój  — t        t        j                  j                  d«      j	                  d«      «      }t        dd¬«      |d<   t        dd¬«      |d<   t        d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )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‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø�h‰hØ7ÀÈvð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 óª  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   t        d	|¬«      |d
<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  df<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  d
f<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )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‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ�h‰hØ7ÀÈvð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 ó‚  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   |j                  dd	d	¬
«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )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‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hØ6¸vÈfð ó 
ˆð �B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 óæ  — d}t        t        j                  j                  d«      j	                  |df«      «      j                  dt        i«      }t        d|¬«      |d<   t        d|¬«      |d	<   t        j                  |j                  d
<   |j                  ddd¬«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                   ||«       y )Nr�   r-   r.   r   r  r	  r  r  r  r)  Tr  r™  r–   r  r*  r%  s           r   r-  z>TestDataFrameQueryNumExprPython.test_date_index_query_with_NaTd  sá   € Øˆä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓH×OÑOØ”ˆKó
ˆô " *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜŸ™ˆ�‰�‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hØ6¸vÈfð ó 
ˆð �B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 ó  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   t        j                  |j                  t        j                  j                  d«      j                  |«      d	kD  df<   |j                  dd
d
¬«      }|�J ‚d}t        j                  t        |¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)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   r0  zITestDataFrameQueryNumExprPython.test_date_index_query_with_NaT_duplicatesu  så   € ØˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø3ˆÜ�]‰]Ô.°cÔ:ñ 	PØ�H‰HÐ0¸ÈˆHÔO÷	P÷ 	Pñ 	Pús   ÃC=Ã=Dc                 ó>  — d}t        j                  d||¬«      }|dk(  sJ ‚t        t        j                  j                  d«      j                  d«      «      }t        t        j                  j                  d«      j                  d«      «      }d}t        j                  t        |¬«      5  |j                  d||¬«       d d d «       t        j                  t        d	¬«      5  |j                  d
||¬«       d d d «       ||dkD  |dkD  z     }t        j                  d||¬«      }t        j                  ||«       ||dkD  |dkD  z  ||dkD     dkD  z     }t        j                  d||¬«      }t        j                  ||«       y # 1 sw Y   ŒÆxY w# 1 sw Y   ŒšxY w)Nr,   zx + 1r–   r-   r  z5The '@' prefix is only supported by the pandas parserrL   r\  r`  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   rC  r>   r   r?   r@   )	r1   r"   r   r   rD   r2   r]  rP   r{   s	            r   r^  z1TestDataFrameQueryNumExprPython.test_nested_scope�  sy  € àˆÜ—‘˜¨¸Ô?ˆØ˜Š{Ðˆ{ä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜœŸ	™	×-Ñ-¨aÓ0×@Ñ@ÀÓHÓIˆð GˆÜ�]‰]œ;¨cÔ2ñ 	IØ�H‰HÐ)°&ÀˆHÔH÷	Iô �]‰]Ô1Ð9SÔTñ 	GØ�H‰HÐ'°¸vˆHÔF÷	Gð �r˜A‘v #¨¡'Ñ*Ñ+ˆÜ—‘Ð3¸FÈ6ÔRˆÜ
×Ñ˜h¨Ô/à�r˜A‘v #¨¡'Ñ*¨b°°a±©j¸1©nÑ=Ñ>ˆÜ—‘Ø9À&ÐQWô
ˆô 	×Ñ˜h¨Õ/÷	Ið 	Iú÷	Gð 	Gús   Â-FÃ%FÆFÆFc                 ó4  — t        g d¢g d¢dœ«      }d}t        j                  t        |¬«      5  |j	                  d«       d d d «       d}t        j                  t        |¬«      5  |j	                  d«       d d d «       y # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)	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²Ñ;Ó<ˆð0ð 	ô �]‰]Ô1¸ÔHñ 	!Ø�H‰H�ZÔ ÷	!ð0ð 	ô �]‰]Ô1¸ÔHñ 	!Ø�H‰H�ZÔ ÷	!ð 	!÷	!ð 	!ú÷	!ð 	!ús   °BÁ'BÂBÂBN)rR   rS   rT   r$   rU   r"   r   r  r  r'  r-  r0  r^  r£  r   r   r   r‘  r‘  4  sT   „ à‡^�^ñó ðð ‡^�^ñó ðò	*ò*ò*ò*ò"
Pò0ó6!r   r‘  c                   óZ   — e Zd Zej                  d„ «       Zej                  d„ «       Zd„ Zy)ÚTestDataFrameQueryPythonPandasc                  ó   — yr”  r   r0   s    r   r"   z%TestDataFrameQueryPythonPandas.engine®  r  r   c                  ó   — yr  r   r0   s    r   r   z%TestDataFrameQueryPythonPandas.parser²  r  r   c                 ó2  — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }d|j                  _        ||j                  dkD     }|j                  d	||¬
«      }t        j                  ||«       y ©Nr�   r-   r.   rË   rJ  rl   rO  r~   rK  r–   ©r   rq   r€   r�   rL  rn   ri   r±   r>   r?   r@   ©r1   r"   r   rX   ry   r2   r{   rD   s           r   rP  z1TestDataFrameQueryPythonPandas.test_query_builtin¶  ó„   € Øˆ
ˆˆAÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆð ˆ�‰ŒØ�b—h‘h ‘lÑ#ˆØ—‘˜)¨F¸6�ÓBˆÜ
×Ñ˜h¨Õ/r   N©rR   rS   rT   r$   rU   r"   r   rP  r   r   r   r¥  r¥  ­  ó5   „ Ø‡^�^ñó ðð ‡^�^ñó ðó	0r   r¥  c                   óZ   — e Zd Zej                  d„ «       Zej                  d„ «       Zd„ Zy)ÚTestDataFrameQueryPythonPythonc                  ó   — yr”  r   r0   s    r   r"   z%TestDataFrameQueryPythonPython.engineÃ  r  r   c                  ó   — yr”  r   r0   s    r   r   z%TestDataFrameQueryPythonPython.parserÇ  r  r   c                 ó2  — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }d|j                  _        ||j                  dkD     }|j                  d	||¬
«      }t        j                  ||«       y r©  rª  r«  s           r   rP  z1TestDataFrameQueryPythonPython.test_query_builtinË  r¬  r   Nr­  r   r   r   r°  r°  Â  r®  r   r°  c            
       óP  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  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                  j                  dg d¢g d¢g d¢g d¢g d¢g d¢g«      d„ «       Zy)ÚTestDataFrameQueryStringsc           	      óJ  — t        t        j                  j                  d«      j	                  d«      dg¬«      }t        t        d«      «      |d<   ||j                  dk(     }|dk7  r�d}d	}|gdz  |gdz  z   }|d d d
…   }d\  }	}
d|	|
gz  }d}t        |||«      D ]U  \  }}}|› d|› d|› �}t        j                  t        |¬«      5  |j                  |||d|j                  i¬«       d d d «       ŒW y |j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       t        j                  |||j                  j                  dg«         «       ||j                  dk7     }|j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       t        j                  |||j                  j                  dg«          «       y # 1 sw Y   �Œ…xY w)Nr-   ©r�   r,   rˆ   rl   Ú
aabbccddeeÚstringsr‡   r   z"a"rk   ©rv  rw  ú$'(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‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐSVÐRWÔXˆÜœt LÓ1Ó2ˆˆ9‰Ø�B—J‘J #Ñ%Ñ&ˆà�XÒØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ‘d˜�d‘)ˆCà‰FˆB�Ø˜˜B�x‘.ˆCØ9ˆCä" 3¨¨SÓ1ò ‘��C˜Ø�t˜1˜S˜E  2 $Ð'�Ü—]‘]Ô#6¸cÔBñ Ø—H‘HØØ%Ø%Ø$-¨r¯z©zÐ#:ð	 ô ÷ð ñð —(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.à—(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.Ü×!Ñ! # r¨"¯*©*¯/©/¸3¸%Ó*@Ñ'AÔBà˜Ÿ
™
 cÑ)Ñ*ˆFØ—(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.à—(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.Ü×!Ñ! # r¨2¯:©:¯?©?¸C¸5Ó+AÐ*AÑ'BÕC÷+ñ ús   Ã	"HÈH"	c                 óœ  — t        t        j                  j                  d«      j	                  d«      dg¬«      }t        t        d«      «      |d<   ||j                  j                  ddg«         }|dk7  r€d}d	}|gdz  |gdz  z   }|d d d
…   }d\  }	}
d|	|
gz  }d}t        |||«      D ]H  \  }}}|› d|› d|› �}t        j                  t        |¬«      5  |j                  |||¬«       d d d «       ŒJ y |j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       ||j                  j                  ddg«          }|j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       y # 1 sw Y   �Œ xY w)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‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐSVÐRWÔXˆÜœt LÓ1Ó2ˆˆ9‰Ø�B—J‘J—O‘O S¨# JÓ/Ñ0ˆà�XÒØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ‘d˜�d‘)ˆCà‰FˆB�Ø˜˜B�x‘.ˆCØ9ˆCä # C¨¨cÓ 2ò ?‘��D˜"Ø�t˜1˜T˜F ! B 4Ð(�Ü—]‘]Ô#6¸cÔBñ ?Ø—H‘H˜R¨°v�HÔ>÷?ð ?ñ?ð
 —(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÔ.à—(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÔ.à˜Ÿ™Ÿ™¨#¨s¨Ó4Ð4Ñ5ˆFà—(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÔ.à—(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÕ.÷?ñ ?ús   ÃGÇG	c           	      ó   — t        t        d«      t        d«      t        j                  j	                  d«      j                  dd¬«      t        j                  j	                  d«      j                  dd¬«      dœ«      }|d	k(  r¿|j                  d
||¬«      }||j                  j                  |j                  «         }t        j                  ||«       |j                  d||¬«      }||j                  j                  |j                  «      |j                  |j                  k  z     }t        j                  ||«       y d}t        j                  t         |¬«      5  |j                  d
||¬«       d d d «       d}t        j                  t         |¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)NÚaaaabbbbccccÚaabbccddeeffr-   r~   é   rË   é	   ©r‡   rˆ   r§   r/  r   za in brÕ   za in b and c < dr»  rL   rœ  )r   rn   rq   r€   r�   rL  r>   r‡   rÚ   rˆ   r?   r@   r§   r/  r$   rN   r�  )r1   r   r"   r2   r˜   r  rP   s          r   Útest_query_with_string_columnsz8TestDataFrameQueryStrings.test_query_with_string_columns$  s„  € Üä˜.Ó)Ü˜.Ó)Ü—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBÜ—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBñ	ó
ˆð �XÒØ—(‘(˜8¨F¸6�(ÓBˆCØ�r—t‘t—y‘y §¡“Ñ'ˆEÜ×!Ñ! # uÔ-à—(‘(Ð-°fÀV�(ÓLˆCØ�r—t‘t—y‘y §¡“¨"¯$©$°·±©+Ñ6Ñ7ˆEÜ×!Ñ! # uÕ-à9ˆCÜ—‘Ô2¸#Ô>ñ AØ—‘˜¨&¸�Ô@÷Að 8ˆCÜ—‘Ô2¸#Ô>ñ KØ—‘Ð+°FÀ6�ÔJ÷Kð K÷	Að Aú÷Kð Kús   Å F8ÆGÆ8GÇGc           	      ó  — t        t        d«      t        d«      t        j                  j	                  d«      j                  dd¬«      t        j                  j	                  d«      j                  dd¬«      dœ«      }|j                  d	||¬
«      }||j                  |j                  k(     }t        j                  ||«       |j                  d||¬
«      }||j                  |j                  k7     }t        j                  ||«       y )NrÍ  rÎ  r-   r~   rÏ  rË   rÐ  rÑ  za == brÕ   za != b)r   rn   rq   r€   r�   rL  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‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBÜ—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBñ	ó
ˆð �h‰h�x¨°vˆhÓ>ˆØ�—‘˜Ÿ™‘ÑˆÜ
×Ñ˜c 3Ô'à�h‰h�x¨°vˆhÓ>ˆØ�—‘˜Ÿ™‘ÑˆÜ
×Ñ˜c 3Õ'r   c           	      ó°  — t        |«       t        dd«      D ��cg c]  }dD ]
  }d|› d|› �‘Œ Œ c}}dz  }t        ddd	¬
«      }t        ddd	¬
«      }t        t	        j
                  dd«      j                  d«      ||j                  |«      dœ«      }||j                  dk(     }	|j                  d||¬«      }
t        j                  |	|
«       y c c}}w )Nr,   rY   )ÚloadÚexitzpage r¼  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"   rX   ÚactÚeventsÚstamps1Ústamps2r2   r{   r˜   s              r   Útest_query_with_nested_stringsz8TestDataFrameQueryStrings.test_query_with_nested_stringsO  sâ   € Ü  Ô(ä',¨Q°£{÷
Ø"#Ð>Nò
Ø7:ˆe�A�3�a˜�uÒð
Øó
àñˆô Ð1¸ÀqÔIˆÜÐ1¸ÀqÔIˆÜä—i‘i  1“o×,Ñ,¨QÓ/ØØ$Ÿ^™^¨GÓ4ñó
ˆð �b—h‘h /Ñ1Ñ2ˆØ�h‰hÐ5¸fÈVˆhÓTˆÜ
×Ñ˜h¨Õ,ùó
s   ›Cc                 ó¶   — t        |«       t        g d¢g d¢dœ«      }|j                  d||¬«      }||j                  dk(     }t	        j
                  ||«       y )N)r‡   rˆ   útest & testr+   r¼   za == "test & test"rÕ   rå  rn  )r1   r   r"   r2   r˜   r  s         r   Ú(test_query_with_nested_special_characterzBTestDataFrameQueryStrings.test_query_with_nested_special_characterb  sR   € Ü  Ô(ÜÒ6ºYÑGÓHˆØ�h‰hÐ+°FÀ6ˆhÓJˆØ�2—4‘4˜=Ñ(Ñ)ˆÜ
×Ñ˜c 5Õ)r   zop, funcr6  r7  r8  r9  c                 óz  — t        t        j                  j                  d«      j	                  t        d«      d«      «      }t        t        j                  |j                  «      «      }t        ||dœ«      }|j                  d|› d�||¬«      }| ||j                  d«         }	t        j                  ||	«       y )	Nr-   ÚabcderF  )ÚXr«   zX z "d"r–   r/  )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‘9×(Ñ(¨Ó+×2Ñ2´4¸³=À"ÓEÓFˆÜ”2—9‘9˜QŸV™VÓ$Ó%ˆÜ˜Q QÑ'Ó(ˆà�h‰h˜˜B˜4˜t�}¨V¸FˆhÓCˆØ‘d˜2Ÿ4™4 “oÑ&ˆÜ
×Ñ˜c 8Õ,r   c                 óJ  — d}t         j                  j                  d«      j                  ddt	        |«      f¬«      j                  t        «      }t        ||¬«      }|j                  d||¬«      }||j                  |j                  z     }t        j                  ||«       y )N)ÚbidÚbidsizeÚaskÚasksizer-   r,   rË   rl   z	bid & askr–   )rq   r€   r�   rL  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‰y×$Ñ$ QÓ'×0Ñ0°¸!¼SÀ»\Ð9JÐ0ÓK×RÑRÔSWÓXˆÜ�t WÔ-ˆØ�h‰h�{¨6¸&ˆhÓAˆØ�b—f‘f˜rŸv™v‘oÑ&ˆÜ
×Ñ˜c 8Õ,r   c                 óº   — t        |«       t        g d¢g d¢dœ«      }||j                  dk(     }d}|j                  d||¬«      }t	        j
                  ||«       y )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ÚsymbrA  s          r   Ú!test_query_string_scalar_variablez;TestDataFrameQueryStrings.test_query_string_scalar_variableƒ  s^   € Ü  Ô(ÜâBÚ9ñó
ˆð ˆr�y‰y˜HÑ$Ñ%ˆØˆØ�H‰HÐ&¨v¸fˆHÓEˆÜ
×Ñ˜a Õ#r   Úin_list)NÚasdfÚghjk)rý  Nrþ  )rý  rþ  N)NNrý  )rý  NN)NNNc                 ód  — d}d}t        |«      D ��ci c]  \  }}|dk(  sŒ||“Œ }}}t        d|id¬«      }|j                  j                  d«      |_        t        d|id¬«      }t	        t        |j                  «      |j                  j                  ¬«      |_        |j                  d||¬	«      }	||d   dk(     }
|j                  d
||¬	«      }t        j                  |	|«       t        j                  |	|
«       t        j                  |	|«       t        j                  |
|«       y c c}}w )Nr   r   rý  r‡   Ústring©ÚdtypeÚint64za == 'asdf'rÕ   za <= 'asdf')
Ú	enumerater   ri   r+  r   rn   r  r>   r?   r@   )r1   rü  r   r"   r@  Úvaluer{   Údf_expectedr2   rÝ   rÞ   Úres3s               r   Útest_query_string_null_elementsz9TestDataFrameQueryStrings.test_query_string_null_elements�  s  € ð ˆØˆÜ-6°wÓ-?×S¡  EÀ5ÈFÃ?�A�u‘HÐSˆÑSä  h °xÔ@ˆØ'×-Ñ-×4Ñ4°WÓ=ˆÔÜ˜˜W�~¨XÔ6ˆÜœ˜bŸh™h›¨r¯x©x¯~©~Ô>ˆŒØ�x‰x˜¨f¸VˆxÓDˆØ�"�S‘'˜VÑ#Ñ$ˆØ�x‰x˜¨f¸VˆxÓDˆÜ
×Ñ˜d KÔ0Ü
×Ñ˜d DÔ)Ü
×Ñ˜d DÔ)Ü
×Ñ˜d DÕ)ùó Ts
   “D,¡D,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µ  ×  sÆ   „ ò'DòR!/òFKò4(ò"-ò&*ð ‡[�[×ÑØà�(—+‘+ÐØ�(—+‘+ÐØ�8—;‘;ÐØ�8—;‘;Ðð		
óñ-óð-ò-ò$ð ‡[�[×ÑØâ"Ú"Ú"Ú Ú Úð	
ó
ñ*ó
ñ*r   rµ  c                   ó„   — e Zd Zej                  d„ «       Zd„ Zd„ Zej                  j                  dg d¢«      d„ «       Z
y)ÚTestDataFrameEvalWithFramec                 ó†   — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      S )Nr-   rê   rJ  rl   )r   rq   r€   r�   r‚   rn   r0   s    r   Úframez TestDataFrameEvalWithFrame.frame¯  s2   € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈEÃ{ô
ð 	
r   c                 óŠ   — |j                  d||¬«      }|j                  |j                  z   }t        j                  ||«       y )NrŸ   r–   ©rA   r‡   rˆ   r?   rB   ©r1   r  r   r"   r˜   r™   s         r   Útest_simple_exprz+TestDataFrameEvalWithFrame.test_simple_exprµ  s8   € Ø�j‰j˜¨¸ˆjÓ?ˆØ—‘˜5Ÿ7™7Ñ"ˆÜ
×Ñ˜s FÕ+r   c                 óª   — |j                  d||¬«      }|j                  |j                  dk     |j                  z   }t        j                  ||«       y )Nza[a < 1] + br–   r,   r  r  s         r   Útest_bool_arith_exprz/TestDataFrameEvalWithFrame.test_bool_arith_exprº  sE   € Ø�j‰j˜°¸vˆjÓFˆØ—‘˜Ÿ™ 1™Ñ%¨¯©Ñ/ˆÜ
×Ñ˜s FÕ+r   rw   )rZ   r]   r`   rc   c                 ó¼   — t        ddgddgdœ«      }d}t        j                  t        |¬«      5  |j	                  d|› d	�||¬
«       d d d «       y # 1 sw Y   y xY w)Nr,   r-   r§   r/  r¼   z:unsupported operand type\(s\) for .+: '.+' and '.+'|CannotrL   ry  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Ó6ˆØKˆä�]‰]œ9¨CÔ0ñ 	?Ø�G‰G�b˜˜˜B�K¨°vˆGÔ>÷	?÷ 	?ñ 	?ús   °AÁAN)rR   rS   rT   r$   rU   r  r  r  r¾   rÅ   r  r   r   r   r  r  ®  sH   „ Ø‡^�^ñ
ó ð
ò
,ò
,ð
 ‡[�[×Ñ˜TÒ#7Ó8ñ?ó 9ñ?r   r  c                   óL  — 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jH                  jK                  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jH                  jK                  d/g d0¢«      d1„ «       Z3ejH                  jK                  d2d3d4g«      ejH                  jK                  d/g d0¢«      d5„ «       «       Z4d6„ Z5y7)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,   rs  ú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É  sú   € ô ðØ’Yðà’yðð ’yðð š	ð	ð
 ’zðð šðð ’yðð ’zðð ’yðð ’{ðð šðð š	ðð šðð /²	ðð ’Kðð  ’ið!ð" ’ið#ò$ "Ú#Ú Ú'Ú"+Ú$Úò1ó
ð 	
r   c                 óh   — |j                  d«      }|d|d   k     }t        j                  ||«       y )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í  s2   € Ø�h‰h�{Ó#ˆØ�A˜˜5™	‘MÑ"ˆÜ
×Ñ˜c 6Õ*r   c                 óz   — |j                  d«      }|d|d   k  d|d   k  z     }t        j                  ||«       y )Nz1 < `B B` and 4 < `C C`r,   r  rY   r  r3  r4  s       r   Ú!test_two_backtick_variables_queryzCTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_queryò  s@   € Ø�h‰hÐ0Ó1ˆØ�Q˜˜E™‘] q¨2¨e©9¡}Ñ5Ñ6ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `B B`r*   r  ©rA   r?   rB   r4  s       r   Ú"test_single_backtick_variable_exprzDTestDataFrameQueryBacktickQuoting.test_single_backtick_variable_expr÷  ó2   € Ø�g‰g�kÓ"ˆØ�C‘˜2˜e™9Ñ$ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz`B B` + `C C`r  r  r9  r4  s       r   Ú test_two_backtick_variables_exprzBTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_exprü  s2   € Ø�g‰g�oÓ&ˆØ�E‘˜R ™YÑ&ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	`C_C` + Ar  r*   r9  r4  s       r   Ú test_already_underscore_variablezBTestDataFrameQueryBacktickQuoting.test_already_underscore_variable  s2   € Ø�g‰g�kÓ"ˆØ�E‘˜R ™WÑ$ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )NzC_C + `C C`r  r  r9  r4  s       r   Útest_same_name_but_underscoresz@TestDataFrameQueryBacktickQuoting.test_same_name_but_underscores  s2   € Ø�g‰g�mÓ$ˆØ�E‘˜R ™YÑ&ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )NzA + `D_D D`r*   r!  r9  r4  s       r   Ú!test_mixed_underscores_and_spaceszCTestDataFrameQueryBacktickQuoting.test_mixed_underscores_and_spaces  s2   € Ø�g‰g�mÓ$ˆØ�C‘˜2˜g™;Ñ&ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `C_C`r*   r  r9  r4  s       r   Ú'test_backtick_quote_name_with_no_spaceszITestDataFrameQueryBacktickQuoting.test_backtick_quote_name_with_no_spaces  r;  r   c                 ót   — |j                  d«      }|d   |d   z   |d   z
  }t        j                  ||«       y )Nz`E.E` + `F-F` - Ar#  r$  r*   r9  r4  s       r   Útest_special_charactersz9TestDataFrameQueryBacktickQuoting.test_special_characters  s<   € Ø�g‰gÐ)Ó*ˆØ�E‘˜R ™YÑ&¨¨C©Ñ0ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `1e1`r*   r%  r9  r4  s       r   Útest_start_with_digitz7TestDataFrameQueryBacktickQuoting.test_start_with_digit  r;  r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `def`r*   r&  r9  r4  s       r   Útest_keywordz.TestDataFrameQueryBacktickQuoting.test_keyword  r;  r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`A` > 2r*   r-   r3  r4  s       r   Útest_unneeded_quotingz7TestDataFrameQueryBacktickQuoting.test_unneeded_quoting$  s1   € Ø�h‰h�yÓ!ˆØ�B�s‘G˜a‘K‘ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`A (x)` > 2r'  r-   r3  r4  s       r   Útest_parenthesisz2TestDataFrameQueryBacktickQuoting.test_parenthesis)  s2   € Ø�h‰h�}Ó%ˆØ�B�w‘K !‘OÑ$ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`` > 5r’   r~   r3  r4  s       r   Útest_empty_stringz3TestDataFrameQueryBacktickQuoting.test_empty_string.  s1   € Ø�h‰h�xÓ ˆØ�B�r‘F˜Q‘J‘ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz
`C  C` > 5r  r~   r3  r4  s       r   Útest_multiple_spacesz6TestDataFrameQueryBacktickQuoting.test_multiple_spaces3  s2   € Ø�h‰h�|Ó$ˆØ�B�v‘J ‘NÑ#ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz` A` + `  `r)  r*  r9  r4  s       r   Útest_start_with_spacesz8TestDataFrameQueryBacktickQuoting.test_start_with_spaces8  s2   € Ø�g‰g�mÓ$ˆØ�D‘˜B˜t™HÑ$ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }||d   dk(     }t        j                  ||«       y )Nz`1` == 7r,   rÙ  r3  r4  s       r   Ú	test_intsz+TestDataFrameQueryBacktickQuoting.test_ints=  s1   € Ø�h‰h�zÓ"ˆØ�B�q‘E˜Q‘J‘ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nu"   `  &^ :!â‚¬$?(} >    <++*''  ` > 4r(  rY   r3  r4  s       r   Útest_lots_of_operators_stringz?TestDataFrameQueryBacktickQuoting.test_lots_of_operators_stringB  s6   € Ø�h‰hÐ;Ó<ˆØ�BÐ5Ñ6¸Ñ:Ñ;ˆÜ
×Ñ˜c 6Õ*r   c                 óŠ   — d}t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)Nz(module 'pandas' has no attribute 'thing'rL   z	@pd.thing)r$   rN   ÚAttributeErrorrA   )r1   r2   Úmessages      r   Útest_missing_attributez8TestDataFrameQueryBacktickQuoting.test_missing_attributeG  s6   € Ø<ˆÜ�]‰]œ>°Ô9ñ 	!Ø�G‰G�KÔ ÷	!÷ 	!ñ 	!ús	   ž9¹Ac                 ón   — |j                  d«      }||d   |d   kD     }t        j                  ||«       y )Nz`it's` > `that's`r,  r-  r3  r4  s       r   Ú
test_quotez,TestDataFrameQueryBacktickQuoting.test_quoteL  s8   € Ø�h‰hÐ*Ó+ˆØ�B�v‘J  H¡Ñ-Ñ.ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nu	   `â˜º` > 4r.  rY   r3  r4  s       r   Ú#test_character_outside_range_smileyzETestDataFrameQueryBacktickQuoting.test_character_outside_range_smileyQ  s2   € Ø�h‰h�{Ó#ˆØ�B�u‘I ‘MÑ"ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dk(     }t        j                  ||«       y )Nu   `xy ï¼ˆzï¼‰` == 2r/  r-   r3  r4  s       r   Ú*test_character_outside_range_2_byte_parenszLTestDataFrameQueryBacktickQuoting.test_character_outside_range_2_byte_parensV  s5   € à�h‰hÐ*Ó+ˆØ�B�|Ñ$¨Ñ)Ñ*ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dk(     }t        j                  ||«       y )Nu   `xy ï¼ˆz\uff09` == 2r0  r-   r3  r4  s       r   Ú1test_character_outside_range_and_actual_backslashzSTestDataFrameQueryBacktickQuoting.test_character_outside_range_and_actual_backslash\  s6   € à�h‰hÐ.Ó/ˆØ�BÐ*Ñ+¨qÑ0Ñ1ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`foo#bar` > 4r1  rY   r3  r4  s       r   Útest_hashtagz.TestDataFrameQueryBacktickQuoting.test_hashtagb  s3   € Ø�h‰h�Ó'ˆØ�B�y‘M AÑ%Ñ&ˆÜ
×Ñ˜c 6Õ*r   c                 ó„   — t        ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )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  s@   € ä�y¨4¨&Ô1ˆØ—‘˜*Ó%ˆØ�b˜‘h ‘lÑ#ˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr+   ri  rl   z`a#` < 2  # This is a commentr-   rj  rk  s       r   Útest_expr_with_commentz8TestDataFrameQueryBacktickQuoting.test_expr_with_commentn  sA   € ä�y¨4¨&Ô1ˆØ—‘Ð9Ó:ˆØ�b˜‘h ‘lÑ#ˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr+   za`#brl   z`a``#b` < 2r-   rj  rk  s       r   Ú1test_expr_with_column_name_with_backtick_and_hashzSTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick_and_hashu  s@   € ä�y¨6¨(Ô3ˆØ—‘˜-Ó(ˆØ�b˜‘j 1‘nÑ%ˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        dddœ«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr+   rº   )úa`brž   z
`a``b` < 2rr  r-   rj  rk  s       r   Ú(test_expr_with_column_name_with_backtickzJTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick|  sA   € ä˜y°	Ñ:Ó;ˆØ—‘˜,Ó'ˆà�b˜‘i !‘mÑ$ˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )N©ú`z`````z
``````````ú
#backticksrl   z'```' < `#backticks`z```rj  rk  s       r   Ú$test_expr_with_string_with_backtickszFTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticks„  sD   € äÐ3¸l¸^ÔLˆØ—‘Ð0Ó1ˆØ�e˜b Ñ.Ñ.Ñ/ˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nru  rw  rl   z'`#backticks`' < `#backticks`z`#backticks`rj  rk  s       r   ÚCtest_expr_with_string_with_backticked_substring_same_as_column_namezeTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticked_substring_same_as_column_name‹  sD   € äÐ3¸l¸^ÔLˆØ—‘Ð9Ó:ˆØ�n r¨,Ñ'7Ñ7Ñ8ˆÜ
×Ñ˜f hÕ/r   zcol1,col2,expr))r,  r-  z`it's` < `that's`)zit"szthat"sz`it"s` < `that"s`)r,  zthat's "nice"z`it's` < `that's "nice"`)r,  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«      }|j                  |«      }|||   ||   k     }t        j                  ||«       y )	Nr,   r-   r.   rY   rk   éþÿÿÿéýÿÿÿéüÿÿÿrj  )r1   Úcol1Úcol2Úexprr2   rD   r{   s          r   Ú3test_expr_with_column_names_with_special_characterszUTestDataFrameQueryBacktickQuoting.test_expr_with_column_names_with_special_characters’  sy   € ô à�q˜$ Ð"Ø�q˜$ Ð"Ø�r˜4 Ð$Ø�r˜4 Ð$ð	ó
ˆð —‘˜$“ˆØ�b˜‘h  D¡Ñ)Ñ*ˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )N©ÚaaaÚvvvÚzzzÚcolumn_namerl   z'value' < column_namer  rj  rk  s       r   Útest_expr_with_no_backticksz=TestDataFrameQueryBacktickQuoting.test_expr_with_no_backticks©  sD   € äÐ,°}°oÔFˆØ—‘Ð1Ó2ˆØ�g  =Ñ 1Ñ1Ñ2ˆÜ
×Ñ˜f hÕ/r   c                 ó®   — t        ddg¬«      }t        j                  t        t        fd¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)N©r,   r~   r�   úcolumn-namerl   rB  rL   z5 < `column-name©r   r$   rN   rC  r   r>   r5   s     r   Ú2test_expr_with_no_quotes_and_backtick_is_unmatchedzTTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_unmatched°  sF   € ä�z¨M¨?Ô;ˆÜ�]‰]œK¬Ð4Ð<LÔMñ 	)Ø�H‰HÐ'Ô(÷	)÷ 	)ñ 	)úó   °AÁAc                 ó„   — t        ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nr‹  rŒ  rl   z5 < `column-name`r~   rj  rk  s       r   Ú0test_expr_with_no_quotes_and_backtick_is_matchedzRTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_matched¶  sC   € ä�z¨M¨?Ô;ˆØ—‘Ð-Ó.ˆØ�a˜"˜]Ñ+Ñ+Ñ,ˆÜ
×Ñ˜f hÕ/r   c                 ó®   — t        ddg¬«      }t        j                  t        t        fd¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)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½  sJ   € ä�z¨F¨8Ô4ˆÜ�]‰]Üœ*Ð%Ð-Jô
ñ 	"ð �H‰H�[Ô!÷	"÷ 	"ñ 	"úr�  c                 ó„   — t        ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nr‹  r“  rl   z
5 < `It's`r~   rj  rk  s       r   ÚCtest_expr_with_backtick_opened_before_quote_and_backtick_is_matchedzeTestDataFrameQueryBacktickQuoting.test_expr_with_backtick_opened_before_quote_and_backtick_is_matchedÅ  s@   € ä�z¨F¨8Ô4ˆØ—‘˜,Ó'ˆØ�a˜"˜V™*‘nÑ%ˆÜ
×Ñ˜f hÕ/r   c                 ó®   — t        ddg¬«      }t        j                  t        t        fd¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)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Ì  sP   € äÐ,°}°oÔFˆÜ�]‰]Üœ*Ð%Ð-Jô
ñ 	Gð �H‰HÐEÔF÷	G÷ 	Gñ 	Gúr�  c                 ó„   — t        ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr„  rŒ  rl   z,`column-name` < 'It`s that\'s "quote" #hash'úIt`s that's "quote" #hashrj  rk  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Ô  sE   € äÐ,°}°oÔFˆØ—‘ÐKÓLˆØ�b˜Ñ'Ð*FÑFÑGˆÜ
×Ñ˜f hÕ/r   c                 ó„   — t        ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nr„  rŒ  rl   z,'It`s that\'s "quote" #hash' < `column-name`r›  rj  rk  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Û  sE   € äÐ,°}°oÔFˆØ—‘ÐKÓLˆØÐ2°R¸Ñ5FÑFÑGˆÜ
×Ñ˜f hÕ/r   c                 ó6  — d„ }|g}|j                  d«       t        j                  t        d¬«      5  |j                  d«       ddd«       t        j                  t        d¬«      5  |j                  d«       ddd«       y# 1 sw Y   Œ?xY w# 1 sw Y   yxY w)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                   ó   — yr8   r   )rù   s    r   rê  zNTestDataFrameQueryBacktickQuoting.test_call_non_named_expression.<locals>.funcê  s   € Ør   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â  s„   € ò	ð �ˆà
�‰�	Ôä�]‰]œ9Ð,PÔQñ 	#Ø�G‰G�MÔ"÷	#ô �]‰]œ9Ð,PÔQñ 	,Ø�G‰GÐ*Ô+÷	,ð 	,÷	#ð 	#ú÷	,ð 	,ús   ³BÁ(BÂBÂBc                 ó  — t        ddgddggddg|¬«      }t        rt        nd }t        j                  |«      5  |j                  d«      }d d d «       t        g d	¢g d
¢gg d¢|¬«      }t        j                  |«       y # 1 sw Y   Œ6xY w)Nr,   r-   r.   rY   r‡   rˆ   ©rj   r  z	c = b - ar+  )r.   rY   r,   rR  ©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ñ 	*Ø—W‘W˜[Ó)ˆF÷	*äÚš	Ð"Ú#Ø0ô
ˆô
 	×Ñ˜f hÕ/÷	*ð 	*úó   ºBÂB
c                 ó  — t        ddgddggddgd¬«      }t        rt        nd }t        j                  |«      5  |j                  d	«      }d d d «       t        g d
¢g d¢gg d¢d¬«      }t        j                  |«       y # 1 sw Y   Œ6xY w)Nr,   r-   r.   rY   r‡   rˆ   ÚFloat64r¤  z	c = b - 1r+  )r.   rY   r.   rR  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ˆÝ$5•.¸4ˆÜ×'Ñ'¨Ó0ñ 	*Ø—W‘W˜[Ó)ˆF÷	*äÚš	Ð"ªOÀ9ô
ˆô 	×Ñ˜f hÕ/÷	*ð 	*úr«  c           	      ó  — t        ddgddggddg|¬«      }|j                  d«      }t        t        ddg|¬	«      t        ddg|¬	«      t        ddg|d
   j                  ¬	«      dœ«      }t	        j
                  ||«       y )Nr,   r-   r.   rY   r‡   rˆ   r¤  z	c = 2 - 1r  r§   rR  )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Ü˜Q ˜FÐ*HÔ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  |j                  d«      }d d d «       t        ddgit        dd«      |¬	«      }t        j                  |«       y # 1 sw Y   Œ;xY w)
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ˆØˆcˆØ$)¨WÒ$4Õ9J•.ÐPTˆÜ×'Ñ'¨Ó0ñ 	+Ø—X‘X˜kÓ*ˆF÷	+ä˜c A 3˜Z¬u°Q¸«{À%ÔHˆÜ
×Ñ˜f hÕ/÷	+ð 	+ús   ÁB#Â#B,r"   r   r   c                 ó  — |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  |j                  d
|¬«      }d d d «       t        t        ddgdt        ddd«      ¬«      t        ddg|t        ddd«      ¬«      d	œ«      }t        j                  |«       y # 1 sw Y   Œ`xY w)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•.¸TˆØ�YÒÕ'8Ü�K‰KÐ/Ô0ØÐ$Ò$Ü×Ñ 	Ô*ÜÜš¨'Ô2¼Â	ÐQVÔ9WÑXó
ˆô ×'Ñ'¨Ó0ñ 	7Ø—X‘X˜h¨v�XÓ6ˆF÷	7ää˜Q ˜F¨'¼¸qÀ!ÀQ»ÔHÜ˜Q ˜F¨%´u¸QÀÀ1³~ÔFñó
ˆô 	×Ñ˜f hÕ/÷	7ð 	7ús   ÂC8Ã8Dc                 ó
  — t         j                  j                  d«      }t        dt        j                  d d gd¬«      it
        ¬«      }|j                  d«      }t        dg it
        ¬«      }t        j                  ||«       y )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  sd   € ä�l‰l×Ñ˜uÓ%ˆÜ˜œRŸ^™^¨T°4¨L¸dÔCÐDÌFÔSˆØ—‘˜*Ó%ˆÜ˜c 2˜Y¬fÔ5ˆÜ
×Ñ˜f hÕ/r   N)6rR   rS   rT   r$   rU   r2   r5  r7  r:  r=  r?  rA  rC  rE  rG  rI  rK  rM  rO  rQ  rS  rU  rW  rY  r]  r_  ra  rc  re  rg  rl  rn  rp  rs  rx  rz  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òGò0ò0ò,ò*0ò	0ò0ð ‡[�[×Ñ˜WÒ&JÓKñ
0ó Lð
0ð ‡[�[×Ñ˜X¨°)Ð'<Ó=Ø‡[�[×Ñ˜WÒ&JÓKñ0ó Ló >ð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Ì     sW  ðÛ Ý ã Û ÷÷ *Ð )ã ÷õ õ Ý ;ð €‡�˜ (Ð+±Ô=ñó >ðð €‡�Ø�l�f—l‘l 9°M°B·M±MÀ)Ó4LÔMÐNÙôñó	ðò=÷
01ñ 01÷fL1ñ L1÷^GIñ GIðT €‡�ˆyÓ÷y0ð y0ó ðy0ðx €‡�ˆyÓôu!Ð&Eó u!ó ðu!ôp0Ð%Dô 0ô*0Ð%Dô 0÷*T*ñ T*÷n?ñ ?÷4A0ò A0r   